Do Screen Enhancement to Transaction MM01

正常情况下通过FM Exits来enhancement a screen, 我们会
1. Find relevant enhancement thru program name.
2. T-code: CMOD, create an enhancement project, then assign the enhancement to the enhancement project
3. Create a subscreen in corresponding X function group
4. Implement the FM exits for transporting data to subscreen and retrieving data from subscreen.
5. Active the enhancement project.

在main screen的flow logic中
PBO
CALL CUSTOMER-SUBSCREEN 〈area〉 INCLUDING 〈x-function-pool〉〈screen_number〉.
" Transporting data to subscreen
MODULE ...
    CALL CUSTOMER-FUNCTION 'xxx'
        EXPORTING
            i_vars = gl_field.

PAI
CALL CUSTOMER-SUBSCREEN 〈area〉 .
" Transporting data from subscreen
MODULE...
    CALL CUSTOMER-FUNCTION 'xxx'
        IMPORTING
            o_vars = gl_field.
这里的FM exits的parameter interface是不能改变的,且一个screen enhancemnet都要对应一个确定的X Function Group但screen number是可以变化的。

不过在enhance MM01 screen时,情况就有些变化了,我们会
1. T-code: OMT3C, create a function group
2. Create/copy a subscreen to the function group
3. Build subscreen layout
4. Add some necessary code to PBO and PAI event block
5. T-code: OMT3B, create/copy a screen sequence, make sure that the program name = "SAPL"+created function group name, and the subscreen number = created subscreen number
6. T-code: OMT3E, change the screen sequence.

至于为什么要这么做,是因为MM01的Screen组成特点造成的。MM01中的Screen完全是通过一个个的subscreen像一个个的component组合而成的。在原有的subscreen不在customer namespace的情况下,如果不想做Modification,只能通过这种办法去做,即创建一个自己的subscreen和screen sequence,并把这个sequence放到screen的determination procedure中去。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值