Execution API
A draft proposal for an API to transact operations against schedule orders.
Once orders have been scheduled and released, they have moved the Execution phase of DBR and are ready to be engaged to produce the order. This API describes the available operations for transacting an order.
DBR transacting is done much like a rolling bank ledger - entries are made in time and values change, and past entries aren't altered. There are generally three major transaction opportunities per operation in a rope: receive (for buffered), start and end. At each step, quantity entries are made for receive/start/end until it is marked as complete.
For maximum flexibility, the API places no constraints on the order other than once something is marked as complete, an error is issued if more is added.
Below is a summary of the proposed operations; a full API is planned once the operation list is finalized. Note the interface has no mechanism to update by design.
Note that in posting a transaction, there is an optional mechanism for "back-fill operation", an important customer feature. What it does is tag every operation before it as having been completed; this is important for ERP integration.
API Definition
Below is the set of APIs available to transact a released, non-closed scheduling order.
The root of this API is: /api/v2/scheduling/{dataSetId}
Url
Action
Description
/Orders/{schedulingOrderId}/transactions
GET
Get all transactions for the specified scheduling order.
/Orders/{schedulingOrderId}/transactions/{operationSequenceNumber}/receive
quantity: decimal
isLastBatch: boolean doBackfill: boolean
notes: text
reasonCode: text
POST
Add a receive transaction for the specified operation sequence number. The payload is a JSON object.
/Orders/{schedulingOrderId}/transactions/{operationSequenceNumber}/start
quantity: decimal
isLastBatch: boolean doBackfill: boolean
notes: text
POST
Add a start transaction for the specified operation sequence number. The payload is a JSON object.
/Orders/{schedulingOrderId}/transactions/{operationSequenceNumber}/complete
quantity: decimal
isLastBatch: boolean doBackfill: boolean
notes: text
POST
Add a complete transaction for the specified operation sequence number. The payload is a JSON object.
Order Transaction Record
This is the definition of an order transaction record. The sum of these records describes the activity of all activities towards an order.
Name
Type
Value
Id
integer
The generated unique identifier for the transaction.
OrderNumber
text
The order number of the source (usually the work order number).
ScheduleOrderId
integer
The unique identifier of the source schedule order.
OperationSequenceNumber
integer
A unique value used to both represent the order of all rope items, but also to uniquely identify a step in the rope for an order.
EntryDate
date
The date and time the entry was made.
EntryType
text
The type of entry made, one of the values defined below.
Quantity
decimal
An optional quantity value for the entry.
IsLastBatch
boolean
An optional value indicating if this entry is the last for the receive, start or complete transaction.
Notes
text
Optional free-form text as notes for the transaction. For a reason_code entry type, it is the text of the reason code.
EntryType Values
Name
Value
ReceiveQuantity
1
StartQuantity
2
CompleteQuantity
3
ReasonCode
4
Lock
101
Release
102
Unlock
103
Unrelease
104
SetHold
105
RemoveHold
106
Close
107
Reopen
108
MoveOutOfInventory
110
MoveToInventory
113
Last updated