Connect Excalibur to Pipe17

The Excalibur WMS connector links the app to Excalibur, a 3PL warehouse management system built on Microsoft Dynamics NAV. The app sends shipping requests and inbound shipments (ASNs) to Excalibur. It brings back inventory levels, shipment confirmations with tracking, and receipt confirmations. Each flow has its own switch, so you can bring a warehouse live one flow at a time.

With this connector, you can:

  • Send shipping requests to Excalibur as shipment orders.
  • Create fulfillments with tracking, carrier, weight and lot details when Excalibur ships an order, including partial shipments.
  • Sync on-hand, available, committed and incoming inventory from Excalibur every 5 minutes.
  • Send arrivals to Excalibur as receipt authorizations (ASNs), and create receipts when Excalibur receives the goods.
  • Update shipping requests automatically when an order is canceled in Excalibur.
  • Pull fulfillments, receipts or inventory on demand for specific orders or SKUs.

Setup

Before you begin, make sure your Excalibur administrator has:

  • Published codeunit 37005347 as a web service named TPLWebServiceInt on a NAV instance named SSLWEBSERVICES.
  • Created a web service user with the External User license type. The connector uses HTTP Basic authentication.
  • Set up a client code (for example, PERFECT ECOMM) and a trading partner code (for example, PIPE17).
  • Created these five interface profiles, each linked to that client and trading partner: PER_SH_IM (shipments in), PER_SH_EX (shipment confirmations out), PER_RC_IM (receipt authorizations in), PER_RC_EX (receipt confirmations out) and PER_IV_EX (inventory out).
  • Set up every SKU you sell as an item in Excalibur, with an item number that exactly matches the SKU in the app. The connector doesn't sync products.
  • Set up the ship method codes you plan to use, for example UPS GND, UPS 2DA or FEDEX 2DAY.

You also need the SOAP URL, username, password and company name for your Excalibur web service.

Connect the app

  1. In the app, go to Integrations and add the Excalibur WMS connector.
  2. Open the Connection Details tab.
  3. Enter your Excalibur web service URL in SOAP URL. The connector uses only the scheme, host and port, for example https://host:port.
  4. Enter the web service user in Username.
  5. Enter the password in Password.
  6. Enter the NAV company name in Company Name exactly as it appears in Excalibur, with spaces. Don't URL-encode it. This field is required.
  7. Enter your client code in Client Code. The default is PERFECT ECOMM.
  8. Enter your trading partner code in Trading Partner Code. The default is PIPE17.
  9. Click Save. The connector tests the connection right away.

Set up locations

  1. Open the Settings tab.
  2. Enter your warehouse in Excalibur Locations in the format LocationID:Location Name, for example DSW-RC:Main Warehouse. Use the warehouse ID that Excalibur uses.
  3. Enter the location ID only (for example, DSW-RC) in Default Location ID.
  4. Save your changes.
  5. Wait about 5 minutes. Then confirm that the new location appears under Inventory > Locations.

Turn on flows

  1. Under Connection Flow, turn on the flows you want to use: Push shipments to Excalibur WMS, Pull fulfillments from Excalibur WMS, Pull inventory from Excalibur WMS, Push arrivals to Excalibur WMS and Pull receipts from Excalibur WMS.
  2. Save your changes.

Turn on Push arrivals to Excalibur WMS only after your location exists in the app. If there are no locations, the connector sends every shipped arrival in your organization to Excalibur.


Settings

Setting Description Options/Default
SOAP URL Your Excalibur web service URL. The connector uses only the scheme, host and port, and builds the rest of the path from Company Name. —
Username / Password Credentials for the Excalibur web service user. —
Company Name The NAV company name, entered with spaces. Required. —
Client Code Your Excalibur client code. It's also used to filter inventory. PERFECT ECOMM
Trading Partner Code The trading partner set on your Excalibur interface profiles. PIPE17
Connection Flow One switch for each flow: Locations, Inventory, Shipments, Fulfillments, Arrivals and Receipts. Locations on; all other flows off
Excalibur Locations The warehouse locations to create in the app, one per entry, in the format LocationID:Location Name. Empty
Default Location ID The location ID (for example, DSW-RC) where inventory and receipts are recorded. If empty, the app uses the first entry in Excalibur Locations. Empty
Filter Inventory by SKUs Syncs inventory only for these SKUs. Leave empty to sync all SKUs. Empty
Force Inventory Resync Currently has no effect. The inventory flow already syncs your full catalog every 5 minutes. Off
Filter Shipments by Order IDs Sends only shipping requests with these external order IDs. Leave empty to send all. Empty
When a shipping request is canceled in Excalibur, apply the following status in Pipe17 The status the app sets on a shipping request when Excalibur reports the order as canceled. Review required, Canceled, Canceled Restock (default), Failed
Filter Arrivals by Order IDs Sends only arrivals with these external order IDs. Leave empty to send all. Empty

You can review and edit field mappings on the Mappings tab for Shipping Requests, Fulfillments, Inventory, Arrivals, Receipts and Locations.


Flows

Flow Direction Notes
Locations Settings → Pipe17 Runs every 5 minutes. Creates a location for each Excalibur Locations entry and skips locations that already exist. Changing a location's name creates a new location, and existing locations are never renamed or deactivated.
Shipping requests Pipe17 → Excalibur Runs every 5 minutes. Sends shipping requests in Ready for Fulfillment status. On success, the status changes to Sent to Fulfillment and the app saves the Excalibur document number as the external reference. Requests with no line items, or that Excalibur rejects, are marked Failed. Server and network errors are retried on the next run. If you leave the ship method blank, the app maps common service names, such as Ground or 2 Day Air, to Excalibur codes.
Fulfillments Excalibur → Pipe17 Runs about once an hour. Checks shipping requests in Sent to Fulfillment or Partial Fulfillment status that were created in the last 14 days. Creates a fulfillment when Excalibur reports the order as shipped, posted or complete. If Excalibur ships fewer units than ordered, the app also creates a rejected fulfillment for the remaining units, named <ShipmentID>-R. Tracking uses the PRO number, or the Excalibur shipment ID if there's no PRO number. Weight is always in pounds.
Order cancellations Excalibur → Pipe17 Runs with the fulfillments flow. When Excalibur reports an order as canceled, the app sets the shipping request to the status selected in settings. No fulfillment is created.
Inventory Excalibur → Pipe17 Runs every 5 minutes and syncs the full catalog. Adds up on hand, available, committed and incoming quantities for each SKU across all Excalibur lots, zones and warehouses. Records them at the default location. SKUs that aren't in Excalibur keep their current levels and aren't set to zero.
Arrivals (ASNs) Pipe17 → Excalibur Runs every 5 minutes. Sends arrivals in Shipped status whose destination is one of this integration's locations. They go to Excalibur as receipt authorizations. On success, the status changes to Expected. Errors are handled the same way as for shipping requests.
Receipts Excalibur → Pipe17 Runs about once an hour. Checks arrivals in Expected or Partially Received status that were created in the last 14 days. Creates a receipt at the default location when Excalibur reports the receipt as received, posted, complete or closed. The receipt includes received quantities, units of measure and lot details.

The connector doesn't sync products. To run a check without waiting for the next scheduled run, use the Actions menu:

  • Pull fulfillments by Order ID checks the shipping requests you choose.
  • Pull receipts by Order ID checks the arrivals you choose.
  • Pull inventory by SKU syncs the SKUs you choose.

These actions also work for orders older than 14 days.


Troubleshooting

  • The integration shows a 401 error or another connection error after you save Connection Details
    Excalibur rejected the login. Confirm that Username, Password and Company Name match your Excalibur web service exactly. Make sure the company name uses spaces and isn't URL-encoded. Then save again.
  • Shipping requests or arrivals are marked Failed
    Excalibur rejected the document. Common causes are SKUs that don't exist as item numbers in Excalibur, ship method codes that aren't set up in Excalibur, or a missing interface profile ("Interface Profile does not exist"). Open the shipping request's outbound event to see the Excalibur response, fix the cause in Excalibur, and then retry the request.
  • Inventory doesn't sync
    The default location doesn't exist in the app. Make sure Default Location ID matches the ID part of an Excalibur Locations entry. Then confirm that the location appears under Inventory > Locations.
  • A shipped order doesn't have a fulfillment yet
    The fulfillments flow runs about once an hour, and it creates a fulfillment only after Excalibur reports the order as shipped, posted or complete. To check right away, run Pull fulfillments by Order ID from the Actions menu. Use the same action for orders created more than 14 days ago.
  • Receipts appear at the wrong location
    The app always records receipts at the default location, not at the arrival's destination. Update Default Location ID if receipts should go to a different location.

Need Help?

If you need additional assistance:

  • Use Ask Pippen, our AI agent, located at the top of the app page.
  • Submit a support request with as much relevant detail as possible. Learn how to submit a request.

We're here to help you succeed with your operations.

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

Comments

0 comments

Please sign in to leave a comment.

Have more questions?
Submit a request
Share it, if you like it.