物料没加DUMMY
Posted Snowfun
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了物料没加DUMMY相关的知识,希望对你有一定的参考价值。
会加入DUMMY的表 IN_ITEM,IN_ITEM_SITE,IN_SALES_ORDER
加入DUMMY的存储过程名为SAP_MATERIAL_SO
--存储过程SAP_MATERIAL_SO SELECT * FROM TEMP_MATERIAL_SALESORDER WHERE DUMMY_ITEM_ID LIKE ‘000000101%‘; SELECT SO_ID, SO_LINE_ID, SITEID, ITEM_ID, QTYUOM, ITEM_ID || V_LastChar DUMMY_ITEM_ID, SO_ID || ‘_‘ || SITEID || ‘_‘ || SO_LINE_ID DUMMY_BOM_ID, V_DummyRouting || ‘_‘ || SITEID DUMMY_ROUTING_ID FROM (SELECT SO_ID, SUBSTR (SO_LINE_ID, 1, INSTR (SO_LINE_ID, ‘_‘) - 1) SO_LINE_ID, SITEID, ITEM_ID, QTYUOM, ROW_NUMBER () OVER ( PARTITION BY SO_ID, SUBSTR (SO_LINE_ID, 1, INSTR (SO_LINE_ID, ‘_‘) - 1) ORDER BY SO_LINE_ID) RN,UDF_MATERIAL_SO,BOMID FROM IN_SALES_ORDER WHERE SO_ID=‘04700014442‘ AND SO_LINE_ID=‘490_1‘ AND UDF_MATERIAL_SO = ‘1‘ AND BOMID IS NULL ) WHERE RN = 1; SELECT SO_ID, SUBSTR (SO_LINE_ID, 1, INSTR (SO_LINE_ID, ‘_‘) - 1) SO_LINE_ID, SITEID, ITEM_ID, QTYUOM, ROW_NUMBER () OVER ( PARTITION BY SO_ID, SUBSTR (SO_LINE_ID, 1, INSTR (SO_LINE_ID, ‘_‘) - 1) ORDER BY SO_LINE_ID) RN,UDF_MATERIAL_SO,BOMID FROM IN_SALES_ORDER WHERE SO_ID=‘04700014442‘ AND SO_LINE_ID=‘490_1‘ AND UDF_MATERIAL_SO = ‘1‘ AND BOMID IS NULL ;
--SAP_SALES_ORDER SELECT vbap.VBELN,vbep.POSNR, vbep.POSNR || ‘_‘ || vbep.ETENR AS SO_LINE_ID, vbak.VBTYP, vbak.KUNNR, vbap.MATNR, vbap.WERKS, vbap.ERDAT, knvv.BZIRK, knvv.VTWEG, vbak.VDATU, SUBSTR (mara.matnr, 1, 9), TRIM (MARA.MTART),VBAP.MATNR || VBAP.WERKS , CASE WHEN TRIM (MARA.MTART) = ‘Z001‘ AND SUBSTR (mara.matnr, 1, 9) NOT IN (‘000000701‘, ‘000000702‘) THEN ‘0‘ -- add by zhangguipeng on 20170323 增加SO\STO需求出货物料编码开头为402或102,设定为材料订单; WHEN SUBSTR(VBAP.MATNR,1,9) IN(‘000000102‘,‘000000402‘) THEN ‘1‘ WHEN VBAP.MATNR || VBAP.WERKS IN (SELECT DISTINCT MATNR || WERKS FROM SAP_MAST) THEN ‘0‘ ELSE ‘1‘ END AS UDF_MATERIAL_SO,-------- IN_BOM_HEADER.BOM_ID, VBAK.AUART, CASE WHEN TRIM(VBAK.VKORG) = ‘2500‘ AND TRIM(VBAK.ERNAM) = ‘SAPRFC‘ THEN VBEP.EDATU ELSE NVL (so_date.edatu3, so_date.edatu2) END AS edatu2, --ALTER BY HUANGYANGXIONG ON 20150114 新增栏位判断是否回写SO交期 CASE WHEN TRIM (SO_DATE.EDATU2) IS NOT NULL THEN VBEP.EDATU ELSE NULL END AS EXT_FORDATE, ROW_NUMBER () OVER ( PARTITION BY VBAK.VBELN, vbep.POSNR || ‘_‘ || vbep.ETENR ORDER BY vbap.VBELN, vbep.POSNR || ‘_‘ || vbep.ETENR DESC, VBEP.EDATU DESC) rn FROM SAP_VBAP vbap JOIN SAP_VBEP vbep ON vbap.VBELN = vbep.VBELN AND vbep.posnr = vbap.posnr JOIN SAP_VBAK vbak ON vbap.VBELN = vbak.VBELN JOIN SAP_KNVV knvv ON vbak.KUNNR = knvv.KUNNR AND vbak.vkorg = knvv.vkorg AND vbak.vtweg = knvv.vtweg JOIN SAP_MARC MARC ON VBAP.MATNR = MARC.MATNR AND MARC.WERKS = VBAP.WERKS JOIN SAP_MARA MARA ON VBAP.MATNR = MARA.MATNR LEFT JOIN SAP_CUSTOMER_INSPECT ON VBAK.KUNNR = SAP_CUSTOMER_INSPECT.KUNNR AND VBAP.MATNR = SAP_CUSTOMER_INSPECT.MATNR LEFT JOIN IN_BOM_HEADER ON VBAP.MATNR = IN_BOM_HEADER.PRODUCT_ID AND IN_BOM_HEADER.MO_BOM_MARK = ‘0‘ AND VBAP.WERKS = SUBSTR ( IN_BOM_HEADER.bom_id, INSTR (IN_BOM_HEADER.bom_id, ‘_‘) + 1, 4) LEFT JOIN SAP_SHIPPING_CODE SHIPPING ON VBAK.VBELN = SHIPPING.VBELN LEFT JOIN SAP_OSAL_OUT osal_out ON vbep.vbeln = osal_out.vbeln AND VBEP.POSNR = OSAL_OUT.POSNR AND VBEP.ETENR = OSAL_OUT.ETENR LEFT JOIN TEMP_SAP_MSKA MSKA ON VBEP.VBELN = MSKA.VBELN AND VBEP.POSNR = MSKA.POSNR AND VBEP.ETENR = MSKA.ETENR AND VBAP.MATNR = MSKA.MATNR LEFT JOIN SAP_SO_DATE SO_DATE ON VBEP.VBELN = SO_DATE.VBELN AND VBEP.POSNR = SO_DATE.POSNR AND VBEP.ETENR = SO_DATE.ETENR WHERE TRIM (MARC.LVORM) IS NULL AND TRIM (MARA.LVORM) IS NULL AND vbap.VBELN=‘5000164149‘ AND vbep.POSNR=‘850‘
SELECT * FROM SAP_MAST WHERE MATNR || WERKS =‘000000101011012247‘;--有问题 SELECT * FROM SAP_MAST WHERE MATNR || WERKS =‘000000101005006640‘;--无 --INSERT INTO STG.SAP_MAST(MATNR,WERKS,STLNR,STLAN,ANDAT,AEDAT) SELECT DISTINCT TRIM(MAST.MATNR) as MATNR, TRIM(MAST.WERKS) as WERKS, TRIM(MAST.STLNR) as STLNR, --TRIM(MAST.STLAN) as STLAN, TRIM(MAST.STLAL) as STLAN, TO_DATE(SUBSTR(MAST.ANDAT,1,4)||‘-‘||SUBSTR(MAST.ANDAT,5,2)||‘-‘||SUBSTR(MAST.ANDAT,7,2),‘YYYY-MM-DD‘) AS ANDAT, CASE WHEN AEDAT=‘00000000‘ then null WHEN AEDAT IS NULL THEN NULL ELSE TO_DATE(SUBSTR(MAST.AEDAT,1,4)||‘-‘||SUBSTR(MAST.AEDAT,5,2)||‘-‘||SUBSTR(MAST.AEDAT,7,2),‘YYYY-MM-DD‘) END AS AEDAT FROM SAPSR3.MAST@SAP_SEP MAST JOIN SAPSR3.ZFP_STLNR@SAP_SEP ZFP_STLNR ON MAST.MANDT = ZFP_STLNR.MANDT AND MAST.STLNR = ZFP_STLNR.STLNR WHERE TRIM(MAST.WERKS) IN (SELECT WERKS FROM SAPSR3.ZFM_FP_WERKS@SAP_SEP SZ WHERE SZ.ID IN (1,2,3)) AND MAST.MATNR IN (‘000000101011012247‘,‘000000101011012247‘); SELECT * FROM SAPSR3.ZFP_STLNR@SAP_SEP WHERE MATNR IN (‘000000101011012247‘,‘000000101005006640‘); --INSERT INTO SAPSR3.ZFP_STLNR(MANDT,STLNR,MATNR,WERKS) SELECT DISTINCT TRIM(MAST.MANDT) AS MANDT, TRIM(MAST.STLNR) AS STLNR, TRIM(MAST.MATNR) AS MATNR, TRIM(MAST.WERKS) AS WERKS FROM SAPSR3.MAST@SAP_SEP MAST JOIN SAPSR3.MARC@SAP_SEP MARC ON MAST.MATNR = MARC.MATNR AND MAST.WERKS = MARC.WERKS AND MAST.MANDT = MARC.MANDT WHERE MAST.MANDT = ‘800‘ --AND MAST.WERKS IN (SELECT WERKS FROM [email protected]_SEP SZ WHERE SZ.ID IN (1,2,3)) --AND TRIM(MARC.BESKZ) IN (‘E‘,‘X‘) AND MAST.MATNR IN (‘000000101011012247‘,‘000000101005006640‘); SELECT * FROM SAPSR3.MAST@SAP_SEP WHERE MATNR IN (‘000000101011012247‘,‘000000101005006640‘);
有问题的数据为MAST中没有数据导致
以上是关于物料没加DUMMY的主要内容,如果未能解决你的问题,请参考以下文章