生产订单整批处理中不能过滤出来某些行记录的问题215号工程师问题描述:890版本,生产订单中有多行记录,在生产订单整批处理中只能过滤出来一行记录,其他行过滤不到,双击打开此张生产订单,可以看到所有行的记录。问题现象:问题分析:从上面显示的问题现象看,过滤时,已经将生产订单类型,生产订单状态,审批状态都进行了全选,过滤出来的生产订单记录只有一行记录,但是双击打开可以看到此生产订单0000000040,实际有三行记录。其中两行记录为何过滤不出来呢?当时跟用户确认,生产订单走审批流,首先想到是否后台审批流状态字段不正确导致。后台查看一下情况吧。在查询分析器中查询的结果如下:查看后台的是否进入审批流字段iswfcontrolled,已经审批状态字段iverifystate,都与第一行可以过滤出来的记录一致。Status生产订单状态字段,后两行记录为4,即关闭状态,虽然与第一行不同,但是也没有问题。那会是什么方面的原因呢?一时间突然没有了思路,仔细核对了生产订单第一行与后面过滤不出来的两行记录,没有发现问题。实在没有办法,那跟踪看看吧。下面是跟踪的结果。从上面跟踪的结果,发现了过滤记录的存储过程为Usp_MO_GetMOProcessBaseData打开此存储过程看看呢?此存储过程很长,大致看一下,发现此存储过程在定义变量时涉及到很多字段,但是之前已经对mom_orderdetail表中的记录做了对比都没有发现问题。其中只是有开工日期和完工日期,不存在于mom_orderdetail表中,是否开完工日期有问题?在软件中打开生产订单手工输入界面找到此张生产订单查看,果然后两行记录完工日期为空。。后台查询相应的mom_moder表中的记录。解决方案:至此,找到问题原因。解决方案很简单,在后台将生产订单完工日期加上后就可以在生产订单整批处理中正常查询。总结:对于此问题,在日常处理中应该不经常遇到。因为如果手工录入的生产订单,完工日期如果不录入是没有办法保存单据的。对于问题处理过程中,当时首先想到是状态的问题,当发现状态正常时,曾经没有思路,后来查询存储过程,找到思路点。总结分析解决问题过程,对于过滤生产订单母件行,除了查看mom_orderdetail表,还应该想到mom_morder表。mom_morder表记录开完工日期信息,常常被忽略。