SAP视图变更之全解析

SAP Technical

聊聊SAP的那些事儿

上一篇介绍视图变更方法的文章里,很多读者小伙伴给我了一些建议,非常感谢大家提供的思路和方法。所以,今天这篇文章我们在讨论一下这个问题,介绍一下另一种实现视图变更的快捷方法。感兴趣的朋友可以阅读一下本文。

写在前面

在上一篇文章发出之后,很多人给我提了一下建议,说还有一种更好的办法,所以今天继续更新一篇,特别感谢这些朋友建议,同时感谢大家的支持。当然使用范围请阅读我下面的建议,这个方法也是视图更改的一个技巧,所以再写一篇提供给有不同需求的读者朋友。如果你也有这样的需求,不妨来阅读一下本文。

在正文开始之前,先说一下视图变更后的几种修正方法:

方法一:请阅读我的上一篇文章,下文有链接

方法二:请阅读本文,也是一种快捷的方法

方法三:删除视图重新创建,比较简单

(如果你有更好的建议,欢迎留言或者私信探讨)

本文介绍的方法,建议在以下情况中使用:

1、视图不复杂,没有修改flow logic。

2、没有什么数据关联。

3、不影响event。

先来一个简介,SAP的视图的类型有五种:

Database views :和数据库的视图形同,连接条件是必须自定义。

Projection views: 用于屏蔽一些字段(一般用于保护数据时使用)。

Help views: 该类视图可以用搜索帮助的"selection method"中使用,参与连接表必须存在外键。

Maintenance views:允许你进行对几个表的数据进行修改,参与连接表必须存在外键,他们的连接条件是不能自定义的。

Append Views:这种视图主要用于增强;

在四种类型视图只有Database views是通过inner join来建立。其他类型的视图使用的outer join 语句建立的。(此段内容摘自网上,感谢misshappy是我)

添加字段

我在上一篇的测试表中添加一些自定义的字段,更改表结构,我这里新加的字段是ZNAME1、ZNAME2、ZNAME3,如下图所示:

同样的新添加的字段数据肯定都是空的,想把新加的字段也维护上我们业务中需要的数据。我们先进入SM30查看一下,如下图所示:

调整表

因为我们的表结构发生了变化,所以,我这里首先调整一下表结构,使用事务码SE14进行,如下图所示:

点击Activate and adjust database进行调整。

调整视图

调整完表结构之后,我们来调整视图,当然今天介绍的方法和之前一篇的不同,今天说的是另一种更快捷的方法。进入到table maintenance generator,如下图所示:

进入到上面的截图中之后,我们点击change,会进入change generation element界面,在这个界面里,如下图所示:

这里我会勾选new field选项,当然我们这里是新添加,如果是删除请选择对应的选项,比如removed from structure,如下图所示:

专家模式

这里还要提一点这个专家模式,当然我就不再一个一个的赘述了,专家模式里面也有很多选项可供选择,基本都是renew, refresh structure, control,根据你的需要进行选择,我这里也放一张图(这一条内容是后来补充的内容),请看下图:

重要提示

到这一步重点来了,在上图之后,我点继续,这时会弹出change generation element的详细界面,如下图所示:

从上图可以看到,有几个选择项,overview、single、key、normal,在选择的时候,我们要考虑修改视图的什么部分,正常情况下,一般都是更改overview screen和normal field,那我按照这个选项进行操作,如下图所示:

进行完上述操作之后,点击确定,这时候会出现一个warning,不用在意这个警告,这个警告只是告诉你原视图被deleted并且被re-created,如下图所示:

注意:以上所有步骤完成后记得保存激活操作,以保证我们做的更改都可以生效。

再次查看视图

经过上面一系列的操作之后,我们来看一下视图是否有变化,并且新加的字段是否已经存在,并且可以进行维护了。

从上图可以看出,已经实现了我们想要的结果,并且可以进行数据维护,说明我们上述的修改步骤已经生效了。如果你有一个比较复杂的视图变更,那么还是建议阅读《

轻松搞定SAP的视图变更

》,这个方法更为稳妥。

再次重申

我碰到过很多项目是在logic里放处理逻辑,而且还不是一点逻辑,会加很多内容,而且很多项目里会使用two step的方式在程序里使用,因为这样做可以减少DB处理的情况,这种情况就会被renew,很多项目并没有按照正规的流程做,在选择function group 和refresh overview screen后就会重构flow,这样就会导致内容的丢失,当然renew选项也是会影响到logic。

虽然可能看起来很简单,但希望读者朋友能喜欢这个技巧。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181212G0LQUM00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券