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
/{id}/autoschedulegroupsets
GET, POST, PUT
AutoScheduleGroupSet[]
DataImporter
ImportResponse
/{id}/resources
GET, POST, PUT
Resource[]
DataImporter
ImportResponse
/{id}/routingitems
GET, POST, PUT
RoutingItem[]
DataImporter
ImportResponse
/{id}/partpackagings
GET, POST, PUT
PartPackaging[]
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