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,用了一天时间把这个方法给搞出来了(觉得花费的 ...
随机推荐
- 轻松解决oracle11g 空表不能exp导出的问题。
解决方法: 1插入一条数据(或者再删除),浪费时间,有时几百张表会累死的.2创建数据库之前使用代码: Sql代码 alter system set deferred_segment_creation ...
- Ansible:遇到错误 "sudo: /etc/sudoers is world writable\r\nsudo: no valid sudoers sources found, quitting
执行ansible-playbook时,遇到该错误: 经过检查发现是因为在Linux中 /etc/sudoers该文件必须是只读权限的才行,故我们需要修改其权限为440,到root账户下修改,直接ch ...
- tkinter menu
python] view plain copy '''''Tkinter教程之Menu篇''' '''''1.创建一个简单的Menu''' # 添加菜单hello和quit,将hello菜单与hell ...
- 8.Appium的基本使用-1
1.Appium是什么?Appium是一个跨平台移动端自动化测试工具,可以便捷的为ios和Android平台创建自动化测试用例.模拟app内部各种操作,点击.滑动.文本输入等,手工操作的动作appiu ...
- 《算法》第四章部分程序 part 18
▶ 书中第四章部分程序,包括在加上自己补充的代码,在有权有向图中寻找环,Bellman - Ford 算法求最短路径,套汇算法 ● 在有权有向图中寻找环 package package01; impo ...
- spring 之 init-method & InitializingBean
init-method 是bean (第一次)实例化的时候被调用的. 先看个异常: INFO: Overriding bean definition ; dependencyCheck=; aut ...
- HTTP协议之认证
认证方式有: basic ntlm digest
- zookeeper(4)--zookeeper分布式锁原理
目前几乎很多大型网站及应用都是分布式部署的,分布式场景中的数据一致性问题一直是一个比较重要的话题.分布式的CAP理论告诉我们“任何一个分布式系统都无法同时满足一致性(Consistency).可用性( ...
- scrapy工作原理探秘
def _next_request_from_scheduler(self, spider):#engine从调度器取得下一个request slot = self.slot request = sl ...
- JS 相等判断 / 类型判断
相等判断 JavaScript提供三种不同的值比较操作: 严格相等 ("triple equals" 或 "identity"),使用 === , 宽松相等 ( ...