Oracle EBS BOM标准展BOMSQL查询
Oracle EBS BOM标准展BOMSQL查询–>
展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_Eng | BOM或工程BOM | 默认值为1 |
Impl_Flag | 仅限于已实施的BOM | 默认值为1 |
Plan_Factor_Flag | 使用计划% | 默认值为2 |
Explode_Option | 展BOM选项,默认值为3 | 1.全部 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
查询结果:
本文来源 互联网收集,文章内容系作者个人观点,不代表 本站 对观点赞同或支持。如需转载,请注明文章来源,如您发现有涉嫌抄袭侵权的内容,请联系本站核实处理。