需求:主要处理逻辑如下,
计划订单转换成采购订单时(MD04 MD14),如果转换全部的订单数量,则系统会删除计划订单基础表(PLAF)中关于该计划订单的全部信息,目前欲追踪计划订单的相关信息,所以开发ADD-ON表存储有执行过的转化动作的计划订单的相关信息。
步骤:
找增强点:A可以用程序去找。
B 可以在源代码里打断点找 ‘call customer-function’
C 可以在源程序里打断点 ‘call BADI’
D 隐式增强
结果发现A/B/C都没有没找到增强点,或者是没有我们需要的增强点,那么就要用D方法 隐式增强的方式去找 说明这是个隐式增强点或者没有增强点
注意:隐式增强点也是系统提供的。
那怎么着隐式增强点呢:
进入T-CODE找到系统状态下该t-code对应的主程序名,屏幕号,都要记录下来,因为这些都是我们需要的找隐式增强点所需要的基础条件,还有就是我们要找的是单击保存的时候那个增强点,所以我们在单击的保存的时候,系统是为该按钮分配一个OK-CODE的,这个就要必须在/H下调试的时候去找了,所以我们应该先在左上角的输入框中输入/H,然后点击保存按钮进入debug模式,在调试变量的界面里输入变量SY-UCOMM看看一个它的值,这边是HZBA,注意SY-UCOMM是一个系统变量,是屏幕PAI触发的功能代码,这些找到的都是找隐式增强前提的基础信息。
然后把找到的主程序名在SE38中打开,然后进入到SE80下面,当然也可以直接进到SE80下面,在该程序的屏幕文件夹下找到我们之前的屏幕号,双击进到该屏幕下的代码下面,这里面我们要顺便讲一下我们会看到PROCESS BEFORE OUTPUT 和 PROCESS AFTER INPUT这两个是PBO和PAI事件,PBO事件是做一些初始化动作的,PAI事件是做一些屏幕展示后的后继处理,比如单击了回车啊单击了某一个按钮这些都执行PAI事件,当然我们这里的需要要找的也是在PAI下面的,去搜索我们之前找到的SY-UCOMM的值HZBA,也可以直接找到,我们这边的就是直接找到的,module check_fcode_210注意210就是屏幕号,我们双击进去找到HZBA,我们在HZBA下面找到了一个Perform程序,主要就是不在该程序下做增强,到这一步我们该怎么做呢,当然是双击进入这个perform程序下,找隐式增强和找普通增强不一样,我们必须先去单击这个工具栏上像个旋风的这个按钮
执行该按钮后,我们还要把该隐式增强点给show出来,点击菜单、编辑、enhancement 、 show implicit enhancement options。系统会自动将又隐式增强点的位置用‘’这样的横线标出来,一般都是在找到的位置程序的开始或者结束的位置,下面就是把鼠标的光标定位到该隐式增强点的这个线这边,点击菜单上的编辑、enhancement operations、 creat option,创建的时候会有一个列表存在,因为那可能是系统之前做的增强,而我们则要新建一个,名字就是我们隐式增强的名称,再写好描述,保存到一个package里,这样就建好了,隐士增强列表这边就会看到我们新建的这名称,因为我们要在我们新建的这个隐式增强下面写代码,所以我们要现在这个列表里选中我们刚才新建的这个隐式增强点名称,打开后在此处打上断点,激活后就再验证debug进到该增强点下面去验证一些变量,我们这个时候要对技术表有一些理解,在变量这个界面下面输入订单的基础表 PLAF,当然这个时候它是一个结构里面有刚才计划订单的信息,因为该示例要存储计划订单,所以我们要先客制一个表。