最近跟了CO01的标准程序,业务顾问怀疑组件替代组取值有问题,所以去跟标准程序的组件取值。众所周知跟标准程序是件很头疼的事,需要耐心细心更需要技巧,通过这次解决问题的过程得到一些心得记录分享一下。
基本情况是成品物料直接下工单得到的组件数量和计划订单转工单得到的组件数量不一致。取数方向的问题首先想到ST05获取SQL路径,实际试了一下发现冗杂进程过多,果断放弃。然后想到取数过程是否是点击组件按钮时发生的,然后直接上手去跟了程序,结果发现在当前屏幕PAI事件中就已经发生了取数,点击组件只是进行跳转屏幕展示。看屏幕逻辑流代码Method名字将取数部分锁定在BOM_EXPLOSION内,好一个跟结果发现直到Method结束数据依然是和标准BOM一致的,此时心态有点崩,冷静下来想想其实这种问题出现的时候就应该想到关键点在于数据的变化点发生在哪里而不是整个的取数过程,顿时信心倍增。既然从前往后跟不能达到目的,就选择从结果往前看,进入组件子屏幕PBO第一个Mothed下断点,果然跟到我们想要的最终数据,进入函数我们可知RESB_BT就是我们要研究的变量内表,而数据变化的过程就在当前函数组内,这时候我们只需要找到任意一个调用的当前函数组的函数,然后将RESB_BT[]设置为观察点,即可捕捉到我们想要的数据变化过程,由于程序处理过程中涉及的组件数据很多,这时候我们还要灵活运用观察点的激活和取消激活 设置临时变量观察点来跳过一些我们不需要的跟踪过程,最终我们确认问题发生在可用性检查过程中,问题解决。
事后再来回忆整个过程,我们发现跟踪BOM原始的读数这个过程是没有必要的,要更精准的瞄准我们所需要的数据变化点,在一开始我们可以直接从组件子屏幕显示着手,获取到研究变量的名字,从而获取到观察点位置,然后再一步步的向前推演数据变化过程,事情就会变得事半功倍。