Search from 700 + Posts

Nov 17, 2018

Oracle Integration cloud E-Business Suite Adapter to connect to EBS


Oracle Integration cloud E-Business Suite Adapter to connect to EBS

Oracle Integration cloud uses Oracle E-Business Suite Adapter to connect to EBS -
The Oracle E-Business Suite Adapter is one of many predefined adapters included with Oracle Integration Cloud Service allowing you to securely connect and use Oracle E-Business Suite
services in integrations in Oracle Integration Cloud Service. It not only provides the connectivity between Oracle E-Business Suite and other cloud-based applications, but also
significantly simplifies the complexity of typical integration experiences.

There are other way to connect, but using ebs adapter and ISG means we have lot less to write ( I mean custom code), and we can use lot of code that exits in EBS , and as stated in documentations use of E-Business Suite Adapter really simplifies integration. ( as shown below)




The supported interface types for integrations in Oracle Integration Cloud Service through the Oracle E-Business Suite Adapter are
  1. PL/SQL API
  2. Concurrent Program
  3. Business Event
  4. XML Gateway Message
Other advantages are

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;


Example
.
.
.
.
.
.
.

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;
l_cnt:=0;

 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 (..........................)
LOOP 
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;