需求:按单按库生产的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工单进行绑定优化的更多相关文章

  1. Vue(10)表单输入绑定v-model

    v-model v-model指定可以实现表单值与属性的双向绑定.即表单元素中更改了值会自动的更新属性中的值,属性中的值更新了会自动更新表单中的值 绑定的属性和事件 v-model在内部为不同的输入元 ...

  2. .Net模拟提交表单

    2016-09-0210:49:20 以中邮速递API为服务接口,由于提交方式为表单提交,我要获取返回值来处理其他业务,所以一开始尝试采用Js后台获取返回值,但是涉及到跨域请求限制问题,那边服务端接口 ...

  3. (OSP)外包工单关工单失败

    会计同事反映,在关几个外包(OSP)工单时,系统报错.错误讯息如下.检查错误讯息,发现Number of jobs failed in Delivered Quantity : 2.检查工单数据,均无 ...

  4. failed jobs because of past close date,关工单报错

    今天会计反映关不了工单.我们公司关工单的程序是自己开发的,可以整批关.报如下错误.我试着用Standad程序关,可以.看来应该是我们开发的程序有问题.后来发现,是抛到WIP_DJ_CLOSE_TEMP ...

  5. MD4C/CO46/MD04一个很棒的工单缺料分析

    大家好~~~ 之前在MD04物料分析的时候,看到有订单预留,双击有个订单报告可以显示一个订单物料是否缺料清单 这个单独的工单分析可以在T-code:MD4C,CO46查看,如果只是单独的使用,那么这两 ...

  6. LINUX单网卡绑定多个IP

    在linux下,我们有时候需要给单网卡设置不同的IP地址,这样就涉及到单网卡绑定多个IP地址的情况.使用本方法可以方便的为单网卡绑定多个IP地址.笔者使用的环境是centos5.6,应该在fedora ...

  7. 模拟JQUERY的延迟方法绑定

    模拟JQUERY的延迟方法绑定, 对于延迟方法绑定,各种语言都有不同的描述 什么回调啊,函数指针啊,委托啊,事件啊等,其实也就是那么大回事,不过用好这些特性,对于扩展和架构是非常有好处的, 好处自然就 ...

  8. 通过HttpURLConnection模拟post表单提交

    通过HttpURLConnection模拟post表单提交 package junit; import java.io.InputStream; import java.net.HttpURLConn ...

  9. nodejs 模拟form表单上传文件

    使用nodejs来模拟form表单进行文件上传,可以同时上传多个文件. 以前项目里有这个方法,最近在客户那里出问题了,同事说,这个方法从来就没管用过,SO,用了一天时间把这个方法给搞出来了(觉得花费的 ...

随机推荐

  1. PHP读取txt文件到数组

    $file_path = "test.txt"; if(file_exists($file_path)){ $file_arr = file($file_path); for($i ...

  2. javax.validation.UnexpectedTypeException: HV000030: No validator could be found for constraint 'javax.validation.constraints.Size' validating type 'java.util.Date'.

    开始是 javax.validation.UnexpectedTypeException: No validator could be found for type: java.lang.Intege ...

  3. SDE在64位Server2008下Post启动服务失败官方解释

    解决了一个SDE启动问题,在此记录一下 在server 2008 64位下安装完arcgis sde之后,Post启动服务,总是失败 查看SDE日志(etc目录下) DB_open_instance( ...

  4. Redis 主从复制, 读写分离

    1: 是什么? 2: 经常是配置从库, 不配置主库 3.1: 每次与 master 断开之后都要从连, 除非你配置了redis.conf 3.2: 获取当前redis 服务信息 => info ...

  5. STM32F103C8开发板原理图和管脚图

  6. ABAP-语法检查

    1.界面 2.代码 *&---------------------------------------------------------------------* *& Report ...

  7. confusing c++ 重写 与 重定义 记录1

    class parent { public: void f() { cout << "parent f()" << endl; } void f(int i ...

  8. Bash:精华

    # 声明索引数组(以从0开始的整数做索引的数组).以下三种等效. declare -a array declare array=(this is numeric array ) array=(this ...

  9. 在服务器上同时启动多个tomcat

    我所用Tomcat服务器都为zip版,非安装版.以两个为例:安装第二个Tomcat完成后,到安装目录下的conf子目录中打开server.xml文件,查找以下三处:(1) 修改http访问端口(默认为 ...

  10. springboot 异步执行程序

    一步:在启动项里面加入注解    (类似定时) //开启异步调用方法@EnableAsync 二步:在包中的AsyncTask .java 类中 写三个方法 三步:是在DoTask.java 中调用的 ...