业务组提出使用CO27对订单发料时检查批次,如果已发料,检查是否和已发的批次一致;如果没发,并且同一物料同一订单有多个行项目的,检查批次是否一致。
因为保存的时候会产生会计凭证的,所以我认为利用MB_DOCUMENT_BADI可以做到。结果代码是可以写,但是警告消息根本不停,错误消息直接来个红屏,跟踪了一下,发现有错误消息系统都给你抛个X类型的MESSAGE。
到这个时候,关键问题是找一个合适的BADI。折腾了半天,最后跟踪程序发现WORKORDER_GOODSMVT有个PICKLIST的方法,但是这个是在点“拣配”的时候起作用的。你如果想在拣配清单这个屏幕出来之前,操作拣配清单的某些字段,这个是可以做到的。但是我要的是在拣配清单这个屏幕点“保存”按钮时进行检查,最后在WORKORDER_GOODSMVT下发现GM_SCREEN_OKCODE_CHECK是可以做到的,不管是W,还是E类型的消息都能停住。GM_SCREEN_LINE_CHECK也可以,但它只能检查光标在的那一行。
如果要想在拣配清单上做点别的检查或者小动作,我想WORKORDER_GOODSMVT这个BADI也是可以做到的。
阅读(1528) | 评论(2) | 转发(0) |