首页  ·  知识 ·  数据库
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
   
免责声明:本站转载此文章旨在分享信息,不代表对其内容的完全认同。文章来源已尽可能注明,若涉及版权问题,请及时与我们联系,我们将积极配合处理。同时,我们无法对文章内容的真实性、准确性及完整性进行完全保证,对于因文章内容而产生的任何后果,本账号不承担法律责任。转载仅出于传播目的,读者应自行对内容进行核实与判断。请谨慎参考文章信息,一切责任由读者自行承担。
延伸阅读