1. A partial delivery is a delivery
A purchase order line in Ongoing's REST API carries running totals: advised, received and reported. Posting from those means posting the difference between two totals, and a total cannot say that three more units arrived just now.
Ongoing's SOAP API has a per-event inbound transaction feed where every event has its own id. Weave reads that feed, posts each event once, groups a delivery's events on one order into one receipt, and stamps the Ongoing event id on the posted receipt line, so asking which event produced a receipt is a lookup.
2. Invoicing a partial shipment
Business Central defaults Qty. to Invoice to everything shipped and not yet invoiced on the whole order. Weave sets Qty. to Invoice on every line to what the posting moves, as the last write before it posts, so each shipment is invoiced for its own goods. Orders marked Combine Shipments are shipped with nothing to invoice, for Business Central's batch job.
Receipts are received only, because the supplier's invoice belongs to your accounts payable process. Weave posts them through a routine in its own extension that receives without invoicing.
3. An article is an item and a variant
Ongoing holds one article number per size and colour. Business Central stores the item and the variant separately, and its standard v2.0 API pages leave out location, variant and return reason. Posting needs the split and reconciliation needs the join, so Weave's extension publishes its own pages with exactly those fields.
4. Returns arrive two ways
Some returns come in on a return order. Others are booked back onto the original sales order, where a feed of inbound orders does not see them: at one retailer that was 81 orders in 60 days. Weave reads both, credits at the return order's own price and charges the return fee your table sets for the reason and currency.
The return reason also decides where the goods belong. The warehouse records it on the inbound order line, in the same code space as Business Central's return reasons, and Weave posts each line to sellable stock or the claims location accordingly.
5. Orders change after release
Customer service reopens an order to take a line off it, or deletes it. Both are safe while the warehouse has not started. With Weave, Business Central asks the warehouse live before either: once picking has started, a reopen asks the person to confirm and a delete stops with the reason.
6. Stock drifts unless someone looks every night
Weave compares Business Central's stock at the warehouse locations with Ongoing's, per SKU, every night. Picked goods count as still in the warehouse until they ship, because Ongoing drops a picked unit before Business Central books the shipment, and the claims location is compared on its own, so a unit on the wrong shelf shows even where the totals agree.
7. An alert has to be read
An alert per failed document soon becomes a list nobody opens. In Weave a condition raises once, when it is new or comes back after being fixed, and closes itself when a later run fixes it. Only work that has used up its retries asks a person, in the console, in Slack or by email.
Questions
Does Weave need an extension in Business Central?
Yes, one. It queues released documents, publishes the API pages Weave reads and writes through, and holds the posting routines that receive, ship and credit per event. Weave signs in to it as its own Microsoft Entra application.
What permissions does Weave's user need in Business Central?
The WEAVE permission set its extension ships, Microsoft's D365 BASIC for the licence entitlement, and posting rights for the documents it posts, such as D365 PURCH DOC, POST. Other extensions that react to a posting can need their own grant.
How does Weave keep its place in Ongoing's feeds?
With its own cursor per feed, stored on Weave's side and advanced after the events are stored. It leaves Ongoing's reported-quantity field alone, so another integration reading the same goods owner is unaffected.
Which direction does what?
Business Central to Ongoing: items, purchase orders, transfers, sales orders and purchase returns. Ongoing to Business Central: purchase receipts, sales shipments with invoices, customer returns with credit memos, transfers, purchase returns, stock adjustments and a weekly claims transfer order.
How often does it run?
Every five minutes in both directions for orders, receipts and shipments. Items hourly, stock adjustments every 30 minutes, the stock comparison nightly.