Customer Exits, 顾名思义,就是用户自定义出口。
有3类这样的出口:Function Module Exits; Menu Exits; Screen Exits
有两个常用的T-code:
CMOD: 用于增强项目的管理
SMOD: 增强项目的具体实现
Function Module Exits: 就是在标准程序中预置有形如call customer-function 'NNN'的call function语句,来动态调用相关的出口程序。'NNN'是3位数字,而实际的出口函数命名方式为:EXIT__。寻找这样的可以用SMOD的查询功能,同时也有一个程序可以用T-CODE来帮助查找,在老白的博客上应该有这个程序。这个出口形式比较简单,所以就不举例子了。
Menu Exits: 个人觉得是用得比较少的一种出口,项目上很少使用,SAP预留的出口也很少。抓住几点关键就可以了,Menu Exits会有一个预留的function code 比如+PGE什么的。你要在做增强的程序中发现这样的句子:
CASE: OK_CODE.
...
WHEN '+PGE'.
CALL CUSTOMER-FUNCTION '001'.
...
ENDCASE.
这样就可以在相应的出口里编写你想要的东西了。
Screen Exits: 相对比较繁琐。举一个例子来说明一下。
SMOD: AIST0002
EXIT_SAPLAIST_002 中加入代码
ANLU = I_ANLU.
EXIT_SAPLAIST_003 中加入代码
E_ANLU = ANLU.
在Include tables中建立一张表 CI_ANLU,结构如下:
ZKEVIN CHAR 20
讲一下以上函数及表的一下作用,大家看一下参数就应该就比较明白了。
EXIT_SAPLAIST_002 是从事务程序将数据传入出口程序
EXIT_SAPLAIST_003 是将出口程序处理后的数据传到事务程序
CI_ANLU 就是在屏幕上加的结构
T-code SE80->function group XAIS 建立Subscreen 9001,并画出相应的屏幕、完成逻辑流。
T-code AOLA->COPY标准SAP TAB LAYOUT->修改其General tab->增加一个Group box, 选U9001。
T-code AOLK->选择class 1000->General Assignment of Layout->将刚刚新建的Layout替换掉原来Asset accountant的Tab layout。
T-code AS01/AS02/AS03 进行相应的测试。
SMOD: CNEX0006
这个是自带屏幕,不需要配置的。制作的方法,和之前的例子相似。测试T-code:CJ01。
以上是两种常见的屏幕增强,当然还有BAdI形式的,这个下一节再讲。
阅读(2821) | 评论(4) | 转发(0) |