摘自:https://blog.csdn.net/chenxianping/article/details/78366934
在做二次开发过程中,有时遇到要展BOM计算物料需求或展BOM成本明细时,需要使用到该存储过程。以前,我刚触Oracle EBS时,不知道有标准展BOM存储过程,还自己创建类似的临时表和存储过程。因此,写本文章希望给初学者有帮助。
系统版本:
RDBMS : 9.2.0.6.0
Oracle 应用产品 : 11.5.10.2
路径: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 |
实例代码如下:
declare
v_errbuf varchar2(200);
v_retcode varchar2(300);
begin
DELETE FROM bom_explosion_temp;
bompexpl.exploder_userexit(VERIFY_FLAG => 0,
ORG_ID => 122, --V_ORG_ID, --组织ID
ORDER_BY => 1, --排序
GRP_ID => 1, --分组
SESSION_ID => 0, --会话ID
LEVELS_TO_EXPLODE => 20, --最大层级
BOM_OR_ENG => 1,
IMPL_FLAG => 1, --仅限于已实施的BOM
PLAN_FACTOR_FLAG => 2, --使用计划%
EXPLODE_OPTION => 3, --BOM显示类型
MODULE => 1, --成本
CST_TYPE_ID => 1, --成本类型
STD_COMP_FLAG => 2,
EXPL_QTY => 1000, --数量
ITEM_ID => 3001035,--V_ITEM_ID 物料ID
ALT_DESG => NULL, ---替代项
COMP_CODE => NULL, --
REV_DATE => TO_CHAR(SYSDATE,
'YYYY/MM/DD HH24:MI:SS'), --有效日期
err_msg => v_errbuf,
error_code => v_retcode);
End;