首页  ·  知识 ·  数据库
OracleERP展开BOM结构树的SQL
网友      编辑:德仔   图片来源:网络
V_ERR_MSG VARCHAR2(30); V_ERR_CODE VARCHAR2(200); LN_EXP_LEVEL NUMBER;
 
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
    >>频道首页  >>网站首页   纠错  >>投诉
版权声明:CIO之家尊重行业规范,每篇文章都注明有明确的作者和来源;CIO之家的原创文章,请转载时务必注明文章作者和来源;
延伸阅读
也许感兴趣的
我们推荐的
主题最新
看看其它的