转自:http://blog.csdn.net/chenxianping/article/details/42400913
写该blog之前,非常感恩网上各位热心朋友出手相助,为本人提供很多方法和建议。
系统版本:
RDBMS : 9.2.0.6.0
Oracle应用产品 : 11.5.10.2
问题症状:
1. 销售订单: 1110031700发运事务处理状态:已发放至仓库,搬运单: 2239734。并且销售订单的工作流正常。
2. 处理物料搬运单,输入搬运单: 2239734,查找不到要处理的录,从后台查看搬运单行有二条记录,其中有一条已经销售挑库成功。
select *from mtl_txn_request_headers mthwhere mth.request_number ='2239734';
select *from mtl_txn_request_lines mtlwhere mtl.header_id=1981938;
3. 查看现有量库存数量是够本次销售挑库。查看保留,现有量补该销售订单保留。试图删除保留记录,提示错误如下
4. 查看待定事务处理(非事务处理开放接口)中,并且选择“工具”->“全部提交”无任何效果。待定事务处理的处理标志为1、事务处理状态为已分配,但是无任何错误代码和错误解释。
5.在物料事务处理窗中,根据销售挑库的日期(事务处理日期)范围、物料编码(181810106786)、来源类型(销售订单)、来源(1110031700.11内销\.销售订单.ORDER ENTRY)和事务处理类型(销售挑库)等等条件,查找不到物料事务处理记录,说明没有销售挑库成功,确认挑库卡在待定事务处理中。
处理过程:
1.尝试通过销售订单取消保留,操作如下:
但是处理失败,提示错误
2.尝试提交请求“清除物料搬运单”,还是没有删除该搬单运。
3.有朋友建议后台删除对应的待定事务处理和保留(供应与需求),由于最近工作上事情,没有时间测试该方法,加涉相关台后基表比较多。后期有空测试一下。
最后,联想到以前做过类似的处理Oracle EBS“处理物料搬运单”出错解决方法,直接修改搬运单行的状态。
1.后台修改搬运单行状态
Declare v_MoveOrderLineIDNumber;--搬运单行ID v_OrderLineId Number;--销订单行ID Begin Select WDD.SOURCE_LINE_ID, WDD.MOVE_ORDER_LINE_ID Into v_OrderLineId, v_MoveOrderLineID From WSH_DELIVERY_DETAILS WDD Where WDD.DELIVERY_DETAIL_ID =2550584--对应“发运事务处理”的界面的“详细资料”如下图 And WDD.RELEASED_STATUS ='S';--发运事务处理行的状态为“已发放至仓库” If (v_OrderLineIdIsNullOr v_MoveOrderLineIDIsNull)Then Return; EndIf; --修改搬运单行状态 Update MTL_TXN_REQUEST_LINES MTL set MTL.LINE_STATUS =7--Line status old 5关闭 WHERE MTL.LINE_ID = v_MoveOrderLineID And MTL.Txn_Source_Line_Id = v_OrderLineId; Commit; Exception WhenOthersThen RollBack; End; |
2.按照正常的“处理搬动单”的操作方法完成销售挑库。
3.查检如下事项:
1.查看“保留”无对应销售订单记录
2.查看“待定事务处理”无对应销售订单记录
3.查看“物料事务处理”已经产生销售挑库的事务处理记录
4.查看“发运事务处理”对应行的状态“分批发运/确认挑库”和“销售订单”行的状态“已挑库”
总结:
根据网上朋友简单讨论得出“处理搬动单”过程相关影响如下示意图,
如处理方法欠佳或其它问题,敬请各位网友斧正。