Data API (v2.0)

Relative Path: /api/v2/data

Supported "System Of Record" Types

Listed in required import sequence. Each group listed below has one of more foreign key references to the group before.

First

  • BufferProfile

  • PlannedAdjustmentFactor

  • Resource

Second

  • Part

  • PartAugment

Third

  • PartBufferSizing

  • BillOfMaterial

  • PartInventory

  • SupplyOrder

  • DemandOrder

  • ForecastedDemand

  • RoutingItem

  • PartPackaging

Fourth

  • AutoScheduleGroupSet

Supported Content-Type Header Values

  • text/csv - NOTE: Only supported on "System of Record" item requests (i.e. /{id}/systemofrecordtype)

  • text/xml

  • application/xml

  • application/json

Supported Accept Header Values

  • text/csv - NOTE: Only supported on "System of Record" item requests (i.e. /{id}/systemofrecordtype)

  • text/xml

  • application/xml

  • application/json

Validation Phases

Syntax, and data types

Whatever method the data comes into our system, it must be parsed into our System of Record objects before we may perform any meaningful data analysis. That means that our input data must pass several basic validation tests before any real constraint validation routines may be run.

Examples of syntactical requirements include:

  • UTF8 Encoding

  • Special characters are escaped.

  • Data types (i.e. number/date) are valid, and parse correctly into their corresponding data types

Data which passes this initial validation is well formed enough to be transformed into the correct System of Record type for further validation. In the API, this validation will be displayed by itself (without constraint errors) if there is a problem with the syntax of the payload.

Data boundary, and field value constraints

Largely, this refers to the validation’s imposed data “shape”. In this phase, data will be reduced by boundary requirements, and the remaining records validated using the configured constraints.

Examples of Boundaries:

  • Ignore records that are excluded by policy configuration

  • Ignore duplicated keys

Examples of Constraints:

  • Numbers within a range

  • String length

  • Number of decimal places

NOTE: Any syntactically valid payload will return constraint validation result when data is sent to the API.

Referential Integrity, and composite boundaries

Referential integrity can only be enforced when committing a complete data set. Things like foreign key relationships require the other entities to be available, and the only time in the process this is enforced is when every System of Record type has materialized and passed the prerequisite validation phases.

Finally, any composite data boundaries are applied.

Data Service

Endpoint

Verb

Params

Role

Returns

Notes

/

GET

DataExporter

DataSetCollectionResponse

/

POST

DataSetCreateRequest

DataImporter

DataSetCreateResponse

/import/status

POST

Array[integer] of importIds

DataImporter

ImportStatus

/import/{importId}

GET

DataImporter

ImportResponse

/{id}

GET

DataExporter

DataSetDetail

/{id}

PUT

ImportRequest

DataImporter

ImportResponse

/{id}/reset

POST

DataImporter

/{id}/commit

POST, PUT

DataImporter

Commit all pending importables for an id:

  • PUT = Replace

  • POST = Update (recommended)

  • PATCH = ReplaceByLocation

/{id}/clone

POST

DataSetCloneRequest : DataSetCreateRequest

DataImporter

DataSetCloneResponse : DataSetCreateResponse

/{id}/bufferprofiles

GET, POST, PUT

BufferProfile[]

DataImporter

ImportResponse

/{id}/plannedadjustmentfactors

GET, POST, PUT

PlannedAdjustmentFactor[]

DataImporter

ImportResponse

/{id}/parts

GET, POST, PUT

Part[]

DataImporter

ImportResponse

/{id}/partbuffersizings

GET, POST, PUT

PartBufferSizing[]

DataImporter

ImportResponse

/{id}/billofmaterials

GET, POST, PUT

BillOfMaterial[]

DataImporter

ImportResponse

/{id}/partinventories

GET, POST, PUT

PartInventory[]

DataImporter

ImportResponse

/{id}/supplyorders

GET, POST, PUT

SupplyOrder[]

DataImporter

ImportResponse

/{id}/demandorders

GET, POST, PUT

DemandOrder[]

DataImporter

ImportResponse

/{id}/demandforecasts

GET, POST, PUT

ForecastedDemand[]

DataImporter

ImportResponse

ImportData

Property

Type

AutoScheduleGroupSets

AutoScheduleGroupSet[]

BillOfMaterials

BillOfMaterial[]

BufferProfiles

BufferProfile[]

DemandOrders

DemandOrder[]

DemandForecasts

DemandForecast[]

PartBufferSizing

PartBufferSizing[]

PartInventories

PartInventory[]

PartPackagings

PartPackaging[]

Parts

Part[]

PlannedAdjustmentFactors

PlannedAdjustmentFactor[]

Resources

Resource[]

RoutingItems

RoutingItem[]

SupplyOrders

SupplyOrder[]

DataSetCollectionResponse

Inherits: ImportData

Property

Type

DataSets

DataSet[]

ImportRequest

Property

Type

Data

ImportData

ImportResponse

Property

Type

ConstraintErrors

ImportConstraintError[]

ConstraintWarnings

ImportConstraintError[]

FatalErrors

ImportFatalError[]

KeyNotFoundErrors

ImportKeyNotFoundError[]

Ignored

ImportRecordIgnoredError[]

KeyAlreadyExistsErrors

ImportKeyAlreadyExistsError[]

Last updated