CRTD模拟MFG工单进行绑定优化
需求:按单按库生产的CRTD状态半成品工单重复创建问题
绑定成功案例:
SELECT DEMANDLINEID,SUPPLYORDERID,DEMANDORDERID,QTYALLOCATED,ITEM FROM ABPPMGR.SUPPLYDMDPEGPLAN WHERE ITEM='000000102002000817CZ';--前台显示 --SO:5000156623 模拟创建了成品MO:5000156623/70_1-MFG001,成品MO号供给者为半成品MO:001201126508
SELECT DEMANDORDERID,DEMANDLINEID,DEMANDTYPE,ITEM,QTYINMOVE,SOURCEDATE,SUPPLYORDERID,SUPPLYTYPE,QTYALLOCATED
FROM ABPPMGR.supplydmdpegging WHERE (DEMANDORDERID='' AND DEMANDLINEID='70_1') OR DEMANDORDERID='5000156623/70_1-MFG001' ; --000000101002001849CZ 001201126508 000000102002000845CZ SELECT PRODUCTIONORDID,BOMID,ITEM,QTYORDERED,REQUIREDDATE,ROUTINGID,UDF_MO_FACTORY FROM ABPPMGR.PRODUCTIONORDERS WHERE PRODUCTIONORDID='5000156623/70_1-MFG001'; SELECT * FROM IN_SFCHEADER where so_id='' and so_line_id='';
SELECT * FROM ABPPMGR.MST_BOMCOMPONENTSALT where alternateitem like '000000102002000817CZ%' ;--alternateitem替代料,item为主料



解决方法:


下面修改SAP_MO表是为了避免TECO,CLSD的工单写到IN_MO或IN_SFCHEADER表的PEGGED_MO_ID栏位中,导致supplydmdpegging表中无法将此工单与SO进行绑定

下面是修复当使用替料时导致CRTD绑定失败问题,原因是工艺路线数据问题导致
.
以下是因为工艺路线问题导致绑定不成功


成功绑定案例2(拆分计划行)
SELECT DEMANDLINEID,SUPPLYORDERID,DEMANDORDERID,QTYALLOCATED,ITEM FROM ABPPMGR.SUPPLYDMDPEGPLAN WHERE ITEM='000000102005000397CA';--前台显示 SELECT DEMANDORDERID,DEMANDLINEID,DEMANDTYPE,ITEM,QTYINMOVE,SOURCEDATE,SUPPLYORDERID,SUPPLYTYPE,QTYALLOCATED
FROM ABPPMGR.supplydmdpegging WHERE ITEM='000000102005000397CA' ; SELECT PRODUCTIONORDID,BOMID,ITEM,QTYORDERED,REQUIREDDATE,ROUTINGID,UDF_MO_FACTORY FROM ABPPMGR.PRODUCTIONORDERS WHERE PRODUCTIONORDID LIKE '5000154378/460%'; SELECT * FROM IN_MO where so_id='' and so_line_id='';





写入代码为
--no ASS MO yet
INSERT ALL
WHEN SOCOUNT =1 THEN
INTO abppmgr.SUPPLYDMDPEGGING
( ENTERPRISE
, ENGINE_ID
, DEMANDLINEID
, DEMANDORDERID
, DEMANDTYPE
, ITEM
, QTYALLOCATED
, SITEID
, LOCATIONID
, SUPPLYORDERID
, SUPPLYTYPE
, ISDEMANDLOCKED
, SYS_CREATED_BY
)
values( ENTERPRISE
, ENGINE_ID
, SO_LINE_ID
, SO_ID
, 'SO'
, PRODUCT_ITEM
, QTYORDERED
, SITEID
, NULL
, PRODUCTIONORDID
, 'MFG'
, ''
, SYS_CREATED_BY
)
when SOCOUNT=1 then INTO abppmgr.PRODUCTIONORDERS
( ENTERPRISE
, ENGINE_ID
, BOMID
, ITEM
, PLANNEDSTARTDATE
, PRODUCTIONORDID
, QTYORDERED
, REQUIREDDATE
, ROUTINGID
, SITEID
, SYS_CREATED_BY
,ISFEEDSLOCKED
,ISQTYLOCKED
,ISROUTINGLOCKED
)
values(ENTERPRISE
, ENGINE_ID
, BOMID
, PRODUCT_ITEM
, PLANNEDSTARTDATE
, PRODUCTIONORDID
, QTYORDERED
, REQUIREDDATE
, ROUTINGID
, SITEID
, SYS_CREATED_BY
,ISFEEDSLOCKED
,ISQTYLOCKED
,ISROUTINGLOCKED)
when SOCOUNT is not null then
INTO abppmgr.SUPPLYDMDPEGGING
( ENTERPRISE
, ENGINE_ID
, DEMANDLINEID
, DEMANDORDERID
, DEMANDTYPE
, ITEM
, QTYALLOCATED
, SITEID
, SUPPLYORDERID
, SUPPLYTYPE
, ISDEMANDLOCKED
, SYS_CREATED_BY
)
values( ENTERPRISE
, ENGINE_ID
, NULL
, PRODUCTIONORDID
, 'MFG'
, SEMI_ITEM
, SEMI_QTY
, SITEID
, SEMI_MO
, 'MFG'
, ''
, SYS_CREATED_BY
)
SELECT ENTERPRISE
, ENGINE_ID
, BOMID
, SO_ID
, SO_LINE_ID
, SEMI_ITEM
, PRODUCT_ITEM
, PLANNEDSTARTDATE
, PRODUCTIONORDID
, QTYORDERED
, SEMI_QTY
, SEMI_MO
, REQUIREDDATE
, ROUTINGID
, SITEID
, SYS_CREATED_BY
,ISFEEDSLOCKED
,ISQTYLOCKED
,ISROUTINGLOCKED
, SOCOUNT from (
SELECT V_ENTERPRISE ENTERPRISE
, V_ENGINEID ENGINE_ID
, SO.SO_ID
, SO.SO_LINE_ID
, DECODE(TRIM(BR.BOM_ID),NULL,NULL,''|| LTRIM(SO.ITEM_ID,'') ||'_'|| TRIM(BR.BOM_ID)) BOMID
, SO.ITEM_ID PRODUCT_ITEM
, SYSDATE PLANNEDSTARTDATE
, SO.SO_ID||'/'||SO. SO_LINE_ID||'-'||'MFG001' PRODUCTIONORDID
, SO.ORDERED_QTY QTYORDERED
, MO.QUANTITY SEMI_QTY
, MO.MO_ID SEMI_MO
, NVL(SO.UDF_PROMD,SO.UDF_CRSD) REQUIREDDATE
, BR.ROUTING_ID ROUTINGID
, V_SITEID SITEID
, MO.ITEM_ID SEMI_ITEM
, V_PRONAME||'_'||V_STEP SYS_CREATED_BY
,'' ISFEEDSLOCKED
,'' ISQTYLOCKED
,'' ISROUTINGLOCKED,
ROW_NUMBER() OVER(PARTITION BY MO.PEGGED_SO_ID,MO.PEGGED_SO_LINE_ID ORDER BY SO.SO_LINE_ID desc) SOCOUNT,
ROW_NUMBER() OVER(PARTITION BY MO.PEGGED_SO_ID,MO.PEGGED_SO_LINE_ID,MO.MO_ID ORDER BY SO.SO_LINE_ID desc) RN
FROM IN_SEMI_MO_LOCKED MO,IN_SALES_ORDER SO,IN_ITEMBOMROUTING BR WHERE
MO.PEGGED_SO_ID=SO.SO_ID AND MO.PEGGED_SO_LINE_ID=SUBSTR(SO.SO_LINE_ID,1,INSTR(SO.SO_LINE_ID,'_')-1)
AND BR.PRODUCED_ITEM_ID=SO.ITEM_ID and MO.PEGGED_MO_ID is null
AND BR.siteid=SO.siteid
AND EXISTS(SELECT NULL FROM IN_BOM_HEADER BH WHERE BH.BOM_ID=BR.BOM_ID AND BH.MO_BOM_MARK='')
) WHERE RN=1 AND EXISTS (SELECT NULL FROM ABPPMGR.MST_ITEMMASTER AM WHERE PRODUCT_ITEM = AM.ITEM) AND EXISTS (SELECT NULL FROM ABPPMGR.MST_ITEMMASTER AM WHERE SEMI_ITEM = AM.ITEM)
AND NOT EXISTS (SELECT NULL FROM abppmgr.SUPPLYDMDPEGGING SUP WHERE SO_ID = SUP.DEMANDORDERID AND SO_LINE_ID = SUP.DEMANDLINEID)
;
COMMIT;
CRTD模拟MFG工单进行绑定优化的更多相关文章
- Vue(10)表单输入绑定v-model
v-model v-model指定可以实现表单值与属性的双向绑定.即表单元素中更改了值会自动的更新属性中的值,属性中的值更新了会自动更新表单中的值 绑定的属性和事件 v-model在内部为不同的输入元 ...
- .Net模拟提交表单
2016-09-0210:49:20 以中邮速递API为服务接口,由于提交方式为表单提交,我要获取返回值来处理其他业务,所以一开始尝试采用Js后台获取返回值,但是涉及到跨域请求限制问题,那边服务端接口 ...
- (OSP)外包工单关工单失败
会计同事反映,在关几个外包(OSP)工单时,系统报错.错误讯息如下.检查错误讯息,发现Number of jobs failed in Delivered Quantity : 2.检查工单数据,均无 ...
- failed jobs because of past close date,关工单报错
今天会计反映关不了工单.我们公司关工单的程序是自己开发的,可以整批关.报如下错误.我试着用Standad程序关,可以.看来应该是我们开发的程序有问题.后来发现,是抛到WIP_DJ_CLOSE_TEMP ...
- MD4C/CO46/MD04一个很棒的工单缺料分析
大家好~~~ 之前在MD04物料分析的时候,看到有订单预留,双击有个订单报告可以显示一个订单物料是否缺料清单 这个单独的工单分析可以在T-code:MD4C,CO46查看,如果只是单独的使用,那么这两 ...
- LINUX单网卡绑定多个IP
在linux下,我们有时候需要给单网卡设置不同的IP地址,这样就涉及到单网卡绑定多个IP地址的情况.使用本方法可以方便的为单网卡绑定多个IP地址.笔者使用的环境是centos5.6,应该在fedora ...
- 模拟JQUERY的延迟方法绑定
模拟JQUERY的延迟方法绑定, 对于延迟方法绑定,各种语言都有不同的描述 什么回调啊,函数指针啊,委托啊,事件啊等,其实也就是那么大回事,不过用好这些特性,对于扩展和架构是非常有好处的, 好处自然就 ...
- 通过HttpURLConnection模拟post表单提交
通过HttpURLConnection模拟post表单提交 package junit; import java.io.InputStream; import java.net.HttpURLConn ...
- nodejs 模拟form表单上传文件
使用nodejs来模拟form表单进行文件上传,可以同时上传多个文件. 以前项目里有这个方法,最近在客户那里出问题了,同事说,这个方法从来就没管用过,SO,用了一天时间把这个方法给搞出来了(觉得花费的 ...
随机推荐
- ORA-01940:无法删除当前已链接的用户(转)
(1)查看用户的连接状况 select username,sid,serial# from v$session ------------------------------------------ 如 ...
- ROS学习手记 - 6 使用ROS中的工具:rqt_console & roslaunch & rosed
http://wiki.ros.org/ROS/Tutorials/UsingRqtconsoleRoslaunch Using rqt_console and roslaunch This tuto ...
- uva10603-倒水问题-暴力枚举-隐式图搜索
题意: 给你三个杯子,a,b,c,没有刻度,刚开始c杯是满的,倒水的要求,要么倒出水的杯子倒空,要么倒入杯子倒满. 结果: 要求某个杯子内有d水量,并且倒出的水量最少,如果倒不出d水量,那么倒出d1( ...
- 列表、字典、append
list[] 定义列表可以是空的也可以直接定义列表中的元素,例如:list = ["hello", "world", "dlrb"] dic ...
- Pig latin基础
pig的两种运行模式,local模式,mapreduce模式 local模式下,pig只能访问本地一台:在mapreduce模式下,pig可以访问一个hadoop集群和hdfs的安装位置.这时,pig ...
- mezzanine的page表
class Orderable(with_metaclass(OrderableBase, models.Model)): """ Abstract model that ...
- Spring Cloud (6)A config 服务端配置 与github通信
1. 在git上创建一个库,并复制库地址 2.用git clone项目到本地,并创建application.yml application.yml 内容 --下一步 3.将application.ym ...
- RAD Tokyo 10.2.2
TDialogService类 如果您是使用比较新的RAD Studio版本. 那么您应该开始改用FMX.DialogService程序单元中TDialogService类别的类别方法来取代以前的Me ...
- IO 和 NIO 的区别
IO:阻塞IO,面向流:当一个线程调用read() 或 write()时,该线程被阻塞,直到有一些数据被读取,或数据完全写入,该线程在此期间不能再干任何事情了:可以有少量的连接使用非常高的带宽,一次发 ...
- day04-运算符
Python语言支持以下类型的运算符: 算术运算符比较运算符赋值运算符逻辑运算符位运算符成员运算符身份运算符 算术运算符 运算符 描述 实例 + 加 - 两个对象相加 10+20输出结果 30 - 减 ...