首页 > 代码库 > BOM展开

BOM展开


BOM展开:
 BOM_EXPLOSION_temp是一个临时表,在展BOM的时候,是一个很有用的表,存放了组成料件层次。默认时是没有记录的,加入下列的语句:
DECLARE
l_group_id NUMBER;
l_error_message VARCHAR2(1000);
l_error_code NUMBER;
BEGIN
SELECT bom.bom_explosion_temp_s.NEXTVAL --取下一个序列
INTO l_group_id
FROM DUAL;
 
BEGIN
apps.bompexpl.exploder_userexit (verify_flag => NULL,
org_id => 122,
order_by => 1,
grp_id => l_group_id,
session_id => NULL,
levels_to_explode => 10, ----展开十层
bom_or_eng => 1,
impl_flag => 1,
plan_factor_flag => NULL,
explode_option => 2,
MODULE => 2,
cst_type_id => NULL,
std_comp_flag => 2,
expl_qty => 1,
item_id =>32523,--:inventory_item_id_parent, --- (select inventory_item_id from mtl_system_items_b where organization_id=89 and segment1=‘FWP14(A)-PLN‘),
alt_desg => NULL,
comp_code => NULL,
rev_date => to_char(sysdate,‘yyyy/mm/dd hh24:mi:ss‘),--版本日期
err_msg => l_error_message,
ERROR_CODE => l_error_code);
COMMIT;
END;
 
dbms_output.put_line(l_error_code||l_error_message);
END;
---查询
select * from BOM_EXPLOSION_temp;


还有一种更加准确
DECLARE
  err_meg    VARCHAR2(100);
  ERROR_CODE VARCHAR2(100);
BEGIN
  bompxinq.exploder_userexit(verify_flag       => 0,
                             org_id            => 122,
                             order_by          => 1,
                             grp_id            => 0,
                             session_id        => 0,
                             levels_to_explode => 10,
                             bom_or_eng        => 1, -- 1 bom 2 eng
                             impl_flag         => 2,
                            
                             plan_factor_flag => 1,
                            
                             explode_option => 1,
                            
                             module => 2,
                            
                             cst_type_id   => 2, --average
                             std_comp_flag => 2,
                            
                             expl_qty         => 1,
                             item_id          => 35463,
                             unit_number_from => NULL,
                             unit_number_to   => NULL,
                             alt_desg  => ‘‘,
                             comp_code => ‘‘,
                             rev_date  => ‘‘,
                            
                             err_msg    => err_meg,
                             ERROR_CODE => ERROR_CODE);

END;

SELECT *  FROM bom_small_expl_temp;


null


BOM展开