--- title: "The Transaction Flow" slug: "the-transaction-flow-1" description: "Streamline your intercompany transactions with automated sales and purchase orders, ensuring seamless order tracking and efficient fulfillment processes." updated: 2026-09-02T14:20:20Z published: 2026-09-02T14:20:20Z canonical: "docs.abakion.com/the-transaction-flow-1" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.abakion.com/llms.txt > Use this file to discover all available pages before exploring further. # The Transaction Flow ## Feature Overview When a Sales Company user releases a sales order whose lines carry the intercompany vendor, the app automatically creates a corresponding purchase order in the Sales Company and queues it for transmission. On release, `SalesRelease` runs `PurchOrderCreateFromSH` to build the purchase order, then `SalesOrderSyncLocal` to release and export it. The purchase order document travels across the BC-to-BC web service connection and lands in the Supply Company's IC inbox. If the Supply Company's IC partner is configured for automatic handling (`Auto import IC inbox` set to **Handle with Job Queue** or **Handle with Web Service**), the inbox transaction is accepted without manual intervention: the app creates a sales order in the Supply Company, optionally runs Available-to-Promise or Capable-to-Promise dating, auto-releases it, and immediately posts a shipment — or a shipment plus invoice — depending on the `Post Sales Order` setting on the IC partner card. The resulting posted sales shipment generates a new IC outbox transaction back to the Sales Company, which the app exports as a purchase receipt; the Sales Company's purchase order is then automatically received and the vendor shipment number is recorded. The document carries a rich set of IC-specific fields beyond the standard purchase or sales order. On the outbox, both the header and the lines are extended with a **Shipping Time** formula, an **IC Document Type** distinguishing Order from Return Order or Blanket Order, and — on each line — the originating **Sales Order No. (sales)**, **Sales Order Line No. (sales)**, **Purch. Order No. (sales)**, **Purch. Order Line No. (sales)**, **Location Code**, **Variant Code**, **Return Reason Code**, and **IC Blanket Order No./Line No.** references. The IC inbox in the Supply Company mirrors these fields so that the resulting sales order has full traceability back to the Sales Company's purchase and sales order numbers. Item tracking (lot numbers, serial numbers, expiration dates) is carried in the separate **IC Item Tracking Lines** table and applied to both the purchase line and any linked sales line when the receipt is posted. When a Sales Company user reopens a purchase order, the app calls `PurchOpen`, which signals the Supply Company via the web service to reopen its sales order and resets the IC Status to **New** so the next release retransmits the updated document. When the user re-releases, `SalesRelease` / `PurchRelease` runs again and the updated order is sent. If lines are deleted, `PurchOrderDelete` sends a deletion notification that sets `Purch. Order Deleted` on the Supply Company's sales order, preventing further editing there. If the Sales Company deletes the entire purchase order after it has been sent, the same flag propagates and the Supply Company sees the order as cancelled. ### Key Facts | Category | Values | | --- | --- | | Document types supported | Order, Return Order, Blanket Order | | IC Document Type (outbox/inbox extended field) | Order, Invoice, Credit Memo, Return Order, Shipment, Receipt, Blanket Order | | IC Transaction Document Type (outbox transaction) | Order, Return Order, Shipment, Invoice, Credit Memo, Receipt, Blanket Order, Order Confirmation, Payment, Refund | | IC Direction (purchase order) | Outgoing (Sales Company sends), Incoming (Supply Company receives) | | IC Direction (sales order in Supply) | Incoming | | IC Status (purchase order) | New — ready to send; Pending — sent, awaiting confirmation; Received — shipment posted back | | Auto import IC inbox options | No Handling, Handle with Job Queue, Handle with Web Service | | Post Sales Order options (Supply Company) | *(blank)*, Ship, Ship and Invoice | | What syncs back from Supply to Sales | Vendor Order No., Vendor Shipment No., Qty. to Receive, purchase receipt posting, item tracking | --- ## Getting Started Follow these steps to walk through the full transaction flow end to end, from creating the sales order on the Sales Company to viewing the posted invoice on both sides. **Step 1 — Create the sales order (Sales Company)** Open **Sales Orders** and create a new order for the end customer. On each item line, populate the **Buy-from Vendor No.** field with the intercompany vendor. Mark the line as **Drop Shipment** if goods are to be shipped directly from the Supply Company to the end customer. Set the **Requested Delivery Date**. **Step 2 — Verify the Intercompany group on the sales order** Open the **Intercompany** FastTab on the sales order header. Confirm **IC Direction** is blank (this is a SALES document, not a SUPPLY incoming order). Note the **Buy-from Vendor No.** field is populated. **Step 3 — Release the sales order** Choose **Release**. The app calls `SalesRelease`, which creates a purchase order in the Sales Company linked to the sales order. The purchase order header shows **IC Direction = Outgoing**, **IC Status = New**, and **Send IC Document = Yes**. **Step 4 — Observe the auto-created purchase order (Sales Company)** Navigate to **Purchase Orders**. The new purchase order has **Sales Order No. (sales)** pointing back to your sales order. If **Auto Release Outbound Purch** is enabled on the IC partner card, the purchase order is already released and an IC outbox transaction has been created automatically. **Step 5 — Review the IC outbox (Sales Company)** Open **IC Outbox Transactions** (or **Handling IC Outbox Transactions**). Locate the transaction for your purchase order. The **IC Document Type** column shows **Order**. If **Auto Transfer Outbox** is enabled in IC Setup, the transaction has already been exported to the Supply Company via the web service; otherwise, use **Send IC Transactions** to export manually. **Step 6 — Confirm delivery to the Supply Company's inbox (Supply Company)** In the Supply Company, open **IC Inbox Transactions**. If **Auto import IC inbox** is set to **No Handling**, the transaction is visible here and requires manual action — proceed to the manual path in steps 7a–7b. If set to **Handle with Job Queue** or **Handle with Web Service**, the inbox has already been processed automatically and a sales order created — skip to step 8. **Step 7a — Manual path: accept the inbox transaction (Supply Company)** On the IC Inbox Transactions page, select the transaction and choose **Complete IC Inbox Action**. The report runs, the inbox transaction is accepted, and a sales order is created in the Supply Company with **IC Direction = Incoming** and **Sell-to IC Partner Code** set to the Sales Company's IC partner code. **Step 7b — Manual path: release the sales order (Supply Company)** Open the newly created sales order in the Supply Company. Review dates (ATP/CTP may have adjusted them). Choose **Release**. If **Auto Release Inbound Sales** is enabled on the IC partner card, this step happens automatically. **Step 8 — Supply Company posts shipment (and optionally invoice)** Depending on the **Post Sales Order** setting on the IC partner card: - **Ship** — The app automatically posts a sales shipment when the order is accepted. - **Ship and Invoice** — A sales shipment and sales invoice are posted in a single step. - **(blank)** — No automatic posting; the Supply Company user posts manually from the sales order. **Step 9 — Shipment syncs back to the Sales Company** When the Supply Company posts the shipment, `SalesShipmentSendIC` creates a new IC outbox transaction with **IC Document Type = Shipment** and exports it to the Sales Company. On the Sales Company, the app matches the incoming transaction to the purchase order using the **Purch. Order No. (sales)** and **PO Line No. (sales)** fields on the inbox lines, sets **Qty. to Receive**, and posts a purchase receipt. The **Vendor Shipment No.** is recorded on the purchase header. **Step 10 — Verify receipt on the Sales Company** Open the purchase order. The **Qty. Received** is updated. Navigate to **Receipts** to see the posted purchase receipt. If the drop-ship sales order is also present, its **Quantity Shipped** is updated via the standard BC drop-shipment posting chain. **Step 11 — Invoice arrives (if Supply Company invoices separately)** If the Supply Company posts a separate sales invoice (or **Ship and Invoice** was used), a purchase invoice is created on the Sales Company side and linked to the purchase order. Use the **Show Purchase Invoices (IC)** action on the purchase order to navigate to it. **Step 12 — Monitor from the IC Sales Order Fact Box (Sales Company)** On the original sales order in the Sales Company, review the **Intercompany** FactBox on the sales lines. It shows the linked **Purchase Order Status**, **IC Status**, **Vendor Order Status**, and **Vendor Order No.** for each drop-shipment line, giving a real-time status overview without leaving the sales order. **Step 13 — Trace the full document chain** Open the purchase order and choose **Get IC Purch. information** to pull the latest status from the Supply Company. To see the full document relation chain (sales order → purchase order → purchase receipt), use the **IC Document Relations** page which is powered by the **IC Document Relation** table. **Step 14 — Handled transactions (both companies)** After processing, the original IC inbox transaction moves to **Handled IC Inbox Transactions**. The original outbox transaction moves to **Handled IC Outbox Transactions**. Both pages support the **Export IC XML** action to download the raw XML payload for troubleshooting. The **Created DateTime** and **IC Document Type** columns are visible on these pages thanks to the app's page extensions. --- ## Related Features The transaction flow works in tandem with the **Intercompany Setup** and **IC Partner Card**, where the automation flags (`Auto Release Outbound Purch`, `Auto Release Inbound Sales`, `Post Sales Order`, `Auto import IC inbox`) are configured — changing any of these flags alters how much of the flow runs without human intervention. The flow also integrates with the standard BC **Item Tracking** system: lot numbers, serial numbers, and expiration dates entered on the Supply Company's sales shipment travel across in the **IC Item Tracking Lines** table and are registered on the Sales Company's purchase receipt. For companies using **Blanket Orders**, the app carries the blanket order reference number and line number through the outbox and inbox so that the Supply Company can link the call-off to the correct blanket agreement. Finally, the **Vendor Order Status** field on purchase lines is populated from the Supply Company's sales order status, providing Sales Company users with visibility into the fulfilment progress without requiring direct access to the partner's BC environment. --- ## User Stories **Create a sales order on the Sales Company that triggers an IC purchase order** **As a** Sales Company order entry user, **I want** a purchase order to be created automatically when I release a sales order with an intercompany vendor, **so that** I do not have to create and link the purchase order manually. **Acceptance criteria:** - When a sales order with drop-shipment lines referencing an IC vendor is released, the app creates a purchase order with `IC Direction = Outgoing` and `Send IC Document = Yes`. - The purchase order header carries the originating `Sales Order No. (sales)` for traceability. - If a purchase order for the same sales order and vendor already exists and is open, new lines are added to it rather than creating a duplicate header. **Understand IC Status and IC Direction fields on the sales and purchase order** **As a** Sales Company user reviewing an order, **I want** to understand what the IC Status and IC Direction fields mean, **so that** I can tell at a glance where the order is in the intercompany flow. **IC Direction** identifies who owns the document: - **Outgoing** on a purchase order — the Sales Company is sending this order to the Supply Company. - **Incoming** on a sales order in the Supply Company — the Sales Company placed this order. **IC Status** tracks the handshake lifecycle on the purchase order (Sales Company side): - **New** — the order is ready to be transmitted or has been reset for retransmission. - After the first successful send the status is managed by the outbox/inbox processing cycle; subsequent changes reset it to **New** so the updated document is retransmitted on the next release. **Release a purchase order and send it to the IC outbox** **As a** Sales Company purchasing user, **I want** releasing a purchase order to automatically create and export an IC outbox transaction, **so that** the Supply Company receives the order without me having to take a separate action. **Acceptance criteria:** - When `Auto Release Outbound Purch` is enabled on the IC partner card, releasing the parent sales order also releases the purchase order and calls `SendPurchDoc`, which creates an IC outbox transaction via the standard `ICInboxOutboxMgt.CreateOutboxPurchDocTrans`. - If `Auto Transfer Outbox` is enabled in IC Setup, the outbox transaction is exported immediately over the web service connection. - The **Handled IC Outbox Transactions** page records the sent transaction with the correct `IC Document Type`. **Monitor the IC outbox transaction (Handling IC Outbox Transactions page)** **As a** Sales Company user responsible for IC coordination, **I want** to see all pending and sent IC outbox transactions in one place, **so that** I can identify any transactions that failed to export or need manual attention. **Acceptance criteria:** - The **Handling IC Outbox Transactions** page lists all IC outbox transactions with their document type, date, and partner code. - The **IC Document Type** column (added by the app's page extension on **Handled IC Outbox Transactions**) distinguishes Orders from Shipments and Return Orders. - The **Export IC XML** action on handled transactions allows downloading the raw XML for troubleshooting failed imports in the Supply Company. **Supply Company receives the IC inbox transaction and processes it automatically** **As a** Supply Company operations user, **I want** the IC inbox to be processed automatically when a new purchase order arrives from the Sales Company, **so that** I do not have to manually accept every incoming transaction. **Acceptance criteria:** - When `Auto import IC inbox` on the IC partner card is set to **Handle with Job Queue**, the app schedules a Job Queue entry under the `SCBIC` category. - When set to **Handle with Web Service**, the Sales Company triggers processing immediately after export via `SCBICImportInboxWrapper`. - The inbox transaction is checked for duplicates (a newer handled transaction for the same document number causes older ones to be cancelled automatically). - A sales order is created in the Supply Company with `IC Direction = Incoming`. **Supply Company auto-releases and auto-ships/invoices** **As a** Supply Company warehouse or fulfillment user, **I want** inbound IC sales orders to be released and posted without manual steps, **so that** the fulfillment cycle is as short as possible. **Acceptance criteria:** - If `Auto Release Inbound Sales` is enabled on the IC partner card, `SalesOrderAfterCreate` releases the sales order immediately after it is created from the inbox. - If `Post Sales Order` is set to **Ship**, the app posts a sales shipment automatically. - If set to **Ship and Invoice**, both a shipment and a sales invoice are posted in the same operation. - If ATP or CTP dating is configured (`Inbound Sales Order Dates`), the app runs availability calculation and only auto-releases if a valid shipment date can be confirmed. **Supply Company posts a shipment — how it syncs back to the Sales Company's purchase order** **As a** Sales Company purchasing user, **I want** the purchase order to be automatically received when the Supply Company ships the goods, **so that** my inventory and purchase ledger reflect the actual shipment without manual data entry. **Acceptance criteria:** - When the Supply Company posts a sales shipment, `SalesShipmentSendIC` creates an IC outbox transaction with `IC Document Type = Shipment` and `SCB IC Document Type = Shipment` on the outbox transaction record. - The outbox lines carry the `SCB Purch. Order No. (sales)` and `SCB PO Line No. (sales)` fields so the Sales Company can match the receipt to the correct purchase order line. - `PurchOrderReceiveFromICDoc` sets `Qty. to Receive` on each purchase line and posts a purchase receipt via `Purch.-Post`. - The `Vendor Shipment No.` on the purchase header is updated to the Supply Company's shipment document number. **Supply Company posts an invoice — how it syncs back** **As a** Sales Company AP user, **I want** a purchase invoice to appear automatically when the Supply Company invoices the order, **so that** I can post the vendor liability without re-entering data. **Acceptance criteria:** - When `Post Sales Order = Ship and Invoice` is configured on the IC partner, a sales invoice is posted on the Supply Company side as part of the same automatic step as the shipment. - The resulting IC outbox transaction (invoice type) is sent to the Sales Company's inbox. - After processing the inbox, a purchase invoice is created in the Sales Company and linked to the purchase order. - The **Show Purchase Invoices (IC)** action on the purchase order navigates to the linked purchase invoice(s). **Reopen a purchase order on the Sales Company and resend changes** **As a** Sales Company user who needs to amend an order already sent to the Supply Company, **I want** reopening the purchase order to notify the Supply Company that the order has been reopened, **so that** both sides can be updated before any shipment is made. **Acceptance criteria:** - When the purchase order is reopened, `PurchOpen` calls the Supply Company's web service to reopen its sales order (`PurchOrderReOpen`). - The purchase order's `IC Status` is reset to **New** so the next release retransmits the full updated document. - Reopening is blocked if the parent sales order is not also open (the app shows `Text012Err`). - Reopening is blocked if any line has already been shipped or received (local and remote checks in `CheckPurchDocCanBeOpened`). **Handle a return order / credit memo flow** **As a** Sales Company user managing a customer return, **I want** a purchase return order to be created and sent to the Supply Company when I process the sales return, **so that** the Supply Company can accept the goods back and credit my purchase account. **Acceptance criteria:** - Sales return order lines with a Return Reason Code marked as `Intercompany` trigger `PurchReturnOrderCreateFromSRO` when the sales return order is released, creating a purchase return order in the Sales Company. - The purchase return order is transmitted to the Supply Company's IC inbox with `IC Document Type = Return Order`. - `SalesOrderSyncLocal` on the Sales Company sends the purchase return order to the Supply Company if `Auto Release Outbound Purch` is enabled. - `Post Sales Return Order` on the IC partner card controls whether the Supply Company automatically posts a return receipt (`Receive`) or a return receipt plus credit memo (`Receive and Invoice`). **Handle a blanket order reference** **As a** Sales Company purchasing planner, **I want** blanket order references to travel with the IC transaction, **so that** the Supply Company can link each call-off to the correct blanket agreement on their side. **Acceptance criteria:** - The outbox sales line extension carries `IC Blanket Order No.` and `IC Blanket Order Line No.` fields. - The inbox purchase line extension mirrors these as `IC Blanket Order No.` and `IC Blanket Order Line No.` alongside the standard `Blanket Order No.` and `Blanket Order Line No.` fields. - When a blanket order (`Document Type = Blanket Order`) is sent, `SalesOrderConfirmation` sends it with `IC Document Type = Blanket Order` on the outbox header. **Monitor from the IC Sales Order Fact Box** **As a** Sales Company customer-facing user, **I want** to see the fulfilment status of the intercompany purchase directly on the sales order, **so that** I can answer customer delivery queries without switching to the purchase order. **Acceptance criteria:** - The **Intercompany** FactBox on the Sales Order page (added via the `SCB.647 SalesOrder Ext` page extension) shows the linked **SCB IC Sales Order Fact Box** part. - For outgoing (Sales Company) lines the FactBox shows: Drop Shipment flag, Buy-from Vendor No., Vendor Location Code, IC Partner Ref. Type, IC Partner Reference, IC Item Reference No., IC Partner Code, purchase order Status, IC Status, Vendor Order Status, and Vendor Order No. - For incoming (Supply Company) lines the FactBox shows: Sales Order No. (sales), Sales Order Line No. (sales), Purch. Order No. (sales), and Purch. Order Line No. (sales). **Trace the document chain via Document Relations** **As a** Sales Company user investigating a discrepancy, **I want** to follow the full chain from sales order through to the posted purchase receipt, **so that** I can identify where in the flow a quantity or date mismatch originated. **Acceptance criteria:** - The **IC Document Relation** table stores the mapping between IC inbox/outbox transactions and posted shipment or receipt documents. - Each record links a `Table ID`, `Transaction No.`, `IC Partner Code`, `Transaction Source`, `Line No.`, and `Entry No.` to a `Document No.` of type Shipment No. - Users can access this information from the **IC Document Relations** page to trace which shipment was created from which IC transaction. **Handle the case where Auto Import IC Inbox = None (manual processing)** **As a** Supply Company user who prefers to review each incoming order before accepting, **I want** to be able to process IC inbox transactions manually, **so that** I retain control over when and how orders are created in my company. **Acceptance criteria:** - When `Auto import IC inbox` is set to **No Handling** on the IC partner card, incoming IC transactions accumulate in **IC Inbox Transactions** without any automatic processing. - Users can review each transaction on the **IC Inbox Transactions** page, inspect the document details, and choose to accept or reject. - Duplicate detection still applies: if a newer handled transaction exists for the same document, older transactions are automatically cancelled (`ICInboxCheckAccept`). **Process an IC inbox transaction manually** **As a** Supply Company user with `Auto import IC inbox = No Handling`, **I want** to accept a specific inbox transaction and create the resulting document, **so that** the purchase order from the Sales Company becomes a sales order I can fulfil. **Acceptance criteria:** - Selecting a transaction and running **Complete IC Inbox Action** (backed by report `SCB647 Complete ICInbox Action` via `SCBICImportInboxWrapper`) creates the sales order or updates the existing one. - If the incoming transaction updates an existing sales order (change order scenario), the app archives the current version, reopens the sales order, applies all header and line changes, deletes removed lines (where not yet shipped), and re-releases if `Auto Release Inbound Sales` is enabled. - After processing, the inbox transaction moves to **Handled IC Inbox Transactions** with a `Created DateTime` timestamp, and the **IC Document Type** column shows the type of document that was handled. --- ## Field Reference ### Sales Order — IC-relevant fields (Sales Company) | Caption | Description | | --- | --- | | IC Direction | Shows whether the order is Outgoing (drop-ship Sales Company order) or left blank for a normal sales order. Read-only. | | IC Status | Tracks the transmission lifecycle of the linked purchase order. | | Sell-to IC Partner Code | The IC partner code of the customer (populated automatically from the customer card). | | Bill-to IC Partner Code | The IC partner code of the bill-to customer. | | Customer Order No. | Carries the customer's own order reference, visible in the IC partner's company. | | Send IC Document | Indicates the linked purchase order is flagged for IC transmission. Read-only. | | Buy-from Vendor No. | The intercompany vendor whose lines will generate the purchase order on release. | | Your Reference | The customer reference; transmitted to the Supply Company's incoming sales order. | | Intercompany FactBox | Real-time view of the linked purchase order's Status, IC Status, Vendor Order Status, and Vendor Order No. per sales line. | ### Purchase Order — IC-relevant fields (Sales Company) | Caption | Description | | --- | --- | | IC Direction | **Outgoing** on an IC purchase order created by the app. | | IC Status | **New** when the order is ready to transmit or has been reset; updated after successful send. | | Buy-from IC Partner Code | The IC partner that will receive this purchase order as an incoming sales order. | | Pay-to IC Partner Code | The IC partner that will issue the invoice. | | Sales Order No. (sales) | The sales order number this purchase order was created from, linking the two documents. | | Vendor Order Status | The status of the corresponding sales order in the Supply Company, synced back via the web service. | ### IC Outbox Transaction — extended fields | Caption | Description | | --- | --- | | IC Document Type | Distinguishes the transaction payload type: Order, Return Order, Shipment, Invoice, Credit Memo, Blanket Order, Order Confirmation, Receipt, Payment, or Refund. | | Shipping Time (header) | The shipping time formula from the purchase order header, transmitted to the Supply Company. | | Shipping Time (line) | The line-level shipping time, transmitted per order line. | | IC Document Type (line) | The document type at line level (mirrors the header type). | | Sales Order No. (sales) | The originating sales order number in the Sales Company, carried on each outbox line. | | Sales Order Line No. (sales) | The originating sales line number. | | Purch. Order No. (sales) | The purchase order number in the Sales Company, used by the Supply Company to route receipt confirmations. | | Purch. Order Line No. (sales) | The purchase order line number in the Sales Company. | | Location Code | The delivery location code from the sales/purchase order line. | | Variant Code | The item variant code from the sales/purchase order line. | | Return Reason Code | The return reason code on return order lines, transmitted to the Supply Company. | | IC Blanket Order No. | The blanket order number in the Sales Company, carried on call-off order lines. | | IC Blanket Order Line No. | The blanket order line number in the Sales Company. | ## Related - [Overview and Company Roles](/overview-and-company-roles-1.md) - [Configuring an IC Partner (Supply Company)](/configuring-an-ic-partner-supply-company.md) - [Setting Up a Supply Company](/setting-up-a-supply-company.md)