Skip to main content

Oracle ERP from iPaaS.com Sales Order Mapping Documentation

How iPaaS.com writes Sales Orders to Oracle ERP — the create and update mapping collections, their filters, field mappings, prerequisites, and error handling.

Summary

This article documents the mapping collections that write Sales Orders from iPaaS.com to Oracle ERP. Four collections are covered: a create pair that adds a new Oracle ERP order and its lines, and an update pair that writes changes to an order that already exists in Oracle ERP. Orders are transferred outbound by subscriber-enabled Outbound Data Flow triggers or on demand through Manual Sync; the integration creates new orders and applies partial updates to existing orders, and it never deletes orders.

On this page:

  • ID Format

  • Deleted Record Support

  • Custom Field Support

  • Mapping Collection Status

  • Duplicate or Conflicting Mappings

  • Supported Child Collections

  • System Caveats

  • Integration Flow

  • Mappings

  • Error Handling

  • Testing & Validation

  • Additional Notes

  • Related Documents

ID Format

Manual Sync ID Format

Enter the iPaaS.com Sales Order (Transaction) record identifier — the numeric iPaaS.com-side record ID for the order — on the Manual Sync page. The integration uses this ID to retrieve the full order, with its line items, from iPaaS.com and write it to Oracle ERP. The child line collections have no independent Manual Sync entry point; lines are transferred through the parent order's Manual Sync ID. Manual Sync is always available regardless of whether automatic transfers are enabled.

External ID Format (saved after sync)

After a successful create, iPaaS.com records the link between the iPaaS.com Sales Order and the newly created Oracle ERP order (the Oracle ERP order number) on the iPaaS.com Sales Order record. Each line item is linked individually as well, associating the iPaaS.com line with its Oracle ERP order line identifier.

This recorded external-id link is the primary match the integration relies on. It routes subsequent transfers to the update collection — rather than creating a duplicate order — and it is how the update collection locates the existing Oracle ERP order and matches each existing line. The Oracle ERP order number and order line identifiers written onto the order provide cross-system visibility and serve as the values the update formulas resolve through when targeting the existing record. Both the order-number identifier and the line identifiers are numeric values assigned by Oracle ERP; the integration records and reuses them automatically, so subscribers do not create these links manually.

Deleted Record Support

Not supported. In this direction the integration only writes orders to Oracle ERP, and it performs create and update operations only. There is no outbound delete for Sales Orders or Sales Order Lines — removing an order or a line in Oracle ERP is not performed by these collections and must be handled directly in Oracle ERP.

Custom Field Support

None. The integration does not implement custom-field data types or category management for this direction. One optional mapping on the create collection reads a value from an iPaaS.com custom field named CustomerPO to populate the Oracle ERP customer purchase order number; this is a single field read, documented in the create collection's field mapping table, and requires no other custom-field configuration.

Mapping Collection Status

  • Status: Enabled. All four collections are enabled. Each parent collection carries a mapping filter that acts as a prerequisite gate (see the Mappings section); orders or lines that do not meet the prerequisite are stopped with an error rather than silently skipped.

  • Trigger Events: These are outbound collections. Automatic transfers do not activate by default — the subscriber or their MiSP must first subscribe to the relevant events in the subscription configuration's Outbound Data Flows section (the outbound Sales Order Add event for the create collection, and the outbound Sales Order Update event for the update collection). Once subscribed, iPaaS.com sends a Sales Order transfer to the matching collection whenever a qualifying order is created or updated in iPaaS.com. Until the Outbound Data Flow subscriptions are enabled, no automatic transfers occur. The integration is poll-driven and does not register or rely on webhooks, and it does not require any Inbound Data Flows configuration. Manual Sync is available on demand in every case.

The child line collections are not triggered on their own; they run as part of the parent order transfer.

Duplicate or Conflicting Mappings

The integration does not implement selectable collision-handling methods for this direction. Instead, it prevents duplicate orders through the recorded external-id link described under ID Format: once an order has been created in Oracle ERP, its link is stored on the iPaaS.com Sales Order, and later transfers use that link to update the existing order rather than create a second one.

The following collections operate on the same Sales Order data and should be reviewed together before both are enabled:

  • Add Oracle ERP Sales Order FROM iPaaS.com and Update Oracle ERP Sales Order FROM iPaaS.com are counterparts in the same (outbound) direction. The create collection makes new orders; the update collection writes changes to orders the create collection already produced, located by the recorded order link so no duplicate is created.

  • Add/Update Oracle ERP Sales Order TO iPaaS.com transfers Sales Orders in the opposite direction (Oracle ERP to iPaaS.com).

Before enabling these outbound collections alongside the opposite-direction "TO iPaaS.com" Sales Order collections, review and customize each collection's mapping filters, and clearly define which system is the source of truth for order data, so that changes do not propagate back and forth between the two systems.

Supported Child Collections

  • Add Oracle ERP Sales Order Line FROM iPaaS.com: The child of the create collection. Writes each line item on the order to Oracle ERP as part of the create transfer. Each line's SKU is resolved to an Oracle ERP item, and each created line is linked back to its iPaaS.com line.

  • Update Oracle ERP Sales Order Line FROM iPaaS.com: The child of the update collection. Writes the order's lines to Oracle ERP as part of the update transfer — existing lines are updated and new lines are added, each matched to an existing Oracle ERP order line by its recorded line link.

System Caveats

Oracle ERP Caveats

  • Order type must be valid: The order type identifier applied on create must correspond to a valid order type in the subscriber's Oracle ERP instance. The value shipped in the default mappings is an example and must be replaced, or the order is rejected.

  • Ship-to site must exist: When the create collection's ship-to mapping is active, the customer site (party site number) it matches on must exist on the customer's Oracle ERP record, or the transfer fails.

  • Product must exist and quantity must be positive: A line is created only when its SKU resolves to a valid Oracle ERP item and its quantity is greater than zero. Lines that do not meet both conditions are not written.

  • Partial update, not full replace: An update writes only the fields that are mapped and provided a value. Fields left unmapped, or that resolve to an empty value, are not written and are not cleared in Oracle ERP — they keep their existing Oracle ERP values. To change a value, map it and supply the new value.

  • Create-only and update-only: The create collection creates orders and does not modify existing orders; the update collection modifies existing orders and does not create them. Use the collection that matches the intended operation.

  • Only mapped fields are sent: Fields that are not mapped, or that resolve to no value, are omitted from the order or line sent to Oracle ERP; Oracle ERP applies its own defaults for those fields.

iPaaS.com Caveats

  • Company link required: The order's assigned company must already be transferred to iPaaS.com and linked to its Oracle ERP customer before either collection can write the order.

  • Order must have been created first (updates): The external-id link that identifies the existing Oracle ERP order is recorded on the iPaaS.com Sales Order when the order is first created in Oracle ERP. Without that prior create transfer, an update has nothing to target and fails.

  • SKU drives product matching: The line's SKU is the value matched against Oracle ERP item numbers. Keep SKUs on iPaaS.com Sales Order lines consistent with the item numbers registered in Oracle ERP.

  • CustomerPO custom field: To send a customer purchase order number on create, the iPaaS.com Sales Order must carry a CustomerPO custom field with that value.

Integration Flow

Create — Add Oracle ERP Sales Order FROM iPaaS.com. When a Sales Order create transfer is triggered from iPaaS.com, the integration writes to Oracle ERP in the following order:

  1. It confirms the company assigned to the order is registered as a customer in Oracle ERP and resolves the sold-to customer. If the company is not a registered Oracle ERP customer, the transfer stops before anything is created.

  2. It creates the sales order header in Oracle ERP with the resolved customer, order type, and reference attributes.

  3. It adds each line item to the order through the child collection, resolving each line's SKU to an Oracle ERP item. A line is added only when its SKU resolves to a valid Oracle ERP item and the line has a quantity greater than zero; lines that do not meet both conditions are not added. Each created Oracle ERP line is then linked back to its iPaaS.com line.

Update — Update Oracle ERP Sales Order FROM iPaaS.com. When a Sales Order update is sent from iPaaS.com, the integration writes to Oracle ERP in the following order:

  1. It locates the existing Oracle ERP order that corresponds to the iPaaS.com Sales Order, using the order link recorded on the original create transfer. If no matching order exists in Oracle ERP, the update stops with an error and nothing is written — the order must be created first.

  2. It updates the order header with the mapped header fields.

  3. It updates and adds lines through the child collection. Each line is marked to update or create based on whether it already exists in Oracle ERP, so one transfer can both revise existing lines and add new lines to the same order.

Partial update — unmapped fields are not cleared. An update changes only the fields that are mapped and actually provided a value. Fields that are left unmapped, or that resolve to an empty value, are not written and are not cleared in Oracle ERP — they keep their existing Oracle ERP values. This is a partial update, not a full record replace, and the order must already exist in Oracle ERP before it can be updated.

Mappings

The field mapping tables below list each mapping as it is configured in the default template. In this direction the source system is iPaaS.com and the destination system is Oracle ERP. For each collection whose live mapping filter is non-empty, the filter is reproduced exactly as configured, followed by a plain-language description of how it behaves. The verbatim filter and formula reproductions show the mapping expressions exactly as they appear in the iPaaS.com mapping editor; internal identifiers inside those expressions are part of the configured expression.

Add Oracle ERP Sales Order FROM iPaaS.com

Description: Writes a new sales order to Oracle ERP for each transferred iPaaS.com Sales Order. It writes the order header — the sold-to customer, ship-to location, order type, and reference attributes — and, through its child collection, writes each line item in the same transfer.

Mapping Filter (live configuration):

if(CompanyId > 0){
var AccountId = await GetExternalIdAsync(CompanyId, "Company", SpaceportSystemId);
if(AccountId != null && !string.IsNullOrEmpty(AccountId.ToString())){
var CustomerExsists = await GetOracleCustomerByiPaaSCompanyID(CompanyId.ToString());
if(CustomerExsists != null && CustomerExsists == "true"){
return true;
}
throw new Exception($"The company linked to Account ID {AccountId} does not exist as a customer in Oracle ERP. You need to assign a company to the transaction that is already registered as a customer in Oracle ERP.");
}
}
throw new Exception("The company is not associated with the transaction. You need to assign a company to the transaction in order to proceed with the flow transfer.");

Filter Description: This filter enforces a customer prerequisite before an order is processed:

  • If the order has a company assigned and that company is already registered as a customer in Oracle ERP, the order is processed.

  • If the order has a company assigned but that company is not registered as a customer in Oracle ERP, the transfer stops with this error: The company linked to Account ID [account ID] does not exist as a customer in Oracle ERP. You need to assign a company to the transaction that is already registered as a customer in Oracle ERP.

  • If the order has no company assigned, the transfer stops with this error: The company is not associated with the transaction. You need to assign a company to the transaction in order to proceed with the flow transfer.

The filter does not pin any environment-specific value; it evaluates the company on each order, so nothing in the filter itself needs to be replaced.

Field Mapping Table

Mapping Type

Source Field (iPaaS.com)

Destination Field (Oracle ERP)

Description

Dynamic Formula

Company assigned to the Sales Order (resolved to its Oracle ERP customer)

SOLDTOORGID

Required. Sets the sold-to customer on the order from the company assigned to the iPaaS.com Sales Order, resolving the Oracle ERP customer account already associated with that company. An order cannot be created without a sold-to customer. The assigned company must already be registered as a customer in Oracle ERP and linked to that customer in iPaaS.com — this is a hard prerequisite enforced by the collection filter.

Dynamic Formula

Company assigned to the Sales Order (resolved to a customer ship-to site)

SHIPTOORGID

Recommended. Sets the ship-to location by looking up the shipping site on the company's Oracle ERP customer record that matches a specific customer site (party site number). When left unmapped or returning no value, no ship-to location is sent and Oracle ERP applies its own default. Placeholder value — replace during implementation: the customer site the formula matches on is hard-coded to the example value 1234; replace it with the party site number of the shipping location you actually use in Oracle ERP before enabling this collection. When this mapping is active and the customer's Oracle ERP record does not contain that party site number, the transfer stops with an error (see Error Handling).

Field

Sales Order number (Transaction Number)

ATTRIBUTE6

Recommended. Writes the iPaaS.com Sales Order number into an Oracle ERP order reference attribute so the Oracle ERP order can be traced back to its iPaaS.com source record. It does not affect whether the order is created. When the source order number is empty, no value is written.

Static

Static value: 1019

ORDERTYPEID

Required. Sets the Oracle ERP order type applied to every order created through this collection; Oracle ERP needs a valid order type to create a sales order. Placeholder value — replace during implementation: 1019 is an example order type identifier from one Oracle ERP configuration and is not portable. Replace it with the order type identifier configured in your own Oracle ERP instance before enabling this collection, or the order is rejected.

Dynamic Formula

CustomerPO custom field on the Sales Order

CUSTPONUMBER

Optional. Sets the customer purchase order number by reading a custom field named CustomerPO from the iPaaS.com Sales Order. When the Sales Order does not carry a CustomerPO custom field, or that field is empty, no customer PO number is written.

Static

Static value: WEB

ATTRIBUTE1

Recommended. Writes a fixed order source tag into an Oracle ERP order attribute for classification and reporting. Placeholder value — replace during implementation: WEB is an example source tag; subscribers or their MiSP who classify orders by a different source value should replace it before enabling this collection. The transfer still succeeds with WEB; only the recorded source classification is affected.

Static

Static value: CREATE

OPERATION

Required. Directs Oracle ERP to create the order. Allowed values: CREATE, UPDATE. Because this collection handles order creation only, the value is fixed at CREATE; updates to existing orders are handled by the separate update collection.

Mapping Formulas — the Dynamic Formula mappings above are configured with the following expressions:

  • SOLDTOORGID:

var AccountId = await GetExternalIdAsync(CompanyId, "Company", SpaceportSystemId);
if(AccountId != null && !string.IsNullOrEmpty(AccountId.ToString())){
return long.Parse(AccountId);
}

  • SHIPTOORGID:

var AccountId = await GetExternalIdAsync(CompanyId, "Company", SpaceportSystemId);
if(AccountId != null && !string.IsNullOrEmpty(AccountId.ToString())){
var ShipId = await GetOracleCustomerShipToOrgIdByiPaaSCompanyIdAndOracleCustomerPartySiteNumber(CompanyId.ToString(), "1234");
if(!string.IsNullOrEmpty(ShipId)){
return long.Parse(ShipId);
}
throw new Exception($"The company linked to Account ID {AccountId} does not have the specified PARTY_SITE_NUMBER in an Oracle ERP customer. You need to provide a valid PARTY_SITE_NUMBER to the mapping function.");
}

  • CUSTPONUMBER:

return GetCustomFieldValue(CustomFields, "CustomerPO");

Add Oracle ERP Sales Order Line FROM iPaaS.com

Description: Writes the line items of a sales order to Oracle ERP as the child of the create collection. For each line on the iPaaS.com Sales Order, it resolves the line's SKU to an Oracle ERP item, sets the ordered quantity, sets a scheduled ship date, and directs Oracle ERP to create the line. Lines are added only when their product and quantity are valid.

Mapping Filter (live configuration):

if(!string.IsNullOrEmpty(Sku.ToString())){
var InventoryItemId = await GetOracleProductBySku(Sku.ToString());
if(!string.IsNullOrEmpty(InventoryItemId.ToString())){
return true;
}
throw new Exception($"The product with the provided SKU = {Sku} does not exist in Oracle ERP as a valid Product Item Number. To create a line item for the sales order, you must assign a product that is already registered as a valid item in Oracle ERP.");
}
return false;

Filter Description: This filter enforces a product prerequisite on each line:

  • A line with an empty SKU is skipped and not processed.

  • For a line with a SKU, the integration resolves the SKU to an Oracle ERP item. If the item exists, the line is processed.

  • If the SKU does not resolve to an Oracle ERP item, the transfer stops with this error: The product with the provided SKU = [SKU] does not exist in Oracle ERP as a valid Product Item Number. To create a line item for the sales order, you must assign a product that is already registered as a valid item in Oracle ERP.

The filter does not pin any environment-specific value; it evaluates the SKU on each line, so nothing in the filter itself needs to be replaced.

Field Mapping Table

Mapping Type

Source Field (iPaaS.com)

Destination Field (Oracle ERP)

Description

Dynamic Formula

Sales Order line quantity

ORDEREDQUANTITY

Required. Sets the ordered quantity from the iPaaS.com line quantity. A quantity is returned only when the line quantity is greater than zero; when the quantity is zero or missing, no quantity is returned and the line is not sent to Oracle ERP. Because a line requires both a quantity and a resolved product to be created, a line with a zero or empty quantity is dropped.

Dynamic Formula

Sales Order line SKU (resolved to an Oracle ERP item)

INVENTORYITEMID

Required. Sets the Oracle ERP product on the line by resolving the line's SKU to the matching Oracle ERP item. Oracle ERP will not create a line without a product, so a line whose SKU cannot be resolved is not sent. Each line's SKU must already exist as a valid item in Oracle ERP — this is a hard prerequisite enforced by the collection filter.

Static

Static value: CREATE

OPERATION

Required. Directs Oracle ERP to create the line. Allowed values: CREATE, UPDATE. Because this collection handles line creation only, the value is fixed at CREATE; changes to existing lines are handled by the separate update collection.

Dynamic Formula

Calculated: transfer date plus six business days

SCHEDULESHIPDATE

Recommended. Sets the scheduled ship date on the line. Rather than mapping a date from the source order, the default formula takes the date the transfer runs and adds six business days, skipping Saturdays and Sundays. Subscribers or their MiSP who have an actual requested or promised ship date should replace this formula with a mapping that supplies that date so the value reflects real fulfillment commitments. Transfers still succeed with the calculated value.

Mapping Formulas — the Dynamic Formula mappings above are configured with the following expressions:

  • ORDEREDQUANTITY:

if (Qty > 0)
return Qty;
return null;

  • INVENTORYITEMID:

if(!string.IsNullOrEmpty(Sku.ToString())){
var InventoryItemId = await GetOracleProductBySku(Sku.ToString());
if(!string.IsNullOrEmpty(InventoryItemId.ToString())){
return long.Parse(InventoryItemId);
}
}

  • SCHEDULESHIPDATE:

var currentDateTime = CurrentDateTime();
int businessDaysAdded = 0;
while (businessDaysAdded < 6)
{
currentDateTime = currentDateTime.AddDays(1);
// Check if the current day is a weekday
if (currentDateTime.DayOfWeek != DayOfWeek.Saturday && currentDateTime.DayOfWeek != DayOfWeek.Sunday)
{
businessDaysAdded++;
}
}
return currentDateTime.ToString("yyyy-MM-ddTHH:mm:sszzz");;

Update Oracle ERP Sales Order FROM iPaaS.com

Description: Writes header-level changes to a Sales Order that already exists in Oracle ERP and, through its child collection, updates existing order lines and adds new lines to the same order. Creating new orders is handled by the create collection; this collection is dedicated to updates and does not create orders.

Mapping Filter (live configuration):

if(CompanyId > 0){
var AccountId = await GetExternalIdAsync(CompanyId, "Company", SpaceportSystemId);
if(AccountId != null && !string.IsNullOrEmpty(AccountId.ToString())){
var CustomerExsists = await GetOracleCustomerByiPaaSCompanyID(CompanyId.ToString());
if(CustomerExsists != null && CustomerExsists == "true"){
return true;
}
throw new Exception($"The company linked to Account ID {AccountId} does not exist as a customer in Oracle ERP. You need to assign a company to the transaction that is already registered as a customer in Oracle ERP.");
}
}
throw new Exception("The company is not associated with the transaction. You need to assign a company to the transaction in order to proceed with the flow transfer.");

Filter Description: This filter enforces the same customer prerequisite as the create collection before an order is processed:

  • If the order has a company assigned and that company is already registered as a customer in Oracle ERP, the order is processed.

  • If the order has a company assigned but that company is not registered as a customer in Oracle ERP, the transfer stops with this error: The company linked to Account ID [account ID] does not exist as a customer in Oracle ERP. You need to assign a company to the transaction that is already registered as a customer in Oracle ERP.

  • If the order has no company assigned, the transfer stops with this error: The company is not associated with the transaction. You need to assign a company to the transaction in order to proceed with the flow transfer.

The filter does not pin any environment-specific value; the company it checks comes from each order.

Field Mapping Table

Mapping Type

Source Field (iPaaS.com)

Destination Field (Oracle ERP)

Description

Dynamic Formula

Recorded Oracle ERP order link (resolved to the order's header identifier)

HEADERID

Required. Identifies the existing Oracle ERP order this transfer updates. The formula reads the Oracle ERP order number that iPaaS.com recorded for this Sales Order on its original create transfer, then resolves that order's header identifier. If the order has not yet been created and linked in Oracle ERP, no value is returned and the transfer stops with an error (see Error Handling) — the order must already exist.

Static

Static value: UPDATE

OPERATION

Required. Sets the write operation to UPDATE, which tells Oracle ERP to modify the existing order rather than create a new one. Because this collection is dedicated to updating orders that already exist, leave this value set to UPDATE; creating new orders is handled by the create collection.

Mapping Formulas — the Dynamic Formula mapping above is configured with the following expression:

  • HEADERID:

var OrderNumber = await GetExternalIdAsync(Id, "Transaction", SpaceportSystemId);
if(OrderNumber != null && !string.IsNullOrEmpty(OrderNumber.ToString()))
{
var HeaderId = await GetOracleOrderHeaderIdByOrderNumber(OrderNumber.ToString());
if(!string.IsNullOrEmpty(HeaderId.ToString()))
{
return HeaderId.ToString();
}
}
return null;

Update Oracle ERP Sales Order Line FROM iPaaS.com

Description: Writes each Sales Order line to Oracle ERP as part of the parent order update. For each line, it resolves the Oracle ERP item for the line's SKU, decides whether the line already exists in Oracle ERP, and either updates the existing line or adds a new line to the order — without creating duplicate lines. Only the fields that are mapped and provided are written; unmapped or empty fields are not cleared on the existing Oracle ERP line.

Mapping Filter (live configuration):

if(!string.IsNullOrEmpty(Sku.ToString())){
var InventoryItemId = await GetOracleProductBySku(Sku.ToString());
if(!string.IsNullOrEmpty(InventoryItemId.ToString())){
return true;
}
throw new Exception($"The product with the provided SKU = {Sku} does not exist in Oracle ERP as a valid Product Item Number. To create/update a line item for the sales order, you must assign a product that is already registered as a valid Product in Oracle ERP.");
}
return false;

Filter Description: This filter enforces a product prerequisite on each line:

  • A line with a SKU that resolves to a valid Oracle ERP item is processed.

  • If the SKU does not resolve to a valid Oracle ERP item, the transfer stops with this error: The product with the provided SKU = [SKU] does not exist in Oracle ERP as a valid Product Item Number. To create/update a line item for the sales order, you must assign a product that is already registered as a valid Product in Oracle ERP.

  • A line with no SKU is not processed.

The filter does not pin any environment-specific value; the SKU it checks comes from each line.

Field Mapping Table

Mapping Type

Source Field (iPaaS.com)

Destination Field (Oracle ERP)

Description

Dynamic Formula

Sales Order line SKU (resolved to an Oracle ERP item)

INVENTORYITEMID

Required. Resolves the Oracle ERP item for the line by looking up the line's SKU. Oracle ERP identifies each order line by its item, and the item identifier is also used to match the line against the existing order. The line's SKU must already exist as a valid item in Oracle ERP — a hard prerequisite enforced by the collection filter.

Dynamic Formula

Recorded Oracle ERP order line link

LINEID

Required to update an existing line. Identifies the existing Oracle ERP order line this transfer updates, from the line link iPaaS.com recorded on a prior transfer. When no line identifier is found, the line is treated as new and created on the order rather than updated.

Dynamic Formula

Presence of a recorded Oracle ERP line link

OPERATION

Required. Decides per line whether Oracle ERP updates an existing line or creates a new one: when iPaaS.com already has a recorded line link for the line, the formula returns UPDATE; when it does not, it returns CREATE. A line without a valid operation of UPDATE or CREATE is not written. Because the operation is decided per line, a single update transfer can both revise existing lines and add new lines to an order already present in Oracle ERP.

Dynamic Formula

Sales Order line quantity

ORDEREDQUANTITY

Required. Maps the iPaaS.com line quantity to the Oracle ERP ordered quantity. Only a positive quantity is sent; when the quantity is zero or empty, no quantity is written. Because unmapped or empty values are not cleared in Oracle ERP, an empty quantity on an update leaves the existing Oracle ERP quantity unchanged rather than setting it to zero — to change the quantity on an existing line, provide the new positive quantity.

Mapping Formulas — the Dynamic Formula mappings above are configured with the following expressions:

  • INVENTORYITEMID:

var InventoryItemId = await GetOracleProductBySku(Sku.ToString());
if(!string.IsNullOrEmpty(InventoryItemId.ToString())){
return long.Parse(InventoryItemId);
}
return null;

  • LINEID:

var LineId = await GetExternalIdAsync(Id, "Transaction Line", SpaceportSystemId);
if(LineId != null && !string.IsNullOrEmpty(LineId.ToString()))
return LineId.ToString();
return null;

  • OPERATION:

var LineId = await GetExternalIdAsync(Id, "Transaction Line", SpaceportSystemId);
if(LineId != null && !string.IsNullOrEmpty(LineId.ToString())){
return "UPDATE";
}
return "CREATE";

  • ORDEREDQUANTITY:

if (Qty > 0)
return Qty;
return null;

Error Handling

Errors from these mapping collections appear in the iPaaS.com Dashboard / Integration Monitoring / Error Logs. The most common subscriber-facing errors are:

  • No company assigned to the order: The company is not associated with the transaction. You need to assign a company to the transaction in order to proceed with the flow transfer. Assign a company that is registered as an Oracle ERP customer to the Sales Order.

  • Company is not a registered Oracle ERP customer: The company linked to Account ID [account ID] does not exist as a customer in Oracle ERP. You need to assign a company to the transaction that is already registered as a customer in Oracle ERP. Transfer the company to iPaaS.com and confirm it is matched to its Oracle ERP customer before syncing the order.

  • Ship-to party site not found (create): The company linked to Account ID [account ID] does not have the specified PARTY_SITE_NUMBER in an Oracle ERP customer. You need to provide a valid PARTY_SITE_NUMBER to the mapping function. Set the party site number in the ship-to mapping to a value that exists on the customer's Oracle ERP record, or remove the ship-to mapping if a ship-to location is not required.

  • Line SKU is not a valid Oracle ERP item (create): The product with the provided SKU = [SKU] does not exist in Oracle ERP as a valid Product Item Number. To create a line item for the sales order, you must assign a product that is already registered as a valid item in Oracle ERP. Register the product as an item in Oracle ERP, or assign a product whose SKU matches an existing item.

  • Line SKU is not a valid Oracle ERP item (update): The product with the provided SKU = [SKU] does not exist in Oracle ERP as a valid Product Item Number. To create/update a line item for the sales order, you must assign a product that is already registered as a valid Product in Oracle ERP. Register the product as an item in Oracle ERP, or assign a product whose SKU matches an existing item.

  • Order does not exist when updating: Failed to update the Sales Order in Oracle ERP because the order does not exist. Please ensure the order is created in Oracle before attempting an update. Create the order in Oracle ERP first through the create collection, then run the update.

  • Invalid order type (create): When the order type identifier does not correspond to a valid order type in the subscriber's Oracle ERP instance, Oracle ERP rejects the order and the transfer fails. Replace the example order type identifier with a valid one for the instance.

For the full catalog of error messages, descriptions, and resolution steps, see the Error Messages article.

Testing & Validation

Test Scenarios

  1. Create a new iPaaS.com Sales Order for a company that is registered as an Oracle ERP customer, with at least one line whose SKU matches a valid Oracle ERP item and a positive quantity. Trigger the outbound transfer and verify the order and its lines are created in Oracle ERP against the correct customer.

  2. Create a Sales Order whose assigned company is not a registered Oracle ERP customer, and verify the transfer stops with the company-not-a-customer error and no order is created.

  3. Create a Sales Order with a line whose SKU does not resolve to an Oracle ERP item, and verify the transfer stops with the SKU error.

  4. Update an existing Oracle ERP order (one with a recorded order link) by changing a mapped header value, and verify the change is written without creating a duplicate order.

  5. Update an order by revising the quantity on an existing line and adding a new line, and verify the existing line is updated in place and the new line is added to the same order.

  6. Attempt to update a Sales Order that has not yet been created in Oracle ERP, and verify the transfer stops with the order-does-not-exist error.

  7. Manually sync a Sales Order using its iPaaS.com record identifier via the Manual Sync page and verify the transfer succeeds end-to-end.

Validation Checklist

  • Outbound Data Flow subscriptions for the Sales Order Add and Update events are enabled in the iPaaS.com subscriber portal.

  • The example order type identifier, ship-to party site number, and order source tag have been reviewed and replaced with values appropriate to the subscriber's Oracle ERP configuration.

  • Every company used on an order is registered as a customer in Oracle ERP and linked to that customer in iPaaS.com.

  • Every product used on an order line is registered as an item in Oracle ERP with an item number that matches the SKU used on the iPaaS.com line.

  • Mapping filters on these collections and on the opposite-direction "TO iPaaS.com" Sales Order collections are configured to prevent conflicting writes, with a clearly defined source of truth for order data.

Additional Notes

Out of Scope

  • Creating customers: The assigned company's Oracle ERP customer must already exist; it is not created as part of the order transfer.

  • Creating products: A line's product must already exist as an Oracle ERP item; it is not created as part of the line transfer.

  • Deleting orders or lines: These collections do not delete orders or lines in Oracle ERP.

  • Standalone line transfers: Lines are written only as children of a parent Sales Order transfer, not on their own.

  • Full record replace on update: Updates are partial — only mapped, non-empty fields are written, and unmapped or empty fields keep their existing Oracle ERP values.

Operational Notes

  • Environment-specific default values: The order type, ship-to party site, and order source tag ship as example values and must be reviewed and replaced for the subscriber's Oracle ERP configuration before production use. The order type and ship-to site cause transfer failures when incorrect; the source tag affects only classification.

  • Custom integration scope: At the time this documentation was written, this integration is built for a specific client's Oracle ERP configuration. Behavior with other Oracle ERP configurations has not been validated; subscribers or their MiSP should validate order transfers in a staging environment before relying on them in production.

  • Source availability: If Oracle ERP is temporarily unavailable when a transfer is triggered, the transfer fails and an error appears in the iPaaS.com Dashboard / Integration Monitoring / Error Logs. The order can be retried through Manual Sync or by re-triggering the outbound transfer.

Related Documents

Did this answer your question?