Articles in this section

Configure and run flows in the SAP Business Network Commerce Automation – NetSuite integration template for Buyers

Additional record mapping is required to integrate the template’s exports and imports with your SAP Business Network Commerce Automation and NetSuite apps.

SAP Business Network Commerce Automation invoices and credit memos to NetSuite vendor bills and bill credits (with attachments)

The flow syncs invoices and credit memos from SAP Business Network Commerce Automation as vendor bills and bill credits in NetSuite.

Flow details

  • Export source: SAP Business Network Commerce Automation
  • Import destination: NetSuite
  • Built-in exports:
      • Get SAP Business Network Commerce Automation invoices and credit memos – Get all invoices and credit memos from SAP Business Network Commerce Automation.
      • Get SAP Business Network Commerce Automation invoice attachments – Get all attachments for an invoice from SAP Business Network Commerce Automation by attachment URL.
      • Get SAP Business Network Commerce Automation credit memo attachments – Get all attachments for a credit memo from SAP Business Network Commerce Automation by attachment URL.
  • Built-in imports:
    Import NetSuite vendor bills (without taxes for single item) Add (or ignore) vendor bills without taxes for a single line item into NetSuite with Reference No. as the lookup identifier.
    Import NetSuite vendor bills (with taxes for single line item)

    Add (or ignore) vendor bills with taxes for a single line item into NetSuite with Reference No. as the lookup identifier.

    Import NetSuite vendor bills (without taxes) Add (or ignore) vendor bills without taxes into NetSuite with Reference No. as the lookup identifier.
    Import NetSuite vendor bills (with taxes) Add (or ignore) vendor bills with taxes into NetSuite with Reference No. as the lookup identifier.
    Import SAP Business Network Commerce Automation invoice status Update InvoiceStatus into SAP Business Network Commerce Automation with invoiceID.
    Import NetSuite attachments as File Cabinet (first) Add (or update) invoice attachments into NetSuite with Name as the lookup identifier.
    Import NetSuite attachments to vendor bills Attach vendor bill attachments into NetSuite.
    Import SAP Business Network Commerce Automation invoice status for attachments – Update invoice status for attachments into SAP Business Network Commerce Automation with invoiceID.
    Import NetSuite bill credits (without taxes) Add (or ignore) bill credits without taxes into NetSuite with Reference No. as the lookup identifier.
    Import NetSuite bill credits (with taxes) Add (or ignore) bill credits with taxes into NetSuite with Reference No. as the lookup identifier.
    Import NetSuite attachments to bill credits Attach bill credit attachments into NetSuite.
    Import SAP Business Network Commerce Automation credit memo status for attachments Update credit memo status into SAP Business Network Commerce Automation with invoiceID.
  • Functional use cases: This template automates the most common use cases required to synchronize SAP Business Network Commerce Automation Buyer data with NetSuite. Sync Payment Remittances, Goods Receipts, Purchase Orders, Purchase Order Cancellations, Order Confirmations, Ship Notices, Invoices, and Credit Memos (with attachments) between SAP Business Network Commerce Automation and NetSuite

Before you begin

Sync NetSuite purchase orders with SAP Business Network Commerce Automation purchase orders.

  • OrderId in SAP Business Network Commerce Automation and PO# in NetSuite should be the same.
  • Tax Code and Tax Rate in NetSuite should be the same as Tax Category and Tax Rate in SAP Business Network Commerce Automation, respectively.
  • Currency symbols in NetSuite and currency values in SAP Business Network Commerce Automation should be the same.

Setup instructions

Before you run the flow, configure the following:

  1. Create a webhook on SAP Business Network Commerce Automation invoice creation.
  2. Configure a dynamic lookup for Vendor (InternalId) in all NetSuite vendor bills and bill credits import flows as per your requirements.
  3. Add subsidiary mapping on all NetSuite vendor bills and bill credits import flows as per your requirements.
  4. Configure a static lookup for item[*].taxcode in NetSuite vendor bills (with taxes for a single line item), vendor bills (with taxes), and expense[*].taxcode in NetSuite bill credits (with taxes) import flows as per your requirements. Set the data type as Integer.
  5. Configure mapping for Account (InternalId) in all NetSuite import flows as per your requirements.
  6. Configure mapping for Expenses: Account (InternalId) in NetSuite bill credits (with taxes) and bill credits (without taxes) import flows as per your requirements.
  7. Configure a static lookup for Currency (InternalId) in all NetSuite vendor bills and bill credits import flows as per your requirements.
  8. Configure the following mappings as per your business needs in NetSuite vendor bills import(without taxes):
    1. Vendor (InternalId)
    2. Date
    3. Reference No.
    4. Currency (InternalId)
    5. Account (InternalId)
    6. Location (InternalId)
    7. Subsidiary (InternalId)
    8. Special Handling Amount
    9. Items : Item (Name)
    10. Items : Quantity
    11. Items : Rate
    12. Items : Amount
  9. Configure the following mappings as per your business needs in NetSuite vendor bills import(with taxes):
    1. Vendor (InternalId)
    2. Date
    3. Reference No.
    4. Currency (InternalId)
    5. Account (InternalId)
    6. Location (InternalId)
    7. Subsidiary (InternalId)
    8. Special Handling Amount
    9. Items : Item (Name)
    10. Items : Quantity
    11. Items : Rate
    12. Items : Amount
    13. item[*].taxcode
    14. item[*].tax1amt
    15. item[*].grossamt
  10. Configure the following mappings as per your business needs in NetSuite bill credits import(with taxes):
    1. Vendor (InternalId)
    2. Date
    3. Reference No.
    4. Currency (InternalId)
    5. Account (InternalId)
    6. Location (InternalId)
    7. Subsidiary (InternalId)
    8. expense[*].taxcode
    9. Expenses : Amount
    10. expense[*].tax1amt
    11. expense[*].grossamt
    12. Expenses : Account (InternalId)
  11. Configure the following mappings as per your business needs in NetSuite bill credits import(without taxes):
    1. Vendor (InternalId)
    2. Date
    3. Reference No.
    4. Currency (InternalId)
    5. Account (InternalId)
    6. Location (InternalId)
    7. Subsidiary (InternalId)
    8. expense[*].taxcode
    9. Expenses : Amount
    10. expense[*].tax1amt
    11. expense[*].grossamt
    12. Expenses : Account (InternalId)
  12. Configure the following mappings as per your business needs in SAP Business Network Commerce Automation invoice status update import, request body:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE cXML SYSTEM "http://xml.cxml.org/schemas/cXML/1.2.014/cXML.dtd">
    <cXML payloadID="{{random “CRYPTO”/“UUID” length}}" timestamp="2019-11-24T22:00:13-08:00">
    <Header>
    <From>
    <Credential domain="AribaNetworkUserID">
    <Identity>{{connection.http.unencrypted.Buyer_AribaNetworkUserID}}</Identity>
    </Credential>
    </From>
    <To>
    <Credential domain="NetworkId">
    <Identity>{{connection.http.unencrypted.Supplier_NetworkId}}</Identity>
    </Credential>
    </To>
    <Sender>
    <Credential domain="AribaNetworkUserID">
    <Identity>{{connection.http.unencrypted.Buyer_AribaNetworkUserID}}</Identity>
    <SharedSecret>{{connection.http.encrypted.Buyer_SharedSecret}}</SharedSecret>
    </Credential>
    <UserAgent>Celigo Integration</UserAgent>
    </Sender>
    </Header>
    {{#each data}}
    {{#if InvoiceID}}
    <Request>
    <StatusUpdateRequest>
    <Status code="201" text="ok">The invoice was received by the buying organization and is being processed.</Status>
    <InvoiceStatus type="processing">
    <InvoiceIDInfo invoiceID="{{Request.InvoiceDetailRequest.InvoiceDetailRequestHeader.[$].invoiceID}}" invoiceDate="{{Request.InvoiceDetailRequest.InvoiceDetailRequestHeader.[$].invoiceDate}}" />
    <Comments> Invoice is successfully created in NetSuite.</Comments>
    </InvoiceStatus>
    </StatusUpdateRequest>
    </Request>
    {{else}}
    <Request>
    <StatusUpdateRequest>
    <Status code="201" text="ok">The buying organization is rejecting the invoice.
    The Comments element should contain free text explaining why the invoice was rejected,
    and the actions the supplier should take. The supplier can then resubmit a corrected invoice
    (a new invoice document with a new invoice number).</Status>
    <InvoiceStatus type="rejected">
    <InvoiceIDInfo invoiceID="{{Request.InvoiceDetailRequest.InvoiceDetailRequestHeader.[$].invoiceID}}" invoiceDate="{{Request.InvoiceDetailRequest.InvoiceDetailRequestHeader.[$].invoiceDate}}" />
    <Comments>{{errors.message}}</Comments>
    </InvoiceStatus>
    </StatusUpdateRequest>
    </Request>
    {{/if}}
    {{/each}}
    </cXML>
  13. Configure the following mappings as per your business needs in the SAP Business Network Commerce Automation credit memo status import, request body:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE cXML SYSTEM "http://xml.cxml.org/schemas/cXML/1.2.014/cXML.dtd">
    <cXML payloadID="{{random “CRYPTO”/“UUID” length}}" timestamp="2019-11-24T22:00:13-08:00">
    <Header>
    <From>
    <Credential domain="AribaNetworkUserID">
    <Identity>{{connection.http.unencrypted.Buyer_AribaNetworkUserID}}</Identity>
    </Credential>
    </From>
    <To>
    <Credential domain="NetworkId">
    <Identity>{{connection.http.unencrypted.Supplier_NetworkId}}</Identity>
    </Credential>
    </To>
    <Sender>
    <Credential domain="AribaNetworkUserID">
    <Identity>{{connection.http.unencrypted.Buyer_AribaNetworkUserID}}</Identity>
    <SharedSecret>{{connection.http.encrypted.Buyer_SharedSecret}}</SharedSecret>
    </Credential>
    <UserAgent>Celigo Integration</UserAgent>
    </Sender>
    </Header>
    {{#each data}}
    {{#if InvoiceID}}
    <Request>
    <StatusUpdateRequest>
    <Status code="201" text="ok">The CreditMemo was received by the buying organization and is being processed.</Status>
    <InvoiceStatus type="processing">
    <InvoiceIDInfo invoiceID="{{Request.InvoiceDetailRequest.InvoiceDetailRequestHeader.[$].invoiceID}}" invoiceDate="{{Request.InvoiceDetailRequest.InvoiceDetailRequestHeader.[$].invoiceDate}}" />
    <Comments> CreditMemo is successfully created in NetSuite.</Comments>
    </InvoiceStatus>
    </StatusUpdateRequest>
    </Request>
    {{else}}
    <Request>
    <StatusUpdateRequest>
    <Status code="201" text="ok">The buying organization is rejecting the CreditMemo. The Comments element should contain free text explaining why the CreditMemo was rejected, and the actions the supplier should take. The supplier can then resubmit a corrected CreditMemo (a new CreditMemo document with a new invoice number).</Status>
    <InvoiceStatus type="rejected">
    <InvoiceIDInfo invoiceID="{{Request.InvoiceDetailRequest.InvoiceDetailRequestHeader.[$].invoiceID}}" invoiceDate="{{Request.InvoiceDetailRequest.InvoiceDetailRequestHeader.[$].invoiceDate}}" />
    <Comments>{{errors.message}}</Comments>
    </InvoiceStatus>
    </StatusUpdateRequest>
    </Request>
    {{/if}}
    {{/each}}
    </cXML>
  14. Configure the following as per your business needs on the SAP Business Network Commerce Automation invoice attachments export: 

    Response mapping:

    Step14ResponseMapping.png
  15. Configure the following as per your business needs on the NetSuite attachments as File Cabinet import:
    Step15transfer.png

    Response mapping:

    Step15ResponseMapping.png
  16. Configure the following mappings as per your business needs on the NetSuite attachments to vendor bills import:
    Step16Mappings.png

    Response mapping:

    Step16ResponseMapping.png
  17. Configure the following as per your business needs on the SAP Business Network Commerce Automation invoices status for attachments import:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE cXML SYSTEM "http://xml.cxml.org/schemas/cXML/1.2.014/cXML.dtd">
    <cXML payloadID="{{random “CRYPTO”/“UUID” length}}" timestamp="2019-11-24T22:00:13-08:00">
    <Header>
    <From>
    <Credential domain="AribaNetworkUserID">
    <Identity>{{connection.http.unencrypted.Buyer_AribaNetworkUserID}}</Identity>
    </Credential>
    </From>
    <To>
    <Credential domain="NetworkId">
    <Identity>{{connection.http.unencrypted.Supplier_NetworkId}}</Identity>
    </Credential>
    </To>
    <Sender>
    <Credential domain="AribaNetworkUserID">
    <Identity>{{connection.http.unencrypted.Buyer_AribaNetworkUserID}}</Identity>
    <SharedSecret>{{connection.http.encrypted.Buyer_SharedSecret}}</SharedSecret>
    </Credential>
    <UserAgent>Celigo Integration</UserAgent>
    </Sender>
    </Header>
    {{#each data}}
    {{#if InvoiceID}}
    <Request>
    <StatusUpdateRequest>
    <Status code="201" text="ok">The attachment was received by the buying organization and is being processed.</Status>
    <InvoiceStatus type="processing">
    <InvoiceIDInfo invoiceID="{{Request.InvoiceDetailRequest.InvoiceDetailRequestHeader.[$].invoiceID}}" invoiceDate="{{Request.InvoiceDetailRequest.InvoiceDetailRequestHeader.[$].invoiceDate}}" />
    <Comments> Attachment successfully got attached to the Invoice in NetSuite.</Comments>
    </InvoiceStatus>
    </StatusUpdateRequest>
    </Request>
    {{else}}
    <Request>
    <StatusUpdateRequest>
    <Status code="201" text="ok">The buying organization is rejecting the invoice attachment. The Comments element should contain free text explaining why the invoice was rejected, and the actions the supplier should take. The supplier can then resubmit a corrected invice attachment (a new invoice document with a new invoice number).</Status>
    <InvoiceStatus type="rejected">
    <InvoiceIDInfo invoiceID="{{Request.InvoiceDetailRequest.InvoiceDetailRequestHeader.[$].invoiceID}}" invoiceDate="{{Request.InvoiceDetailRequest.InvoiceDetailRequestHeader.[$].invoiceDate}}" />
    <Comments>{{errors.message}}</Comments>
    </InvoiceStatus>
    </StatusUpdateRequest>
    </Request>
    {{/if}}
    {{/each}}
    </cXML>
  18. Configure the following as per your business needs on the SAP Business Network Commerce Automation invoice attachment export:
    Step18Export.png

    Response mapping:

    step18responsemapping.png
  19. Configure the following as per your business needs on the NetSuite attachments as File Cabinet import:
    Step19Import.png

    Response mapping:

    Step19ResponseMapping.png
  20. Configure the following mappings as per your business needs on the NetSuite attachments to bill credits import:
    Step20ImportMappings.png

    Response mapping:

    Step20ResponseMapping.png
  21. Configure the following as per your business needs on the credit memos status for attachments import:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE cXML SYSTEM "http://xml.cxml.org/schemas/cXML/1.2.014/cXML.dtd">
<cXML payloadID="{{random “CRYPTO”/“UUID” length}}" timestamp="2019-11-24T22:00:13-08:00">
<Header>
<From>
<Credential domain="AribaNetworkUserID">
<Identity>{{connection.http.unencrypted.Buyer_AribaNetworkUserID}}</Identity>
</Credential>
</From>
<To>
<Credential domain="NetworkId">
<Identity>{{connection.http.unencrypted.Supplier_NetworkId}}</Identity>
</Credential>
</To>
<Sender>
<Credential domain="AribaNetworkUserID">
<Identity>{{connection.http.unencrypted.Buyer_AribaNetworkUserID}}</Identity>
<SharedSecret>{{connection.http.encrypted.Buyer_SharedSecret}}</SharedSecret>
</Credential>
<UserAgent>Celigo Integration</UserAgent>
</Sender>
</Header>
{{#each data}}
{{#if CreditMemoID}}

<Request>
<StatusUpdateRequest>
<Status code="201" text="ok">The CreditMemo was received by the buying organization and is being processed.</Status>
<InvoiceStatus type="processing">
<InvoiceIDInfo invoiceID="{{Request.InvoiceDetailRequest.InvoiceDetailRequestHeader.[$].invoiceID}}" invoiceDate="{{Request.InvoiceDetailRequest.InvoiceDetailRequestHeader.[$].invoiceDate}}" />
<Comments> CreditMemo is successfully created in NetSuite.</Comments>
</InvoiceStatus>
</StatusUpdateRequest>
</Request>
{{else}}

<Request>
<StatusUpdateRequest>
<Status code="201" text="ok">The buying organization is rejecting the CreditMemo. The Comments element should contain free text explaining why the CreditMemo was rejected, and the actions the supplier should take. The supplier can then resubmit a corrected CreditMemo (a new CreditMemo document with a new invoice number).</Status>
<InvoiceStatus type="rejected">
<InvoiceIDInfo invoiceID="{{Request.InvoiceDetailRequest.InvoiceDetailRequestHeader.[$].invoiceID}}" invoiceDate="{{Request.InvoiceDetailRequest.InvoiceDetailRequestHeader.[$].invoiceDate}}" />
<Comments>{{errors.message}}</Comments>
</InvoiceStatus>
</StatusUpdateRequest>
</Request>
{{/if}}
{{/each}}

</cXML>

SAP Business Network Commerce Automation purchase order confirmations to NetSuite purchase order confirmations

This flow syncs SAP Business Network Commerce Automation purchase order confirmations with NetSuite purchase order confirmations.

Flow details

  • Export source: SAP Business Network Commerce Automation
  • Import destination: NetSuite
  • Built-in export: Get SAP Business Network Commerce Automationorder confirmations – get all purchase order confirmations from SAP Business Network Commerce Automation
  • Built-in import: Import NetSuite purchase order confirmations – update purchase orders with status as Approved/Rejected into NetSuite with PO # as the lookup identifier
  • Functional use cases for NetSuite purchase order confirmations import:
    • Approval Status (InternalId)
    • SAP Business Network Commerce Automation Shipment Date
    • SAP Business Network Commerce Automation PO Delivery Date

Before you begin

  1. Sync NetSuite purchase orders with SAP Business Network Commerce Automation purchase orders.
  2. Verify that OrderId in SAP Business Network Commerce Automation and PO # in NetSuite are the same.

Setup instructions

  1. Create a webhook on SAP Business Network Commerce Automation orderConfirmation creation.
  2. Create custom date/time fields on the purchase order record type in NetSuite to store the SAP Business Network Commerce Automation purchase order shipment date and delivery date.
  3. Configure mapping for approval status (internalId) in the Import NetSuite purchase order confirmations flow.

Configure endpoint in SAP Business Network Commerce Automation Buyer for webhook (for orderConfirmation)

  1. Click Manage profile available at the right under the username.
  2. Click Business end points (cXML and OData Setup).
  3. Click Create.
  4. Enter the endpoint name and add the custom URL token generated from the webhook in the Shared secret field.
  5. Enter the public URL of the webhook under POST URL and click the checkbox below.
  6. Save the endpoint and set the default to yes.
  7. Under Configure document routing, select the endpoint for document type and save it.

SAP Business Network Commerce Automation ship notices to NetSuite ship notices

This flow syncs SAP Business Network Commerce Automation ship notices with NetSuite ship notices.

Flow details

  • Export source: SAP Business Network Commerce Automation
  • Import destination: NetSuite
  • Built-in export: SAP Business Network Commerce Automation ship notices – get all ship notices from SAP Business Network Commerce Automation
  • Built-in import: Import NetSuite ship notices – update purchase order shipment status as Shipped into NetSuite with PO# as the lookup identifier
  • Functional use cases for NetSuite ship notices import:
    • SAP Business Network Commerce Automation Shipment Date
    • SAP Business Network Commerce Automation PO Delivery Date
    • Shipping Method (InternalId)
    • SAP Business Network Commerce Automation Tracking Number
    • Shipment Status (InternalId)
  • Dependency trackers: N/A

Before you begin

  1. Sync NetSuite purchase orders with SAP Business Network Commerce Automation purchase orders.
  2. Verify that OrderId in SAP Business Network Commerce Automation and PO # in NetSuite are the same.

Setup instructions

  1. Create a webhook on SAP Business Network Commerce Automation shipNotice creation.
  2. Create custom date/time fields on purchase order record type in NetSuite to store the SAP Business Network Commerce Automation purchase order shipment date and delivery date.
  3. Create a custom field from the text on purchase order records in NetSuite to store the tracking number of the SAP Business Network Commerce Automation purchase order. Configure it in the Import NetSuite ship notices flow.
  4. Configure mapping for shipment status (internalId) in the Import NetSuite ship notices flow.

Configure endpoint in SAP Business Network Commerce Automation Buyer for webhook (for shipNotice creation)

  1. Click Manage profile available at the right under the username.
  2. Click Business end points (cXML and OData setup).
  3. Click Create.
  4. Enter the endpoint name and add the custom URL token generated from the webhook in the Shared secret field.
  5. Add the public URL of the webhook in the POST URL field, and click the checkbox underneath.
  6. Save the endpoint and set the default to yes.
  7. Under the Configure document routing, select the endpoint for document type and save it.

NetSuite items receipts to SAP Business Network Commerce Automation goods receipts

This flow syncs NetSuite items receipts to SAP Business Network Commerce Automation goods receipts.

Flow details

  • Export source: NetSuite
  • Import destination: SAP Business Network Commerce Automation
  • Built-in export: Get NetSuite items receipts – get all items receipts from NetSuite that are modified since the last flow run time
  • Built-in import: Import SAP Business Network Commerce Automation goods receipts – add goods receipts into SAP Business Network Commerce Automation
  • Built-in import: Import NetSuite items receipts – update items receipts into NetSuite with internal ID as the lookup identifier
  • Dependency trackers: N/A

Before you begin

Sync NetSuite purchase orders with SAP Business Network Commerce Automation purchase orders.

Setup instructions

Create a custom checkbox field on item receipts records in NetSuite, and configure it on mapping of the Import NetSuite items receipts flow.

SAP Business Network Commerce Automation
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE cXML SYSTEM "http://xml.cxml.org/schemas/cXML/1.2.042/Fulfill.dtd">
{{#each data}}
<cXML payloadID="IN.{{DocumentNumber}}.{{dateFormat 'x'}}" timestamp="{{dateFormat 'YYYY-MM-DDTHH:mm:ssZ'}}" version="1.2.042" xml:lang="en-US">
{{/each}}
  <Header>
    <From>
      <Credential domain="AribaNetworkUserID">
        <Identity>{{connection.http.unencrypted.Buyer_AribaNetworkUserID}}</Identity>
      </Credential>
    </From>
    <To>
      <Credential domain="NetworkId">
        <Identity>{{connection.http.unencrypted.Supplier_NetworkId}}</Identity>
      </Credential>
    </To>
    <Sender>
      <Credential domain="AribaNetworkUserID">
        <Identity>{{connection.http.unencrypted.Buyer_AribaNetworkUserID}}</Identity>
        <SharedSecret>{{connection.http.encrypted.Buyer_SharedSecret}}</SharedSecret>
      </Credential>
      <UserAgent>Celigo Integration</UserAgent>
    </Sender>
  </Header>
  <Request>
 {{#each data}}
    <ReceiptRequest>
      <ReceiptRequestHeader receiptID="{{DocumentNumber}}" receiptDate="{{dateFormat MM/DD/YYYY  Date YYYY-MM-DDTHH:mm:ssZ timezone}}" operation="new"/>
      <ReceiptOrder closeForReceiving="yes">
        <ReceiptOrderInfo>
          <OrderReference orderID="{{POrderID}}">
          <DocumentReference payloadID="IN.{{DocumentNumber}}.{{dateFormat 'x'}}"/>
          </OrderReference>
        </ReceiptOrderInfo>
        {{#each Item as |a|}}
        <ReceiptItem receiptLineNumber="{{LineID}}" quantity="{{Qty}}" type="received">
          <ReceiptItemReference lineNumber="{{LineID}}">
            <ItemID>
              <SupplierPartID>{{ItemID}}</SupplierPartID>
            </ItemID>
            <Description xml:lang="en">{{Description}}</Description>
            <ManufacturerPartID>{{Manufacturer}}</ManufacturerPartID>
            <ManufacturerName>{{Manufacturer}}</ManufacturerName>
          </ReceiptItemReference>
          <UnitRate>
            <Money currency="USD">{{UnitPrice}}</Money>
            <UnitOfMeasure>{{UnitType}}</UnitOfMeasure>
          </UnitRate>
          <ReceivedAmount>
            <Money currency="USD">{{Amount}}</Money>
          </ReceivedAmount>
        </ReceiptItem>
        {{/each}}   
    </ReceiptOrder>
      <Total>
        <Money currency="USD">{{Amount}}</Money>
      </Total>
    </ReceiptRequest>
      {{/each}}
  </Request>
</cXML>
      <OrderRequestHeader orderDate="{{dateFormat MM/DD/YYYY  Date YYYY-MM-DDTHH:mm:ssZ timezone}}" orderID="{{DocumentNumber}}" orderType="regular" orderVersion="{{SAP_Ariba_orderVersion}}" type="new">
        <Total>
           <Money currency="USD">{{subtract (subtract TotalAmount ShippingCost) TotalTaxAmount}}</Money>
        </Total>
        <ShipTo>
          <Address>
            <Name xml:lang="en">{{FirstName}}{{LastName}}</Name>
            <PostalAddress name="default">
              <DeliverTo>{{FirstName}}{{LastName}}</DeliverTo>
              <Street>{{ShippingAddress1}}</Street>
              <City>{{ShippingCity}}</City>
              <State>{{ShippingState}}</State>
              <PostalCode>{{ShippingZip}}</PostalCode>
              <Country isoCountryCode="{{ShippingCountryCode}}">{{ShippingCountry}}</Country>
            </PostalAddress>
            <Email name="default" preferredLang="en-US">{{Email}}</Email>
          </Address>
        </ShipTo>
        <BillTo>
          <Address>
            <Name xml:lang="en">{{FirstName}}{{LastName}}</Name>
            <PostalAddress name="default">
              <Street>{{BillingAddress1}}</Street>
              <City>{{BillingCity}}</City>
              <State>{{BillingState}}</State>
              <PostalCode>{{BillingZip}}</PostalCode>
              <Country isoCountryCode="{{BillingCountryCode}}">{{BillingCountry}}</Country>
            </PostalAddress>
          </Address>
        </BillTo>
        <Shipping>
          <Money currency="USD">{{ShippingCost}}</Money>
          <Description xml:lang="en-US">{{ShipVia}}</Description>
        </Shipping>
      </OrderRequestHeader>
      {{#each Item as |a|}}
      <ItemOut quantity="{{Qty}}" lineNumber="{{LineID}}">
        <ItemID>
          <SupplierPartID>{{Item}}</SupplierPartID>
        </ItemID>
        <ItemDetail>
          <UnitPrice>
            <Money currency="USD">{{UnitPrice}}</Money>
          </UnitPrice>
          <Description xml:lang="en">{{Description}}</Description>
          <UnitOfMeasure>{{UnitType}}</UnitOfMeasure>
          <Classification domain="{{ClassificationDomain}}">{{ClassificationCode}}</Classification>
        </ItemDetail>
        <Tax>
          <Money currency="USD">{{divide (multiply (multiply UnitPrice Qty) (substring TaxRate 0 4)) 100}}</Money>
          <Description xml:lang="en">{{TaxCode}}</Description>
        </Tax>
      </ItemOut>
      {{/each}}
    </OrderRequest>
     {{/compare}}
    {{/each}}	
  </Request>
</cXML>

NetSuite purchase orders to SAP Business Network Commerce Automation purchase orders

This flow syncs NetSuite purchase orders to SAP Business Network Commerce Automation orders (add or update).

Flow details

  • Export source: NetSuite
  • Import destination: SAP Business Network Commerce Automation
  • Built-in export: Get NetSuite purchase orders – get all purchase orders from NetSuite that are modified since the last flow run time
  • Built-in import: Import SAP Business Network Commerce Automationpurchase orders – add or update purchase orders into SAP Business Network Commerce Automation by order ID
  • Built-in import: Import NetSuite purchase orders – update purchase orders into NetSuite with internal ID as the lookup identifier
  • Dependency trackers: N/A

Before you begin

  1. Verify that the classification code and classification domain custom fields on the Items record type in NetSuite should have the same value.
  2. The Sent to SAP SAP Business Network Commerce Automation checkbox field (custom field) on the purchase order record type in NetSuite must be checked while creating a purchase order; when a customer is modifying the order it should be unchecked.
  3. Create a free-form text custom field for SAP Business Network Commerce Automation orderVersion on purchase order records in NetSuite. This stores the orderVersion of the SAP Business Network Commerce Automation orders. The default value for this field while creating the new orders in NetSuite must have a value of 1.
  4. Verify the NetSuite unitType item has a value (any value).

Setup instructions

Configure mapping for Sent to SAP Business Network Commerce Automation (custom field) in the Import NetSuite purchase orders flow.

SAP Business Network Commerce Automation
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE cXML SYSTEM "http://xml.cxml.org/schemas/cXML/1.2.042/cXML.dtd">
{{#each data}}
<cXML payloadID="IN.{{DocumentNumber}}.{{dateFormat 'x'}}" timestamp="{{dateFormat 'YYYY-MM-DDTHH:mm:ssZ'}}" version="1.2.042" xml:lang="en-US">
{{/each}}
  <Header>
    <From>
      <Credential domain="AribaNetworkUserID">
        <Identity>{{connection.http.unencrypted.Buyer_AribaNetworkUserID}}</Identity>
      </Credential>
    </From>
    <To>
      <Credential domain="NetworkId">
        <Identity>{{connection.http.unencrypted.Supplier_NetworkId}}</Identity>
      </Credential>
    </To>
    <Sender>
      <Credential domain="AribaNetworkUserID">
        <Identity>{{connection.http.unencrypted.Buyer_AribaNetworkUserID}}</Identity>
        <SharedSecret>{{connection.http.encrypted.Buyer_SharedSecret}}</SharedSecret>
      </Credential>
      <UserAgent>Celigo Integration</UserAgent>
    </Sender>
  </Header>
  <Request>
    {{#each data}}
         {{#compare [Sent to SAP Ariba]  '==' 'F'}}  
    <OrderRequest>
      <OrderRequestHeader orderDate="{{dateFormat MM/DD/YYYY  Date YYYY-MM-DDTHH:mm:ssZ timezone}}" orderID="{{DocumentNumber}}" orderType="regular" orderVersion="{{SAP_Ariba_orderVersion}}" type="update">
        <Total>
          <Money currency="USD">{{add (subtract TotalAmount ShippingCost) TotalTaxAmount}}</Money>
        </Total>
        <ShipTo>
          <Address>
            <Name xml:lang="en">{{FirstName}}{{LastName}}</Name>
            <PostalAddress name="default">
              <DeliverTo>{{FirstName}}{{LastName}}</DeliverTo>
              <DeliverTo>{{CompanyName}}</DeliverTo>
              <Street>{{ShippingAddress1}}</Street>
              <City>{{ShippingCity}}</City>
              <State>{{ShippingState}}</State>
              <PostalCode>{{ShippingZip}}</PostalCode>
              <Country isoCountryCode="{{ShippingCountryCode}}">{{ShippingCountry}}</Country>
            </PostalAddress>
            <Email name="default" preferredLang="en-US">{{Email}}</Email>
          </Address>
        </ShipTo>
        <BillTo>
          <Address>
            <Name xml:lang="en">{{FirstName}}{{LastName}}</Name>
            <PostalAddress name="default">
              <Street>{{BillingAddress1}}</Street>
              <City>{{BillingCity}}</City>
              <State>{{BillingState}}</State>
              <PostalCode>{{BillingZip}}</PostalCode>
              <Country isoCountryCode="{{BillingCountryCode}}">{{BillingCountry}}</Country>
            </PostalAddress>
          </Address>
        </BillTo> 
        <Shipping>
          <Money currency="USD">{{ShippingCost}}</Money>
          <Description xml:lang="en-US">{{ShipVia}}</Description>
        </Shipping>
      </OrderRequestHeader>
      {{#each Item as |a|}}
      <ItemOut quantity="{{Qty}}" lineNumber="{{LineID}}">
        <ItemID>
          <SupplierPartID>{{Item}}</SupplierPartID>
        </ItemID>
        <ItemDetail>
          <UnitPrice>
            <Money currency="USD">{{UnitPrice}}</Money>
          </UnitPrice>
          <Description xml:lang="en">{{Description}}</Description>
          <UnitOfMeasure>{{UnitType}}</UnitOfMeasure>
          <Classification domain="{{ClassificationDomain}}">{{ClassificationCode}}</Classification>
        </ItemDetail>
        <Tax>
          <Money currency="USD">{{divide (multiply (multiply UnitPrice Qty) (substring TaxRate 0 4)) 100}}</Money>
          <Description xml:lang="en">{{TaxCode}}</Description>
        </Tax>
      </ItemOut>
      {{/each}}
    </OrderRequest>
            {{else}}
    <OrderRequest>
      <OrderRequestHeader orderDate="{{dateFormat MM/DD/YYYY  Date YYYY-MM-DDTHH:mm:ssZ timezone}}" orderID="{{DocumentNumber}}" orderType="regular" orderVersion="{{SAP_Ariba_orderVersion}}" type="new">
        <Total>
           <Money currency="USD">{{add (subtract TotalAmount ShippingCost) TotalTaxAmount}}</Money>
        </Total>
        <ShipTo>
          <Address>
            <Name xml:lang="en">{{FirstName}}{{LastName}}</Name>
            <PostalAddress name="default">
              <DeliverTo>{{FirstName}}{{LastName}}</DeliverTo>
              <Street>{{ShippingAddress1}}</Street>
              <City>{{ShippingCity}}</City>
              <State>{{ShippingState}}</State>
              <PostalCode>{{ShippingZip}}</PostalCode>
              <Country isoCountryCode="{{ShippingCountryCode}}">{{ShippingCountry}}</Country>
            </PostalAddress>
            <Email name="default" preferredLang="en-US">{{Email}}</Email>
          </Address>
        </ShipTo>
        <BillTo>
          <Address>
            <Name xml:lang="en">{{FirstName}}{{LastName}}</Name>
            <PostalAddress name="default">
              <Street>{{BillingAddress1}}</Street>
              <City>{{BillingCity}}</City>
              <State>{{BillingState}}</State>
              <PostalCode>{{BillingZip}}</PostalCode>
              <Country isoCountryCode="{{BillingCountryCode}}">{{BillingCountry}}</Country>
            </PostalAddress>
          </Address>
        </BillTo>
        <Shipping>
          <Money currency="USD">{{ShippingCost}}</Money>
          <Description xml:lang="en-US">{{ShipVia}}</Description>
        </Shipping>
      </OrderRequestHeader>
      {{#each Item as |a|}}
      <ItemOut quantity="{{Qty}}" lineNumber="{{LineID}}">
        <ItemID>
          <SupplierPartID>{{Item}}</SupplierPartID>
        </ItemID>
        <ItemDetail>
          <UnitPrice>
            <Money currency="USD">{{UnitPrice}}</Money>
          </UnitPrice>
          <Description xml:lang="en">{{Description}}</Description>
          <UnitOfMeasure>{{UnitType}}</UnitOfMeasure>
          <Classification domain="{{ClassificationDomain}}">{{ClassificationCode}}</Classification>
        </ItemDetail>
        <Tax>
          <Money currency="USD">{{divide (multiply (multiply UnitPrice Qty) (substring TaxRate 0 4)) 100}}</Money>
          <Description xml:lang="en">{{TaxCode}}</Description>
        </Tax>
      </ItemOut>
      {{/each}}
    </OrderRequest>
      {{/compare}}
    {{/each}}
  </Request>
</cXML>

NetSuite purchase order cancellations to SAP Business Network Commerce Automation purchase order cancellations

This flow syncs NetSuite purchase order cancellations to SAP Business Network Commerce Automation purchase order cancellations.

Flow details

  • Export source: NetSuite
  • Import destination: SAP Business Network Commerce Automation
  • Built-in export: Get NetSuite purchase order cancellations – get all purchase orders with status as closed from NetSuite that are modified since the last flow run time
  • Built-in import: Import SAP Business Network Commerce Automation purchase order cancellations – add purchase orders cancellations into SAP Business Network Commerce Automation by orderID
  • Built-in import: Import NetSuite purchase order cancellations – update purchase order cancellations into NetSuite with internalId as the lookup identifier
  • Dependency trackers: N/A

Before you begin

  1. Sync purchase orders in NetSuite with purchase orders in SAP Business Network Commerce Automation.
  2. Map orderId in SAP Business Network Commerce Automation to Order # in NetSuite.
  3. Store the orderVersion of SAP Business Network Commerce Automation purchase orders in the SAP ARIBA orderVersion custom field of NetSuite purchase orders.

Setup instructions

  1. Create a custom field of type checkbox on the Purchase orders record type in NetSuite and configure it on the Get NetSuite purchase order cancellations flow.
  2. Configure mapping for custbodyceligo_pocancelledinsapariba in the Import NetSuite purchase order cancellations flow.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE cXML SYSTEM "http://xml.cxml.org/schemas/cXML/1.2.042/cXML.dtd">
{{#each data}}
<cXML payloadID="IN.{{DocumentNumber}}.{{dateFormat 'x'}}" timestamp="{{dateFormat 'YYYY-MM-DDTHH:mm:ssZ'}}" version="1.2.042" xml:lang="en-US">
{{/each}}
  <Header>
    <From>
      <Credential domain="AribaNetworkUserID">
        <Identity>{{connection.http.unencrypted.Buyer_AribaNetworkUserID}}</Identity>
      </Credential>
    </From>
    <To>
      <Credential domain="NetworkId">
        <Identity>{{connection.http.unencrypted.Supplier_NetworkId}}</Identity>
      </Credential>
    </To>
    <Sender>
      <Credential domain="AribaNetworkUserID">
        <Identity>{{connection.http.unencrypted.Buyer_AribaNetworkUserID}}</Identity>
        <SharedSecret>{{connection.http.encrypted.Buyer_SharedSecret}}</SharedSecret>
      </Credential>
      <UserAgent>Celigo Integration</UserAgent>
    </Sender>
  </Header>
  <Request>
    {{#each data}}
    <OrderRequest>
      <OrderRequestHeader orderDate="{{dateFormat MM/DD/YYYY  Date YYYY-MM-DDTHH:mm:ssZ timezone}}" orderID="{{DocumentNumber}}" orderType="regular" orderVersion="{{subtract SAP_Ariba_orderVersion 1}}" type="delete">
         <Total>
          <Money currency="USD">{{add (subtract TotalAmount ShippingCost) TotalTaxAmount}}</Money>
        </Total>
        <ShipTo>
          <Address>
            <Name xml:lang="en">{{FirstName}}{{LastName}}</Name>
            <PostalAddress name="default">
              <DeliverTo>{{FirstName}}{{LastName}}</DeliverTo>
              <DeliverTo>{{CompanyName}}</DeliverTo>
              <Street>{{ShippingAddress1}}</Street>
              <City>{{ShippingCity}}</City>
              <State>{{ShippingState}}</State>
              <PostalCode>{{ShippingZip}}</PostalCode>
              <Country isoCountryCode="{{ShippingCountryCode}}">{{ShippingCountry}}</Country>
            </PostalAddress>
            <Email name="default" preferredLang="en-US">{{Email}}</Email>
          </Address>
        </ShipTo>
        <BillTo>
          <Address>
            <Name xml:lang="en">{{FirstName}}{{LastName}}</Name>
            <PostalAddress name="default">
              <Street>{{BillingAddress1}}</Street>
              <City>{{BillingCity}}</City>
              <State>{{BillingState}}</State>
              <PostalCode>{{BillingZip}}</PostalCode>
              <Country isoCountryCode="{{BillingCountryCode}}">{{BillingCountry}}</Country>
            </PostalAddress>
          </Address>
        </BillTo>
        <Shipping>
          <Money currency="USD">{{ShippingCost}}</Money>
          <Description xml:lang="en-US">{{ShipVia}}</Description>
        </Shipping>
      </OrderRequestHeader>
      {{#each Item as |a|}}      
      <ItemOut quantity="{{Qty}}" lineNumber="{{LineID}}">
        <ItemID>
          <SupplierPartID>{{Item}}</SupplierPartID>
        </ItemID>
        <ItemDetail>
          <UnitPrice>
            <Money currency="USD">{{UnitPrice}}</Money>
          </UnitPrice>
          <Description xml:lang="en">{{Description}}</Description>
          <UnitOfMeasure>{{UnitType}}</UnitOfMeasure>
          <Classification domain="{{ClassificationDomain}}">{{ClassificationCode}}</Classification>
        </ItemDetail>
         <Tax>
          <Money currency="USD">{{divide (multiply (multiply UnitPrice Qty) (substring TaxRate 0 4)) 100}}</Money>
          <Description xml:lang="en">{{TaxCode}}</Description>
        </Tax>
      </ItemOut>
      {{/each}}
    </OrderRequest>
    {{/each}}
  </Request>
</cXML>

NetSuite bill payments to SAP Business Network Commerce Automation payment remittances

This flow syncs NetSuite bill payments to SAP Business Network Commerce Automation payment remittances.

Flow details

  • Export source: NetSuite
  • Import destination: SAP Business Network Commerce Automation
  • Built-in export: Get NetSuite bill payments – get all bill payments from NetSuite that are modified since the last flow run time
  • Built-in import: Import SAP Business Network Commerce Automation payment remittances – add payment remittances into SAP Business Network Commerce Automation with InvoiceID
  • Built-in import: Import NetSuite bill payments – update bill payments into NetSuite with internal ID as the lookup identifier
  • Dependency trackers: N/A

Before you begin

  1. Map NetSuite vendor bills with SAP Business Network Commerce Automation invoices.
  2. Map reference numbers in NetSuite and invoiceID in SAP Business Network Commerce Automation.
  3. Map payment method in NetSuite bill payments to the payment method in SAP Business Network Commerce Automation payment remittances.

Setup instructions

  1. Create a saved search on bill payments records in NetSuite, and configure the saved search on the export.
  2. Create a custom checkbox field on bill payments in NetSuite and configure it on imports.
  3. Map “Sent as remittance to SAP Ariba” in the Import NetSuite bill payments flow.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE cXML SYSTEM "http://xml.cxml.org/schemas/cXML/1.2.042/PaymentRemittance.dtd">
<cXML payloadID="IN.{{[Document Number]}}.{{dateFormat 'x'}}" timestamp="{{dateFormat 'YYYY-MM-DDTHH:mm:ssZ'}}" version="1.2.042" xml:lang="en-US">
  <Header>
    <From>
      <Credential domain="AribaNetworkUserID">
        <Identity>{{connection.http.unencrypted.Buyer_AribaNetworkUserID}}</Identity>
      </Credential>
    </From>
    <To>
      <Credential domain="NetworkId">
        <Identity>{{connection.http.unencrypted.Supplier_NetworkId}}</Identity>
      </Credential>
    </To>
    <Sender>
      <Credential domain="AribaNetworkUserID">
        <Identity>{{connection.http.unencrypted.Buyer_AribaNetworkUserID}}</Identity>
        <SharedSecret>{{connection.http.encrypted.Buyer_SharedSecret}}</SharedSecret>
      </Credential>
      <UserAgent>Celigo Integration</UserAgent>
    </Sender>
  </Header>
  <Request>
    <PaymentRemittanceRequest>
      <PaymentRemittanceRequestHeader paymentDate="{{dateFormat MM/DD/YYYY  Date YYYY-MM-DDTHH:mm:ssZ timezone}}" paymentReferenceNumber="{{[Transaction Number]}}" paymentRemittanceID="{{id}}" status="new">
        <PaymentMethod type="{{[Payment Method]}}"></PaymentMethod>
        <PaymentPartner>
          <Contact role="payer">
            <Name xml:lang="en">{{Name}}</Name>
            <PostalAddress>
              <Street>{{[Billing Address 1]}}</Street>
              <City>{{[Billing City]}}</City>
              <State>{{[Billing State/Province]}}</State>
              <PostalCode>{{[Billing Zip]}}</PostalCode>
              <Country isoCountryCode="{{[Billing Country Code]}}">{{[Billing Country]}}</Country>
            </PostalAddress>
            <Email name="default">{{Email}}</Email>
          </Contact>
        </PaymentPartner>
        <PaymentPartner>
          <Contact role="payee">
            <Name xml:lang="en"></Name>
          </Contact>
          <IdReference domain="accountReceivableID" identifier="{{Number}}"></IdReference>
          <IdReference domain="accountType" identifier="{{[Account Type]}}"></IdReference>
        </PaymentPartner>
      </PaymentRemittanceRequestHeader>
      <PaymentRemittanceSummary>
        <NetAmount>
          <Money currency="USD">{{[Amount (Net)]}}</Money>
        </NetAmount>
        <GrossAmount>
          <Money currency="USD">{{[Amount (Gross)]}}</Money>
        </GrossAmount>
        <DiscountAmount>
          <Money currency="USD">{{[Amount Discount]}}</Money>
        </DiscountAmount>
      </PaymentRemittanceSummary>
      <RemittanceDetail lineNumber="{{[Line ID]}}">
        <PayableInfo>
          <PayableInvoiceInfo>
            <InvoiceIDInfo invoiceID="{{VendorBillID}}"></InvoiceIDInfo>
          </PayableInvoiceInfo>
        </PayableInfo>
        <NetAmount>
          <Money currency="USD">{{VendorBillAmountNet}}</Money>
        </NetAmount>
        <GrossAmount>
          <Money currency="USD">{{VendorBillGrossAmount}}</Money>
        </GrossAmount>
        <DiscountAmount>
          <Money currency="USD">{{VendorBillAmountDiscount}}</Money>
        </DiscountAmount>
      </RemittanceDetail>
    </PaymentRemittanceRequest>
  </Request>
</cXML>

 

Was this article helpful?
0 out of 0 found this helpful

Comments

0 comments

Please sign in to leave a comment.