Wednesday, July 23, 2025

OIC - How to add Filters while subscribing ERP business events in Oracle Integration

To add filters for the “specific” event in Oracle Integration Cloud (OIC), follow the steps below. These filters ensure that only relevant events are processed — e.g., only payments voided for a specific business unit or source system.


✅ Steps to Add Filters for “Payables Payment Voided” Event in OIC

Step 1: Create or Edit the Integration

  1. Open your OIC integration where you want to subscribe to the event.
  2. Use the ERP Cloud Adapter as a trigger.
  3. Choose the event:
    Business Event → Payables Payment Voided

Step 2: Configure the Event Adapter and Add Filter

After selecting the event:

  1. On the "Basic Info" screen, click Next.
  2. On the "Event Details" screen, scroll down to the Filter Expression section.
  3. You’ll see an “Add Filter Expression” button.

🔍 Example Payload Fields for Payables Payment Voided:

When the event is triggered, the payload might contain fields like:

<env:Body>
  <ns0:ApPaymentVoidedInfo 
xmlns:ns0="http://xmlns.oracle.com/apps/financials/payables/shared/paymentFile/common/publicEvents/ApPaymentVoided">
    <ns0:CheckId>121001</ns0:CheckId>
    <ns0:PaymentTypeFlag>A</ns0:PaymentTypeFlag>
    <ns0:OrgId>300000057802xxx</ns0:OrgId>
    <ns0:VendorName>ABC</ns0:VendorName>
    <ns0:VendorSiteCode/>
    <ns0:PartyId>100000286292xxx</ns0:PartyId>
    <ns0:PartySiteId>1000002862943xxx</ns0:PartySiteId>
    <ns0:CheckNumber>51817</ns0:CheckNumber>
    <ns0:CheckDate>2025-07-07T00:00:00</ns0:CheckDate>
    <ns0:Amount>1000</ns0:Amount>
    <ns0:CurrencyCode>HKD</ns0:CurrencyCode>
    <ns0:PaymentMethod>E_ACH_EPS_BATCH</ns0:PaymentMethod>
    <ns0:PaymentStatus>VOIDED</ns0:PaymentStatus>
    <ns0:BankAccountNum>XXXXXXXXX73303</ns0:BankAccountNum>
    <ns0:VoidDate>2025-07-07T00:00:00</ns0:VoidDate>
  </ns0:ApPaymentVoidedInfo>
</env:Body>

Step 3: Add Filter Expression

Run the integration once without filters, log the entire incoming payload using Logger, and confirm which keys you want to filter on. Use the body namespace here.

Sample 1: Check the payment method.

<xpathExpr xmlns:ns0="http://xmlns.oracle.com/apps/financials/payables/shared/paymentFile/common/publicEvents/ApPaymentVoided">

$eventPayload/ns0:PaymentMethod = 'E_ACH_EPS_BATCH_PC'

</xpathExpr>

Sample 2: substring and filter

<xpathExpr xmlns:ns0="http://xmlns.oracle.com/apps/financials/payables/shared/paymentFile/common/publicEvents/ApPaymentVoided">
substring($eventPayload/ns0:PaymentMethod, string-length($eventPayload/ns0:PaymentMethod) - 1) = 'PC'
</xpathExpr>
Sample 3:  for Any Import bulkFBdI use, ERP Integrtaion Inbound Event
<xpathExpr xmlns:ns0="http://xmlns.oracle.com/apps/financials/commonModules/shared">
  starts-with($eventPayload/ns0:JOBS[ns0:JOBNAME='Load Interface File for Import']/ns0:DOCUMENTNAME,
              'PC_test_AP')
</xpathExpr>


Why $eventPayload is used in <xpathExpr> in OIC:

In Oracle Integration Cloud (OIC) event subscriptions, when you're writing a filter expression inside <xpathExpr>, Oracle automatically binds the incoming event data (the event payload) to a variable named:

$eventPayload

This variable is your entry point to access the fields from the event payload using XPath expressions.



⚠️ Important Notes:

  • Fields must match payload field names exactly (case-sensitive).
  • Use AND, OR, =, !=, etc., as supported operators.
  • If unsure of available fields, log the payload in your integration to inspect its structure.

✅ Best Practice:

Run the integration once without filters, log the entire incoming payload using Logger, and confirm which keys you want to filter on.


No comments:

Post a Comment

Featured Post

OIC - OIC Utility to Reprocess Failed Real-Time Integration JSON Payloads

📌 Use Case In real-time OIC integrations, JSON payloads are exchanged with external systems via REST APIs. When such integrations fail (du...