6 Process Integration for Accruals and Reversals

This chapter provides an overview of the process integration for accruals and reversals and discusses business process flows, assumptions and constraints, Oracle E-Business Suite (Oracle EBS) and Oracle Transportation Management (OTM) interfaces, core Oracle Application Integration Architecture (Oracle AIA) components, and integration services.

This chapter includes the following sections:

6.1 Overview

The accruals and reversals integration flow allows OTM to send accruals and reversals transactions to the Oracle EBS General Ledger (GL) so that the accounting entries are generated in the general ledger.

The process integration for accruals and reversals supports these integration flows:

  • Cost Accrual

OTM receives an order:

  1. Plans a buy shipment.

  2. Allocates the shipment.

  3. Creates the accrual.

  4. Sends the transaction using the AccrualXML to the Oracle EBS General Ledger.

    Once the shipment is delivered and completed, OTM creates a voucher for payment and sends it to Oracle EBS AP. The accounting for the invoice in Accounts Payable (AP) also triggers the accrual reversal transaction in the general ledger.

Here is an example with the steps needed to send an accrual when you create an Order Release in OTM and then do the Buy Shipment.

  1. Once you create the Buy Shipment, click Actions to allocate cost for this Buy Shipment.

    This action creates the accrual in OTM, which is sent to Oracle EBS.

  2. Click Allocate Cost to create the cost accrual in OTM.

    A confirmation is displayed that the cost was allocated in OTM implying that the cost accrual is ready to be sent to Oracle EBS.

  3. Select Business Process Automation.

  4. Click Process Management.

  5. Click Send Integration to manually send the Cost Accrual to Oracle EBS.

  6. Click the button to the right of the Interface Type field.

  7. Click the scroll bar button to select the Order Accrual interface type.

  8. Select Order Accrual entry in the list.

  9. Click Define.

  10. Select Order Release tab.

  11. Enter the Order Release ID in the Order Release ID field.

  12. Click Save.

  13. Enter the COSTACCRUAL in the Query Name field.

  14. Click Save.

  15. Click Select.

  16. Select QUEUE from the Notify Method drop down.

    OTM creates the accruals and enqueues them in the AIA_ACCOUNTINGENTRY_AQ queue based on a scheduled Send Integration in the Process Management.

  17. Enter the AIA_ACCOUNTINGENTRY_AQ in the Receiving External System field.

  18. Click Submit.

  19. A confirmation message that the Cost Accrual has been sent is displayed.

    The cost accrual was queued in the AIA_ACCOUNTINGENTRY_AQ queue. Now, the AIA layer consumes the inbound messages and transforms the data elements into the AccountingEntryEBO using the DVMs to translate values.

  • Updated Cost Accrual

    OTM receives an order:

    1. Plans a buy shipment.

    2. Allocates the shipment.

    3. Creates the accrual.

    4. Sends the transaction using the AccrualXML to the Oracle EBS General Ledger.

      The accessorial charge is added or changed for the shipment; therefore, OTM re-allocates the cost and creates a transaction that is sent using the VoucherXML to the Oracle EBS General Ledger.

    Once the shipment is delivered and completed, OTM creates a voucher for payment and sends it to Oracle EBS AP. The accounting for the invoice in AP also triggers the accrual reversal transaction in the General Ledger.

  • Recognize Revenue

    OTM receives an order:

    1. Plans a sell shipment.

    2. Allocates the shipment.

    3. Creates the accrual.

    4. Sends the transaction using the AccrualXML to the Oracle EBS General Ledger.

    Once the shipment is delivered and completed, OTM creates a bill for collection and sends it to Oracle EBS AR. The accounting for the bill in AR also triggers the accrual reversal transaction in the General Ledger.

  • Updated Revenue Recognition

    OTM receives an order:

    1. Plans a sell shipment.

    2. Allocates the shipment.

    3. Creates the accrual.

    4. Sends the transaction using the AccrualXML to the Oracle EBS General Ledger. The accessorial charge is added or changed for the shipment; therefore, OTM re-allocates the cost and creates a transaction that is sent using the VoucherXML to the Oracle EBS General Ledger.

    Once the shipment is delivered and completed, OTM creates a bill for collection and sends it to Oracle EBS AR. The accounting for the bill in AR also triggers the accrual reversal transaction in the General Ledger.

6.2 Business Process Flows

Figure 6-1 shows the process integration flow for accruals and reversals:

Figure 6-1 Accruals and Reversals Process Integration Flow

This image is described in surrounding text.

6.2.1 Accruals and Reversals Integration Details

The accruals and reversals integration flow creates the accrual transactions in Oracle E-Business GL based on the accruals or reversals sent from OTM.

Figure 6-2 is a sequence diagram that shows the accruals and reversals flow from OTM to Oracle EBS:

Figure 6-2 Oracle Transportation Management (Logistics) to Oracle EBS General Ledger Accounting Entry Flow

This image is described in surrounding text.

When you initiate the process, these events occur:

  1. OTM sends the messages into the AIA_ACCOUNTINGENTRY_AQ queue based on the scheduled send integration in process management.

  2. The CreateAccountingEntryListLogisticsAQConsumer service dequeues the messages and invokes the CreateAccountingEntryListLogisticsReqABCSImpl service.

  3. The CreateAccountingEntryListLogisticsReqABCSImpl service transforms the accrual application business message (ABM) into the CreateAccountingEntryListEBM, populates the enterprise business message (EBM) Header, updates the cross-reference data, and invokes the AccountingEntryEBS with the CreateAccountingEntryList operation in fire and forget mode.

  4. The AccountingEntryEBS service with the CreateAccountingEntryList operation routes the messages based on the Composite Application Validation System (CAVS) flag to either the CreateAccountingEntryListEbizProvABCSImpl service or the CAVS simulator in an asynchronized fire and forget mode.

  5. The CreateAccountingEntryListEbizProvABCSImpl transforms the CreateAccountingEntryListEBM into the Oracle EBS CreateAccountingEntryListEbizABM and invokes the CreateAccountingEntryListEbizDBAdapter service.

  6. The CreateAccountingEntryListEbizDBAdapter service receives the AccountingEntryListEbizABM and makes insert calls to the Oracle EBS General Ledger interface table.

6.3 Assumptions and Constraints

These are the solution assumptions and constraints:

  • OTM creates the accruals and enqueues them in the AIA_ACCOUNTINGENTRY_AQ queue based on a scheduled send integration in process management.

  • If any errors occur in the service layer and the accruals do not reach Oracle EBS interface tables, then the AIA error handling framework notifies you.

    You should manually re-submit the transactions that failed. In case that a batch of bills is sent in a single transmission, if a single bill fails, the whole batch fails and should be sent again.

  • This integration does not perform any validations and raise errors due to any business validation failure in OTM or in Oracle EBS.

    For example, if the Oracle EBS journal import process rejects the accrual due to a validation error, you should manually correct the data in the Oracle EBS interface tables and re-run the import process.

  • This integration supports only the creation of a list of accounting entries (accruals). Update and query of accounting entries is not supported in this integration.

  • For each accrual coming from OTM in Oracle EBS, two accrual lines are created in GL Interface table, one as a credit line, and one as a debit line. You must use the IDT tool to derive the account values based on the perspective (BUY versus SELL), the is_reversal flag, and if it is delta/base cost.

  • The credit and debit accounts of the accruals are derived by IDT based on the information sent by OTM.

  • IDT derives the period name and ledger ID.

  • OTM should ensure to send the accrual only once. If OTM sends the same accrual ID more than once, the data is imported successfully to GL and separate journal batches are created. You must review the journals for correct accounting and reverse the incorrect entries.

6.4 Oracle EBS Interfaces

These are the Oracle EBS interfaces for the accruals and reversals integration flow. The schema is based on this Oracle EBS table: GL_INTERFACE.

For more information about Oracle EBS web services and documentation prior to Release 12.1.3, see the library on Oracle Technology Network: http://www.oracle.com/technetwork/documentation/applications-167706.html?. For Oracle EBS documentation for R12.1.3 and beyond, see this library: https://download.oracle.com/docs/cd/E18727_01/index.htm.

6.5 OTM Interfaces

OTM uses the AccountingEntryListLogisticsABM to send the estimated cost and revenues to any financial systems general ledger for accounting. GLogXML.xsd, element - Transmission, sub-element - Accrual.

For more information about the logistics service, see Oracle Transportation Management Integration Guide.

6.6 Core Oracle AIA Components

The integration flow uses these components:

  • AccountingEntryEBO

  • AccountingEntryListEBM

  • AccountingEntryEBS

The core enterprise business object (EBO) and enterprise business message (EBM) XSD files can be located by EBO within the $AIA_HOME/AIAMetaData/AIAComponents/EnterpriseObjectLibrary/Core/EBO/ parent folder.

The core enterprise business services (EBS) web services definition language (WSDL) files can be located by EBO within the $AIA_HOME/AIAMetaData/AIAComponents/EnterpriseBusinessServiceLibrary/Core/EBO/ parent folder.

For detailed documentation of individual EBOs and EBMs, click AIA Reference Doc link on EBO and EBM detail pages in the Oracle Enterprise Repository.

For more information about using the Oracle Enterprise Repository and configuring it to provide the AIA Reference Doc link, see Oracle Fusion Middleware Developer's Guide for Oracle Application Integration Architecture Foundation Pack, "Configuring and Using Oracle Enterprise Repository as the Oracle AIA SOA Repository."

EBOs can be extended, for instance, to add new data elements. These extensions are protected, and remain intact after a patch or an upgrade.

For more information, see Oracle Fusion Middleware Developer's Guide for Oracle Application Integration Architecture Foundation Pack, "Extensibility for AIA Artifacts".

6.7 Integration Services

These are the services delivered with this integration:

  • CreateAccountingEntryListLogisticsAQConsumer

  • CreateAccountingEntryListLogisticsReqABCSImpl

  • AccountingEntryEBS

  • CreateAccountingEntryListEbizProvABCSImpl

  • CreateAccountingEntryListEbizDBAdapter

  • AccountingEntryResponseEBS

6.7.1 CreateAccountingEntryListLogisticsAQConsumer

This mediator service is implemented to route the message whenever OTM enqueues a message into the AIA_ACCOUNTINGENTRY_AQ queue. This service takes the AccrualXML from the wrapper AQ xsd and invokes the CreateAccountingEntryListLogisticsReqABCSImpl service.

6.7.2 CreateAccountingEntryListLogisticsReqABCSImpl

The CreateAccountingEntryListLogisticsReqABCSImpl is a Business Process Execution Language (BPEL) process and a single operations service that has the AccountingEntryEBS as a partner service. This service receives the CreateAccountingEntryListLogisticsABM message as a request and does not return a response to the calling service.

This service performs these actions:

  • Accepts the AccrualABM message from OTM. The cross-reference table is populated for the unique identifier of the accounting entry element.

  • Transforms the AccrualABM into the CreateAccountingEntryListEBM. While it is transforming from the application business message (ABM) to the enterprise business message (EBM), cross-references are looked up for ACCOUNTINGENTRY_ ACCOUNTINGENTRY ID.

  • Sends the CreateAccountingEntryListEBM message as an input to the CreateAccountingEntry operation in the AccountingEntryEBS service.

6.7.3 AccountingEntryEBS

The AccountingEntryEBS is an Enterprise Business Service that exposes all the enterprise operations related to the accounting entry like create accounting-entry, update accounting-entry, and so on. This integration uses only CreateAccountingEntryList operation. This Enterprise Business Service routes the request to the appropriate provider like the CreateAccountingEntryListEbizProvABCSImpl or the CAVS based on the filter condition and operations. No transformations are done in this service.

For more information about this enterprise business service (EBS), see Oracle Fusion Middleware Developer's Guide for Oracle Application Integration Architecture Foundation Pack, "Designing and Developing Enterprise Business Services" and Oracle Fusion Middleware Concepts and Technologies Guide for Oracle Application Integration Architecture Foundation Pack, "Understanding Enterprise Business Services".

6.7.4 CreateAccountingEntryListEbizProvABCSImpl

The CreateAccountingEntryListEbizProvABCSImpl is a Business Process Execution Language (BPEL) process, which receives the CreateAccountingEntryListEBM, transforms the message into the CreateAccountingEntryListABM, and invokes the CreateAccoutingEntryListEbizDBAdapter service.

These DVM lookups are used by this service:

  • ACCOUNTINGENTRY_ACCOUNTINGENTRYTYPE: domain value mapping for the accrual type (that is actual, budget, and so on).

  • ACCOUNTINGENTRY_JOURNALCATCODE: domain value mapping for the journal category code (that is accrual, adjustment, and so on).

6.7.5 CreateAccountingEntryListEbizDBAdapter

This service accepts the AccountingEntryListABM, message from the CreateAccountingEntryListEbizProvABCSImp and inserts the data into the GL_INTERFACE table in Oracle EBS.

6.7.6 AccountingEntryResponseEBS

The AccountingEntryResponseEBS is the enterprise business service (EBS) used to route all accounting entry response related actions to the requesting application like create accounting-entry response, update accounting-entry response, delete accounting-entry response, and synchronize accounting-entry response. CreateAccountingEntryResponse is implemented as a part of this integration.