Oracle EBS BOM-标准展BOM-SQL查询

展BOM计算物料需求或展BOM成本明细

路径:BOM->清单->多级表单如下


主要调用Oracle EBS系统存储过程:bompexpl.exploder_userexit 和临时表:bom_explosion_temp

参数说明备注
Verify_Flag默认为0默认值为0
Org_Id 库存组织ID 
Order_By排序1为 工序;物料序号
2为 物料序号;工序
Grp_Id组别ID序列Bom_Explosion_Temp_S.NextVal给它赋值
Session_Id会话ID,默认为0 
Levels_To_Explode最大层级默认为设置
Bom_Or_EngBOM或工程BOM默认值为1
Impl_Flag仅限于已实施的BOM默认值为1
Plan_Factor_Flag使用计划%默认值为2
Explode_Option展BOM选项,默认值为31.全部
2.当前
3.将来和当前
Module成本默认值为2
Cst_Type_Id成本类型1.为Frozen冻结成本
3.为Pending待定成本
Std_Comp_Flag 默认值为2
Expl_Qty数量默认值为1
Item_Id物料ID 
Alt_Desg替代项默认值为Null
Comp_Code 默认值为Null
Unit_Number_From部件号从 
Unit_Number_To部件号至 
Rev_Date有效日期默认为当前时间
Show_Rev 默认值为1
Material_Ctrl物料控制 
Lead_Time提前期默认值为2

实例代码如下:

-- 1.产生临时表查询数据 --------------------------------------------------------------------------------------------------------------
DECLARE
  L_GRP_ID             NUMBER;
  L_SESSION_ID         NUMBER;
  L_ORG_ID             NUMBER;
  L_LEVELS_TO_EXPLODE  NUMBER := 10;
  L_MODULE             NUMBER DEFAULT 2; -- BOM = 2 
  L_CST_TYPE_ID        NUMBER DEFAULT - 1; -- All cost = -1 else 0 
  L_ITEM_ID            NUMBER;
  L_BOM_OR_ENG         NUMBER;
  L_USING_REQ_QUANTITY NUMBER;
  L_USING_ASS_DEM_DATE DATE;
  L_REV_DATE           VARCHAR2(20) := TO_CHAR(SYSDATE, 'DD-MON-YY HH24:MI');
  L_ERR_MSG            VARCHAR2(250);
  L_ERROR_CODE         NUMBER;


  BEGIN
    -- 首先要有一个Group id 
    SELECT BOM_EXPLOSION_TEMP_S.NEXTVAL
      INTO L_GRP_ID
      FROM DUAL;


    -- 其次要得到一个Session id 
    SELECT BOM_EXPLOSION_TEMP_SESSION_S.NEXTVAL
      INTO L_SESSION_ID
      FROM DUAL;
    
    BOMPEXPL.EXPLODER_USEREXIT( 
                          VERIFY_FLAG                    =>0, 
                          ORG_ID                         =>104,           --V_ORG_ID, --组织ID 
                          ORDER_BY                       =>1,             --排序
                          GRP_ID                         =>L_GRP_ID,      --分组  L_GRP_ID
                          SESSION_ID                     =>L_SESSION_ID,  --会话ID  L_SESSION_ID
                          LEVELS_TO_EXPLODE              =>10,            --最大层级  L_LEVELS_TO_EXPLODE, 
                          BOM_OR_ENG                     =>1,             --L_BOM_OR_ENG, 
                          IMPL_FLAG                      =>1,             --仅限于已实施的BOM 
                          PLAN_FACTOR_FLAG               =>2,             --使用计划%
                          EXPLODE_OPTION                 =>2,             --2, --BOM显示类型    
                          MODULE                         =>L_MODULE,      --成本  L_MODULE
                          CST_TYPE_ID                    =>L_CST_TYPE_ID, --成本类型   L_CST_TYPE_ID
                          STD_COMP_FLAG                  =>2, 
                          EXPL_QTY                       =>1,             --数量
                          ITEM_ID                        =>109543,        -- 物料ID  L_ITEM_ID
                          ALT_DESG                       =>'',            ---NULL, 替代项
                          COMP_CODE                      =>'', 
                          REV_DATE                       =>L_REV_DATE,    --TO_CHAR(SYSDATE,'YYYY/MM/DD HH24:MI:SS'), --有效日期
                          ERR_MSG                        =>L_ERR_MSG, 
                          ERROR_CODE                     =>L_ERROR_CODE 
                          ); 
  END ;
-- 2.查询临时表 ----------------------------------------------------------------------------------------------------------------------
--SQL1 运行结束后用以下语句得到结果. 
-- 2.1 ----------------------------------------------------------------------------
SELECT BOM_EXPLOSION_TEMP_S.CURRVAL
  FROM DUAL
  ;
-- 2.2 ----------------------------------------------------------------------------
SELECT *
  FROM BOM_EXPLOSION_TEMP BET
 WHERE 1=1
   AND BET.GROUP_ID = 201083
   ;
SELECT bet.plan_level
      ,bet.item_num            "Item Seq"
      ,bet.operation_seq_num   "Operation Seq"
      ,msi.segment1            "Component"
      ,msi.item_type           "Component Type"
      ,bet.component_quantity  "Component Quantity" --组件用量
      ,bet.extended_quantity   "Extended Quantity"  --耗用
      ,bet.component_code      --阶梯式component_item_id组合
      ,bet.component_item_id
      ,bet.sort_order
      ,bet.group_id
    --  ,bet.*  
  FROM bom_explosion_temp bet 
      ,mtl_system_items_b msi
 WHERE 1=1 
   AND bet.component_item_id = msi.inventory_item_id
   AND bet.organization_id = msi.organization_id
   AND bet.group_id = 201083  
ORDER BY bet.sort_order

查询结果:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值