1,MEREQ001
用户出口(user-exit)MEREQ001是针对采购申请的增强,其中FM EXIT_SAPLMEREQ_010可以对采购申请的账户分配进行校验。
EXIT_SAPLMEREQ_010的输入参数,IM_T_EBAN、IM_T_EBKN是更改之后的采购申请和账户分配的值,
IM_T_EBAN_PERS、IM_T_EBKN_PERS是更改之前的旧值。
可以将错误消息保存到EX_MESSAGES中
下图就是ME52n中行项目上科目分配的tab页,科目类别是资产类(EBAN-KNTTP = 'A')的。
2,例子代码
针对资产采购,科目分配页签下维护的数量必须为1,否则报错。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |   DATA:ls_eban    LIKE LINE OF im_t_eban,        ls_ebkn    LIKE LINE OF im_t_ebkn,        ls_message TYPE bapiret2. * 创建pr时,针对资产采购,科目分配页签下维护的数量必须为1,增加此校验规则   LOOP AT im_t_eban INTO ls_eban.     IF ls_eban-knttp = 'A'.       LOOP AT im_t_ebkn INTO ls_ebkn WHERE banfn = ls_eban-banfn                                         AND bnfpo = ls_eban-bnfpo.         IF ls_ebkn-menge <> '1'.           ls_message-type   = 'E'.           ls_message-id     = 'ZMM_001'."消息类           ls_message-number = '001'.           ls_message-row    = ls_eban-bnfpo.           APPEND ls_message TO ex_messages.         ENDIF.       ENDLOOP.     ENDIF.   ENDLOOP. | 
测试结果,报错屏幕如下:
以上。



发表评论