V_ERR_MSG VARCHAR2(30);
V_ERR_CODE VARCHAR2(200);
LN_EXP_LEVEL NUMBER;
LN_ITEM_ID NUMBER;
V_REV_DATE VARCHAR2(240);
LN_GRP_ID NUMBER;
CURSOR C_BOM_TEMP IS
SELECT MSI.INVENTORY_ITEM_ID
FROM MRP_SCHEDULE_ITEMS MSI
WHERE MSI.SCHEDULE_DESIGNATOR = :P_MDS
AND MSI.ORGANIZATION_ID = :P_ORG_ID;
begin
--SRW.USER_EXIT('FND SRWINIT');
delete from XAC.XXBOM_EXPLOSION_TEMP_SAVE;
OPEN C_BOM_TEMP;
LOOP
FETCH C_BOM_TEMP
INTO LN_ITEM_ID;
EXIT WHEN C_BOM_TEMP%NOTFOUND;
V_REV_DATE:=TO_CHAR(SYSDATE, 'YYYY-MM-DD:HH24:MI:SS');
SELECT BOM_EXPLOSION_TEMP_S.NEXTVAL INTO LN_GRP_ID FROM DUAL;
select maximum_bom_level
into LN_EXP_LEVEL
from bom_parameters
where organization_id = _org_id;
BOMPEXPL.EXPLODER_USEREXIT (
VERIFY_FLAG => NULL,
ORG_ID => _org_id,
ORDER_BY => NULL,
GRP_ID => LN_GRP_ID,
SESSION_ID => NULL,
LEVELS_TO_EXPLODE => LN_EXP_LEVEL,
BOM_OR_ENG => 1,
IMPL_FLAG => 1,
PLAN_FACTOR_FLAG => NULL,
EXPLODE_OPTION => 2,
MODULE => 2,
CST_TYPE_ID => NULL,
STD_COMP_FLAG => 1,
EXPL_QTY => NULL,
ITEM_ID => LN_ITEM_ID,
ALT_DESG => NULL,
COMP_CODE => NULL,
REV_DATE => V_REV_DATE,
ERR_MSG => V_ERR_MSG,
ERROR_CODE => V_ERR_CODE );
INSERT INTO XAC.XXBOM_EXPLOSION_TEMP_SAVE
SELECT * FROM BOM_EXPLOSION_TEMP
WHERE EXISTS (SELECT 1 FROM BOM_SUBSTITUTE_COMPONENTS WHERE COMPONENT_SEQUENCE_ID = BOM_EXPLOSION_TEMP.COMPONENT_SEQUENCE_ID);
END LOOP;
CLOSE C_BOM_TEMP;
COMMIT;
return (TRUE);
end;
本文作者:网友 来源:网络
CIO之家 www.ciozj.com 微信公众号:imciow