在之前发布的文章中,介绍了善用事务码的图形视图以观察事务的执行流程以及如何在MD04中实施增强以改变生产订单的显示顺序。本文结合两者,介绍一下如何利用事务码的图形视图找到增强开发的实施点。
在事务码中输入SE93,进入图形视图:展开后,按下图再展开
双击函数AUFBAUEN_MDPSX_ANZEIGEN :
进入函数后:
分析函数调用的子程序模块,找到PERFORM sort_mdpsx. ,双击:
可以看出内表MDPSX的排序逻辑,在此可根据特定需求修改此内表的排序。在此FORM程序的最后,可根据SAP隐式增强的实施办法,插入自己的代码:
ENHANCEMENT 1 YMD04B. "active version
*在MDPSX增加订单基本开始时间并参与排序
LOOP AT MDPSX .
SELECT SINGLE GSUZP INTO MDPSX-GSUZP
FROM AFKO
WHERE AUFNR = mdpsx-DEL12.
MODIFY MDPSX ."获取生产订单的具体基本开始时间
ENDLOOP .
SORT MDPSX BY PLAAB PLANR DAT00 TAG00 SORT1 SORT2 DELNR
GSUZP "在原来的排序标准中,增加‘基本开始时间’字段,其他不变
* DEL12. "THD 31h
DEL12 "note 185361
* DELPS. "note 185361
DELPS "note 455067
DELET. "note 455067
至于如何精准找到FORM sort_mdpsx来实施增强开发,一方面开发经验非常重要,根据子程序名称大致知道其相应功能,另一方面则是不断地设置断点进行调试,找到最后数据的输出表,再根据输出表找到数据排序的地方,从而确定增强实施点。