Contents
- Overview: Understanding the SAP Ariba Network – NetSuite integration template for Buyers
- Install the SAP Ariba Network – NetSuite integration template for Buyers
- Configure and run flows in the SAP Ariba Network – NetSuite integration template for Buyers
- SAP Ariba Network invoices and credit memos to NetSuite vendor bills and bill credits (with attachments)
- SAP Ariba Network purchase order confirmation to NetSuite purchase order confirmation
- SAP Ariba Network ship notices to NetSuite ship notices
- NetSuite items receipt to SAP Ariba Network goods receipt
- NetSuite purchase orders to SAP Ariba Network purchase orders
- NetSuite purchase order cancellations to SAP Ariba Network purchase order cancellations
- NetSuite vendor bill payments to SAP Ariba Network payment remittances
Additional record mapping is required to integrate the template’s exports and imports with your SAP Ariba Network and NetSuite apps.
SAP Ariba Network invoice and credit memo to NetSuite vendor bill and vendor bill credit
The flow syncs invoices and credit memos from SAP Ariba Network as vendor bills and bill credits in NetSuite.
Flow details
- Export source: SAP Ariba Network
- Import destination: NetSuite
- Built-in exports:
-
- Get SAP Ariba Network invoices and credit memos – Get all invoices and credit memos from SAP Ariba Network.
- Get SAP Ariba Network invoice attachments – Get all attachments for an invoice from SAP Ariba Network by attachment URL.
- Get SAP Ariba Network credit memo attachments – Get all attachments for a credit memo from SAP Ariba Network 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 Ariba Network invoice status Update InvoiceStatus into SAP Ariba Network 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 Ariba Network invoice status for attachments – Update invoice status for attachments into SAP Ariba Network 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 Ariba Network credit memo status for attachments Update credit memo status into SAP Ariba Network with invoiceID. - Functional use cases: This template automates the most common use cases required to synchronize SAP Ariba Network 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 Ariba Network and NetSuite
Before you begin
Sync NetSuite purchase orders with SAP Ariba Network purchase orders.
- OrderId in SAP Ariba Network 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 Ariba Network, respectively.
- Currency symbols in NetSuite and currency value in SAP Ariba Network should be the same.
Setup instructions
Before you run the flow, configure the following:
- Create a webhook on SAP Ariba Network invoice creation.
- Configure a dynamic lookup for Vendor (InternalId) in all NetSuite vendor bills and bill credits import flows as per your requirements.
- Add subsidiary mapping on all NetSuite vendor bills and bill credits import flows as per your requirements.
- 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.
- Configure mapping for Account (InternalId) in all NetSuite import flows as per your requirements.
- Configure mapping for Expenses: Account (InternalId) in NetSuite bill credits (with taxes) and bill credits (without taxes) import flows as per your requirements.
- Configure a static lookup for Currency (InternalId) in all NetSuite vendor bills and bill credits import flows as per your requirements.
- Configure the following mappings as per your business needs in NetSuite vendor bills import(without taxes):
- Vendor (InternalId)
- Date
- Reference No.
- Currency (InternalId)
- Account (InternalId)
- Location (InternalId)
- Subsidiary (InternalId)
- Special Handling Amount
- Items : Item (Name)
- Items : Quantity
- Items : Rate
- Items : Amount
- Configure the following mappings as per your business needs in NetSuite vendor bills import(with taxes):
- Vendor (InternalId)
- Date
- Reference No.
- Currency (InternalId)
- Account (InternalId)
- Location (InternalId)
- Subsidiary (InternalId)
- Special Handling Amount
- Items : Item (Name)
- Items : Quantity
- Items : Rate
- Items : Amount
- item[*].taxcode
- item[*].tax1amt
- item[*].grossamt
- Configure the following mappings as per your business needs in NetSuite bill credits import(with taxes):
- Vendor (InternalId)
- Date
- Reference No.
- Currency (InternalId)
- Account (InternalId)
- Location (InternalId)
- Subsidiary (InternalId)
- expense[*].taxcode
- Expenses : Amount
- expense[*].tax1amt
- expense[*].grossamt
- Expenses : Account (InternalId)
- Configure the following mappings as per your business needs in NetSuite bill credits import(without taxes):
- Vendor (InternalId)
- Date
- Reference No.
- Currency (InternalId)
- Account (InternalId)
- Location (InternalId)
- Subsidiary (InternalId)
- expense[*].taxcode
- Expenses : Amount
- expense[*].tax1amt
- expense[*].grossamt
- Expenses : Account (InternalId)
- Configure the following mappings as per your business needs in SAP Ariba Network 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>
- Configure the following mappings as per your business needs in the SAP Ariba Network 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>
- Configure the following as per your business needs on the SAP Ariba Network invoice attachment export:

Response mapping:

- Configure the following as per your business needs on the NetSuite attachments as File Cabinet import:

Response mapping:

- Configure the following mappings as per your business needs on the NetSuite attachments to vendor bills import:

Response mapping:

- Configure the following as per your business needs on the SAP Ariba Network 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>
- Configure the following as per your business needs on the SAP Ariba Network invoice attachment export:

Response mapping:

- Configure the following as per your business needs on the NetSuite attachments as File Cabinet import:

Response mapping:

- Configure the following mappings as per your business needs on the NetSuite attachments to bill credits import:

Response mapping:

- Configure the following as per your business needs on the SAP Ariba 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 Ariba Network purchase order confirmations to NetSuite purchase order confirmations
This flow syncs SAP Ariba Network purchase order confirmations with NetSuite purchase order confirmations.
Flow details
- Export source: SAP Ariba Network
- Import destination: NetSuite
- Built-in export: Get SAP Ariba Network order confirmations – get all purchase order confirmations from SAP Ariba Network
- 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 Ariba Network Shipment Date
- SAP Ariba Network PO Delivery Date
Before you begin
- Sync NetSuite purchase orders with SAP Ariba Network purchase orders.
- Verify that OrderId in SAP Ariba Network and PO # in NetSuite are the same.
Setup instructions
- Create a webhook on SAP Ariba Network orderConfirmation creation.
- Create custom date/time fields on the purchase order record type in NetSuite to store the SAP Ariba Network purchase order shipment date and delivery date.
- Configure mapping for approval status (internalId) in the Import NetSuite purchase order confirmations flow.
Configure endpoint in SAP Ariba Network Buyer for webhook (for orderConfirmation)
- Click Manage profile available at the right under the username.
- Click Business end points (cXML and OData Setup).
- Click Create.
- Enter the endpoint name and add the custom URL token generated from the webhook in the Shared secret field.
- Enter the public URL of the webhook under POST URL and click the checkbox below.
- Save the endpoint and set the default to yes.
- Under Configure document routing, select the endpoint for document type and save it.
SAP Ariba Network ship notices to NetSuite ship notices
This flow syncs SAP Ariba Network ship notices with NetSuite ship notices.
Flow details
- Export source: SAP Ariba Network
- Import destination: NetSuite
- Built-in export: SAP Ariba Network ship notices – get all ship notices from SAP Ariba Network
- 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 Ariba Network Shipment Date
- SAP Ariba Network PO Delivery Date
- Shipping Method (InternalId)
- Ariba Tracking Number
- Shipment Status (InternalId)
- Dependency trackers: N/A
Before you begin
- Sync NetSuite purchase orders with SAP Ariba Network purchase orders.
- Verify that OrderId in SAP Ariba Network and PO # in NetSuite are the same.
Setup instructions
- Create a webhook on SAP Ariba Network shipNotice creation.
- Create custom date/time fields on purchase order record type in NetSuite to store the SAP Ariba Network purchase order shipment date and delivery date.
- Create a custom field from the text on purchase order records in NetSuite to store the tracking number of SAP Ariba Network purchase order. Configure it in the Import NetSuite ship notices flow.
- Configure mapping for shipment status (internalId) in the Import NetSuite ship notices flow.
Configure endpoint in SAP Ariba Network Buyer for webhook (for shipNotice creation)
- Click Manage profile available at the right under the username.
- Click Business end points (cXML and OData setup).
- Click Create.
- Enter the endpoint name and add the custom URL token generated from the webhook in the Shared secret field.
- Add the public URL of the webhook in the POST URL field, and click the checkbox underneath.
- Save the endpoint and set the default to yes.
- Under the Configure document routing, select the endpoint for document type and save it.
NetSuite items receipts to SAP Ariba Network goods receipts
This flow syncs NetSuite items receipts to SAP Ariba Network goods receipts.
Flow details
- Export source: NetSuite
- Import destination: SAP Ariba Network
- 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 Ariba Network goods receipts – add goods receipts into SAP Ariba Network
- 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 Ariba Network purchase orders.
Setup instructions
Create a custom checkbox field on items receipts records in NetSuite, and configure it on mapping of the Import NetSuite items receipts flow.
<?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 Ariba Network purchase orders
This flow syncs NetSuite purchase orders to SAP Ariba Network orders (add or update).
Flow details
- Export source: NetSuite
- Import destination: SAP Ariba Network
- 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 Ariba Network purchase orders – add or update purchase orders into SAP Ariba Network 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
- Verify that classification code and classification domain custom fields on the Items record type in NetSuite should have the same value.
- The Sent to SAP Ariba 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.
- Create a free-form text custom field for SAP Ariba Network orderVersion on purchase order records in NetSuite. This stores the orderVersion of the SAP Ariba Network orders. The default value for this field while creating the new orders in NetSuite must have a value of 1.
- Verify the NetSuite unitType item has a value (any value).
Setup instructions
Configure mapping for Sent to SAP Ariba Network (custom field) in the Import NetSuite purchase orders 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}} {{#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 Ariba Network purchase order cancellations
This flow syncs NetSuite purchase order cancellations to SAP Ariba Network purchase order cancellations.
Flow details
- Export source: NetSuite
- Import destination: SAP Ariba Network
- 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 Ariba Network purchase order cancellations – add purchase orders cancellations into SAP Ariba Network 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
- Sync purchase orders in NetSuite with purchase orders in SAP Ariba Network.
- Map orderId in SAP Ariba Network to Order # in NetSuite.
- Store the orderVersion of SAP Ariba Network purchase orders in the SAP ARIBA orderVersion custom field of NetSuite purchase orders.
Setup instructions
- Create a custom field of type checkbox on Purchase orders record type in NetSuite and configure it on the Get NetSuite purchase order cancellations flow.
- 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 vendor bill payments to SAP Ariba Network payment remittances
This flow syncs NetSuite bill payments to SAP Ariba Network payment remittances.
Flow details
- Export source: NetSuite
- Import destination: SAP Ariba Network
- 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 Ariba Network payment remittances – add payment remittances into SAP Ariba Network with invoice ID
- 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
- Map NetSuite vendor bills with SAP Ariba Network invoices.
- Map reference numbers in NetSuite and invoiceID in SAP Ariba Network.
- Map payment method in NetSuite bill payments to payment method in SAP Ariba payment remittances.
Setup instructions
- Create a saved search on bill payments records in NetSuite, and configure the saved search on the export.
- Create a custom checkbox field on bill payments in NetSuite and configure it on imports.
- 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>
Comments
0 comments
Please sign in to leave a comment.