Go to primary content
Oracle® Retail Bulk Data Integration Cloud Service Implementation Guide
Release 19.1.000
F31810-01
  Go To Table Of Contents
Contents

Previous
Previous
 
Next
Next
 

4 Integration with External Applications

BDI is an integration infrastructure product which integrates Oracle Retail applications and third party applications. BDI external application is designed to address the complexities for third party integration with Oracle Retail application. In BDI, bulk data movement happens between sender and receiver application. External application may be a sender or receiver or both.

BDI External Job Admin as Sender

BDI integrates with third-party systems utilizing BDI-EXTERNAL to send data. This integration enables the movement of Item/Foundation data from an external system into Oracle Retail applications.

All the required sender artifacts are available as part of the BDI process flows and jobs deliverables. An external extractor job extracts data for a family from the sender (source) system and moves the data to outbound interface tables. A downloader-transporter job downloads the data set from outbound interface tables for a family and streams data to a BDI destination application using the receiver service.

Configure BDI to Enable or Disable the External Process Flows and Jobs

As there are many flows and jobs from and to external application hence GUI is cluttering with many jobs and flows. To avoid confusion disabling the jobs and flows by default related to EXTERNAL application.

{"name":"flowSelection.1.pattern", "value":"_From_EXTERNAL"},

{"name":"flowSelection.1.initialState", "value":"false"}

The following system options in bdi-job-admin-deployment-env-info.json disable the jobs by default at the time of deployment/installation:

{"name":"flowSelection.1.pattern", "value":"_From_EXTERNAL"},
{"name":"flowSelection.1.initialState", "value":"false"}

If you want to view the disabled jobs, search for "ToExternalJob" and uncheck the Hide Disabled jobs checkbox.

If you want to view the disabled flows, search for "_From_EXTERNAL" and uncheck the Hide Disabled process checkbox as shown below.

Option 1: Enable All _From_External process flows

Perform the following procedure to enable the disabled process flows and jobs:

  1. Search for "_From_EXTERNAL" and uncheck the Hide Disabled process checkbox.

    Figure 4-1 View _From_EXTERNAL Processes

    View _From_EXTERNAL Processes
  2. Click the header checkbox to enable/disable. The default is disabled.

  3. Click a second time on the header checkbox to make it enable/disable. Click the Save icon. The flag is updated in the database to "true" or enabled.

    Figure 4-2 Enable _From_EXTERNAL Processes

    Enable _From_EXTERNAL Processes

    Follow the similar approach to enable external jobs as well.

Option 2: Update the property flowSelection.1.initialState

  1. Update the property flowSelection.1.initialState in the json process flow to "true" to enable all the "from external" flows.

    {"name":"flowSelection.1.pattern", "value":"_From_EXTERNAL"},
    {"name":"flowSelection.1.initialState", "value":"true"}
    
  2. Update the property "jobSelection.1.initialState" in job admin json to "true" to enable all the "to external" jobs.

    {"name":"jobSelection.1.pattern", "value":"ToExternalJob"},
    {"name":"jobSelection.1.initialState", "value":"true"}
    
  3. Set both the LOADJOBDEF/LOADPROCESSDEF and LOADSEEDDATA flags to TRUE and redeploy the job admin or process flow respectively.

External Extractor Job

The Extractor Job uses a batchlet and PL/SQL stored procedures to move data from transactional tables of source system (for example EXTERNAL, third party system) to outbound tables. A PL/SQL stored procedure calls BDI PL/SQL stored procedure to insert data set information in the outbound data control tables. Extractor jobs are currently implemented to provide full data (not delta) for an interface. Whichever application is acting as Sender those teams have to write business logic to move data from application transaction tables to BDI OUT tables.

Figure 4-3 External Extractor Job

External Extractor Job

For each required interface, implement the logic in "extract" function of the "<InterfaceModule_Name>_Extractor_Body.sql" file as in the indicated section below. The sql file is located in the <bdi-edge-external-job-home>/setup-data/ddl/ folder.

Surrounding text describes create_replacepackage.png.

BDI Extractor (PL/SQL Application)

  1. The Extractor job is run from the App A (for example EXTERNAL) Extractor Job Admin application through REST or the UI.

  2. The Extractor job invokes the PL/SQL stored procedure in the App A database.

  3. A PL/SQL stored procedure is run in the App A database.

  4. The PL/SQL stored procedure moves data from transactional tables to the outbound tables in the BDI schema.

  5. The PL/SQL stored procedure inserts entries in downloader data control tables to indicate the data set is ready for download.

    The Downloader Data Control Tables act as a handshake between the Extractor and the Downloader. There are two Outbound Data Control Tables:

    • BDI_DWNLDR_IFACE_MOD_DATA_CTL

    • BDI_DWNLDR_IFACE_DATA_CTL

    The Extractor job inserts entries in the downloader data control tables to indicate that data is ready to be downloaded after it completes moving data to outbound interface tables.

BDI External Job Admin as Receiver

For example, sender application is RMS and receiver is a third party application. There will be external application for the integration to happen as External edge application. External edge application organizes all the importer jobs. Ex-ternal edge application provides GUI and CLI tool to manage jobs like start/stop/restart jobs.

The External Importer Job imports data set for an Interface Module from Inbound Interface Tables into application specific transactional tables. Importer jobs are application specific jobs.

External Importer Job

The tables BDI_IMPRTR_IFACE_MOD_DATA_CTL and BDI_IMPORTER_IFACE_DATA_CTL act as a handshake between the receiver service and importer jobs. When the Receiver Service completes processing a data set successfully, it creates an entry in these tables.

An entry in the table BDI_IMPRTR_IFACE_MOD_DATA_CTL indicates to the Importer Job that a data set is ready to be imported.

The Importer job imports a data set for an Interface Module from inbound tables into application specific transactional tables. Importer jobs are application (for example SIM/RPAS/EXTERNAL) specific jobs. It uses the Importer Data Control Tables to identify whether a data set is ready for import or not.

Figure 4-4 External importer Job

External importer Job

For each required interface, implement the logic in the "import" function of the "<InterfaceModule_Name>_Importer_Body.sql" file as in the indicated section below. The sql file is located in <bdi-edge-external-job-home>/setup-data/ddl/ folder.

external importer job logic

External Importer

  1. Importer job is run from App B EXTERNAL Job Admin application through REST or UI.

  2. Importer job checks for data sets in importer data control tables.

  3. If data set is available for import, importer job downloads data from inbound table.

  4. Importer job loads data to App B EXTERNAL staging tables.

Configure External Job Admin as Receiver in the Process Flow

System options properties in bdi-process-flow-admin-deployment-env-info.json allow you to configure the available destination apps and appsInScope.

allAvailableDestinationApps property mentions all the applications available as destination.

The appsInScope property mentions the applications that are in scope. Add an external application in the appsInScope property to make it available as a receiver.

"SystemOptions":[
{"name":"allAvailableDestinationApps", "value": "SIM, RPAS, EXTERNAL, OCDS, RFI, RMS"},
{"name":"appsInScope", "value": "SIM, RPAS, OCDS, RFI, EXTERNAL"}

External BDI Process Flow

A process flow is a generic concept and is not limited to BDI. However all the out-of-box process flows are for data transfers from a retail application to one or more retail applications.

There are process flow dsl files for each interface from RMS to external and External to other applications which have all the activities for the particular interface as depicted in below pictures. Scheduler will trigger the process flow to execute the activities within the dsl file. Process flows are available out of box to move data end to end. Only thing to implement is extractor or importer packages or both.

Figure 4-5 Merchandising to External Process Flow

Merchandising to External Process Flow

Figure 4-6 External Application to OCDs Process Flow

External Application to OCDs Process Flow

Installation Details

Please refer to the Oracle Retail Bulk Data Integration Installation Guide for the details.