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,用了一天时间把这个方法给搞出来了(觉得花费的 ...
随机推荐
- 理解 with递归调用 Sqlserver 树查询
--with用法 --可以这么理解 with SQL语句变量或者叫临时表名 as( SQL语句 ) select * from SQL语句变量或者叫临时表名 --递归调用 with CTE as( s ...
- C#取整函数Math.Round、Math.Ceiling和Math.Floor
1.Math.Round:四舍六入五取偶 引用内容 Math.Round(0.0) //0Math.Round(0.1) //0Math.Round(0.2) //0Math.Round(0.3) / ...
- openx -书表添加字段
OpenX的版本是2.8.10.在数据表加完数据库之后,还不能读取和保存字段. OpenX使用scheme来 管理数据库表和字段, 修改数据库结构同时也要修改相关schema, 一个是etc/tabl ...
- Dubbox服务demo
一.安装虚拟机,安装所需要的jdk.zookeeper并启动zookeeper,虚拟机的ip+zookeeper默认端口号2181 二.编写Service服务方 1.创建Maven项目 2.编写接口 ...
- java接口的学习笔记
1接口 接口是一个特殊的类,在JAVA中,接口是由抽象方法和全局敞亮组成. 在JAVA忠使用INTERFACE定义接口. public class InterfaceDemo { public sta ...
- 玩转音频、视频的利器:FFmpeg
导语 当下直播平台发展十分迅猛,依靠游戏内直播平台的发展带动游戏活跃提升收入,那么对于我们开发来说如何玩转视频呢?下面就来介绍一个音频.视频处理利器——FFmpeg. FFmpeg 简介 FFmpeg ...
- Set原理
一.HashSet判断重读值的原理 1. 哈希表的存储结构: ==>数组+链表,数组的每个元素以链表的形式存储 2.如何把对象存储到哈希表中 ==>先计算对象的hashcod值,再对数组的 ...
- linux 显示系统执行的进程
ps -a 显示所有的进程信息 -u 以用户的形式显示系统进程 -x 显示后台进程运行的参数 netstat -anp |more 查看端口 查看开放的端口 vim/etc/sysconfig/ ...
- JVM的 GC机制和内存管理
GC机制:java垃圾回收机制,垃圾收集器线程(Garbage Collection Thread)在 JVM 处于空闲循环式,会自动回收无用的内存块. 垃圾收集算法:1.引用计数 2.根搜索 3 ...
- Linux 目录栈及目录切换
使用 cd - (中杠)会切换到上一次的目录 cd 命令会改变目录栈 1.dirs 1)功能显示当前目录栈中的所有记录(不带参数的dirs命令显示当前目录栈中的记录) 2)语法(1)格式:dirs ...