Codeunit 5829 "PO Matching Group"
Base Application · Microsoft.Inventory.Tracking
Across versions
- BC23-28not present
- BC29added
- BC30unchanged
Neighbourhood 3 connected objects and pages
Base Application · Microsoft.Inventory.Tracking · BC29-30 · source at ea08af5e · facts from BC29
Properties
| Property | Value |
|---|---|
| Access | Public |
Procedures
AddMatch(NewMatch: Record "Matched Order Line"): Adds an edge to the group if it’s valid in the current context, merging in any already-persisted allocations that share a line with the edge so validations account for them.SaveMatchingGroups(): Revalidates the fully merged group against the current documents and persists it.GetInvoiceOrderEdges(): Boolean(internal): Snapshots the invoice-order (blank-receipt) edges and positions at the first one.NextInvoiceOrderEdge(): Boolean(internal): Advances to the next invoice-order edge in the snapshot.GetInvoiceLine(): Guid(internal): The invoice line SystemId of the current invoice-order edge.GetOrderLine(): Guid(internal): The order line SystemId of the current invoice-order edge.AllocatedInInvoiceOrderEdge(): Decimal(internal): The quantity budgeted by the current invoice-order edge.SumAllocatedInOrderReceiptEdges(): Decimal(internal): The live sum of receipt edges already pinned to the current invoice-order pair.GetReceiptEdgeQuantity(InvoiceLineSystemId: Guid; OrderLineSystemId: Guid; ReceiptLineSystemId: Guid): Decimal(internal): The live quantity of the receipt edge for the given (invoice, order, receipt), 0 if none.GetReceiptConsumedQuantity(ReceiptLineSystemId: Guid): Decimal(internal): The live total quantity pinned to a receipt line across all invoices in the group.
Plus 25 local procedures.
Calls
From the extracted call graph of BC29 (graphify-al on the snapshot checkout): calls whose target is known from a declared type or an Object::"Name" argument. Interface dispatch and calls through events are not counted, so the list is not complete.
- Codeunit 6503 “Item Tracking Doc. Management” (1 call:
ReceiptHasItemTracking → RetrieveEntriesFromShptRcpt)
Called by
- Codeunit 5831 “PO Matching” (8 calls:
SuggestCoveringReceipts → AddMatch,SuggestCoveringReceipts → AllocatedInInvoiceOrderEdge,SuggestCoveringReceipts → GetInvoiceLine, …) - Codeunit 5828 “Invoiceable Receipts” (1 call:
ReceiptNotInvoiced → GetReceiptConsumedQuantity)
Recent changes
- 2026-09-01 #10700 29.x: PO matching API, E-Documents integration and receipt-on-invoice line tracking (releases/29.x, BC29, feature, added)
- 2026-08-31 #10528 Track receipt on invoice per purchase order line (main, BC30, feature)
- 2026-08-28 #10524 Add a purchase order matching API (main, BC30, feature, added)
Ask your agent
Procedure bodies are not stored here (D10). The call sections above are our own, per object, from the BC29 call graph. For a procedure body or the calls of one procedure, ask bc-code-atlas (external, by Stefan Maron, MIT; default corpus w1-28), which the bc-observatory plugin connects: bcatlas_resolve_node(object_type: "codeunit", object_name: "PO Matching Group"), then bcatlas_get_procedure_body or bcatlas_get_neighbors on the returned id.