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