EBS开发_删除BOM脚本

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013711561/article/details/79090438

--以下脚本于20180117在Tony环境成功实现
--注意,需要事先在系统中建立好对应删除组
DECLARE


  x_errbuf  VARCHAR2(240);
  x_retcode VARCHAR2(240);


  l_iface_rec         bom.bom_delete_entities%ROWTYPE;
  l_cur_mfg_org_id    NUMBER := 81;--83; --Current Inv Organization
  l_user_id           NUMBER := 1110; --User ID, Sysadmin here
  l_delete_group_name VARCHAR2(10) := 'DEL_IMP'; --BOM DELETE GROUP
  l_item_number       VARCHAR2(240) := '1010230002'; --Item Number
  l_alternate         VARCHAR2(240) := ''; --BOM Alternate


BEGIN


  l_iface_rec.last_update_date  := SYSDATE;
  l_iface_rec.last_updated_by   := l_user_id;
  l_iface_rec.creation_date     := SYSDATE;
  l_iface_rec.created_by        := l_user_id;
  l_iface_rec.last_update_login := -1;


  l_iface_rec.delete_status_type := 1;
  l_iface_rec.prior_process_flag := 2;
  l_iface_rec.prior_commit_flag  := 1;


  SELECT l_cur_mfg_org_id,
         bdg.delete_group_sequence_id,
         bom_delete_entities_s.NEXTVAL,
         bdg.delete_type,
         boms.bill_sequence_id,
         l_alternate,
         mst.inventory_item_id,
         l_item_number,
         mst.description
    INTO l_iface_rec.organization_id,
         l_iface_rec.delete_group_sequence_id,
         l_iface_rec.delete_entity_sequence_id,
         l_iface_rec.delete_entity_type,
         l_iface_rec.bill_sequence_id,
         l_iface_rec.alternate_designator,
         l_iface_rec.inventory_item_id,
         l_iface_rec.item_concat_segments,
         l_iface_rec.item_description
    FROM bom.bom_delete_groups      bdg,
         inv.mtl_system_items_b     mst,
         apps.bom_bill_of_materials boms
   WHERE bdg.delete_group_name = l_delete_group_name
     AND bdg.organization_id = l_cur_mfg_org_id
     AND mst.organization_id = l_cur_mfg_org_id
     AND mst.segment1 = l_item_number
     AND boms.organization_id = l_cur_mfg_org_id
     AND boms.assembly_item_id = mst.inventory_item_id
     AND nvl(boms.alternate_bom_designator, chr(0)) =
         nvl(l_alternate, chr(0));


  INSERT INTO bom.bom_delete_entities VALUES l_iface_rec;


  bom_delete_groups_api.delete_groups(errbuf          => x_errbuf,
                                      retcode         => x_retcode,
                                      delete_group_id => l_iface_rec.delete_group_sequence_id,
                                      action_type     => 2 --1 Check, 2 Delete
                                      );


  dbms_output.put_line('x_errbuf:' || x_errbuf);
  dbms_output.put_line('x_retcode:' || x_retcode);


EXCEPTION
  WHEN no_data_found THEN
    dbms_output.put_line('delete group or item or BOM not exists');
  
END;

猜你喜欢

转载自blog.csdn.net/u013711561/article/details/79090438