Search from 700 + Posts

Nov 4, 2018

BOM_BO_PUB.Process_BOM API not processing multiple Bill of Material together

When running the BOM_BO_PUB.Process_BOM API to process multiple bills, it runs correctly the first time, but, errors for the other bills , to fix this issue reinitialize all input parameters for every run., Especially important is the listing of components. You should make sure a new list is passed each time to avoid components from previous bills passed to the new bill.

-- API input variables
l_bom_header_rec Bom_Bo_Pub.bom_head_rec_type := Bom_Bo_Pub.g_miss_bom_header_rec;
l_bom_revision_tbl Bom_Bo_Pub.bom_revision_tbl_type := Bom_Bo_Pub.g_miss_bom_revision_tbl;
l_bom_component_tbl Bom_Bo_Pub.bom_comps_tbl_type := Bom_Bo_Pub.g_miss_bom_component_tbl;
l_bom_ref_designator_tbl Bom_Bo_Pub.bom_ref_designator_tbl_type := Bom_Bo_Pub.g_miss_bom_ref_designator_tbl;
l_bom_sub_component_tbl Bom_Bo_Pub.bom_sub_component_tbl_type := Bom_Bo_Pub.g_miss_bom_sub_component_tbl;

-- API output variables
x_bom_header_rec Bom_Bo_Pub.bom_head_rec_type := Bom_Bo_Pub.g_miss_bom_header_rec;
x_bom_revision_tbl Bom_Bo_Pub.bom_revision_tbl_type := Bom_Bo_Pub.g_miss_bom_revision_tbl;
x_bom_component_tbl Bom_Bo_Pub.bom_comps_tbl_type := Bom_Bo_Pub.g_miss_bom_component_tbl;
x_bom_ref_designator_tbl Bom_Bo_Pub.bom_ref_designator_tbl_type := Bom_Bo_Pub.g_miss_bom_ref_designator_tbl;
x_bom_sub_component_tbl Bom_Bo_Pub.bom_sub_component_tbl_type := Bom_Bo_Pub.g_miss_bom_sub_component_tbl;


l_bom_component_tbl        := Bom_Bo_Pub.g_miss_bom_component_tbl;
l_bom_header_rec          := Bom_Bo_Pub.g_miss_bom_header_rec;
l_bom_revision_tbl        := Bom_Bo_Pub.g_miss_bom_revision_tbl;
l_bom_component_tbl       := Bom_Bo_Pub.g_miss_bom_component_tbl;
l_bom_ref_designator_tbl  := Bom_Bo_Pub.g_miss_bom_ref_designator_tbl;
l_bom_sub_component_tbl   := Bom_Bo_Pub.g_miss_bom_sub_component_tbl;
x_bom_header_rec            := Bom_Bo_Pub.g_miss_bom_header_rec;
x_bom_revision_tbl          := Bom_Bo_Pub.g_miss_bom_revision_tbl;
x_bom_component_tbl         := Bom_Bo_Pub.g_miss_bom_component_tbl;
x_bom_ref_designator_tbl    := Bom_Bo_Pub.g_miss_bom_ref_designator_tbl;
x_bom_sub_component_tbl     := Bom_Bo_Pub.g_miss_bom_sub_component_tbl;

 FND_GLOBAL.APPS_INITIALIZE(l_user_id, l_resp_id, l_application_id);
          -- initialize BOM header
l_step:='Populate BOM Header Record'; 
l_bom_header_rec.assembly_item_name := l_assembly_item;--l_assembly_item_name;
l_bom_header_rec.organization_code  := l_dest_Org_Code;
l_bom_header_rec.assembly_type      := 1;
l_bom_header_rec.transaction_type   := 'CREATE';
l_bom_header_rec.return_status      := NULL;
For recBOMINV in (..........................)
l_step:='Populate BOM Data for Components ';
l_cnt :=  l_cnt +1;
l_bom_component_tbl (l_cnt).Organization_Code    \
l_bom_component_tbl (l_cnt).Assembly_Item_Name    := l_assembly_item;--                  l_bom_component_tbl (l_cnt).Start_Effective_date  := recBOMINV.EFFECTIVITY_DATE;
l_bom_component_tbl (l_cnt).Disable_date          := recBOMINV.disable_date;
l_bom_component_tbl (l_cnt).Operation_Sequence_number := recBOMINV.OPERATION_SEQ_NUM;
l_bom_component_tbl (l_cnt).Component_Item_Name     :=l_componet_item_name;

All records in a business object must belong to the same Bill. That is, they must all have the same Assembly Item Name, Organization and Alternate Designator.

Many a time while creating Bill of Material using Bom_Bo_Pub.process_bom  we encounter errors like All records in a business object must belong to the same Bill. That is, they must all have the same Assembly Item Name, Organization and Alternate Designator. 

As per update from Oracle documentation , this error occurred  because the variables for bom components were not being initialized for every run. Some earlier bill details are still stored, for subsequent runs. 

Reinitialize BOM components table object every run using the below: 

l_bom_component_tbl Bom_Bo_Pub.bom_comps_tbl_type := Bom_Bo_Pub.g_miss_bom_component_tbl;

Oct 25, 2018

Oracle Customer Data Management Cloud

Oracle offers exceptional customer data management capabilities on a subscription-based SaaS platform.

Oracle CDM Cloud is a subscription-based service that provides the tools and functionality needed to aggregate data from multiple sources and maintain a more complete, accurate 360ยบ customer view. The results lead to better sales, marketing, and service execution and a better overall customer experience.

It is  a simple, quick and scalable solution that any company can use to consolidate account and contact data originating from multiple sources, standardize addresses, resolve duplicates, and ensure a best-version customer profile that the entire organization can trust. With Oracle CDM Cloud, companies can drive increased revenue, improve operational efficiency and provide uniform customer data throughout the entire customer lifecycle

Oracle CDM Cloud offers the capability to consolidate, cleanse, standardize, enrich, match, link and dedupe data from virtually any source into a master repository of best-version records. When data is clean and consolidated, marketers can run email campaigns using correct information and sales teams can manage accounts more effectively


  1. They can import bulk data from internal or external data sources and can clean and dedupe in advance, enabling Oracle CDM Cloud to be the primary data management platform and source of truth.
  2. Data as a Service (DaaS) is an additional capability offered for CDM Cloud. Oracle DaaS enables more accurate market and territory segmentation by verifying and enriching the existing data, and finding prospects similar to your existing best customers

Key feature of Oracle Customer Data Management Cloud

  1. Record/source registry & crossreferencing (“x-ref”).
  2. Real-time duplicate data prevention.
  3. Dedupe existing records in the system.
  4. Address validation & correction.
  5. Dedicated admin UI to analyze and consolidate account and contact data.