Uploaded by youssef.courrier

Artemis.Core - Business API 1.84.0

advertisement
Artemis.Core
Business API Documentation
Version 1.84.0
21/03/23
Table of content
1.
Configuration ................................................................................................................................. 11
1.1. Services ....................................................................................................................................... 11
Execution ....................................................................................................................................... 11
2.
Requests ........................................................................................................................................ 12
2.1. Common Request Header .......................................................................................................... 12
2.2. Common Request Body .............................................................................................................. 13
Example ......................................................................................................................................... 13
2.3. Common Notification ................................................................................................................. 13
Example ......................................................................................................................................... 13
Error format................................................................................................................................... 15
3.
Get started (Business use cases) ................................................................................................... 16
3.1. Get material(s) to load on mobile containers per yards ............................................................ 16
Example: retrieve load plan with all material(s) ........................................................................... 16
Example: retrieve all warehouse locations with associated bays ................................................. 18
3.2. Get material(s) to load on mobile containers per bays.............................................................. 19
3.3. Get list of bay(s) a mobile containers need to go ...................................................................... 19
4.
APIs ................................................................................................................................................ 20
4.1. Material ...................................................................................................................................... 20
Properties ...................................................................................................................................... 20
Create (characterized or not) ........................................................................................................ 23
Update ........................................................................................................................................... 28
Partial update ................................................................................................................................ 32
Get by identifier ............................................................................................................................ 34
Get by custom filter ....................................................................................................................... 39
Aggregations.................................................................................................................................. 51
Request update definition ............................................................................................................. 54
Request update property .............................................................................................................. 56
Change location ............................................................................................................................. 58
Remove location ............................................................................................................................ 64
AddBlocking ................................................................................................................................... 66
Update Intrasite materials properties ........................................................................................... 68
Get materials per intrasite properties........................................................................................... 71
Get bays by context and number .................................................................................................. 80
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
2/722
Delete ............................................................................................................................................ 81
4.2. Location ...................................................................................................................................... 85
Create ............................................................................................................................................ 85
Update ........................................................................................................................................... 87
Partial Update................................................................................................................................ 89
Get by identifier ............................................................................................................................ 91
Get by custom filter ....................................................................................................................... 95
Get priorities per warehouse per destination ............................................................................. 103
Get occupancies .......................................................................................................................... 105
Request inventory ....................................................................................................................... 107
Inventory ..................................................................................................................................... 108
Request update by location ........................................................................................................ 110
Delete .......................................................................................................................................... 111
4.3. Location category ..................................................................................................................... 113
Create .......................................................................................................................................... 113
Update ......................................................................................................................................... 115
Partial Update.............................................................................................................................. 117
Get by identifier .......................................................................................................................... 119
Get by a custom filter .................................................................................................................. 120
Delete .......................................................................................................................................... 123
Delete associations ...................................................................................................................... 124
4.4. Scheduling module ................................................................................................................... 125
Scheduled transfers ..................................................................................................................... 125
Warehouse locations ................................................................................................................... 145
Links ............................................................................................................................................. 148
Material Pools ............................................................................................................................. 154
Composition ................................................................................................................................ 157
Availability ................................................................................................................................... 165
4.5. Bay ............................................................................................................................................ 171
Create .......................................................................................................................................... 171
Update ......................................................................................................................................... 173
Partial Update.............................................................................................................................. 175
Get by identifier .......................................................................................................................... 177
Get by custom filter ..................................................................................................................... 179
Transport modes allowed & maximum number of equipments................................................. 187
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
3/722
Delete .......................................................................................................................................... 188
4.6. Gate .......................................................................................................................................... 190
Create or update ......................................................................................................................... 190
Delete .......................................................................................................................................... 190
Get by identifier .......................................................................................................................... 191
Get by custom filter ..................................................................................................................... 192
4.7. Production Line ........................................................................................................................ 193
Save (add or update) ................................................................................................................... 193
Get by identifier .......................................................................................................................... 197
Get occupancies of input locations ............................................................................................. 199
Save Input Sequence ................................................................................................................... 201
Get Input Sequence ..................................................................................................................... 203
Remove input sequence .............................................................................................................. 205
Save Sequenced Material ............................................................................................................ 206
Remove Sequenced Material ...................................................................................................... 208
Delete .......................................................................................................................................... 209
4.8. Transport .................................................................................................................................. 210
Save for a loading site (Create / Update) .................................................................................... 210
Create Transport ......................................................................................................................... 234
Update Transport ........................................................................................................................ 238
Partial update .............................................................................................................................. 244
Get by identifier .......................................................................................................................... 249
Get by custom filter ..................................................................................................................... 253
Get by identifier of global transport (LI) ..................................................................................... 260
Get by identifier for a loading site (LI)......................................................................................... 266
Get by identifier for a loading site identifier (LI) ......................................................................... 272
Add "Local Transport ID" in Loading Instruction ......................................................................... 273
Lock/Unlock for a loading site ..................................................................................................... 275
Save list of material(s) impossible to load................................................................................... 278
Load Determination Process ....................................................................................................... 280
Select material(s) to load ............................................................................................................ 282
Filter material(s) to load .............................................................................................................. 284
Filter material(s) to load (Hook) .................................................................................................. 286
Prioritize material(s) to load........................................................................................................ 289
Prioritize material(s) to load (Hook) ............................................................................................ 291
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
4/722
Departure (Truck, Convoy or Vessel)........................................................................................... 294
Departure Allowed / Not Allowed ............................................................................................... 297
Refuse Loading ............................................................................................................................ 299
Request Departure ...................................................................................................................... 302
Request CIM ................................................................................................................................ 305
CIM Acceptance (CIMA)............................................................................................................... 307
Cancel CIM Request..................................................................................................................... 309
Safety Checks............................................................................................................................... 311
Request loading execution detail (LED)....................................................................................... 313
Change state of loading execution detail (LED) .......................................................................... 314
Remove one material impossible to load .................................................................................... 316
Finish loading a transport in progress ......................................................................................... 317
Close a transport confirmed for a loading site ............................................................................ 321
Cancel a transport confirmed for a loading site .......................................................................... 325
Delete for all loading sites ........................................................................................................... 327
4.9. Loading Instruction ................................................................................................................... 329
Create .......................................................................................................................................... 329
Update ......................................................................................................................................... 338
Partial update .............................................................................................................................. 349
Delete .......................................................................................................................................... 353
Get by custom filter ..................................................................................................................... 355
4.10. Unloading Instruction ............................................................................................................. 360
Create .......................................................................................................................................... 360
Update ......................................................................................................................................... 363
Partial update .............................................................................................................................. 367
Get by identifier .......................................................................................................................... 370
Get all .......................................................................................................................................... 373
Cancel .......................................................................................................................................... 375
Delete .......................................................................................................................................... 378
4.11. Truck ....................................................................................................................................... 380
Create Carrier .............................................................................................................................. 380
Create Semi Trailer Truck ............................................................................................................ 383
Update Truck ............................................................................................................................... 389
Update Semi Trailer Truck ........................................................................................................... 392
Get Truck ..................................................................................................................................... 395
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
5/722
Entry or Exit cross gate ................................................................................................................ 407
Truck arrived at bay ..................................................................................................................... 409
Truck arrival at a free Location .................................................................................................... 411
Truck departure from a bay ........................................................................................................ 413
Allocate Truck to Transport ......................................................................................................... 417
Deallocate Truck from Transport ................................................................................................ 432
Record a new weighing of a truck ............................................................................................... 434
Refuse Truck ................................................................................................................................ 437
Refuse Loading ............................................................................................................................ 440
Delete Truck ................................................................................................................................ 443
4.12. Wagon .................................................................................................................................... 445
Get Wagon................................................................................................................................... 445
Get Convoy by identifier.............................................................................................................. 450
Get Convoy by wagon number or name ..................................................................................... 463
Delete convoy by identifier or name ........................................................................................... 464
Delete convoy by wagon-number contained in this convoy ....................................................... 465
Wagon’s convoy arrival at bay .................................................................................................... 467
Wagon's convoy arrival at a free location ................................................................................... 472
Wagon's convoy departure from a bay ....................................................................................... 477
Update Wagon ............................................................................................................................ 481
Delete Wagon by wagon number................................................................................................ 483
Allocate Wagons to Transport ..................................................................................................... 484
Deallocate Wagons from Transport ............................................................................................ 499
Record a new weighing of a wagon............................................................................................. 502
Refuse Wagon ............................................................................................................................. 505
Entry or Exit cross gate ................................................................................................................ 508
Link wagon to equipment............................................................................................................ 510
Unlink wagon from equipment ................................................................................................... 512
4.13. Ship (vessel / barge) ............................................................................................................... 514
Create or update ship .................................................................................................................. 514
Get Ship by name ........................................................................................................................ 516
Allocate ship to Transport ........................................................................................................... 521
Ship arrival at bay ........................................................................................................................ 526
Ship arrival at free location ......................................................................................................... 528
Ship departure from bay ............................................................................................................. 530
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
6/722
Delete ship................................................................................................................................... 532
4.14. Mobile Container(s)................................................................................................................ 534
Get all from Transport ................................................................................................................. 534
Get by identifier, name, or linked equiment ............................................................................... 535
Get for any transport state.......................................................................................................... 539
Load a material ............................................................................................................................ 540
Get loaded material(s)................................................................................................................. 551
Save snapshot .............................................................................................................................. 553
Save load plan.............................................................................................................................. 564
Add material(s) to load in load plan ............................................................................................ 571
Add material(s) to check in load plan .......................................................................................... 575
Add material(s) to unload in load plan ........................................................................................ 578
Remove material(s) to load from load plan ................................................................................ 580
Remove material(s) to check from load plan .............................................................................. 583
Remove material(s) to unload from load plan ............................................................................ 585
Deallocate from Transport .......................................................................................................... 587
Save list of checked material(s) ................................................................................................... 592
Save one checked material.......................................................................................................... 596
Cancel (undo) list of checked material(s) .................................................................................... 600
Start / End loading of a mobile container ................................................................................... 603
Get Bays for MobileContainer ..................................................................................................... 607
Delete Load Plan.......................................................................................................................... 609
Link mobile container to equipment ........................................................................................... 610
Unlink mobile container from equipment................................................................................... 613
4.15. Vehicle Type(s) ....................................................................................................................... 615
Create .......................................................................................................................................... 615
Create or Update ......................................................................................................................... 619
Partial Update.............................................................................................................................. 622
Get by identifier .......................................................................................................................... 624
Get by custom filter ..................................................................................................................... 626
Delete .......................................................................................................................................... 630
4.16. Physical Vehicle Group ........................................................................................................... 631
Get by identifier or name ............................................................................................................ 631
Get by custom filter ..................................................................................................................... 636
Change location ........................................................................................................................... 646
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
7/722
4.17. Physical Vehicle ...................................................................................................................... 648
Get by identifier or name ............................................................................................................ 648
Get by custom filter ..................................................................................................................... 651
4.18. Notifications ........................................................................................................................... 655
Check Weight............................................................................................................................... 655
4.19. Mobile Container & Transport states ..................................................................................... 661
Examples...................................................................................................................................... 662
4.20. Anomalies ............................................................................................................................... 664
Get by id ...................................................................................................................................... 666
Get by entity name and identifier ............................................................................................... 668
Get by custom filter ..................................................................................................................... 670
Get multiple entities .................................................................................................................... 673
Custom Anomaly ......................................................................................................................... 676
VehicleRefused ............................................................................................................................ 679
OutOfStock .................................................................................................................................. 680
NoLoadPlanPossible .................................................................................................................... 681
UnexpectedMuLoaded ................................................................................................................ 682
MuWithProblemLoaded .............................................................................................................. 684
ImpossibleToLoad........................................................................................................................ 686
MuLoadedOnWrongPosition ....................................................................................................... 688
MuUnloadedFromClosedTransport............................................................................................. 692
MuNotLoaded ............................................................................................................................. 693
MuNotFinalChecked .................................................................................................................... 695
MuFinalCheckError ...................................................................................................................... 697
MuOnMultipleTransports............................................................................................................ 699
NotAccessibleMuDetected .......................................................................................................... 701
MamExceeded ............................................................................................................................. 701
GvwrExceeded ............................................................................................................................. 704
WeightIncoherence ..................................................................................................................... 706
SafetyCheckFailed ....................................................................................................................... 708
FailureToShowUp ........................................................................................................................ 709
DepartureWhileNotAllowed........................................................................................................ 710
LoadingRefused ........................................................................................................................... 711
MuNotReadyForShipment........................................................................................................... 712
MuBlockedForShipment .............................................................................................................. 713
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
8/722
5.
Definitions ................................................................................................................................... 714
5.1. FreeLocation definition ............................................................................................................ 714
5.2. Equipment ................................................................................................................................ 715
5.3. Select Object............................................................................................................................. 715
5.4. Query Object ............................................................................................................................ 716
5.5. Paging Object............................................................................................................................ 722
5.6. OrderBy Object ......................................................................................................................... 722
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
9/722
Glossary
Client
Hook
API Customer. Any system interacting with Artemis.Core
Overridable behaviour
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
10/722
1. Configuration
1.1. Services
Execution
WeightCheckTolerance (double, optional) Default value: 0.0
When checking truck weight conformity is calculated (allocation, weighing, …), this field (in
percent) is the permissible limit of variation allowed in DerogationMass or GVWR.
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
11/722
2. Requests
2.1. Common Request Header
Application-Name
Scope
Transport-Location-Id
Initial-Request-Id
Parent-Request-Id
Notification-Awaiter
string
string
string
string
string
json
Mandatory
Mandatory
Mandatory
Optional
Optional
Optional
1.84.0
Application-Name
Represents the name of the application which sends the request. This field is only used for
internal purposes and debugging.
Scope
Scope is a deceptive to find the proper route when multiple services have registered the
same route (ex: Create a location, …). If no route is found for the specified scope, the Bus
service will select the default route (a route registered by a default Core service)
You will also retrieve field “Scope” in all notifications to allow you to subscribe only to
notifications with specific “Scope” value.
Example of value: “LIE”, “Desvres”, …
Transport-Location-Id
It defines the site where vehicle is working on. A WarehouseLocation of type Site with the
same identifier should exist in Artemis. For example, when you close or cancel a Transport,
you specify the “Global Transport Identifier” in URL and “Transport-Location-Id” in Header of
your request. Firstly, Artemis will retrieve the Transport with the “Global Transport
Identifier”, then retrieve the proper LoadingInstruction that has LoadingTransportLocation
Identifier equal to “Transport-Location-Id”.
Initial-Request-Id
Each request is saved on the bus database with a request id. When requests are chained.
Initial-Request-Id can be set to be able to trace for each request what was the initial one.
Parent-Request-Id
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
12/722
The id of the parent request.
Notification-Awaiter 1.84.0
See Artemis Core Bus documentation.
Example of usage : you want to allocate a truck directly after geting the 200 response on a
the transport creation. You might end up with a 404 not found because the transport has not
been propagated to the execuion service yet. By setting the Notification-Awaiter header you
can specify that you want to wait for the ExecutionUpdated notification (meaning the
transport has been updated in the execution context) before getting the reponse from the
bus. Of course you still need to handle the 408 timeout error in case the notificaiton has not
been received in a timely manner (network issue, execution service is down, ...).
2.2. Common Request Body
{
requestedBy (string),
requestedAt (string),
context (json, optional),
…
}
Example
{
"requestedBy": "artemis@arcelormittal.com",
"requestedAt": "2019-12-04T17:22:20.185Z",
"context": {},
…
}
2.3. Common Notification
{
resourceType (string),
notificationType (string),
sender (string),
scope (string),
data (json)
}
Example
{
"resourceType": "carrier",
"notificationType": "Create",
"sender": "Artemis.Core.Vehicle",
"scope": null,
"data": {
…
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
13/722
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
14/722
Error format
{
uri (Uri),
code (string),
message (string),
messageDetail (string, optional)),
arguments [] (object, optional)),
content ({
statusCode (HttpStatusCode),
reasonPhrase (string),
content (JToken),
contentType (string)
}, optional)
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
15/722
3. Get started (Business use cases)
3.1. Get material(s) to load on mobile containers per yards
0.0.41.0
Step 1: Retrieve load plan with all material(s)
Firstly, we need to retrieve all material(s) expected in load plan on a specific mobile container. (ex:
trailer, wagon, etc.)
Get (see 0.562)
Example: retrieve load plan with all material(s)
GET /transport-api/v1/mobile-containers/name=MC123456
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
16/722
Result
{
"globalTransportIdentifier": "ID000000",
"equipmentIdentifier": null,
"identifier": "ID000000",
"name": "trailerID000000",
"loadPlan": {
"toLoad": [
{
"material": {
"lmiContext": "111",
"lmiNumber": "11",
"materialGroup": "1111"
},
"position": {
"cradleFrontToRearIndex": 1,
"cradleLeftToRightIndex": 1,
"level": 1,
"orientation": "axisVertical",
"spireOrientation": "topToFront"
}
},
{
"material": {
"lmiContext": "222",
"lmiNumber": "22",
"materialGroup": "2222"
},
….
},
…
],
"toCheck": [],
"loaded": [],
"impossibleToLoad": []
},
"loadedMaterialUnits": []
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
17/722
Step 2: Retrieve all warehouse locations with associated bays
Foreach material(s), retrieve locations
Example: retrieve all warehouse locations with associated bays
{
"includes":[
{
"name":"location",
"nodeType":"property"
}
],
"query":{
"methodName":"In",
"arguments":[
{
"value":[
{
"lmiContext":"111",
"lmiNumber":"11"
},
{
"lmiContext":"222",
"lmiNumber":"22"
},
…
],
"nodeType":"constant"
}
],
"nodeType":"call"
}
}
Result
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
18/722
{
"TotalPages":1,
"Items":[
{
"lmiContext":"111",
"lmiNumber":"11",
"definitionLevel":"Partially",
"productType":"Slab"
…,
"locatedOn":{
"type":"locateOnLocation",
"label":"ID000001",
"locationIdentifier":"ID000001"
},
},
{
"lmiContext":"222",
"lmiNumber":"22",
"definitionLevel":"Partially",
"productType":"Slab"
…,
"locatedOn":{
"type":"locateOnLocation",
"label":"ID000002",
"locationIdentifier":"ID000002"
},
}
],
"HasPreviousPage":false,
"HasNextPage":false,
"PageIndex":0,
"PageSize":20,
"TotalCount":2
}
Then, integrator does a distinct on the yard(s) inside the json result (ex: for
screens, etc.)
3.2. Get material(s) to load on mobile containers per bays
0.0.58.0
see 0.562 Get Bays for MobileContainer
3.3. Get list of bay(s) a mobile containers need to go
0.0.58.0
see 0.562 Get Bays for MobileContainer
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
19/722
4. APIs
4.1. Material
Properties
ProductType :
o Possible values : Coil, Slab, SlittedCoil & HotRolledCoil.
o Use : Will be used to check the compatibility between
DefinitionLevel
o Possible values :
Not : in case the material is created by Artemis itself as a result of locating an
unknown material
Partially : When not all material unit data is present. It is usually used when an
other system than the MES provides some data before the MES knows the coil.
Fully : When the material is known by the MES.
o Use : As long as the level is not Fully an UpdateRequest notification will be
generated when processing a material event.
Dimensions
o Units :
All weights in kg
Length in m
Width and thickness in mm
mesOwner
o
Possible Values : no restrictions
o
Use : This value can be used in case Artemis is connected to multiple MES
systems. It is send in material notifications as value for owner.
SpecificDimensions
o
Possible Values : this must be passed as a JSON key value pair. Any key can be
used but only internalDiameter and externalDiameter are recognised by the
system in order to be displayed in the Material Unit detail screen.
o
Use : there is no specific use for these dimensions. When provided the internaland externalDiameter value is shown in the material UI.
PackingCode
o
Possible Values: any value or format can be given
o
Use : only used as information to shown in UI
PackingNumber
o
Possible Values: any value or format can be given
o
Use : only used as information to shown in UI. This can be used when MES created
a new identifier for material that has been packed.
labelBarcode
o
Possible Values: any value or format can be given
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
20/722
o
Use : only used as information to shown in UI. It can be used to pass to to local
systems as a BC than must be scanned to identify the coil.
ForeignID
o
Possible Values: any value or format can be given
o
Use : only used as information to shown in UI. It can be used in case material was
provided by another mill to store the ID given by this mill
productionStatus
o
Possible Values:
WIP : material that has not yet reached it’s final stage. It is up to the integrator if
packing is included as a stage.
FIP : material that has reached it’s final stage
o
Use : Is of use for the intrasite component of Artemis with respect to material
selection.
readyForShipment
o
Use : in case of intrasite component or load determination for material selection
blockedForShipment
o
Use : indicates if a material is not allowed to be shipped
inTransit
o
Use : indicates if a material is actually in a warehouse or being transported. Can be
used as a refinemend for material without known location.
isSupply
o
Use : in case of intrasite component or load determination for material selection
Axis
o
Possible Values: any value or format can be given
o
Use : Horizontal / Vertical
unStackingCost
o
Possible Values: any value or format can be given
o
Use : in case of intrasite component or load determination for material selection
nextProductionLine
o
Possible Values: any value or format can be given, it must however be aligned with
the productionline referential
o
Use : in case of intrasite component or load determination for material selection
nextProductionForeseenDate
o
Possible Values: datetime
o
Use : only used as information to shown in UI
scheduledNextProduction
o
Possible Values: any value or format can be given
o
Use : ????
blockingCodes
o
Possible Values: any value or format can be given
o
Use : only used as information to shown in UI. Could be used to steer material
selection later.
boostStatus
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
21/722
o
Possible Values:
Boosted : the material must be shipped with urgenty
UnBoosted : the material must no longer be shipped with urgenty
o
Use : In case of intrasite or load determination it can be used to give the material
a higher priority for transport.
boostDateTime
o
Possible Values: any value or format can be given
o
Use : used as information when the boost was done.
orderNumber + orderItemId
o
Possible Values: any value or format can be given
o
Use : in case of intrasite component or load determination for material selection
scaleUpMaterialUnitIdentifier
o
Possible Values: any value or format can be given
o
Use : This should be provided by the ScaleUp component and will be used for
communication with Concerto
scheduledAgreementId
o
Possible Values: any value or format can be given
o
Use : ???
shipmentInstructionId
o
Possible Values: any value or format can be given
o
Use : ???
intrasitePlanningState
o
Possible Values:
ReadyToBeTransported : MU is ready for internal transport.
PlannedOnInternalTransport : MU is planned on internaltransport
o
Use : Can be used in case other systems like MES or WMS are owner of rules that
determine if internal transport is allowed on a coil. For example depending on
blocking codes.
parentMaterialID
o
Possible Values: any value or format can be given
o
Use : only used as information to shown in UI
otmPackageItemId
o
Possible Values: format as agreed with OTM
o
Use : is used in communication with OTM (oracle transport management) to
identify MU.
otmSelectionCriterium
o
Possible Values: format as agreed with OTM
o
Use : is used in communication with OTM (oracle transport management) to select
MU.
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
22/722
Create (characterized or not)
0.0.44.0
Functional Need
Allow client to create a material unit. This method is triggered by a MES message or by a local system
if produced by a line.
0.0.40.0 From this version, it is possible to create a material not characterized (i.e. DefinitionLevel
set to ‘Not’) with only 3 fields mandatory (LmiContext, LmiNumber and DefinitionLevel). The other
fields are ignored. For material units characterized (‘Partially’ or ‘Fully’), the mandatory fields are
taken into account.
HTTP Request
POST /material-api/v1/materialunits
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
23/722
Request Body
Characterized material unit
{
…
materialUnit : {
lmiContext (string),
lmiNumber (string),
productType (string),
definitionLevel (string) = [‘Partially’, ‘Fully’],
netWeight (int),
grossWeight (int, optional),
length (int, optional),
width (int),
thickness (int, optional),
productType (string),
mesOwner (string, optional),
mesLocation (string), 0.0.61.0
specificDimensions (json, optional),
packingCode (string, optional),
packingNumber (string, optional),
labelBarcode (string, optional),
foreignId (string, optional),
productionStatus (string),
readyForShipment (bool),
blockedForShipment (bool), 0.0.62.0
inTransit (bool),
isSupply (bool),
axis (string, optional),
unstackingCost (int, optional),
nextProductionLine (string, optional),
nextProductionForeseenDate (datetime, optional),
scheduledNextProduction (datetime, optional),
blockingCodes ([
(string), …
], optional),
metadata (json, optional),
boostStatus (string, optional),
boostDateTime (datetime),
orderNumber (string),
scaleUpMaterialUnitIdentifier (string, optional),
orderItemId (string),
scheduledAgreementId (string),
shipmentInstructionId (string),
intrasitePlanningState (string),
parentMaterialId (string),
otmPackageItemId (string, optional), 0.0.50.0
otmSelectionCriterium (string, optional), 0.0.56.0
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
24/722
Uncharacterized material unit
{
…
materialUnit : {
lmiContext (string),
lmiNumber (string),
definitionLevel (string) = [‘Not’]
}
Responses
Response 201 (Created)
Response 409 (Conflict)
MaterialUnit with context '{0}' and number '{1}' already exists
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
25/722
Example
Characterized material unit
{
…,
"materialUnit": {
"lmiContext": "LIE",
"lmiNumber": "ID000000",
"definitionLevel": "Partially",
"netWeight": 0,
"grossWeight": 0,
"length": 0,
"width": 0,
"thickness": 0,
"productType": "string",
"mesOwner": "string",
"specificDimensions": {},
"packingCode": "string",
"packingNumber": "string",
"labelBarcode": "string",
"foreignId": "string",
"productionStatus": "string",
"readyForShipment": true,
"blockedForShipment": false,
"inTransit": true,
"isSupply": true,
"axis": "string",
"unstackingCost": 0,
"nextProductionLine": "string",
"nextProductionForeseenDate": "2020-10-14T13:21:39.303Z",
"scheduledNextProduction": "2020-10-14T13:21:39.303Z",
"blockingCodes": [
"string"
],
"metadata": {},
"boostStatus": "string",
"boostDateTime": "2020-10-14T13:21:39.303Z",
"orderNumber": "string",
"scaleUpMaterialUnitIdentifier": "string",
"orderItemId": "string",
"scheduledAgreementId": "string",
"shipmentInstructionId": "string",
"intrasitePlanningState": "string",
"parentMaterialId": "string",
"otmPackageItemId" : "string"
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
26/722
Uncharacterized material unit
{
…,
"materialUnit": {
"lmiContext": "LIE",
"lmiNumber": "ID000000",
"definitionLevel": "Not"
}
Notification(s)
{
"notificationType": "Create"
"resourceType": "materialUnit",
"scope": "",
"sender": "Artemis.Material",
"data": {
"context": {
"key": "value"
},
"id": {
"lmiContext": "LIE",
"lmiNumber": "000000"
},
"definitionLevel": "not | partially",
"owner": "owner",
"on": null,
"status": "Blocked" 0.0.58.0
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
27/722
Update
0.0.44.0
HTTP Request
PUT /material-api/v1/materialunits/context={context}&number={number}
Request Parameters
context (string)
number (string)
lmi context
lmi number
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
28/722
Request Body
{
…
materialUnit : {
productType (string),
definitionLevel (string) = [‘Not’, ‘Partially’, ‘Fully’],
netWeight (int),
grossWeight (int, optional),
length (int, optional),
width (int),
thickness (int, optional),
productType (string),
mesOwner (string, optional),
specificDimensions (json, optional),
packingCode (string, optional),
packingNumber (string, optional),
labelBarcode (string, optional),
foreignId (string, optional),
productionStatus (string),
readyForShipment (bool),
blockedForShipment (bool), 0.0.62.0
inTransit (bool),
isSupply (bool),
axis (string, optional),
unstackingCost (int, optional),
nextProductionLine (string, optional),
nextProductionForeseenDate (datetime, optional),
scheduledNextProduction (datetime, optional),
blockingCodes ([
(string), … ], optional),
metadata (json, optional),
boostStatus (string, optional),
boostDateTime (datetime),
orderNumber (string),
scaleUpMaterialUnitIdentifier (string),
orderItemId (string),
scheduledAgreementId (string),
shipmentInstructionId (string),
intrasitePlanningState (string),
parentMaterialId (string),
otmPackageItemId (string, optional)), 0.0.50.0
otmSelectionCriterium (string, optional), 0.0.56.0
}
}
Responses
Response 200 (Ok)
Response 201 (Created)
Response 400 (BadRequest)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
29/722
2
requestedAt must be newer or equals to the previous definition (DefinitionDate of
Material unit)
Response 404 (NotFound)
Example
{
…,
"materialUnit": {
"lmiContext": "LIE",
"lmiNumber": "ID000000",
"definitionLevel": "Not",
"netWeight": 0,
"grossWeight": 0,
"length": 0,
"width": 0,
"thickness": 0,
"productType": "string",
"mesOwner": "string",
"specificDimensions": {},
"packingCode": "string",
"packingNumber": "string",
"labelBarcode": "string",
"foreignId": "string",
"productionStatus": "string",
"readyForShipment": true,
"blockedForShipment": false,
"inTransit": true,
"isSupply": true,
"axis": "string",
"unstackingCost": 0,
"nextProductionLine": "string",
"nextProductionForeseenDate": "2020-10-14T13:21:39.303Z",
"scheduledNextProduction": "2020-10-14T13:21:39.303Z",
"blockingCodes": [
"string"
],
"metadata": {},
"boostStatus": "string",
"boostDateTime": "2020-10-14T13:21:39.303Z",
"orderNumber": "string",
"scaleUpMaterialUnitIdentifier": "string",
"orderItemId": "string",
"scheduledAgreementId": "string",
"shipmentInstructionId": "string",
"intrasitePlanningState": "string",
"parentMaterialId": "string",
"otmPackageItemId" : "string"
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
30/722
Notification(s)
{
"notificationType": "Update"
"resourceType": "materialUnit",
"scope": "",
"sender": "Artemis.Material",
"data": {
"context": {
"key": "value"
},
"id": {
"lmiContext": "LIE",
"lmiNumber": "000000"
},
"definitionLevel": "partially",
"owner": "owner",
"status": "Blocked", 0.0.58.0
"on": null,
"previousData": {
"grossWeight": 220,
"netWeight": 22
},
"grossWeight": 5000,
"netWeight": 3000
}
}
Anomaly
See 0.562 MuWithProblemLoaded
-
If Material is blocked: “AnomalyDetected”
-
Else: “AnomalyFixed”
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
31/722
Partial update
0.0.44.0
Allow client to update material unit information. This method is triggered by a MES message or by a
local system if produced by a line.
PATCH /material-api/v1/materialunits/context={context}&number={number}
Request Parameters
context (string)
number (string)
lmi context
lmi number
Request Body
{
…
materialunit: [
{
value (Json),
path (string),
op (string)
},
…
]
}
Responses
Response 204 (No Content)
Response 400 (BadRequest)
2
requestedAt must be newer or equals to the previous definition (DefinitionDate of
Material unit)
Response 404 (NotFound)
Example
{
…
"materialunit": [
{
"value": “newOwner”,
"path": "owner",
"op": "replace",
},
…
]
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
32/722
Notification(s)
{
"notificationType": "PartialUpdate"
"resourceType": "materialUnit",
"scope": "",
"sender": "Artemis.Material",
"data": {
"context": {
"Date": "2020-10-14T17:00:30.7634987+02:00"
},
"id": {
"lmiContext": "LIE",
"lmiNumber": "000000"
},
"grossWeight": 220,
"definitionLevel": "partially",
"owner": "newOwner",
"on": null,
"scaleUpMaterialUnitIdentifier": "scaleUpMaterialUnitIdentifier", 0.1.84.0
"packingNumber": "packingNumber", 0.1.84.0
"foreignID": "foreignId", 0.1.84.0
"netWeight": 22
"otmPackageItemId": null,
"status": "Blocked", 0.0.58.0
"blockingCodes": []
"previousData": {
"owner": "owner"
},
}
}
Anomaly
See 0.562 MuWithProblemLoaded
-
If Material is blocked: “AnomalyDetected”
-
Else: “AnomalyFixed”
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
33/722
Get by identifier
0.0.44.0
Retrieve a material by identifier
HTTP Request
GET /material-api/v1/materialunits/context={context}&number={number}
Request Parameters
context (string)
number (string)
lmi context
lmi number
Responses
Response 200 (Ok)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
34/722
{
…
lmiContext (string),
lmiNumber (string),
productType (string),
definitionLevel (string) = [‘Not’, ‘Partially’, ‘Fully’],
netWeight (int),
grossWeight (int),
length (int),
width (int),
thickness (int),
productType (string),
mesOwner (string, optional),
specificDimensions (json, optional),
packingCode (string, optional),
packingNumber (string, optional),
labelBarcode (string, optional),
foreignId (string, optional),
productionStatus (string),
readyForShipment (bool),
blockedForShipment (bool), 0.0.62.0
inTransit (bool),
isSupply (bool),
axis (string, optional),
unstackingCost (int, optional),
nextProductionLine (string, optional),
nextProductionForeseenDate (datetime, optional),
scheduledNextProduction (datetime, optional),
blockingCodes ([
(string), …
], optional),
metadata (json, optional),
boostStatus (string, optional),
boostDateTime (datetime),
orderNumber (string),
scaleUpMaterialUnitIdentifier (string),
orderItemId (string),
scheduledAgreementId (string),
shipmentInstructionId (string),
intrasitePlanningState (string),
parentMaterialId (string),
creationDate (datetime),
lastModificationDate (datetime),
definitionDate (datetime),
mesLocation (string), 0.0.61.0
locatedOn {
type (string) = ‘LocateOnLocation’,
label (string),
storageLocation (string),
mesLocation (string), 0.0.61.0
level (int),
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
35/722
locationIdentifier (string),
accessibleBays {
},
parents ([
label (string),
identifier (string),
state (string) = [‘Open’, ‘Closed’],
]),
or
type (string) = ‘LocationOnPhysicalVehicle’
identifier (string),
actualDepartureCompleted (bool), 1.84.0 (means the vehicle is fully executed and left)
},
locationMetadata (json, optional),
locationChangedBy (string, optional),
locationChangedAt (datetime, optional),
locationChangedType (string, optional),
markedForDeletion (bool),
availableOnLocation (bool),
availableOnBay (bool),
status (string, optional), 0.0.58.0
netWeight (int, optional),
grossWeight (int, optional),
length (double, optional),
width (double, optional),
thickness (double, optional),
productType (string, optional),
transports ([
identifier (string),
vehicleName (string, optional),
linkType (string) = [‘LoadingInstructionMustLoad’, ‘LoadPlanToLoad’, ‘Loaded’],
type (string) = [‘Shipment’, ‘Intrasite’] 0.0.58.0
]),
0.0.58.0
}
Response 404 (NotFound)
Example
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
36/722
{
"mesOwner": "owner",
"specificDimensions": {},
"packingCode": null,
"packingNumber": null,
"labelBarcode": null,
"foreignId": null,
"productionStatus": "WIP",
"readyForShipment": false,
"inTransit": false,
"isSupply": false,
"axis": null,
"unstackingCost": null,
"nextProductionLine": null,
"nextProductionForeseenDate": null,
"scheduledNextProduction": null,
"blockingCodes": [
"block1",
"block2"
],
"metadata": {
"Prop1": "2020-10-14T15:21:38.5983086+02:00",
"Prop2": "Me Against the world",
"Prop3": 2018
},
"boostStatus": null,
"boostDateTime": null,
"orderNumber": null,
"scaleUpMaterialUnitIdentifier": null,
"orderItemId": null,
"scheduledAgreementId": null,
"shipmentInstructionId": null,
"intrasitePlanningState": null,
"parentMaterialId": null,
"lmiContext": "LIE",
"lmiNumber": "ID000000",
"creationDate": "2020-10-15T11:14:56.7376559+00:00",
"lastModificationDate": "2020-10-15T11:14:56.7566605+00:00",
"definitionDate": "2020-10-14T15:21:39.2313086+02:00",
"definitionLevel": "Not",
"locatedOn": null,
"locationMetadata": {},
"locationChangedBy": null,
"locationChangedAt": null,
"locationChangeType": null,
"markedForDeletion": false,
"availableOnLocation": false,
"availableOnBay": false,
"transports": [],
"status": "Blocked",
"netWeight": null,
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
37/722
"grossWeight": null,
"length": null,
"width": null,
"thickness": null,
"productType": "Slab"
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
38/722
Get by custom filter
0.0.44.0
Retrieve a material by query.
HTTP Request
POST /material-api/v1/materialunits/searches
Request Body
{
"query": {
…
},
"select": [
{
…
],
"paging": {
"pageSize": 0,
"pageNumber": 0
},
"orderBy": {
…
},
"includes": [ {
…
}]
}
Include(s)
By default, all MaterialUnit(s) are retrieved without the property ‘Location’ (useful when retrieving >
1.000 items). If you want to retrieve ‘Location’ property, you need to add ‘Includes’ in the query (see
example below)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
39/722
{
"query": {
"Operator": "equal",
"Left": {
"Name": "Value",
"Left": {
"Name": "Thickness",
"nodeType": "property"
},
"nodeType": "property"
},
"Right": {
"Value": 235000.0,
"Type": "Double",
"nodeType": "constant"
},
"nodeType": "binary"
},
"includes": [
{
"nodeType": "property",
"name": "location"
}
]
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
40/722
Query in list
0.0.40.0
In order to select material units based on a known list of materials, a “call” (see OrderBy Object (see
5.6)) operator has been added allowing to retrieve all material units in a given list. The contents of
the value node are not fixed, and can be any property of a material (e.g. lmiNumber, lmiContext,
ProductType, …)
Examples
Get all MaterialUnit(s) with location which have ‘LmiContext’ equal to ‘LIE’ and ‘LmiNumber’ equal to
‘ID000000’, or ‘LmiNumber’ equal to ‘ID000001’:
{
"query": {
"nodeType": "call",
"methodName": "In",
"arguments": [
{
"nodeType": "constant",
"value": [
{
"lmiNumber": "ID000000",
"lmiContext": "LIE"
},
{
"lmiNumber": "ID000001",
}
]
}
]
},
"select": null,
"paging": null,
"orderBy": null,
"includes": [
{
"nodeType": "property",
"name": "location"
}
]
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
41/722
Get all MaterialUnit(s) with ‘Priority’ equal to 99:
{
"query": {
"nodeType": "binary",
"operator": "equal",
"left": {
"nodeType": "property",
"name": "priority",
"left": {
"nodeType": "property",
"name": "IntrasiteMaterialUnitPlanning"
}
},
"right": {
"nodeType": "constant",
"value": "99"
}
}
}
Get all MaterialUnit(s) and show only ‘lmiNumber’ and ‘Priority’ properties
{
"select": [
{
"fieldName": "lmiNumber",
"node": {
"nodeType": "property",
"name": "lmiNumber"
}
},
{
"fieldName": "priority",
"node": {
"nodeType": "property",
"name": "priority",
"left": {
"nodeType": "property",
"name": "IntrasiteMaterialUnitPlanning"
}
}
}
]
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
42/722
Get all MaterialUnit(s) with ‘Priority’ equal to 99 and ‘nextWarehouseLocationIdentifier’ equal to
‘WL-B’:
{
"query": {
"nodeType": "binary",
"operator": "and",
"left": {
"nodeType": "binary",
"operator": "equal",
"left": {
"nodeType": "property",
"name": "priority",
"left": {
"nodeType": "property",
"name": "IntrasiteMaterialUnitPlanning"
}
},
"right": {
"nodeType": "constant",
"value": "99"
}
},
"right": {
"nodeType": "binary",
"operator": "equal",
"left": {
"nodeType": "property",
"name": "nextWarehouseLocationIdentifier",
"left": {
"nodeType": "property",
"name": "IntrasiteMaterialUnitPlanning"
}
},
"right": {
"nodeType": "constant",
"value": "WL-B"
}
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
43/722
Get all material(s) on a specific warehouse location
{
"query":{
"nodeType": "call",
"methodName": "InLocation",
"arguments": [
{
"nodeType": "constant",
"value": "ID000000" // location identifier
}
]
}
}
Get all material(s) on a specific vehicle
{
"query":{
"nodeType": "call",
"methodName": "InLocation",
"arguments": [
{
"nodeType": "constant",
"value": "ID000000" // vehicle identifier
}
]
}
}
Get all material(s) with one or more blocking code
{
"query":{
"nodeType": "call",
"methodName": "WithBlockingCodes"
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
44/722
Get all material(s) with one or more of a set of blocking codes
{
"query":{
"nodeType": "call",
"methodName": "WithBlockingCodes",
"arguments": [
{
"nodeType": "constant",
"value": "BLOCKINGCODE1"
},
{
"nodeType": "constant",
"value": "BLOCKINGCODE2"
}, …
]
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
45/722
Get all MaterialUnit(s) with subkey ‘prop3’ and value ‘2018’ on property ‘metadata’
{
"query":{
"nodeType":"binary",
"operator":"equal",
"left":{
"nodeType":"call",
"methodName":"JsonValue",
"arguments":[
{
"value":"Prop3",
"nodeType":"constant"
}
],
"left":{
"nodeType":"property",
"name":"metadata"
}
},
"right":{
"nodeType":"constant",
"value":"2018"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
46/722
Responses
Response 200 (Ok)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
47/722
{
totalPages (int),
hasPreviousPage (bool),
hasNextPage (bool),
pageIndex (int),
pageSize (int),
totalCount (int),
items [
{
lmiContext (string),
lmiNumber (string),
productType (string),
definitionLevel (string) = [‘Not’, ‘Partially’, ‘Fully’],
netWeight (int),
grossWeight (int),
length (int),
width (int),
thickness (int),
productType (string),
mesOwner (string, optional),
specificDimensions (json, optional),
packingCode (string, optional),
packingNumber (string, optional),
labelBarcode (string, optional),
foreignId (string, optional),
productionStatus (string),
readyForShipment (bool),
blockedForShipment (bool),
inTransit (bool),
isSupply (bool),
axis (string, optional),
unstackingCost (int, optional),
nextProductionLine (string, optional),
nextProductionForeseenDate (datetime, optional),
scheduledNextProduction (datetime, optional),
blockingCodes ([
(string), …
], optional),
metadata (json, optional),
boostStatus (string, optional),
boostDateTime (datetime),
orderNumber (string),
scaleUpMaterialUnitIdentifier (string),
orderItemId (string),
scheduledAgreementId (string),
shipmentInstructionId (string),
intrasitePlanningState (string),
parentMaterialId (string),
creationDate (datetime),
lastModificationDate (datetime),
definitionDate (datetime),
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
48/722
mesLocation (string), 0.0.61.0
locatedOn {
type (string) = ‘LocateOnLocation’,
label (string),
storageLocation (string),
mesLocation (string), 0.0.61.0
level (int),
locationIdentifier (string),
accessibleBays {
},
parents ([
label (string),
identifier (string),
state (string) = [‘Open’, ‘Closed’],
]),
or
type (string) = ‘LocationOnPhysicalVehicle’
identifier (string)
},
locationMetadata (json, optional),
locationChangedBy (string, optional),
locationChangedAt (datetime, optional),
locationChangedType (string, optional),
markedForDeletion (bool),
availableOnLocation (bool),
availableOnBay (bool),
status (string, optional),
netWeight (int, optional),
grossWeight (int, optional),
length (double, optional),
width (double, optional),
thickness (double, optional),
productType (string, optional)
},
…
]
}
Example
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
49/722
{
"totalPages": 1,
"items": [
{
"mesOwner": "owner",
"specificDimensions": {},
"packingCode": null,
"packingNumber": null,
"labelBarcode": null,
"foreignId": null,
"productionStatus": "WIP",
"readyForShipment": false,
"inTransit": false,
"isSupply": false,
"axis": null,
"unstackingCost": null,
"nextProductionLine": null,
"nextProductionForeseenDate": null,
"scheduledNextProduction": null,
"blockingCodes": [
"block1",
"block2"
],
"metadata": {
"Prop1": "2020-10-15T23:31:24.7696254+02:00",
"Prop2": "Me Against the world",
"Prop3": 2018
},
"boostStatus": null,
"boostDateTime": null,
"orderNumber": null,
"scaleUpMaterialUnitIdentifier": null,
"orderItemId": null,
"scheduledAgreementId": null,
"shipmentInstructionId": null,
"intrasitePlanningState": null,
"parentMaterialId": null,
"lmiContext": "LIE",
"lmiNumber": "ID000000",
"creationDate": "2020-10-15T22:19:02.7020015+00:00",
"lastModificationDate": "2020-10-15T22:19:02.7120028+00:00",
"definitionDate": "2020-10-15T23:31:25.2816232+02:00",
"definitionLevel": "Not",
"locatedOn": null,
"locationMetadata": {},
"locationChangedBy": null,
"locationChangedAt": null,
"locationChangeType": null,
"markedForDeletion": false,
"availableOnLocation": false,
"availableOnBay": false,
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
50/722
"transports": [],
"status": "Blocked",
"netWeight": null,
"grossWeight": null,
"length": null,
"width": null,
"thickness": null,
"productType": "Slab"
}
],
"hasPreviousPage": false,
"hasNextPage": false,
"pageIndex": 0,
"pageSize": 20,
"totalCount": 1
}
Aggregations
0.0.60.0
Aggregation requests can be sent to this endpoint to Sum, Average, Count, Min, Max, Any fields of a
material unit.
“aggregateOperation” is a mandatory property defining the name of the aggregation. Can be Sum,
Average, Count, Min, Max, Any…
“aggregateExpression” is a mandatory property where an expression object can define the
expression to be aggregated.
“where” property can be set with an expression object to filter the number of records where
aggregation is applied.
“orderBy” can improve performance depending of the aggregation
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
51/722
HTTP Request
POST /material-api/v1/materialunits/aggregations
Request Body
{
aggregateOperation (string) = [‘Average’, ‘Count’, ‘Min’, ‘Max’, Any’],
aggregateExpression {
…
},
where {
…
} (optional),
orderBy {
…
} (optional)
}
Examples
Get total weight of materials in location “ID01”
{
"aggregateOperation": "Sum",
"aggregateExpression": {
"nodeType": "property",
"name": "grossWeight",
},
"where": {
"nodeType": "call",
"methodName": "InLocation",
"arguments": [
{
"nodeType": "constant",
"value": "ID01"
}
]
}
}
Responses
Response 200 (Ok)
“Value” type depends of the aggregation.
{
value (any)
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
52/722
Example
{
“value”:660
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
53/722
Request update definition
0.0.44.0
Allow client to request an up to date material unit definition
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
54/722
HTTP Request
POST /material-api/v1/materialunits/context={context}&number={number}/updaterequest
Request Body
{
…
}
Responses
Response 200 (Ok)
Response 404 (NotFound)
Example
{
…
}
Notification(s)
{
"notificationType": "UpdateRequested"
"resourceType": "materialUnit",
"scope": "",
"sender": "Artemis.Material",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2021-10-11T13:03:12.549632+00:00",
"requestedBy": "owner"
},
"id": {
"lmiContext": "LIE",
"lmiNumber": "000000"
},
"definitionLevel": "partially",
"owner": "owner",
"status": "Blocked",
"on": null,
"grossWeight": 220,
"netWeight": 22
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
55/722
Request update property
0.0.44.0
Allow client to request an update to a certain property in the MES.
HTTP Request
POST /material-api/v1/materialunits/context={context}&number={number}/request-updateproperty
Request Body
{
…,
propertyName (string),
oldValue (dynamic: json, string, int, …),
newValue (dynamic: json, string, int, …)
}
Responses
Response 200 (Ok)
Response 404 (NotFound)
Example
{
…,
"propertyName": "netWeight",
"oldValue": 50,
"newValue": 60
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
56/722
Notification(s)
{
"notificationType": "UpdateRequested"
"resourceType": "materialUnit",
"scope": "",
"sender": "Artemis.Material",
"data": {
"originalRequestInfo": {
"requestedAt": "2021-10-11T13:03:12.549632+00:00",
"requestedBy": "owner"
},
"id": {
"lmiContext": "LIE",
"lmiNumber": "000000"
},
"context": {
"key": "value"
},
"grossWeight": 220,
"definitionLevel": "partially",
"owner": "owner",
"status": "Blocked",
"on": null,
"netWeight": 22,
"propertyName": "netWeight",
"oldValue": 50,
"newValue": 60 }
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
57/722
Change location
0.0.44.0
Allow client to change the location of a material unit. If material unit does not exist, a new material
unit is created with definitionLevel equal to ‘Not’.
HTTP Request
PUT /material-api/v1/materialunits/context={context}&number={number}/location
Request Body
{
…,
type (string) = [‘Manual’, ‘Automatic’],
metadata (json, optional),
on {
type (string) = [‘locateOnLocation’],
locationIdentifier (string),
storageLocation (string),
level (int),
mesLocation (string) 0.0.61.0
}
}
Responses
Response 200 (Ok)
Response 204 (NoContent)
The material was already present on the requested location
Response 403 (Forbidden)
5
Hook returned an error
{
“reasonCode”: “…”,
“reasonLabel”: “…”
}
4
Location '{0}' not found
8
Cannot change location because existing location is more recent than requested
one
6
Locate material unit on a physical vehicle is forbidden
401
Operation not allowed. MobileContainer is cancelled. 0.0.49.0
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
58/722
Example
{
…,
"type": "automatic",
"metadata": {
"key": "value"
},
"on": {
"type": "locateOnLocation",
"locationIdentifier": "ID000000",
"storageLocation": “ST000000”,
"level": 3
}
}
Notification(s)
If definitionLevel of material unit is not equal to ‘Fully’, a notification ‘UpdateRequested’ is sent.
{
"ResourceType": "materialUnit",
"NotificationType": "UpdateRequested",
"Sender": "Artemis.Material",
"Scope": null,
"Data": {
"context": {
"key": "value"
},
"id": {
"lmiContext": "LIE",
"lmiNumber": "000000"
},
"definitionLevel": "partially",
"owner": "owner",
"on": null,
"propertyName": "Location.Identifier",
"grossWeight": 220,
"netWeight": 22,
"oldValue": null,
"newValue": "ID000000",
"otmPackageItemId": null,
"blockingCodes": [
"block1",
"block2"
]
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
59/722
{
"notificationType": "Unloaded"
"resourceType": "materialUnit",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-03-02T10:03:47.6621799+00:00",
"requestedBy": "owner"
},
"Id": {
"lmiContext": "context1",
"lmiNumber": "number1",
},
"unloadingDatetime": "2020-05-05T09:25:46.711Z",
"targetLocation": "site",
"mobileContainerIdentifier": "FB545GG",
"mobileContainerName": "wagonName1", 0.0.54.0
"transportIdentifier": "ID000000", 0.0.54.0
"transportType": "Shipment | Intrasite", 0.0.58.0
"siteIdentifier":"LIE",
"owner": "TMS" 0.0.54.0
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
60/722
{
"notificationType": "LocationChanged"
"resourceType": "materialUnit",
"scope": "",
"sender": "Artemis.Material",
"data": {
"id": {
"lmiContext": "LIE",
"lmiNumber": "000000"
},
"context": {
"key": "value"
},
"grossWeight": 220,
"definitionLevel": "fully",
"owner": "owner",
"status": "Blocked", 0.0.58.0
"on": {
"type": "locateOnLocation",
"label": "ID000000",
"locationIdentifier": "ID000000",
"accessibleBays": [],
"parents": [],
"mesLocation": null, 0.0.61.0
"storageLocation": "ST000000",
"level": 3
},
"netWeight": 22,
"previousData": {
"on": null
},
"type": "automatic",
"metadata": {
"key": "value"
}
}
}
Anomaly
See UnexpectedMuLoaded (AnomalyFixed)
See MuLoadedOnWrongPosition (AnomalyFixed)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
61/722
Change location hook
0.0.44.0
HTTP Request
POST /material-api/v1/materialunits/locationCheck
Request Body
{
…,
lmiContext (string),
lmiNumber (string),
type (string) = [‘Manual’, ‘Automatic’],
metadata (json, optional),
on {
type (string) = [‘locateOnLocation’],
locationIdentifier (string),
storageLocation (string),
level (int)
}
}
Example
{
…,
"lmiContext": "LIE",
"lmiNumber": "ID000000",
"type": "automatic",
"metadata": {
"key": "value"
},
"on": {
"type": "locateOnLocation",
"locationIdentifier": "ID000000",
"storageLocation": “ST000000”,
"level": 3
}
}
Responses
Response 200 (Ok)
{
accepted (bool),
reasonCode (string),
reasonLabel (string}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
62/722
Example
{
"accepted": true
"reasonCode": null,
"reasonLabel": null
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
63/722
Remove location
0.0.44.0
Allow client to remove a location from material
HTTP Request
DELETE /material-api/v1/materialunits/context={context}&number={number}/location
Request Body
{
…,
type (string),
metadata (json, optional),
}
Responses
Response 200 (Ok)
Response 403 (Forbidden)
5
Hook returned an error
{
“reasonCode”: “…”,
“reasonLabel”: “…”
}
2
requestedAt must be newer or equals to the previous definition (DefinitionDate of
Material unit)
8
Cannot change location because existing location is more recent than requested
one
7
Remove PhysicalVehicle Location forbidden 1.84 unload material is now allowed
Response 404 (NotFound)
Example
{
…,
"type": “automatic”
"metadata": { “key”: “value” },
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
64/722
Notification(s)
{
"notificationType": "LocationChanged"
"resourceType": "materialUnit",
"scope": "",
"sender": "Artemis.Material",
"data": {
"id": {
"lmiContext": "LIE",
"lmiNumber": "000000"
},
"context": {
"key": "value"
},
"grossWeight": 220,
"definitionLevel": "fully",
"owner": "owner",
"status": "Blocked", 0.0.58.0
"on": {
"type": "locateOnLocation",
"label": "ID000000",
"locationIdentifier": "ID000000",
"accessibleBays": [],
"parents": [],
"mesLocation": null, 0.0.61.0
"storageLocation": "ST000000",
"level": 3
},
"netWeight": 22,
"previousData": {
"on": null
},
"type": "automatic",
"metadata": {
"key": "value"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
65/722
AddBlocking
0.0.44.0
Sometimes, a material unit must be blocked by the system. The blocking added to the material unit
will be used in other process to avoid sending material unit. Examples :
HTTP Request
POST /material-api/v1/materialunits/context={context}&number={number}/blockings
Request Body
{
…,
blockingCode (string),
remark (string)
}
Responses
Response 201 (Created)
Response 403 (Forbidden)
Duplicated blocking code
Response 404 (NotFound)
Material not found
Example
{
…,
"blockingCodes": ["Z05 - Rouille", "…"],
"remark": “remark…”
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
66/722
Notification(s)
{
"notificationType": "BlockingAdded"
"resourceType": "materialUnit",
"scope": "",
"sender": "Artemis.Material",
"data": {
"id": {
"lmiContext": "LIE",
"lmiNumber": "000000"
},
"context": {
"key": "value"
},
"grossWeight": 220,
"definitionLevel": "partially",
"owner": "owner",
"status": "Blocked", 0.0.58.0
"on": null,
"netWeight": 22,
"blockingCode": "Z05 - Rouille",
"remark": "remark..."
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
67/722
Update Intrasite materials properties
0.0.44.0
This method is used to populate or update intrasite properties of a one or several material units in
one transaction.
This business command could be used by:
A local MES : in that case, it is MU per MU that the update/definition is done
An algorithm of intrasite that computes one or several intrasite properties for all MUs within
a yard.
This is a mass (for a lot of MUs, up to several thousand) update/definition of one or several intrasite
properties
HTTP Request
PATCH /intrasite-api/v1/materials
Request Body
[
{
…,
lmiContext (string),
lmiNumber (string),
intrasiteMaterialUnitPlanning [
{
value (json),
path (string),
op (string)
}
]
}
]
• LmiContext (text, mandatory)
It is the Lmi Context that combined with LmiNumber identify the MU to update
• LmiNumber (text, mandatory)
It is the Lmi Number that combined with LmiContext identify the MU to update
o
Ready (bool, optional) Renamed in 0.0.33.0
It defines if the MU is ready to be transported in intrasite.
If AvailableForInternalTransport is true, then, the MU may be transported internally.
If AvailableForInternalTransport is false or not defined (null), then, the MU may not be
transported internally
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
68/722
IntrasiteMaterialUnitPlanning properties
o
NextWarehouseLocationIdentifier (text, optional)
It defines the yard (WarehouseLocation) where the MU should be transported internally.
When defined, it should point to an existing WarehouseLocation having the same Identifier.
Normaly, it is a yard that is pointed by NextWarehouseLocation but it could be a higher level like
a warehouse or also a lower level like an area.
If not defined (null), then, no next location is defined.
When NextWarehouseLocation is defined, then, IntrasiteTransferReason should also be defined.
When NextWarehouseLocation is not defined, then, IntrasiteTransferReason is forced to empty.
o
Priority (long, optional) Renamed in 0.0.33.0
It defines the priority of the MU for the intrasite.
According the process who updates the priority, it could be:
The priority of the MU relatively to all MUs to transfer to the same next warehouse
location
The priority of the MU relatively to all MUs that are in the same location that this one is
currenly.
If not defined (null), then, no priority is defined.
Priority should be a positive number (from 0 to infinite).
The lower the priority is, the higher it is (a MU with priority 0 is selected before a MU with
priority 999).
o
TransferReason (enum, optional) Renamed in 0.0.33.0
It defines the reason for which the intrasite transfer of the MU has to be done. Following reasons
are defined (the same as
WarehouseLocation.DestinationPriorityRanges.IntrasiteTransferReason):
Production: this means that the MU has to be moved to feed a production line and so, the
MU should be transfered to an input production line yard
Shipment: this means that the MU has to be moved because it is foreseen on a shipment
transport and so, the MU should be transfered to a shipment yard in accordance to the
transport mode.
Destorage: this means that the MU has to be moved to a destorage yard to moke place in
the yard where it is now.
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
69/722
Responses
Response 204 (NoContent)
Response 400 (BadRequest)
2
requestedAt must be newer or equals to the previous definition (DefinitionDate of
Material unit)
9
Only replace operation is supported
Response 403 (Forbidden)
One or more warehouse(s) does not exists
Response 404 (NotFound)
Example
Do not forget to add ‘/’ at the begin of the “path”.
[
{
…,
"lmiContext": "string",
"lmiNumber": "string",
"intrasiteMaterialUnitPlanning": [
{
"value": 10,
"path": "/priority",
"op": "replace"
}
]
}
]
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
70/722
Get materials per intrasite properties
0.0.44.0
Allow client to retrieve a(some) material unit(s) with intrasite information by a custom filter
HTTP Request
POST /intrasite-api/v1/materialunits/searches
Request Body
{
"query": {
…
},
"select": [
{
…
],
"paging": {
"pageSize": 0,
"pageNumber": 0
},
"orderBy": {
…
}
}
Examples
Get all MaterialUnit(s) with ‘Priority’ equal to 99:
{
"query": {
"nodeType": "binary",
"operator": "equal",
"left": {
"nodeType": "property",
"name": "priority",
"left": {
"nodeType": "property",
"name": "IntrasiteMaterialUnitPlanning"
}
},
"right": {
"nodeType": "constant",
"value": "99"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
71/722
Get all MaterialUnit(s) with ‘Priority’ equal to 99 and ‘nextWarehouseLocationIdentifier’ equal to
‘WL-B’:
{
"query": {
"nodeType": "binary",
"operator": "and",
"left": {
"nodeType": "binary",
"operator": "equal",
"left": {
"nodeType": "property",
"name": "priority",
"left": {
"nodeType": "property",
"name": "IntrasiteMaterialUnitPlanning"
}
},
"right": {
"nodeType": "constant",
"value": "99"
}
},
"right": {
"nodeType": "binary",
"operator": "equal",
"left": {
"nodeType": "property",
"name": "nextWarehouseLocationIdentifier",
"left": {
"nodeType": "property",
"name": "IntrasiteMaterialUnitPlanning"
}
},
"right": {
"nodeType": "constant",
"value": "WL-B"
}
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
72/722
Get all MaterialUnit(s) and show only ‘lmiNumber’ and ‘Priority’ properties
{
"select": [
{
"fieldName": "lmiNumber",
"node": {
"nodeType": "property",
"name": "lmiNumber"
}
},
{
"fieldName": "priority",
"node": {
"nodeType": "property",
"name": "priority",
"left": {
"nodeType": "property",
"name": "IntrasiteMaterialUnitPlanning"
}
}
}
]
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
73/722
Responses
Response 200 (Ok)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
74/722
{
totalPages (int),
hasPreviousPage (bool),
hasNextPage (bool),
pageIndex (int),
pageSize (int),
totalCount (int),
items [
{
lmiContext (string),
lmiNumber (string),
productType (string),
definitionLevel (string) = [‘Not’, ‘Partially’, ‘Fully’],
netWeight (int),
grossWeight (int),
length (int),
width (int),
thickness (int),
productType (string),
mesOwner (string, optional),
specificDimensions (json, optional),
packingCode (string, optional),
packingNumber (string, optional),
labelBarcode (string, optional),
foreignId (string, optional),
productionStatus (string),
readyForShipment (bool),
inTransit (bool),
isSupply (bool),
axis (string, optional),
unstackingCost (int, optional),
nextProductionLine (string, optional),
nextProductionForeseenDate (datetime, optional),
scheduledNextProduction (datetime, optional),
blockingCodes ([
(string), …
], optional),
metadata (json, optional),
boostStatus (string, optional),
boostDateTime (datetime),
orderNumber (string),
scaleUpMaterialUnitIdentifier (string),
orderItemId (string),
scheduledAgreementId (string),
shipmentInstructionId (string),
intrasitePlanningState (string),
parentMaterialId (string),
creationDate (datetime),
lastModificationDate (datetime),
definitionDate (datetime),
mesLocation (string), 0.0.61.0
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
75/722
locatedOn {
type (string) = ‘LocateOnLocation’,
label (string),
storageLocation (string),
mesLocation (string), 0.0.61.0
level (int),
locationIdentifier (string),
accessibleBays {
},
parents ([
label (string),
identifier (string),
state (string) = [‘Open’, ‘Closed’],
]),
or
type (string) = ‘LocationOnPhysicalVehicle’
identifier (string)
},
locationMetadata (json, optional),
locationChangedBy (string, optional),
locationChangedAt (datetime, optional),
locationChangedType (string, optional),
markedForDeletion (bool),
availableOnLocation (bool),
availableOnBay (bool),
status (string, optional), 0.0.58.0
netWeight (int, optional),
grossWeight (int, optional),
length (double, optional),
width (double, optional),
thickness (double, optional),
productType (string, optional),
intrasiteMaterialUnitPlanning ({
ready (bool, optional),
nextWarehouseLocationIdentifier (string, optional),
priority (long, optional),
transferReason (string) = [‘Production’, ‘Shipment’, ‘Destorage’],
lmiContext (string),
lmiNumber (string),
creationDate (datetime),
lastModificationDate (datetime),
nextWarehouseLocation ({
type (string) = ‘LocateOnLocation’,
label (string),
storageLocation (string),
mesLocation (string), 0.0.61.0
level (int),
locationIdentifier (string),
accessibleBays {
},
parents ([
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
76/722
label (string),
identifier (string),
state (string) = [‘Open’, ‘Closed’],
], optional),
}, optional)
},
…
]
}
Example
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
77/722
{
"totalPages": 1,
"items": [
{
"mesOwner": "owner",
"specificDimensions": {
"x": 5,
"y": 10
},
"packingCode": "packingCode",
"packingNumber": "packingNumber",
"labelBarcode": "labelBarCode",
"foreignId": "foreignId",
"productionStatus": "WIP",
"readyForShipment": true,
"blockedForShipment": false,
"inTransit": true,
"isSupply": true,
"axis": "axis",
"unstackingCost": null,
"nextProductionLine": "nextProductionLine",
"nextProductionForeseenDate": null,
"scheduledNextProduction": "2020-10-20T14:49:24.1095346+02:00",
"blockingCodes": [
"block1",
"block2"
],
"metadata": {
"date": "2020-10-20T14:49:24.1095346+02:00",
"prop1": "value1",
"prop2": 5.35
},
"boostStatus": null,
"boostDateTime": null,
"orderNumber": "orderNumber",
"scaleUpMaterialUnitIdentifier": "scaleUpMaterialUnitIdentifier",
"orderItemId": "orderItemId",
"scheduledAgreementId": "scheduledAgreementId",
"shipmentInstructionId": "shipmentInstructionId",
"intrasitePlanningState": null,
"parentMaterialId": null,
"lmiContext": "LIE",
"lmiNumber": "000000",
"creationDate": "2020-10-20T14:49:33.2505325+02:00",
"lastModificationDate": "2020-10-20T14:49:33.2505325+02:00",
"definitionDate": "2020-10-20T14:49:24.1095346+02:00",
"definitionLevel": "Partially",
"locatedOn": null,
"locationMetadata": {},
"locationChangedBy": null,
"locationChangedAt": null,
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
78/722
"locationChangeType": null,
"markedForDeletion": false,
"availableOnLocation": false,
"availableOnBay": false,
"transports": [],
"status": "Blocked",
"netWeight": 22,
"grossWeight": 220,
"length": 5.0,
"width": 10.0,
"thickness": 100.0,
"productType": "Slab",
"intrasiteMaterialUnitPlanning": {
"ready": null,
"nextWarehouseLocationIdentifier": null,
"priority": 2,
"transferReason": null,
"lmiContext": "LIE",
"lmiNumber": "000000",
"creationDate": "2020-10-20T14:49:33.2515338+02:00",
"lastModificationDate": "2020-10-20T14:49:33.7035359+02:00",
"nextWarehouseLocation": null
}
}
],
"hasPreviousPage": false,
"hasNextPage": false,
"pageIndex": 0,
"pageSize": 20,
"totalCount": 1
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
79/722
Get bays by context and number
0.0.58.0
Retrieve a list of bays from which a material can be reached. Bays can be coth in the “Open” or
“Closed” state
HTTP Request
GET /material-api/v1/materialunits/context={context}&number={number}/bays
Request Parameters
context (string)
number (string)
lmi context
lmi number
Responses
Response 200 (Ok)
[{
identifier (string),
label (string),
state (string) = [‘Open’, ‘Closed’]
}]
Response 404 (NotFound)
Example
[{
"identifier": "ID000000",
"label": "label0",
"state": "Open"
}, {
"identifier": " ID000001",
"label": "label1",
"state": "Closed"
}]
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
80/722
Delete
0.0.44.0
Allow client to delete a material unit. This method is triggered by a MES message.
This behaviour is applied if DeletionCheck hook accepts the request
Artemis.Core only deletes not located material unit (or located on a location accepting the
deletion). If on a location, the system will store the deletion request and will delete the
entity when the local system will un-locate the material unit. The delete notification will
be sent even if the material unit is not really deleted at this time.
HTTP Request
DELETE /material-api/v1/materialunits/context={context}&number={number}
Request Parameters
context (string)
number (string)
lmi context
lmi number
Request Body
{
…,
reason (string)
}
Responses
Response 200 (Ok)
Response 403 (Forbidden)
5
Hook returned an error
{
“reasonCode”: “…”,
“reasonLabel”: “…”
}
Response 404 (NotFound)
Example
{
…,
“reason” : “…”
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
81/722
Notification
Example 1
{
"notificationType": "Delete"
"resourceType": "materialUnit",
"scope": "",
"sender": "Artemis.Material",
"data":
{
"id": {
"lmiContext": "LIE",
"lmiNumber": "000000"
},
"context": {
"key": "value"
},
"metadata": { 0.0.57.0
"key": "value"
},
"reason": "SentToClient", 0.0.61.0
"grossWeight": 220,
"definitionLevel": "partially",
"owner": "owner",
"on": null,
"netWeight": 22,
"otmPackageItemId": null,
"blockingCodes": [
"block1",
"block2" ]
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
82/722
Delete hook
0.0.44.0
HTTP Request
POST /material-api/v1/materialunits/deleteCheck
Request Body
{
…,
reason (string) ,
lmiContext (string) ,
lmiNumber (string)
}
Example
{
…,
"reason": "sentToClient",
"lmiContext": "LIE",
"lmiNumber": "ID000000"
}
Deletion reason
When requesting a material unit deletion, a client must provide one of these reasons. Artemis.Core
can refuse the deletion.
Reason management:
Reason
Unknown or empty
SentToClient
UnknownMaterial
Definition
No reason has been provided
The material unit has been sent to a client
The material unit does not exist in MES
Consumed
The material unit has been consumed by a
production line
EquipementDeleted The material unit was on an equipment
which has been deleted
EquipementLeaving The material unit was on an equipment
which leaving the site
Archived
The material unit has been archived by
MES
Scrapped
The material unit has been scrapped in the
0.0.78.0
warehouse
Version 1.84.0
Artemis.Core Business API Documentation
Business
Refuse deletion
Accept
Accept if requester is the
owner of material unit
Accept
Accept
Accept
Accept
Accept
Marechal Frédéric
83/722
Responses
Response 200 (Ok)
Response 403 (Forbidden)
5
Hook returned an error
{
“reasonCode”: “…”,
“reasonLabel”: “…”
}
Response 404 (NotFound)
Responses
Response 200 (Ok)
{
accepted (bool),
reasonCode (string),
reasonLabel (string}
}
Example
{
"accepted": true
"reasonCode": null,
"reasonLabel": null
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
84/722
4.2. Location
A location is a place where a material unit is store. Depending on the local system, the location could
be a large or a more specific physical location.
Artemis.Core manages 3 levels:
Site
Warehouse 1
Yard 1
Warehouse 2
Yard 2
Yard 3
Specific can create as many level as needed. A material unit can be localized on a location at any level
and it’s possible to retrieve all materials localised at one level or in its hierarchy.
If needed, specific can also add a level between predefined levels.
Create
0.0.44.0
Allow client to create a location. This method is triggered by the local system to describe the local
structure of the site
HTTP Request
POST /location-api/v1/locations
Request Body
{
…
location : {
identifier (string),
parentIdentifier (string, optional),
type (string),
label (string),
metadata (json, optional),
state (string, optional) = [‘Open’, ‘Closed’],
acceptMaterialUnitDeletion (bool),
headOfficeAddress (string, optional),
locationCategoryIdentifier (string, optional),
capacity (int, optional),
upperThreshold (int, optional),
lowerThreshold (int, optional),
destinationPriorityConfiguration {
productionRanges ([(int), ….], optional),
shipmentRanges ([(int), ….], optional),
destorageRanges ([(int), ….], optional)
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
85/722
Responses
Response 201 (Created)
Response 409 (Conflict)
Location with identifier '{0}' and locationType '{1}' already exists
Example
{
…,
"location": {
"parentIdentifier": "58b4b3b6-6bb8-4b58-ade8-fa3853a257aa",
"type": "site",
"label": "ID000000",
"metadata": {
"Prop1": "2020-10-15T23:31:24.743624+02:00",
"Prop2": "Me Against the world",
"Prop3": 2018
},
"state": "Open",
"acceptMaterialUnitDeletion": false,
"identifier": "ID000000"
}
}
Notification(s)
{
"notificationType": "Create"
"resourceType": "location",
"scope": "LIE",
"sender": "Artemis.Material",
"data": {
"id": "ID000000",
"context": {
"key": "value"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
86/722
Update
0.0.44.0
Allow client to update location information. This method is triggered by the local system to describe
the local structure of the site
HTTP Request
PUT /location-api/v1/locations/{identifier}
Request Parameters
identifier (string)
Request Body
{
…
location : {
parentIdentifier (string, optional),
type (string),
label (string),
metadata (json, optional),
state (string, optional) = [‘Open’, ‘Closed’],
acceptMaterialUnitDeletion (bool),
headOfficeAddress (string, optional),
locationCategoryIdentifier (string, optional),
capacity (int, optional),
upperThreshold (int, optional),
lowerThreshold (int, optional),
destinationPriorityConfiguration {
productionRanges ([(int), ….], optional),
shipmentRanges ([(int), ….], optional),
destorageRanges ([(int), ….], optional)
}
}
}
Responses
Response 200 (Ok)
Response 201 (Created)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
87/722
Example
{
…,
"location": {
"parentIdentifier": "58b4b3b6-6bb8-4b58-ade8-fa3853a257aa",
"type": "site",
"label": "ID000000",
"metadata": {
"Prop1": "2020-10-15T23:31:24.743624+02:00",
"Prop2": "Me Against the world",
"Prop3": 2018
},
"state": "Open",
"acceptMaterialUnitDeletion": false
}
}
Notification(s)
{
"notificationType": "Update"
"resourceType": "location",
"scope": "",
"sender": "Artemis.Material",
"data": {
"id": "ID000000",
"context": {
"key": "value"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
88/722
Partial Update
0.0.44.0
Allow client to partially update location information. This method is triggered by the local system to
describe the local structure of the site
HTTP Request
PATCH /location-api/v1/locations/{identifier}
Request Parameters
identifier (string)
Request Body
{
…
location: [
{
value (json),
path (string),
op (string)
},
…
]
}
Responses
Response 204 (No Content)
Response 404 (NotFound)
Example
{
…
"location": [
{
"value": “Closed”,
"path": "state",
"op": "replace",
},
…
]
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
89/722
Notification(s)
{
"notificationType": "PartialUpdate"
"resourceType": "location",
"scope": "",
"sender": "Artemis.Material",
"data": {
"id": "ID000000",
"context": {
"Date": "2020-10-15T23:45:51.4590818+02:00"
}
}
}
}
Change location state
When a client needs to update the location state (open or closed), it has to call the partial update
method of the location. To do that, it needs to call the PATCH method of the location.
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
90/722
Get by identifier
0.0.44.0
Retrieve a material by identifier
HTTP Request
GET /location-api/v1/locations/{identifier}
Request Parameters
identifier (string)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
91/722
Responses
Response 200 (Ok)
{
parentIdentifier (string, optional),
type (string),
label (string),
creationDate (datetime), 0.0.65.0
lastModificationDate (datetime), 0.0.65.0
metadata (json, optional),
state (string, optional) = [‘Open’, ‘Closed’],
acceptMaterialUnitDeletion (bool),
headOfficeAddress (string, optional),
locationCategoryIdentifier (string, optional),
capacity (int, optional),
upperThreshold (int, optional),
lowerThreshold (int, optional),
destinationPriorityConfiguration {
productionRanges ([(int), ….], optional),
shipmentRanges ([(int), ….], optional),
destorageRanges ([(int), ….], optional)
},
hierarchyPath (string, optional),
parents ([(string), ….]),
children {
… (other locations)
},
accessibleBays [{
identifier (string),
label (string),
metadata (json, optional),
associatedLocations ([(string), ….]),
associatedPrinter (string),
state (string) = [‘Open’, ‘Closed’],
stateMetadata (json, optional),
maxNumberOfEquipments (int),
bayTransportModes [
{
transportMode (string) = [‘Truck’, ‘Wagon’, ‘Vessel’],
capacity (int),
state (string) = [‘Open’, ‘Closed’],
stateMetadata (json, optional)
}, …]
}]
}
Response 404 (NotFound)
Example
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
92/722
{
"type": "site",
"label": "ID000000",
"creationDate": "2020-10-15T11:14:56.7566605+00:00",
"lastModificationDate": "2020-10-15T11:14:56.7566605+00:00",
"definitionDate": "2020-10-14T15:21:39.2313086+02:00",
"metadata": {
"Prop1": "2020-10-15T23:31:24.743624+02:00",
"Prop2": "Me Against the world",
"Prop3": 2018
},
"state": "Open",
"stateMetadata": {},
"acceptMaterialUnitDeletion": false,
"headOfficeAddress": null,
"identifier": "ID000000",
"hierarchyPath": "/1/1/",
"parents": [],
"children": [
{
"type": "site",
"label": "ID000001",
"metadata": {
"Prop1": "2020-10-15T23:31:24.743624+02:00",
"Prop2": "Me Against the world",
"Prop3": 2018
},
"state": "Open",
"stateMetadata": {},
"acceptMaterialUnitDeletion": false,
"headOfficeAddress": null,
"identifier": "ID000001",
"hierarchyPath": "/1/1/1/",
"parents": [
{
"identifier": "ID000000",
"type": "site",
"label": "ID000000",
"bays": []
}
],
"children": null,
"parentIdentifier": "ID000000",
"accessibleBays": [],
"locationCategoryIdentifier": null,
"capacity": null,
"upperThreshold": null,
"lowerThreshold": null,
"destinationPriorityConfiguration": {
"productionRanges": [],
"shipmentRanges": [],
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
93/722
"destorageRanges": []
}
}
],
"parentIdentifier": null,
"accessibleBays": [],
"locationCategoryIdentifier": null,
"capacity": null,
"upperThreshold": null,
"lowerThreshold": null,
"destinationPriorityConfiguration": {
"productionRanges": [],
"shipmentRanges": [],
"destorageRanges": []
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
94/722
Get by custom filter
0.0.44.0
Allow client to retrieve a(some) location(s) information by a custom filter
HTTP Request
POST /location-api/v1/locations/searches
Request Body
{
"query": {
…
},
"select": [
{
…
],
"paging": {
"pageSize": 0,
"pageNumber": 0
},
"orderBy": {
…
},
"includes": [ {
…
}]
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
95/722
Example
{
"query": {
"nodeType": "call",
"methodName": "In",
"arguments": [
{
"nodeType": "constant",
"value": [
{
"identifier": "ID000000",
},
{
"identifier": "ID000001",
}
]
}
]
},
"select": null,
"paging": null,
"orderBy": null,
}
Responses
Response 200 (Ok)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
96/722
{
totalPages (int),
hasPreviousPage (bool),
hasNextPage (bool),
pageIndex (int),
pageSize (int),
totalCount (int),
items [
{
lmiContext (string),
lmiNumber (string),
productType (string),
definitionLevel (string) = [‘Not’, ‘Partially’, ‘Fully’],
netWeight (int),
grossWeight (int),
length (int),
width (int),
thickness (int),
productType (string),
mesOwner (string, optional),
specificDimensions (json, optional),
packingCode (string, optional),
packingNumber (string, optional),
labelBarcode (string, optional),
foreignId (string, optional),
productionStatus (string),
readyForShipment (bool),
inTransit (bool),
isSupply (bool),
axis (string, optional),
unstackingCost (int, optional),
nextProductionLine (string, optional),
nextProductionForeseenDate (datetime, optional),
scheduledNextProduction (datetime, optional),
blockingCodes ([
(string), …
], optional),
metadata (json, optional),
boostStatus (string, optional),
boostDateTime (datetime),
orderNumber (string),
scaleUpMaterialUnitIdentifier (string),
orderItemId (string),
scheduledAgreementId (string),
shipmentInstructionId (string),
intrasitePlanningState (string),
parentMaterialId (string),
creationDate (datetime),
lastModificationDate (datetime),
definitionDate (datetime),
mesLocation (string), 0.0.61.0
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
97/722
locatedOn {
type (string) = ‘LocateOnLocation’,
label (string),
storageLocation (string),
mesLocation (string), 0.0.61.0
level (int),
locationIdentifier (string),
accessibleBays {
},
parents ([
label (string),
identifier (string),
state (string) = [‘Open’, ‘Closed’],
]),
or
type (string) = ‘LocationOnPhysicalVehicle’
identifier (string)
},
locationMetadata (json, optional),
locationChangedBy (string, optional),
locationChangedAt (datetime, optional),
locationChangedType (string, optional),
markedForDeletion (bool),
availableOnLocation (bool),
availableOnBay (bool),
status (string, optional),
netWeight (int, optional),
grossWeight (int, optional),
length (double, optional),
width (double, optional),
thickness (double, optional),
productType (string, optional)
},
…
]
}
Example
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
98/722
{
"totalPages": 1,
"items": [
{
"type": "site",
"label": "ID000000",
"metadata": {
"Prop1": "2020-10-15T23:31:24.743624+02:00",
"Prop2": "Me Against the world",
"Prop3": 2018
},
"state": "Open",
"stateMetadata": {},
"acceptMaterialUnitDeletion": false,
"headOfficeAddress": null,
"identifier": "ID000000",
"hierarchyPath": "/1/1/",
"parents": [],
"children": null,
"parentIdentifier": null,
"accessibleBays": [],
"locationCategoryIdentifier": null,
"capacity": null,
"upperThreshold": null,
"lowerThreshold": null,
"destinationPriorityConfiguration": {
"productionRanges": [],
"shipmentRanges": [],
"destorageRanges": []
}
},
{
"type": "site",
"label": "ID000001",
"metadata": {
"Prop1": "2020-10-15T23:31:24.743624+02:00",
"Prop2": "Me Against the world",
"Prop3": 2018
},
"state": "Open",
"stateMetadata": {},
"acceptMaterialUnitDeletion": false,
"headOfficeAddress": null,
"identifier": "ID000001",
"hierarchyPath": "/1/1/1/",
"parents": [
{
"identifier": "ID000000",
"type": "site",
"label": "ID000000",
"bays": []
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
99/722
}
],
"children": null,
"parentIdentifier": "ID000000",
"accessibleBays": [],
"locationCategoryIdentifier": null,
"capacity": null,
"upperThreshold": null,
"lowerThreshold": null,
"destinationPriorityConfiguration": {
"productionRanges": [],
"shipmentRanges": [],
"destorageRanges": []
}
}
],
"hasPreviousPage": false,
"hasNextPage": false,
"pageIndex": 0,
"pageSize": 20,
"totalCount": 2
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
100/722
{
"query": {
"nodeType": "call",
"methodName": "In",
"arguments": [
{
"nodeType": "constant",
"value": [
{
"lmiNumber": "ID000000",
"lmiContext": "LIE"
},
{
"lmiNumber": "ID000001",
}
]
}
]
},
"select": null,
"paging": null,
"orderBy": null,
"includes": [
{
"nodeType": "property",
"name": "location"
}
]
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
101/722
Get all WarehouseLocation(s) of specific type (ex: ‘’warehouse”).
{
"query": {
"Operator": "equal",
"Left": {
"Name": "Type",
"nodeType": "property"
},
"Right": {
"Value": "warehouse",
"nodeType": "constant"
},
"nodeType": "binary"
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
102/722
Get priorities per warehouse per destination
0.0.44.0
This method is used to retrieve all computed properties of a WarehouseLocation per priorities for a
destination and a transfer reason.
HTTP Request
GET /location-api/v1/locations/{identifier}/statistic/priority
Request Parameters
identifier (string)
Responses
Response 200 (Ok)
{
total (long),
destination [ {
identifier (string),
label (string),
transferSets [ {
reason (string) = [‘Production’, ‘Shipment’, ‘Destorage’],
priorities [ {
rangeNumber (long, optional),
numberOfMaterials (long),
tonnage (long)
}, … ]
}, …],
}, … ]
}
Response 404 (NotFound)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
103/722
Example
{
"total": 3,
"destinations": [
{
"identifier": "ID_DEST01",
"label": "ID_DEST01",
"transferSets": [
{
"reason": "Production",
"priorities": [
{
"rangeNumber": 5,
"numberOfMaterials": 3,
"tonnage": 660
}
]
}
]
}
]
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
104/722
Get occupancies
0.0.44.0
This method is used to retrieve the occupancy of many warehouse locations, filtering by their
identifiers.
HTTP Request
POST /location-api/v1/locations/statistic/occupancies
Request Parameters
Identifier (string[])
Request Body
[
(string),
…
]
Example
[
“ID000000”
]
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
105/722
Responses
Response 200 (Ok)
[{
identifier (string),
occupancy (int),
occupancyInGrossTons (long),
occupancyInNetTons (long),
availableForInternalTransport (int),
availableForInternalTransportInGrossTons (long),
scheduledOnProductionLine (int),
scheduledOnProductionLineInGrossTons (long),
blocked (int),
blockedInGrossTons (long),
unavailable (int),
unavailableInGrossTons (long),
leafLocations (int),
emptyLeafLocations (int),
fullLeafLocations (int),
partiallyFilledLeafLocations (int),
upperThresholdInGrossTons (long),
lowerThresholdInGrossTons (long),
capacity (long)
}]
Example
[
{
"identifier": "ID000001",
"occupancy": 4,
"occupancyInGrossTons": 880,
"occupancyInNetTons": 88,
"availableForInternalTransport": 1,
"availableForInternalTransportInGrossTons": 220,
"scheduledOnProductionLine": 1,
"scheduledOnProductionLineInGrossTons": 220,
"blocked": 4,
"blockedInGrossTons": 880,
"unavailable": 4,
"unavailableInGrossTons": 880,
"leafLocations": 4,
"emptyLeafLocations": 1,
"fullLeafLocations": 1,
"partiallyFilledLeafLocations": 2,
"upperThresholdInGrossTons": 440,
"lowerThresholdInGrossTons": 220,
"capacity": 4
}
]
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
106/722
Request inventory
0.0.44.0
Local system can request an inventory to MES. MES replies with every material unit known location.
HTTP Request
PUT /location-api/v1/locations/inventoryrequest
Request Body
{
…,
locationIdentifier (string)
}
Responses
Response 200 (Ok)
Response 404 (NotFound)
Example
{
…,
"locationIdentifier": "ID000000"
}
Notification(s)
{
"notificationType": "InventoryRequested"
"resourceType": "location",
"scope": "",
"sender": "Artemis.Material",
"data": {
"context": {
"key": "value"
},
"locationIdentifier": "ID000000"
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
107/722
Inventory
0.0.44.0
MES replies to an inventory request with every material unit known location.
HTTP Request
POST /location-api/v1/locations/inventory
Request Body
{
…,
items {
lmiContext (string),
lmiNumber (string),
locationIdentifier (string),
mesLocation (string)
},
locationIdentifier (string)
}
Responses
Response 200 (Ok)
Response 404 (NotFound)
Example
{
…,
"locationIdentifier": "ID000000",
"items": [
{
"lmiContext": "Lm1",
"lmiNumber": "LmiNumber1",
"locationIdentifier": "Location1",
"mesLocation": "MesLocation1"
},
{
"lmiContext": "Lm2",
"lmiNumber": "LmiNumber2",
"locationIdentifier": "Location2",
"mesLocation": "MesLocation2"
}
]
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
108/722
Notification(s)
{
"notificationType": "Inventory"
"resourceType": "location",
"scope": "",
"sender": "Artemis.Material",
"data": {
"context": {
"key": "value"
},
"locationIdentifier": "ID000000",
"inventoryItems": [
{
"LmiContext": "Lm1",
"LmiNumber": "LmiNumber1",
"LocationIdentifier": "Location1",
"MesLocation": "MesLocation1"
},
{
"LmiContext": "Lm2",
"LmiNumber": "LmiNumber2",
"LocationIdentifier": "Location2",
"MesLocation": "MesLocation2"
}
]
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
109/722
Request update by location
0.0.44.0
Local system can request MES to resend all material units located in a location.
HTTP Request
POST /location-api/v1/locations/updateByLocationRequest
Request Body
{
…,
locationIdentifier (string)
}
Responses
Response 200 (Ok)
Response 404 (NotFound)
Example
{
…,
"locationIdentifier": "ID000000"
}
Notification(s)
{
"notificationType": "UpdateByLocationRequested"
"resourceType": "location",
"scope": "",
"sender": "Artemis.Material",
"data": {
"context": {
"key": "value"
},
"locationIdentifier": "ID000000"
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
110/722
Delete
0.0.44.0
Allow client to delete a location. This method is triggered by the local system to describe the local
structure of the site
If a location contains material units, they are delocalized for Artemis.Core but not for MES
(no locationChanged notification raised).
When a location is deleted, all its children are also deleted
When a location is associated to a bay, the bay is not deleted but loose its reference to the
location
HTTP Request
DELETE /location-api/v1/locations/{identifier}
Request Parameters
identifier (string)
Request Body
{
…
}
Responses
Response 200 (Ok)
Response 403 (Forbidden)
Deleting location not allowed if location or child location has material units localized
Response 404 (NotFound)
Example
{
…
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
111/722
Notification
{
"notificationType": "Delete"
"resourceType": "location",
"scope": "",
"sender": "Artemis.Material",
"data": {
"context": {
"key": "value"
},
"id": "ID000000"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
112/722
4.3. Location category
Create
0.0.44.0
Allow client to create a location. This method is triggered by the local system to describe the local
structure of the site
HTTP Request
POST /location-api/v1/location-categories
Request Body
{
…
locationCategory : {
identifier (string),
name (string),
description (string, optional)
}
}
Responses
Response 201 (Created)
Response 409 (Conflict)
Location category with identifier '{0}' already exists
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
113/722
Example
{
…,
"locationCategory": {
"name": "ID000000",
"description": "string",
"identifier": " ID000000"
}
}
Notification(s)
{
"notificationType": "Create"
"resourceType": "locationCategory",
"scope": "",
"sender": "Artemis.Material",
"data": {
"id": "ID000000",
"context": {
"key": "value"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
114/722
Update
0.0.44.0
Allow client to update location category information. This method is triggered by the local system to
describe the local structure of the site
HTTP Request
PUT /location-api/v1/location-categories/{identifier}
Request Parameters
identifier (string)
Request Body
{
…
locationCategory : {
name (string),
description (string, optional)
}
}
Responses
Response 200 (Ok)
Response 201 (Created)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
115/722
Example
{
…,
"locationCategory": {
"name": "ID000000",
"description": "string"
}
}
Notification(s)
{
"notificationType": "Update"
"resourceType": "locationCategory",
"scope": "",
"sender": "Artemis.Material",
"data": {
"id": "ID000000",
"context": {
"key": "value"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
116/722
Partial Update
0.0.44.0
Allow client to partially update location category information. This method is triggered by the local
system to describe the local structure of the site
HTTP Request
PATCH /location-api/v1/location-categories/{identifier}
Request Parameters
identifier (string)
Request Body
{
…
locationCategory: [
{
value (json),
path (string),
op (string)
},
…
]
}
Responses
Response 204 (No Content)
Response 404 (NotFound)
Example
{
…
"locationCategory": [
{
"value": “newDesc”,
"path": "description",
"op": "replace",
},
…
]
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
117/722
Notification(s)
{
"notificationType": "PartialUpdate"
"resourceType": "locationCategory",
"scope": "",
"sender": "Artemis.Material",
"data": {
"id": "ID000000",
"context": {
"Date": "2020-10-15T23:45:51.4590818+02:00"
}
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
118/722
Get by identifier
0.0.44.0
Allow client to retrieve a location category by its reference
HTTP Request
GET /location-api/v1/location-categories/{identifier}
Request Parameters
identifier (string)
Responses
Response 200 (Ok)
{
identifier (string),
name (string),
description (string, optional)
}
Response 404 (NotFound)
Example
{
"identifier": "locationCategorie01",
"name": " locationCategorie01",
"description”: “description”
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
119/722
Get by a custom filter
0.0.44.0
Allow client to retrieve a(some) location category(ies) by a custom filter
HTTP Request
POST /location-api/v1/location-categories/searches
Request Body
{
"query": {
…
},
"select": [
{
…
],
"paging": {
"pageSize": 0,
"pageNumber": 0
},
"orderBy": {
…
},
"includes": [ {
…
}]
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
120/722
Example
{
"query": {
"Operator": "equal",
"Left": {
"Name": "identifier",
"Left": null,
"nodeType": "property"
},
"Right": {
"Value": "ID000000",
"Type": null,
"nodeType": "constant"
},
"nodeType": "binary"
},
"select": null,
"paging": null,
"orderBy": null
}
Responses
Response 200 (Ok)
{
totalPages (int),
hasPreviousPage (bool),
hasNextPage (bool),
pageIndex (int),
pageSize (int),
totalCount (int),
items [
{
identifier (string),
name (string),
description (string, optional)
},
…
]
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
121/722
Example
{
"totalPages": 1,
"items": [
{
"identifier": "ID000000",
"name": "carrier",
"description": null
}
],
"hasPreviousPage": false,
"hasNextPage": false,
"pageIndex": 0,
"pageSize": 20,
"totalCount": 1
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
122/722
Delete
0.0.44.0
Allow client to delete a location category.
HTTP Request
DELETE /location-api/v1/location-categories/{identifier}
Request Parameters
identifier (string)
Request Body
{
…
}
Responses
Response 200 (Ok)
Response 404 (NotFound)
Example
{
…
}
Notification
{
"notificationType": "Delete"
"resourceType": "locationCategory",
"scope": "",
"sender": "Artemis.Material",
"data": {
"context": {
"key": "value"
},
"id": "ID000000"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
123/722
Delete associations
0.0.44.0
Allow client to delete a location category associations with warehouse locations.
HTTP Request
DELETE /location-api/v1/location-categories/{identifier}/warehouse-locations
Request Parameters
identifier (string)
Request Body
{
…
}
Responses
Response 200 (Ok)
Response 404 (NotFound)
Example
{
…
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
124/722
4.4. Scheduling module
Scheduled transfers
Save (add or update)
0.0.45.0
Allow client to create a new ScheduledTransfer
HTTP Request
PUT /intrasite/scheduling-api/v1/scheduled-transfers/{identifier} 0.0.47.0
Request Body
{
…,
shiftIdentifier (string, optional),
scheduledAt {
start (DateTimeOffset),
end (DateTimeOffset)
},
sourceWarehouseLocation (string),
targetWarehouseLocation (string),
tonnage (uint), 0.0.45.0
reason (string),
metadata (string, optional)
}
Responses
Response 200 (Ok)
Response 201 (Created)
Response 400 (BadRequest)
Response 403 (Forbidden)
30006
Any field but context of shift identifier is null or empty
30000
Tonnage is less or equal to zero
30001
SourceWarehouseLocation does not exist
30001
TargetWarehouseLocation does not exist
30009
StartDate after EndDate
Response 409 (Conflict)
30005
One scheduled transfer exists with the same identifier
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
125/722
Example
{
…,
"shiftIdentifier":null,
"scheduledAt": {
"start":"2020-10-20T17:59:58.2067245+02:00",
"end":"2020-10-20T21:59:58.2067245+02:00",
}
"sourceWarehouseLocation":"SourceHall",
"targetWarehouseLocation":"DestHall",
"tonnage":100,
"reason":"Delivery",
"metadata":null
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
126/722
Get by identifier
0.0.44.0
Allow client to retrieve a ScheduledTransfer by its identifier
HTTP Request
GET /intrasite/scheduling-api/v1/scheduled-transfers/{identifier}
Request Parameters
identifier (string)
Responses
Response 200 (Ok)
{
identifier (string),
shiftIdentifier (string, optional),
startDate (datetime),
endDate (datetime),
sourceWarehouseLocation (string),
targetWarehouseLocation (string),
tonnage (bool),
reason (string),
metadata (string, optional)
}
Response 404 (NotFound)
Example
{
"identifier":"ST01",
"shiftIdentifier":null,
"startDate":"2020-10-20T17:59:58.2067245+02:00",
"endDate":"2020-10-20T21:59:58.2067245+02:00",
"sourceWarehouseLocation":"SourceHall",
"targetWarehouseLocation":"DestHall",
"tonnage":100,
"reason":"Delivery",
"metadata":null
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
127/722
Get movement by identifier
0.0.45.0
Allow client to retrieve a movement from a ScheduledTransfer by its identifier
HTTP Request
GET /intrasite/scheduling-api/v1/scheduled-transfers/{identifier}/movements/movementIdentifier
Request Parameters
identifier (string)
movementIdentifier (string)
Responses
Response 200 (Ok)
{
…,
identifier (string),
linkIdentifier (string),
numberOfVehicles (int),
preferedMaterialPoolIdentifier (string), 0.0.48.0
state 0.0.48.0
{
CurrentState (string),
CompletedTonnage (uint, optional depending on state),
CancelReason (string, optional depending on state)
}
scheduledTonnage (uint), 0.0.48.0
start (datetime),
end (datetime),
arrivalStartLoadingDuration (datetime), 0.0.48.0
loadingDuration (datetime), 0.0.48.0
endLoadingDepartureDuration (datetime), 0.0.48.0
inTransitDuration (datetime), 0.0.48.0
arrivalStartUnloadingDuration (datetime), 0.0.48.0
unloadingDuration (datetime), 0.0.48.0
endUnloadingDepartureDuration (datetime), 0.0.48.0
createdBy (string) 0.0.48.0
}
Response 404 (NotFound)
Scheduled transfer does not exist
Movement does not exist
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
128/722
Example
{
…,
"identifier":"MV01",
"linkIdentifier":"Link1",
"numberOfVehicles":"1",
"preferredMaterialPoolIdentifier":"MP01",
"state"
{
"CurrentState":"Completed",
"CompletedTonnage":"1000",
}
"scheduledTonnage":"1000",
"start":"2021-02-04T10:00:00+00:00",
"end":"2021-02-04T12:00:00+00:00",
"arrivalStartLoadingDuration":"2021-01-20T18:06:13.8162005+02:00",
"loadingDuration":"2021-01-20T18:06:13.8162005+02:00",
"endLoadingDepartureDuration":"2021-01-20T18:06:13.8162005+02:00",
"inTransitDuration":"2021-01-20T18:06:13.8162005+02:00",
"arrivalStartUnloadingDuration":"2021-01-20T18:06:13.8162005+02:00",
"unloadingDuration":"2021-01-20T18:06:13.8162005+02:00",
"endUnloadingDepartureDuration":"2021-01-20T18:06:13.8162005+02:00",
"createdBy":"owner"
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
129/722
Get movements by Scheduled Transfer
0.0.45.0
Allow client to retrieve all movement from a ScheduledTransfer
HTTP Request
GET /intrasite/scheduling-api/v1/scheduled-transfers/{identifier}/movements
Request Parameters
identifier (string)
Responses
Response 200 (Ok)
[
{
…,
identifier (string),
linkIdentifier (string),
numberOfVehicles (int),
preferedMaterialPoolIdentifier (string), 0.0.48.0
state 0.0.48.0
{
CurrentState (string),
CompletedTonnage (uint, optional depending on state),
CancelReason (string, optional depending on state)
},
shiftIdentifier (string),
startDate (datetime),
endDate (datetime),
scheduledTonnage (uint), 0.0.48.0
arrivalStartLoadingDuration (datetime), 0.0.48.0
loadingDuration (datetime), 0.0.48.0
endLoadingDepartureDuration (datetime), 0.0.48.0
inTransitDuration (datetime), 0.0.48.0
arrivalStartUnloadingDuration (datetime), 0.0.48.0
unloadingDuration (datetime), 0.0.48.0
endUnloadingDepartureDuration (datetime), 0.0.48.0
createdBy (string) 0.0.48.0
}, …
]
Response 404 (NotFound)
Scheduled transfer does not exist
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
130/722
Example
[
{
…,
"identifier":"MV01",
"linkIdentifier":"Link1",
"numberOfVehicles":"1",
"preferredMaterialPoolIdentifier":"MP01",
"state"
{
"CurrentState":"Completed",
"CompletedTonnage":"1000",
},
"shift": "1",
"start":"2021-02-04T10:00:00+00:00",
"end":"2021-02-04T12:00:00+00:00",
"scheduledTonnage":"1000",
"arrivalStartLoadingDuration":"2021-01-20T18:06:13.8162005+02:00",
"loadingDuration":"2021-01-20T18:06:13.8162005+02:00",
"endLoadingDepartureDuration":"2021-01-20T18:06:13.8162005+02:00",
"inTransitDuration":"2021-01-20T18:06:13.8162005+02:00",
"arrivalStartUnloadingDuration":"2021-01-20T18:06:13.8162005+02:00",
"unloadingDuration":"2021-01-20T18:06:13.8162005+02:00",
"endUnloadingDepartureDuration":"2021-01-20T18:06:13.8162005+02:00",
"createdBy":"owner"
}, …
]
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
131/722
Save movement
0.0.44.0
Updated in 0.0.48.0
Allows to create or modify a movement.
HTTP Request
PUT /intrasite/scheduling-api/v1/scheduled-transfers/{scheduledId}/movements/{identifier}
Request Parameters
scheduledId (string)
identifier (string)
Request Body
{
…
linkIdentifier (string),
preferredMaterialPoolIdentifier (string, optional),
startDate (DateTimeOffset, optional),
endDate (DateTimeOffset, optional),
scheduledTonnage (uint),
arrivalStartLoadingDuration (TimeSpan, optional),
loadingDuration (TimeSpan, optional),
endLoadingDepartureDuration (TimeSpan, optional),
inTransitDuration (TimeSpan, optional),
arrivalStartUnloadingDuration (TimeSpan, optional),
unloadingDuration (TimeSpan, optional),
endUnloadingDepartureDuration (TimeSpan, optional)
}
Responses
Response 200 (Ok)
Response 201 (Created)
Response 400 (BadRequest)
Any required field is missing or it has invalid format
30018
Link does not exist / Link is null
Response 403 (Forbidden)
30020
Preferred material pool does not exist
30025
Preferred material pool is not contained in the link
30000
Scheduled Tonnage is less or equal to zero
Response 404 (NotFound)
ScheduledTranfer with identifier ‘…' does not exist
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
132/722
Example
{
…,
"linkIdentifier": "LK01",
"preferredMaterialPoolIdentifier": "MP01",
"scheduledTonnage": 1000,
"startDate":"2021-02-04T10:00:00+00:00",
"endDate":"2021-02-04T12:00:00+00:00",
"arrivalStartLoadingDuration": "2021-01-20T18:06:13.8162005+02:00",
"loadingDuration": "2021-01-20T18:06:13.8162005+02:00",
"endLoadingDepartureDuration": "2021-01-20T18:06:13.8162005+02:00",
"inTransitDuration": "2021-01-20T18:06:13.8162005+02:00",
"arrivalStartUnloadingDuration": "2021-01-20T18:06:13.8162005+02:00",
"unloadingDuration": "2021-01-20T18:06:13.8162005+02:00",
"endUnloadingDepartureDuration": "2021-01-20T18:06:13.8162005+02:00"
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
133/722
State transition
0.0.48.0
Allows to change the state of a movement.
HTTP Request
POST /intrasite/scheduling-api/v1/scheduledtransfers/{scheduledTransferIdentifier}/movements/{movementIdentifier}/state-transitions
Request Parameters
scheduledTransferIdentifier (string)
movementIdentifier (string)
Request Body
{
…
NextState (string) = [‘Canceled’, ‘Completed’, ‘Confirmed’, ‘Draft’, ‘InProgress’],
CompletedTonnage (uint, optional depending on state),
CancelReason (string, optional depending on state)
}
Responses
Response 200 (Ok)
Response 400 (BadRequest)
The request is invalid
Response 403 (Forbidden)
This action cannot be performed because the movement is in the wrong state.
The tonnage cannot be less than or equal to zero
Response 404 (NotFound)
Scheduled transfer does not exist
Movement does not exist
Example
{
…,
"NextState": "Canceled",
"CancelReason": "reason"
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
134/722
Notification
{
"notificationType": "MovementStateChanged"
"resourceType": "Movement",
"scope": "",
"sender": "",
"data": {
"ScheduledtransferIdentifier": "ST01",
"MovementIdentifier": "MOV01",
"MovementState": "Confirmed",
"originalRequestInfo": {
"requestedAt": "0001-01-01T01:00:00+01:00",
"requestedBy": null
},
"context": null
}
}
Get by custom filter
0.0.46.0
Updated in 0.0.48.0
Allow client to retrieve scheduled transfers with filters.
HTTP Request
POST /intrasite/scheduling-api/v1/scheduled-transfers/searches
Request Body
{
"query": {
…
},
"select": [
{
…
],
"paging": {
"pageSize": 0,
"pageNumber": 0
},
"orderBy": {
…
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
135/722
Example
{
"query":
{
"nodeType": "binary",
"operator": "equal",
"left":
{
"nodeType": "property",
"name": "Tonnage",
},
"right":
{
"nodeType": "constant",
"value": "100"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
136/722
Responses
Response 200 (Ok)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
137/722
{
totalPages (int),
hasPreviousPage (bool),
hasNextPage (bool),
pageIndex (int),
pageSize (int),
totalCount (int),
items [
{
identifier (string),
from {
identifier (string),
label (string)
},
to {
identifier (string),
label (string)
},
scheduledAt {
shiftIdentifier (string),
start (datetime)
end (datetime)
},
scheduledTonnage (uint),
reason (string),
movements [ {
identifier (string),
linkIdentifier (string),
preferedMaterialPoolIdentifier (string),
scheduledTonnage (uint)
state
{
State (string),
CompletedTonnage (uint, optional depending on state),
CancelReason (string, optional depending on state)
},
start (datetime),
end (datetime),
arrivalStartLoadingDuration (datetime),
loadingDuration (datetime),
endLoadingDepartureDuration (datetime),
inTransitDuration (datetime),
arrivalStartUnloadingDuration (datetime),
unloadingDuration (datetime),
endUnloadingDepartureDuration (datetime),
createdBy (string)
}, …],
metadata (string, optional)
},
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
138/722
…
]
}
Example
{
"totalPages": 1,
"hasPreviousPage": false,
"hasNextPage": false,
"pageIndex": 0,
"pageSize": 20,
"totalCount": 2,
"items": [
{
"identifier": "ST02",
"from": {
"identifier": "SourceHall",
"label": "hall1Label"
},
"to": {
"identifier": "DestHall",
"label": "hall1Label"
},
"scheduledAt": {
"shiftIdentifier": "SF01",
"start": "2020-10-27T18:06:13.8162005+02:00",
"end": "2020-10-28T18:06:13.8162005+02:00"
},
"scheduledtonnage": 500,
"start":"2021-02-04T10:00:00+00:00",
"end":"2021-02-04T12:00:00+00:00",
"reason": "delivery",
"movements": [],
"metadata": {
"date": "2020-10-27T18:06:13.8162005+02:00",
"prop1": "value1",
"prop2": 5.35
}
},
…
]
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
139/722
Delete
0.0.44.0
Allow client to delete a scheduled transfers.
HTTP Request
DELETE /intrasite/scheduling-api/v1/scheduled-transfers/{identifier}
Request Parameters
identifier (string)
Request Body
{
…
}
Responses
Response 200 (Ok)
Response 404 (NotFound)
Example
{
…
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
140/722
Remove movement
0.0.45.0
Allow client to remove a movement from scheduled transfer
HTTP Request
DELETE /intrasite/scheduling-api/v1/scheduled-transfers/{scheduledId}/movements/{identifier}
Request Parameters
scheduledId (string)
identifier (string)
Request Body
{
…
}
Responses
Response 200 (Ok)
Response 403 (Forbidden)
Status “InProgress” or “Completed”
Response 404 (NotFound)
Scheduled Transfer not found
Movement not found
Example
{
…
}
Notification
{
"notificationType": "MovementDeleted"
"resourceType": "Movement",
"scope": "",
"sender": "",
"data": {
"ScheduledtransferIdentifier": "ST01",
"MovementIdentifier": "MOV01",
"originalRequestInfo": {
"requestedAt": "0001-01-01T01:00:00+01:00",
"requestedBy": null
},
"context": null
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
141/722
Get movements by custom filter
0.0.46.0
Updated in 0.0.48.0
Retrieve a movement by query.
HTTP Request
POST /intrasite/scheduling-api/v1/scheduled-transfers/movements/searches
Request Body
{
"query": {
…
},
"select": [
{
…
],
"paging": {
"pageSize": 0,
"pageNumber": 0
},
"orderBy": {
…
}
}
Examples
Get all movements which have ‘Tonnage’ equal to 1000:
{
"query":
{
"nodeType": "binary",
"operator": "equal",
"left":
{
"nodeType": "property",
"name": "Tonnage",
},
"right":
{
"nodeType": "constant",
"value": "1000"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
142/722
Responses
Response 200 (Ok)
{
totalPages (int),
hasPreviousPage (bool),
hasNextPage (bool),
pageIndex (int),
pageSize (int),
totalCount (int),
items [
{
identifier (string),
linkIdentifier (string),
preferredMaterialPoolIdentifier (string),
state
{
State (string),
CompletedTonnage (uint, optional depending on state),
CancelReason (string, optional depending on state)
},
scheduledTonnage (uint),
start (datetime),
end (datetime),
arrivalStartLoadingDuration (datetime),
loadingDuration (datetime),
endLoadingDepartureDuration (datetime),
inTransitDuration (datetime),
arrivalStartUnloadingDuration (datetime),
unloadingDuration (datetime),
endUnloadingDepartureDuration (datetime),
createdBy (string)
},
…
]
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
143/722
Example
{
"totalPages": 1,
"items": [
{
"identifier": "MV01",
"linkIdentifier": "Link01",
"preferredMaterialPoolIdentifier": "MP01",
"state"
{
"State":"Completed",
"CompletedTonnage":"1000",
}
"scheduledTonnage": "1000",
"start":"2021-02-04T10:00:00+00:00",
"end":"2021-02-04T12:00:00+00:00",
"arrivalStartLoadingDuration": "2021-01-20T18:06:13.8162005+02:00",
"loadingDuration": "2021-01-20T18:06:13.8162005+02:00",
"endLoadingDepartureDuration": "2021-01-20T18:06:13.8162005+02:00",
"inTransitDuration": "2021-01-20T18:06:13.8162005+02:00",
"arrivalStartUnloadingDuration": "2021-01-20T18:06:13.8162005+02:00",
"unloadingDuration": "2021-01-20T18:06:13.8162005+02:00",
"endUnloadingDepartureDuration": "2021-01-20T18:06:13.8162005+02:00",
"createdBy" : "me"
}
],
"hasPreviousPage": false,
"hasNextPage": false,
"pageIndex": 0,
"pageSize": 20,
"totalCount": 1
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
144/722
Warehouse locations
Save (add or update)
0.0.44.0
HTTP Request
PUT /instrasite/scheduling-api/v1/warehouse-locations/{identifier}
Request Body
{
label (string)
}
Responses
Response 200 (Ok)
Response 201 (Created)
Response 400 (BadRequest)
Response 403 (Forbidden)
30010
Label is null or empty
30006
Identifier is null or empty
Example
{
"label": "ID000000"
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
145/722
GetAll
0.0.47.0
Allow client to retrieve all warehouse locations
HTTP Request
GET /instrasite/scheduling-api/v1/warehouse-locations
Responses
Response 200 (Ok)
[
{
identifier (string),
label (string)
}, …
]
Example
[
{
"identifier": "WL01",
"label": “WarehouseLabel01”
},
{
"identifier": "WL02",
"label": “WarehouseLabel02”
}, …
]
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
146/722
Get by identifier
0.0.52.0
HTTP Request
GET /instrasite/scheduling-api/v1/warehouse-locations/{identifier}
Responses
Response 200 (Ok)
Response 404 (NotFound)
Example
{
"identifier": "WL01",
"label": “WarehouseLabel01”
}
Delete
0.0.52.0
Allow client to delete a warehouse location.
HTTP Request
DELETE /instrasite/scheduling-api/v1/warehouse-locations/{identifier}
Request Parameters
identifier (string)
Request Body
{
…
}
Responses
Response 200 (Ok)
Response 403 (Forbidden)
30037
When a warehouse location is used by a link
30038
When a warehouse location is used by a scheduled transfer
Response 404 (NotFound)
When warehouse location not found.
Example
{
…
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
147/722
Links
Save (add or update)
0.0.44.0
Allows to create or update a Link.
HTTP Request
PUT /instrasite/scheduling-api/v1/links/{identifier}
Request Body
{
sourceWarehouseLocation (string),
targetWarehouseLocation (string),
transportMode (string),
cost (int, optional),
isPublic (bool),
distance (double), 0.0.47.0
transitTime (timeSpan),
isOpen (bool),
materialPools {
(string), …
}
}
Responses
Response 200 (Ok)
Response 201 (Created)
Response 400 (BadRequest)
Response 403 (Forbidden)
30006
Identifier is null or empty
30001
SourceWarehouseLocation does not exist
30001
TargetWarehouseLocation does not exist
30012
Cost is less or equal to zero
30014
Transit time is less or equal to zero
30016
Unknown transport mode
30020
Material Pool not found
30013
Distance is less or equal to zero
30036
When a link used by a movement is being updated
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
148/722
Example
{
"sourceWarehouseLocation":"SourceHall",
"targetWarehouseLocation":"DestHall",
"transportMode":"Wagon",
"cost":null,
"isPublic":false,
"distance":10.0,
"transitTime":"02:13:00",
"isOpen":false,
"materialPools":null
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
149/722
Searches
0.0.45.0
Allow client to retrieve list of links with the allowed materialPools using a filter.
HTTP Request
POST /intrasite/scheduling-api/v1/links /searches
Request Body
{
SourceWarehouseLocation (string),
TargetWarehouseLocation (string)
}
Example
{
" SourceWarehouseLocation ":"SourceHall",
" SourceWarehouseLocation ":"DestHall"
}
Responses
Response 200 (Ok)
[
{
…,
identifier (string),
sourceWarehouseLocation (string),
targetWarehouseLocation (string),
materialPools [
{
identifier (string)
description (string),
productType (string)
}, …]
}, …
]
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
150/722
Example
[
{
…,
"identifier":"Link1",
"sourceWarehouseLocation":"SourceHall",
"targetWarehouseLocation":"DestHall",
"materialPools": {
"Identifier":"MP01",
"description": null,
"productType":”Slab”
}
},
{
…,
"identifier":"Link2",
"sourceWarehouseLocation":"SourceHall2",
"targetWarehouseLocation":"DestHall2",
" materialPools ": {
"Identifier ":"MP02",
"description ":”Some description”,
"productType ":”Slab”
}
}, …
]
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
151/722
Get by identifier
0.0.52.0
HTTP Request
GET /instrasite/scheduling-api/v1/links/{identifier}
Responses
Response 200 (Ok)
Response 404 (NotFound)
Example
{
…,
"identifier":"Link1",
"sourceWarehouseLocation":"SourceHall",
"targetWarehouseLocation":"DestHall",
"materialPools": {
"Identifier":"MP01",
"description": null,
"productType":”Slab”
}
}
Delete
0.0.52.0
Allow client to delete a link.
HTTP Request
DELETE /instrasite/scheduling-api/v1/links/{identifier}
Request Parameters
identifier (string)
Request Body
{
…
}
Responses
Response 200 (Ok)
Response 403 (Forbidden)
30036
When a link is used by a scheduled movement.
Response 404 (NotFound)
When warehouse location not found.
Example
{
…
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
152/722
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
153/722
Material Pools
Save (add or update)
0.0.45.0
Allows to create a MaterialPool.
HTTP Request
PUT /instrasite/scheduling-api/v1/material-pools/{identifier} 0.0.47.0
Request Body
{
…,
description (string, optional),
productType (string),
links {
(string), …
}
}
Responses
Response 200 (Ok)
Response 201 (Created)
Response 400 (BadRequest)
Response 403 (Forbidden)
30018
Link not found
30019
Product type is null or empty
30006
Identifier is null or empty
Response 409 (Conflict)
30017
One material pool exists with the same identifier
Example
{
…,
"description": null,
"productType":"Slab",
"links":null
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
154/722
Get by identifier
0.0.45.0
HTTP Request
GET /intrasite/scheduling-api/v1/material-pools/{identifier}
Request Parameters
identifier (string)
Responses
Response 200 (Ok)
{
identifier (string),
description (string, optional),
productType (string)
}
Response 404 (NotFound)
Example
{
"requestedBy": null,
“requestedAt: “0001-01-01T00:00:00+00:00”,
"context": null,
"identifier": "MP01",
"description": null",
"productType": "Slab"
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
155/722
Delete
0.0.45.0
Allow client to delete a material pool.
HTTP Request
DELETE /intrasite/scheduling-api/v1/material-pools/{identifier}
Request Parameters
identifier (string)
Request Body
{
…
}
Responses
Response 200 (Ok)
Response 403 (Forbidden)
30025
When a material pool has an associated link.
Response 404 (NotFound)
When material pool not found.
Example
{
…
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
156/722
Composition
Save (add or update)
Allows to create or modify a composition.
HTTP Request
PUT /intrasite/scheduling-api/v1/compositions/{identifier}
Request Body
{
…
Label (string),
VehicleSet {
Trucks [{
Number (uint),
Capacity (uint)
}],
Wagons [{
Number (uint),
Capacity (uint),
SubType (string)
}],
GenericVehicles [{
Number (uint),
Type (string)
}]
}
}
Responses
Response 200 (Ok)
Response 201 (Created)
Response 400 (BadRequest)
30034
Repeated vehicle
30033
Specific type in generic vehicle
Response 403 (Forbidden)
30006
Identifier is Null or Empty
Response 409 (Conflict)
30039
Composition Identifier Already Exists
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
157/722
Example
{
…,
vehicleSet {
"trucks": [
{
"number": 1,
"capacity": 5
}
],
"wagons": [
{
"number": 1,
"capacity": 20,
"subType": "largeWagon"
}
],
"genericVehicles": [
{
"number": 1,
"type": "Locomotive"
}
]
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
158/722
Get composition by identifier
Retrieve a composition by its identifier.
HTTP Request
GET /intrasite/scheduling-api/v1/compositions/{identifier}
Responses
Response 200 (Ok)
{
identifier (string),
Label (string),
VehicleSet {
Trucks [{
Number (uint),
Capacity (uint)
}],
Wagons [{
Number (uint),
Capacity (uint),
SubType (string)
}],
GenericVehicles [{
Number (uint),
Type (string)
}]
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
159/722
Response 404 (NotFound)
Example
{
"identifier": "Composition01",
"label": "C01",
"vehicleSet":{
"trucks": [
{
"number": 1,
"capacity": 5
}
],
"wagons": [
{
"number": 1,
"capacity": 10,
"subType": "testWagon1"
},
{
"number": 1,
"capacity": 20,
"subType": "testWagon2"
}
],
"genericVehicles": [
{
"number": 1,
"type": "locomotive"
}
]
}
}
GetAll
Allow client to retrieve all compositions
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
160/722
HTTP Request
GET /instrasite/scheduling-api/v1/compositions
Responses
Response 200 (Ok)
[
{
identifier (string),
VehicleSet {
Trucks [{
Number (uint),
Capacity (uint)
}],
Wagons [{
Number (uint),
Capacity (uint),
SubType (string)
}],
GenericVehicles [{
Number (uint),
Type (string)
}]
}
}, …
]
Example
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
161/722
[
{
"identifier": "Composition01",
"label": "C01",
"vehicleSet":{
"trucks": [
{
"number": 1,
"capacity": 5
}
],
"wagons": [
{
"number": 1,
"capacity": 10,
"subType": "testWagon1"
},
{
"number": 2,
"capacity": 20,
"subType": "testWagon2"
}
],
"genericVehicles": [
{
"number": 1,
"type": "locomotive"
}
]
}
},
{
"identifier": "Composition02",
"label": "C02",
"vehicleSet":{
"trucks": [
{
"number": 1,
"capacity": 5
}
],
"wagons": [
{
"number": 2,
"capacity": 10,
"subType": "testWagon1"
},
{
"number": 2,
"capacity ": 20,
"subType": "testWagon2"
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
162/722
}
],
"genericVehicles": [
{
"number": 2,
"type": "locomotive"
}
]
}
}
]
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
163/722
Delete
Allow client to delete a composition.
HTTP Request
DELETE /intrasite/scheduling-api/v1/compositions /{identifier}
Request Body
{
}
Responses
Response 200 (Ok)
Response 403 (Forbidden)
30040
Composition has one or more availabilities
Response 404 (NotFound)
Example
{
…
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
164/722
Availability
Save (add or update)
Allows to create or modify an availability for a composition.
HTTP Request
PUT /intrasite/scheduling-api/v1/availabilities/{identifier}
Request Body
{
…
scheduledAt {
start (DateTimeOffset),
end (DateTimeOffset)
},
shiftIdentifier (string, optional),
compositionIdentifier (string),
VehicleSet {
Trucks [{
Number (uint),
Capacity (uint)
}],
Wagons [{
Number (uint),
Capacity (uint),
SubType (string)
}],
GenericVehicles [{
Number (uint),
Type (string)
}]
}
}
Responses
Response 200 (Ok)
Response 201 (Created)
Response 400 (BadRequest)
30034
Repeated vehicle
Response 403 (Forbidden)
30052
Vehicle is not part of the composition
30041
A composition for the availability was not found
30053
An availability for the same composition in the same time frame already exists
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
165/722
Example
{
…,
"scheduledAt": {
"start": "2021-05-25T11:45:05.692Z",
"end": "2021-05-25T11:45:05.692Z"
},
"shiftIdentifier": "Morning",
"compositionIdentifier": "Composition01",
"vehicleSet":{
"trucks": [
{
"number": 1,
"capacity": 5
}
],
"wagons": [
{
"number ": 1,
"capacity": 10,
"subType": "testWagon1"
},
{
"number": 2,
"capacity": 20,
"subType": "testWagon2"
}
],
"genericVehicles": [
{
"number ": 1,
"type": "locomotive"
}
]
}
}
Get availability shift by custom filter
0.0.46.0
Retrieve a shift by query.
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
166/722
HTTP Request
POST /intrasite/scheduling-api/v1/availability/searches
Request Body
{
"query": {
…
},
"select": [
{
…
],
"paging": {
"pageSize": 0,
"pageNumber": 0
},
"orderBy": {
…
}
}
Examples
Get an availability by start and end:
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
167/722
{
"Query": {
"Body":
{
“Operator":"equal",
"Left":{
"Name":"CompositionIdentifier",
"Left":{
"Type":"Availability",
"Name":"s",
"nodeType":"parameter"
},
"nodeType":"property"
},
"Right":{
"Value":"Composition01",
"Type":"String",
"nodeType":"constant"},
"nodeType":"binary"
},
"Parameters":["s"],
"nodeType":"lambda"
},
"Select":null,
"Paging":null,
"OrderBy":null
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
168/722
Responses
Response 200 (Ok)
Example
{
"totalPages": 1,
"items": [
{
"scheduledAt": {
"start": "2021-05-25T12:03:06+00:00",
"end": "2021-05-26T12:03:06+00:00"
},
"compositionIdentifier": "Composition01",
"excludedVehiclesIdentifiers": []
},
{
"scheduledAt": {
"start": "2021-05-26T13:03:06+00:00",
"end": "2021-05-27T12:03:06+00:00"
},
"compositionIdentifier": "Composition01",
"vehicleSet": {
"trucks": [],
"wagons": [],
"genericVehicles": []
}
}
],
"hasPreviousPage": false,
"hasNextPage": false,
"pageIndex": 0,
"pageSize": 20,
"totalCount": 1
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
169/722
Delete
0.0.44.0
Allow client to delete an availability for a composition.
HTTP Request
DELETE /intrasite/scheduling-api/v1/availability /{identifier}
Request Body
{
…
}
Responses
Response 200 (Ok)
Response 404 (NotFound)
Example
{
…
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
170/722
4.5. Bay
Create
0.0.44.0
Allow client to create a bay. This method is triggered by the local system to describe the local
structure of the site
HTTP Request
POST /location-api/v1/bays
Request Body
{
…
bay : {
identifier (string),
label (string),
metadata (json, optional),
associatedLocations [ (string), …],
associatedPrinter (string),
state (string) = [‘Open’, ‘Closed’],
stateMetadata (json, optional),
maxNumberOfEquipments (int),
bayTransportModes [
{
transportMode (string) = [‘Truck’, ‘Wagon’, ‘Vessel’],
capacity (int),
state (string) = [‘Open’, ‘Closed’],
stateMetadata (json, optional)
}, …]
}
}
Responses
Response 201 (Created)
Response 403 (Forbidden)
One or more associated locations doesn’t exist.
Response 409 (Conflict)
Bay with identifier '{0}' already exists
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
171/722
Example
{
…,
"bay": {
"identifier": "ID000000",
"label": "ID000000",
"metadata": {
"Prop1": "2020-10-15T23:31:24.6646296+02:00",
"Prop2": "Me Against the world",
"Prop3": 2018
},
"state": "Open",
"maxNumberOfEquipments": 0
}
}
Notification(s)
{
"notificationType": "Create"
"resourceType": "bay",
"scope": "LIE",
"sender": "Artemis.Material",
"data": {
"id": "ID000000",
"context": {
"key": "value"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
172/722
Update
0.0.44.0
Allow client to update bay information. This method is triggered by the local system to describe the
local structure of the site
HTTP Request
PUT /location-api/v1/bays/{identifier}
Request Parameters
identifier (string)
Request Body
{
…
bay : {
label (string),
metadata (json, optional),
associatedLocations [ (string), …],
associatedPrinter (string),
state (string) = [‘Open’, ‘Closed’],
stateMetadata (json, optional),
maxNumberOfEquipments (int),
bayTransportModes [
{
transportMode (string) = [‘Truck’, ‘Wagon’, ‘Vessel’],
capacity (int),
state (string) = [‘Open’, ‘Closed’],
stateMetadata (json, optional)
}, …]
}
}
Responses
Response 200 (Ok)
Response 201 (Created)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
173/722
Example
{
…,
"bay": {
"label": "ID000000",
"metadata": {
"Prop1": "2020-10-15T23:31:24.4246253+02:00",
"Prop2": "Me Against the world",
"Prop3": 2018
},
"state": "Open",
"maxNumberOfEquipments": 0,
"identifier": "ID000000",
"associatedLocations" : ["ID000000"]
}
}
Notification(s)
{
"notificationType": "Update"
"resourceType": "bay",
"scope": "",
"sender": "Artemis.Material",
"data": {
"id": "ID000000",
"context": {
"key": "value"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
174/722
Partial Update
0.0.44.0
Allow client to partially update bay information. This method is triggered by the local system to
describe the local structure of the site
HTTP Request
PATCH /location-api/v1/bays/{identifier}
Request Parameters
identifier (string)
Request Body
{
…
bay: [
{
value (json),
path (string),
op (string)
},
…
]
}
Responses
Response 204 (No Content)
Response 404 (NotFound)
Example
{
…
"bay": [
{
"value": “Closed”,
"path": "state",
"op": "replace",
},
…
]
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
175/722
Notification(s)
{
"notificationType": "PartialUpdate"
"resourceType": "bay",
"scope": "",
"sender": "Artemis.Material",
"data": {
"id": "ID000000",
"context": {
"Date": "2020-10-15T23:45:51.4590818+02:00"
}
}
}
}
Change bay state
When a client needs to update the bay state (open or closed), it has to call the partial update method
of the location. To do that, it needs to call the PATCH method of the location (see Update location)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
176/722
Get by identifier
0.0.44.0
Allow client to retrieve a bay by its reference
HTTP Request
GET /location-api/v1/bays/{identifier}
Request Parameters
identifier (string)
Responses
Response 200 (Ok)
{
identifier (string),
label (string),
creationDate (datetime), 0.0.69.0
lastModificationDate (datetime), 0.0.69.0
metadata (json, optional),
associatedLocations [ (string), …],
associatedPrinter (string),
state (string) = [‘Open’, ‘Closed’],
stateMetadata (json, optional),
maxNumberOfEquipments (int),
bayTransportModes [
{
transportMode (string) = [‘Truck’, ‘Wagon’, ‘Vessel’],
capacity (int),
state (string) = [‘Open’, ‘Closed’],
stateMetadata (json, optional)
}, …]
}
Response 404 (NotFound)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
177/722
Example
{
"label": "ID000000",
"creationDate": "2020-10-15T11:14:56.7566605+00:00",
"lastModificationDate": "2020-10-15T11:14:56.7566605+00:00",
"metadata": {
"Prop1": "2020-10-15T23:31:24.4246253+02:00",
"Prop2": "Me Against the world",
"Prop3": 2018
},
"associatedLocations": [
"ID000000"
],
"associatedPrinter": null,
"state": "Open",
"stateMetadata": {},
"maxNumberOfEquipments": 0,
"bayTransportModes": [],
"identifier": "ID000000"
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
178/722
Get by custom filter
0.0.44.0
Allow client to retrieve a(some) bay(s) responding to one or several criterias and ordered by one or
several properties.
HTTP Request
POST /location-api/v1/bays/searches
Request Body
{
"query": {
…
},
"select": [
{
…
],
"paging": {
"pageSize": 0,
"pageNumber": 0
},
"orderBy": {
…
},
"includes": [ {
…
}]
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
179/722
Examples
Get all Bay(s) with identifier ‘ID000000’
{
"query": {
"operator": "equal",
"left": {
"name": "identifier",
"nodeType": "property"
},
"right": {
"value": "ID000000",
"nodeType": "constant"
},
"nodeType": "binary"
},
"select": null,
"paging": null,
"orderBy": null
}
Get all Bay(s) in WarehouseLocation ‘ID01’
{
"query":
{
"nodeType":"call",
"methodName":"InLocation",
"arguments":[
{
"nodeType":"constant",
"value":"ID01"
}
]
}
}
Result(s): Bays ‘B01’ and ‘B03’
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
180/722
Get all Bay(s) in WarehouseLocation ‘ID01’ and with transport mode ‘Vessel’
{
"query": {
"nodeType":"binary",
"operator":"andAlso",
"left":{
"nodeType":"call",
"methodName":"InLocation",
"arguments":[
{
"nodeType":"constant",
"value":"ID01"
}
]
},
"right":{
"nodeType":"call",
"methodType":"Enumerable",
"methodName":"Any",
"arguments":[
{
"nodeType":"property",
"name":"BayTransportModes"
},
{
"nodeType":"lambda",
"body":{
"nodeType":"binary",
"operator":"equal",
"left":{
"nodeType":"property",
"name":"TransportMode",
"left":{
"nodeType":"parameter",
"type": "BayTransportModeResult",
"name":"t"
}
},
"right":{
"nodeType":"constant",
"value":"Vessel"
}
},
"parameters":[
"t"
]
}
]
}
}
}
Result(s): Bays ‘B01’ and ‘B03’
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
181/722
Get all Bay(s) in WarehouseLocation ‘ID01’ and with transport mode ‘Vessel’ and state ‘Open’
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
182/722
{
"query":{
"nodeType":"binary",
"operator":"andAlso",
"left":{
"nodeType":"call",
"methodName":"InLocation",
"arguments":[
{
"nodeType":"constant",
"value":"ID01"
}
]
},
"right":{
"nodeType":"binary",
"operator":"andAlso",
"left":{
"nodeType":"call",
"methodType":"Enumerable",
"methodName":"Any",
"arguments":[
{
"nodeType":"property",
"name":"BayTransportModes",
"left":null
},
{
"nodeType":"lambda",
"body":{
"nodeType":"binary",
"operator":"equal",
"left":{
"nodeType":"property",
"name":"TransportMode",
"left":{
"nodeType":"parameter",
"type": "BayTransportModeResult",
"name":"t"
}
},
"right":{
"nodeType":"constant",
"value":"Vessel",
}
},
"parameters":[
"t"
]
}
]
},
"right":{
"nodeType":"call",
"methodType":"Enumerable",
"methodName":"Any",
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
183/722
"arguments":[
{
"nodeType":"property",
"name":"BayTransportModes"
},
{
"nodeType":"lambda",
"body":{
"nodeType":"binary",
"operator":"equal",
"left":{
"nodeType":"property",
"name":"State",
"left":{
"nodeType":"parameter",
"type": "BayTransportModeResult",
"name":"t"
}
},
"right":{
"nodeType":"constant",
"value":"Open",
}
},
"parameters":[
"t"
]
}
]
}
}
}
}
Result(s): Bays ‘B01’ and ‘B03’
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
184/722
Responses
Response 200 (Ok)
{
totalPages (int),
hasPreviousPage (bool),
hasNextPage (bool),
pageIndex (int),
pageSize (int),
totalCount (int),
items [
{
identifier (string),
label (string),
metadata (json, optional),
associatedLocations [ (string), …],
associatedPrinter (string),
state (string) = [‘Open’, ‘Closed’],
stateMetadata (json, optional),
maxNumberOfEquipments (int),
bayTransportModes [
{
transportMode (string) = [‘Truck’, ‘Wagon’, ‘Vessel’],
capacity (int),
state (string) = [‘Open’, ‘Closed’],
stateMetadata (json, optional)
}, …]
},
…
]
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
185/722
Example
{
"totalPages": 1,
"items": [
{
"label": "ID000000",
"metadata": {
"Prop1": "2020-10-15T23:31:24.4246253+02:00",
"Prop2": "Me Against the world",
"Prop3": 2018
},
"associatedLocations": [],
"associatedPrinter": null,
"state": "Open",
"stateMetadata": {},
"maxNumberOfEquipments": 0,
"bayTransportModes": [],
"identifier": "ID000000"
}
],
"hasPreviousPage": false,
"hasNextPage": false,
"pageIndex": 0,
"pageSize": 20,
"totalCount": 1
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
186/722
Transport modes allowed & maximum number of equipments
0.0.44.0
This method is used to configure a bay according to the transport modes allowed on it and the
maximum number of equipments per transport mode allowed.
HTTP Request
PUT /location-api/v1/bays/{identifier}/transport-modes/{mode}
Request Parameters
identifier (string)
mode (string)
Request Body
{
…
bayTransportMode : {
capacity (int),
state (string, optional) = [‘Open’, ‘Closed’],
stateMetadata (int, optional)
}
}
Responses
Response 200 (Ok)
Response 204 (NotFound)
Response 400 (BadRequest)
Example
{
…,
"bayTransportMode": {
"capacity": 10,
"state": "Open",
"stateMetadata": null
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
187/722
Delete
0.0.44.0
Allow client to delete a bay. This method is triggered by the local system to describe the local
structure of the site
If a vehicle is on the bay, the vehicle is not deleted but is no more localized
HTTP Request
DELETE /location-api/v1/bays/{identifier}
Request Parameters
identifier (string)
Request Body
{
…
}
Responses
Response 200 (Ok)
Response 403 (Forbidden)
If a Vehicle is on the bay, the Vehicle is not deleted but is no more localized. If this request
encounters an error, a ‘Forbidden’ is sent.
0.0.57.0
It is forbidden to delete a bay when linked to a gate. Call 0.562 Create or update and remove the bay
from the “associatedBays” list before deleting the bay.
Response 404 (NotFound)
Example
{
…
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
188/722
Notification
{
"notificationType": "Delete"
"resourceType": "bay",
"scope": "",
"sender": "Artemis.Material",
"data": {
"context": {
"key": "value"
},
"id": "ID000000"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
189/722
4.6. Gate
Create or update
0.0.57.0
Allow client to create a gate. This method is triggered by the local system to describe the local
structure of the site. A gate can be linked to multiple bays.
HTTP Request
PUT /location-api/v1/gates
Request Body
{
…
identifier (string),
label (string),
metadata (json, optional),
associatedBays [ (string), …], //List of bay identifiers linked to the gate
}
Responses
Response 200 (OK)
Response 403 (Forbidden)
One or more associated bays doesn’t exist.
Example
{
…,
"identifier": "ID000000",
"label": "ID000000",
"metadata": {
"Prop1": "2020-10-15T23:31:24.6646296+02:00",
"Prop2": "Me Against the world",
"Prop3": 2018
},
"associatedBays": ["bay1", "bay2"]
}
}
Delete
0.0.57.0
Allow client to delete a gate. This method is triggered by the local system to describe the local
structure of the site.
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
190/722
HTTP Request
DELETE /location-api/v1/gates/{identifier}
Request Parameters
identifier (string)
Request Body
{
…
}
Responses
Response 200 (Ok)
Response 404 (NotFound)
Example
{
…
}
Get by identifier
0.0.57.0
Allow client to retrieve a gate by its reference
HTTP Request
GET /location-api/v1/gates/{identifier}
Request Parameters
identifier (string)
Responses
Response 200 (Ok)
{
identifier (string),
label (string),
metadata (json, optional),
associatedBays [ (string), …],
}
Response 404 (NotFound)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
191/722
Example
{
"label": "ID000000",
"metadata": {
"Prop1": "2020-10-15T23:31:24.4246253+02:00",
"Prop2": "Me Against the world",
"Prop3": 2018
},
"associatedBays": [
"ID000000"
],
"identifier": "ID000000"
}
Get by custom filter
0.0.57.0
Allow client to retrieve a(some) bay(s) responding to one or several criterias and ordered by one or
several properties.
HTTP Request
POST /location-api/v1/gates/searches
Request Body
{
"query": {
…
},
"select": [
{
…
],
"paging": {
"pageSize": 0,
"pageNumber": 0
},
"orderBy": {
…
},
"includes": [ {
…
}]
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
192/722
4.7. Production Line
Save (add or update)
0.0.44.0
This method is used to save (add or update) a production line.
HTTP Request
PUT /material-api/v1/production-lines/{identifier}
Request Parameters
identifier (string)
Request Body
{
…
name (string),
inputWarehouseLocations ( [
{
identifier (string)
}, …
], optional),
outputWarehouseLocations ( [
{
identifier (string)
}, …
], optional),
metadata (json, optional)
}
Responses
Response 200 (Ok)
Response 400 (BadRequest)
Warehouse location does not exists
Response 409 (Conflict)
Production Line with identifier '{0}' already exists
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
193/722
Example
{
…,
"name": "string",
"inputWarehouseLocations": [
{
"identifier": "string"
}
],
"outputWarehouseLocations": [
{
"identifier": "string"
}
],
"metadata": {}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
194/722
Search gates by location
{
"query":{
"nodeType":"call",
"methodName":"Any",
"arguments":[
{
"nodeType":"property",
"name":"Bays"
},
{
"nodeType":"lambda",
"body":{
"nodeType":"call",
"methodName":"InLocation",
"arguments":[
{
"nodeType":"parameter",
"name":"b"
},
{
"nodeType":"constant",
"value":"LocationId"
}
]
},
"parameters":[
"b"
]
}
]
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
195/722
Notification(s)
{
"notificationType": "Created / Updated"
"resourceType": "productionLine",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-03-02T10:03:47.6621799+00:00",
"requestedBy": "owner"
},
"identifier": "ID000000",
"name": "name"
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
196/722
Get by identifier
0.0.44.0
This method is used to get a production line.
HTTP Request
GET /material-api/v1/production-lines/{identifier}
Request Parameters
identifier (string)
Responses
Response 200 (Ok)
{
name (string),
inputWarehouseLocations ( [
{
identifier (string)
}, …
], optional),
outputWarehouseLocations ( [
{
identifier (string)
}, …
], optional),
inputSequence ( [
{
index (int),
lmiContext (string),
lmiNumber (string)
}, …
], optional),
metadata (json, optional)
}
Response 404 (NotFound)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
197/722
Example
{
"name": "name",
"inputWarehouseLocations": [
{
"identifier": "ID000000"
},
{
"identifier": "ID000001"
}
],
"outputWarehouseLocations": [
{
"identifier": "ID000002"
},
{
"identifier": "ID000003"
}
],
"inputSequence": [],
"metadata": {
"date": "2020-10-20T15:26:32.060015+02:00",
"prop1": "value1",
"prop2": 5.35
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
198/722
Get occupancies of input locations
0.0.44.0
This method is used to get a production line.
HTTP Request
GET /material-api/v1/production-lines/{identifier}/input-warehouse-locations
Request Parameters
identifier (string)
Responses
Response 200 (Ok)
{
productionLineName (string),
inputLocations : [
{
identifier (string),
occupancy (int),
occupancyInGrossTons (long),
occupancyInNetTons (long),
availableForInternalTransport (int),
availableForInternalTransportInGrossTons (long),
scheduledOnProductionLine (int),
scheduledOnProductionLineInGrossTons (long),
blocked (int),
blockedInGrossTons (long),
unavailable (int),
unavailableInGrossTons (long),
leafLocations (int),
emptyLeafLocations (int),
fullLeafLocations (int),
partiallyFilledLeafLocations (int),
upperThresholdInGrossTons (long),
lowerThresholdInGrossTons (long),
capacity (long)
}, …
]
}
Response 404 (NotFound)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
199/722
Example
{
"productionLineName": "name",
"inputLocations": [
{
"identifier": "ID000000",
"label": "ID000000",
"occupancy": 0,
"occupancyInGrossTons": 0,
"occupancyInNetTons": 0,
"availableForInternalTransport": 0,
"availableForInternalTransportInGrossTons": 0,
"scheduledOnProductionLine": 0,
"scheduledOnProductionLineInGrossTons": 0,
"blocked": 0,
"blockedInGrossTons": 0,
"unavailable": 0,
"unavailableInGrossTons": 0,
"leafLocations": 3,
"emptyLeafLocations": 3,
"fullLeafLocations": 0,
"partiallyFilledLeafLocations": 0,
"upperThresholdInGrossTons": 0,
"lowerThresholdInGrossTons": 0,
"capacity": 1000
},
…
]
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
200/722
Save Input Sequence
0.0.44.0
Allow to set the input sequence.
HTTP Request
PUT /material-api/v1/production-lines/{identifier}/input-sequence
Request Parameters
identifier (string)
Request Body
{
…
materials [
{
lmiContext (string),
lmiNumer (string),
sequence {
value (datetime) => DateSequence
or
order (string), => FabricationOrderSequence
orderSequence (int),
orderMaterialSequence (int)
or
value (long) => NumberSequence
}
}, …
]
}
Responses
Response 200 (Ok)
Response 400 (BadRequest)
Response 403 (Forbidden)
When sequenced materials are not sequenced with the same sequence type
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
201/722
Example
{
"materials":[
{
"lmiContext":"Ctx",
"lmiNumber":"00",
"sequence":{
"order":"Order0",
"orderSequence":0,
"orderMaterialSequence":0
}
},
{
"lmiContext":"Ctx",
"lmiNumber":"01",
"sequence":{
"order":"Order1",
"orderSequence":1,
"orderMaterialSequence":1
}
}, …
]
}
Notification(s)
{
"notificationType": "Updated"
"resourceType": "productionLine",
"scope": "",
"sender": "",
"data": {
"identifier": "PL01",
"name": "name",
"originalRequestInfo": {
"requestedAt": "0001-01-01T01:00:00+01:00",
"requestedBy": null
},
"context": null
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
202/722
Get Input Sequence
0.0.44.0
This method is used to get an input sequence
HTTP Request
GET /material-api/v1/production-lines/{identifier}/input-sequence
Request Parameters
identifier (string)
Responses
Response 200 (Ok)
{
materials [
{
locationStatus (string),
location {
identifier (string),
parents [
(string), …
]
},
netWeight (int, optional),
grossWeight (int),
length (double, optional),
width (double),
thickness (double),
lmiContext (string),
lmiNumer (string),
sequence {
value (datetime) => DateSequence
or
order (string), => FabricationOrderSequence
orderSequence (int),
orderMaterialSequence (int)
or
value (long) => NumberSequence
}
}, …
]
}
Response 404 (NotFound)
Production line does not exist
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
203/722
Example
{
"materials":[
{
"locationStatus":"OnCorrectYard",
"location":{
"identifier":"L01",
"parents":[
"LParent"
]
},
"netWeight":101,
"grossWeight":201,
"length":301.0,
"width":401.0,
"thickness":501.0,
"lmiContext":"Ctx",
"lmiNumber":"00",
"sequence":{
"value":"2020-10-20T16:46:23.3540804+02:00"
}
},
{
"locationStatus":"OnCorrectYard",
"location":{
"identifier":"L01",
"parents":[
"LParent"
]
},
"netWeight":102,
"grossWeight":202,
"length":302.0,
"width":402.0,
"thickness":502.0,
"lmiContext":"Ctx",
"lmiNumber":"01",
"sequence":{
"value":"2020-10-20T16:46:23.3540804+02:00"
}
}, …
]
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
204/722
Remove input sequence
0.0.44.0
Allow to remove an input sequence
HTTP Request
DELETE /material-api/v1/production-lines/{identifier}/input-sequence
Request Parameters
identifier (string)
Request Body
{
…
}
Responses
Response 200 (Ok)
Response 404 (NotFound)
Production line does not exist
Example
{
…
}
Notification
{
"notificationType": "Updated"
"resourceType": "productionLine",
"scope": "",
"sender": "Artemis.Material",
"data": {
"identifier": "ID000000",
"name": "name"
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
205/722
Save Sequenced Material
0.0.44.0
Allow to insert a material inside the current input sequence.
HTTP Request
PUT /material-api/v1/production-lines/{identifier}/input-sequence/sequenced-materials
Request Parameters
identifier (string)
Request Body
{
…
lmiContext (string),
lmiNumer (string),
sequence {
value (datetime) => DateSequence
or
order (string), => FabricationOrderSequence
orderSequence (int),
orderMaterialSequence (int)
or
value (long) => NumberSequence
}
}
Responses
Response 200 (Ok)
Response 400 (BadRequest)
502 Material unit does not exist
Response 403 (Forbidden)
600 When the sequence type is different from existing
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
206/722
Example
{
"lmiContext":"Ctx",
"lmiNumber":"01",
"sequence":{
"value":"2020-10-20T16:31:38.2559937+02:00"
}
}
Notification(s)
{
"notificationType": "Updated"
"resourceType": "productionLine",
"scope": "",
"sender": "",
"data": {
"identifier": "PL01",
"name": "name",
"originalRequestInfo": {
"requestedAt": "0001-01-01T01:00:00+01:00",
"requestedBy": null
},
"context": null
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
207/722
Remove Sequenced Material
0.0.44.0
Allow to remove sequenced material from an input sequence
HTTP Request
DELETE /material-api/v1/production-lines/{identifier}/input-sequence/sequencedmaterials/context={context}&number={number}
Request Parameters
identifier (string)
context (string)
number (string)
Request Body
{
…
}
Responses
Response 200 (Ok)
Response 404 (NotFound)
Production line does not exist, material unit does not exist or material unit is not in the input
sequence
Example
{
…
}
Notification
{
"notificationType": "Updated"
"resourceType": "productionLine",
"scope": "",
"sender": "Artemis.Material",
"data": {
"identifier": "ID000000",
"name": "name"
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
208/722
Delete
0.0.44.0
This method is used to delete a production line.
HTTP Request
DELETE /material-api/v1/production-lines/{identifier}
Request Parameters
identifier (string)
Request Body
{
…
}
Responses
Response 200 (Ok)
Response 404 (NotFound)
Example
{
…
}
Notification
{
"notificationType": "Deleted"
"resourceType": "productionLine",
"scope": "",
"sender": "Artemis.Material",
"data": {
"identifier": "ID000000",
"name": "name",
"context": {
"key": "value"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
209/722
4.8. Transport
Save for a loading site (Create / Update)
0.0.34.0
If optional field ‘IsChartered’ is set to null (or not set), the LI state will be ‘Created’. Once this field is
changed to ‘false’, the LI will be ‘Ordered’. Otherwise (IsChartered is ‘true’), the state will be
‘Confirmed’.
Whenever the field ‘IsChartered’ of LI is set to ‘true’, there is no way to change it back to ‘false’
neither ‘null’, as the Transport is actually ready for being executed.
Note that field ‘IsChartered’ of LI can be changed from null to ‘false’ and vice versa, as long as it is not
set to ‘true’.
0.0.47.0
See section 4.16 for more explanation about transport states.
HTTP Request
PUT /transport-api/v1/transports/{identifier} 0.0.39.0
Request Parameters
identifier (string)
Unique identifier of the transport used in the TMS owner and all over the
sites
Request Body
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
210/722
{
…
transport {
owner (string),
type (string) = [‘shipment’, ’intrasite’],
mode (string) = [‘truck’, ‘wagon’, ‘barge’, ‘vessel’, ‘airplane’],
urgent (bool),
supplierIdentifier (string, optional),
metadata (json, optional),
lastTmsMesUpdateTimestamp (datetime, optional), 0.0.63.0
lastTmsMesUpdateBy (string, optional), 0.0.63.0
shuttle (bool), 0.0.50.0
internalMetadata (json, optional), 0.0.57.0
constraints [
{
constraintType (string) = [FullTrain, MaximumLength, CustomsDocumentsRequired,
MaxAuthorizedMass, MaxAuthorizedChargePerWagon, MaxAuthorizedChargePerVehicle
0.0.69.0, DerogationMaxAuthorizedMass, MaximumTonnage, EquipmentTypeNotToUse,
EquipmentTypeToUse, MaximumNumberOfVehicles, RequestedNumberOfVehicles,
MinimumNumberOfVehicles, MaxMaterialUnitWeight, DeadFreightMinimumWeight,
MinimumDistanceCoilsCradle, FreeText, MaxTrainGrossWeight, … 0.0.70.0]
0.0.53.0
constraintValue (string),
constraintUnit (string), 0.0.71.0
requestedVehicleTypeIdentifier (string, optional)
}
],
equipments [ { 0.0.78.0
identifier (string),
vehicleTypeIdentifier (string, optional),
vehicleName (string, optional),
metadata (json, optional),
internalMetadata (json, optional),
unloadingLocationIdentifiers (string[], optional) 1.84.0
}, …],
shipmentAsWork (bool) 1.84.0
loadingInstruction {
identifier (string),
arrivalTimeSlotStrict (bool, optional),
arrivalTimeSlotEarliestDateTime (datetime, optional),
arrivalTimeSlotEarliestTimeIgnored (bool, optional),
arrivalTimeSlotLatestDateTime (datetime, optional),
arrivalTimeSlotLatestTimeIgnored (bool, optional),
estimatedDepartureDateTime (datetime, optional),
estimatedDepartureTimeIgnored (bool, optional),
adjustedDepartureDateTime (datetime, optional), 0.0.72.0,
shuntingDateTime (datetime, optional),
shuntingTimeIgnored (bool, optional),
isChartered (bool, optional), 0.0.47.0
remarks (string[], optional), deprecated 0.0.49.0
miscRemarks (json, optional), 0.0.68.0
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
211/722
internalMetadata (json, optional), 0.0.56.0,
metadata (json, optional), 0.0.60.0
constraints [ 0.0.53.0
{
constraintType (string) = [CustomsDocumentsRequired, EquipmentTypeNotToUse,
EquipmentTypeToUse, FreeText, MaxAuthorizedMass, DerogationMaxAuthorizedMass, …],
constraintValue (string),
constraintUnit (string) 0.0.71.0
}, … ],
materialGroups [
{
identifier (string),
earliestStartLoadingDateTime (datetime, optional),
earliestStartLoadingTimeIgnored (bool, optional),
latestEndLoadingDateTime (datetime, optional),
latestEndLoadingTimeIgnored (bool, optional),
materialSelectionCriteriumProperty (string, optional) = [‘ScaleUpArticleId’,
‘OrderItemId’, ‘ScheduledAgreementId’, ‘ShipmentInstructionId’, ‘ShipmentProgramId’, …],
materialSelectionCriteriumValue (string, optional),
materialSelectionCriteriumRemark (string, optional),
logisticProductTypeIdentifier (string),
isLocked (bool),
remarks (string[], optional), deprecated 0.0.49.0
miscRemarks (json, optional), 0.0.68.0
internalMetadata (json, optional), 0.0.56.0
metadata (json, optional), 0.0.61.0
equipmentIdentifiers (string[], optional), 0.0.78.0
constraints [ 0.0.53.0
{
constraintType (string) = [EquipmentTypeNotToUse, EquipmentTypeToUse,
MaxMaterialUnitWeight, MinimumDistanceCoilsCradle, FreeText, …],
constraintValue (string),
constraintUnit (string) 0.0.71.0
}, … ],
unloadingTransportLocation {
identifier (string),
name (string),
streetNameAndNumber (string),
postalCode (string),
cityName (string),
countryIsoCode (string),
warehouseLocationIdentifier (string, optional),
origin (string)
},
requestedWeight {
min (int, optional),
max (int, optional),
target (int, optional)
} (optional),
requestedNumberOfUnits {
min (int, optional),
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
212/722
max (int, optional),
target (int, optional)
} (optional),
materialUnits [
{
lmiContext (string),
lmiNumber (string),
mustLoad (bool, optional),
locationLabel (string, optional)
}, …
],
equipmentGroup {
identifier (string),
sequence (int, optional),
unloadingTransportLocationIdentifier (string), 0.0.78.0
loadingTransportLocationIdentifier (string), 0.0.78.0
targetEquipmentPublicIdentifier (string, optional),
remarks (string[], optional), deprecated 0.0.53.0
miscRemarks (json, optional), 0.0.68.0
internalMetadata (json, optional), 0.0.56.0
metadata (json, optional), 0.0.60.0
constraints [ 0.0.53.0
{
constraintType (string) = [MaximumLength, CustomsDocumentsRequired,
MaxAuthorizedChargePerWagon, MaxAuthorizedChargePerVehicle 0.0.69.0,
MaxAuthorizedMass, MaximumTonnage, EquipmentTypeNotToUse, EquipmentTypeToUse,
MaximumNumberOfVehicles, RequestedNumberOfVehicles, MinimumNumberOfVehicles,
MaxMaterialUnitWeight, MinimumDistanceCoilsCradle, FreeText, MaxTrainGrossWeight, …],
constraintValue (string),
constraintUnit (string) 0.0.71.0
}, … ]
} (optional),
}, …
],
loadingTransportLocation {
identifier (string),
name (string),
streetNameAndNumber (string),
postalCode (string),
cityName (string),
countryIsoCode (string),
warehouseLocationIdentifier (string, optional),
origin (string),
},
},
preregistration 0.0.48.0 (optional) {
type (string)= ['truck', 'ship']
executingSupplierIdentifier (string, optional), 0.0.74.0
driverOrCaptainNames [ (string), … ] (optional),
tractorName (string, optional),
trailerName (string, optional),
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
213/722
trailerType (string, optional),
carrier (string, optional),
tare (string, optional),
derogationMass (long, optional),
derogationCertificateNumber (string, optional),
grossVehicleWeightRating (long, optional),
shipName (string, optional),
imo (string, optional),
vin (string, optional),
eni (string, optional)
}
}
}
Transport
â–ª
owner (string)
Name of TMS owner of the transport here the TMS which created and updates the loading
instructions on the transport
â–ª
type (string)
Define the type of transport as Shipment or Intrasite
â–ª
mode (string)
Transport mode
â–ª
urgent (bool)
Specify if the transport is urgent or not
â–ª
shipmentAsWork (bool) 1.84.0
â–ª
supplierIdentifier (string, optional)
Identifier of the supplier in the TMS
â–ª
metadata (json, optional)
â–ª
lastTmsUpdateTimestamp (datetime, optional)
Timestamp when the last update of the loading instruction has been done in the TMS owner.
Only a newer timestamp may update a TRS. This is done to avoid updating a TRS with an old
LI message received from a TMS
â–ª
lastTmsUpdateBy (string, optional)
User who has done the last update of the loading instruction in the TMS owner.
â–ª
shuttle (bool), 0.0.50.0
Supply Chain can book shuttles. These are vehicles that will go back and forth between 2 places.
For example in FOS there are ship shuttles between Fos and Sagunto and there are truck shuttles
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
214/722
with one of their customer. Local teams/systems have a need to if a tranport is part of this "shuttle
contract" or not, as different rules might apply to loading them.
Constraint (available on levels Transport, LoadingInstruction, MaterialGroup and EquipmentGroup)
â–ª
constraintType (string): see definition of DTO above
â–ª
constraintValue (string)
â–ª
constraintUnit (string)
â–ª
requestedVehicleTypeIdentifier (string, optional): only available on Transport constraint level
LoadingInstruction
â–ª
arrivalTimeSlotStrict (bool, optional)
Defined if the time slot must be strictly respected (true) or not (false).
If the control was strict, the truck VMS can refuse the entry of the truck, that's just the
difference
â–ª
arrivalTimeSlotEarliestDateTime (datetime, optional)
Date and time of the earliest arrival expected for the transport on the loading site
Set the UTC date at the Loading Location e.g. January 5, 2021 or January 5, 2021 10.30'15’’
Whatever the time zone where the HMI is (Belgium or USA for example) the date and time
displayed is ALWAYS the same. Note that 00:00 and 23:59 are also valid hours
â–ª
arrivalTimeSlotEarliestTimeIgnored (bool, optional)
Ignore time of previous field. Indicate if the hour of arrivalTimeSlotEarliestDateTime should
be displayed or not.
When TimeIgnored is True, ArrivalTimeSlotEarliest is displayed as '5 jan 21:10'
When TimeIgnored is not defined or false, ArrivalTimeSlotEarliest is displayed as '5 jan'
â–ª
arrivalTimeSlotLatestDateTime (datetime, optional)
Date and time of the latest arrival expected for the transport on the loading site
See field “arrivalTimeSlotEarliestDateTime”
â–ª
arrivalTimeSlotLatestTimeIgnored (bool, optional)
See field “arrivalTimeSlotEarliestTimeIgnored”
â–ª
estimatedDepartureDateTime (datetime, optional)
Date and time of estimated departure from the loading site
See field “arrivalTimeSlotEarliestDateTime”
â–ª
estimatedDepartureTimeIgnored (bool, optional)
See field “arrivalTimeSlotEarliestTimeIgnored”
â–ª
adjustedDepartureDateTime (datetime, optional)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
215/722
â–ª
shuntingDateTime (datetime, optional)
Date and time of end of operation when the local railway is made available Only defined if
Mode is equal to Wagon
See field “arrivalTimeSlotEarliestDateTime”
â–ª
shuntingTimeIgnored (bool, optional)
See field “arrivalTimeSlotEarliestTimeIgnored”
â–ª
RequestedWeight (Mandatory if ‘requestedNumberOfUnits’ is not specified, else not allowed)
Specify the requested weights for the material group.
o
o
o
â–ª
Target: Target weight for the material group
Min: Minimum weight for the material group
Max: Maximum weight for the material group
RequestedNumberOfUnits (Mandatory if ‘requestedWeight’ is not specified, else not allowed)
Specify the requested number of units for the material group.
Target: Target number of units for the material group
Min: Minimum number of units for the material group
Max: Maximum number of units for the material group
Following rules are applied to RequestedWeight/RequestedNumberOfUnits settings:
o Requested*Min may be empty or should be >= 0 (cannot be negative)
o Requested*Target may be empty or should be >= 0 (cannot be negative)
o Requested*Max may be empty or should be >=1 (cannot be negative)
o It is not allowed to have Requested*Min == Requested*Target == Requested*Max ==
0
o At least, Requested*Min or Requested*Target or Requested*Max should be defined
and >= 0 (Min, Target) or >=1 (Max)
o It is not allowed to have Requested*Min == Requested*Target == 0 AND
Requested*Max == empty
o When both are defined, Requested*Min should be <= Requested*Max
o When both are defined, Requested*Min should be <= Requested*Target
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
216/722
o
â–ª
MaterialsSelectionCriterion
Specify the selection criterion for the material group
o
o
o
â–ª
When both are defined, Requested*Target should be <= Requested*Max
Property
Specify on which property the criterion is based
Value
Specify the value of the property to do the selection
Remark
Free text remark
materialUnits
o
lmiContext (string)
o
lmiNumber (string)
o
mustLoad (bool, optional)
o
locationLabel (string, optional)
â–ª
internalMetadata (json)
Used by Artemis Core to store and forward useful info (ex: for OTM)
â–ª
metadata (json)
Used by Artemis Core to store and forward useful info (ex: for OTM)
Can contain totalPlannedWeight (int), and loadingHalls (string[]) for road transports.
MaterialGroup
â–ª
identifier
Unique business identifier of the material group given by the TMS owner
â–ª
earliestStartLoadingDateTime (datetime, optional)
Earliest start date and time of loading
See field “arrivalTimeSlotEarliestDateTime”
â–ª
earliestStartLoadingTimeIgnored (bool, optional)
Ignore time of previous field
See field “arrivalTimeSlotEarliestTimeIgnored”
â–ª
latestEndLoadingDateTime (datetime, optional)
Loading date and time at the latest
See field “arrivalTimeSlotEarliestDateTime”
â–ª
latestEndLoadingTimeIgnored (bool, optional)
Ignore time of previous field
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
217/722
â–ª
See field “arrivalTimeSlotEarliestTimeIgnored”
â–ª
remarks (string[], optional)
â–ª
internalMetadata (json)
Used by Artemis Core to store and forward useful info (ex: for OTM)
â–ª
equipmentGroup (object)
The equipmentGroup a materialGroup belongs to. (rail only)
â–ª
metadata (json)
EquipmentGroup
â–ª identifier (string)
â–ª
sequence (int, optional)
â–ª
â–ª
unloadingTransportLocationIdentifier (string) 0.0.78.0
Since version 0.0.78.0 this information is no longer needed since it can actually be deduced
from the unloadingLocation of the materialGroup to which the EG belongs.
loadingTransportLocationIdentifier (string) 0.0.78.0
Since version 0.0.78.0 this information is no longer needed since it can actually be deduced
from the loadingLocation of the loading instruction to which the EG belongs.
targetEquipmentPublicIdentifier (string, optional)
â–ª
internalMetadata (json, optional)
â–ª
metadata (json, optional)
Can contain totalPlannedWeight (int)
constraints (json, optional) see definition of DTO above
â–ª
â–ª
Loading / unloading TransportLocation
â–ª
identifier (string)
Unique business identifier of the loading location given by the TMS owner
â–ª
name (string)
Business name of the loading location given by the TMS owner
â–ª
streetNameAndNumber (string)
Street name and number
â–ª
postalCode (string)
Postal code
â–ª
cityName (string)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
218/722
City name
â–ª
countryIsoCode (string)
Country ISO Code
â–ª
warehouseLocationIdentifier (string, optional)
â–ª
origin (string)
Preregistration (optional)
It is possible for the to register trucks or ships in advance (before arriving at the mill).
The VMS can use this information to create the vehicle when needed.
â–ª
type (string) = ['truck', 'ship']
The type of preregistration
â–ª
executingSupplierIdentifier (string, optional)
In the pre-registration one could register the "supplier" (affreteur) and the "real executing
supplier" (The Real company that will execute the transport). This can be the same or different
from the supplier company. This will then be used by the VMS to pre-fill some fields during the
registration of the truck when it arrives at the mill.
â–ª
driverOrCaptainNames [ (string), … ] (optional),
The list of driver names
â–ª
tractorName (string, optional, truck specific)
Platenumber of truck
â–ª
trailerName (string, optional, truck specific)
Platenumber of trailer
â–ª
trailerType (string, optional, truck specific)
â–ª
carrier (string, optional, truck specific)
â–ª
tare (string, optional, truck specific),
â–ª
derogationMass (long, optional, truck specific),
The mass that will override the MAM if given.
â–ª
derogationCertificateNumber (string, optional, truck specific),
â–ª
grossVehicleWeightRating (long, optional, truck specific),
Truck specific properties
â–ª
shipName (string, optional, ship specific),
â–ª
imo (string, optional, ship specific),
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
219/722
â–ª
vin (string, optional, ship specific),
â–ª
eni (string, optional, ship specific)
Equipments (optional)
â–ª
identifier (string)
Provided by TMS
â–ª
vehicleTypeIdentifier (string, optional)
Must exist as VehicleType (ex: carrier, tractor, barge, vessel, trailer, …)
â–ª
vehicleName (string, optional)
Wagon number (will in most cases not be known)
â–ª
medata (json, optional)
â–ª
internalMetadata (json, optional)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
220/722
Constraints
Constraint Name
Unit
FullTrain
Boolean (Yes/No)
MaximumLength
Meters (0 numbers after ",")
CustomsDocumentsRequired
Boolean (Yes/No)
MaxAuthorizedChargePerWagon
Kg (up to 3 numbers after ",")
MaxAuthorizedMassPerVehicle
Kg (up to 3 numbers after ",")
MaxAuthorizedMass
Kg (up to 3 numbers after ",")
DerogationMaxAuthorizedMass
Kg(up to 3 numbers after ",")
MaximumTonnage
Kg (up to 3 numbers after ",")
EquipmentTypeNotToUse
Equipment Type PublicIdentifier
EquipmentTypeToUse
Equipment Type PublicIdentifier
MaximumNumberOfVehicles
Number (integer)
RequestedNumberOfVehicles
Number (integer)
MinimumNumberOfVehicles
Number (integer)
MaxMaterialUnitWeight
Kg, up to 3 numbers after ","
DeadFreightMinimumWeight
Kg, up to 3 numbers after ","
MinimumDistanceCoilsCradle
Meters, Up to 3 numbers after ","
FreeText
Text (No unit)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
221/722
Responses
Response 200 (Ok)
Response 400 (BadRequest)
28
Transport without LoadingInstruction
At least one MaterialGroup item is required in the LoadingInstruction
MaterialGroup are duplicated in the LoadingInstruction
Predefined MaterialUnit is repeated in two MaterialGroups in the same
LoadingInstruction
‘UnloadingTransportLocationIdentifier’ specified in MaterialGroup is not the same
than the one given in related EquipmentGroup
‘LoadingTransportLocationIdentifier’ specified in EquipmentGroup not found in the
LoadingInstruction
‘RequestedNumberOfUnits’ and ‘RequestedWeight’ cannot be defined at the same
time
At least Min, Target or Max of ‘RequestedNumberOfUnits’ or ‘RequestedWeight’
should be defined
‘RequestedNumberOfUnits’ or ‘RequestedWeight’ data unconsistency – see rules
here above in properties description
‘MaterialSelectionCriteriumProperty’ set without ‘MaterialSelectionCriteriumValue’
‘MaterialSelectionCriteriumValue’ set without ‘MaterialSelectionCriteriumProperty’
Any mandatory fields not specified in
Transport/LoadingInstruction/MaterialGroup/EquipmentGroup
Response 403 (Forbidden)
19
Transport ‘{0}' is closed or completed
28
‘UnloadingTransportLocationIdentifier’ cannot be updated on MaterialGroup
28
Different ‘UnloadingTransportLocationIdentifier’ on the same EquipmentGroup
within a Transport
29
Transport mode cannot be changed
34
Operation not allowed on Transport '{0}' when one LI is locked
36
Transport '{0}' could not be updated, because it is more recent than the request
0.0.51.0
49
Multiple LoadingInstructions not allowed on same Transport with bulk method
50
MaterialUnit(s) are marked for deletion
51
MaterialUnit(s) not found
2733
Could not update LoadingInstruction because it's closed
2734
Could not update LoadingInstruction because it’s locked
2736
Could not update LoadingInstruction because it is in 'confirmed' state. 1.71.0
3001
Equipment: ‘{0}’ does not exist in transport 1.78.0
3002
Cannot delete equipment because it is linked to one or multiple material groups
1.78.0
3003
Cannot delete equipment because it is linked to one or multiple unloading material
unit 1.81.0
68
Loading TransportLocation (site) cannot be updated (previous: '{0}' / new: '{1}') for
Transport '{2}' 1.81.0
69
Equipment(s) are already linked to Transport '{0}' on site '{1}': {2} 1.81.0
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
222/722
Example
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
223/722
{
…
"transport": {
"owner": "string",
"type": "string",
"mode": "string",
"urgent": true,
"supplierIdentifier": "string",
"metadata": {},
"lastTmsUpdateTimestamp": "2020-03-31T11:23:09.481Z",
"lastTmsUpdateBy": "string",
"shuttle": true,
"constraints": [
{
"constraintType": "MaxAuthorizedMass",
"constraintValue": "22000",
"constraintUnit": "kg"
},
{
"constraintType": "DerogationMaxAuthorizedMass",
"constraintValue": "22500",
"constraintUnit": "kg"
}
],
"loadingInstruction": {
"arrivalTimeSlotStrict": true,
"arrivalTimeSlotEarliestDateTime": "2020-03-31T11:23:09.481Z",
"arrivalTimeSlotEarliestTimeIgnored": true,
"arrivalTimeSlotLatestDateTime": "2020-03-31T11:23:09.481Z",
"arrivalTimeSlotLatestTimeIgnored": true,
"estimatedDepartureDateTime": "2020-03-31T11:23:09.481Z",
"estimatedDepartureTimeIgnored": true,
"shuntingDateTime": "2020-03-31T11:23:09.481Z",
"shuntingTimeIgnored": true,
"constraints": [],
"miscRemarks": { },
"internalMetadata": {},
"materialGroups": [
{
"identifier": "string",
"earliestStartLoadingDateTime": "2020-03-31T11:23:09.481Z",
"earliestStartLoadingTimeIgnored": true,
"latestEndLoadingDateTime": "2020-03-31T11:23:09.481Z",
"latestEndLoadingTimeIgnored": true,
"metadata": "string",
"unloadingTransportLocation": {
"identifier": "string",
"name": "string",
"streetNameAndNumber": "string",
"postalCode": "string",
"cityName": "string",
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
224/722
"countryIsoCode": "string",
"warehouseLocationIdentifier": "string",
"origin": "string"
},
"requestedWeight": {
"min": 0,
"max": 0,
"target": 0
},
"requestedNumberOfUnits": {
"min": 0,
"max": 0,
"target": 0
},
"remarks": [“remark”]
"miscRemarks": { },
"materialUnits": [
{
"lmiContext": "string",
"grossWeight": 0,
"lmiNumber": "string",
"scaleUpMaterialUnitIdentifier": "string",
"mustLoad": true,
"locationLabel": "string"
}
],
"materialSelectionCriteriumProperty": "scaleUpArticleId",
"materialSelectionCriteriumValue": "string",
"materialSelectionCriteriumRemark": "string",
"logisticProductTypeIdentifier": "string",
"isLocked": true,
"constraints": [],
"internalMetadata": {},
"equipmentGroup": {
"identifier": "string",
"sequence": 0,
"unloadingTransportLocationIdentifier": "string",
"loadingTransportLocationIdentifier": "string",
"targetEquipmentPublicIdentifier": "string",
"remarks": [“remark”],
"miscRemarks": { },
"internalMetadata": {},
"constraints": []
}
}
],
"shipmentAsWork": false,
"loadingTransportLocation": {
"identifier": "string",
"name": "string",
"streetNameAndNumber": "string",
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
225/722
"postalCode": "string",
"cityName": "string",
"countryIsoCode": "string",
"warehouseLocationIdentifier": "string",
"origin": "string"
},
"identifier": "string"
},
"preregistration": {
"type": "truck",
"driverOrCaptainNames": [
"string"
],
"vehicleName": "string",
"trailerName": "string",
"trailerType": "string",
"tare": 0,
"grossVehicleWeightRating": 0,
"derogationMass": 0,
"derogationCertificateNumber": "string",
},
}
}
Notification(s)
{
"resourceType": "transport",
"notificationType": "StateChanged"
"scope": "",
"sender": "Artemis.Core.Execution",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-04-15T09:45:58.7051112+00:00",
"requestedBy": "owner"
},
"oldValue": null,
"newValue": "Confirmed",
"owner": "TMS",
"transportIdentifier": "ID000000",
"siteIdentifier": "LIE",
"type": "road"
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
226/722
For information, theses other notifications are also sent by micro services.
{
"resourceType": "transport",
"notificationType": "Create"
"scope": "",
"sender": "Artemis.Core.Transport",
"data": {
"context": {
"key": "value"
},
"id": "ID000000",
"type": "Shipment | Intrasite", 0.0.58.0
"originalRequestInfo": {
"requestedAt": "2020-04-02T15:24:18.9494552+02:00",
"requestedBy": "owner"
},
"owner": "TMS",
"instructions": null,
"mode": "truck",
"equipments” : [ { 0.0.78.0
"identifier" : "EQ0001",
"vehicleTypeIdentifier" : "vehicleType1",
"vehicleName" : "vehicleName1",
"metadata" : {},
"internalMetadata" : {}
}]
}
Or
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
227/722
{
"resourceType": "transport",
"notificationType": "Update"
"scope": "",
"sender": "Artemis.Core.Transport",
"data": {
"id": "ID000000",
"type": "Shipment | Intrasite", 0.0.58.0
"context": {
"key": "value"
},
"owner": "ownerNEW",
"mam":
{
"value": "22000",
"derogation": "22200"
},
"instructions": [
{
"id": "72d444bc-c667-eb11-9360-10e7c6313bdb",
"identifier": "ID111111.ID000000", 0.0.58.0
"transportIdentifier": "ID000000",
"siteIdentifier": "ID111111",
"materialGroups": [
{
"identifier": "ID000000",
"targetNumberOfUnits": 2,
"equipmentIdentifiers": ["EQ0001"]
},
{
"identifier": "ID111111",
"targetNumberOfUnits": 2,
"equipmentIdentifiers": ["EQ0001"]
}
]
}
]
},
"mode": "airplane",
"equipments” : [ { 0.0.78.0
"identifier" : "EQ0001",
"vehicleTypeIdentifier" : "vehicleType1",
"vehicleName" : "vehicleName1",
"metadata" : {},
"internalMetadata" : {}
}],
"previousData": {
"materialGroups": { 1.73.0
"updated": [
{
"identifier": "ID000000",
"targetNumberOfUnits": 2,
"materialUnits": [
{
"lmiContext": "LIE",
"lmiNumber": "ID000000",
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
228/722
"mustLoad": true,
"weight": 10000
},
{
"lmiContext": "LIE",
"lmiNumber": "ID111111",
"mustLoad": true,
"weight": 10000
}
]
},
{
"identifier": "ID111111",
"targetNumberOfUnits": 2,
"materialUnits": [
{
"lmiContext": "LIE",
"lmiNumber": "ID222222",
"mustLoad": true,
"weight": 10000
},
{
"lmiContext": "LIE",
"lmiNumber": "ID333333",
"mustLoad": true,
"weight": 11111
}
]
}
],
"removed": []
},
"mam": null
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
229/722
{
"resourceType": "loadingInstruction",
"notificationType": "Create/Update"
"scope": "",
"sender": "Artemis.Core.Transport",
"data": {
"context": {
"key": "value"
},
"id": {
"identifier": "ID000000",
"transportIdentifier": "ID000000",
"transportType": "Shipment | Intrasite", 0.0.58.0
},
"mode": "truck | wagon | barge | vessel | airplane", 1.0.85
"originalRequestInfo": {
"requestedAt": "2020-04-02T15:28:06.1045871+02:00",
"requestedBy": "TMS"
}
}
}
{
"resourceType": "loadingInstruction",
"notificationType": "LoadingInstructionStateChanged",
"sender": "Artemis.Core.Transport",
"scope": "xxx",
"data": {
"identifier": "ID111111.ID000000", 0.0.58.0
"transportIdentifier": "ID000000",
"transportType": "Shipment", 0.0.58.0
"siteIdentifier": "ID111111",
"owner": "owner",
"oldValue": "Created",
"newValue": "Confirmed",
"mode": "truck | wagon | barge | vessel | airplane", 1.0.85
"originalRequestInfo": {
"requestedAt": "2020-04-15T17:12:34.5+02:00",
"requestedBy": "Requester-33.0TMCSW"
},
"context": {}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
230/722
{
"resourceType": "transport",
"notificationType": "PartialUpdate"
"scope": "",
"sender": "Artemis.Core.Transport",
"data": {
"id": "ID000000",
"type": "Shipment | Intrasite", 0.0.58.0
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-04-02T15:30:11.741817+02:00",
“requestedBy": "TMS"
},
"definitionLevel": "fullyDefined",
"instructions": [],
"mode": "truck",
"materialGroups": [{
"identifier": "ID000000",
"targetWeight": null
"targetNumberOfUnits": 1,
"equipmentIdentifiers": ["EQ0001"]
}]
}
}
The notification ‘TransportFullyDefined’ is sent only when DefinitionLevel is updated from ‘Draft’ to
‘Fully’.
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
231/722
{
"resourceType": "transport",
"notificationType": "TransportFullyDefined",
"sender": "Artemis.Core.Transport",
"scope": "xxx",
"data": {
"id": "TransportA-33.0TMCSW",
"type": "Shipment | Intrasite", 0.0.58.0
"context": {},
"originalRequestInfo": {
"requestedAt": "2020-04-15T17:12:34.5+02:00",
"requestedBy": "Requester-33.0TMCSW"
},
"owner": "MES-Owner",
"instructions": [
{
"id": "98db1a1c-ff7f-eb11-a2f0-001dd8b7466b",
"siteIdentifier": "LIE",
"mam": { 0.0.62.0
"value": 33333,
"derogation": 44444
},
"materialGroups": [
{
"identifier": "materialGroupA-33.0TMCSW",
"targetNumberOfUnits": 4,
"targetWeight": 40, 0.0.65.0
"materials": [ 0.0.65.0
{
"lmiContext" : "LIE",
"lmiNumber" : "ID000000",
"mustLoad" : true,
"Weight" : 10
}
],
"equipmentIdentifiers": ["EQ0001"]
}
]
}
],
"unloadingInstructions": [ 0.0.65.0
{
"id": "1d32ace4-f36e-ec11-9377-10e7c6313bdb",
"unloadingTransportLocation": {
"siteIdentifier": "LIE",
"locationIdentifier": "ID000000"
},
"identifier": "ID000000",
"materialGroups": [
{
"loadingInstructionIdentifier": "ID000000",
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
232/722
"materialGroupIdentifier": "ID000000"
}
],
"materialUnits": [
{
"lmiContext": "LIE",
"lmiNumber": "ID000000",
"weight": 40,
"equipmentIdentifier": “EQ0” 1.81.0
}
]
}
],
"equipments” : [ { 0.0.78.0
"identifier" : "EQ0001",
"vehicleTypeIdentifier" : "vehicleType1",
"vehicleName" : "vehicleName1",
"metadata" : {},
"internalMetadata" : {}
}],
"mode": "wagon",
"mam": { 0.0.62.0
"value": 11111,
"derogation": 22222
}
}
ExecutionUpdated 1.84.0
This notification is being triggered after a transport instruction has been properly integrated in the
execution context whenever a transport, a loading instruction or unloading inststruction has been
changed in the instruction context.
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
233/722
{
"resourceType": "transport",
"notificationType": "ExecutionUpdated"
"scope": "",
"sender": "Artemis.Core.Execution",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-04-15T09:45:58.7051112+00:00",
"requestedBy": "owner"
},
"owner": "TMS",
"transportIdentifier": "ID000000",
"siteIdentifier": "LIE",
"type": "road",
"transportType": "Shipment"
}
}
Create Transport
0.0.61.0
HTTP Request
POST /transport-api/v1/transport-headers/
1.61.0
Request Body
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
234/722
{
…
transport {
identifier (string),
owner (string),
type (string) = [‘shipment’, ’intrasite’],
definitionLevel (string) = [‘Draft’, ‘FullyDefined’],
mode (string) = [‘truck’, ‘wagon’, ‘barge’, ‘vessel’, ‘airplane’],
urgent (bool),
supplierIdentifier (string, optional),
metadata (json, optional),
lastTmsMesUpdateTimestamp (datetime, optional), 0.0.63.0
lastTmsMesUpdateBy (string, optional), 0.0.63.0
shuttle (bool), 0.0.50.0
internalMetadata (json, optional), 0.0.57.0
constraints [
{
constraintType (string) = [FullTrain, MaximumLength, CustomsDocumentsRequired,
MaxAuthorizedMass, MaxAuthorizedChargePerWagon, MaxAuthorizedChargePerVehicle
0.0.69.0, DerogationMaxAuthorizedMass, MaximumTonnage, EquipmentTypeNotToUse,
EquipmentTypeToUse, MaximumNumberOfVehicles, RequestedNumberOfVehicles,
MinimumNumberOfVehicles, MaxMaterialUnitWeight, DeadFreightMinimumWeight,
MinimumDistanceCoilsCradle, FreeText, …]
constraintValue (string),
constraintUnit (string), 0.0.71.0
requestedVehicleTypeIdentifier (string, optional)
}
],
equipments [ { 0.0.78.0
identifier (string),
vehicleTypeIdentifier (string, optional),
vehicleName (string, optional),
metadata (json, optional),
internalMetadata (json, optional),
unloadingLocationIdentifiers (string[], optional) 1.84.0
}, …],
shipmentAsWork (bool) 1.84.0
}
}
Responses
Response 200 (Created)
Response 400 (BadRequest)
Response 409 (Conflict)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
235/722
Example
{
…
"transport": {
"identifier": "string",
"owner": "string",
"type": "string",
"mode": "string",
"urgent": true,
"supplierIdentifier": "string",
"metadata": {},
"lastTmsUpdateTimestamp": "2020-03-31T11:23:09.481Z",
"lastTmsUpdateBy": "string",
"shuttle": true,
"shipmentAsWork": false,
"constraints": [
{
"constraintType": "MaxAuthorizedMass",
"constraintValue": "22000",
"constraintUnit": "kg"
},
{
"constraintType": "DerogationMaxAuthorizedMass",
"constraintValue": "22500",
"constraintUnit": "kg"
}
]
}
}
Notification(s)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
236/722
{
"resourceType": "transport",
"notificationType": "Create"
"scope": "",
"sender": "Artemis.Core.Transport",
"data": {
"context": {
"key": "value"
},
"id": "ID000000",
"type": "Shipment | Intrasite",
"originalRequestInfo": {
"requestedAt": "2020-04-02T15:24:18.9494552+02:00",
"requestedBy": "owner"
},
"owner": "TMS",
"instructions": null,
"mode": "truck",
"equipments” : [ { 0.0.78.0
"identifier" : "EQ0001",
"vehicleTypeIdentifier" : "vehicleType1",
"vehicleName" : "vehicleName1",
"metadata" : {},
"internalMetadata" : {}
}]
}
1.84.0 ExecutionUpdated see chapter ExecutionUpdated 1.84.0
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
237/722
Update Transport
0.0.61.0
HTTP Request
PUT /transport-api/v1/transport-headers/{identifier} 1.61.0
Request Parameters
identifier (string)
Unique identifier of the transport used in the TMS owner and all over the
sites
Request Body
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
238/722
{
…
transport {
owner (string),
type (string) = [‘shipment’, ’intrasite’],
mode (string) = [‘truck’, ‘wagon’, ‘barge’, ‘vessel’, ‘airplane’],
urgent (bool),
supplierIdentifier (string, optional),
metadata (json, optional),
lastTmsMesUpdateTimestamp (datetime, optional), 0.0.63.0
lastTmsMesUpdateBy (string, optional), 0.0.63.0
shuttle (bool), 0.0.50.0
internalMetadata (json, optional), 0.0.57.0
constraints [
{
constraintType (string) = [FullTrain, MaximumLength, CustomsDocumentsRequired,
MaxAuthorizedMass, MaxAuthorizedChargePerWagon, MaxAuthorizedChargePerVehicle
0.0.69.0, DerogationMaxAuthorizedMass, MaximumTonnage, EquipmentTypeNotToUse,
EquipmentTypeToUse, MaximumNumberOfVehicles, RequestedNumberOfVehicles,
MinimumNumberOfVehicles, MaxMaterialUnitWeight, DeadFreightMinimumWeight,
MinimumDistanceCoilsCradle, FreeText, …]
constraintValue (string),
constraintUnit (string) 0.0.71.0
requestedVehicleTypeIdentifier (string, optional)
}
],
equipments [ { 0.0.78.0
identifier (string),
vehicleTypeIdentifier (string, optional),
vehicleName (string, optional),
metadata (json, optional),
internalMetadata (json, optional),
unloadingLocationIdentifiers (string[], optional) 1.84.0
}, …],
shipmentAsWork (bool) 1.84.0
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
239/722
Responses
Response 200 (Ok)
Response 201 (Created)
Response 400 (BadRequest)
28
Transport without LoadingInstruction
Response 403 (Forbidden)
19
Transport ‘{0}’ is closed or completed 0.0.72.0
29
Transport mode cannot be changed
34
Operation not allowed on Transport '{0}' when one LI is locked
36
Transport '{0}' could not be updated, because it is more recent than the request
0.0.51.0
49
Multiple LoadingInstructions not allowed on same Transport with bulk method
2733
Could not update LoadingInstruction because it's closed
2734
Could not update LoadingInstruction because it’s locked
2736
Could not update LoadingInstruction because it is in 'confirmed' state. 0.0.47.0
3002
Cannot delete equipment because it is linked to one or multiple material groups
1.78.0
3003
Cannot delete equipment because it is linked to one or multiple unloading material
unit 1.81.0
69
Equipment(s) are already linked to Transport '{0}' on site '{1}': {2} 1.81.0
Example
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
240/722
{
…
"transport": {
"identifier": "string",
"owner": "string",
"type": "string",
"mode": "string",
"urgent": true,
"supplierIdentifier": "string",
"metadata": {},
"lastTmsUpdateTimestamp": "2020-03-31T11:23:09.481Z",
"lastTmsUpdateBy": "string",
"shuttle": true,
"shipmentAsWork": false,
"constraints": [
{
"constraintType": "MaxAuthorizedMass",
"constraintValue": "22000",
"constraintUnit": "kg"
},
{
"constraintType": "DerogationMaxAuthorizedMass",
"constraintValue": "22500",
"constraintUnit": "kg"
}
]
}
}
Notification(s)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
241/722
{
"resourceType": "transport",
"notificationType": "Update"
"scope": "",
"sender": "Artemis.Core.Transport",
"data": {
"id": "ID000000",
"type": "Shipment | Intrasite", 0.0.58.0
"context": {
"key": "value"
},
"owner": "ownerNEW",
"mam":
{
"value": "22000",
"derogation": "22200"
},
"instructions": [
{
"id": "72d444bc-c667-eb11-9360-10e7c6313bdb",
"identifier": "ID111111.ID000000", 0.0.58.0
"transportIdentifier": "ID000000",
"siteIdentifier": "ID111111",
"materialGroups": [
{
"identifier": "ID000000",
"targetNumberOfUnits": 2,
"equipmentIdentifier": ["EQ0001"]
},
{
"identifier": "ID111111",
"targetNumberOfUnits": 2,
"equipmentIdentifier": ["EQ0001"]
},
"mam":
{
"value": "22000",
"derogation": "22200"
}
]
}
]
},
"equipments” : [ { 0.0.78.0
"identifier" : "EQ0001",
"vehicleTypeIdentifier" : "vehicleType1",
"vehicleName" : "vehicleName1",
"metadata" : {},
"internalMetadata" : {}
}],
"mode": "Truck"
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
242/722
}
The notification ‘TransportFullyDefined’ is sent only when DefinitionLevel is updated from ‘Draft’ to
‘Fully’.
1.84.0 ExecutionUpdated see chapter ExecutionUpdated 1.84.0
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
243/722
Partial update
0.0.43.0
To be able to change Transport ‘DefinitionLevel’ to ‘FullyDefined’, every LI(s) within it should have
the ‘Confirmed’ state. Otherwise, Artemis Core wil return back Forbidden (403) (see responses).
0.0.47.0
HTTP Request
PATCH /transport-api/v1/transport-headers/{identifier} 1.61.0
Request Parameters
identifier (string)
Unique identifier of the transport used in the TMS owner and all over the
sites
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
244/722
Request Body
{
…
transport: [
{
value (Json),
path (string),
op (string)
},
…
]
}
Responses
Response 204 (NoContent)
Response 403 (Forbidden)
19
Transport ‘{0}’ is closed or completed 0.0.72.0
261
Transport mode cannot be changed
35
Cannot change DefinitionLevel to FullyDefined because at least one loading
instruction is not in 'Confirmed' state 0.0.47.0
3002
Cannot delete equipment because it is linked to one or multiple material groups
1.78.0
3003
Cannot delete equipment because it is linked to one or multiple unloading material
unit 1.81.0
Response 404 (NotFound)
Transport not found
Example
PATCH /transport-api/v1/transports/ID000000
{
…
"transport": [
{
"value": { "metadata1":"value1"},
"path": "metadata",
"op": "replace",
},
…
]
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
245/722
Notification(s)
{
"notificationType": "PartialUpdate"
"resourceType": "transport",
"scope": "",
"sender": "Artemis.Core.Transport",
"data": {
"id": "ID000000",
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-04-02T15:30:11.741817+02:00",
requestedBy": "TMS"
},
"metadata": { "metadata1":"value1"},
"instructions": [],
"mode": "truck",
"equipments” : [ { 0.0.78.0
"identifier" : "EQ0001",
"vehicleTypeIdentifier" : "vehicleType1",
"vehicleName" : "vehicleName1",
"metadata" : {},
"internalMetadata" : {}
}]
}
}
The notification ‘TransportFullyDefined’ is sent only when DefinitionLevel is updated from ‘Draft’ to
‘Fully’.
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
246/722
{
"resourceType": "transport",
"notificationType": "TransportFullyDefined",
"sender": "Artemis.Core.Transport",
"scope": "xxx",
"data": {
"id": "TransportA-33.0TMCSW",
"type": "Shipment | Intrasite", 0.0.58.0
"context": {},
"originalRequestInfo": {
"requestedAt": "2020-04-15T17:12:34.5+02:00",
"requestedBy": "Requester-33.0TMCSW"
},
"owner": "MES-Owner",
"instructions": [
{
"id": "98db1a1c-ff7f-eb11-a2f0-001dd8b7466b",
"siteIdentifier": "loadingTransportLocationA-33.0TMCSW",
"mam": { 0.0.62.0
"value": 33333,
"derogation": 44444
},
"materialGroups": [
{
"identifier": "materialGroupA-33.0TMCSW",
"targetNumberOfUnits": 4,
"targetWeight": 40, 0.0.65.0
"materials": [ 0.0.65.0
{
"lmiContext" : "LIE",
"lmiNumber" : "ID000000",
"mustLoad" : true,
"Weight" : 10
}
]
}
]
}
],
"unloadingInstructions": [ 1.65.0
{
"id": "1d32ace4-f36e-ec11-9377-10e7c6313bdb",
"unloadingTransportLocation": {
"siteIdentifier": "LIE",
"locationIdentifier": "ID000000"
},
"identifier": "ID000000",
"materialGroups": [
{
"loadingInstructionIdentifier": "ID000000",
"materialGroupIdentifier": "ID000000"
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
247/722
}
],
"materialUnits": [
{
"lmiContext": "LIE",
"lmiNumber": "ID000000",
"weight": 40
}
]
}
],
"mode": "wagon",
"mam": { 0.0.62.0
"value": 11111,
"derogation": 22222
}
}
1.84.0 ExecutionUpdated see chapter ExecutionUpdated 1.84.0
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
248/722
Get by identifier
Since version 0.0.71 we recommend to use the Artemis.Transport.Query service to
retrieve this resource. The documentation is available directly in Swagger
(http://+:5505/swagger) but is rather close to this one although some addititional
information is available.
0.0.44.0
Retrieve a transport by identifier
HTTP Request
GET /transport-api/v1/transports/{identifier}
Request Parameters
identifier (string)
Responses
Response 200 (Ok)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
249/722
{
identifier (string),
owner (string),
type (string),
mode (string),
definitionLevel (string) = [‘Draft’, ‘FullyDefined’],
urgent (bool),
supplierIdentifier (string),
driverOrCaptainNames (string[]) = [‘’, ‘’, ‘’, …],
derogationMass (int),
derogationCertificateNumber (string),
metadata (Json),
grossVehicleWeightRating (int),
lastTmsMesUpdateTimestamp (datetime, optional), 0.0.63.0
lastTmsMesUpdateBy (string, optional), 0.0.63.0
shuttle (bool), 0.0.50.0
constraints [
{
constraintType (string) = [FullTrain, MaximumLength, CustomsDocumentsRequired,
MaxAuthorizedChargePerWagon, MaxAuthorizedChargePerVehicle 0.0.69.0,
MaxAuthorizedMass, DerogationMaxAuthorizedMass, MaximumTonnage,
EquipmentTypeNotToUse, EquipmentTypeToUse, MaximumNumberOfVehicles,
RequestedNumberOfVehicles, MinimumNumberOfVehicles, MaxMaterialUnitWeight,
DeadFreightMinimumWeight, MinimumDistanceCoilsCradle, FreeText, …]
constraintValue (string),
constraintUnit (string), 0.0.71.0
requestedVehicleTypeIdentifier (string, optional)
}
],
equipments [ 0.0.78.0
identifier (string),
vehicleTypeIdentifier (string, optional),
vehicleName (string, optional),
metadata (json, optional),
internalMetadata (json, optional),
unloadingLocationIdentifiers (string[], optional) 1.84.0
],
toRegularize (bool),
isActive (bool),
shipmentAsWork (bool) 1.84.0
loadingInstructions : [
{
… ,
localTransportId (string, optional)
} ],
preregistration 0.0.48.0 {
type (string) = ['truck', 'ship']
vehicleName (string),
driverOrCaptainNames [ (string), … ],
trailerName (string),
trailerType (string),
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
250/722
tare (long),
derogationMass (long),
derogationCertificateNumber (string),
grossVehicleWeightRating (long),
imo (string, optional),
vin (string, optional),
eni (string, optional)
}
],
unloadingInstructions : [ 1.65.0
{
id (Guid),
identifier (string),
unloadingTransportLocation {
siteIdentifier (string),
locationIdentifier (string, optional)
},
materialGroups ([
{
loadingInstructionIdentifier (string),
materialGroupIdentifier (string)
}, …], optional),
materialUnits ([
{
lmiContext (string),
lmiNumber (string)
}, …], optional)
}, … ]
}
Response 404 (NotFound)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
251/722
Example
{
"identifier": "Transport-1.0LP",
"owner": "string",
"type": "Shipment",
"mode": "Truck",
"definitionLevel": "FullyDefined",
"urgent": true,
"supplierIdentifier": "string",
"driverOrCaptainNames": [],
"derogationMass": 0,
"derogationCertificateNumber": "string",
"metadata": {},
"grossVehicleWeightRating": 0,
"lastTmsUpdateTimestamp": "2020-04-15T15:12:34.5+00:00",
"lastTmsUpdateBy": "string",
"shuttle": true,
"constraints": [],
"state": "Draft",
"toRegularize": false,
"isActive": false,
"loadingInstructions": [
{
…
},
"unloadingInstructions": [
{
…
}
]
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
252/722
Get by custom filter
Since version 0.0.71 we recommend to use the Artemis.Transport.Query service to
retrieve this resource. The documentation is available directly in Swagger
(http://+:5505/swagger) but is rather close to this one although some addititional
information is available.
0.0.44.0
Retrieve a transport on site by custom filter
HTTP Request
POST /transport-api/v1/transports/searches
Request Body
{
"query": {
…
},
"select": [
{
…
],
"paging": {
"pageSize": 0,
"pageNumber": 0
},
"orderBy": {
…
},
"includes": [ {
…
}]
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
253/722
Example
Get Transport with LoadingInstruction identifier equal to ‘637480064’
{
"query":{
"nodeType":"call",
"methodType":"Enumerable",
"methodName":"Any",
"arguments":[
{
"nodeType":"property",
"name":"loadingInstructions"
},
{
"nodeType":"lambda",
"body":{
"nodeType":"binary",
"operator":"equal",
"left":{
"nodeType":"property",
"name":"identifier",
"left":{
"nodeType":"parameter",
"type":"LoadingInstructionResult",
"name":"t"
}
},
"right":{
"nodeType":"constant",
"value":"637480064"
}
},
"parameters":[
"t"
]
}
]
},
"includes": [
{
"nodeType": "property",
"name": "loadingInstructions"
}],
"select":null,
"paging":null,
"orderBy":null
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
254/722
Get Transport with MaterialGroup identifier equal to ‘671900001’
{
"MethodType":"Enumerable",
"MethodName":"Any",
"Left":{
"Name":"loadingInstructions",
"nodeType":"property"
},
"Arguments":[
{
"Body":{
"MethodType":"Enumerable",
"MethodName":"Any",
"Left":{
"Name":"materialGroups",
"Left":{
"Type":"LoadingInstructionResult",
"Name":"t",
"nodeType":"parameter"
},
"nodeType":"property"
},
"Arguments":[
{
"Body":{
"Operator":"equal",
"Left":{
"Name":"identifier",
"Left":{
"Type":"MaterialGroupResult",
"Name":"m",
"nodeType":"parameter"
},
"nodeType":"property"
},
"Right":{
"Value":"671900001",
"nodeType":"constant"
},
"nodeType":"binary"
},
"Parameters":[
"m"
],
"nodeType":"lambda"
}
],
"nodeType":"call"
},
"Parameters":[
"t"
],
"nodeType":"lambda"
}
],
"nodeType":"call"
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
255/722
Sum material unit weight for each tansport
{
"select": [{
"fieldName": "Sum",
"node": {
"nodeType": "unary",
"operator": "convert",
"operand": {
"nodeType": "call",
"methodType": "Enumerable",
"methodName": "Sum",
"arguments": [{
"nodeType": "call",
"methodType": "Enumerable",
"methodName": "SelectMany",
"arguments": [{
"nodeType": "call",
"methodType": "Enumerable",
"methodName": "SelectMany",
"arguments": [{
"nodeType": "property",
"name": "LoadingInstructions",
"left": {
"nodeType": "parameter",
"name": "e"
}
}, {
"nodeType": "lambda",
"body": {
"nodeType": "property",
"name": "MaterialGroups",
"left": {
"nodeType": "parameter",
"name": "l"
}
},
"parameters": [
"l"
]
}
]
}, {
"nodeType": "lambda",
"body": {
"nodeType": "property",
"name": "MaterialUnits",
"left": {
"nodeType": "parameter",
"name": "m"
}
},
"parameters": [
"m"
]
}
]
}, {
"nodeType": "lambda",
"body": {
"nodeType": "property",
"name": "GrossWeight",
"left": {
"nodeType": "parameter",
"name": "p"
}
},
"parameters": [
"p"
]
}
]
},
"type": "Object",
"isNullable": false
}
}
]
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
256/722
Get Transport with EquipmentGroup identifier equal to ‘671900001’, select ‘Identifier’ and ‘Owner’ of
Transport and order by ‘Identifier’.
{
"query":{
"MethodType":"Enumerable",
"MethodName":"Any",
"Left":{
"Name":"loadingInstructions",
"nodeType":"property"
},
"Arguments":[
{
"Body":{
"MethodType":"Enumerable",
"MethodName":"Any",
"Left":{
"Name":"materialGroups",
"Left":{
"Type":"LoadingInstructionResult",
"Name":"t",
"nodeType":"parameter"
},
"nodeType":"property"
},
"Arguments":[
{
"Body":{
"Operator":"equal",
"Left":{
"Name":"identifier",
"Left":{
"Name":"EquipmentGroup",
"Left":{
"Type":"MaterialGroupResult",
"Name":"m",
"nodeType":"parameter"
},
"nodeType":"property"
},
"nodeType":"property"
},
"Right":{
"Value":"671900001",
"nodeType":"constant"
},
"nodeType":"binary"
},
"Parameters":[
"m"
],
"nodeType":"lambda"
}
],
"nodeType":"call"
},
"Parameters":[
"t"
],
"nodeType":"lambda"
}
],
"nodeType":"call"
},
"select":[
{
"fieldName":"identifier",
"node":{
"nodeType":"property",
"name":"identifier"
}
},
{
"fieldName":"owner",
"node":{
"nodeType":"property",
"name":"owner"
}
}
],
"paging":{
"pageSize":20,
"pageNumber":1
},
"orderBy":{
"fields":[
{
"expression":{
"nodeType":"property",
"name":"identifier"
},
"order":"descending"
}
]
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
257/722
Responses
Response 200 (Ok)
{
totalPages (int),
hasPreviousPage (bool),
hasNextPage (bool),
pageIndex (int),
pageSize (int),
totalCount (int),
items [
{
owner (string),
mode (string) = [‘Truck’, ‘Wagon’, ‘Barge’, ‘Vessel’, ‘Airplane’],
type (string),
definitionLevel (string) = [‘Draft’, ‘FullyDefined’],
urgent (bool),
supplierIdentifier (string),
metadata (Json),
lastTmsMesUpdateTimestamp (datetime, optional), 0.0.63.0
lastTmsMesUpdateBy (string, optional), 0.0.63.0
shuttle (bool), 0.0.50.0
constraints (string) = [‘’, ‘’, ‘’, …],
toRegularize (bool),
isActive (bool),
loadingInstructions : [
{
…
}
]
}
]
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
258/722
Example
{
"totalPages": 1,
"hasPreviousPage": false,
"hasNextPage": false,
"pageIndex": 0,
"pageSize": 20,
"totalCount": 1,
"items": [
{
"owner": "string",
"type": "Shipment",
"mode": "Truck",
"definitionLevel": "FullyDefined",
"urgent": true,
"supplierIdentifier": "string",
"driverOrCaptainNames": [],
"derogationMass": 0,
"derogationCertificateNumber": "string",
"metadata": {},
"grossVehicleWeightRating": 0,
"lastTmsUpdateTimestamp": "2020-04-15T15:12:34.5+00:00",
"lastTmsUpdateBy": "string",
"shuttle": true,
"constraints": [],
"identifier": "Transport13.0Snap",
"toRegularize": false,
"isActive": false,
"loadingInstructions": [
{
"arrivalTimeSlotStrict": true,
"arrivalTimeSlotEarliestDateTime": "2020-04-15T15:12:34.5+00:00",
"arrivalTimeSlotEarliestTimeIgnored": true,
"arrivalTimeSlotLatestDateTime": "2020-04-15T15:12:34.5+00:00",
"arrivalTimeSlotLatestTimeIgnored": true,
"estimatedDepartureDateTime": "2020-04-15T15:12:34.5+00:00",
"estimatedDepartureTimeIgnored": true,
"shuntingDateTime": "2020-04-15T15:12:34.5+00:00",
"shuntingTimeIgnored": true,
"miscRemarks": { },
"materialGroups": [],
"loadingTransportLocation": null,
"identifier": "Transport13.0Snap.loadingTransportLocation13.0Snap",
"id": "fbe818dc-e9e2-ea11-a2e6-001dd8b7466b",
"state": "Confirmed",
"isChartered": true,
"locked": false,
"internalMetadata": {},
}]
}]
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
259/722
Get by identifier of global transport (LI)
0.0.45.0
Retrieve all transport(s) (Loading Instruction(s)) on site by global transport identifier
HTTP Request
GET /transport-api/v1/transports/{transportIdentifier}/loadinginstructions
Request Parameters
transportIdentifier (string)
Responses
Response 200 (Ok)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
260/722
[
{
identifier (string),
id (Guid),
state (string) = [‘Created’, ‘FullyDefined’, ‘Ordered’, ‘Confirmed’, ‘Arrived’, ‘Executed’, ‘Closed’,
‘Canceled’], 0.0.47.0
locked (bool),
arrivalTimeSlotStrict (bool, optional),
arrivalTimeSlotEarliestDateTime (datetime, optional),
arrivalTimeSlotEarliestTimeIgnored (bool, optional),
arrivalTimeSlotLatestDateTime (datetime, optional),
arrivalTimeSlotLatestTimeIgnored (bool, optional),
estimatedDepartureDateTime (datetime, optional),
estimatedDepartureTimeIgnored (bool, optional),
adjustedDepartureDateTime (datetime, optional), 0.0.72.0,
shuntingDateTime (datetime, optional),
shuntingTimeIgnored (bool, optional),
isChartered (bool, optional), 0.0.47.0
remarks (string[], optional), 0.0.49.0
miscRemarks (json, optional), 0.0.68.0
internalMetadata (json, optional), 0.0.56.0
cimStatus (string, optional) = [‘requested’, ‘cancelled’, ‘accepted’, ‘notNeeded’,
‘refused’], 0.0.51.0
constraints [
{
constraintType (string),
constraintValue (string),
constraintUnit (string) 0.0.71.0
}, …
],
departureAllowed (bool, optional), 0.0.54.0
materialGroups [
{
identifier (string),
isLocked (bool),
earliestStartLoadingDateTime (datetime, optional),
earliestStartLoadingTimeIgnored (bool, optional),
latestEndLoadingDateTime (datetime, optional),
latestEndLoadingTimeIgnored (bool, optional),
materialSelectionCriteriumProperty (string, optional) = [‘ScaleUpArticleId’,
‘OrderItemId’, ‘ScheduledAgreementId’, ‘ShipmentInstructionId’, ‘ShipmentProgramId’, …],
materialSelectionCriteriumValue (string, optional),
materialSelectionCriteriumRemark (string, optional),
logisticProductTypeIdentifier (string),
isLocked (bool),
remarks (string[], optional), 0.0.49.0
miscRemarks (json, optional), 0.0.68.0
internalMetadata (json, optional), 0.0.56.0
equipments [ 0.0.78.0
identifier (string),
vehicleTypeIdentifier (string, optional),
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
261/722
vehicleName (string, optional),
metadata (json, optional),
internalMetadata (json, optional)
],
constraints [
{
constraintType (string),
constraintValue (string),
constraintUnit (string) 0.0.71.0
}, …
],
unloadingTransportLocation {
identifier (string),
name (string),
streetNameAndNumber (string),
postalCode (string),
cityName (string),
countryIsoCode (string),
warehouseLocationIdentifier (string, optional),
origin (string)
},
requestedWeight {
min (int, optional),
max (int, optional),
target (int, optional)
} (optional),
requestedNumberOfUnits {
min (int, optional),
max (int, optional),
target (int, optional)
} (optional),
materialUnits [
{
lmiContext (string),
lmiNumber (string),
mustLoad (bool, optional),
locationLabel (string, optional)
}, …
],
equipmentGroup {
identifier (string),
dummy (bool),
sequence (int, optional),
unloadingTransportLocationIdentifier (string),
loadingTransportLocationIdentifier (string),
targetEquipmentPublicIdentifier (string, optional),
remarks (string[], optional), 0.0.53.0
miscRemarks (json, optional), 0.0.68.0
internalMetadata (json, optional), 0.0.56.0
constraints [
{
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
262/722
constraintType (string),
constraintValue (string),
constraintUnit (string) 0.0.71.0
}, …
]
}, …
],
loadingTransportLocation {
identifier (string),
name (string),
streetNameAndNumber (string),
postalCode (string),
cityName (string),
countryIsoCode (string),
warehouseLocationIdentifier (string, optional),
origin (string),
}
}
]
Response 404 (NotFound)
Example
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
263/722
[
{
"identifier": "Transport-0.1Snap.loadingTransportLocation-0.1Snap",
"id": "55185b0f-e6e2-ea11-a2e6-001dd8b7466b",
"state": "Confirmed",
"isChartered": true,
"locked": false,
"arrivalTimeSlotStrict": true,
"arrivalTimeSlotEarliestDateTime": "2020-04-15T15:12:34.5+00:00",
"arrivalTimeSlotEarliestTimeIgnored": true,
"arrivalTimeSlotLatestDateTime": "2020-04-15T15:12:34.5+00:00",
"arrivalTimeSlotLatestTimeIgnored": true,
"estimatedDepartureDateTime": "2020-04-15T15:12:34.5+00:00",
"estimatedDepartureTimeIgnored": true,
"shuntingDateTime": "2020-04-15T15:12:34.5+00:00",
"shuntingTimeIgnored": true,
"isChartered": null,
"internalMetadata": {},
"materialGroups": [
{
"identifier": "materialGroupA-0.1Snap",
"earliestStartLoadingDateTime": "2020-04-15T15:12:34.5+00:00",
"earliestStartLoadingTimeIgnored": true,
"latestEndLoadingDateTime": "2020-04-15T15:12:34.5+00:00",
"latestEndLoadingTimeIgnored": true,
"unloadingTransportLocation": {
"identifier": "unloadingTransportLocation-0.1Snap",
"name": "string",
"streetNameAndNumber": "string",
"postalCode": "string",
"cityName": "string",
"countryIsoCode": "BE",
"warehouseLocationIdentifier": "string",
"origin": "string"
},
"internalMetadata": {},
"requestedWeight": {
"min": null,
"max": null,
"target": null
},
"requestedNumberOfUnits": {
"min": 1,
"max": 3,
"target": 2
},
"materialUnits": [
{
"lmiContext": "LIE",
"grossWeight": null,
"lmiNumber": "MU-Snap0.1.1",
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
264/722
"scaleUpMaterialUnitIdentifier": null,
"mustLoad": true,
"locationLabel": "Hall"
}
],
"totalMaterialWeight": null,
"materialCount": 0,
"materialSelectionCriteriumProperty": "ScaleUpArticleId",
"materialSelectionCriteriumValue": "string",
"materialSelectionCriteriumRemark": "string",
"logisticProductTypeIdentifier": "string",
"isLocked": true,
"equipmentGroup": {
"sequence": 0,
"unloadingTransportLocationIdentifier": "unloadingTransportLocation-0.1Snap",
"loadingTransportLocationIdentifier": "loadingTransportLocation-0.1Snap",
"targetEquipmentPublicIdentifier": null,
"identifier": "EquipmentGroup-0.1Snap",
"dummy": true,
"remarks": [“remark”],
"miscRemarks": { },
"internalMetadata": {},
}
}
],
"loadingTransportLocation": {
"identifier": "loadingTransportLocation-0.1Snap",
"name": "loadingTrsLocationName-0.1Snap",
"streetNameAndNumber": "string",
"postalCode": "string",
"cityName": "string",
"countryIsoCode": "BE",
"warehouseLocationIdentifier": "string",
"origin": "string"
}
}
]
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
265/722
Get by identifier for a loading site (LI)
0.0.44.0
Retrieve a transport on site by identifier
HTTP Request
GET /transport-api/v1/transports/{transportIdentifier}/loadinginstructions/{identifier}
Request Parameters
transportIdentifier (string)
identifier (string)
LI identifier
Responses
Response 200 (Ok)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
266/722
{
identifier (string),
id (Guid),
state (string) = [‘Created’, ‘Ordered’, ‘Confirmed’, ‘Arrived’, ‘Executed’, ‘Closed’, ‘Canceled’],
0.0.48.0
locked (bool),
arrivalTimeSlotStrict (bool, optional),
arrivalTimeSlotEarliestDateTime (datetime, optional),
arrivalTimeSlotEarliestTimeIgnored (bool, optional),
arrivalTimeSlotLatestDateTime (datetime, optional),
arrivalTimeSlotLatestTimeIgnored (bool, optional),
estimatedDepartureDateTime (datetime, optional),
estimatedDepartureTimeIgnored (bool, optional),
adjustedDepartureDateTime (datetime, optional), 0.0.72.0,
shuntingDateTime (datetime, optional),
shuntingTimeIgnored (bool, optional),
isChartered (bool, optional), 0.0.47.0
remarks (string[], optional), 0.0.49.0
miscRemarks (string[], optional), 0.0.58.0
internalMetadata (json, optional), 0.0.56.0,
metadata (json, optional), 0.0.60.0
cimStatus (string, optional) = [‘requested’, ‘cancelled’, ‘accepted’, ‘notNeeded’,
‘refused’], 0.0.51.0
constraints [
{
constraintType (string),
constraintValue (string),
constraintUnit (string) 0.0.71.0
}, …
],
departureAllowed (bool, optional), 0.0.54.0
materialGroups [
{
identifier (string),
isLocked (bool),
earliestStartLoadingDateTime (datetime, optional),
earliestStartLoadingTimeIgnored (bool, optional),
latestEndLoadingDateTime (datetime, optional),
latestEndLoadingTimeIgnored (bool, optional),
materialSelectionCriteriumProperty (string, optional) = [‘ScaleUpArticleId’,
‘OrderItemId’, ‘ScheduledAgreementId’, ‘ShipmentInstructionId’, ‘ShipmentProgramId’, …],
materialSelectionCriteriumValue (string, optional),
materialSelectionCriteriumRemark (string, optional),
logisticProductTypeIdentifier (string),
isLocked (bool),
remarks (string[], optional), 0.0.49.0
miscRemarks (string[], optional), 0.0.58.0
internalMetadata (json, optional), 0.0.56.0
equipments [ 0.0.78.0
identifier (string),
vehicleTypeIdentifier (string, optional),
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
267/722
vehicleName (string, optional),
metadata (json, optional),
internalMetadata (json, optional)
],
constraints [
{
constraintType (string),
constraintValue (string),
constraintUnit (string) 0.0.71.0
}, …
],
unloadingTransportLocation {
identifier (string),
name (string),
streetNameAndNumber (string),
postalCode (string),
cityName (string),
countryIsoCode (string),
warehouseLocationIdentifier (string, optional),
origin (string)
},
requestedWeight {
min (int, optional),
max (int, optional),
target (int, optional)
} (optional),
requestedNumberOfUnits {
min (int, optional),
max (int, optional),
target (int, optional)
} (optional),
materialUnits [
{
lmiContext (string),
lmiNumber (string),
mustLoad (bool, optional),
locationLabel (string, optional)
}, …
],
equipmentGroup {
identifier (string),
dummy (bool),
sequence (int, optional),
unloadingTransportLocationIdentifier (string),
loadingTransportLocationIdentifier (string),
targetEquipmentPublicIdentifier (string, optional),
remarks (string[], optional), 0.0.53.0
miscRemarks (string[], optional), 0.0.58.0
internalMetadata (json, optional), 0.0.56.0
metadata, (json, optional), 0.0.60.0
constraints [
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
268/722
{
constraintType (string),
constraintValue (string),
constraintUnit (string) 0.0.71.0
}, …
]
}, …
],
loadingTransportLocation {
identifier (string),
name (string),
streetNameAndNumber (string),
postalCode (string),
cityName (string),
countryIsoCode (string),
warehouseLocationIdentifier (string, optional),
origin (string),
}
}
Response 404 (NotFound)
Example
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
269/722
{
"identifier": "Transport-0.1Snap.loadingTransportLocation-0.1Snap",
"id": "55185b0f-e6e2-ea11-a2e6-001dd8b7466b",
"state": "Confirmed",
"isChartered": true,
"locked": false,
"arrivalTimeSlotStrict": true,
"arrivalTimeSlotEarliestDateTime": "2020-04-15T15:12:34.5+00:00",
"arrivalTimeSlotEarliestTimeIgnored": true,
"arrivalTimeSlotLatestDateTime": "2020-04-15T15:12:34.5+00:00",
"arrivalTimeSlotLatestTimeIgnored": true,
"estimatedDepartureDateTime": "2020-04-15T15:12:34.5+00:00",
"estimatedDepartureTimeIgnored": true,
"shuntingDateTime": "2020-04-15T15:12:34.5+00:00",
"shuntingTimeIgnored": true,
"isChartered": null,
"internalMetadata": {},
"materialGroups": [
{
"identifier": "materialGroupA-0.1Snap",
"earliestStartLoadingDateTime": "2020-04-15T15:12:34.5+00:00",
"earliestStartLoadingTimeIgnored": true,
"latestEndLoadingDateTime": "2020-04-15T15:12:34.5+00:00",
"latestEndLoadingTimeIgnored": true,
"unloadingTransportLocation": {
"identifier": "unloadingTransportLocation-0.1Snap",
"name": "string",
"streetNameAndNumber": "string",
"postalCode": "string",
"cityName": "string",
"countryIsoCode": "BE",
"warehouseLocationIdentifier": "string",
"origin": "string"
},
"internalMetadata": {},
"requestedWeight": {
"min": null,
"max": null,
"target": null
},
"requestedNumberOfUnits": {
"min": 1,
"max": 3,
"target": 2
},
"materialUnits": [
{
"lmiContext": "LIE",
"grossWeight": null,
"lmiNumber": "MU-Snap0.1.1",
"scaleUpMaterialUnitIdentifier": null,
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
270/722
"mustLoad": true,
"locationLabel": "Hall"
}
],
"totalMaterialWeight": null,
"materialCount": 0,
"materialSelectionCriteriumProperty": "ScaleUpArticleId",
"materialSelectionCriteriumValue": "string",
"materialSelectionCriteriumRemark": "string",
"logisticProductTypeIdentifier": "string",
"isLocked": true,
"equipmentGroup": {
"sequence": 0,
"unloadingTransportLocationIdentifier": "unloadingTransportLocation-0.1Snap",
"loadingTransportLocationIdentifier": "loadingTransportLocation-0.1Snap",
"targetEquipmentPublicIdentifier": null,
"identifier": "EquipmentGroup-0.1Snap",
"dummy": true,
"remarks": [“remark”],
"miscRemarks": {},
"internalMetadata": {},
}
}
],
"loadingTransportLocation": {
"identifier": "loadingTransportLocation-0.1Snap",
"name": "loadingTrsLocationName-0.1Snap",
"streetNameAndNumber": "string",
"postalCode": "string",
"cityName": "string",
"countryIsoCode": "BE",
"warehouseLocationIdentifier": "string",
"origin": "string"
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
271/722
Get by identifier for a loading site identifier (LI)
1.65.0
Retrieve a transport on site by identifier
HTTP Request
GET /transport-api/v1/transports/{transportIdentifier}/loadinginstructions/siteIdentifier={siteIdentifier}
Request Parameters
transportIdentifier (string)
siteIdentifier (string)
Responses
Response 200 (Ok)
See 0.562 Get by identifier for a loading site (LI)
Response 404 (NotFound)
Example
See 0.562 Get by identifier for a loading site (LI)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
272/722
Add "Local Transport ID" in Loading Instruction
0.0.50.0
In some mills, the local systems produce an additional local identifier for transports. Business wants
this local ID to be communicated to Sultan so that in Sultan they can perform queries and lookup
transports by this local ID. The local TMS/MES will generate this ID when receiving the LI.
HTTP Request
PUT /transport-api/v1/transports/{identifier}/local-transport-id
Request Parameters
identifier (string)
Unique identifier of the transport used in the TMS owner and all over the
sites
Request Body
{
…
value (string)
}
Responses
Response 200 (Ok)
Response 404 (NotFound)
5
Transport not found
32
Transport not found on site
Example
{
…
"value": "localTransportIdValue"
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
273/722
Notification(s)
{
"notificationType": "PartialUpdate"
"resourceType": "transport",
"scope": "",
"sender": "Artemis.Core.Transport",
"data": {
"id": "ID000000",
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-04-02T15:30:11.741817+02:00",
requestedBy": "TMS"
},
"metadata": { "metadata1":"value1"},
"instructions": [],
"mode": "truck"
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
274/722
Lock/Unlock for a loading site
0.0.34.0
-
Manual lock/unlock
-
Automatic unlock:
•
when the last vehicle is deallocated (‘VehicleDeallocated’ notification)
•
when the loading is refused
HTTP Request
POST /transport-api/v1/transports/{identifier}/lock-requests 0.0.39.0
Request Parameters
identifier (string)
Request Body
{
…
value (bool),
reason (string, mandatory if value = false) = [MaterialNotFound, MaterialDamaged,
MaterialBlocked, MaterialOutOfStock, TooFewMaterials, MaterialUnreachable,
MaterialNotCompatibleWithVehicle, LoadPlanNotComptabileWithVehicle,
MaterialNotReadyToShip, LoadingPlaceClosedOrOngoingMaintenance, Other, …], 0.0.70.0
comment (string, optional)
}
List of reasons (non-exhaustive)
â–ª
MaterialNotFound
=> Material cannot be found
â–ª
MaterialDamaged
=> Damage is discovered on the material; in consequence it cannot be shipped.
â–ª
MaterialBlocked
=> There is a quality blocking on the material, in consequence it cannot be shipped.
â–ª
MaterialOutOfStock
=> Case of ‘free loading’; there is no material for the criteria (order, article, … )
â–ª
TooFewMaterials
=> Case where a minimum target of weight needs to be reached and it is not possible to
reach it with the available materials.
â–ª
MaterialUnreachable
=> The material that needs to be loaded is not reachable : not linked to an open bay, no
crane or other handling equipment is available to reach or move it, …
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
275/722
â–ª
MaterialNotCompatibleWithVehicle
=> It is not possible to load the material on the vehicle that showed up.
â–ª
LoadPlanNotCompatibleWithVehicle
=> It is not possible to make a load plan with the given materials/criteria and the vehicle that
showed up. Can be because there is no good combination of materials, or because they all
don’t respect the security rules or loading constraints
â–ª
MaterialNotReadyToShip
=> The material is not ready to ship. In consequence it cannot be shipped.
â–ª
LoadingPlaceClosedOrOngoingMaintenance
=> The loading place where the materials are is closer or is under maintenance (a crane is
broken for example).
The difference with ‘material unreachable’ is that in this case it’s a large area that is
concerned and all materials in this area might also not be loaded (so if updated LI is sent, it
needs to take this into account).
â–ª
Other
=> No other reason describes the problem. Comment is used to describe the problem.
Responses
Response 200 (Ok)
Response 403 (Forbidden)
19
Operation is forbidden because transport is closed or completed 0.0.61.0
263
Operation is forbidden because transport is cancelled 0.0.61.0
36
Transport is not fully defined
2700
Could not lock/unlock current transport because it is in not valid state. Current
state :'{0}
52
Operation is not allowed on Transport '{0}' on site
58
Transport '{0}' is not chartered 0.0.61.0
Response 404 (NotFound)
32
Loading Instruction not found on site
5
Transport '{0}' not found 0.0.61.0
Example
{
…
"value": false,
"comment": "…"
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
276/722
Notification(s)
{
"notificationType": "LoadingInstructionLocked"
"resourceType": "loadingInstruction",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-03-02T10:03:47.6621799+00:00",
"requestedBy": "owner"
},
"owner": "TMS",
"identifier": "ID000000", 0.0.58.0
"transportIdentifier": "ID000000",
"transportType": "Shipment", 0.0.58.0
"transportType": "Shipment | Intrasite", 0.0.58.0
"siteIdentifier": "LIE",
"mode": "truck | wagon | barge | vessel | airplane", 0.0.51.0
"previousLockedStatus": false
}
}
Or
{
"notificationType": "LoadingInstructionUnlocked"
"resourceType": "loadingInstruction",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2019-12-23T14:53:08.6760606+00:00",
"requestedBy": "owner"
},
"owner": "TMS",
"identifier": "ID000000", 0.0.58.0
"transportIdentifier": "ID000000",
"transportType": "Shipment | Intrasite", 0.0.58.0
"siteIdentifier": "LIE",
"mode": "truck | wagon | barge | vessel | airplane", 0.0.51.0
"comment": "test",
"previousLockedStatus": true
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
277/722
Save list of material(s) impossible to load
0.0.50.0
Allows to create a list of material(s) impossible to load for a transport. If previous list of material(s)
impossible to load was present, this method adds the saved list of materials to the other materials.
If the materials are present in a loadplan of a vehicle in that transport, the materials will move to the
list ‘materialUnitsImpossibleToLoad’ of the loadplan. If a new loadplan is saved with this material in
it, the material will also move to that list so that it is no longer in the ‘toLoad’ list.
Saving impossible to load materials has no impact on the materials ‘toCheck’ in a loadplan.
HTTP Request
PUT /transport-api/v1/transports/{identifier}/impossible-to-load
Request Parameters
identifier (string)
Request Body
{
…
impossibleToLoads: [
{
lmiContext (string),
lmiNumber (string),
reason (string)
}
}
Responses
Response 200 (Ok)
Response 400 (BadRequest)
Response 403 (Forbidden)
295
Saving material '{0}' as impossible to load is forbidden because the material is
already loaded.
Response 404 (NotFound)
32
Loading Instruction not found on site
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
278/722
Example
{
…
"impossibleToLoads": [
{
"lmiContext": "LIE",
"lmiNumber": "ID000000",
"reason": "reason…"
},
{
"lmiContext": "LIE",
"lmiNumber": "ID000001",
"reason": "reason…"
},
…
]
}
Anomaly
See ImpossibleToLoad (AnomalyDetected)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
279/722
Load Determination Process
0.0.66.0
Here is an overview of the complete load-determination process in Artemis.
Step 1 : Selection of materials to load (see 0.562)
All the materials that can be used to load the transport are selected based on the used material
selection criteria from the LI or the pre defined materials in the LI.
Materials are listed per material group.
Step 2 : Filtering of the materials to load (see 0.562 & 0.562)
Artemis automatically filters out materials that cannot be loaded.
The result of this step is a filtered list of materials for each material group.
The list indicates for each material unit in the list if it’s filtered out the reason why it was filtered out.
A Hook is made available for integrators so they can extend or override this filtering.
Artemis automatically filters out materials for the following reasons:
UnknownMaterial : Material is not known
NoLocation : The materials is unlocated or lost
NotReachable : The material is on a closed location or only reachable from a closed bay
NotCharacterized: The material is not characterized
NotReadyToBeShipped : The material is not ready to be shipped.
BlockedForShipment : The material is blocked for shipment.
WrongTypeForTransportMean : The transport mean type is not compatible with the logistic product
type of the material (not yet implemented)
ReservedByTransport : The material is already planned and/or loaded on another transport.
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
280/722
Step 3 : Prioritization of the materials to load (see 0.562 & 0.562)
Artemis automatically prioritizes the materials based on some global rules.
There is a Hook provided for the integrator so he can do his own prioritization instead of the
standard Artemis Core prioritization.
By definition, a lower priority is more urgent, in a first phase Artemis juste gives the sequence as
priority. This will evolve in the future.
These are the standard prioritization rules for Artemis :
•
Customer Shipments :
o Sort by age: Oldest materials first
•
IntraSite Shipments :
o If material is boosted, take it first
o Else If material has a planned next production date; take it
o Else if material has a scheduled next production date; take it
o Else if material has a shipping date, take it
o Append all other materials (without those dates), sorted by age: oldest materials
last.
Step 4 : Load Determination itself (Will be done and described later)
The goal is that the Load Determination results in a Save Loadplan.
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
281/722
Select material(s) to load
0.0.66.0
HTTP Request
POST /transport-api/v1/transports/{identifier}/load-determination/material-selection-requests
Request Parameters
identifier (string)
Request Body
{
…
}
Example
{
…
}
Responses
Response 200 (Ok)
{
candidates : [
{
materialGroupIdentifier (string),
materialUnit : {
lmiContext (string),
lmiNumber (string),
… },
mustLoad (bool)
}, … ]
candidatesNotFound : [
{
materialGroupIdentifier (string),
materialUnit : {
lmiContext (string),
lmiNumber (string),
}
}, … ]
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
282/722
Example
{
"candidates" : [
{
"materialGroupIdentifier": "MG0",
"materialUnit" : {
"lmiContext" : "LIE",
"lmiNumber" : "ID000000",
… },
"mustLoad": true
}, …
]
}
Response 400 (BadRequest)
Response 404 (NotFound)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
283/722
Filter material(s) to load
0.0.66.0
HTTP Request
POST /transport-api/v1/transports/{identifier}/load-determination/material-filter-requests
Request Parameters
identifier (string)
Request Body
{
…
}
Example
{
…
}
Responses
Response 200 (Ok)
{
candidates : [
{
materialGroupIdentifier (string),
materialUnit : {
lmiContext (string),
lmiNumber (string),
… },
mustLoad (bool),
excluded (bool),
exclusionReasons (string) = [‘UnknownMaterial‘, ‘NoLocation‘, ‘NotReachable‘,
‘NotCharacterized‘, ‘NotReadyToBeShipped‘,‘BlockedForShipment‘,
‘WrongTypeForTransportMean‘, ‘ReservedByTransport’] 0.0.66.0
}, … ]
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
284/722
Example
{
"candidates" : [
{
"materialGroupIdentifier": "MG0",
"materialUnit" : {
"lmiContext" : "LIE",
"lmiNumber" : "ID000000",
… },
"mustLoad": true,
"excluded": true,
"exclusionReasons" : ["NotCharacterized", "NotReadyToBeShipped"]
}, … ]
0.0.66.0
}
Response 400 (BadRequest)
Response 404 (NotFound)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
285/722
Filter material(s) to load (Hook)
0.0.66.0
HTTP Request
POST /transport-api/v1/load-determination/custom-material-filter-requests
Request Parameters
identifier (string)
Request Body
{
transportIdentifer (string),
loadingInstructionIdentifer (string),
siteIdentifer (string),
candidates : [
{
materialGroupIdentifier (string),
materialUnit : {
lmiContext (string),
lmiNumber (string),
… },
mustLoad (bool),
excluded (bool),
exclusionReasons (string) = [‘UnknownMaterial‘, ‘NoLocation‘, ‘NotReachable‘,
‘NotCharacterized‘, ‘NotReadyToBeShipped‘, ‘BlockedForShipment‘,
‘WrongTypeForTransportMean‘, ‘ReservedByTransport’] 0.0.66.0
}, …
]
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
286/722
Example
{
"transportIdentifier": "T0",
"loadingInstruction": "LI0",
"siteIdentifier": "LIE",
"candidates" : [
{
"materialGroupIdentifier": "MG0",
"materialUnit" : {
"lmiContext" : "LIE",
"lmiNumber" : "ID000000",
… },
"mustLoad": true,
"excluded": true,
"exclusionReasons" : ["NotCharacterized", "NotReadyToBeShipped"]
}, … ]
0.0.66.0
}
Responses
Response 200 (Ok)
{
transportIdentifer (string),
loadingInstructionIdentifer (string),
siteIdentifer (string),
candidates : [
{
materialGroupIdentifier (string),
materialUnit : {
lmiContext (string),
lmiNumber (string),
… },
mustLoad (bool),
excluded (bool),
exclusionReasons (string) = [‘UnknownMaterial‘, ‘NoLocation‘, ‘NotReachable‘,
‘NotCharacterized‘, ‘NotReadyToBeShipped‘,‘BlockedForShipment‘,
‘WrongTypeForTransportMean‘, ‘ReservedByTransport’] 0.0.66.0
}, …
]
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
287/722
Example
{
"transportIdentifier": "T0",
"loadingInstruction": "LI0",
"siteIdentifier": "LIE",
"candidates" : [
{
"materialGroupIdentifier": "MG0",
"materialUnit" : {
"lmiContext" : "LIE",
"lmiNumber" : "ID000000",
… },
"mustLoad": true,
"excluded": true,
"exclusionReasons" : ["NotCharacterized", "NotReadyToBeShipped"]
}, … ]
0.0.66.0
}
Response 400 (BadRequest)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
288/722
Prioritize material(s) to load
0.0.67.0
‘Priority’ should be increasing (smallest = most urgent)
HTTP Request
POST /transport-api/v1/transports/{identifier}/load-determination/material-prioritizationrequests
Request Parameters
identifier (string)
Request Body
{
…
}
Example
{
…
}
Responses
Response 200 (Ok)
{
candidates : [
{
materialGroupIdentifier (string),
materialUnit : {
lmiContext (string),
lmiNumber (string),
… },
mustLoad (bool),
priority (int)
}, … ]
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
289/722
Example
{
"candidates" : [
{
"materialGroupIdentifier": "MG0",
"materialUnit" : {
"lmiContext" : "LIE",
"lmiNumber" : "ID000000",
… },
"mustLoad": true,
"priority": 1
}, … ]
}
Response 400 (BadRequest)
Response 404 (NotFound)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
290/722
Prioritize material(s) to load (Hook)
0.0.67.0
‘Priority’ should be increasing (smallest = most urgent)
HTTP Request
POST /transport-api/v1/load-determination/custom-material-prioritization-requests
Request Parameters
identifier (string)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
291/722
Request Body
{
transportIdentifer (string),
loadingInstructionIdentifer (string),
siteIdentifer (string),
candidates :
[{
materialGroupIdentifier (string),
earliestStartLoadingDateTime (datetime?),
materialUnit : {
lmiContext (string),
lmiNumber (string),
…
},
mustLoad (bool),
priority (int)
}, … ]
0.0.67.0
}
Example
{
"transportIdentifier": "T0",
"transportType" : "Intrasite",
"loadingInstruction": "LI0",
"siteIdentifier": "LIE",
"candidates" : [
{
"materialGroupIdentifier": "MG0",
"earliestStartLoadingDateTime": "2020-04-15T09:45:58.7051112+00:00",
"materialUnit" : {
"lmiContext" : "LIE",
"lmiNumber" : "ID000000",
… },
"mustLoad": true,
"priority":1
}, … ]
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
292/722
Responses
Response 200 (Ok)
{
transportIdentifer (string),
loadingInstructionIdentifer (string),
siteIdentifer (string),
candidates :
[{
materialGroupIdentifier (string),
earliestStartLoadingDateTime (datetime?),
materialUnit : {
lmiContext (string),
lmiNumber (string),
…
},
mustLoad (bool),
priority (int)
}, … ]
}
0.0.67.0
Example
{
"transportIdentifier": "T0",
"transportType" : "Intrasite",
"loadingInstruction": "LI0",
"siteIdentifier": "LIE",
"candidates" : [
{
"materialGroupIdentifier": "MG0",
"earliestStartLoadingDateTime": "2020-04-15T09:45:58.7051112+00:00",
"materialUnit" : {
"lmiContext" : "LIE",
"lmiNumber" : "ID000000",
… },
"mustLoad": true,
"priority":1
}, … ]
}
Response 400 (BadRequest)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
293/722
Departure (Truck, Convoy or Vessel)
0.0.42.0
By default, all the mobile container(s) of the Transport are considered to leave. Please unallocate
beforehand all the mobile container(s) that do not leave !
HTTP Request
DELETE /transport-api/v1/transports/{identifier}
Request Parameters
identifier (string)
Request Body
{
…
reason (string) = ['departure']
}
Responses
Response 200 (Ok)
Response 204 (NoContent)
287
This mobile container does not have a load plan yet
Response 403 (Forbidden)
261
Could not change '{0}' state from '{1}' to '{2}'.
19
Operation is forbidden because transport is closed or completed 0.0.61.0
263
Operation is forbidden because transport is cancelled 0.0.61.0
264
Operation is forbidden because transport is confirmed 0.0.61.0
52
Operation is not allowed on Transport '{0}' on site 0.0.61.0
58
Transport '{0}' is not 'Confirmed' 0.0.61.0
Response 404 (NotFound)
5
Transport '{0}' not found 0.0.61.0
32
Loading Instruction not found on site
36
Transport '{0}' is not 'FullyDefined' 0.0.61.0
Example
{
…
"reason": "departure"
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
294/722
Notification(s)
If transport is not empty, the notification below will be sent:
{
"notificationType": "TransportDeparted"
"resourceType": "transport",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-04-15T09:45:58.7051112+00:00",
"requestedBy": "owner"
},
"previousState": “InProgress”,
"owner": "TMS",
"transportIdentifier": "ID000000",
"siteIdentifier": "LIE",
"type": "road | rail | ship",
"transportType": "Shipment", 1.84.0
"vehicles": [ 0.0.47.0
{
“identifier”: “vehicleA”,
“name”: “vehicleNameA”
},
…
]
}
}
Else, if transport is empty, the notification below will be sent:
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
295/722
{
"notificationType": "TransportArrivalCancelled"
"resourceType": "transport",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-04-15T09:45:58.7051112+00:00",
"requestedBy": "owner"
},
"previousState": “InProgress”,
"owner": "TMS",
"transportIdentifier": "ID000000",
"siteIdentifier": "LIE",
"type": "road"
"vehicleNames": [ 0.0.47.0
{
“identifier”: “vehicleA”,
“name”: “vehicleNameA”
},
…
]
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
296/722
Departure Allowed / Not Allowed
0.0.51.0
HTTP Request
PUT /transport-api/v1/transports/{identifier}/departure-authorization-check
Request Parameters
identifier (string)
Request Body
{
…,
allowed (bool),
reason (string, optional),
}
Responses
Response 200 (Ok)
Response 404 (NotFound)
32
Loading Instruction not found on site
Example
{
…,
"allowed": false,
"reason": "reason"
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
297/722
Notification(s)
{
"notificationType": "TransportDepartureAuthorizationChecked"
"resourceType": "transport",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-04-15T09:45:58.7051112+00:00",
"requestedBy": "owner"
},
"owner": "TMS",
"transportIdentifier": "ID000000",
"siteIdentifier": "LIE",
"type": "road | rail | maritime"
"allowed": "false",
"reason": "reason"
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
298/722
Refuse Loading
0.0.55.0
Method to refuse a loading on transport of type truck. Refusal can happen after it is allocated to a
transport. Otherwise, it’s forbidden. This method is equivalent to the Refuse Loading on the truck
directly.
HTTP Request
POST /transport-api/v1/transports/{identifier}/refuse-loading-requests
Request Parameters
identifier (string)
Unique identifier of the transport used in the TMS owner and all over the
sites
Request Body
{
…
reason (enumeration: MaterialUnitNotFound, PossibleQualityProblem, EverythingOrNothing,
EmptyOrder, MaterialUnitNonShippable, ToolFailures, NotEnoughProductsToLoad, Other),
comment (string, optional)
}
Reason (enum, mandatory)
The reason of refusal of the truck. Following values are defined:
MaterialUnitNotFound:
PossibleQualityProblem:
EverythingOrNothing:
EmptyOrder:
MaterialUnitNonShippable:
ToolFailures:
NotEnoughProductsToLoad:
Other: reason is not present in this list
Comment (text, optional)
Additional optional comment
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
299/722
Responses
Response 200 (Ok)
Response 400 (BadRequest)
Response 403 (Forbidden)
52
Operation is not allowed on Transport '{0}' on site (Close or Cancelled)
54
Operation not allowed on transport of this transport mode
265
Operation is forbidden because transport is loaded
266
Operation is forbidden because transport is loading
Response 404 (NotFound)
5
Transport '{0}' not found
Example
{
"requestedBy":"owner",
"requestedAt":"2020-09-18T15:03:41.3660893+00:00",
"context":
{
"key":"value"
},
"reason": "MaterialUnitNotFound",
"comment": "comment"
}
Notification
{
"notificationType": "LoadingRefused",
"resourceType": "transport",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedBy":"owner",
"requestedAt":"2020-09-18T15:03:41.3660893+00:00",
},
"owner": "TMS",
"transportIdentifier": "ID000000",
"siteIdentifier": "LIE",
"type": "road",
"reason": "MaterialUnitNotFound",
"comment": "comment"
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
300/722
Anomalies
See LoadingRefused (AnomalyDetected)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
301/722
Request Departure
0.0.51.0
Request departure is used when a transport has finished loading and we need trigger some process
in other systems (eg TMS) that are needed before the transport can actually leave. The most
common example is the request of custom documents that need to be printed before the transport
leaves.
If this request is done the transport is automatically set to executed.
Beware that this request is only possible for transports that are at least partially loaded and is not
allowed in status Confirmed or Arrived [see US 33372]
HTTP Request
POST /transport-api/v1/transports/{identifier}/departure-requests
Request Parameters
identifier (string)
Request Body
{
…
}
Responses
Response 200 (Ok)
Response 404 (NotFound)
32
Loading Instruction not found on site
601 1.84
Example
{
…
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
302/722
Notification(s)
For Road/Maritime, the following notification is always sent.
For Rail, only if CIM has been sent, the following notification will be sent. Otherwise, if the CIM is not
requested or refused, the notification “TransportDepartureAuthorizationChecked” (see after) will be
sent instead of the following notification.
{
"notificationType": "TransportDepartureRequested"
"resourceType": "transport",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-04-15T09:45:58.7051112+00:00",
"requestedBy": "owner"
},
"owner": "TMS",
"transportIdentifier": "ID000000",
"siteIdentifier": "LIE",
"type": "road | rail | maritime" ,
"customsDocumentsRequired": false,
"sendDepartureAuthorizationCheck": true, 0.0.71.0
"transportType": "Shipment", 1.84.0
}
}
NB: The property “CustomsDocumentsRequired” in notification is equal to the constraint
“CustomsDocumentsRequired” retrieved in LoadingInstruction of current site.
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
303/722
{
"notificationType": "TransportDepartureAuthorizationChecked"
"resourceType": "transport",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-04-15T09:45:58.7051112+00:00",
"requestedBy": "owner"
},
"owner": "TMS",
"transportIdentifier": "ID000000",
"siteIdentifier": "LIE",
"type": "rail",
"allowed": "false",
"reason": "CIM Missing"
}
}
If the transport departure is allowed, and customs documents are not required, the following
notification will be sent:
0.0.71.0
{
"notificationType": "TransportDepartureAuthorizationChecked"
"resourceType": "transport",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-04-15T09:45:58.7051112+00:00",
"requestedBy": "owner"
},
"owner": "TMS",
"transportIdentifier": "ID000000",
"siteIdentifier": "LIE",
"type": "rail",
"allowed": "true",
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
304/722
Request CIM
0.0.51.0
Integrator can request Artemis to send a request to create a CIM to TMS or other systems. It triggers
a notification ‘CimRequested’ to which can be subscribed.
Request to for a CIM is only possible for rail transports.
This will put the "CimStatus" in a LoadingInstruction to "requested".
HTTP Request
POST /transport-api/v1/transports/{identifier}/cim-requests
Request Parameters
identifier (string)
Request Body
{
…
}
Example
{
…
}
Responses
Response 200 (Ok)
Response 403 (Forbidden)
54
Operation not allowed on transport of this transport mode.
273
Operation is forbidden because mobile container is not allocated
Response 404 (NotFound)
32
Loading Instruction not found on site
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
305/722
Notification(s)
{
"notificationType": "CimRequested"
"resourceType": "transport",
"scope": "",
"sender": "Artemis.Core.Transport",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-04-15T09:45:58.7051112+00:00",
"requestedBy": "owner"
},
"owner": "TMS",
"transportIdentifier": "ID000000",
"siteIdentifier": "LIE",
"type": "rail",
"transportType": "Shipment", 1.84.0
"vehicles": [ 0.0.71.0
{
“identifier”: “vehicleA”,
“name”: “vehicleNameA”,
“numberOfLoadedMaterialUnits”: 4 0.0.74.0
}
…
]
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
306/722
CIM Acceptance (CIMA)
0.0.51.0
Integrator can request Artemis to handle a CIM Acceptance response. This request is only possible
for rail transports. It triggers a notification ‘CimAcceptance’ to which can be subscribed.
This will put the "CimStatus" in a LoadingInstruction to "accepted", "notNeeded" or "refused".
HTTP Request
PUT /transport-api/v1/transports/{identifier}/cim-responses
Request Parameters
identifier (string)
Request Body
{
status (string) = [accepted, notNeeded, refused],
reason (string, optional),
}
Example
{
…
"status": "accepted",
"reason": "reason",
}
Responses
Response 200 (Ok)
Response 403 (Forbidden)
54
Operation not allowed on transport of this transport mode.
273
Operation is forbidden because mobile container is not allocated
Response 404 (NotFound)
32
Loading Instruction not found on site
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
307/722
Notification(s)
{
"notificationType": "CimAcceptance"
"resourceType": "transport",
"scope": "",
"sender": "Artemis.Core.Transport",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-04-15T09:45:58.7051112+00:00",
"requestedBy": "owner"
},
"owner": "TMS",
"transportIdentifier": "ID000000",
"siteIdentifier": "LIE",
"type": "rail",
"status": "refused",
"reason": "reason",
"transportType": "Shipment", 1.84.0
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
308/722
Cancel CIM Request
0.0.51.0
Integrator can request Artemis to cancel a previous CIM request. It triggers a notification
‘CimRequestCancelled’ to which can be subscribed.
A request to cancel a CIM request is only possible for rail transports.
This will put the "CimStatus" in a LoadingInstruction to "cancelled".
HTTP Request
DELETE /transport-api/v1/transports/{identifier}/cim-requests
Request Parameters
identifier (string)
Request Body
{
reason (string, optional),
}
Example
{
…
"reason": "reason",
}
Responses
Response 200 (Ok)
Response 403 (Forbidden)
54
Operation not allowed on transport of this transport mode.
273
Operation is forbidden because mobile container is not allocated
Response 404 (NotFound)
32
Loading Instruction not found on site
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
309/722
Notification(s)
{
"notificationType": "CimRequestCancelled"
"resourceType": "transport",
"scope": "",
"sender": "Artemis.Core.Transport",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-04-15T09:45:58.7051112+00:00",
"requestedBy": "owner"
},
"owner": "TMS",
"transportIdentifier": "ID000000",
"siteIdentifier": "LIE",
"type": "rail"
"reason": "reason",
"transportType": "Shipment", 1.84.0
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
310/722
Safety Checks
0.0.46.0
HTTP Request
POST /transport-api/v1/transports/{identifier}/safety-checks 0.0.46.0
Request Parameters
identifier (string)
Request Body
{
…
safetyChecks: [
{
safetyCheckType (string) [
‘LoadLashing’,
‘LoadSecuring’,
‘KnowledgeOfTheInstructions’,
‘PresenceOfSafetyClothes’,
‘PresenceOfSafetyShoes’,
‘PresenceOfSafetyGlasses’,
‘PresenceOfHelmet’
],
safetyCheckResult (string) = [‘Ok’, ‘Nok’]
}
]
}
Responses
Response 200 (Ok)
Response 404 (NotFound)
32
Loading Instruction not found on site
Example
{
…
"safetyChecks": [
{
"safetyCheckType": "loadLashing",
"safetyCheckResult": "ok"
}
]
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
311/722
Notification(s)
{
"resourceType": "transport",
"notificationType": "SafetyChecked",
"sender": "Artemis.Transport.Execution",
"data": {
"type": "road",
"transportIdentifier": "ID000000",
"siteIdentifier": "LIE",
"owner": "TMS",
"transportType": "Shipment", 1.84.0
"safetyChecks": [
{
"safetyCheckType": "loadLashing",
"safetyCheckResult": "nok"
}
],
"originalRequestInfo": {
"requestedAt": "2020-11-30T14:49:31.150248+01:00",
"requestedBy": "owner"
},
"context": {
"key": "value"
}
}
}
Anomaly
See SafetyCheckFailed
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
312/722
Request loading execution detail (LED)
0.0.50.0
Integrator can request Artemis to send the LED to the TMS.
It triggers a notification ‘LedRequested’ to which the Artemis-OTM connector will subscribe in order
to send the LED to OTM/Sultan.
Request to send the LED should only be possible from the moment at least one vehicle is allocated to
the transport.
HTTP Request
POST /transport-api/v1/transports/{identifier}/led-requests
Request Parameters
identifier (string)
Request Body
{
…
}
Example
{
…
}
Responses
Response 200 (Ok)
Response 403 (Forbidden)
273
Operation is forbidden because mobile container is not allocated
Response 404 (NotFound)
32
Loading Instruction not found on site
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
313/722
Notification(s)
{
"notificationType": "LedRequested",
"resourceType": "transport",
"scope": "",
"sender": "Artemis.Core.Transport",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-04-15T09:45:58.7051112+00:00",
"requestedBy": "owner"
},
"owner": "TMS",
"transportIdentifier": "ID000000",
"siteIdentifier": "LIE",
"type": "road | rail | ship"
}
}
Change state of loading execution detail (LED)
0.0.72.0
Integrator can change the state of the LED.
‘Requested’ state requests Artemis to send the LED to the TMS. Same as 0.562. It triggers a
notification ‘LedRequested’ to which the Artemis-OTM connector will subscribe in order to send the
LED to OTM/Sultan.
‘Finished’ state to specify the LED has been sent to the TMS. Called by Artemis Connector when a LED
a been sent to OTM. Artemis then triggers a ’LedFinished’ notification
Only be possible from the moment at least one vehicle is allocated to the transport.
HTTP Request
POST /transport-api/v1/transports/{identifier}/led/state-transitions
Request Parameters
identifier (string)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
314/722
Request Body
{
nextState: “requested | finished”
…
}
Example
{
nextState : “finished”
…
}
Responses
Response 200 (Ok)
Response 403 (Forbidden)
273
Operation is forbidden because mobile container is not allocated
Response 404 (NotFound)
32
Loading Instruction not found on site
Notification(s)
{
"notificationType": "LedRequested | LedFinished",
"resourceType": "transport",
"scope": "",
"sender": "Artemis.Core.Transport",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-04-15T09:45:58.7051112+00:00",
"requestedBy": "owner"
},
"owner": "TMS",
"transportIdentifier": "ID000000",
"siteIdentifier": "LIE",
"type": "road | rail | ship",
"transportType": "Shipment", 1.84.0
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
315/722
Remove one material impossible to load
0.0.50.0
Allows to remove a material impossible to load on a transport.
HTTP Request
DELETE /transport-api/v1/transports/{identifier}/impossible-toload/context={context}&number={number}
Request Parameters
identifier (string)
context (string)
number (string)
Request Body
{
…
}
Responses
Response 200 (Ok)
Response 400 (BadRequest)
Response 404 (NotFound)
32
Loading Instruction not found on site
Example
{
…
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
316/722
Finish loading a transport in progress
0.0.43.0
HTTP Request
POST /transport-api/v1/transports/{identifier}/state-transitions 0.0.43.0
Request Parameters
identifier (string)
Request Body
{
…
nextState (string) = ['executed']
}
Responses
Response 200 (Ok)
Response 403 (Forbidden)
36
Transport is not confirmed
261
Could not change execution transport state from '{0}' to '{1}'
262
Could not change execution transport state to '{0}' because it is locked
Response 404 (NotFound)
32
Loading Instruction not found on site
Example
{
…
"nextState": "executed"
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
317/722
Notification(s)
{
"notificationType": "StateChanged"
"resourceType": "transport",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2019-12-23T14:53:08.6760606+00:00",
"requestedBy": "owner"
},
"oldValue": "InProgress",
"newValue": "Executed",
"transportIdentifier": "T0",
"siteIdentifier": "LIE",
"owner": "TMS",
"type": "road"
}
}
Anomaly
See 0.562 MuUnloadedFromClosedTransport
0.0.61.0
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
318/722
{
"resourceType": "anomaly",
"notificationType": "AnomalyDetected",
"sender": "Artemis.Transport.Execution",
"scope": "LIE",
"data": {
"source": {
"id": "ID000000",
"businessEntityName": "Transport"
},
"siteIdentifier": "LIE",
"type": "muUnloadedFromClosedTransport",
"metadata": {
"__arguments": {
"materialUnitIdentifier": "11-11"
}
},
"senderId": "ID000000",
"timeStamp": "637716988255045380",
"originalRequestInfo": {
"requestedAt": "2021-11-05T09:45:32.9668862+01:00",
"requestedBy": "owner"
},
"context": {
"key": "value"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
319/722
MuNotLoaded
-
If one or more MaterialUnit(s) expected are not loaded: “AnomalyDetected”
-
If these expected MaterialUnit(s) are loaded after: “AnomalyFixed”
See 0.562 MuNotFinalChecked
-
If one or more MaterialUnit(s) expected are not checked: “AnomalyDetected”
-
If these expected MaterialUnit(s) are checked after: “AnomalyFixed”
See MuFinalCheckError
-
If one or more MaterialUnit(s) expected has checked result failed : “AnomalyDetected”
-
If these expected MaterialUnit(s) have checked result successful after: “AnomalyFixed”
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
320/722
Close a transport confirmed for a loading site
0.0.34.0
A transport that is closed using this API is removed from the execution context of Artemis. It will be
automatically removed from the instruction after X days. (X is configuration parameter)
HTTP Request
POST /transport-api/v1/transports/{identifier}/state-transitions 0.0.39.0
Request Parameters
identifier (string)
Request Body
{
…
nextState (string) = ['closed']
}
Responses
Response 200 (Ok)
Response 403 (Forbidden)
52
Operation is not allowed on Transport (i.e. Transport already Closed) 0.0.61.0
46
Cannot close transport when current state is not ordered or confirmed 0.0.71.0
Response 404 (NotFound)
5
Transport '{0}' not found 0.0.61.0
32
Loading Instruction not found on site
Example
{
…
"nextState": "closed"
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
321/722
Notification(s)
{
"notificationType": "stateChanged"
"resourceType": "transport",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2019-12-23T14:53:08.6760606+00:00",
"requestedBy": "owner"
},
"oldValue": "Confirmed",
"newValue": "Closed",
"transportIdentifier": "T0",
"siteIdentifier": "LIE",
"owner": "TMS",
"type": "road"
}
}
0.0.61.0
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
322/722
{
"resourceType":"transport",
"notificationType":"TransportCompleted",
"sender":"Artemis.Transport.Instruction",
"data":{
"identifier":"ID000000",
"owner":"Syltram",
"instructionIds":[ 0.0.68.0
{
"id": "d594d89d-bb71-42c2-9cb9-827db83f532f",
"identifier": "ID000000",
"siteIdentifier": "LIE",
}, …
],
"unloadingInstructionIds":[ 0.0.68.0
{
"id": "d594d89d-bb71-42c2-9cb9-827db83f532f",
"identifier": "ID000000",
"siteIdentifier": "LIE",
}, …
],
"context":{
"key":"value"
},
"originalRequestInfo":{
"requestedAt":"2021-11-03T16:29:06.4157111+00:00",
"requestedBy":"owner"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
323/722
{
"resourceType": "transport",
"notificationType": "TransportRemoved",
"sender": "Artemis.Transport.Execution",
"scope": "LIE",
"data": {
"type": "road",
"transportIdentifier": "ID000000",
"siteIdentifier": "LIE",
"owner": "Syltram",
"previousState": "Closed",
"transportType": "Shipment", 1.84.0
"vehicles": [
{
"identifier": "ID000000",
"name": "trailerID000000"
}
],
"originalRequestInfo": {
"requestedAt": "2021-11-03T17:43:36.3124816+01:00",
"requestedBy": "owner"
},
"context": {
"key": "value"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
324/722
Cancel a transport confirmed for a loading site
0.0.34.0
A transport that is cancelled using this API is removed from the execution context of Artemis. It will
be automatically removed from the instruction after X days. (X is configuration parameter)
HTTP Request
POST /transport-api/v1/transports/{identifier}/state-transitions 0.0.39.0
Request Parameters
identifier (string)
Request Body
{
…
nextState (string) = ['cancelled']
}
Responses
Response 200 (Ok)
Response 403 (Forbidden)
52
Operation is not allowed on Transport (i.e. Transport already Cancelled) 0.0.61.0
261
Could not change execution transport state from '{0}' to '{1}'
262
Could not change execution transport state to '{0}' because it is locked
Response 404 (NotFound)
5
Transport '{0}' not found 0.0.61.0
32
Loading Instruction & Unloading Instruction not found on site 0.0.66.0
Example
{
…
"nextState": "cancelled"
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
325/722
Notification(s)
{
"notificationType": "stateChanged"
"resourceType": "transport",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2019-12-23T14:53:08.6760606+00:00",
"requestedBy": "owner"
},
"oldValue": "Confirmed",
"newValue": "Cancelled",
"transportIdentifier": "T0",
"siteIdentifier": "LIE",
"owner": "TMS",
"type": "road"
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
326/722
Delete for all loading sites
1.0.74
This method completely removes the transport from Artemis. It is only allowed when all LI's and ULI's
are closed, completed or cancelled.
HTTP Request
DELETE /transport-api/v1/transport-headers/{identifier}
Request Parameters
identifier (string)
Request Body
{
…
reason (string) = ['Deletion']
}
Responses
Response 200 (Ok)
Response 403 (Forbidden)
52
Operation is not allowed on Transport (i.e. Transport already Cancelled)
2750
Could not delete unloading instruction because it is in 'cancelled' state
2752
Could not delete unloading instruction because it is in 'executed' state
2753
Could not delete unloading instruction because it is locked
2754
Could not delete loading instruction because it is locked
2755
Could not delete unloading instruction because it is in ‘confirmed’ state
2756
Could not delete unloading instruction because it is in ‘created’ state
2757
Could not delete unloading instruction because it is in ‘ordered’ state
2748
Deletion not allowed on loading instruction
Response 404 (NotFound)
5
Transport '{0}' not found
Example
{
…,
"reason": "Deletion"
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
327/722
Notification
{
"resourceType":"transport",
"notificationType":"Deleted",
"sender":"Artemis.Transport.Instruction",
"data":{
"identifier":"ID000000",
"owner":"Syltram",
"instructionIds":[
{
"id": "d594d89d-bb71-42c2-9cb9-827db83f532f",
"identifier": "ID000000",
"siteIdentifier": "LIE",
}, …
],
"unloadingInstructionIds":[
{
"id": "d594d89d-bb71-42c2-9cb9-827db83f532f",
"identifier": "ID000000",
"siteIdentifier": "LIE",
}, …
],
"context":{
"key":"value"
},
"originalRequestInfo":{
"requestedAt":"2021-11-03T16:29:06.4157111+00:00",
"requestedBy":"owner"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
328/722
4.9. Loading Instruction
Create
1.61.0
HTTP Request
POST /transport-api/v1/transports/{transportIdentifier}/loadinginstructions
Request Parameters
transportIdentifier
(string)
Unique identifier of the transport used in the TMS owner and all over the
sites
Request Body
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
329/722
{
…
loadingInstruction {
identifier (string),
arrivalTimeSlotStrict (bool, optional),
arrivalTimeSlotEarliestDateTime (datetime, optional),
arrivalTimeSlotEarliestTimeIgnored (bool, optional),
arrivalTimeSlotLatestDateTime (datetime, optional),
arrivalTimeSlotLatestTimeIgnored (bool, optional),
estimatedDepartureDateTime (datetime, optional),
estimatedDepartureTimeIgnored (bool, optional),
adjustedDepartureDateTime (datetime, optional), 0.0.72.0,
shuntingDateTime (datetime, optional),
shuntingTimeIgnored (bool, optional),
isChartered (bool, optional), 0.0.47.0
remarks (string[], optional), deprecated 0.0.49.0
miscRemarks (json, optional), 0.0.68.0
internalMetadata (json, optional), 0.0.56.0,
metadata (json, optional), 0.0.60.0
constraints [ 0.0.53.0
{
constraintType (string) = [CustomsDocumentsRequired, EquipmentTypeNotToUse,
EquipmentTypeToUse, FreeText, …],
constraintValue (string),
constraintUnit (string) 0.0.71.0
}, … ],
materialGroups [
{
identifier (string),
earliestStartLoadingDateTime (datetime, optional),
earliestStartLoadingTimeIgnored (bool, optional),
latestEndLoadingDateTime (datetime, optional),
latestEndLoadingTimeIgnored (bool, optional),
materialSelectionCriteriumProperty (string, optional) = [‘ScaleUpArticleId’,
‘OrderItemId’, ‘ScheduledAgreementId’, ‘ShipmentInstructionId’, ‘ShipmentProgramId’, …],
materialSelectionCriteriumValue (string, optional),
materialSelectionCriteriumRemark (string, optional),
logisticProductTypeIdentifier (string),
isLocked (bool),
remarks (string[], optional), deprecated 0.0.49.0
miscRemarks (json, optional), 0.0.68.0
internalMetadata (json, optional), 0.0.56.0
metadata (json, optional), 0.0.61.0
equipmentIdentifiers (string[], optional), 0.0.78.0
constraints [ 0.0.53.0
{
constraintType (string) = [EquipmentTypeNotToUse, EquipmentTypeToUse,
MaxMaterialUnitWeight, MinimumDistanceCoilsCradle, FreeText, …],
constraintValue (string),
constraintUnit (string) 0.0.71.0
}, … ],
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
330/722
unloadingTransportLocation {
identifier (string),
name (string),
streetNameAndNumber (string),
postalCode (string),
cityName (string),
countryIsoCode (string),
warehouseLocationIdentifier (string, optional),
origin (string)
},
requestedWeight {
min (int, optional),
max (int, optional),
target (int, optional)
} (optional),
requestedNumberOfUnits {
min (int, optional),
max (int, optional),
target (int, optional)
} (optional),
materialUnits [
{
lmiContext (string),
lmiNumber (string),
mustLoad (bool, optional),
locationLabel (string, optional)
}, …
],
equipmentGroup {
identifier (string),
sequence (int, optional),
unloadingTransportLocationIdentifier (string), 0.0.78.0
loadingTransportLocationIdentifier (string), 0.0.78.0
targetEquipmentPublicIdentifier (string, optional),
remarks (string[], optional), deprecated 0.0.53.0
miscRemarks (json, optional), 0.0.68.0
internalMetadata (json, optional), 0.0.56.0
metadata (json, optional), 0.0.60.0
constraints [ 0.0.53.0
{
constraintType (string) = [MaximumLength, CustomsDocumentsRequired,
MaxAuthorizedChargePerWagon, MaxAuthorizedChargePerVehicle 0.0.69.0,
MaxAuthorizedMass, MaximumTonnage, EquipmentTypeNotToUse, EquipmentTypeToUse,
MaximumNumberOfVehicles, RequestedNumberOfVehicles, MinimumNumberOfVehicles,
MaxMaterialUnitWeight, MinimumDistanceCoilsCradle, FreeText, …],
constraintValue (string),
constraintUnit (string) 0.0.71.0
}, … ]
} (optional),
}, …
],
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
331/722
loadingTransportLocation {
identifier (string),
name (string),
streetNameAndNumber (string),
postalCode (string),
cityName (string),
countryIsoCode (string),
warehouseLocationIdentifier (string, optional),
origin (string),
},
},
preregistration 0.0.48.0 (optional) {
type (string)= ['truck', 'ship']
driverOrCaptainNames [ (string), … ] (optional),
tractorName (string, optional),
trailerName (string, optional),
trailerType (string, optional),
carrier (string, optional),
tare (string, optional),
derogationMass (long, optional),
derogationCertificateNumber (string, optional),
grossVehicleWeightRating (long, optional),
shipName (string, optional),
imo (string, optional),
vin (string, optional),
eni (string, optional)
}
}
Responses
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
332/722
Responses
Response 200 (Created)
Response 400 (BadRequest)
28
At least one MaterialGroup item is required in the LoadingInstruction
MaterialGroup are duplicated in the LoadingInstruction
Predefined MaterialUnit is repeated in two MaterialGroups in the same
LoadingInstruction
‘UnloadingTransportLocationIdentifier’ specified in MaterialGroup is not the same
than the one given in related EquipmentGroup
‘LoadingTransportLocationIdentifier’ specified in EquipmentGroup not found in the
LoadingInstruction
‘RequestedNumberOfUnits’ and ‘RequestedWeight’ cannot be defined at the same
time
At least Min, Target or Max of ‘RequestedNumberOfUnits’ or ‘RequestedWeight’
should be defined
‘RequestedNumberOfUnits’ or ‘RequestedWeight’ data unconsistency – see rules
here above in properties description
‘MaterialSelectionCriteriumProperty’ set without ‘MaterialSelectionCriteriumValue’
‘MaterialSelectionCriteriumValue’ set without ‘MaterialSelectionCriteriumProperty’
Any mandatory fields not specified in
Transport/LoadingInstruction/MaterialGroup/EquipmentGroup
Response 403 (Forbidden)
28
‘UnloadingTransportLocationIdentifier’ cannot be updated on MaterialGroup
28
Different ‘UnloadingTransportLocationIdentifier’ on the same EquipmentGroup
within a Transport
33
Operation not allowed on Transport '{0}' with DefinitionState 'FullyDefined 1.81.0
34
Operation not allowed on Transport '{0}' when one LI is locked
49
Multiple LoadingInstructions not allowed on same Transport with bulk method
50
MaterialUnit(s) are marked for deletion
51
MaterialUnit(s) not found
2733
Could not update LoadingInstruction because it's closed or completed 1.81.0
2734
Could not update LoadingInstruction because it’s locked
2736
Could not update LoadingInstruction because it is in 'confirmed' state. 0.0.47.0
3001
Equipment: ‘{0}’ does not exist in transport 1.78.0
Response 409 (Conflict)
65
Duplicated transport '{0}' on site '{1}' 1.81.0
2763
A predefinedMaterialUnit in LoadingInstruction with identifier '{0}' on transport
'{1}' already exists on another LoadingInstruction in same Transport 1.81.0
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
333/722
Example
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
334/722
{
…
"loadingInstruction": {
"arrivalTimeSlotStrict": true,
"arrivalTimeSlotEarliestDateTime": "2020-03-31T11:23:09.481Z",
"arrivalTimeSlotEarliestTimeIgnored": true,
"arrivalTimeSlotLatestDateTime": "2020-03-31T11:23:09.481Z",
"arrivalTimeSlotLatestTimeIgnored": true,
"estimatedDepartureDateTime": "2020-03-31T11:23:09.481Z",
"estimatedDepartureTimeIgnored": true,
"shuntingDateTime": "2020-03-31T11:23:09.481Z",
"shuntingTimeIgnored": true,
"constraints": [],
"internalMetadata": {},
"miscRemarks": { },
"materialGroups": [
{
"identifier": "string",
"earliestStartLoadingDateTime": "2020-03-31T11:23:09.481Z",
"earliestStartLoadingTimeIgnored": true,
"latestEndLoadingDateTime": "2020-03-31T11:23:09.481Z",
"latestEndLoadingTimeIgnored": true,
"metadata": "string",
"unloadingTransportLocation": {
"identifier": "string",
"name": "string",
"streetNameAndNumber": "string",
"postalCode": "string",
"cityName": "string",
"countryIsoCode": "string",
"warehouseLocationIdentifier": "string",
"origin": "string"
},
"requestedWeight": {
"min": 0,
"max": 0,
"target": 0
},
"requestedNumberOfUnits": {
"min": 0,
"max": 0,
"target": 0
},
"remarks": [“remark”],
"miscRemarks": { },
"materialUnits": [
{
"lmiContext": "string",
"grossWeight": 0,
"lmiNumber": "string",
"scaleUpMaterialUnitIdentifier": "string",
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
335/722
"mustLoad": true,
"locationLabel": "string"
}
],
"materialSelectionCriteriumProperty": "scaleUpArticleId",
"materialSelectionCriteriumValue": "string",
"materialSelectionCriteriumRemark": "string",
"logisticProductTypeIdentifier": "string",
"isLocked": true,
"constraints": [],
"internalMetadata": {},
"equipmentGroup": {
"identifier": "string",
"sequence": 0,
"unloadingTransportLocationIdentifier": "string",
"loadingTransportLocationIdentifier": "string",
"targetEquipmentPublicIdentifier": "string",
"remarks": [“remark”],
"miscRemarks": { },
"internalMetadata": {},
"constraints": []
}
}
],
"loadingTransportLocation": {
"identifier": "string",
"name": "string",
"streetNameAndNumber": "string",
"postalCode": "string",
"cityName": "string",
"countryIsoCode": "string",
"warehouseLocationIdentifier": "string",
"origin": "string"
},
},
"preregistration": {
"type": "truck",
"driverOrCaptainNames": [
"string"
],
"vehicleName": "string",
"trailerName": "string",
"trailerType": "string",
"tare": 0,
"grossVehicleWeightRating": 0,
"derogationMass": 0,
"derogationCertificateNumber": "string",
},
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
336/722
Notification(s)
{
"resourceType": "loadingInstruction",
"notificationType": "Create "
"scope": "",
"sender": "Artemis.Core.Transport",
"data": {
"context": {
"key": "value"
},
"id": {
"identifier": "ID000000",
"transportIdentifier": "ID000000",
"transportType": "Shipment | Intrasite", 0.0.58.0
"siteIdentifier": "LIE",
},
"owner": "OTM",
"mode": "truck | wagon | barge | vessel | airplane", 0.0.76.0
"materialGroups": [
{
"identifier": "ID000000",
"targetNumberOfUnits": 2,
"materialUnits": [
{"lmiContext": "LIE", "lmiNumber":"ID000000", "mustLoad":true, “weight”: 50 }
],
"equipmentIdentifiers": ["EQ0001"]
},
{
"identifier": "ID111111",
"targetWeight": 20000,
"equipmentIdentifiers": ["EQ0001"]
},
"mam":
{
"value": "22000",
"derogation": "22200"
} 0.0.63.0,
"originalRequestInfo": {
"requestedAt": "2020-04-02T15:28:06.1045871+02:00",
"requestedBy": "TMS"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
337/722
Update
1.61.0
HTTP Request
PUT /transport-api/v1/transports/{transportIdentifier}/loadinginstructions/{identifier}
Request Parameters
transportIdentifier
(string)
Unique identifier of the transport used in the TMS owner and all over the
sites
identifier (string)
Request Body
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
338/722
{
…
loadingInstruction {
arrivalTimeSlotStrict (bool, optional),
arrivalTimeSlotEarliestDateTime (datetime, optional),
arrivalTimeSlotEarliestTimeIgnored (bool, optional),
arrivalTimeSlotLatestDateTime (datetime, optional),
arrivalTimeSlotLatestTimeIgnored (bool, optional),
estimatedDepartureDateTime (datetime, optional),
estimatedDepartureTimeIgnored (bool, optional),
adjustedDepartureDateTime (datetime, optional), 0.0.72.0,
shuntingDateTime (datetime, optional),
shuntingTimeIgnored (bool, optional),
isChartered (bool, optional), 0.0.47.0
remarks (string[], optional), deprecated 0.0.49.0
miscRemarks (json, optional), 0.0.68.0
internalMetadata (json, optional), 0.0.56.0,
metadata (json, optional), 0.0.60.0
constraints [ 0.0.53.0
{
constraintType (string) = [CustomsDocumentsRequired, EquipmentTypeNotToUse,
EquipmentTypeToUse, FreeText, …],
constraintValue (string),
constraintUnit (string) 0.0.71.0
}, … ],
materialGroups [
{
identifier (string),
earliestStartLoadingDateTime (datetime, optional),
earliestStartLoadingTimeIgnored (bool, optional),
latestEndLoadingDateTime (datetime, optional),
latestEndLoadingTimeIgnored (bool, optional),
materialSelectionCriteriumProperty (string, optional) = [‘ScaleUpArticleId’,
‘OrderItemId’, ‘ScheduledAgreementId’, ‘ShipmentInstructionId’, ‘ShipmentProgramId’, …],
materialSelectionCriteriumValue (string, optional),
materialSelectionCriteriumRemark (string, optional),
logisticProductTypeIdentifier (string),
isLocked (bool),
remarks (string[], optional), deprecated 0.0.49.0
miscRemarks (json, optional), 0.0.68.0
internalMetadata (json, optional), 0.0.56.0
metadata (json, optional), 0.0.61.0
equipmentIdentifiers (string[], optional), 0.0.78.0
constraints [ 0.0.53.0
{
constraintType (string),
constraintValue (string),
constraintUnit (string) 0.0.71.0
}, … ],
unloadingTransportLocation {
identifier (string),
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
339/722
name (string),
streetNameAndNumber (string),
postalCode (string),
cityName (string),
countryIsoCode (string),
warehouseLocationIdentifier (string, optional),
origin (string)
},
requestedWeight {
min (int, optional),
max (int, optional),
target (int, optional)
} (optional),
requestedNumberOfUnits {
min (int, optional),
max (int, optional),
target (int, optional)
} (optional),
materialUnits [
{
lmiContext (string),
lmiNumber (string),
mustLoad (bool, optional),
locationLabel (string, optional)
}, …
],
equipmentGroup {
identifier (string),
sequence (int, optional),
unloadingTransportLocationIdentifier (string), 0.0.78.0
loadingTransportLocationIdentifier (string), 0.0.78.0
targetEquipmentPublicIdentifier (string, optional),
remarks (string[], optional), deprecated 0.0.53.0
miscRemarks (json, optional), 0.0.68.0
internalMetadata (json, optional), 0.0.56.0
metadata (json, optional), 0.0.60.0
constraints [ 0.0.53.0
{
constraintType (string),
constraintValue (string),
constraintUnit (string) 0.0.71.0
}, … ]
} (optional),
}, …
],
loadingTransportLocation {
identifier (string),
name (string),
streetNameAndNumber (string),
postalCode (string),
cityName (string),
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
340/722
countryIsoCode (string),
warehouseLocationIdentifier (string, optional),
origin (string),
},
},
preregistration 0.0.48.0 (optional) {
type (string)= ['truck', 'ship']
driverOrCaptainNames [ (string), … ] (optional),
tractorName (string, optional),
trailerName (string, optional),
trailerType (string, optional),
carrier (string, optional),
tare (string, optional),
derogationMass (long, optional),
derogationCertificateNumber (string, optional),
grossVehicleWeightRating (long, optional),
shipName (string, optional),
imo (string, optional),
vin (string, optional),
eni (string, optional)
}
}
Responses
Response 200 (Ok)
Response 201 (Created)
Response 400 (BadRequest)
28
At least one MaterialGroup item is required in the LoadingInstruction
MaterialGroup are duplicated in the LoadingInstruction
Predefined MaterialUnit is repeated in two MaterialGroups in the same
LoadingInstruction
‘UnloadingTransportLocationIdentifier’ specified in MaterialGroup is not the same
than the one given in related EquipmentGroup
‘LoadingTransportLocationIdentifier’ specified in EquipmentGroup not found in the
LoadingInstruction
‘RequestedNumberOfUnits’ and ‘RequestedWeight’ cannot be defined at the same
time
At least Min, Target or Max of ‘RequestedNumberOfUnits’ or ‘RequestedWeight’
should be defined
‘RequestedNumberOfUnits’ or ‘RequestedWeight’ data unconsistency – see rules
here above in properties description
‘MaterialSelectionCriteriumProperty’ set without ‘MaterialSelectionCriteriumValue’
‘MaterialSelectionCriteriumValue’ set without ‘MaterialSelectionCriteriumProperty’
Any mandatory fields not specified in
Transport/LoadingInstruction/MaterialGroup/EquipmentGroup
Response 403 (Forbidden)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
341/722
28
28
‘UnloadingTransportLocationIdentifier’ cannot be updated on MaterialGroup
Different ‘UnloadingTransportLocationIdentifier’ on the same EquipmentGroup
within a Transport
33
Operation not allowed on Transport '{0}' with DefinitionState 'FullyDefined 1.81.0
34
Operation not allowed on Transport '{0}' when one LI is locked
49
Multiple LoadingInstructions not allowed on same Transport with bulk method
50
MaterialUnit(s) are marked for deletion
51
MaterialUnit(s) not found
2733
Could not update LoadingInstruction because it's closed or completed 0.0.72.0
2734
Could not update LoadingInstruction because it’s locked
2736
Could not update LoadingInstruction because it is in 'confirmed' state. 1.71.0
3001
Equipment: ‘{0}’ does not exist in transport 1.78.0
2764
MaterialGroup(s) already linked: '{0}' 1.81.0
Response 409 (Conflict)
2761
LoadingInstruction with identifier '{0}' on transport '{1}' already exists 1.81.0
2763
A predefinedMaterialUnit in LoadingInstruction with identifier '{0}' on transport
'{1}' already exists on another LoadingInstruction in same Transport 1.81.0
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
342/722
Example
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
343/722
{
…
"loadingInstruction": {
"arrivalTimeSlotStrict": true,
"arrivalTimeSlotEarliestDateTime": "2020-03-31T11:23:09.481Z",
"arrivalTimeSlotEarliestTimeIgnored": true,
"arrivalTimeSlotLatestDateTime": "2020-03-31T11:23:09.481Z",
"arrivalTimeSlotLatestTimeIgnored": true,
"estimatedDepartureDateTime": "2020-03-31T11:23:09.481Z",
"estimatedDepartureTimeIgnored": true,
"shuntingDateTime": "2020-03-31T11:23:09.481Z",
"shuntingTimeIgnored": true,
"constraints": [],
"internalMetadata": {},
"miscRemarks": { },
"materialGroups": [
{
"identifier": "string",
"earliestStartLoadingDateTime": "2020-03-31T11:23:09.481Z",
"earliestStartLoadingTimeIgnored": true,
"latestEndLoadingDateTime": "2020-03-31T11:23:09.481Z",
"latestEndLoadingTimeIgnored": true,
"metadata": "string",
"unloadingTransportLocation": {
"identifier": "string",
"name": "string",
"streetNameAndNumber": "string",
"postalCode": "string",
"cityName": "string",
"countryIsoCode": "string",
"warehouseLocationIdentifier": "string",
"origin": "string"
},
"requestedWeight": {
"min": 0,
"max": 0,
"target": 0
},
"requestedNumberOfUnits": {
"min": 0,
"max": 0,
"target": 0
},
"remarks": [“remark”],
"miscRemarks": { },
"materialUnits": [
{
"lmiContext": "string",
"grossWeight": 0,
"lmiNumber": "string",
"scaleUpMaterialUnitIdentifier": "string",
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
344/722
"mustLoad": true,
"locationLabel": "string"
}
],
"materialSelectionCriteriumProperty": "scaleUpArticleId",
"materialSelectionCriteriumValue": "string",
"materialSelectionCriteriumRemark": "string",
"logisticProductTypeIdentifier": "string",
"isLocked": true,
"constraints": [],
"internalMetadata": {},
"equipmentGroup": {
"identifier": "string",
"sequence": 0,
"unloadingTransportLocationIdentifier": "string",
"loadingTransportLocationIdentifier": "string",
"targetEquipmentPublicIdentifier": "string",
"remarks": [“remark”],
"miscRemarks": { },
"internalMetadata": {},
"constraints": []
}
}
],
"loadingTransportLocation": {
"identifier": "string",
"name": "string",
"streetNameAndNumber": "string",
"postalCode": "string",
"cityName": "string",
"countryIsoCode": "string",
"warehouseLocationIdentifier": "string",
"origin": "string"
},
},
"preregistration": {
"type": "truck",
"driverOrCaptainNames": [
"string"
],
"vehicleName": "string",
"trailerName": "string",
"trailerType": "string",
"tare": 0,
"grossVehicleWeightRating": 0,
"derogationMass": 0,
"derogationCertificateNumber": "string",
},
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
345/722
Notification(s)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
346/722
{
"resourceType": "loadingInstruction",
"notificationType": "Update"
"scope": "",
"sender": "Artemis.Core.Transport",
"data": {
"context": {
"key": "value"
},
"id": {
"identifier": "ID000000",
"transportIdentifier": "ID000000",
"transportType": "Shipment | Intrasite", 0.0.58.0,
"siteIdentifier": "LIE",
},
"owner": "OTM",
"mode": "truck | wagon | barge | vessel | airplane", 0.0.76.0
"materialGroups": [
{
"identifier": "ID000000",
"targetNumberOfUnits": 2,
"materialUnits": [
{"lmiContext": "LIE", "lmiNumber":"ID000000", "mustLoad":true, “weight”: 50 }
],
"equipmentIdentifiers": ["EQ0001"]
},
{
"identifier": "ID111111",
"targetWeight": 20000,
"equipmentIdentifiers": ["EQ0001"]
},
"mam":
{
"value": "22000",
"derogation": "22200"
} 0.0.63.0,
"originalRequestInfo": {
"requestedAt": "2020-04-02T15:28:06.1045871+02:00",
"requestedBy": "TMS"
}
},
"previousData": {
"materialGroups": { 1.73.0
"updated": [
{
"identifier": "ID000000",
"targetNumberOfUnits": 2,
"materialUnits": [
{
"lmiContext": "LIE",
"lmiNumber": "ID000000",
"mustLoad": true,
"weight": 10000
},
{
"lmiContext": "LIE",
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
347/722
"lmiNumber": "ID111111",
"mustLoad": true,
"weight": 10000
}
]
},
{
"identifier": "ID111111",
"targetNumberOfUnits": 2,
"materialUnits": [
{
"lmiContext": "LIE",
"lmiNumber": "ID222222",
"mustLoad": true,
"weight": 10000
},
{
"lmiContext": "LIE",
"lmiNumber": "ID333333",
"mustLoad": true,
"weight": 11111
}
]
}
],
"added": [],
"removed": []
},
"mam": null
}
}
1.84.0 ExecutionUpdated see chapter ExecutionUpdated 1.84.0
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
348/722
Partial update
0.0.78.0
Property ‘Metadata’ can also be updated but has merge functionality:
•
•
when patching a metadata key that does not exist : add key and value
when patching a metadata key that exists : update value for key
Keys that are not mentioned in the patch are not modified.
HTTP Request
PATCH /transport-api/v1/transports/{transportIdentifier}/loadinginstructions/{identifier}
Request Parameters
identifier (string)
Request Body
{
…
loadingInstruction: [
{
value (Json),
path (string),
op (string)
},
…
]
}
Responses
Response 204 (NoContent)
Response 403 (Forbidden)
2734
LoadingInstruction is locked
28
ValidationFailed (ex: Loading TransportLocation cannot be updated)
Response 404 (NotFound)
2758
Transport not found
2759
LoadingInstruction not found
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
349/722
Example
{
…
"loadingInstruction": [
{
"value": { "metadata1":"value1"},
"path": "metadata",
"op": "replace",
},
…
]
}
Notification(s)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
350/722
{
"resourceType": "loadingInstruction",
"notificationType": "PartialUpdate"
"scope": "",
"sender": "Artemis.Core.Transport",
"data": {
"context": {
"key": "value"
},
"id": {
"identifier": "ID000000",
"transportIdentifier": "ID000000",
"transportType": "Shipment | Intrasite", 0.0.58.0,
"siteIdentifier": "LIE",
},
"owner": "OTM",
"mode": "truck | wagon | barge | vessel | airplane", 0.0.76.0
"materialGroups": [
{
"identifier": "ID000000",
"targetNumberOfUnits": 2,
"materialUnits": [
{"lmiContext": "LIE", "lmiNumber":"ID000000", "mustLoad":true, “weight”: 50 }
],
"equipmentIdentifiers": ["EQ0001"]
},
{
"identifier": "ID111111",
"targetWeight": 20000,
"equipmentIdentifiers": ["EQ0001"]
},
"mam":
{
"value": "22000",
"derogation": "22200"
} 0.0.63.0,
"originalRequestInfo": {
"requestedAt": "2020-04-02T15:28:06.1045871+02:00",
"requestedBy": "TMS"
}
},
"previousData": {
"materialGroups": { 1.73.0
"updated": [
{
"identifier": "ID000000",
"targetNumberOfUnits": 2,
"materialUnits": [
{
"lmiContext": "LIE",
"lmiNumber": "ID000000",
"mustLoad": true,
"weight": 10000
},
{
"lmiContext": "LIE",
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
351/722
"lmiNumber": "ID111111",
"mustLoad": true,
"weight": 10000
}
]
},
{
"identifier": "ID111111",
"targetNumberOfUnits": 2,
"materialUnits": [
{
"lmiContext": "LIE",
"lmiNumber": "ID222222",
"mustLoad": true,
"weight": 10000
},
{
"lmiContext": "LIE",
"lmiNumber": "ID333333",
"mustLoad": true,
"weight": 11111
}
]
}
],
"added": [],
"removed": []
},
"mam": null
}
}
1.84.0 ExecutionUpdated see chapter
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
352/722
Delete
1.0.76
This method is used to delete a loading instruction.
HTTP Request
DELETE /transport-api/v1/transports/{transportIdentifier}/loadinginstructions/{identifier}
Request Parameters
identifier (string)
Request Body
{
…
reason (string)
}
Responses
Response 200 (Ok)
Response 403 (Forbidden)
2754
Could not delete loading instruction because it is locked
2748
Deletion not allowed on loading instruction
Response 404 (NotFound)
5
Transport '{0}' not found
Example
{
…,
"reason": "Deletion"
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
353/722
Notification
{
"resourceType":"loadingInstruction",
"notificationType":"Deleted",
"sender":"Artemis.Transport.Instruction",
"data":{
"identifier":"ID000000",
"transportIdentifier":"ID000000",
"siteIdentifier":"LIE",
"owner":"Syltram",
"mode": "truck | wagon | barge | vessel | airplane", 0.0.76.0
"context":{
"key":"value"
},
"originalRequestInfo":{
"requestedAt":"2021-11-03T16:29:06.4157111+00:00",
"requestedBy":"owner"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
354/722
Get by custom filter
Since version 0.0.71 we recommend to use the Artemis.Transport.Query service to
retrieve this resource. The documentation is available directly in Swagger
(http://+:5505/swagger) but is rather close to this one although some addititional
information is available.
0.0.65.0
Retrieve a transport on site by custom filter
HTTP Request
POST /transport-api/v1/loadinginstructions/searches
Request Body
{
"query": {
…
},
"select": [
{
…
],
"paging": {
"pageSize": 0,
"pageNumber": 0
},
"orderBy": {
…
},
"includes": [ {
…
}]
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
355/722
Example
{
"Includes":[
{
"Name":"transport",
"nodeType":"property"
}
],
"Query":{
"Body":{
"Operator":"lessThanOrEqual",
"Left":{
"Name":"ArrivalTimeSlotEarliestDateTime",
"Left":{
"Type":"LoadingInstructionResult",
"Name":"t",
"nodeType":"parameter"
},
"nodeType":"property"
},
"Right":{
"Operator":"convert",
"Operand":{
"Value":"2022-01-25T18:04:58.7271554+00:00",
"nodeType":"constant"
},
"type":"DateTimeOffset",
"isNullable":"true",
"nodeType":"unary"
},
"nodeType":"binary"
},
"Parameters":[
"t"
],
"nodeType":"lambda"
},
"Select":null,
"Paging":null,
"OrderBy":null
}
Responses
Response 200 (Ok)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
356/722
{
totalPages (int),
hasPreviousPage (bool),
hasNextPage (bool),
pageIndex (int),
pageSize (int),
totalCount (int),
items [
{
identifier (string),
arrivalTimeSlotStrict (bool, optional),
arrivalTimeSlotEarliestDateTime (datetime, optional),
arrivalTimeSlotEarliestTimeIgnored (bool, optional),
arrivalTimeSlotLatestDateTime (datetime, optional),
arrivalTimeSlotLatestTimeIgnored (bool, optional),
estimatedDepartureDateTime (datetime, optional),
estimatedDepartureTimeIgnored (bool, optional),
adjustedDepartureDateTime (datetime, optional), 0.0.72.0,
shuntingDateTime (datetime, optional),
shuntingTimeIgnored (bool, optional),
isChartered (bool, optional), 0.0.47.0
remarks (string[], optional), 0.0.49.0
miscRemarks (json, optional), 0.0.68.0
internalMetadata (json, optional), 0.0.56.0,
metadata (json, optional), 0.0.60.0
constraints [ 0.0.53.0
{
constraintType (string),
constraintValue (string),
constraintUnit (string) 0.0.71.0
}, … ],
materialGroups [
{
identifier (string),
miscRemarks (json, optional), 0.0.68.0
…
constraints [ 0.0.53.0
{
constraintType (string),
constraintValue (string),
constraintUnit (string) 0.0.71.0
}, … ],
unloadingTransportLocation {
…
},
requestedWeight {
…
} (optional),
requestedNumberOfUnits {
…
} (optional),
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
357/722
materialUnits [
{
…
}, …
],
equipmentGroup {
miscRemarks (json, optional), 0.0.68.0
…
}, …
],
loadingTransportLocation {
identifier (string),
name (string),
streetNameAndNumber (string),
postalCode (string),
cityName (string),
countryIsoCode (string),
warehouseLocationIdentifier (string, optional),
origin (string),
},
},
preregistration (optional) {
type (string)= ['truck', 'ship']
driverOrCaptainNames [ (string), … ] (optional),
tractorName (string, optional),
trailerName (string, optional),
trailerType (string, optional),
carrier (string, optional),
tare (string, optional),
derogationMass (long, optional),
derogationCertificateNumber (string, optional),
grossVehicleWeightRating (long, optional),
shipName (string, optional),
imo (string, optional),
vin (string, optional),
eni (string, optional)
}
]
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
358/722
Example
{
"totalPages": 1,
"hasPreviousPage": false,
"hasNextPage": false,
"pageIndex": 0,
"pageSize": 20,
"totalCount": 1,
"items": [
{
"arrivalTimeSlotStrict": true,
"arrivalTimeSlotEarliestDateTime": "2020-04-15T15:12:34.5+00:00",
"arrivalTimeSlotEarliestTimeIgnored": true,
"arrivalTimeSlotLatestDateTime": "2020-04-15T15:12:34.5+00:00",
"arrivalTimeSlotLatestTimeIgnored": true,
"estimatedDepartureDateTime": "2020-04-15T15:12:34.5+00:00",
"estimatedDepartureTimeIgnored": true,
"shuntingDateTime": "2020-04-15T15:12:34.5+00:00",
"shuntingTimeIgnored": true,
"materialGroups": [],
"loadingTransportLocation": null,
"identifier": "ID000000",
"id": "fbe818dc-e9e2-ea11-a2e6-001dd8b7466b",
"state": "Confirmed",
"isChartered": true,
"locked": false,
"internalMetadata": {},
}]
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
359/722
4.10. Unloading Instruction
Create
1.65.0
HTTP Request
POST /transport-api/v1/transports/{transportIdentifier}/unloadinginstructions
Request Parameters
transportIdentifier
(string)
Unique identifier of the transport used in the TMS owner and all over the
sites
Request Body
{
…
identifier (string),
unloadingTransportLocation {
siteIdentifier (string),
locationIdentifier (string, optional)
},
materialGroups ([
{
loadingInstructionIdentifier (string),
materialGroupIdentifier (string)
},
…], optional),
materialUnits ([
{
lmiContext (string),
lmiNumber (string),
equipmentIdentifier (string) 1.81.0
},
…], optional)
}
Responses
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
360/722
Responses
Response 200 (Created)
Response 400 (BadRequest)
2739
A minimum of one or more MaterialGroup(s) or MaterialUnit(s) is required
2741
MaterialGroups are duplicated in the UnloadingInstruction
2742
MaterialUnits are duplicated in the UnloadingInstruction
Response 403 (Forbidden)
33
Operation not allowed on Transport '{0}' with DefinitionState 'FullyDefined 1.81.0
34
Operation not allowed on Transport '{0}' when one LI is locked
49
Multiple UnloadingInstructions not allowed on same Transport
50
MaterialUnit(s) are marked for deletion
51
MaterialUnit(s) not found
2733
Could not update UnloadingInstruction because it's closed or completed 1.81.0
2734
Could not update UnloadingInstruction because it’s locked
2736
Could not update UnloadingInstruction because it is in 'confirmed' state.
Response 409 (Conflict)
2740
UnloadingInstruction with identifier '{0}' already exists on Transport.
UnloadingInstruction with on same unloading location '{0}' already exists on
Transport.
2765
UnloadingInstruction with identifier '{0}' on transport '{1}' already exists 1.81.0
Example
{
…
"identifier": "ID000000",
"materialGroups": [
{
"loadingInstructionIdentifier": "string",
"materialGroupIdentifier": "string",
}],
"materialUnits": [
{
"lmiContext": "string",
"lmiNumber": "string",
}],
"unloadingTransportLocation": {
"siteIdentifier": "LIE",
"locationIdentifier": "WL0"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
361/722
Notification(s)
{
"resourceType": "unloadingInstruction",
"notificationType": "Create"
"scope": "",
"sender": "Artemis.Core.Transport",
"data": {
"context": {
"key": "value"
},
"id": {
"id": "123e4567-e89b-12d3-a456-426614174000", 1.81.0
"identifier": "ID000000",
"transportIdentifier": "ID000000",
"transportType": "Shipment | Intrasite"
},
"owner": "OTM",
"mode": "truck | wagon | barge | vessel | airplane", 1.0.85
"materialGroups": [
{
"loadingInstructionIdentifier": "ID000000",
"materialGroupIdentifier": 2,
}],
"materialUnits": [
{
"lmiContext": "LIE",
"lmiNumber":"ID000000",
“weight”: 50,
"equipmentIdentifier": “EQ0” 1.81.0
}
],
"unloadingTransportLocation" : {
"siteIdentifier" : "LIE",
"locationIdentifier" : "WL0",
},
"originalRequestInfo": {
"requestedAt": "2020-04-02T15:28:06.1045871+02:00",
"requestedBy": "TMS"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
362/722
Update
1.65.0
HTTP Request
PUT /transport-api/v1/transports/{transportIdentifier}/unloadinginstructions/{identifier}
Request Parameters
transportIdentifier
(string)
Unique identifier of the transport used in the TMS owner and all over the
sites
identifier (string)
Request Body
{
…
unloadingTransportLocation {
siteIdentifier (string),
locationIdentifier (string, optional)
},
materialGroups ([
{
loadingInstructionIdentifier (string),
materialGroupIdentifier (string)
},
…], optional),
materialUnits ([
{
lmiContext (string),
lmiNumber (string),
equipmentIdentifier (string) 1.81.0
},
…], optional)
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
363/722
Responses
Response 200 (Created)
Response 400 (BadRequest)
2739
A minimum of one or more MaterialGroup(s) or MaterialUnit(s) is requireds
2741
MaterialGroups are duplicated in the UnloadingInstruction
2742
MaterialUnits are duplicated in the UnloadingInstruction
Response 403 (Forbidden)
ValidationFailed (ex: Unloading TransportLocation cannot be updated) 1.84.0
34
Operation not allowed on Transport '{0}' when one LI is locked
49
Multiple UnloadingInstructions not allowed on same Transport
50
MaterialUnit(s) are marked for deletion
51
MaterialUnit(s) not found
2733
Could not update UnloadingInstruction because it's closed 1.81.0
2743
Could not update UnloadingInstruction because it's closed or completed 1.81.0
2734
Could not update UnloadingInstruction because it’s locked
2736
Could not update UnloadingInstruction because it is in 'confirmed' state. 1.81.0
2767
UnloadingInstruction '{0}': Unloading LocationIdentifier cannot be updated (old:
'{1}' / new: '{2}' 1.84.0
2768
UnloadingInstruction '{0}': Unloading SiteIdentifier cannot be updated (old: '{1}' /
new: '{2}') 1.84.0
Response 404 (NotFound)
Transport not found
Response 409 (Conflict)
UnloadingInstruction with on same unloading location '{0}' already exists on
Transport.
Example
{
…
"materialGroups": [
{
"loadingInstructionIdentifier": "string",
"materialGroupIdentifier": "string",
}],
"materialUnits": [
{
"lmiContext": "string",
"lmiNumber": "string",
}],
"unloadingTransportLocation": {
"siteIdentifier": "string",
"locationIdentifier": "string"
},
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
364/722
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
365/722
Notification(s)
{
"resourceType": "unloadingInstruction",
"notificationType": "Udpated"
"scope": "",
"sender": "Artemis.Core.Transport",
"data": {
"context": {
"key": "value"
},
"id": {
"id": "123e4567-e89b-12d3-a456-426614174000", 1.81.0
"identifier": "ID000000",
"transportIdentifier": "ID000000",
"transportType": "Shipment | Intrasite"
},
"owner": "OTM",
"mode": "truck | wagon | barge | vessel | airplane", 1.0.85
"materialGroups": [
{
"loadingInstructionIdentifier": "ID000000",
"materialGroupIdentifier": 2,
}],
"materialUnits": [
{
"lmiContext": "LIE",
"lmiNumber":"ID000000",
“weight”: 50,
"equipmentIdentifier": “EQ0” 1.81.0
}
],
"unloadingTransportLocation" : {
"siteIdentifier" : "LIE",
"locationIdentifier" : "WL0",
},
"originalRequestInfo": {
"requestedAt": "2020-04-02T15:28:06.1045871+02:00",
"requestedBy": "TMS"
}
}
}
1.84.0 ExecutionUpdated see chapter ExecutionUpdated 1.84.0
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
366/722
Partial update
1.84.0
HTTP Request
PATCH /transport-api/v1/transports/{transportIdentifier}/unloadinginstructions/{identifier}
Request Parameters
identifier (string)
Request Body
{
…
unloadingInstruction: [
{
value (Json),
path (string),
op (string)
},
…
]
}
Responses
Response 204 (NoContent)
Response 403 (Forbidden)
2734
UnloadingInstruction is locked
ValidationFailed
2767
UnloadingInstruction '{0}': Unloading LocationIdentifier cannot be updated (old:
'{1}' / new: '{2}' 1.84.0
2768
UnloadingInstruction '{0}': Unloading SiteIdentifier cannot be updated (old: '{1}' /
new: '{2}') 1.84.0
Response 404 (NotFound)
Transport or UnloadingInstruction not found 1.84.0
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
367/722
Example
{
…
"unloadingInstruction": [
{
"path": "materialGroups",
"op": "replace",
"value": [
{
"loadingInstructionIdentifier": "string",
"materialGroupIdentifier": "string"
}, …]
},
{
"path": "materialUnits",
"op": "replace",
"value": [
{
"lmiContext": "string",
"lmiNumber": "string"
}, …]
},
…
]
}
Notification(s)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
368/722
{
"resourceType": "unloadingInstruction",
"notificationType": "PartialUpdate"
"scope": "",
"sender": "Artemis.Core.Transport",
"data": {
"context": {
"key": "value"
},
"id": {
"identifier": "ID000000",
"transportIdentifier": "ID000000",
"transportType": "Shipment | Intrasite"
},
"owner": "OTM",
"mode": "truck | wagon | barge | vessel | airplane", 1.0.85
"materialGroups": [
{
"loadingInstructionIdentifier": "ID000000",
"materialGroupIdentifier": 2,
}],
"materialUnits": [
{
"lmiContext": "LIE",
"lmiNumber":"ID000000",
“weight”: 50,
"equipmentIdentifier": “EQ0”
}
],
"unloadingTransportLocation" : {
"siteIdentifier" : "LIE",
"locationIdentifier" : "WL0",
},
"originalRequestInfo": {
"requestedAt": "2020-04-02T15:28:06.1045871+02:00",
"requestedBy": "TMS"
}
}
}
1.84.0 ExecutionUpdated see chapter ExecutionUpdated 1.84.0
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
369/722
Get by identifier
Since version 0.0.71 we recommend to use the Artemis.Transport.Query service to
retrieve this resource. The documentation is available directly in Swagger
(http://+:5505/swagger) but is rather close to this one although some addititional
information is available.
1.65.0
Retrieve an unloading instruction by identifier.
HTTP Request
GET /transport-api/v1/transports/{transportIdentifier}/unloadinginstructions/{identifier}
Request Parameters
transportIdentifier
(string)
Unique identifier of the transport used in the TMS owner and all over the
sites
identifier (string)
Responses
Response 200 (Ok)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
370/722
{
…
id (Guid),
identifier (string),
siteIdentifier (string), 1.81.0
locked (bool), 1.81.0
state (string), 1.81.0
unloadingTransportLocation {
siteIdentifier (string),
locationIdentifier (string, optional)
},
materialGroups ([
{
loadingInstructionIdentifier (string),
materialGroupIdentifier (string)
},
…], optional),
materialUnits ([
{
lmiContext (string),
lmiNumber (string),
equipmentIdentifier (string) 1.81.0
equipment [ 1.84.0
identifier (string),
vehicleTypeIdentifier (string, optional),
vehicleName (string, optional),
metadata (json, optional),
internalMetadata (json, optional)
],
},
…], optional)
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
371/722
Response 404 (NotFound)
Example
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"identifier": "ID000000",
"siteIdentifier": "ID000000",
"isLocked": false,
"state": "Cancelled",
"materialGroups": [
{
"loadingInstructionIdentifier": "string",
"materialGroupIdentifier": "string",
}],
"materialUnits": [
{
"lmiContext": "string",
"lmiNumber": "string",
"equipmentIdentifier": "string"
}],
"unloadingTransportLocation": {
"siteIdentifier": "string",
"locationIdentifier": "string"
},
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
372/722
Get all
1.65.0
Retrieve all unloading instruction(s) of a transport.
HTTP Request
GET /transport-api/v1/transports/{transportIdentifier}/unloadinginstructions
Request Parameters
transportIdentifier
(string)
Unique identifier of the transport used in the TMS owner and all over the
sites
Responses
Response 200 (Ok)
[
{
…
id (Guid),
identifier (string),
siteIdentifier (string), 1.81.0
locked (bool), 1.81.0
state (string), 1.81.0
unloadingTransportLocation {
siteIdentifier (string),
locationIdentifier (string, optional)
},
materialGroups ([
{
loadingInstructionIdentifier (string),
materialGroupIdentifier (string)
},
…], optional),
materialUnits ([
{
lmiContext (string),
lmiNumber (string),
equipmentIdentifier (string) 1.81.0
},
…], optional)
}, …
]
Response 404 (NotFound)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
373/722
Example
[{
"id": "123e4567-e89b-12d3-a456-426614174000",
"identifier": "ID000000",
"siteIdentifier": "ID000000",
"isLocked": false,
"state": "Cancelled",
"materialGroups": [
{
"loadingInstructionIdentifier": "string",
"materialGroupIdentifier": "string",
}],
"materialUnits": [
{
"lmiContext": "string",
"lmiNumber": "string",
"equipmentIdentifier": "string"
}],
"unloadingTransportLocation": {
"siteIdentifier": "string",
"locationIdentifier": "string"
},
}
},
{
"id": "456e4567-e89b-12d3-a456-426614174123",
"identifier": "ID111111",
"materialGroups": [
{
"loadingInstructionIdentifier": "string",
"materialGroupIdentifier": "string",
}],
"materialUnits": [
{
"lmiContext": "string",
"lmiNumber": "string",
}],
"unloadingTransportLocation": {
"siteIdentifier": "string",
"locationIdentifier": "string"
},
}
},]
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
374/722
Cancel
0.0.67.0
1.84.0 Removed
HTTP Request
DELETE /transport-api/v1/transports/{identifier}/unloadinginstruction
Request Parameters
identifier (string)
Request Body
{
…,
reason (string) = ['Cancellation']
}
Responses
Response 200 (Ok)
Response 400 (BadRequest)
2749
Deletion reason not allowed on unloading instruction: '{0}' 0.0.74.0
Response 403 (Forbidden)
52
Operation is not allowed on Transport (i.e. Transport already Cancelled)
2750
Could not delete unloading instruction because it is in 'cancelled' state.
2751
Could not delete unloading instruction because it is in 'closed' state.
2752
Could not delete unloading instruction because it is in 'executed' state.
2753
Could not delete unloading instruction because it is locked.
Response 404 (NotFound)
5
Transport '{0}' not found
60
Unloading Instruction not found on site
Example
{
…
"reason": "Cancellation"
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
375/722
Notification(s)
{
"notificationType": "UnloadingRemoved"
"resourceType": "transport",
"scope": "",
"sender": "Artemis.Transport.Execution ",
"data": {
"context": {
"key": "value"
},
"type": "road",
"transportIdentifier": "ID000000",
"siteIdentifier": "LIE",
"owner": "Syltram",
"reason": "Cancellation",
"transportType": "Shipment", 1.84.0
"originalRequestInfo": {
"requestedAt": "2022-03-02T04:44:01.1323391+01:00",
"requestedBy": "RequestedBy2d58f099-74db-4028-9d3c-68bd87e35fc0"
}
}
{
"notificationType": "Deleted"
"resourceType": "unloadinginstruction",
"scope": "",
"sender": "Artemis.Transport.Instruction",
"data": {
"context": {
"key": "value"
},
"id": {
"id": "59d40ccb-4f9a-ec11-937e-10e7c6313bdb",
"identifier": "ID000000",
"transportIdentifier": "T0",
"transportType": "Shipment",
"siteIdentifier": "ID111111"
},
"owner": "owner",
"mode": "truck | wagon | barge | vessel | airplane", 1.0.85
"reason": "Cancellation"
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
376/722
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
377/722
Delete
1.84.0
HTTP Request
DELETE /transport-api/v1/transports/{transportIdentifier}/unloadinginstructions/{identifier}
Request Parameters
transportIdentifier (string)
identifier (string)
Request Body
{
…,
reason (string)
}
Responses
Response 200 (Ok)
Response 400 (BadRequest)
2749
Deletion reason not allowed on unloading instruction: '{0}' 0.0.74.0
Response 403 (Forbidden)
52
Operation is not allowed on Transport (i.e. Transport already Cancelled)
2752
Could not delete unloading instruction because it is in 'executed' state.
2753
Could not delete unloading instruction because it is locked.
Response 404 (NotFound)
5
Transport '{0}' not found
60
Unloading Instruction not found on site
Example
{
…
"reason": "Cancellation"
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
378/722
Notification(s)
{
"notificationType": "UnloadingRemoved"
"resourceType": "transport",
"scope": "",
"sender": "Artemis.Transport.Execution ",
"data": {
"context": {
"key": "value"
},
"type": "road",
"transportIdentifier": "ID000000",
"siteIdentifier": "LIE",
"owner": "Syltram",
"reason": "Cancellation",
"originalRequestInfo": {
"requestedAt": "2022-03-02T04:44:01.1323391+01:00",
"requestedBy": "RequestedBy2d58f099-74db-4028-9d3c-68bd87e35fc0"
}
}
{
"notificationType": "Deleted"
"resourceType": "unloadinginstruction",
"scope": "",
"sender": "Artemis.Transport.Instruction",
"data": {
"context": {
"key": "value"
},
"id": {
"id": "59d40ccb-4f9a-ec11-937e-10e7c6313bdb",
"identifier": "ID000000",
"transportIdentifier": "T0",
"transportType": "Shipment",
"siteIdentifier": "ID111111"
},
"mode": "truck | wagon | barge | vessel | airplane", 1.0.85
"owner": "owner",
"reason": "Cancellation"
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
379/722
4.11. Truck
Create Carrier
0.0.30.0
HTTP Request
POST /transport-api/v1/carriers 0.0.39.0
Request Body
{
…
identifier (string),
gvwr (integer, optional),
vmsIdentificationDate (string),
metadata (json, optional),
drivers ([
{
identifier (string, optional),
name (string)
}
], optional),
supplier ({
expected (boolean),
name (string)
}, optional),
freeLocation ({
name (string, optional),
type (string, optional),
metadata (json, optional)
}, optional),
plateNumber (string),
typeIdentifier (string, optional) = [carrier],
siteIdentifier (string, optional), (Transport-Location-Id is used if not specified) 0.0.62.0
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
380/722
Responses
Response 200 (Ok)
Response 400 (BadRequest)
403
Vehicle Type not found
407
Place number is invalid
413
Gross vehicle weight rating (GVWR) must be greater than 0 (value: '{0}')
Response 403 (Forbidden)
408
Vehicle type base name '{0}' does not match with the transport mode of the
currently updated vehicle.
Response 409 (Conflict)
400
Vehicle already on site or same identifierhas already been used
Example
{
…
"identifier": "string",
"gvwr": 0,
"siteIdentifier": "string",
"vmsIdentificationDate": "2020-02-20T15:37:53.580Z",
"metadata": {},
"drivers": [
{
"identifier": "string",
"name": "string"
}
],
"supplier": {
"expected": true,
"name": "string",
"identifier": "string"
},
"freeLocation": {
"name": "string",
"type": "string",
"metadata": {}
},
"plateNumber": "string",
"typeIdentifier": "string"
}
Notifications
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
381/722
{
"notificationType": "VehicleCreated", 0.0.54.0
"resourceType": "truck",
"scope": "",
"sender": "Artemis.Transport.Vehicle",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-01-07T10:43:32.0149267+00:00",
"requestedBy": "owner"
},
"type": "carrier",
"identifier": "identifierTest",
"name": "b-fb293en",
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
382/722
Create Semi Trailer Truck
0.0.30.0
HTTP Request
POST /transport-api/v1/semi-trailer-trucks 0.0.39.0
Request Body
{
…
identifier (string),
name (string),
metadata (json, optional),
gvwr (integer, optional),
vmsIdentificationDate (datetime),
drivers ([
{
identifier (string, optional),
name (string)
}
], optional),
supplier ({
expected (boolean),
name (string)
}, optional),
freeLocation ({
name (string),
type (string),
metadata (json, optional)
}, optional),
tractor ({
identifier (string),
plateNumber (string)
}, optional),
trailer {
identifier (string),
plateNumber (string),
typeIdentifier (string, optional) = ['semiTrailer']
},
siteIdentifier (string, optional)
}
â–ª
Identifier (text, mandatory)
It is the identifier (like a GUID) of the truck given internally by the truck VMS.
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
383/722
There is only one truck with that Truck.Identifier on all sites managed by an Artemis core
instance.
â–ª
Name (text, optional)
It defines the name given by the ‘user’ to the truck.
There is only one truck with that Truck.Name on the site defined by SiteIdentifier.
On certain site as in Liège, it is the internal number of the truck given by the VMS. It could be
followed by the trailer or carrier plate number.
If not defined, Truck.Name is computed by Artemis core:
It is the plate number of the trailer if it is a semi-trailer
It is the plate number of the carrier if it is a carrier
â–ª
Metadata (json, optional)
Any metadata used/required by local system relatively to the truck such as phone call of the
truck driver, …
â–ª
GVWR (long in kg, optional)
It defines the Gross Vehicle Weight Rating of the truck.
In the future, if the truck consists of two trailers (towed trailers), then the GVWR is for the entire
hitch (and not one of the trailers).
For trucks, the GVWR is required by some countries (France, …) and not needed for others
(Belgium, …).
When the GVWR is not defined, Artemis will not perform the controls that use the GVWR.
It’s the responsibility of the local systems (VMS) or people to provide this information if it is
required.
â–ª
SiteIdentifier (text, optional)
0.0.62.0
It defines the site in which the truck is working when it is created.
A WarehouseLocation of type Site with the same identifier should exist.
Value of Transport-Location-Id header is used if SiteIdentifier is not provided
o
VmsIdentificationDate (datetime, mandatory)
This is the first timestamp at which the truck VMS detects an event on the truck on the site (or
maybe outside the site) where it is created. Examples:
It could be when the barrier automatically opens on plate recognition (before registration)
at PEPA parking at Avilés.
It could be when the driver uses first his badge to open the entrance barrier like in Liège.
It could be at beginning of registration HMI.
It could be at first weighing before registration.
The Truck.FirstIdentificationDateByVMS will be used later by Artemis core to generate the TMS
event ‘Transport arrival’.
â–ª
Drivers (list, optional)
It defines a list of drivers and information related to each of them
One or several driver’s names could be defined (4 driver’s names is a real case).
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
384/722
â–ª
Identifier (text, optional)
It defines the number of the badge given to the driver when he enters in the site. Note that it
could also be the permanent badge of the driver.
There is only one active truck with that Truck.Drivers.BadgeIdentifier on the site.
â–ª
â–ª
â–ª
Name (text, mandatory)
It is a the name of the truck driver.
FreeLocation (optional)
â–ª Name (text, mandatory)
It defines the name (a simple string) of the location on which the Truck is located when it is
created.
â–ª
Type (text, mandatory)
It defines the type (e.g. Parking, CheckIn, Weighing bridge, CheckOut, …) of free location on
which the Truck is located when it is created.
Artemis doesn’t check that truck VMS use only type usable by truck VMS.
â–ª
Metadata (text, optional)
It defines the name (a simple string) of the location on which the Truck is located when it is
created
Tractor (optional)
o Identifier (text, mandatory)
It is the identifier of the vehicle given internally by the truck VMS.
There is only one vehicle with that Vehicle.Identifier on all sites managed by an Artemis core
instance.
o
PlateNumber (text, mandatory)
It is the plate number of the vehicle.
The plate number is always (for internal or shipment transport) stricktly formatted like this:
L..L-P..P (example : B-1HFA111) with:
â–ª L..L = country letters, 1 to 3 upper case letter from A to Z defined by the international
vehicle letter of the matriculation country of the truck (cf.
https://en.wikipedia.org/wiki/International_vehicle_registration_code ).
However, Artemis core doesn’t check that it is an ISO code of a country. It is caller
responsibility to check that.
For trucks used only internally, instead of country code, we can have the site code (that is
our recommendation) or INC (for Inconnu) or UNK (for Unknown).
â–ª - = constant dash character to separate immatriculation country code and plate number
â–ª P..P = license plate or internal identification, from 4 to 10 alpha characters (0 to 9 or A to
Z) in uppercase and without any other character (space or . or - or ...)
Within a truck, a plate number could be used only once. In other words, the plate number of
the trailer and of the tractor should be different.
There is only one vehicle on an active truck with that VehiclePlateNumber on the site.
Version 1.84.0
Marechal Frédéric
Artemis.Core Business API Documentation
385/722
As a consequence, there could be a same active Truck in in Desvres and in Mardyck at the
same time. Even it is physically impossible, Artemis allow it because a user works on a site
and cannot do anything on another one.
â–ª
Trailer (mandatory)
o Identifier (text, mandatory)
It is the identifier of the vehicle given internally by the truck VMS.
There is only one vehicle with that Vehicle.Identifier on all sites managed by an Artemis core
instance.
o
PlateNumber (text, mandatory)
o
TypeIdentifier (text, optional)
The type of the vehicle. See the content of entity VehicleType.
For a semi-trailer, there is only one vehicle of category Tractor and one of category Trailer.
Category is a property of VehicleType
For a carrier, there is only one vehicle of type ‘Carrier’.
Responses
Response 200 (Ok)
Response 400 (BadRequest)
403
Vehicle Type not found
407
Plate number is invalid
413
Gross vehicle weight rating (GVWR) must be greater than 0 (value: '{0}')
Response 403 (Forbidden)
408
Vehicle type base name '{0}' does not match with the transport mode of the
currently updated vehicle.
Response 409 (Conflict)
400
Vehicle already on site or same identifierhas already been used
410
Cannot create this truck because trailer '{0}' is already used in another truck
411
Cannot create this truck because tractor '{0}' is already used in another truck
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
386/722
Example
{
…
"identifier": "string",
"gvwr": 0,
"siteIdentifier": "string",
"vmsIdentificationDate": "2020-02-20T15:37:53.610Z",
"metadata": {},
"drivers": [
{
"identifier": "string",
"name": "string"
}
],
"supplier": {
"expected": true,
"name": "string",
"identifier": "string"
},
"freeLocation": {
"name": "string",
"type": "string",
"metadata": {}
},
"name": "string",
"tractor": {
"identifier": "string",
"plateNumber": "string"
},
"trailer": {
"identifier": "string",
"plateNumber": "string",
"typeIdentifier": "string"
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
387/722
Notifications
{
"notificationType": "VehicleCreated", 0.0.54.0
"resourceType": "truck",
"scope": "",
"sender": "Artemis.Transport.Vehicle",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-01-07T10:43:32.0149267+00:00",
"requestedBy": "owner"
},
"type": "semiTrailerTruck",
"identifier": "identifierTest",
"name": "nameTest",
"trailer": { "name": "trailerName", "identifier": "trailerIdentifier" },
"tractor": { "name": "tractorName", "identifier": "tractorIdentifier" }
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
388/722
Update Truck
0.0.47.0
HTTP Request
PUT /transport-api/v1/trucks/{name} 0.0.47.0
Request Body
{
…
metadata (json, optional),
gvwr (integer, optional),
vmsIdentificationDate (datetime),
drivers ([
{
identifier (string, optional),
name (string)
}
], optional),
supplier ({
expected (boolean),
name (string)
}, optional),
0.0.62.0 siteIdentifier (string, optional), (Transport-Location-Id is used if not specified)
}
Responses
Response 200 (Ok)
Response 400 (BadRequest)
413
Gross vehicle weight rating (GVWR) must be greater than 0 (value: '{0}')
Response 404 (NotFound)
11
Physical Vehicle Group not found
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
389/722
Example
{
…
"gvwr": 0,
"vmsIdentificationDate": "2020-12-16T12:31:25.235Z",
"metadata": {},
"drivers": [
{
"identifier": "string",
"name": "string"
}
],
"supplier": {
"expected": true,
"name": "string"
}
}
Notification
{
"notificationType": "VehicleUpdated", 0.0.50.0
"resourceType": "truck",
"scope": "",
"sender": "Artemis.Transport.Vehicle",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-01-07T10:43:32.0149267+00:00",
"requestedBy": "owner"
},
"type": "carrier",
"identifier": "carrierTest",
"name": "myName"
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
390/722
{
"notificationType": "VehicleUpdated", 0.0.50.0
"resourceType": "truck",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-01-07T10:43:32.0149267+00:00",
"requestedBy": "owner"
},
"type": "semiTrailerTruck",
"identifier": "semiTrailerTruckTest",
"name": "myName",
"trailer": { "name": "trailerName", "identifier": "trailerIdentifier" },
"tractor": { "name": "tractorName", "identifier": "tractorIdentifier" }
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
391/722
Update Semi Trailer Truck
0.0.78.0
HTTP Request
PUT /transport-api/v1/semi-trailer-trucks/{name}
Request Body
{
…
metadata (json, optional),
gvwr (integer, optional),
vmsIdentificationDate (datetime),
drivers ([
{
identifier (string, optional),
name (string)
}
], optional),
supplier ({
expected (boolean),
name (string)
}, optional),
trailer ({
typeIdentifier (boolean, optional),
metadata (string, optional)
}, optional),
siteIdentifier (string, optional), (Transport-Location-Id is used if not specified)
}
Responses
Response 200 (Ok)
Response 400 (BadRequest)
403
VehicleType not found
413
Gross vehicle weight rating (GVWR) must be greater than 0 (value: '{0}')
Response 403 (Forbidden)
66
Cannot change type identifier of an allocated vehicle '{0}'
408
Vehicle type base name '{0}' does not match with the transport mode of the
currently updated vehicle.
Response 404 (NotFound)
6
Physical Vehicle not found
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
392/722
Example
{
…
"gvwr": 123,
"vmsIdentificationDate": "2020-12-16T12:31:25.235Z",
"metadata": {},
"drivers": [
{
"identifier": "string",
"name": "string"
}
],
"supplier": {
"expected": true,
"name": "string"
},
"trailer": {
"typeIdentifier": "string",
"metadata": {}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
393/722
Notification
{
"notificationType": "VehicleUpdated", 0.0.50.0
"resourceType": "truck",
"scope": "",
"sender": "Artemis.Transport.Vehicle",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-01-07T10:43:32.0149267+00:00",
"requestedBy": "owner"
},
"type": "semiTrailerTruck",
"identifier": "semiTrailerTruckTest",
"name": "myName",
"tractor": {
"name": "b-fb293en",
"identifier": "tractorTest"
},
"trailer": {
"name": "b-fb293ef",
"identifier": "trailerTest"
},
"gvwr": 123
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
394/722
Get Truck
0.0.30.0
HTTP Request
GET /transport-api/v1/trucks/{name} 0.0.39.0
GET /transport-api/v1/trucks/name={name} 0.0.70.0
GET /transport-api/v1/trucks/identifier={identifier} 0.0.70.0
Request Parameters
name (string)
identifier (string)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
395/722
Responses
Response 200 (Ok)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
396/722
{
supplier (
{
expected (string),
name (string),
identifier (string, optional)
}, optional),
weighings ([
{
date (datetime),
weight (long),
weighBridgeName (string, optional),
source (string) = [‘WeighBridge’, ‘User’, ‘Historical’],
metadata (json, optional),
siteIdentifier (string, optional)
}]),
siteIdentifier (string, optional),
type (string) = [‘Carrier’, ‘SemiTrailerTruck’],
name (string, optional),
identifier (string, optional),
vmsIdentifierDate (datetime, optional),
locatedOn {
locationType (string) = [‘Bay’],
bayIdentifier (string),
label (string),
name (string),
requestedBy (string),
requestedAt (datetime),
metadata (json, optional)
or 1.84.0
locationType (string) = [‘FreeLocation’],
label (string),
name (string),
freeLocationType (string),
requestedBy (string),
requestedAt (datetime),
metadata (json, optional)
},
tagIdentifier (string, optional),
gvwr (int, optional), 0.0.74.0
drivers ([
{
name (string),
identifier (string, optional)
}], optional),
crossGateEvents
{
entryCrossGateEvent {
date (datetime),
gateIdentifier (string)
},
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
397/722
exitCrossGateEvent {
date (datetime),
gateIdentifier (string)
},
},
carrierTypeIdentifier (string, optional),
tractor (
{
name (string, optional),
tagIdentifier (string, optional),
identifier (string, optional),
vmsIdentificationDate (string, optional),
siteIdentifier (string, optional), 0.0.74.0
metadata (json, optional)
}, optional),
globalTransportIdentifier (string, optional), deprecated 1.81.0 (value is specified only when
transport state is not ‘Closed’ or ‘Completed’)
transport { 1.81.0
identifier (string),
state (string),
type (string) = [‘Intrasite’, ‘Shipment’],
owner (string)
},
trailer (
{
typeIdentifier (string, optional),
name (string, optional),
tagIdentifier (string, optional),
identifier (string, optional),
vmsIdentificationDate (string, optional),
siteIdentifier (string, optional), 0.0.74.0
metadata (json, optional),
equipmentIdentifier (string, optional),
transportIdentifier (string, optional), 1.81.0
loadPlan: {
metadata (Json, optional),
toLoad: [{
material {
lmiContext (string),
lmiNumber (string),
materialGroup (string)
},
position {
cradleFrontToRearIndex (int, optional),
cradleLeftToRightIndex (int, optional),
level (int, optional),
orientation (string, optional) = [‘axisVertical’, ‘axisHorizontalCrosswise’,
‘axisHorizontalLengthwise’],
spireOrientation (string, optional) = [‘topToFront’, ‘bottomToFront’]
} (optional),
} (optional)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
398/722
}],
toCheck: [{
lmiContext (string),
lmiNumber (string),
}],
checked: [{
lmiContext (string),
lmiNumber (string),
success (boolean, optional),
reason (string, optional),
comment (string, optional)
}],
loaded: [{
materialUnit {
lmiContext (string),
lmiNumber (string),
materialGroup (string)
},
actualPosition {
cradleFrontToRearIndex (int, optional),
cradleLeftToRightIndex (int, optional),
level (int, optional),
orientation (string, optional) = [‘axisVertical’, ‘axisHorizontalCrosswise’,
‘axisHorizontalLengthwise’],
spireOrientation (string, optional) = [‘topToFront’, ‘bottomToFront’]
} (optional),
} (optional),
expectedPosition {
cradleFrontToRearIndex (int, optional),
cradleLeftToRightIndex (int, optional),
level (int, optional),
orientation (string, optional) = [‘axisVertical’, ‘axisHorizontalCrosswise’,
‘axisHorizontalLengthwise’],
spireOrientation (string, optional) = [‘topToFront’, ‘bottomToFront’]
} (optional),
} (optional)
}],
impossibleToLoads: [{
lmiContext (string),
lmiNumber (string),
}],
toUnload: [{
lmiContext (string),
lmiNumber (string)
}],
unloaded: [{
lmiContext (string),
lmiNumber (string)
}]
},
loadedMaterialUnits [{
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
399/722
materialUnit {
lmiContext (string),
lmiNumber (string),
materialGroup (string)
},
position {
cradleFrontToRearIndex (int, optional),
cradleLeftToRightIndex (int, optional),
level (int, optional),
orientation (string),
spireOrientation (string)
} (optional),
} (optional),
loadingDateTime (datetime),
metadata (json, optional),
siteIdentifier (string, optional
}],
currentState (string, optional),
transportExecutionMetadata (json, optional)
}, optional)
}
Response 404 (NotFound)
Truck not found
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
400/722
Example
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
401/722
{
"supplier": {
"expected": true,
"name": "Frisaye",
"identifier": null
},
"weighings": [
{
"requestedBy": null,
"requestedAt": "2020-02-12T15:05:27.407+00:00",
"context": null,
"date": "2020-02-12T15:05:27.407+00:00",
"weight": 25000,
"weighBridgeName": "Entry bridge",
"source": "weighBridge",
"metadata": {},
"siteIdentifier": "LIE"
},
{
"requestedBy": null,
"requestedAt": "2020-02-12T17:35:27.407+00:00",
"context": null,
"date": "2020-02-12T17:35:27.407+00:00",
"weight": 55000,
"weighBridgeName": "Entry bridge",
"source": "weighBridge",
"metadata": {},
"siteIdentifier": "LIE"
}
],
"metadata": {},
"siteIdentifier": "LIE",
"type": "semiTrailerTruck",
"name": "SemiTrailerName-1.1TD",
"identifier": "SemiTrailerId1.1TD",
"vmsIdentificationDate": "2019-11-07T14:10:04.911+00:00",
"locatedOn": {
"locationType": "freeLocation",
"bayIdentifier": null,
"label": null,
"name": "Parking B",
"freeLocationType": "Parking",
"requestedBy": "Requester-1.1TD",
"requestedAt": "2019-11-07T14:10:04.911+00:00",
"metadata": {}
},
"tagIdentifier": null,
"gvwr": 42500,
"drivers": [ {
"identifier": "Driver id",
"name": "Driver name"
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
402/722
}],
"crossGateEvents": {
"entryCrossGateEvent":
{
"date": "2020-10-12T08:08:38.687+00:00",
"gateIdentifier": "Entry Gate A26"
},
"exitCrossGateEvent":
{
"date": "2020-10-12T08:08:38.687+00:00",
"gateIdentifier": "Exit Gate U10"
}
},
"carrierTypeIdentifier": null,
"tractor": {
"name": "B-1PN12TR",
"tagIdentifier": null,
"identifier": "TractorId-1.1TD",
"vmsIdentificationDate": null,
"siteIdentifier": null,
"metadata": {}
},
"globalTransportIdentifier": "Transport-1.1TD",
"trailer": {
"typeIdentifier": null,
"name": "B-1PN22TL",
"tagIdentifier": null,
"identifier": "TrailerId-1.1TD",
"vmsIdentificationDate": null,
"siteIdentifier": null,
"metadata": {},
"equipmentIdentifier": null,
"transportIdentifier": "Transport-1.1TD",
"loadPlan":
{
"toLoad": [],
"toCheck": [],
"loaded":
[
{
"materialUnit":
{
"lmiContext": "LIE",
"lmiNumber": "LM-1.1TD_1",
"materialGroup": "materialGroupA-1.1TD"
},
"actualPosition":
{
"cradleFrontToRearIndex": 1,
"cradleLeftToRightIndex": 1,
"level": 1,
"orientation": "axisVertical",
"spireOrientation": "topToFront"
},
"expectedPosition":
{
"cradleFrontToRearIndex": 101,
"cradleLeftToRightIndex": 102,
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
403/722
"level": 103,
"orientation": "axisVertical",
"spireOrientation": "topToFront"
}
},
{
"materialUnit":
{
"lmiContext": "LIE",
"lmiNumber": "LM-1.2TD_2",
"materialGroup": "materialGroupB-1.1TD"
},
"actualPosition":
{
"cradleFrontToRearIndex": 1,
"cradleLeftToRightIndex": 1,
"level": 1,
"orientation": "axisVertical",
"spireOrientation": "topToFront"
},
"expectedPosition":
{
"cradleFrontToRearIndex": 201,
"cradleLeftToRightIndex": 202,
"level": 203,
"orientation": "axisVertical",
"spireOrientation": "topToFront"
}
}
],
"checked":
[
{
"lmiContext": "LIE",
"lmiNumber": "LM-1.1TD_1",
"success": true,
"reason": "Check OK",
"comment": "RAS"
},
{
"lmiContext": "LIE",
"lmiNumber": "LM-1.2TD_2",
"success": true,
"reason": "Check OK",
"comment": "RAS"
}
],
"impossibleToLoads": [],
"toUnload": [],
"unloaded": [],
"metadata": {}
},
"loadedMaterialUnits":
{
"materialUnit":
[
{
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
404/722
"lmiContext": "LIE",
"lmiNumber": "LM-1.1TD_1",
"weight": 20250
},
"position":
{
"cradleFrontToRearIndex": 1,
"cradleLeftToRightIndex": 1,
"level": 1,
"orientation": "axisVertical",
"spireOrientation": "topToFront"
},
"loadingDateTime": "2019-11-12T15:36:09.411+00:00",
"metadata": {},
"siteIdentifier": "LIE"
},
{
"materialUnit":
{
"lmiContext": "LIE",
"lmiNumber": "LM-1.2TD_2",
"weight": 18250
},
"position":
{
"cradleFrontToRearIndex": 1,
"cradleLeftToRightIndex": 1,
"level": 1,
"orientation": "axisVertical",
"spireOrientation": "topToFront"
},
"loadingDateTime": "2019-11-12T15:36:09.411+00:00",
"metadata": {},
"siteIdentifier": "LIE"
},
{
"materialUnit":
{
"lmiContext": "LIE",
"lmiNumber": "LM-1.3TD_3",
"weight": 19250
},
"position":
{
"cradleFrontToRearIndex": 1,
"cradleLeftToRightIndex": 1,
"level": 1,
"orientation": "axisVertical",
"spireOrientation": "topToFront"
},
"loadingDateTime": "2019-11-12T15:36:09.411+00:00",
"metadata": {},
"siteIdentifier": "LIE"
}
],
"currentState": "Executed",
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
405/722
"transportExecutionMetadata": {}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
406/722
Entry or Exit cross gate
0.0.43.0
The goal of this method is to specify the date time of entry / exit cross gate. This will be mainly used
for reporting (reason why ‘date’ is mandatory)
HTTP Request
POST /transport-api/v1/trucks/{name}/cross-gate-event
Request Parameters
name (string)
Request Body
{
…
type (string) = [‘entryGateCrossed’, ‘exitGateCrossed’],
date (datetime),
gateIdentifier (string, optional)
}
Responses
Response 200 (Ok)
Response 404 (NotFound)
Truck not found
Example
{
…
"type": "entryGateCrossed”,
"date": "2020-09-29T16:10:10.3424433+02:00",
"gateIdentifier": "gateName”
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
407/722
Notification
Example
{
"notificationType": "EntryGateCrossed" | "ExitGateCrossed",
"resourceType": "truck",
"scope": "",
"sender": "",
"data": {
"type": "semiTrailerTruck",
"identifier": "semiTrailerTruckTest",
"name": "myName",
"gateIdentifier": "GateIdentifier",
"siteIdentifier": "LIE", 0.0.53.0
"date": "2020-09-29T16:12:50.7824043+02:00",
"trailer": { "name": "trailerName", "identifier": "trailerIdentifier" },
"tractor": { "name": "tractorName", "identifier": "tractorIdentifier" }
"originalRequestInfo": {
"requestedAt": "2020-09-29T16:12:50.7824043+02:00",
"requestedBy": "owner"
},
"context": {
"key": "value"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
408/722
Truck arrived at bay
0.0.30.0
HTTP Request
PUT /transport-api/v1/trucks/identifier={identifier}/bay/{bayIdentifier} 0.0.39.0
PUT/transport-api/v1/trucks/name={name}/bay/{bayIdentifier} 0.0.39.0
Request Parameters
identifier (string)
or
name (string)
bayIdentifier (string)
Request Body
{
metadata (json, optional),
}
Responses
Response 200 (Ok)
Response 400 (BadRequest)
Response 404 (NotFound)
14
Bay not found
Truck not found
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
409/722
Notification
{
"notificationType": "TruckVehicleArrivedAtBay", 0.0.50.0
"resourceType": "truck",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-01-07T10:43:32.0149267+00:00",
"requestedBy": "owner"
},
"type": "semiTrailerTruck",
"identifier": "semiTrailerTruckTest",
"name": "myName",
"location": { 0.0.48.0
"type": "bay",
"bayIdentifier": "bayIdentifier"
},
"previousLocation": { 0.0.48.0
"type": "freeLocation",
"name": "InTransit",
"freeLocationType": "InInternalTransit"
},
"trailer": { "name": "trailerName", "identifier": "trailerIdentifier" },
"tractor": { "name": "tractorName", "identifier": "tractorIdentifier" }
}
}
Example
{
"requestedBy":"owner",
"requestedAt":"2019-12-23T15:03:41.3660893+00:00",
"context":
{
"key":"value"
},
"metadata":null
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
410/722
Truck arrival at a free Location
0.0.32.0
This method is used to locate a truck in a free location.
For more details on free location, please read 5.1 FreeLocation definition.
HTTP Request
PUT /transport-api/v1/trucks/{name}/free-location 0.0.39.0
Request Parameters
name (string)
Request Body
{
…
name (string),
type (string),
metadata (json, optional)
}
â–ª
FreeLocationType (enum, mandatory)
It defines the type (e.g. Parking, CheckIn, Weighing bridge, CheckOut, …) of free location on
which the Truck is located.
For more details, please read 5.1 FreeLocation definition.
Artemis doesn’t check that truck VMS use only type usable by truck VMS.
â–ª
FreeLocationName (text, mandatory)
It defines the name (a simple string) of the location on which the Truck is located.
For more details, please read 5.1 FreeLocation definition.
â–ª
LocationMetaData (json, optional)
Any metadata used/required by local system relatively to the location of the truck.
Responses
Response 200 (Ok)
Response 403 (Forbidden)
405
Location change request out of date
Response 404 (NotFound)
Truck not found
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
411/722
Example
{
"requestedBy":"owner",
"requestedAt":"2019-12-23T15:03:41.3660893+00:00",
"context":
{
"key":"value"
},
"name":"T0",
"type":"freeLocationType",
"metadata": null
}
Notification(s)
{
"notificationType": "TruckVehicleLocatedOnFreeLocation", 0.0.50.0
"resourceType": "truck",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2019-12-23T14:53:08.6760606+00:00",
"requestedBy": "owner"
},
"type": "carrier",
"identifier": "carrierTest",
"name": "b-fb293en",
"location": {
"type": "freeLocation",
"name": "InTransit",
"freeLocationType": null
},
"previousLocation": {
"type": "bay",
"bayIdentifier": "bayIdentifier"
},
"trailer": { "name": "trailerName", "identifier": "trailerIdentifier" },
"tractor": { "name": "tractorName", "identifier": "tractorIdentifier" }
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
412/722
Truck departure from a bay
0.0.32.0
This method is used to indicate to Artemis core that a truck leaves a bay.
HTTP Request
DELETE /transport-api/v1/trucks/{name}/bay 0.0.39.0
Request Parameters
name (string)
Request Body
{
…
bayIdentifier (string, optional),
metadata (json, optional),
freeLocationName (string, optional),
freeLocationType (string, optional) 0.0.67.0
}
â–ª
Identifier (text, mandatory): it is the identifier (like a GUID) of the truck given internally by the
truck VMS.
There is only one truck with that Truck.Identifier on all sites managed by an Artemis core
instance.
â–ª
BayIdentifier (text, mandatory): it defines the bay from which the Truck left.
A Bay with the same identifier should exist.
The Bay should be located within the same site as the Truck is.
The Bay should should be the same as where the Truck is located.
â–ª
FreeLocationName (text, optional): it allows specific to define where the Truck will go (if VMS
knows that). When empty, Artemis will initialze FreeLocationName with ‘In transit’
â–ª
FreeLocationType (text, optional): It defines the type (e.g. Parking, CheckIn, Weighing bridge,
CheckOut, …) of free location on which the Truck is located. For more details, please read 5.1
FreeLocation definition. Artemis doesn’t check that truck VMS use only type usable by truck
VMS.
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
413/722
Responses
Response 200 (Ok)
Response 403 (Forbidden)
405
Location change request out of date
Response 404 (NotFound)
14
Bay not found
40
Truck not found
Example
{
…
"bayIdentifier": "ID000000",
"metadata": null,
"freeLocationName": "freeLocation",
"freeLocationType": "Parking"
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
414/722
Notification
Example 1
{
"notificationType": "TruckVehicleLeftBay", 0.0.50.0
"resourceType": "truck",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-01-23T11:08:24.7984371+00:00",
"requestedBy": "owner"
},
"type": "carrier",
"identifier": "carrierTest",
"name": "b-fb293en",
"location": {
"type": "freeLocation",
"name": "InTransit",
"freeLocationType": "Parking"
},
"previousLocation": {
"type": "bay",
"bayIdentifier": "bayIdentifier"
},
"expectedBayIdentifier": null
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
415/722
Example 2
{
"notificationType": "TruckVehicleLeftBay", 0.0.50.0
"resourceType": "truck",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-01-23T11:08:24.7984371+00:00",
"requestedBy": "owner"
},
"type": "semiTrailerTruck",
"identifier": "semiTrailerTruckTest",
"name": "myName",
"location": {
"type": "freeLocation",
"name": "InTransit",
"freeLocationType": "Parking"
},
"previousLocation": {
"type": "bay",
"bayIdentifier": "bayIdentifier"
},
"expectedBayIdentifier": "unknownBay",
"trailer": { "name": "trailerName", "identifier": "trailerIdentifier" },
"tractor": { "name": "tractorName", "identifier": "tractorIdentifier" }
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
416/722
Allocate Truck to Transport
0.0.31.0
AllocateTruckToTransport business command should be used for the allocation of a Truck to a
Transport at the every site. When there are several sites (muli sites loading), the registration at the
other sites than the first one must also be done with this API. Before that the truck his location
should be changed by uypdating the site identifier property.
There are some controls done in AllocateTruckToTransport. If a control fail, the Truck simply can not
be welcomed and assigned to the transport. The Truck should leave the site and there is no
downgraded alternative. Artemis does not keep trace of this trial to allocate the truck to the
transport in these cases of error. Of course, user will have to do a TruckRegistrationRefused.
The welcome process could be done in a single wizard HMI in the truck VMS. In that case, the
connector will do first a CreateTruck and after, if CreateTruck is OK, a AllocateTruckToTransport. If
there is an error in AllocateTruckToTransport, we recommnd to do a DeleteTruck, so everything stays
clean.
HTTP Request
POST /transport-api/v1/transports/{identifier}/truck 0.0.48.0
Please wait notification state changed to ‘Confirmed’ before call this uri.
Request Body
{
…
name (string), 0.0.70.0 deprecated. Use truckIdentification property instead
truckIdentification ( {
type (string) = [‘byName’, ‘byIdentifier’],
value (string)
} ), 0.0.70.0
supplier ({
expected (boolean),
name (string),
identifier (string, , optional)
}, optional)
}
â–ª
Identifier (text, mandatory)
It is the Identifier of the Transport on which the truck will be allocated
The Transport should:
o Be fully defined
o Its state should be ‘Confirmed’
o Transport mode should be for truck
o Have a ‘Confirmed’ Loading Instruction for a loading site which is the same as the site
where the Truck is located.
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
417/722
â–ª
TruckIdentification (mandatory)
o Type (text, mandatory)
Defines the which property is used to identify the truck, possible values are
• ByName
• ByIdentifier
o Value (text, mandatory)
The name or identifier (depending on the selected type) of the truck
The Truck should be:
o Active
o Not yet allocated to a Transport
â–ª
Expected (enum, mandatory)
It defines if the transporter is the same as the expected one in the Transport (when it is
defined).
Following values are defined:
o Yes: it is the same transporter as expected
o No: it is not the same transporter as expected
o Undefined: the user has not informed the system if the transport is the same or not as
the one expected
â–ª
Name (text, mandatory)
It defines the real name of the transporter.
It modify the property defined in CreateTruck.
It should be fulfilled when Truck.RealExecutingSupplierAsForeseen is equal to No.
Normaly, it should be an existing ExecutingSupplierName however, as the executing supplier
could be unknown as supplier in ArcelorMittal database, we should accept it as free text and
without any control.
From a HMI point of view, truck VMS could have an autocomplete field on
ExecutingSupplierName (like in Google) and allow free text.
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
418/722
Responses
Response 200 (Ok)
Response 400 (BadRequest)
Response 403 (Forbidden)
23
Transport And Physical Vehicle mode are different
36
Transport is not fully defined
292
Allocation is forbidden because mobile container is loaded (and already allocated)
Response 404 (NotFound)
5
Transport not found
11
Physical Vehicle Group not found
32
Transport ‘{0}’ not found on site
Response 409 (Conflict)
12
Vehicle '{0}' is already associated to the transport '{1}' for loading site '{2}'
17
Another vehicle '{0}' is already associated to the transport '{1}' for loading site '{2}'
Response 502 (BadGateway)
44
MaterialUnit '{0}' ‘{1}’ not found in MaterialUnit context
If you receive a ‘Bad Gateway’, please retry to send request in few seconds.
Example
{
"requestedBy":"owner",
"requestedAt":"2019-12-23T15:03:41.3660893+00:00",
"context":
{
"key":"value"
},
"truckIdentification":
{
“type": "byName"
"value: "T0"
}
"supplier":[
{
"expected":"xxx",
"name":"yyy
}
]
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
419/722
Notifications
{
"notificationType": "StateChanged"
"resourceType": "transport",
"scope": "",
"sender": "Artemis.Core.Transport",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-04-15T09:45:58.7051112+00:00",
"requestedBy": "owner"
},
"oldValue": null,
"newValue": "Confirmed",
"owner": "TMS",
"transportIdentifier": "ID000000",
"siteIdentifier": "LIE",
"type": "road"
}
}
Transport arrived
{
"notificationType": "TransportArrived",
"resourceType": "transport",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2019-12-23T14:53:08.6760606+00:00",
"requestedBy": "owner"
},
"transportIdentifier": "ID000000",
"siteIdentifier": "LIE",
"type": "road", 0.0.51.0
"arrivalDateTime": "2019-12-23T14:53:08.6760606+00:00",
"owner": "TMS",
"transportType": "Shipment", 1.84.0
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
420/722
Truck allocated
{
"notificationType": "TruckVehicleAllocated", 0.0.51.0
"resourceType": "truck",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2019-12-23T14:53:08.6760606+00:00",
"requestedBy": "owner"
},
"transportIdentifier": "ID000000",
"transportType": "Shipment | Intrasite", 0.0.58.0
"siteIdentifier": "LIE",
"transportowner": "TMS", 0.0.52.0
"truckIdentifier": "ID000000",
"truckName": "T0",
"trailers": [
{
"name": "trailerID000000",
"identifier": "ID000000"
}
]
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
421/722
Transport State changed
{
"notificationType": "stateChanged",
"resourceType": "transport",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2019-12-23T14:53:08.6760606+00:00",
"requestedBy": "owner"
},
"oldValue": "Confirmed",
"newValue": "InProgress",
"transportIdentifier": "T0",
"siteIdentifier": "LIE",
"owner": "TMS",
"type": "road"
}
}
Failed to Show up
If the registration is done outside the time slot [earliest;latest], then Artemis core automatically
generates a business notification ‘FailedToShowUp’, whether the control is strict or not
(ArrivalTimeSlotIsStrict).
{
"notificationType": "FailedToShowUp",
"resourceType": "truck",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-02-27T08:10:11.3042083+00:00",
"requestedBy": "owner"
},
"identifier": "ID000000",
"name": "T0",
"transportIdentifier": "ID000000",
"transportowner": "TMS", 0.0.52.0
"siteIdentifier": "LIE",
"reason": "late"
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
422/722
Material Unit(s) not accessible
{
"notificationType": "NotAccessibleMaterialUnitsDetected",
"resourceType": "transport",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-02-27T08:13:47.2426005+00:00",
"requestedBy": "owner"
},
"identifier": "ID000000",
"owner": "TMS",
"siteIdentifier": "LIE",
"notAccessibleMaterialUnits": [
{
"lmiNumber": "lmiNumber",
"lmiContext": "lmiContext",
"reason": "reason"
}
]
}
}
Notifications WeightChecked
No weighings present
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
423/722
{
"notificationType": "WeightChecked", 0.0.47.0
"resourceType": "truck",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-02-26T16:05:25.7815253+00:00",
"requestedBy": "owner"
},
"transportIdentifier": "ID000000",
"transportOwner": "TMS", 0.0.53.0
"siteIdentifier": "LIE", 0.0.53.0
"name": "T0", 0.0.55.0
"identifier": "T0", 0.0.55.0
"results": [ {
"state": "NotExecuted",
"message": "Cannot evaluate truck weight conformity because the truck has never been
weighed."
}]
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
424/722
No check was performed
{
"notificationType": "WeightChecked", 0.0.47.0
"resourceType": "truck",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-02-26T16:05:25.7815253+00:00",
"requestedBy": "owner"
},
"transportIdentifier": "ID000000",
"transportOwner": "TMS", 0.0.53.0
"siteIdentifier": "LIE", 0.0.53.0
"name": "T0", 0.0.55.0
"identifier": "T0", 0.0.55.0
"results": [ {
"state": "NotExecuted",
"message": "The GVWR check was skipped because GVWR was not defined."
}]
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
425/722
Check was successful
{
"notificationType": "WeightChecked", 0.0.47.0
"resourceType": "truck",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-02-26T16:07:19.4272507+00:00",
"requestedBy": "owner"
},
"transportIdentifier": "ID000000",
"transportOwner": "TMS", 0.0.53.0
"siteIdentifier": "LIE", 0.0.53.0
"name": "T0", 0.0.55.0
"identifier": "T0", 0.0.55.0
"results": [ {
"state": "Success",
}]
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
426/722
Transport ‘MAM’ is too small
{
"notificationType": "WeightChecked", 0.0.47.0
"resourceType": "truck",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-02-24T10:31:00.7464466+00:00",
"requestedBy": "owner"
},
"transportIdentifier": "ID000000",
"transportOwner": "TMS", 0.0.53.0
"siteIdentifier": "LIE", 0.0.53.0
"success": false,
"name": "T0", 0.0.55.0
"identifier": "T0", 0.0.55.0
"results": [ {
"state": "Failure",
"message": "The transport MAM '…' is too low to allow the loading of the requested material
units.”
}]
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
427/722
Transport ‘GVWR is too small
{
"notificationType": "WeightChecked", 0.0.47.0
"resourceType": "truck",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-02-24T10:34:51.5105062+00:00",
"requestedBy": "owner"
},
"transportIdentifier": "ID000000",
"transportOwner": "TMS", 0.0.53.0
"siteIdentifier": "LIE", 0.0.53.0
"success": false,
"name": "T0", 0.0.55.0
"identifier": "T0", 0.0.55.0
"results": [ {
"state": "Failure",
"message": "The vehicle GVWR '…' is too low to allow the loading of the requested material
units.”
}]
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
428/722
Encoded derogation does not allow the transport to be loaded
{
"notificationType": "WeightChecked", 0.0.47.0
"resourceType": "truck",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-02-24T10:34:51.5105062+00:00",
"requestedBy": "owner"
},
"transportIdentifier": "ID000000",
"transportOwner": "TMS", 0.0.53.0
"siteIdentifier": "LIE", 0.0.53.0
"success": false,
"name": "T0", 0.0.55.0
"identifier": "T0", 0.0.55.0
"results": [ {
"state": "Failure",
"message": "The derogation mass '…' does not allow the transport to be loaded.”
}]
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
429/722
Current weight of truck is above expected (last empty truck + loaded MUs) 0.0.43.0
{
"notificationType": "WeightChecked", 0.0.47.0
"resourceType": "truck",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-02-24T10:31:00.7464466+00:00",
"requestedBy": "owner"
},
"transportIdentifier": "ID000000",
"transportOwner": "TMS", 0.0.53.0
"siteIdentifier": "LIE", 0.0.53.0
"name": "T0", 0.0.55.0
"identifier": "T0", 0.0.55.0
"results": [ {
"state": "Failure",
"message": "The current weight value '…' is above the expected one '…' considering the
current loaded material units.”
}]
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
430/722
Current weight of truck is lower than expected (last empty truck + loaded MUs) 0.0.43.0
{
"notificationType": "WeightChecked", 0.0.47.0
"resourceType": "truck",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-02-24T10:31:00.7464466+00:00",
"requestedBy": "owner"
},
"transportIdentifier": "ID000000",
"transportOwner": "TMS", 0.0.53.0
"siteIdentifier": "LIE", 0.0.53.0
"name": "T0", 0.0.55.0
"identifier": "T0", 0.0.55.0
"results": [ {
"state": "Failure",
"message": "The current weight value '…' is below the expected one '…' considering the
current loaded material units.”
}]
}
}
Anomaly
See FailureToShowUp
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
431/722
Deallocate Truck from Transport
0.0.47.0
Deallocating a truck will deallocate all trailers from the truck, followed by the truck itself.
HTTP Request
DELETE /transport-api/v1/transports/{identifier}/truck 0.0.47.0
Request Body
{
…
}
Responses
Response 200 (Ok)
Response 400 (BadRequest)
Response 403 (Forbidden)
36
Transport is not fully defined
47
Truck not allocated
54
Transport mode '{0}' is not supported
55
Transport '{0}' has no allocated vehicle
Response 404 (NotFound)
5
Transport not found
11
Physical Vehicle Group not found
32
Transport '{0}' not found on site
Example
{
"requestedBy":"owner",
"requestedAt":"2019-12-23T15:03:41.3660893+00:00",
"context":
{
"key":"value"
}
}
Notifications
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
432/722
{
"notificationType": "EventRaised"
"resourceType": "transport",
"scope": "",
"sender": "Artemis.Transport.Execution",
"data": {
"eventType": "deallocation",
"identifier": "ID000000",
"name": "T0",
"originalRequestInfo": {
"requestedAt": "2020-10-15T11:49:38.0098233+02:00",
"requestedBy": "owner"
},
"context": {
"key": "value"
}
}
}
0.0.58.0
{
"notificationType": "VehicleDeallocated"
"resourceType": "truck",
"scope": "",
"sender": "Artemis.Transport.Execution",
"data": {
"transportIdentifier": "ID000000",
"transportType": "Shipment | Intrasite",
"siteIdentifier": "LIE",
"owner": "TMS",
"identifier": "ID000000",
"name": "T0",
"trailers": [
{
"name": "trailerID000000",
"identifier": "ID000000"
},
"lastVehicle": true,
"originalRequestInfo": {
"requestedAt": "2020-10-15T11:49:38.0098233+02:00",
"requestedBy": "owner"
},
"context": {
"key": "value"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
433/722
Record a new weighing of a truck
0.0.33.0
HTTP Request
POST /transport-api/v1/trucks/{name}/weighings 0.0.69.0
POST /transport-api/v1/trucks/name={name}/weighings 0.0.69.0
POST /transport-api/v1/trucks/identifier={identifier}/weighings 0.0.69.0
Request Body
{
…
date (datetime),
weight (long),
weighBridgeName (string, optional),
source (enumeration: WeighBridge, User, Historical, optional),
metadata (JSon, optional) 0.0.43.0
}
Identifier (text, mandatory)
The identifier of the truck given internally by the truck VMS.
The truck should exist, but it could be not allocated to a transport.
Date (datetime, mandatory)
The datetime at which the weighing really took place.
Weight (long in kg, mandatory)
The weight of the truck.
It should be greater than 500 kg.
Source (enum, mandatory)
The source of the weight of the truck. Following values are defined:
WeighBridge: the weight has been read automatically by a dedicated system on a weighbridge.
User: an operator has introduced the weight through an HMI in Artemis core or in the truck VMS.
Historical: this is the last weight (for example, its last tare) for this truck.
WeighBridgeName (text, optional)
Name of the weighbridge where the weighing was really performed.
It could be defined when Source equal to ‘WeighBridge’; otherwise, it should be empty.
Artemis core do no control on that parameter.
Metadata (text, optional)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
434/722
Responses
Response 200 (Ok)
Response 400 (BadRequest)
409
The weighing date cannot be in the future
Response 404 (NotFound)
Truck not found
Example
{
"requestedBy":"owner",
"requestedAt":"2019-12-23T15:03:41.3660893+00:00",
"context":
{
"key":"value"
},
"date": "2020-02-10T14:09:48.168Z",
"weight": 50,
"weighBridgeName": " weighBridgeName",
"source": "weighBridge",
"metadata": {}, 0.0.43.0
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
435/722
Notification
{
"notificationType": "TruckVehicleWeighed", 0.0.50.0
"resourceType": "truck",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-02-10T14:05:01.1525582+00:00",
"requestedBy": "owner"
},
"type": "carrier",
"identifier": "carrierTest",
"name": "b-fb293en",
"siteIdentifier": "LIE", 0.0.56.0
"weighing": {
"weight": 20000,
"date": "2020-02-10T14:05:01.1525582+00:00",
"source": "weighBridge",
"weighBridgeName": "weighBridgeName",
"metadata": {} 0.0.43.0
}
}
}
If a Transport is defined, a check weight is made depending on the state of mobile container and a
specific notification is sent (see 0.562).
0.0.44.0
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
436/722
Refuse Truck
0.0.43.0
This methode can be used to indicate that a truck is refused for a transport. This can be due to
several reasons (see list below). There is an equivalent method for wagon. Related to this is the
methode Refuse Loading. The difference is in the responsibility for the refusal. In case of truck it is
the responsibility of the truck driver (company) in case of loading it is the responsibility of AM.
Refusal can happen before or after it is allocated to a transport. When a it was allocated, it will be
deallocated.
HTTP Request
POST /transport-api/v1/trucks/{name}/refuse-requests 0.0.43.0
Request Body
{
…
reason (enumeration: Other, Damaged, NoSecurityEquipment, MaterialNotCompatible,
InsufficientLoadableWeight, PpeNotConform, OtherCargoAlreadyLoaded),
comment (string, optional),
transportIdentifier (string, optional)
}
Name (text, mandatory)
The name of the truck given internally by the truck VMS. The truck should exist.
Reason (enum, mandatory)
The reason of refusal of the truck. Following values are defined:
InsufficientLoadableWeight WeightIssue: Available loadable weight is incompatible with
requested weight 0.0.55.0
Large Width: 0.0.55.0
DriverBehaviour: 0.0.55.0
NoSecurityEquipment LashingOrSafetyEquipmentNotConformOrMissing: No security
equipment present 0.0.55.0
LashingOrSafetyEquipmentNotConformOrMissing: 0.0.55.0
VehicleIssue: 0.0.55.0
InsufficientDriverPpe PpeNotConform: Driver has no or incomplete PPE 0.0.55.0
NotCompatible MaterialNotCompatible: Vehicle type not compatible with product type
0.0.55.0
OtherLoadedCargo OtherCargoAlreadyLoaded: Other/foreign products loaded on vehicle
0.0.55.0
Damaged: Vehicle damaged/broken 0.0.55.0
Other: reason is not present in this list
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
437/722
Comment (text, optional)
Additional optional comment
TransportIdentifier (text, optional)
The calling system/user/integrator needs to provide the Transport ID as input, if he wants us
to send a message to the TMS for this transport.
Responses
Response 200 (Ok)
Response 400 (BadRequest)
Response 404 (NotFound)
Truck not found
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
438/722
Example
{
"requestedBy":"owner",
"requestedAt":"2020-09-18T15:03:41.3660893+00:00",
"context":
{
"key":"value"
},
"reason": "NotCompatible",
"comment": "comment",
"transportIdentifier": "ID000000"
}
Notification
{
"notificationType": "TruckVehicleRefused", 0.0.50.0
"resourceType": "truck",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedBy":"owner",
"requestedAt":"2020-09-18T15:03:41.3660893+00:00",
},
"type": "semiTrailerTruck",
"identifier": "ID000000",
"name": "name",
"reason": "NotCompatible",
"comment": "comment",
"transportIdentifier": "ID000000",
"siteIdentifier": "LIE", 0.0.53.0,
"trailer": { "name": "trailerName", "identifier": "trailerIdentifier" },
"tractor": { "name": "tractorName", "identifier": "tractorIdentifier" }
}
}
Anomalies
See VehicleRefused (AnomalyDetected)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
439/722
Refuse Loading
0.0.55.0
See Refuse Truck for more explanation.
Method to refuse a loading on truck. Refusal can happen after it is allocated to a transport.
Otherwise, it’s forbidden. There is also an quivalent method (Refuse Loading) on the transport
directly.
HTTP Request
POST /transport-api/v1/trucks/{name}/refuse-loading-requests
Request Parameters
identifier (string)
or
name (string)
bayIdentifier (string)
Request Body
{
…
reason (enumeration: MaterialUnitNotFound, PossibleQualityProblem, EverythingOrNothing,
EmptyOrder, MaterialUnitNonShippable, ToolFailures, NotEnoughProductsToLoad, Other),
comment (string, optional)
}
Reason (enum, mandatory)
The reason of refusal of the truck. Following values are defined:
MaterialUnitNotFound:
PossibleQualityProblem:
EverythingOrNothing:
EmptyOrder:
MaterialUnitNonShippable:
ToolFailures:
NotEnoughProductsToLoad:
Other: reason is not present in this list
Comment (text, optional)
Additional optional comment
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
440/722
Responses
Response 200 (Ok)
Response 400 (BadRequest)
Response 403 (Forbidden)
52
Operation is not allowed on Transport '{0}' on site (Close or Cancelled)
54
Operation not allowed on transport of this transport mode
265
Operation is forbidden because transport is loaded
266
Operation is forbidden because transport is loading
Response 404 (NotFound)
5
Transport '{0}' not found
6
PhysicalVehicle '{0}' not found
Example
{
"requestedBy":"owner",
"requestedAt":"2020-09-18T15:03:41.3660893+00:00",
"context":
{
"key":"value"
},
"reason": "MaterialUnitNotFound",
"comment": "comment"
}
Notification
{
"notificationType": "LoadingRefused",
"resourceType": "transport",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedBy":"owner",
"requestedAt":"2020-09-18T15:03:41.3660893+00:00",
},
"owner": "TMS",
"transportIdentifier": "ID000000",
"siteIdentifier": "LIE",
"type": "road",
"reason": "MaterialUnitNotFound",
"comment": "comment",
"transportType": "Shipment", 1.84.0
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
441/722
Anomalies
See LoadingRefused (AnomalyDetected)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
442/722
Delete Truck
0.0.30.0
Method used to delete a truck in a unique transaction which means that all is saved correctly or
nothing is saved.
The Delete Truck business command is used when an Artemis specific connector wants to create a
Truck and allocate it to a transport in the same transaction in the HMI. If the CreateTruck is OK but
not the AllocateTruckToTransport, then, the specific connector can delete the Truck and so, nothing
is left in DB.
HTTP Request
DELETE /transport-api/v1/trucks/{name} 0.0.39.0
Request Parameters
name (string)
Request Body
{
…
0.0.43.0
}
Responses
Response 200 (Ok)
Response 403 (Forbidden)
19
Transport is Closed
37
MaterialUnit(s) are already loaded
38
Physical Vehicle Group already allocated
39
Physical Vehicle Group is already localized
Response 404 (NotFound)
11
Physical Vehicle Group not found
Example
DELETE transport-api/v1/trucks/name
{
…
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
443/722
Notification
{
"notificationType": "VehicleDeleted", 0.0.50.0
"resourceType": "truck",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-01-07T10:43:32.0149267+00:00",
"requestedBy": "owner"
},
"type": "semiTrailerTruck",
"identifier": "semiTrailerTruckTest",
"name": "myName",
"trailer": { "name": "trailerName", "identifier": "trailerIdentifier" },
"tractor": { "name": "tractorName", "identifier": "tractorIdentifier" }
}
}
Anomaly
VehicleRefused (AnomalyFixed)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
444/722
4.12. Wagon
Get Wagon
0.0.70.0
HTTP Request
GET /transport-api/v1/wagons/number={number} 0.0.70.0
GET /transport-api/v1/wagons/identifier={identifier} 0.0.70.0
Request Parameters
number (string)
identifier (string)
Responses
Response 200 (Ok)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
445/722
{
identifier (string),
number (string),
metadata (json, optional),
vehicleTypeIdentifier (string),
convoyIdentifier (string),
convoyName (string),
convoyTransportMode (string),
realSupplierAsRequested (string),
sequenceNumberInGroup (string),
refused (bool),
refusedReason (string),
refusedComment (string),
refusedOrigin (string),
vehicleType {
name (string),
identifier (string),
label (string),
subtype (string),
transportMode (string),
},
characteristics { 1.85.0
wagonManager (string),
wagonLength (uint?, optional),
wagonCategory (string) = [‘Private’, ‘Network’],
coverType (string) = [‘Tarpaulin’, ‘Roof’],
tare (uint?, optional),
retractableArm (bool?, optional),
numberOfAxles (uint?, optional),
maxGrossWeight (double?, optional),
maxAxleWeight (string, optional),
loadingCapacity (double?, optional),
cradlesCount (uint?, optional),
cradles {
maxTonnage (double),
maxDiameter (double),
minDiameter (double),
maxProductWidth (double),
distanceToBogieCenter (double),
length (double),
width (double),
depth (double),
metadata (json, optional)
},
metadata (json, optional)
},
locatedOn {
locationType (string) = [‘Bay’, ‘FreeLocation’],
bayIdentifier (string),
label (string),
name (string),
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
446/722
freeLocationType (string),
requestedBy (string),
requestedAt (datetime),
metadata (json, optional)
},
weighings ([
{
date (datetime),
weight (long),
weighBridgeName (string, optional),
source (string) = [‘WeighBridge’, ‘User’, ‘Historical’],
metadata (json, optional),
siteIdentifier (json, optional)
}]),
siteIdentifier (string, optional),
vmsIdentifierDate (datetime, optional),
tagIdentifier (string, optional),
grossVehicleWeightRating (int, optional),
crossGateEvents
{
entryCrossGateEvent {
date (datetime),
gateIdentifier (string)
},
exitCrossGateEvent {
date (datetime),
gateIdentifier (string)
},
},
loadPlan: {
metadata (Json, optional),
toLoad: [{
material {
lmiContext (string),
lmiNumber (string),
materialGroup (string)
},
position {
cradleFrontToRearIndex (int, optional),
cradleLeftToRightIndex (int, optional),
level (int, optional),
orientation (string, optional) = [‘axisVertical’, ‘axisHorizontalCrosswise’,
‘axisHorizontalLengthwise’],
spireOrientation (string, optional) = [‘topToFront’, ‘bottomToFront’]
} (optional),
} (optional)
}],
toCheck: [{
lmiContext (string),
lmiNumber (string),
}],
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
447/722
checked: [{
lmiContext (string),
lmiNumber (string),
success (boolean, optional),
reason (string, optional),
comment (string, optional)
}],
loaded: [{
materialUnit {
lmiContext (string),
lmiNumber (string),
materialGroup (string)
},
actualPosition {
cradleFrontToRearIndex (int, optional),
cradleLeftToRightIndex (int, optional),
level (int, optional),
orientation (string, optional) = [‘axisVertical’, ‘axisHorizontalCrosswise’,
‘axisHorizontalLengthwise’],
spireOrientation (string, optional) = [‘topToFront’, ‘bottomToFront’]
} (optional),
} (optional),
expectedPosition {
cradleFrontToRearIndex (int, optional),
cradleLeftToRightIndex (int, optional),
level (int, optional),
orientation (string, optional) = [‘axisVertical’, ‘axisHorizontalCrosswise’,
‘axisHorizontalLengthwise’],
spireOrientation (string, optional) = [‘topToFront’, ‘bottomToFront’]
} (optional),
} (optional)
}],
impossibleToLoad: [{
lmiContext (string),
lmiNumber (string)
}],
toUnload: [{
lmiContext (string),
lmiNumber (string)
}],
unloaded: [{
lmiContext (string),
lmiNumber (string)
}]
},
loadedMaterialUnits [{
materialUnit {
lmiContext (string),
lmiNumber (string)
},
position {
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
448/722
cradleFrontToRearIndex (int, optional),
cradleLeftToRightIndex (int, optional),
level (int, optional),
orientation (string),
spireOrientation (string)
} (optional),
} (optional),
loadingDateTime (datetime),
metadata (json, optional),
siteIdentifier (string, optional
}],
transportIdentifier (string, optional), deprecated 1.81.0 (value is specified only when
transport state is not ‘Closed’ or ‘Completed’)
transport { 1.81.0
identifier (string),
state (string),
type (string) = [‘Intrasite’, ‘Shipment’],
owner (string)
},
transportExecutionMetadata (json, optional),
currentState (string, optional)
}
Response 400 (BadRequest)
Response 404 (NotFound)
60
Wagon not found
Example
{
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
449/722
Get Convoy by identifier
0.0.66.0
Retrieve a convoy by identifier.
HTTP Request
GET /transport-api/v1/convoys/identifier={identifier}
Request Parameters
identifier (string)
Responses
Response 200 (Ok)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
450/722
{
…
name (string),
identifier (string),
siteIdentifier (string),
vmsIdentificationDate (datetime, optional),
metadata (json, optional),
locatedOn {
locationType (string) = [‘Bay’, ‘FreeLocation’],
bayIdentifier (string),
label (string),
name (string),
freeLocationType (string),
requestedBy (string),
requestedAt (datetime),
metadata (json, optional)
},
count (int),
crossGateEvents
{
entryCrossGateEvent {
date (datetime),
gateIdentifier (string)
},
exitCrossGateEvent {
date (datetime),
gateIdentifier (string)
},
},
trainParts {
type (string) = [‘Wagon’, ‘Locomotive’],
weighings [
{
date (datetime),
weight (long),
weighBridgeName (string, optional),
source (enumeration: WeighBridge, User, Historical, optional),
metadata (JSon, optional)
}],
metadata (json, optional),
typeIdentifier (string),
convoyIdentifier (string),
sequenceNumber (int, optional),
number (int),
gvwr (int, optional),
tagIdentifier (string),
identifier (string),
vmsIdentifierDate (datetime, optional),
siteIdentifier (string),
characteristics { 1.85.0
wagonManager (string),
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
451/722
wagonLength (uint?, optional),
wagonCategory (string) = [‘Private’, ‘Network’],
coverType (string) = [‘Tarpaulin’, ‘Roof’],
tare (uint?, optional),
retractableArm (bool?, optional),
numberOfAxles (uint?, optional),
maxGrossWeight (double?, optional),
maxAxleWeight (string, optional),
loadingCapacity (double?, optional),
cradlesCount (uint?, optional),
cradles {
maxTonnage (double),
maxDiameter (double),
minDiameter (double),
maxProductWidth (double),
distanceToBogieCenter (double),
length (double),
width (double),
depth (double),
metadata (json, optional)
},
metadata (json, optional)
},
equipmentIdentifier (string),
transportIdentifier (string, optional), deprecated 1.81.0
transport { 1.81.0
identifier (string),
state (string),
type (string) = [‘Intrasite’, ‘Shipment’],
owner (string)
},
loadPlan: {
metadata (Json, optional),
toLoad: [{
material {
lmiContext (string),
lmiNumber (string),
materialGroup (string)
},
position {
cradleFrontToRearIndex (int, optional),
cradleLeftToRightIndex (int, optional),
level (int, optional),
orientation (string, optional) = [‘axisVertical’, ‘axisHorizontalCrosswise’,
‘axisHorizontalLengthwise’],
spireOrientation (string, optional) = [‘topToFront’, ‘bottomToFront’]
} (optional),
} (optional)
}],
toCheck: [{
lmiContext (string),
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
452/722
lmiNumber (string),
}],
checked: [{
lmiContext (string),
lmiNumber (string),
success (boolean, optional),
reason (string, optional),
comment (string, optional)
}],
loaded: [{
materialUnit {
lmiContext (string),
lmiNumber (string),
materialGroup (string)
},
actualPosition {
cradleFrontToRearIndex (int, optional),
cradleLeftToRightIndex (int, optional),
level (int, optional),
orientation (string, optional) = [‘axisVertical’, ‘axisHorizontalCrosswise’,
‘axisHorizontalLengthwise’],
spireOrientation (string, optional) = [‘topToFront’, ‘bottomToFront’]
} (optional),
} (optional),
expectedPosition {
cradleFrontToRearIndex (int, optional),
cradleLeftToRightIndex (int, optional),
level (int, optional),
orientation (string, optional) = [‘axisVertical’, ‘axisHorizontalCrosswise’,
‘axisHorizontalLengthwise’],
spireOrientation (string, optional) = [‘topToFront’, ‘bottomToFront’]
} (optional),
} (optional)
}],
impossibleToLoad: [{
lmiContext (string),
lmiNumber (string)
}],
toUnload: [{
lmiContext (string),
lmiNumber (string)
}],
unloaded: [{
lmiContext (string),
lmiNumber (string)
}]
},
loadedMaterialUnits [{
materialUnit {
lmiContext (string),
lmiNumber (string)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
453/722
},
position {
cradleFrontToRearIndex (int, optional),
cradleLeftToRightIndex (int, optional),
level (int, optional),
orientation (string),
spireOrientation (string)
} (optional),
} (optional),
loadingDateTime (datetime),
metadata (json, optional),
siteIdentifier (string, optional
}],
currentState (string),
transportExecutionMetadata (json, optional)
}
}
}
Response 404 (NotFound)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
454/722
Example
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
455/722
{
"name": "convoy-name-1",
"identifier": "convoy-1",
"siteIdentifier": "site",
"vmsIdentificationDate": null,
"metadata": null,
"locatedOn": {
"locationType": "bay",
"bayIdentifier": "bay-1",
"label": null,
"name": null,
"freeLocationType": null,
"requestedBy": null,
"requestedAt": "0001-01-01T00:00:00+00:00",
"metadata": null
},
"count": 1,
"crossGateEvents": null,
"trainParts": [
{
"type": "wagon",
"weighings": null,
"metadata": [],
"typeIdentifier": null,
"convoyIdentifier": "convoy-1",
"sequenceNumber": 1,
"number": "wagon1",
"gvwr": null,
"tagIdentifier": "convoy-tag-1",
"identifier": "wagon1",
"vmsIdentificationDate": null,
"siteIdentifier": "site",
"equipmentIdentifier": null,
"transportIdentifier": "T0",
"loadPlan": {
"toLoad": [],
"toCheck": [],
"loaded": [
{
"materialUnit": {
"lmiContext": "LIE",
"lmiNumber": "ID000000",
"materialGroup": "group1",
"weight": 123000
},
"actualPosition": {
"cradleFrontToRearIndex": 1,
"cradleLeftToRightIndex": 1,
"level": 1,
"orientation": "axisHorizontalLengthwise",
"spireOrientation": "topToFront"
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
456/722
},
"expectedPosition": null
},
{
"materialUnit": {
"lmiContext": "LIE",
"lmiNumber": "ID000001",
"materialGroup": "group2",
"weight": 123000
},
"actualPosition": {
"cradleFrontToRearIndex": 1,
"cradleLeftToRightIndex": 1,
"level": 1,
"orientation": "axisHorizontalLengthwise",
"spireOrientation": "topToFront"
},
"expectedPosition": null
}
],
"checked": [],
"impossibleToLoads": [],
"toUnload": [],
"unloaded": [],
"metadata": []
},
"loadedMaterialUnits": [
{
"materialUnit": {
"lmiContext": "LIE",
"lmiNumber": "ID000000",
"weight": 50
},
"position": {
"cradleFrontToRearIndex": 1,
"cradleLeftToRightIndex": 3,
"level": 2,
"orientation": "axisHorizontalLengthwise",
"spireOrientation": "topToFront"
},
"loadingDateTime": "2022-03-23T11:37:24.4212071+00:00",
"metadata": [],
"siteIdentifier": null
},
{
"materialUnit": {
"lmiContext": "LIE",
"lmiNumber": "ID000001",
"weight": 50
},
"position": {
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
457/722
"cradleFrontToRearIndex": 1,
"cradleLeftToRightIndex": 3,
"level": 2,
"orientation": "axisHorizontalLengthwise",
"spireOrientation": "topToFront"
},
"loadingDateTime": "2022-03-23T11:37:24.4212071+00:00",
"metadata": [],
"siteIdentifier": null
}
],
"currentState": null,
"transportExecutionMetadata": []
},
{
"type": "wagon",
"weighings": null,
"metadata": [],
"typeIdentifier": null,
"convoyIdentifier": "convoy-2",
"sequenceNumber": 2,
"number": "wagon2",
"gvwr": null,
"tagIdentifier": "convoy-tag-2",
"identifier": "wagon2",
"vmsIdentificationDate": null,
"siteIdentifier": "site",
"equipmentIdentifier": null,
"transportIdentifier": "T0",
"loadPlan": {
"toLoad": [],
"toCheck": [],
"loaded": [
{
"materialUnit": {
"lmiContext": "LIE",
"lmiNumber": "ID000000",
"materialGroup": "group1",
"weight": 123000
},
"actualPosition": {
"cradleFrontToRearIndex": 1,
"cradleLeftToRightIndex": 1,
"level": 1,
"orientation": "axisHorizontalLengthwise",
"spireOrientation": "topToFront"
},
"expectedPosition": null
},
{
"materialUnit": {
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
458/722
"lmiContext": "LIE",
"lmiNumber": "ID000001",
"materialGroup": "group2",
"weight": 123000
},
"actualPosition": {
"cradleFrontToRearIndex": 1,
"cradleLeftToRightIndex": 1,
"level": 1,
"orientation": "axisHorizontalLengthwise",
"spireOrientation": "topToFront"
},
"expectedPosition": null
}
],
"checked": [],
"impossibleToLoads": [],
"toUnload": [],
"unloaded": [],
"metadata": []
},
"loadedMaterialUnits": [
{
"materialUnit": {
"lmiContext": "LIE",
"lmiNumber": "ID000000",
"weight": 50
},
"position": {
"cradleFrontToRearIndex": 1,
"cradleLeftToRightIndex": 3,
"level": 2,
"orientation": "axisHorizontalLengthwise",
"spireOrientation": "topToFront"
},
"loadingDateTime": "2022-03-23T11:37:24.4212071+00:00",
"metadata": [],
"siteIdentifier": null
},
{
"materialUnit": {
"lmiContext": "LIE",
"lmiNumber": "ID000001",
"weight": 50
},
"position": {
"cradleFrontToRearIndex": 1,
"cradleLeftToRightIndex": 3,
"level": 2,
"orientation": "axisHorizontalLengthwise",
"spireOrientation": "topToFront"
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
459/722
},
"loadingDateTime": "2022-03-23T11:37:24.4212071+00:00",
"metadata": [],
"siteIdentifier": null
}
],
"currentState": null,
"transportExecutionMetadata": []
},
{
"type": "locomotive",
"weighings": null,
"metadata": [],
"typeIdentifier": null,
"convoyIdentifier": "convoy-3",
"sequenceNumber": 3,
"number": "wagon3",
"gvwr": null,
"tagIdentifier": "convoy-tag-3",
"identifier": "wagon3",
"vmsIdentificationDate": null,
"siteIdentifier": "site",
"equipmentIdentifier": null,
"transportIdentifier": "T0",
"loadPlan": {
"toLoad": [],
"toCheck": [],
"loaded": [
{
"materialUnit": {
"lmiContext": "LIE",
"lmiNumber": "ID000000",
"materialGroup": "group1",
"weight": 123000
},
"actualPosition": {
"cradleFrontToRearIndex": 1,
"cradleLeftToRightIndex": 1,
"level": 1,
"orientation": "axisHorizontalLengthwise",
"spireOrientation": "topToFront"
},
"expectedPosition": null
},
{
"materialUnit": {
"lmiContext": "LIE",
"lmiNumber": "ID000001",
"materialGroup": "group2",
"weight": 123000
},
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
460/722
"actualPosition": {
"cradleFrontToRearIndex": 1,
"cradleLeftToRightIndex": 1,
"level": 1,
"orientation": "axisHorizontalLengthwise",
"spireOrientation": "topToFront"
},
"expectedPosition": null
}
],
"checked": [],
"impossibleToLoads": [],
"toUnload": [],
"unloaded": [],
"metadata": []
},
"loadedMaterialUnits": [
{
"materialUnit": {
"lmiContext": "LIE",
"lmiNumber": "ID000000",
"weight": 50
},
"position": {
"cradleFrontToRearIndex": 1,
"cradleLeftToRightIndex": 3,
"level": 2,
"orientation": "axisHorizontalLengthwise",
"spireOrientation": "topToFront"
},
"loadingDateTime": "2022-03-23T11:37:24.4212071+00:00",
"metadata": [],
"siteIdentifier": null
},
{
"materialUnit": {
"lmiContext": "LIE",
"lmiNumber": "ID000001",
"weight": 50
},
"position": {
"cradleFrontToRearIndex": 1,
"cradleLeftToRightIndex": 3,
"level": 2,
"orientation": "axisHorizontalLengthwise",
"spireOrientation": "topToFront"
},
"loadingDateTime": "2022-03-23T11:37:24.4212071+00:00",
"metadata": [],
"siteIdentifier": null
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
461/722
],
"currentState": null,
"transportExecutionMetadata": []
}
]
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
462/722
Get Convoy by wagon number or name
0.0.68.0
Retrieve a convoy by wagon identifier or name contained in this convoy.
HTTP Request
GET /transport-api/v1/convoys/wagon-identifier={wagonIdentifier}
GET /transport-api/v1/convoys/wagon-number={wagonNumber}
Request Parameters
name (string)
or
identifier (string)
Responses
Response 200 (Ok)
{
… cf. “Get Convoy by identifier”
}
Response 404 (NotFound)
Example
{
… cf. “Get Convoy by identifier”
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
463/722
Delete convoy by identifier or name
HTTP Request
DELETE /transport-api/v1/convoys/identifier={identifier}
DELETE /transport-api/v1/convoys/name={name}
Request Parameters
name (string)
or
identifier (string)
Responses
Response 200 (Ok)
Response 403 (Forbidden)
37
MaterialUnit(s) are already loaded
38
Physical Vehicle Group already allocated
Response 404 (NotFound)
Convoy not found
Example
{
…
}
Notification
{
"notificationType": "VehicleDeleted",
"resourceType": "ship",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-01-07T10:43:32.0149267+00:00",
"requestedBy": "owner"
},
"type": "convoy",
"identifier": "identifierTest",
"name": "myName",
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
464/722
Delete convoy by wagon-number contained in this convoy
HTTP Request
DELETE /transport-api/v1/convoys/wagon-number={wagonNumber}
Request Parameters
wagonNumber (string)
Responses
Response 200 (OK)
Response 403 (Forbidden)
37
MaterialUnit(s) are already loaded
38
Physical Vehicle Group already allocated
39
Not allowed to delete because convoy contains more than one wagon
Response 404 (Not found)
Convoy not found
Example
{
…
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
465/722
Notification
{ "notificationType": "VehicleDeleted",
"resourceType": convoy",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-01-07T10:43:32.0149267+00:00",
"requestedBy": "owner"
},
{
"type": "convoy",
"identifier":"testConvoy1",
"name": "myName",
"wagons":
[ {
"type": "wagon",
"identifier": "testWagon1",
"number": "21-81-2471-217-3" }
]
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
466/722
Wagon’s convoy arrival at bay
0.0.30.0
Method used to create or update a wagons convoy with one or several wagons / locos and locate it
in a bay, in a unique transaction.
The wagon’s VMS calls this method when a convoy of one or several wagons/locos is located in a
bay.
Please note that there are other business commands : to declare the departure of a wagons convoy
from a bay, to declare the arrival of a wagons convoy at a free location, to link or unlink a loco to a
wagons convoy, to merge wagons convoy that are in the same bay or free location, …
HTTP Request
PUT /transport-api/v1/convoys/{identifier}/bay/{bayIdentifier} 0.0.39.0
PUT /transport-api/v1/convoys/wagon-number={wagonNumber}/bay/{bayIdentifier} 0.0.70.0
PUT /transport-api/v1/convoys/wagon-identifier={wagonIdentifier}/bay/{bayIdentifier} 0.0.70.0
Request Parameters
identifier (string)
bayIdentifier (string)
Request Body
{
…
name (string, optional),
siteIdentifier (string),
metadata (json, optional),
wagons ([
{
identifier (string),
number (string),
typeIdentifier (string),
sequenceNumberInConvoy (integer, optional),
tagIdentifier (string, optional),
positionLabel (string, optional),
offset (long, optional),
metadata (json, optional),
gvwr (uint, optional),
0.0.44.0
}, …
], optional),
bayInformation ({
label (string, optional)),
metadata (json, optional))
}, optional)
}
â–ª
Identifier (text, mandatory)
It is the identifier of the wagons convoy given internally by the wagon VMS.
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
467/722
There is only one convoy with that Convoy.Identifier on all sites managed by an Artemis core
instance.
â–ª
Name (text, optional)
Could be the name given by the user in the wagon VMS to the convoy.
As an exemple, it could be the equipment group identifier or the cyclo at Aviles (cyclo, is the
number of the convoy given by the wagon VMS at Aviles).
When the Name is defined, there is only one active convoy with that Convoy.Name on the site
defined by Convoy.SiteIdentifier.
â–ª
SiteIdentifier (text, mandatory)
It defines the site in which the convoy is working.
A WarehouseLocation with the same identifier should exist.
â–ª
MetaData (json, optional)
Any metadata used/required by local system relatively to the convoy.
For each vehicle, following information is provided:
o Identifier (text, mandatory)
It is the identifier of the wagon or loco given internally by the wagon VMS.
There is only one active wagon / loco with that Identifier on all sites managed by an Artemis core
instance.
o
Number (text, mandatory)
It is the Number of the wagon or loco:
For wagon, it is the wagon number
For loco, it is the loco number
Within a convoy, a wagon/loco Number could be used only once. In other words, the number of
all wagons and locos should be different in a convoy.
There is only one active wagon / loco with that Number on the site defined by
Convoy.SiteIdentifier.
o
TypeIdentifier (text, mandatory)
The type of the vehicle. See the content of entity VehicleType.
For wagon, it is the wagon’s type such as C44 (in the future TypeIdentifier and VehicleType
will be defined from MDM)
For loco, it is always ‘Loco’.
o
SequenceNumberInConvoy (int, optional)
This is the sequence of the wagon/loco within the Convoy.
When defined, the SequenceNumberInConvoy should be unique within a convoy.
If SequenceNumberInConvoy is not defined, in Artemi HMI, the wagons list will be presented in a
random way without any correspondence to the reality. We strongly recommend to always
define a SequenceNumberInConvoy but some wagon’s VMS have not that information, in that
very specific case, don’t invent it.
o
TagIdentifier (text, optional)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
468/722
Number of the tag (RFID) attached to the wagon/loco. It could also be a permanent tag attached
to the vehicle.
There is only one active wagon / loco with that TagIdentifier on the site defined by
Convoy.SiteIdentifier.
o
MetaData (json, optional)
Any metadata used/required by local system relatively to the wagon/loco.
Responses
Response 200 (Ok)
Response 400 (BadRequest)
401
Wagon Number has an invalid checksum
402
Wagon Number is an invalid format
413
Gross vehicle weight rating (GVWR) must be greater than 0 (value: '{0}')
Response 403 (Forbidden)
404
Cannot change wagon/locomotive type
405
Location change request out of date
406
Convoy already contains a wagon or locomotive with the same SequenceNumber.
408
Vehicle type base name '{0}' does not match with the transport mode of the
currently updated vehicle.
Response 404 (NotFound)
14
Bay not found
403
Vehicle Type not found
Response 409 (Conflict)
400
Vehicle already on site or same identifierhas already been used
Example
{
…
"identifier": "string",
"name": "string",
"siteIdentifier": "string",
"metadata": {},
"wagons": [
{
"identifier": "string",
"number": "string",
"typeIdentifier": "loco",
"sequenceNumberInConvoy": 0,
"tagIdentifier": "string",
"metadata": {},
"offset": 1
}
]
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
469/722
Notifications
{
"notificationType": "VehicleCreated", 0.0.54.0
"resourceType": "convoy",
"scope": "",
"sender": "Artemis.Transport.Vehicle",
"data": {
"context": {
"key": "value"
},
"wagons": [
{
"identifier": "testWagon1",
"number": "21-81-2471-217-3",
"type": "wagon", 0.0.65.0
"gvwr": 30000 0.0.65.0
},
{
"identifier": "testWagon2",
"number": "51 80 0843 001-0",
"type": "wagon", 0.0.65.0
"gvwr": 25000 0.0.65.0
},
{
"identifier": "testLoco1",
"number": "31-81-665 0 286-0",
"type": "locomotive" 0.0.65.0
}
],
"originalRequestInfo": {
"requestedAt": "2020-01-07T10:43:32.0149267+00:00",
"requestedBy": "owner"
},
"type": "convoy",
"identifier": "convoyIdentifier",
"name": "convoyName",
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
470/722
{
"notificationType": "ConvoyVehicleArrivedAtBay", 0.0.50.0
"resourceType": "convoy",
"scope": "",
"sender": "",
"data": {
"identifier": "testConvoy1",
"name": "myName",
"location": { 0.0.48.0
"type": "bay",
"bayIdentifier": "bayIdentifier"
},
"wagons": [ 0.0.65.0
{
"type": "wagon",
"identifier": "testWagon1",
"number": "21-81-2471-217-3"
},
{
"type": "wagon",
"identifier": "testWagon2",
"number": "51 80 0843 001-0"
},
{
"type": "locomotive",
"identifier": "testLoco1",
"number": "31-81-665 0 286-0"
}
],
"previousLocation": { 0.0.48.0
"type": "freeLocation",
"name": "InTransit",
"freeLocationType": "InInternalTransit"
}
"originalRequestInfo": {
"requestedAt": "2020-01-06T14:52:23.2463036+01:00",
"requestedBy": "owner"
},
"context": null
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
471/722
Wagon's convoy arrival at a free location
0.0.33.0
This is used to create or update a wagons convoy with one or several wagons / locos, declare that it
arrives in a free location and locate it in a free location, all that in a unique transaction.
The wagon’s VMS calls this method when a convoy of one or several wagons/locos arrives in a free
location.
For more details on free location, please read 5.1 FreeLocation definition.
HTTP Request
PUT /transport-api/v1/convoys/{identifier}/free-location 0.0.39.0
PUT /transport-api/v1/convoys/wagon-number{wagonNumber}/free-location 0.0.70.0
PUT /transport-api/v1/convoys/wagon-identifier={wagonIdentifier}/free-location 0.0.70.0
Request Parameters
identifier (string)
Request Body
{
…
name (string, optional),
siteIdentifier (string),
metaData (string, optional),
wagons ([
{
identifier (string),
number (string),
typeIdentifier (string),
sequenceNumberInConvoy (integer, optional),
tagIdentifier (string, optional),
positionLabel (string, optional), 0.0.78.0
offset (long, optional), 0.0.78.0
metadata (json, optional),
gvwr (uint, optional),
0.0.44.0
}, …
], optional),
freeLocationName (string, optional),
freeLocationType (string),
freeLocationMetadata (json, optional),
}
â–ª
Identifier (text, mandatory)
It is the identifier of the wagons convoy given internally by the wagon VMS.
There is only one convoy with that Convoy.Identifier on all sites managed by an Artemis
core instance.
â–ª Name (text, optional)
Could be the name given by the user in the wagon VMS to the convoy.
Version 1.84.0
Marechal Frédéric
Artemis.Core Business API Documentation
472/722
As an exemple, it could be the equipment group identifier or the cyclo at Aviles (cyclo, is
the number of the convoy given by the wagon VMS at Aviles).
When the Name is defined, there is only one active convoy with that Convoy.Name on
the site defined by Convoy.SiteIdentifier.
â–ª
â–ª
â–ª
MetaData (json, optional)
Any metadata used/required by local system relatively to the convoy.
SiteIdentifier (text, mandatory)
It defines the site in which the convoy is working.
A WarehouseLocation with the same identifier should exist.
State (text, optional)
It defines the state of the wagons convoy.
The Convoy.State is just a litteral feedback given to the end user in HMI without any
business on it. Convoy.State is managed by:
o Artemis core: when certains events happen, Artemis core update Convoy.State
o Local system: when certains events happen, the local system wants to have a specific
Convoy.State and may override the State defined by Artemis core (see
UpdateWagonsConvoyProperties).
Local system may define a specific State to the convoy when it arrives at a bay.
If State is not defined, then, Artemis core will initialize State to ‘Arrived at free location’.
â–ª
All properties to locate the wagons convoy in a free location:
â–ª FreeLocationType (string, mandatory)
It defines the type (e.g. Parking, CheckIn, Weighing bridge, CheckOut, …) of free location
on which the wagon is located.
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
473/722
Responses
Response 200 (Ok)
Response 400 (BadRequest)
401
Wagon Number has an invalid checksum
402
Wagon Number is an invalid format
413
Gross vehicle weight rating (GVWR) must be greater than 0 (value: '{0}')
Response 403 (Forbidden)
404
Cannot change wagon/locomotive type
405
Location change request out of date
406
Convoy already contains a wagon or locomotive with the same SequenceNumber.
408
Vehicle type base name '{0}' does not match with the transport mode of the
currently updated vehicle.
Response 404 (NotFound)
403
Vehicle Type not found
Response 409 (Conflict)
400
Vehicle already on site or same identifierhas already been used
Example
{
"requestedBy":"owner",
"requestedAt":"2019-12-23T15:03:41.3660893+00:00",
"context":
{
"key":"value"
},
"name":"T0",
"type":"freeLocationType",
"metadata": null
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
474/722
Notifications
{
"notificationType": "VehicleCreated", 0.0.54.0
"resourceType": "convoy",
"scope": "",
"sender": "Artemis.Transport.Vehicle",
"data": {
"context": {
"key": "value"
},
"wagons": [
{
"identifier": "testWagon1",
"number": "21-81-2471-217-3"
},
{
"identifier": "testWagon2",
"number": "51 80 0843 001-0"
},
{
"identifier": "testLoco1",
"number": "31-81-665 0 286-0"
}
],
"originalRequestInfo": {
"requestedAt": "2020-01-07T10:43:32.0149267+00:00",
"requestedBy": "owner"
},
"type": "convoy",
"identifier": "convoyIdentifier",
"name": "convoyName",
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
475/722
{
"notificationType": "TruckVehicleLocatedOnFreeLocation", 0.0.50.0
"resourceType": "convoy",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2019-12-23T14:53:08.6760606+00:00",
"requestedBy": "owner"
},
"type": "carrier",
"identifier": "carrierTest",
"name": "b-fb293en",
"location": {
"type": "freeLocation",
"name": "InTransit",
"freeLocationType": null
},
"wagons": [ 0.0.65.0
{
"type": "wagon",
"identifier": "testWagon1",
"number": "21-81-2471-217-3"
},
{
"type": "wagon",
"identifier": "testWagon2",
"number": "51 80 0843 001-0"
},
{
"type": "locomotive",
"identifier": "testLoco1",
"number": "31-81-665 0 286-0"
}
],
"previousLocation": {
"type": "bay",
"bayIdentifier": "bayIdentifier"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
476/722
Wagon's convoy departure from a bay
0.0.32.0
Method used to create or update a wagons convoy with one or several wagons / locos, declare that it
leaves a bay and locate it in a free location ‘In transit’, all that in a unique transaction.
The wagon’s VMS calls this method when a convoy of one or several wagons/locos leaves a bay.
Please note that there are other business commands to declare the arrival of a wagons convoy at a
bay, to declare the arrival of a wagons convoy at a free location, to link or unlink a loco to a wagons
convoy, to merge wagons convoy that are in the same bay or free location, …
HTTP Request
DELETE /transport-api/v1/convoys/{identifier}/bay 0.0.39.0
Request Parameters
identifier (string)
Request Body
{
…
name (string, optional),
siteIdentifier (string),
metadata (json, optional),
wagons ([
{
identifier (string),
number (string),
typeIdentifier (string),
sequenceNumberInConvoy (integer, optional),
tagIdentifier (string, optional),
positionLabel (string, optional),
offset (long, optional),
metadata (json, optional),
gvwr (uint, optional),
0.0.44.0
}, …
], optional),
bayMetadata (json, optional),
bayIdentifier (string, optional),
freeLocationName (string, optional)
}
All the properties of the wagons convoy (it is the same as in WagonsConvoyArrivalAtBay).
All properties to locate the wagons convoy on a bay:
BayIdentifier (text, optional): it defines the bay from which the wagons convoy left. A Bay
with the same identifier should exist. The Bay should be located within the same site as the
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
477/722
Truck is. The Bay should should be the same as where the wagons are located.
FreeLocationName (text, optional): it allows specific to define where the wagons convoy will
go (if VMS knows that). When empty, Artemis will initialze FreeLocationName with ‘In
transit’.
Responses
Response 200 (Ok)
Response 400 (BadRequest)
401
Wagon Number has an invalid checksum
402
Wagon Number is an invalid format
403
Vehicle type does not exist
413
Gross vehicle weight rating (GVWR) must be greater than 0 (value: '{0}')
Response 403 (Forbidden)
404
Cannot change wagon/locomotive type
405
Location change request out of date
Response 404 (NotFound)
14
Bay not found
41
Convoy not found
Response 409 (Conflict)
400
Vehicle already exists on this site
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
478/722
Example
{
"requestedBy": "string",
"requestedAt": "2020-01-15T14:00:40.354Z",
"context": {},
"name": "string",
"siteIdentifier": "string",
"metadata": {},
"wagons": [
{
"identifier": "string",
"number": "string",
"typeIdentifier": "string",
"sequenceNumberInConvoy": 0,
"tagIdentifier": "string",
"positionLabel": "string",
"offset": 0,
"metadata": {}
}
],
"bayMetadata": {},
"freeLocationName": "string",
"bayIdentifier": "string"
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
479/722
Notification
{
"notificationType": "ConvoyVehicleLeftBay", 0.0.50.0
"resourceType": "convoy",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-01-27T14:07:14.2695836+00:00",
"requestedBy": "owner"
},
"identifier": "testConvoy1",
"name": "myName",
"expectedBayIdentifier": "testBay1",
"type": "convoy",
"location": {
"type": "freeLocation",
"name": "InTransit",
"freeLocationType": "InInternalTransit"
},
"previousLocation": {
"type": "bay",
"bayIdentifier": "testBay0"
},
"wagons": [ 0.0.65.0
{
"type": "wagon",
"identifier": "testWagon1",
"number": "21-81-2471-217-3"
},
{
"type": "wagon",
"identifier": "testWagon2",
"number": "51 80 0843 001-0"
},
{
"type": "locomotive",
"identifier": "testLoco1",
"number": "31-81-665 0 286-0"
}
]
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
480/722
Update Wagon
0.0.78.0
HTTP Request
PUT /transport-api/v1/wagons/{wagonNumber}
Request Parameters
wagonNumber (string)
Request Body
{
…
typeIdentifier (string, optional),
sequenceNumberInConvoy (int, optional),
tagIdentifier (string, optional),
positionLabel (string, optional),
offset (long, optional),
gwvr (int, optional),
metadata (json, optional)
}
Responses
Response 200 (Ok)
Response 400 (BadRequest)
412
Cannot change offset and position label because wagon '{0}' is not on bay
413
Gross vehicle weight rating (GVWR) must be greater than 0 (value: '{0}')
Response 403 (Forbidden)
66
Cannot change type identifier of an allocated vehicle '{0}'
Response 404 (NotFound)
6
Vehicle not found
Example
{
…
"typeIdentifier": "typeId",
"sequenceNumberInConvoy": 0,
"tagIdentifier": "tagIdentifier",
"positionLabel": "positionA",
"offset": 1,
"gvwr": 22,
"metadata": {},
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
481/722
Notification
{
"notificationType": "VehicleUpdated", 1.81
"resourceType": "wagon",
"scope": "",
"sender": "Artemis.Transport.Vehicle",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-01-07T10:43:32.0149267+00:00",
"requestedBy": "owner"
},
"type": "wagon",
"identifier": "wagon1",
"number": "21-87-2471-217-3",
"gvwr": 123
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
482/722
Delete Wagon by wagon number
0.0.48.0
NB: When last wagon or locomotive is deleted, convoy is also deleted 0.0.81.0
HTTP Request
DELETE /transport-api/v1/wagons/{wagonNumber}
Request Parameter
wagonNumber (string)
Responses
Response 200 (OK)
Response 403 (Forbidden)
37
MaterialUnit(s) are already loaded
38
Convoy contains wagon '{0}' is already allocated to Transport '{1}'
Response 404( NotFound)
Wagon not found
Example
{
…
}
Notification
{
"resourceType": "wagon",
"notificationType": "VehicleDeleted",
"sender": "Artemis.Transport.Vehicle",
"scope": "xxx",
"data": {
"type": "wagon",
"identifier": "testWagon1",
"number": "21-81-2471-217-3",
"originalRequestInfo": {
"requestedAt": "2022-04-27T10:06:20.842+02:00",
"requestedBy": "string"
},
"context": {}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
483/722
Allocate Wagons to Transport
0.0.33.0
This is a method used to allocate a list of wagons located on a same bay to a transport in a unique
transaction.
Remarks
This method is not thread safe, so it does not manage concurrency problems, that is if it is called
twice (or more) in the same time all unicity check may fail to detect duplicate values (equipment
group, wagons …)
If deprecated list of “wagons” is specified, we take into account of this list. Otherwise, we read the
two lists “wagonIdentifiers” & “wagonNumbers”.
HTTP Request
POST /transport-api/v1/transports/{identifier}/wagons 0.0.48.0
Please wait notification state changed to ‘Confirmed’ before call this uri.
Request Parameters
identifier (string)
Request Body
{
…
equipmentGroupIdentifier (string),
wagons ([
{
identifier (string),
number (string)
}]), deprecated 0.0.70.0
wagonIdentifiers ([
(string), …
], optional),
wagonNumbers ([
(string), …
], optional)
}
â–ª
TransportIdentifier (text, mandatory)
Business identifier of the Transport on which wagons will be allocated
Transport should:
o Be fully defined
o Its state should be ‘Confirmed’ or ‘In progress’
o Transport mode should be for wagon
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
484/722
o
Have a ‘Confirmed’ or ‘In progress’ Loading Instruction for a loading site which is the
same as the site where the first wagon is located.
â–ª
EquipmentGroupIdentifier (text, mandatory)
Business identifier of the EquipmentGroup on which the wagons will be allocated.
The EquipmentGroup should belong to Transport.
â–ª
A list of wagons and for each wagon the following properties:
â–ª WagonIdentifier (text, mandatory)
It is the Identifier of the Wagon (see WagonsConvoyArrivalAtBay properties).
The wagon should be:
o Active
o Not yet allocated to a Transport
o The vehicle type category of the wagon should be ‘Wagon’.
As a consequence, a loco cannot be allocated to a Transport.
o Be on the same site as the first wagon of the list is.
Responses
Response 200 (Ok)
Response 403 (Forbidden)
23
Transport And Physical Vehicle mode are different
36
Transport is not fully defined
43
All vehicle types should have the same category as '{0}'
278
Cannot allocate wagons located on different sites
Response 400 (BadRequest)
277
Cannot allocate empty wagon list
Response 404 (NotFound)
5
Transport not found
32
Loading Instruction not found on site
Response 409 (Conflict)
12
Vehicle '{0}' is already associated to the transport '{1}' for loading site '{2}'
17
Another vehicle '{0}' is already associated to the transport '{1}' for loading site '{2}'
Response 502 (BadGateway)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
485/722
If you receive a ‘Bad Gateway’, please retry to send request in few seconds.
Example
{
"requestedBy": "owner",
"requestedAt": "2020-02-06T15:28:33.416Z",
"context": {},
"equipmentGroupIdentifier": "string",
"wagons": [
{
"identifier": "string",
"number": "string",
"typeIdentifier": "string"
}
]
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
486/722
Notifications
{
"notificationType": "StateChanged"
"resourceType": "transport",
"scope": "",
"sender": "Artemis.Core.Transport",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-04-15T09:45:58.7051112+00:00",
"requestedBy": "owner"
},
"oldValue": null,
"newValue": "Confirmed",
"owner": "TMS",
"transportIdentifier": "ID000000",
"siteIdentifier": "LIE",
"type": "rail"
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
487/722
{
"notificationType": "VehicleCreated / VehicleUpdated", 0.0.54.0
"resourceType": "convoy",
"scope": "",
"sender": "Artemis.Transport.Vehicle",
"data": {
"context": {
"key": "value"
},
"wagons": [
{
"identifier": "testWagon1",
"number": "21-81-2471-217-3",
"gvwr": 30000 0.0.65.0
},
{
"identifier": "testWagon2",
"number": "51 80 0843 001-0",
"gvwr": 25000 0.0.65.0
},
{
"identifier": "testLoco1",
"number": "31-81-665 0 286-0"
}
],
"originalRequestInfo": {
"requestedAt": "2020-01-07T10:43:32.0149267+00:00",
"requestedBy": "owner"
},
"type": "convoy",
"identifier": "convoyIdentifier",
"name": "convoyName",
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
488/722
{
"notificationType": "TransportArrived",
"resourceType": "transport",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2019-12-23T14:53:08.6760606+00:00",
"requestedBy": "owner"
},
"transportIdentifier": "ID000000", 0.0.52.0
"siteIdentifier": "LIE",
"type": "rail", 0.0.51.0
"arrivalDateTime": "2019-12-23T14:53:08.6760606+00:00",
"owner": "TMS"
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
489/722
{
"notificationType": "WagonsVehicleAllocated", 0.0.51.0
"resourceType": "wagon",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-02-10T12:53:39.8109148+00:00",
"requestedBy": "owner"
},
"transportIdentifier": "ID000000",
"transportType": "Shipment | Intrasite", 0.0.58.0
"siteIdentifier": "LIE",
"transportowner": "TMS", 0.0.52.0
"wagons": [
{
"number": "wagon1",
"typeIdentifier": "c44"
},
{
"number": "wagon2",
"typeIdentifier": "c44"
},
{
"number": "wagon3",
"typeIdentifier": "c44"
},
{
"number": "wagon4",
"typeIdentifier": "c44"
},
{
"number": "wagon5",
"typeIdentifier": "c44"
}
]}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
490/722
{
"notificationType": "TransportSstateChanged",
"resourceType": "railtransport",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2019-12-23T14:53:08.6760606+00:00",
"requestedBy": "owner"
},
"oldValue": "Confirmed",
"newValue": "InProgress",
"transportIdentifier": "T0",
"siteIdentifier": "LIE",
"owner": "TMS",
"type": "rail"
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
491/722
Material Unit(s) not accessible
{
"notificationType": "NotAccessibleMaterialUnitsDetected",
"resourceType": "transport",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-02-27T08:18:11.4531075+00:00",
"requestedBy": "owner"
},
"identifier": "ID000000",
"owner": "TMS",
"siteIdentifier": "LIE",
"notAccessibleMaterialUnits": [
{
"lmiNumber": "lmiNumber",
"lmiContext": "lmiContext",
"reason": "reason"
}
]
}
}
Notifications WeightChecked
No weighing present
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
492/722
{
"notificationType": "WeightChecked", 0.0.47.0
"resourceType": "wagon",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-02-26T16:05:25.7815253+00:00",
"requestedBy": "owner"
},
"transportIdentifier": "ID000000",
"transportOwner": "TMS", 0.0.53.0
"siteIdentifier": "LIE", 0.0.53.0
"name": "21-81-2471-217-3", 0.0.55.0
"identifier": "testwagon1", 0.0.55.0
"results": [ {
"state": "NotExecuted",
"message": "Cannot evaluate wagon weight conformity because the wagon has never been
weighed."
}]
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
493/722
No check was performed
{
"notificationType": "WeightChecked", 0.0.47.0
"resourceType": "wagon",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-02-26T16:05:25.7815253+00:00",
"requestedBy": "owner"
},
"transportIdentifier": "ID000000",
"transportOwner": "TMS", 0.0.53.0
"siteIdentifier": "LIE", 0.0.53.0
"name": "21-81-2471-217-3", 0.0.55.0
"identifier": "testwagon1", 0.0.55.0
"results": [ {
"state": "NotExecuted",
"message": "The GVWR check was skipped because GVWR was not defined."
}]
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
494/722
Check was successful
{
"notificationType": "WeightChecked", 0.0.47.0
"resourceType": "wagon",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-02-26T16:07:19.4272507+00:00",
"requestedBy": "owner"
},
"transportIdentifier": "ID000000",
"transportOwner": "TMS", 0.0.53.0
"siteIdentifier": "LIE", 0.0.53.0
"name": "21-81-2471-217-3", 0.0.55.0
"identifier": "testwagon1", 0.0.55.0
"results": [ {
"state": "Success",
}]
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
495/722
Wagon ‘GVWR is too small
{
"notificationType": "WeightChecked", 0.0.47.0
"resourceType": "wagon",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-02-24T10:34:51.5105062+00:00",
"requestedBy": "owner"
},
"transportIdentifier": "ID000000",
"transportOwner": "TMS", 0.0.53.0
"siteIdentifier": "LIE", 0.0.53.0
"success": false,
"name": "21-81-2471-217-3", 0.0.55.0
"identifier": "testwagon1", 0.0.55.0
"results": [ {
"state": "Failure",
"message": "The vehicle GVWR '…' is too low to allow the loading of the requested material
units.”
}]
}
}
Encoded derogation does not allow the transport to be loaded
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
496/722
Current weight of wagon is above expected (last empty wagon + loaded MUs) 0.0.43.0
{
"notificationType": "WeightChecked", 0.0.47.0
"resourceType": "wagon",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-02-24T10:31:00.7464466+00:00",
"requestedBy": "owner"
},
"transportIdentifier": "ID000000",
"transportOwner": "TMS", 0.0.53.0
"siteIdentifier": "LIE", 0.0.53.0
"name": "21-81-2471-217-3", 0.0.55.0
"identifier": "testwagon1", 0.0.55.0
"results": [ {
"state": "Failure",
"message": "The current weight value '…' is above the expected one '…' considering the
current loaded material units.”
}]
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
497/722
Current weight of wagon is lower than expected (last empty wagon + loaded MUs) 0.0.43.0
{
"notificationType": "WeightChecked", 0.0.47.0
"resourceType": "wagon",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-02-24T10:31:00.7464466+00:00",
"requestedBy": "owner"
},
"transportIdentifier": "ID000000",
"transportOwner": "TMS", 0.0.53.0
"siteIdentifier": "LIE", 0.0.53.0
"name": "21-81-2471-217-3", 0.0.55.0
"identifier": "testwagon1", 0.0.55.0
"results": [ {
"state": "Failure",
"message": "The current weight value '…' is below the expected one '…' considering the
current loaded material units.”
}]
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
498/722
Deallocate Wagons from Transport
0.0.70.0
This is a method used to deallocate a list of wagons from a transport in a unique transaction.
HTTP Request
DELETE /transport-api/v1/transports/{identifier}/wagons 0.0.70.0
Request Parameters
identifier (string)
Request Body
{
…
wagonIdentifiers ([
(string), …
], optional),
wagonNumbers ([
(string), …
], optional)
}
WagonIdentifiers (List, optional)
o
Identfier
The identifier of the wagon given internally by the VMS.
The wagon should exist and be allocated to the transport.
WagonNumbers (List, optional)
o
Number
Wagon number (name) given internally by the VMS.
The wagon should exist and be allocated to the transport.
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
499/722
Responses
Response 200 (Ok)
Response 400 (BadRequest)
Response 403 (Forbidden)
36
Transport is not fully defined
54
Transport mode '{0}' is not supported
304
One or more wagons are not allocated to the transport
Response 404 (NotFound)
5
Transport not found
63
One or more wagons are not found
Example
Request with only wagon identifiers
{
"requestedBy": "owner",
"requestedAt": "2022-04-27T11:31:23.018Z",
"context": {},
" wagonIdentifiers ": [
"ID0001",
"ID0002",
"ID0003"
],
" wagonNumbers ": []
}
Request with only wagon numbers
{
"requestedBy": "owner",
"requestedAt": "2022-04-27T11:31:23.018Z",
"context": {},
" wagonIdentifiers ":[]
" wagonNumbers ": [
"Wagon1",
"Wagon2",
"Wagon3"
]
}
Request with a combination of identifiers and numbers
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
500/722
{
"requestedBy": "owner",
"requestedAt": "2022-04-27T11:31:23.018Z",
"context": {},
"wagonIdentifiers":
[
"ID0001",
"ID0003"
]
"wagonNumbers":
[
"Wagon2",
]
}
Notifications
0.0.58.0
{
"notificationType": "VehicleDeallocated"
"resourceType": "truck",
"scope": "",
"sender": "Artemis.Transport.Execution",
"data": {
"transportIdentifier": "ID000000",
"transportType": "Shipment | Intrasite",
"siteIdentifier": "LIE",
"owner": "TMS",
"identifier": "ID000000",
"name": "T0",
"trailers": [
{
"name": "trailerID000000",
"identifier": "ID000000"
},
"lastVehicle": true,
"originalRequestInfo": {
"requestedAt": "2020-10-15T11:49:38.0098233+02:00",
"requestedBy": "owner"
},
"context": {
"key": "value"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
501/722
Record a new weighing of a wagon
0.0.50.0
HTTP Request
POST /transport-api/v1/wagons/{name}/weighings
Request Body
{
…
date (datetime),
weight (long),
weighBridgeName (string, optional),
source (enumeration: User (default), WeighBridge, Historical, optional),
metadata (JSon, optional)
}
Identifier (text, mandatory)
The identifier of the wagon given internally by the VMS.
The wagon should exist, but it could be not allocated to a transport.
Date (datetime, mandatory)
The datetime at which the weighing really took place.
Weight (long in kg, mandatory)
The weight of the wagon. It should be greater than 500 kg.
Source (enum, mandatory)
The source of the weight of the wagon. Following values are defined:
User (default value): an operator has introduced the weight through an HMI in Artemis core or in
the wagon VMS.
WeighBridge: the weight has been read automatically by a dedicated system on a weighbridge.
Historical: this is the last weight (for example, its last tare) for this wagon.
WeighBridgeName (text, optional)
Name of the weighbridge where the weighing was really performed.
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
502/722
It could be defined when Source equal to ‘WeighBridge’; otherwise, it should be empty.
Artemis core do no control on that parameter.
Metadata (text, optional)
Responses
Response 200 (Ok)
Response 400 (BadRequest)
409
The weighing date cannot be in the future
Response 404 (NotFound)
Wagon not found
Example
{
"requestedBy":"owner",
"requestedAt":"2019-12-23T15:03:41.3660893+00:00",
"context":
{
"key":"value"
},
"date": "2020-02-10T14:09:48.168Z",
"weight": 50,
"weighBridgeName": " weighBridgeName",
"source": "weighBridge",
"metadata": {}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
503/722
Notification
{
"notificationType": "VehicleWeighed",
"resourceType": "wagon",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-02-10T14:05:01.1525582+00:00",
"requestedBy": "owner"
},
"type": "wagon",
"identifier": "wagonTest",
"namenumber": "b-fb293en", 0.0.65.0
"siteIdentifier": "LIE", 0.0.56.0
"weighing": {
"weight": 20000,
"date": "2020-02-10T14:05:01.1525582+00:00",
"source": "weighBridge",
"weighBridgeName": "weighBridgeName",
"metadata": {}
}
}
}
If a Transport is defined, a check weight is made depending on the state of mobile container and a
specific notification is sent (see 0.562).
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
504/722
Refuse Wagon
0.0.43.0
See Refuse Truck for more explanation on the methode.
Method to refuse a wagon. Refusal can happen before or after a wagon is allocated to a transport.
When a wagon was allocated, it will be deallocated.
HTTP Request
POST /transport-api/v1/wagons/{name}/refuse-requests 0.0.43.0
Request Body
{
…
reason (enumeration: Other, Damaged, NoSecurityEquipment, MaterialNotCompatible,
InsufficientLoadableWeight, PpeNotConform, OtherCargoAlreadyLoaded),
comment (string, optional),
transportIdentifier (string, optional)
}
Name (text, mandatory)
The name of the wagon given internally by the VMS. The wagon should exist.
Reason (enum, mandatory)
The reason of refusal of the truck. Following values are defined:
InsufficientLoadableWeight WeightIssue: Available loadable weight is incompatible with
requested weight 0.0.55.0
Large Width: 0.0.55.0
DriverBehaviour: 0.0.55.0
NoSecurityEquipment LashingOrSafetyEquipmentNotConformOrMissing: No security
equipment present 0.0.55.0
LashingOrSafetyEquipmentNotConformOrMissing: 0.0.55.0
VehicleIssue: 0.0.55.0
InsufficientDriverPpe PpeNotConform: Driver has no or incomplete PPE 0.0.55.0
NotCompatible MaterialNotCompatible: Vehicle type not compatible with product type
0.0.55.0
OtherLoadedCargo OtherCargoAlreadyLoaded: Other/foreign products loaded on vehicle
0.0.55.0
Damaged: Vehicle damaged/broken 0.0.55.0
Other: reason is not present in this list
Comment (text, optional)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
505/722
Additional optional comment
TransportIdentifier (text, optional)
The calling system/user/integrator needs to provide the Transport ID as input, if he wants us
to send a message to the TMS for this transport.
Responses
Response 200 (Ok)
Response 400 (BadRequest)
Response 404 (NotFound)
Wagon not found
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
506/722
Example
{
"requestedBy":"owner",
"requestedAt":"2020-09-18T15:03:41.3660893+00:00",
"context":
{
"key":"value"
},
"reason": "NotCompatible",
"comment": "comment",
"transportIdentifier": "ID000000"
}
Notification
{
"notificationType": "WagonVehicleRefused", 0.0.50.0
"resourceType": "wagon",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedBy":"owner",
"requestedAt":"2020-09-18T15:03:41.3660893+00:00",
},
"type": "wagon",
"identifier": "ID000000",
"namenumber": "b-fb293en", 0.0.65.0
"reason": "NotCompatible",
"comment": "comment",
"transportIdentifier": "ID000000",
"siteIdentifier": "LIE", 0.0.53.0
}
}
Anomalies
See VehicleRefused (AnomalyDetected)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
507/722
Entry or Exit cross gate
0.0.43.0
The goal of this method is to specify the date time of entry / exit cross gate. This will be mainly used
for reporting (reason why ‘date’ is mandatory)
HTTP Request
POST /transport-api/v1/convoys/{identifier}/cross-gate-event
Request Parameters
identifier (string)
Request Body
{
…
type (string) = [‘entryGateCrossed’, ‘exitGateCrossed’],
date (datetime),
gateIdentifier (string, optional)
}
Responses
Response 200 (Ok)
Response 404 (NotFound)
Convoy not found
Example
{
…
"type": "entryGateCrossed”,
"date": "2020-09-29T16:10:10.3424433+02:00",
"gateIdentifier": "gateName”
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
508/722
Notification
Example
{
"notificationType": "EntryGateCrossed" | "ExitGateCrossed",
"resourceType": "convoy",
"scope": "",
"sender": "",
"data": {
"type": "convoy",
"identifier": "testConvoy1",
"name": "myName",
"wagons": [
{
"identifier": "testWagon1",
"number": "21-81-2471-217-3",
"type": "wagon" 0.0.56.0
},
{
"identifier": "testWagon2",
"number": "51 80 0843 001-0",
"type": "wagon" 0.0.56.0
},
{
"identifier": "testLoco1",
"number": "31-81-665 0 286-0",
"type": "wagon" 0.0.56.0
}
],
"gateIdentifier": "GateIdentifier",
"siteIdentifier": "LIE", 0.0.53.0
"date": "2021-02-01T10:30:02.9519348+01:00",
"originalRequestInfo": {
"requestedAt": "2021-02-01T10:30:02.9519348+01:00",
"requestedBy": "owner"
},
"context": {
"key": "value"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
509/722
Link wagon to equipment
1.81
The goal of this method is to link a wagon to an equipment. See 5.2 below for more explanation on
equipments.
HTTP Request
PUT /transport-api/v1/transports/{identifier}/wagons/wagonnumber={wagonNumber}/equipment/{equipmentIdentifer}
PUT /transport-api/v1/transports/{identifier}/wagons/wagonidentifier={wagonIdentifier}/equipment/{equipmentIdentifer}
Request Parameters
identifier (string)
wagonNumber (string) or wagonIdentifier (string)
equipmentIdentifier (string)
Request Body
{
…
}
Responses
Response 200 (Ok)
Response 400 (BadRequest)
28
Validation Failed
Response 403 (Forbidden)
61
Transport is Cancelled
502
Mobile container '{0}' not allocated to transport
503
Cannot link equipment because it is already linked to mobile container '{0}'
19
Operation is forbidden because transport is closed or completed
58
Transport '{0}' is not 'Confirmed'
36
Transport '{0}' is not 'FullyDefined'
Response 404 (NotFound)
5
Transport not found
32
Transport ‘{0}’ not found on site ‘{1}’
Example
{
…
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
510/722
Notifications
{
"resourceType": "mobileContainer",
"notificationType": "EquipmentLinked",
"sender": "Artemis.Transport.Execution",
"scope": "LIE",
"data": {
"type": "wagon",
"transportIdentifier": "ID000001",
"transportType": "Shipment",
"siteIdentifier": "LIE",
"owner": "Syltram",
"mobileContainerName": "wagon1",
"mobileContainerIdentifier": "wagon1Id",
"equipmentIdentifier": "EQ0",
"originalRequestInfo": {
"requestedAt": "2022-11-10T11:20:45.2871549+01:00",
"requestedBy": "owner"
},
"context": {
"key": "value"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
511/722
Unlink wagon from equipment
1.81
The goal of this method is to unlink a wagon from an equipment.
HTTP Request
DELETE /transport-api/v1/transports/{identifier}/wagons/wagon-number={wagonNumber}/equipment
DELETE /transport-api/v1/transports/{identifier}/wagons/wagon-identifier={wagonIdentifier}/equipment
Request Parameters
identifier (string)
wagonNumber (string) or wagonIdentifier (string)
Request Body
{
…
}
Responses
Response 200 (Ok)
Response 400 (BadRequest)
28
Validation Failed
Response 403 (Forbidden)
61
Transport is Cancelled
502
Mobile container '{0}' not allocated to transport
58
Transport '{0}' is not 'Confirmed'
36
Transport '{0}' is not 'FullyDefined'
Response 404 (NotFound)
5
Transport not found
32
Transport ‘{0}’ not found on site ‘{1}’
Example
{
…
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
512/722
Notifications
{
"resourceType": "mobileContainer",
"notificationType": "EquipmentUnlinked",
"sender": "Artemis.Transport.Execution",
"scope": "LIE",
"data": {
"type": "wagon",
"transportIdentifier": "ID000001",
"transportType": "Shipment",
"siteIdentifier": "LIE",
"owner": "Syltram",
"mobileContainerName": "wagon1",
"mobileContainerIdentifier": "wagon1Id",
"equipmentIdentifier": "EQ0",
"originalRequestInfo": {
"requestedAt": "2022-11-10T11:20:45.2871549+01:00",
"requestedBy": "owner"
},
"context": {
"key": "value"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
513/722
4.13. Ship (vessel / barge)
Create or update ship
0.0.48.0
HTTP Request
PUT /transport-api/v1/vessels/{name}
PUT /transport-api/v1/barges/{name}
Request Parameters
name (string)
Request Body
Vessel
{
…
identifier (string),
metadata (json, optional),
captainName (integer, optional),
IMO (string, optional),
VIN (string, optional)
}
Barge
{
…
identifier (string),
metadata (json, optional),
captainName (integer, optional),
ENI (string, optional)
}
Responses
Response 200 (Ok)
Response 201 (Created)
Response 409 (Conflict)
400
Vehicle already on site or same identifier has already been used
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
514/722
Examples
Vessel
{
…
"identifier": "vesselIdentifier",
"metadata": {},
"captainName": “captainABC”,
"IMO": "imo",
"VIN": "vin"
}
Barge
{
…
"identifier": "vesselIdentifier",
"metadata": {},
"captainName": “captainABC”,
"ENI": "eni"
}
Notifications
{
"notificationType": "ShipVehicleCreated" | "ShipVehicleUpdated", 0.0.50.0
"resourceType": "ship",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-01-07T10:43:32.0149267+00:00",
"requestedBy": "owner"
},
"type": "vessel" | "barge",
"identifier": "identifierTest",
"name": "myName",
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
515/722
Get Ship by name
1.81.0
Retrieve a ship by name.
HTTP Request
GET /transport-api/v1/ships/{name}
Request Parameters
name (string)
Responses
Response 200 (Ok)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
516/722
{
…
type (string) = [‘Barge’, ‘Vessel’],
name (string),
identifier (string),
siteIdentifier (string),
captainName (string, optional),
IMO (string, optional),
ENI (string, optional),
VIN (string, optional),
metadata (json, optional),
locatedOn {
locationType (string) = [‘Bay’, ‘FreeLocation’],
bayIdentifier (string),
label (string),
name (string),
freeLocationType (string),
requestedBy (string),
requestedAt (datetime),
metadata (json, optional)
},
transportIdentifier (string, optional), deprecated 1.81.0 (value is specified only when transport
state is not ‘Closed’ or ‘Completed’)
transport { 1.81.0
identifier (string),
state (string),
type (string) = [‘Intrasite’, ‘Shipment’],
owner (string)
},
loadPlan: {
metadata (Json, optional),
toLoad: [{
material {
lmiContext (string),
lmiNumber (string),
materialGroup (string)
},
position {
cradleFrontToRearIndex (int, optional),
cradleLeftToRightIndex (int, optional),
level (int, optional),
orientation (string, optional) = [‘axisVertical’, ‘axisHorizontalCrosswise’,
‘axisHorizontalLengthwise’],
spireOrientation (string, optional) = [‘topToFront’, ‘bottomToFront’]
} (optional),
} (optional)
}],
toCheck: [{
lmiContext (string),
lmiNumber (string),
}],
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
517/722
checked: [{
lmiContext (string),
lmiNumber (string),
success (boolean, optional),
reason (string, optional),
comment (string, optional)
}],
loaded: [{
materialUnit {
lmiContext (string),
lmiNumber (string),
materialGroup (string)
},
actualPosition {
cradleFrontToRearIndex (int, optional),
cradleLeftToRightIndex (int, optional),
level (int, optional),
orientation (string, optional) = [‘axisVertical’, ‘axisHorizontalCrosswise’,
‘axisHorizontalLengthwise’],
spireOrientation (string, optional) = [‘topToFront’, ‘bottomToFront’]
} (optional),
} (optional),
expectedPosition {
cradleFrontToRearIndex (int, optional),
cradleLeftToRightIndex (int, optional),
level (int, optional),
orientation (string, optional) = [‘axisVertical’, ‘axisHorizontalCrosswise’,
‘axisHorizontalLengthwise’],
spireOrientation (string, optional) = [‘topToFront’, ‘bottomToFront’]
} (optional),
} (optional)
}],
impossibleToLoad: [{
lmiContext (string),
lmiNumber (string)
}],
toUnload: [{
lmiContext (string),
lmiNumber (string)
}],
unloaded: [{
lmiContext (string),
lmiNumber (string)
}]
},
loadedMaterialUnits [{
materialUnit {
lmiContext (string),
lmiNumber (string)
},
position {
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
518/722
cradleFrontToRearIndex (int, optional),
cradleLeftToRightIndex (int, optional),
level (int, optional),
orientation (string),
spireOrientation (string)
} (optional),
} (optional),
loadingDateTime (datetime),
metadata (json, optional),
siteIdentifier (string, optional)
}],
currentState (string),
transportExecutionMetadata (json, optional)
}
}
Response 404 (NotFound)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
519/722
Example
TODO
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
520/722
Allocate ship to Transport
0.0.48.0
HTTP Request
POST /transport-api/v1/transports/{identifier}/ship 0.0.48.0
Please wait notification state changed to ‘Confirmed’ before call this uri.
Request Body
{
…
name (string)
}
â–ª
Identifier (text, mandatory)
It is the Identifier of the Transport on which the ship will be allocated
The Transport should:
o Be fully defined
o Its state should be ‘Confirmed’
o Transport mode should be for Vessel or Barge
o Have a ‘Confirmed’ Loading Instruction for a loading site which is the same as the site
where the Ship is located.
â–ª
Name (text, mandatory)
It is the name of the Ship (see create or update vessel properties).
The ship should be:
o Not yet allocated to a Transport
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
521/722
Responses
Response 200 (Ok)
Response 400 (BadRequest)
Response 403 (Forbidden)
23
Transport And Physical Vehicle mode are different
36
Transport is not fully defined
292
Allocation is forbidden because mobile container is loaded (and already allocated)
Response 404 (NotFound)
5
Transport not found
6
Physical Vehicle not found
32
Transport ‘{0}’ not found on site
Response 409 (Conflict)
12
Vehicle '{0}' is already associated to the transport '{1}' for loading site '{2}'
17
Another vehicle '{0}' is already associated to the transport '{1}' for loading site '{2}'
Response 502 (BadGateway)
44
MaterialUnit '{0}' ‘{1}’ not found in MaterialUnit context
If you receive a ‘Bad Gateway’, please retry to send request in few seconds.
Example
{
"requestedBy":"owner",
"requestedAt":"2019-12-23T15:03:41.3660893+00:00",
"context":
{
"key":"value"
},
"name":"S0"
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
522/722
Notifications
{
"notificationType": "StateChanged"
"resourceType": "transport",
"scope": "",
"sender": "Artemis.Core.Transport",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-04-15T09:45:58.7051112+00:00",
"requestedBy": "owner"
},
"oldValue": null,
"newValue": "Arrived",
"owner": "TMS",
"transportIdentifier": "T0",
"siteIdentifier": "LIE",
"type": "maritime"
}
}
Transport arrived
{
"notificationType": "TransportArrived",
"resourceType": "transport",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2019-12-23T14:53:08.6760606+00:00",
"requestedBy": "owner"
},
"identifier": "T0",
"siteIdentifier": "LIE",
"type": "maritime", 0.0.51.0
"arrivalDateTime": "2019-12-23T14:53:08.6760606+00:00",
"owner": "TMS"
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
523/722
Ship allocated
{
"notificationType": "ShipVehicleAllocated", 0.0.51.0
"resourceType": "ship",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2019-12-23T14:53:08.6760606+00:00",
"requestedBy": "owner"
},
"transportIdentifier": " T0",
"transportType": "Shipment | Intrasite", 0.0.58.0
"siteIdentifier": "LIE",
"transportowner": "TMS", 0.0.52.0
"shipIdentifier": "ID000000",
"shipName": "S0"
}
}
Transport State changed
{
"notificationType": "stateChanged",
"resourceType": "transport",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2019-12-23T14:53:08.6760606+00:00",
"requestedBy": "owner"
},
"oldValue": "Confirmed",
"newValue": "Arrived",
"transportIdentifier": "T0",
"siteIdentifier": "LIE",
"owner": "TMS",
"type": "maritime"
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
524/722
Material Unit(s) not accessible
{
"notificationType": "NotAccessibleMaterialUnitsDetected",
"resourceType": "transport",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-02-27T08:13:47.2426005+00:00",
"requestedBy": "owner"
},
"identifier": "T0",
"owner": "TMS",
"siteIdentifier": "LIE",
"notAccessibleMaterialUnits": [
{
"lmiNumber": "lmiNumber",
"lmiContext": "lmiContext",
"reason": "reason"
}
]
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
525/722
Ship arrival at bay
0.0.48.0
HTTP Request
PUT /transport-api/v1/ships/identifier={identifier}/bay/{bayIdentifier}
PUT /transport-api/v1/ships/name={name}/bay/{bayIdentifier}
Request Parameters
identifier (string)
or
name (string)
bayIdentifier (string)
Request Body
{
metadata (json, optional)
}
Responses
Response 200 (Ok)
Response 400 (BadRequest)
Response 404 (NotFound)
14
Bay not found
Ship not found
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
526/722
Notification
{
"notificationType": "ShipVehicleArrivedAtBay", 0.0.50.0
"resourceType": "ship",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-01-07T10:43:32.0149267+00:00",
"requestedBy": "owner"
},
"type": "barge",
"identifier": "bargeTest",
"name": "myName",
"location": {
"type": "bay",
"bayIdentifier": "bayIdentifier"
},
"previousLocation": {
"type": "freeLocation",
"name": "InTransit",
"freeLocationType": "InInternalTransit"
}
}
}
Example
{
"requestedBy":"owner",
"requestedAt":"2019-12-23T15:03:41.3660893+00:00",
"context":
{
"key":"value"
},
"metadata":null
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
527/722
Ship arrival at free location
0.0.48.0
HTTP Request
PUT /transport-api/v1/ships/identifier={identifier}/bay/free-location
PUT /transport-api/v1/ships/name={name}/bay/free-location
Request Parameters
identifier (string)
or
name (string)
Request Body
{
…
name (string),
type (string),
metadata (json, optional)
}
â–ª
FreeLocationName (text, mandatory)
It defines the name (a simple string) of the location on which the ship is located.
For more details, please read 5.1 FreeLocation definition.
â–ª
FreeLocationType (string, mandatory)
It defines the type of free location on which the ship is located.
For more details, please read 5.1 FreeLocation definition.
Artemis doesn’t check that ship VMS use only type usable by ship VMS.
â–ª
LocationMetaData (json, optional)
Any metadata used/required by local system relatively to the location of the ship.
Responses
Response 200 (Ok)
Response 403 (Forbidden)
405
Location change request out of date
Response 404 (NotFound)
Ship not found
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
528/722
Example
{
"requestedBy":"owner",
"requestedAt":"2019-12-23T15:03:41.3660893+00:00",
"context":
{
"key":"value"
},
"name":"T0",
"type":"freeLocationType",
"metadata": null
}
Notification(s)
{
"notificationType": "ShipVehicleLocatedOnFreeLocation", 0.0.50.0
"resourceType": "ship",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2019-12-23T14:53:08.6760606+00:00",
"requestedBy": "owner"
},
"type": "barge",
"identifier": "shipTest",
"name": "shipName",
"location": {
"type": "freeLocation",
"name": "InTransit",
"freeLocationType": null
},
"previousLocation": {
"type": "bay",
"bayIdentifier": "bayIdentifier"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
529/722
Ship departure from bay
0.0.48.0
This method is used to indicate to Artemis core that a vessel leaves a bay.
HTTP Request
DELETE /transport-api/v1/ships/{name}/bay
Request Parameters
name (string)
Request Body
{
…
bayIdentifier (string, optional),
metadata (json, optional),
freeLocationName (string, optional)
}
â–ª
Name (text, mandatory): it is the name of the ship given internally by the VMS.
There is only one ship with that Ship.Identifier on all sites managed by an Artemis core instance.
â–ª
BayIdentifier (text, mandatory): it defines the bay from which the ship left.
A Bay with the same identifier should exist.
The Bay should be located within the same site as the ship is.
The Bay should should be the same as where the ship is located.
â–ª
Metadata (json, optional)
â–ª
FreeLocationName (text, optional): it allows specific to define where the ship will go (if VMS
knows that). When empty, Artemis will initialze FreeLocationName with ‘In transit’
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
530/722
Responses
Response 200 (Ok)
Response 403 (Forbidden)
405
Location change request out of date
Response 404 (NotFound)
14
Bay not found
57
Ship not found
Example
{
…
"bayIdentifier": "ID000000",
"metadata": null,
"freeLocationName": "freeLocation"
}
Notification
{
"notificationType": "ShipVehicleLeftBay", 0.0.50.0
"resourceType": "ship",
"scope": "",
"sender": "Artemis.Transport.Vehicle",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-01-23T11:08:24.7984371+00:00",
"requestedBy": "owner"
},
"type": "barge",
"identifier": "vesselIdentifier",
"name": "vesselName",
"location": {
"type": "freeLocation",
"name": "freeLocationTest",
"freeLocationType": "InInternalTransit"
},
"previousLocation": {
"type": "bay",
"bayIdentifier": "bayIdentifier"
},
"expectedBayIdentifier": null
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
531/722
Delete ship
0.0.49.0
HTTP Request
DELETE /transport-api/v1/ships/{name}
Request Parameters
name (string)
Request Body
{
…
}
Responses
Response 200 (Ok)
Response 403 (Forbidden)
37
MaterialUnit(s) are already loaded
38
Physical Vehicle Group already allocated
Response 404 (NotFound)
11
Physical Vehicle Group not found
Example
{
…
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
532/722
Notification
{
"notificationType": "ShipVehicleDeleted", 0.0.50.0
"resourceType": "ship",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-01-07T10:43:32.0149267+00:00",
"requestedBy": "owner"
},
"type": "vessel" | "barge",
"identifier": "identifierTest",
"name": "myName",
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
533/722
4.14. Mobile Container(s)
Get all from Transport
0.0.31.0
Retrieve list of mobile-container(s) allocated to a specific transport.
HTTP Request
GET /transport-api/v1/transports/{identifier}/mobile-containers 0.0.39.0
Request Parameters
name (string)
Responses
Response 200 (Ok)
{
[
{
identifier (string),
name (string),
siteIdentifier (string), 0.0.39.0
equipment : { 0.0.81.0
identifier (string),
vehicleName (string),
vehicleTypeIdentifier (string)
}
}
]
}
Response 404 (NotFound)
5
Transport not found
Example
{
[
{
"identifier": "ID000000",
"name": "ID000000",
"siteIdentifier": "KESSALE"
},
{
"identifier": "ID000001",
"name": "ID000001",
"siteIdentifier": "RAMET"
}
]
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
534/722
Get by identifier, name, or linked equiment
0.0.38.0
Retrieve mobile-container by name, identifier or linked equipment with load plan, loaded materials,
etc.
HTTP Request
GET /transport-api/v1/mobile-containers/name={name} 0.0.39.0
GET /transport-api/v1/mobile-containers/identifier={identifier}
GET /transport-api/v1/mobile-containers/equipment-identifier={equipmentIdentifier} 1.81.0
Request Parameters
name (string)
or
identifier (string)
or
equipmentIdentifier (string)
Responses
Response 200 (Ok)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
535/722
{
globalTransportIdentifier (string), deprecated 1.81.0
globalTransportType (string), deprecated 1.81.0
transport { 1.81.0
identifier (string),
state (string),
type (string) = [‘Shipment’, ‘Intrasite’],
owner (string)
},
type (string) = [‘trailer, ‘wagon’, ‘ship’, …] 1.81.0
identifier (string),
name (string),
currentState (string) = [‘ready’, ‘executing’,’executed’], 0.0.42.0
metadata (Json, optional), 0.0.43.0
siteIdentifier (string), 0.0.74.0
transportOwner (string), deprecated 1.81.0
equipmentIdentifier (string), 1.81
equipment : { 1.81
identifier (string),
vehicleName (string),
vehicleTypeIdentifier (string)
},
loadPlan: {
metadata (Json, optional), 0.0.43.0
toLoad: [{
material {
lmiContext (string),
lmiNumber (string),
materialGroup (string)
},
position {
cradleFrontToRearIndex (int, optional),
cradleLeftToRightIndex (int, optional),
level (int, optional),
orientation (string, optional) = [‘axisVertical’, ‘axisHorizontalCrosswise’,
‘axisHorizontalLengthwise’],
spireOrientation (string, optional) = [‘topToFront’, ‘bottomToFront’]
} (optional),
} (optional)
}],
toCheck: [{
lmiContext (string),
lmiNumber (string),
}],
checked: [{
lmiContext (string),
lmiNumber (string),
success (boolean, optional),
reason (string, optional),
comment (string, optional)
}],
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
536/722
loaded: [{
material {
lmiContext (string),
lmiNumber (string),
materialGroup (string)
},
actualPosition {
cradleFrontToRearIndex (int, optional),
cradleLeftToRightIndex (int, optional),
level (int, optional),
orientation (string, optional) = [‘axisVertical’, ‘axisHorizontalCrosswise’,
‘axisHorizontalLengthwise’],
spireOrientation (string, optional) = [‘topToFront’, ‘bottomToFront’]
} (optional),
} (optional),
expectedPosition {
cradleFrontToRearIndex (int, optional),
cradleLeftToRightIndex (int, optional),
level (int, optional),
orientation (string, optional) = [‘axisVertical’, ‘axisHorizontalCrosswise’,
‘axisHorizontalLengthwise’],
spireOrientation (string, optional) = [‘topToFront’, ‘bottomToFront’]
} (optional),
} (optional)
}],
impossibleToLoads: [{
lmiContext (string),
lmiNumber (string)
}],
toUnload: [{
lmiContext (string),
lmiNumber (string),
destinationLocationIdentifiers (string[]) 1.84.0
}] 1.65.0,
unloaded: [{
lmiContext (string),
lmiNumber (string)
}] 1.65.0
},
loadedMaterialUnits: [{
materialUnit {
lmiContext (string),
lmiNumber (string)
},
position {
cradleFrontToRearIndex (int, optional),
cradleLeftToRightIndex (int, optional),
level (int, optional),
orientation (string),
spireOrientation (string)
} (optional),
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
537/722
} (optional),
loadingDateTime (datetime),
metadata (Json, optional) 0.0.43.0,
siteIdentifier (string, optional) 0.0.67.0
}]
}
Response 200 (Ok)
Response 404 (NotFound)
Mobile Container not found
Example
{
"globalTransportIdentifier": "ID000000",
"equipmentIdentifier": null,
"identifier": "ID000000",
"name": "trailerID000000",
"siteIdentifier": "site1",
"equipmentIdentifier": null,
"equipment": null,
"loadPlan": {
"toLoad": [
{
"material": {
"lmiContext": "111",
"lmiNumber": "11",
"materialGroup": "1111"
},
"position": {
"cradleFrontToRearIndex": 1,
"cradleLeftToRightIndex": 1,
"level": 1,
"orientation": "axisVertical",
"spireOrientation": "topToFront"
}
},
…
],
"toCheck": [],
"loaded": [],
"materialUnitsImpossibleToLoad": [],
"toUnload": [],
"unloaded": []
},
"loadedMaterialUnits": []
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
538/722
Get for any transport state
1.81.0
Retrieve mobile-container by name with load plan, loaded materials, etc. for any transport state.
HTTP Request
GET /transport-api/v1/mobile-containers/name={name}/include-finished={includeFinished}
Request Parameters
name (string)
includeFinished (bool)
Responses
Response 200 (Ok)
Same as Get Mobile Container
Example
Same as Get Mobile Container
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
539/722
Load a material
•
0.0.44.0
This API is normally used to load MU on an existing MC. The MC is created when a vehicle is allocated
to a transport.
In case loading needs to be done on a vehicle that is not allocated yet, the MC does not exist.
However this API can still be used. In that case a non-allocated MC will be created automatically
before the loading is done.
HTTP Request
PUT /transport-api/v1/mobile-containers
/name={name}/materialunits/context={context}&number={number}
or
/identifier={identifier}/materialunits/context={context}&number={number}
Request Parameters
name (string)
or
identifier (string)
context (string)
number (string)
Request Body
{
…
materialUnit
{
position {
cradleFrontToRearIndex (int, optional),
cradleLeftToRightIndex (int, optional),
level (int, optional),
orientation (string, optional) = [‘axisVertical’, ‘axisHorizontalCrosswise’,
‘axisHorizontalLengthwise’],
spireOrientation (string, optional) = [‘topToFront’, ‘bottomToFront’]
} (optional),
} (optional),
loadingDateTime (datetime, optional),
metadata (Json, optional)
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
540/722
Responses
Response 200 (Ok)
Response 403 (Forbidden)
30
Location is more revent than requested one
51
Material not found
401
Operation not allowed. MobileContainer is cancelled 0.0.49.0
Response 404 (NotFound)
6
Mobile container ‘{0}’ not found
Example
{
…
"materialUnit": {
"position": {
"cradleFrontToRearIndex": 10,
"cradleLeftToRightIndex": 20,
"level": 1,
"orientation": "axisVertical",
"spireOrientation": "topToFront"
},
"loadingDateTime": "2020-10-13T09:26:19.134Z",
"metadata": {},
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
541/722
Notification(s)
If a previous material was already loaded on mobile container, a notification “Unloaded” is sent.
Example “Material unloaded”
{
"notificationType": "Unloaded"
"resourceType": "materialUnit",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-03-02T10:03:47.6621799+00:00",
"requestedBy": "owner"
},
"Id": {
"lmiContext": "context1",
"lmiNumber": "number1",
},
"unloadingDatetime": "2020-05-05T09:25:46.711Z",
"targetLocation": "site",
"mobileContainerIdentifier": "FB545GG",
"mobileContainerName": "wagonName1", 0.0.54.0
"transportIdentifier": "ID000000", 0.0.54.0
"transportType": "Shipment | Intrasite", 0.0.58.0
"siteIdentifier":"LIE",
"owner": "TMS" 0.0.54.0
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
542/722
Then, a notification “Loaded” is sent.
Example of material loaded
{
"notificationType": "Loaded"
"resourceType": "materialUnit",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-03-02T10:03:47.6621799+00:00",
"requestedBy": "owner"
},
"Id": {
"lmiContext": "context1",
"lmiNumber": "number1",
},
"loadedBy": "can be null",
"loadingDatetime": "2020-05-05T09:25:46.711Z",
"mobileContainerIdentifier": "FB545GG",
"mobileContainerName": "FB545GG",
"transportIdentifier": "ID000000", 0.0.54.0
"transportType": "Shipment | Intrasite", 0.0.58.0
"siteIdentifier":"LIE",
"owner": "TMS" 0.0.54.0
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
543/722
Example of Material moved
0.0.46.0
{
"notificationType": "Moved"
"resourceType": "materialUnit",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-03-02T10:03:47.6621799+00:00",
"requestedBy": "owner"
},
"Id": {
"lmiContext": "context1",
"lmiNumber": "number1",
},
"loadedBy": "can be null",
"loadingDatetime": "2020-05-05T09:25:46.711Z",
"mobileContainerIdentifier": "FB545GG",
"mobileContainerName": "FB545GG",
"transportIdentifier": "ID000000", 0.0.54.0
"transportType": "Shipment | Intrasite", 0.0.58.0
"owner": "TMS" 0.0.54.0
}
}
From the version 0.0.41.0, notifications ‘StartLoading’ and ‘EndLoading’ are sent respectively when:
-
the first material is loaded OR checked
-
the last material is loaded AND checked (if material(s) to check are requested)
The two notifications are sent once.
From the version 0.0.44.0, the notification LoadingFinished is sent when the last material is loaded.
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
544/722
Example “Start loading on trailer”
{
"notificationType": "LoadingStarted", 0.0.47.0
"resourceType": "mobileContainer", 0.0.47.0
"scope": "",
"sender": "",
"data": {
"type":"trailer", 0.0.47.0
"transportIdentifier":"ID000000",
"transportType": "Shipment | Intrasite", 0.0.58.0
"siteIdentifier":"LIE",
"owner":"TMS",
"mobileContainerIdentifier":"ID000000",
"mobileContainerName":"trailerID000000",
"loadingDateTime": "637334757518227496",
"originalRequestInfo":{
"requestedAt":"2020-08-19T12:31:08.7851972+02:00",
"requestedBy":"owner"
},
"context":{
"key":"value"
}
}
}
Example “Start loading on wagon”
{
"notificationType": "LoadingStarted", 0.0.47.0
"resourceType": "mobileContainer", 0.0.47.0
"scope": "",
"sender": "",
"data": {
"type":"wagon", 0.0.47.0
"transportIdentifier":"ID000000",
"transportType": "Shipment | Intrasite", 0.0.58.0
"siteIdentifier":"LIE",
"owner":"TMS",
"mobileContainerIdentifier":"ID000000",
"mobileContainerName":"wagonID000000",
"loadingDateTime": "637334757518227496",
"originalRequestInfo":{
"requestedAt":"2020-08-19T12:31:08.7851972+02:00",
"requestedBy":"owner"
},
"context":{
"key":"value"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
545/722
Example “End loading on trailer”
{
"notificationType": "LoadingEnded", 0.0.47.0
"resourceType": "mobileContainer", 0.0.47.0
"scope": "",
"sender": "",
"data": {
"type":"trailer", 0.0.47.0
"transportIdentifier":"ID000000",
"transportType": "Shipment | Intrasite", 0.0.58.0
"siteIdentifier":"LIE",
"owner":"TMS",
"mobileContainerIdentifier":"ID000000",
"mobileContainerName":"wagonID000000",
"loadingDateTime": "637334757518227496",
"originalRequestInfo":{
"requestedAt":"2020-08-19T12:31:08.7851972+02:00",
"requestedBy":"owner"
},
"context":{
"key":"value"
}
}
}
Example “End loading on wagon”
{
"notificationType": "LoadingEnded", 0.0.47.0
"resourceType": "mobileContainer", 0.0.47.0
"scope": "",
"sender": "",
"data": {
"type":"wagon", 0.0.47.0
"transportIdentifier":"ID000000",
"transportType": "Shipment | Intrasite", 0.0.58.0
"siteIdentifier":"LIE",
"owner":"TMS",
"mobileContainerIdentifier":"ID000000",
"mobileContainerName":"wagonID000000",
"loadingDateTime": "637334757518227496",
"originalRequestInfo":{
"requestedAt":"2020-08-19T12:31:08.7851972+02:00",
"requestedBy":"owner"
},
"context":{
"key":"value"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
546/722
Example when all materials are loaded on a Truck
{
"notificationType": "LoadingFinished",
"resourceType": "mobileContainer", 0.0.47.0
"scope": "",
"sender": "",
"data": {
"type":"trailer",
"transportIdentifier":"ID000000",
"transportType": "Shipment | Intrasite", 0.0.58.0
"siteIdentifier":"LIE",
"owner":"TMS",
"mobileContainerIdentifier":"ID000000",
"mobileContainerName":"trailerID000000",
"originalRequestInfo":{
"requestedAt":"2020-08-19T12:31:08.7851972+02:00",
"requestedBy":"owner"
},
"context":{
"key":"value"
}
}
}
Example when all materials are loaded on a Wagon
{
"notificationType": "LoadingFinished",
"resourceType": "mobileContainer", 0.0.47.0
"scope": "",
"sender": "",
"data": {
"type":"wagon",
"transportIdentifier":"ID000000",
"transportType": "Shipment | Intrasite", 0.0.58.0
"siteIdentifier":"LIE",
"owner":"TMS",
"mobileContainerIdentifier":"ID000000",
"mobileContainerName":"wagonID000000",
"originalRequestInfo":{
"requestedAt":"2020-08-19T12:31:08.7851972+02:00",
"requestedBy":"owner"
},
"context":{
"key":"value"
}
}
}
If a Transport is defined, a check weight is made depending on the state of mobile container and a
specific notification is sent (see 0.562).
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
547/722
0.0.44.0
Anomalies
See UnexpectedMuLoaded (AnomalyDetected)
See MuWithProblemLoaded
-
If Material is blocked: “AnomalyDetected”.
-
Else: “AnomalyFixed”
See
{
"ResourceType": "anomaly",
"NotificationType": "AnomalyFixed",
"Sender": "Artemis.Transport.Execution",
"Scope": null,
"Data": {
"anomalyId": "ef993d4a-230e-4625-8347-d0d02a8f6606",
"type": [ "impossibleToLoad" ],
"siteIdentifier": "LIE", 0.0.56.0
"reason": "reason",
"source": {
"parent": {
"parent": {
"id": "ID000001",
"businessEntityName": "Transport"
},
"id": "wagon1",
"businessEntityName": "Wagon"
},
"id": "11-11",
"businessEntityName": "MaterialUnit"
},
"originalRequestInfo": {
"requestedAt": "2021-01-07T14:48:34.2002645+01:00",
"requestedBy": "owner"
},
"context": {
"key": "value"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
548/722
MuLoadedOnWrongPosition
-
If Material is on wrong position: “AnomalyDetected”.
-
Else, if material position is updated and expected: “AnomalyFixed”
See
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
549/722
MuFinalCheckError
-
If one or more MaterialUnit(s) expected has checked result failed : “AnomalyDetected”
-
If these expected MaterialUnit(s) have checked result successful after: “AnomalyFixed”
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
550/722
Get loaded material(s)
0.0.44.0
HTTP Request
GET /transport-api/v1/mobile-containers/name={name}/materialunits
GET /transport-api/v1/mobile-containers/identifier={identifier}/materialunits
Request Parameters
name (string)
or
identifier (string)
Request Body
[
{
materialUnit
{
lmiContext (string, optional),
lmiNumber (string, optional),
weight (int, optional), 0.0.54.0
},
position {
cradleFrontToRearIndex (int, optional),
cradleLeftToRightIndex (int, optional),
level (int, optional),
orientation (string, optional) = [‘axisVertical’, ‘axisHorizontalCrosswise’,
‘axisHorizontalLengthwise’],
spireOrientation (string, optional) = [‘topToFront’, ‘bottomToFront’]
} (optional),
} (optional),
loadingDateTime (datetime, optional),
metadata (Json, optional) 0.0.43.0,
siteIdentifier (string, optional) 0.0.67.0
},
…
]
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
551/722
Responses
Response 200 (Ok)
Example
[
{
"materialUnit": {
"lmiContext": "LIE",
"lmiNumber": "ID000000",
"weight": 5000
},
"position": {
"cradleFrontToRearIndex": 10,
"cradleLeftToRightIndex": 20,
"level": 1,
"orientation": "axisVertical",
"spireOrientation": "topToFront"
},
"loadingDateTime": "2020-10-13T09:26:19.134Z",
"metadata": {},
"siteIdentifier": "LIE"
},
…
]
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
552/722
Save snapshot
0.0.37.0
HTTP Request
POST /transport-api/v1/mobile-containers/name={name}/snapshots 0.0.39.0
POST /transport-api/v1/mobile-containers/identifier={identifier}/snapshots 0.0.39.0
Request Parameters
name (string)
or
identifier (string)
Request Body
{
…
datetime (datetime),
defaultUnloadLocation (string),
metadata (Json, optional), 0.0.43.0
materials [
{
lmiContext (string),
lmiNumber (string),
position {
cradleFrontToRearIndex (int, optional),
cradleLeftToRightIndex (int, optional),
level (int, optional),
orientation (string, optional) = [‘axisVertical’, ‘axisHorizontalCrosswise’,
‘axisHorizontalLengthwise’],
spireOrientation (string, optional) = [‘topToFront’, ‘bottomToFront’]
} (optional),
} (optional),
loadingDateTime (datetime, optional),
loadedBy (string, optional),
metadata (Json, optional),
siteIdentifier (string, optional), 0.0.67.0
}
]
}
datetime (datetime)
Snapshot datetime
defaultUnloadLocation (string)
Default unload warehouse location (ex: Site) where material(s) are unloaded if necessary.
material
o lmiContext (string)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
553/722
LMIContext of Material Unit
o
lmiNumber (string)
LMINumber of Material Unit
o
position (optional)
cradleFrontToRearIndex (uint, optional)
>= 1 that indicates the cradle index from the front to the back of the mobile
container (in the move direction).
When laying on front cradle, CradleFrontToRearIndex is equal to 1. After,
CradleFrontToRearIndex is increased 1 by 1.
cradleLeftToRightIndex (uint, optional)
>= 1 that indicates the cradle index from the left to the right of the mobile
container (in the move direction).
When laying on left cradle, CradleLeftToRightIndex is equal to 1. After,
CradleLeftToRightIndex is increased 1 by 1.
level (uint, optional)
>= 1 that indicates the level at which the material is in the mobile container.
When laying on mobile container ‘floor’, Level is equal to 1. Higher, Level is
increased 1 by 1.
orientation (string, optional)
Indicates the orientation of the material (depending to the type of product)
on the mobile container relatively to the move direction.
spireOrientation (string, optional)
Indicates the orientation of the material (depending to the type of product)
on the mobile container relatively to the move direction.
o
loadingDateTime (datetime, optional)
o
loadedBy (string, optional)
o
siteIdentifier (string, optional)
Especially useful for mutil sites use case.
Indicates the site where the material has been loaded. If not specified on new loaded
material the current site identifier is used (from the Transport-Location-Id http
header). When not specified on already loaded material the existing value will stay the
same. When specified, the new value will be used for new loaded materials and will
replace the site identifier on existing ones.
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
554/722
Responses
Response 200 (Ok)
Response 403 (Forbidden)
312
This snapshot contains material unit(s) with location more recent
51
Material(s) not found 0.0.42.0
47
Truck ‘{0}’ not allocated 0.0.57.0
48
Wagon ‘{0}’ not allocated 0.0.57.0
56
Ship ‘{0}’ not allocated 0.0.57.0
401
Operation not allowed. MobileContainer is cancelled. 0.0.49.0
Response 400 (BadRequest)
311
This snapshot contains material units duplicated. Affected MU : {0}
28
Default Unloading Location {0} does not exist
Response 404 (NotFound)
Physical Vehicle not found
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
555/722
Example
{
…
"datetime": "2020-05-05T09:25:46.711Z",
"defaultUnloadLocation": "Site1",
"materials": [
{
"lmiContext": "11",
"lmiNumber": "22",
"position": {
"cradleFrontToRearIndex": 1,
"cradleLeftToRightIndex": 1,
"level": 1,
"orientation": "axisVertical",
"spireOrientation": "topToFront"
},
"loadingDateTime": null
"loadedBy": null,
},
{
"lmiContext": "22",
"lmiNumber": "22",
"position": {
"cradleFrontToRearIndex": 0,
"cradleLeftToRightIndex": 0,
"level": 0,
"orientation": "axisHorizontalCrosswise",
"spireOrientation": "bottomToFront"
},
"loadingDateTime": "2020-05-05T09:25:46.711Z",
"loadedBy": null
}
]
}
Notification(s)
For each MaterialUnit, a notification “Loaded” or “Unloaded” is sent.
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
556/722
Example Loaded notification
{
"notificationType": "Loaded"
"resourceType": "materialUnit",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-03-02T10:03:47.6621799+00:00",
"requestedBy": "owner"
},
"Id": {
"lmiContext": "context1",
"lmiNumber": "number1",
},
"loadedBy": "can be null",
"loadingDatetime": "2020-05-05T09:25:46.711Z",
"mobileContainerIdentifier": "FB545GG",
"mobileContainerName": "FB545GG",
"transportIdentifier": "ID000000", 0.0.54.0
"transportType": "Shipment | Intrasite", 0.0.58.0
"siteIdentifier":"LIE",
"owner": "TMS" 0.0.54.0
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
557/722
Example unloaded notification
{
"notificationType": "Unloaded"
"resourceType": "materialUnit",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-03-02T10:03:47.6621799+00:00",
"requestedBy": "owner"
},
"Id": {
"lmiContext": "context1",
"lmiNumber": "number1",
},
"unloadingDatetime": "2020-05-05T09:25:46.711Z",
"targetLocation": "site",
"mobileContainerIdentifier": "FB545GG",
"mobileContainerName": "wagonName1", 0.0.54.0
"transportIdentifier": "ID000000", 0.0.54.0
"transportType": "Shipment | Intrasite", 0.0.58.0
"siteIdentifier":"LIE",
"owner": "TMS" 0.0.54.0
}
}
Example of Moved notification
0.0.46.0
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
558/722
{
"notificationType": "Moved"
"resourceType": "materialUnit",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-03-02T10:03:47.6621799+00:00",
"requestedBy": "owner"
},
"Id": {
"lmiContext": "context1",
"lmiNumber": "number1",
},
"loadedBy": "can be null",
"loadingDatetime": "2020-05-05T09:25:46.711Z",
"mobileContainerIdentifier": "FB545GG",
"mobileContainerName": "FB545GG",
"transportIdentifier": "ID000000", 0.0.54.0
"transportType": "Shipment | Intrasite", 0.0.58.0
"owner": "TMS" 0.0.54.0
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
559/722
Example notification when all materials are loaded
{
"notificationType": "LoadingFinished",
"resourceType": "mobileContainer", 0.0.47.0
"scope": "",
"sender": "",
"data": {
"type":"trailer", 0.0.47.0
"transportIdentifier":"ID000000",
"transportType": "Shipment | Intrasite", 0.0.58.0
"siteIdentifier":"LIE",
"owner":"TMS",
"mobileContainerIdentifier":"ID000000",
"mobileContainerName":"trailerID000000",
"originalRequestInfo":{
"requestedAt":"2020-08-19T12:31:08.7851972+02:00",
"requestedBy":"owner"
},
"context":{
"key":"value"
}
}
}
If a Transport is defined, a check weight is made depending on the state of mobile container and a
specific notification is sent (see 0.562).
0.0.44.0
Anomalies
See 0.562 UnexpectedMuLoaded (AnomalyDetected)
See 0.562 MuWithProblemLoaded
-
If Material is blocked: “AnomalyDetected”.
-
Else: “AnomalyFixed”
See 0
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
560/722
{
"ResourceType": "anomaly",
"NotificationType": "AnomalyFixed",
"Sender": "Artemis.Transport.Execution",
"Scope": null,
"Data": {
"anomalyId": "ef993d4a-230e-4625-8347-d0d02a8f6606",
"type": [ "impossibleToLoad" ],
"siteIdentifier": "LIE", 0.0.56.0
"reason": "reason",
"source": {
"parent": {
"parent": {
"id": "ID000001",
"businessEntityName": "Transport"
},
"id": "wagon1",
"businessEntityName": "Wagon"
},
"id": "11-11",
"businessEntityName": "MaterialUnit"
},
"originalRequestInfo": {
"requestedAt": "2021-01-07T14:48:34.2002645+01:00",
"requestedBy": "owner"
},
"context": {
"key": "value"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
561/722
MuLoadedOnWrongPosition (AnomalyDetected)
See
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
562/722
MuFinalCheckError
-
If one or more MaterialUnit(s) expected has checked result failed : “AnomalyDetected”
-
If these expected MaterialUnit(s) have checked result successful after: “AnomalyFixed”
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
563/722
Save load plan
0.0.38.0
Allows to create or update a loading plan for a mobile container. If a previous load plan exists, it will
be replaced by new one.
HTTP Request
PUT /transport-api/v1/mobile-containers/name={name}/load-plan 0.0.39.0
PUT /transport-api/v1/mobile-containers/identifier={identifier}/load-plan 0.0.39.0
Request Parameters
name (string)
or
identifier (string)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
564/722
Request Body
{
…
toLoad: [
{
materialUnit {
lmiContext (string),
lmiNumber (string),
materialGroup (string)
}
position {
cradleFrontToRearIndex (int, optional),
cradleLeftToRightIndex (int, optional),
level (int, optional),
orientation (string) = [‘axisVertical’, ‘axisHorizontalCrosswise’, ‘axisHorizontalLengthwise’],
spireOrientation (string) = [‘topToFront’, ‘bottomToFront’]
} (optional),
} (optional),
}
],
toCheck: [
{
lmiContext (string),
lmiNumber (string)
}
],
toUnload: [ 0.0.65.0
{
lmiContext (string),
lmiNumber (string),
destinationLocationIdentifiers (string[], optional) 1.84.0
}
],
metadata (Json, optional) 0.0.43.0
}
•
toLoad
List of MaterialUnit(s) to load
o
materialUnit
lmiContext (string)
LMIContext of Material Unit
lmiNumber (string)
LMINumber of Material Unit
o
position (optional)
cradleFrontToRearIndex (uint, optional)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
565/722
>= 1 that indicates the cradle index from the front to the back of the
mobile container (in the move direction).
When laying on front cradle, CradleFrontToRearIndex is equal to 1. After,
CradleFrontToRearIndex is increased 1 by 1.
cradleLeftToRightIndex (uint, optional)
>= 1 that indicates the cradle index from the left to the right of the mobile
container (in the move direction).
When laying on left cradle, CradleLeftToRightIndex is equal to 1. After,
CradleLeftToRightIndex is increased 1 by 1.
level (uint, optional)
>= 1 that indicates the level at which the material is in the mobile
container.
When laying on mobile container ‘floor’, Level is equal to 1. Higher, Level
is increased 1 by 1.
orientation (string)
Indicates the orientation of the material (depending to the type of
product) on the mobile container relatively to the move direction.
spireOrientation (string)
Indicates the orientation of the material (depending to the type of
product) on the mobile container relatively to the move direction.
o
•
materialGroup (string)
toCheck
List of MaterialUnit(s) to check
o lmiContext (string)
LMIContext of Material Unit
o lmiNumber (string)
LMINumber of Material Unit
•
toUnload
List of MaterialUnit(s) to unload
o lmiContext (string)
LMIContext of Material Unit
o lmiNumber (string)
LMINumber of Material Unit
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
566/722
Responses
Response 200 (Ok)
Response 201 (Created)
Response 403 (Forbidden)
50
Material(s) marked for deletion
51
Material(s) not found
47
Truck ‘{0}’ not allocated
48
Wagon ‘{0}’ not allocated
56
Ship ‘{0}’ not allocated
273
Operation is forbidden because mobile container is not allocated
296
Operation cannot be performed because load plan does not contain this material
unit to load. Affected MU : {0}
401
Operation not allowed. MobileContainer is cancelled.
0.0.49.0
Response 400 (BadRequest)
282
This load plan contains material units previously flagged as 'ImpossibleToLoad'.
0.0.48.0
Affected MU : {0}
283
Cannot save load plan with no material units
284
This load plan contains material units already selected in another transport.
0.0.48.0
Affected MU : {0}
286
The material group of this material unit in the ToLoad list doesn't match with the
0.0.63.0
one in the ToCheck list. MU source : {0}
281
This load plan contains material units already selected in the current Transport.
Affected MU : {0}
Response 404 (NotFound)
6
Physical Vehicle not found
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
567/722
Example
{
…
"toLoad": [
{
"materialUnit": {
"lmiContext": "LIE",
"lmiNumber": "ID000000",
"materialGroup": "string"
},
"position": {
"cradleFrontToRearIndex": 1,
"cradleLeftToRightIndex": 1,
"level": 1,
"orientation": "axisVertical",
"spireOrientation": "topToFront"
}
}
],
"toCheck": [
{
"lmiContext": "LIE",
"lmiNumber": " ID000000"
}
],
"toUnload": [
{
"lmiContext": "LIE",
"lmiNumber": " ID000001",
"destinationIdentifiers": ["ID000001", … ]
}
],
"metadata": {
"test1”: "test1”,
"test2”: "test2”,
}
}
Notification(s)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
568/722
{
"notificationType": "LoadPlanCreated"
"resourceType": "mobileContainer",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-06-17T13:28:26.6632415+00:00",
"requestedBy": "owner"
},
"mobileContainerIdentifier": "ID000000",
"mobileContainerName": "trailerID000000",
"transportIdentifier": "ID000000",
"transportType": "Shipment | Intrasite", 0.0.58.0
"loadPlan": 0.0.47.0
{
"toLoad": [{"lmiContext": "LIE", "lmiNumber": "ID000000"}, …],
"toCheck": [{"lmiContext": "LIE", "lmiNumber": "ID000000"}, …],
"toUnload": [{"lmiContext": "LIE", "lmiNumber": "ID000001", "destinationIdentifiers":
["ID000001", … ]}, …] 1.84.0
}
}
}
Or
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
569/722
{
"notificationType": "LoadPlanUpdated"
"resourceType": "mobileContainer",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-06-17T13:28:26.6632415+00:00",
"requestedBy": "owner"
},
"mobileContainerIdentifier": "ID000000",
"mobileContainerName": "trailerID000000"
"transportIdentifier": "ID000000",
"transportType": "Shipment | Intrasite", 0.0.58.0
"loadPlan": 0.0.47.0
{
"toLoad": [{"lmiContext": "LIE", "lmiNumber": "ID000000"}, …],
"toCheck": [{"lmiContext": "LIE", "lmiNumber": "ID000000"}, …],
"toUnload": [{"lmiContext": "LIE", "lmiNumber": "ID000001", "destinationIdentifiers":
["ID000001", … ]}, …] 1.84.0
}
}
}
When LoadPlan is created or updated (and a Transport is defined), a check weight (GVWR, etc.) is
called depending on the state of mobile container and a specific notification is sent (see 0.562).
0.0.48.0
Anomalies
See UnexpectedMuLoaded (AnomalyDetected or AnomalyFixed)
See ImpossibleToLoad (AnomalyDetected)
See Error! Reference source not found.
-
If materialUnit(s) are duplicated in multiple transport: “AnomalyCreated”
-
Else, “AnomalyFixed”
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
570/722
Add material(s) to load in load plan
0.0.48.0
Allows to add material(s) to load in a loading plan for a mobile container.
HTTP Request
POST /transport-api/v1/mobile-containers/name={name}/load-plan/loading/material-units
POST /transport-api/v1/mobile-containers/identifier={identifier}/load-plan/loading/material-units
Request Parameters
name (string)
or
identifier (string)
Request Body
{
…
materials: [
{
materialUnit {
lmiContext (string),
lmiNumber (string),
materialGroup (string)
},
position {
cradleFrontToRearIndex (int, optional),
cradleLeftToRightIndex (int, optional),
level (int, optional),
orientation (string) = [‘axisVertical’, ‘axisHorizontalCrosswise’, ‘axisHorizontalLengthwise’],
spireOrientation (string) = [‘topToFront’, ‘bottomToFront’]
} (optional)
}
}, …
]
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
571/722
Responses
Response 200 (Ok)
Response 201 (Created)
Response 403 (Forbidden)
50
Material(s) marked for deletion
51
Material(s) not found
47
Truck ‘{0}’ not allocated
48
Wagon ‘{0}’ not allocated
56
Ship ‘{0}’ not allocated
273
Operation is forbidden because mobile container is not allocated
290
Load plan does not exist on this mobile container
Response 400 (BadRequest)
283
Cannot save load plan with no material units
286
The material group of this material unit in the ToLoad list doesn't match with the
one in the ToCheck list. MU source : {0}
281
This load plan contains material units already selected in the current Transport.
Affected MU : {0}
Response 404 (NotFound)
6
Physical Vehicle not found
301
Operation cannot be performed because mobile container has not been found
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
572/722
Example
{
…
"materials": [
{
"materialUnit": {
"lmiContext": "LIE",
"lmiNumber": "ID000000",
"materialGroup": "string"
},
"position": {
"cradleFrontToRearIndex": 1,
"cradleLeftToRightIndex": 1,
"level": 1,
"orientation": "axisVertical",
"spireOrientation": "topToFront"
}
}
]
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
573/722
Notification(s)
{
"notificationType": "LoadPlanUpdated"
"resourceType": "mobileContainer",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-06-17T13:28:26.6632415+00:00",
"requestedBy": "owner"
},
"mobileContainerIdentifier": "ID000000",
"mobileContainerName": "trailerID000000",
"transportIdentifier": "ID000000",
"transportType": "Shipment | Intrasite", 0.0.58.0
"loadPlan":
{
"toLoad": [{"lmiContext": "LIE", "lmiNumber": "ID000000"}, …],
"toCheck": […],
"toUnload": […] 1.65.0
}
}
}
When LoadPlan is updated (and a Transport is defined), a check weight (GVWR, etc.) is called
depending on the state of mobile container and a specific notification is sent (see 0.562).
Anomalies
See UnexpectedMuLoaded (AnomalyFixed)
See ImpossibleToLoad (AnomalyDetected)
See Error! Reference source not found.
-
If materialUnit(s) are duplicated in multiple transport: “AnomalyCreated”
-
Else, “AnomalyFixed”
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
574/722
Add material(s) to check in load plan
0.0.48.0
Allows to add material(s) to check in a loading plan for a mobile container.
HTTP Request
POST /transport-api/v1/mobile-containers/name={name}/load-plan/checking/material-units
POST /transport-api/v1/mobile-containers/identifier={identifier}/load-plan/checking/materialunits
Request Parameters
name (string)
or
identifier (string)
Request Body
{
…
materials: [
{
lmiContext (string),
lmiNumber (string)
}, …
]
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
575/722
Responses
Response 200 (Ok)
Response 201 (Created)
Response 403 (Forbidden)
50
Material(s) marked for deletion
51
Material(s) not found
47
Truck ‘{0}’ not allocated
48
Wagon ‘{0}’ not allocated
56
Ship ‘{0}’ not allocated
273
Operation is forbidden because mobile container is not allocated
290
Load plan does not exist on this mobile container
296
Operation cannot be performed because load plan does not contain this material
unit to load. Affected MU : {0}
Response 400 (BadRequest)
283
Cannot save load plan with no material units
286
The material group of this material unit in the ToLoad list doesn't match with the
one in the ToCheck list. MU source : {0}
281
This load plan contains material units already selected in the current Transport.
Affected MU : {0}
Response 404 (NotFound)
6
Physical Vehicle not found
301
Operation cannot be performed because mobile container has not been found
Example
{
…
"materials": [
{
"lmiContext": "LIE",
"lmiNumber": "ID000000"
}, …
]
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
576/722
Notification(s)
{
"notificationType": "LoadPlanUpdated"
"resourceType": "mobileContainer",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-06-17T13:28:26.6632415+00:00",
"requestedBy": "owner"
},
"mobileContainerIdentifier": "ID000000",
"mobileContainerName": "trailerID000000",
"transportIdentifier": "ID000000",
"transportType": "Shipment | Intrasite", 0.0.58.0
"loadPlan":
{
"toLoad": […],
"toCheck": [{"lmiContext": "LIE", "lmiNumber": "ID000000"}, …],
"toUnload": […] 1.65.0
}
}
}
When LoadPlan is updated (and a Transport is defined), a check weight (GVWR, etc.) is called
depending on the state of mobile container and a specific notification is sent (see 0.562).
Anomalies
See UnexpectedMuLoaded (AnomalyFixed)
See ImpossibleToLoad (AnomalyDetected)
See Error! Reference source not found.
-
If materialUnit(s) are duplicated in multiple transport: “AnomalyCreated”
-
Else, “AnomalyFixed”
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
577/722
Add material(s) to unload in load plan
1.65.0
Allows to add material(s) to unload in a loading plan for a mobile container.
HTTP Request
POST /transport-api/v1/mobile-containers/name={name}/load-plan/unloading/material-units
POST /transport-api/v1/mobile-containers/identifier={identifier}/load-plan/unloading/materialunits
Request Parameters
name (string)
or
identifier (string)
Request Body
{
…
materials: [
{
lmiContext (string),
lmiNumber (string),
destinationLocationIdentifiers (string[], optional) 1.84.0
}, …
]
}
Responses
Response 200 (Ok)
Response 201 (Created)
Response 403 (Forbidden)
50
Material(s) marked for deletion
51
Material(s) not found
47
Truck ‘{0}’ not allocated
48
Wagon ‘{0}’ not allocated
56
Ship ‘{0}’ not allocated
273
Operation is forbidden because mobile container is not allocated
290
Load plan does not exist on this mobile container
Response 400 (BadRequest)
283
Cannot save load plan with no material units
281
This load plan contains material units already selected in the current Transport.
Affected MU : {0}
Response 404 (NotFound)
6
Physical Vehicle not found
301
Operation cannot be performed because mobile container has not been found
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
578/722
Example
{
…
"materials": [
{
"lmiContext": "LIE",
"lmiNumber": "ID000000",
"destinationLocationIdentifiers" : null
}
]
}
Notification(s)
{
"notificationType": "LoadPlanUpdated"
"resourceType": "mobileContainer",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-06-17T13:28:26.6632415+00:00",
"requestedBy": "owner"
},
"mobileContainerIdentifier": "ID000000",
"mobileContainerName": "trailerID000000",
"transportIdentifier": "ID000000",
"transportType": "Shipment | Intrasite",
"loadPlan":
{
"toLoad": […],
"toCheck": […],
"toUnload": [{"lmiContext": "LIE", "lmiNumber": "ID000000",
"destinationLocationIdentifiers" : null
}, …]
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
579/722
Remove material(s) to load from load plan
0.0.48.0
Allows to remove material(s) to load from a loading plan for a mobile container.
HTTP Request
DELETE /transport-api/v1/mobile-containers/name={name}/load-plan/loading/material-units
DELETE /transport-api/v1/mobile-containers/identifier={identifier}/load-plan/loading/materialunits
Request Parameters
name (string)
or
identifier (string)
Request Body
{
…
materials: [
{
lmiContext (string),
lmiNumber (string)
}, …
]
}
Responses
Response 200 (Ok)
Response 204 (NoContent)
287
This mobile container does not have a load plan yet
Response 403 (Forbidden)
47
Truck ‘{0}’ not allocated
48
Wagon ‘{0}’ not allocated
56
Ship ‘{0}’ not allocated
Response 404 (NotFound)
6
Physical Vehicle not found
301
Operation cannot be performed because mobile container has not been found
288
Operation cannot be performed because load plan does not contain this material
unit to load. Affected MU: {0}
Response 400 (BadRequest)
283
Cannot save load plan with no material units
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
580/722
Notification(s)
{
"notificationType": "LoadPlanUpdated"
"resourceType": "mobileContainer",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-06-17T13:28:26.6632415+00:00",
"requestedBy": "owner"
},
"mobileContainerIdentifier": "ID000000",
"mobileContainerName": "trailerID000000",
"transportIdentifier": "ID000000",
"transportType": "Shipment | Intrasite", 0.0.58.0
"loadPlan":
{
"toLoad": [{"lmiContext": "LIE", "lmiNumber": "ID000000"}, , …]
"toCheck": […],
"toUnload": […] 1.65.0
}
}
}
Or
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
581/722
{
"notificationType": "LoadPlanRemoved"
"resourceType": "mobileContainer",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-06-17T13:28:26.6632415+00:00",
"requestedBy": "owner"
},
"mobileContainerIdentifier": "ID000000",
"mobileContainerName": "trailerID000000",
"transportIdentifier": "ID000000",
"transportType": "Shipment | Intrasite", 0.0.58.0
"loadPlan":
[{
"toLoad": [{"lmiContext": "LIE", "lmiNumber": "ID000000"}, …],
"toCheck": […],
"toUnload": []
}]
}
}
Anomalies
See UnexpectedMuLoaded (AnomalyDetected)
See ImpossibleToLoad (AnomalyDetected)
See Error! Reference source not found.
-
If materialUnit(s) are duplicated in multiple transport: “AnomalyCreated”
-
Else, “AnomalyFixed”
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
582/722
Remove material(s) to check from load plan
0.0.48.0
Allows to remove material(s) to check from a loading plan for a mobile container.
HTTP Request
DELETE /transport-api/v1/mobile-containers/name={name}/load-plan/checking/material-units
DELETE /transport-api/v1/mobile-containers/identifier={identifier}/load-plan/checking/materialunits
Request Parameters
name (string)
or
identifier (string)
Request Body
{
…
materials: [
{
lmiContext (string),
lmiNumber (string)
}, …
]
}
Responses
Response 200 (Ok)
Response 204 (NoContent)
287
This mobile container does not have a load plan yet
Response 403 (Forbidden)
47
Truck ‘{0}’ not allocated
48
Wagon ‘{0}’ not allocated
56
Ship ‘{0}’ not allocated
Response 404 (NotFound)
6
Physical Vehicle not found
301
Operation cannot be performed because mobile container has not been found
289
Operation cannot be performed because load plan does not contain this material
unit to check. Affected MU: {0}
Response 400 (BadRequest)
283
Cannot save load plan with no material units
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
583/722
Notification(s)
{
"notificationType": "LoadPlanUpdated"
"resourceType": "mobileContainer",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-06-17T13:28:26.6632415+00:00",
"requestedBy": "owner"
},
"mobileContainerIdentifier": "ID000000",
"mobileContainerName": "trailerID000000",
"transportIdentifier": "ID000000",
"transportType": "Shipment | Intrasite", 0.0.58.0
"loadPlan":
[{
"toLoad": […],
"toCheck": [{"lmiContext": "LIE", "lmiNumber": "ID000000"}, …],
"toUnload": […] 1.65.0
}]
}
}
Anomalies
See UnexpectedMuLoaded (AnomalyDetected)
See ImpossibleToLoad (AnomalyDetected)
See Error! Reference source not found.
-
If materialUnit(s) are duplicated in multiple transport: “AnomalyCreated”
-
Else, “AnomalyFixed”
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
584/722
Remove material(s) to unload from load plan
1.65.0
Allows to remove material(s) to unload from a loading plan for a mobile container.
HTTP Request
DELETE /transport-api/v1/mobile-containers/name={name}/load-plan/unloading/material-units
DELETE /transport-api/v1/mobile-containers/identifier={identifier}/load-plan/unloading/materialunits
Request Parameters
name (string)
or
identifier (string)
Request Body
{
…
materials: [
{
lmiContext (string),
lmiNumber (string)
}, …
]
}
Responses
Response 200 (Ok)
Response 204 (NoContent)
287
This mobile container does not have a load plan yet
Response 403 (Forbidden)
47
Truck ‘{0}’ not allocated
48
Wagon ‘{0}’ not allocated
56
Ship ‘{0}’ not allocated
Response 404 (NotFound)
6
Physical Vehicle not found
301
Operation cannot be performed because mobile container has not been found
297
Operation cannot be performed because load plan does not contain this material
unit to unload. Affected MU: {0}
Response 400 (BadRequest)
283
Cannot save load plan with no material units
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
585/722
Notification(s)
{
"notificationType": "LoadPlanUpdated"
"resourceType": "mobileContainer",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-06-17T13:28:26.6632415+00:00",
"requestedBy": "owner"
},
"mobileContainerIdentifier": "ID000000",
"mobileContainerName": "trailerID000000",
"transportIdentifier": "ID000000",
"transportType": "Shipment | Intrasite", 0.0.58.0
"loadPlan":
{
"toLoad": […],
"toCheck": […],
"toUnload": [{"lmiContext": "LIE", "lmiNumber": "ID000000"}, , …]
}
}
}
Or
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
586/722
{
"notificationType": "LoadPlanRemoved"
"resourceType": "mobileContainer",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-06-17T13:28:26.6632415+00:00",
"requestedBy": "owner"
},
"mobileContainerIdentifier": "ID000000",
"mobileContainerName": "trailerID000000",
"transportIdentifier": "ID000000",
"transportType": "Shipment | Intrasite", 0.0.58.0
"loadPlan":
[{
"toLoad": [],
"toCheck": [],
"toUnload": [{"lmiContext": "LIE", "lmiNumber": "ID000000"}, …],
}]
}
}
Deallocate from Transport
0.0.44.0
Allows to deallocate a mobile container (trailer or wagon) from a Transport.
PS: if the mobile container is a trailer, and is the single trailer on truck, all truck is deallocated.
HTTP Request
DELETE /transport-api/v1/mobile-containers/name={name}/transportdeallocationrequest
DELETE /transport-api/v1/mobile-containers/identifier={identifier}/transportdeallocationrequest
Request Parameters
name (string)
or
identifier (string)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
587/722
Request Body
{
…
}
Responses
Response 204 (NoContent)
Response 403 (Forbidden)
47
Truck ‘{0}’ not allocated
48
Wagon ‘{0}’ not allocated
56
Ship ‘{0}’ not allocated
Response 404 (NotFound)
6
Physical vehicle not found
11
Mobile container parent not found
42
Transport on site not found
Example
{
…
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
588/722
Notification(s)
Ex: Deallocate a Truck
{
"notificationType": "EventRaised"
"resourceType": "transport",
"scope": "",
"sender": "Artemis.Transport.Execution",
"data": {
"eventType": "deallocation",
"identifier": "ID000000",
"name": "T0",
"originalRequestInfo": {
"requestedAt": "2020-10-15T11:49:38.0098233+02:00",
"requestedBy": "owner"
},
"context": {
"key": "value"
}
}
}
0.0.58.0
{
"notificationType": "VehicleDeallocated"
"resourceType": "wagon | ship",
"scope": "",
"sender": "Artemis.Transport.Execution",
"data": {
"transportIdentifier": "ID000000",
"transportType": "Shipment | Intrasite",
"siteIdentifier": "LIE",
"owner": "TMS",
"identifier": "ID000000",
"name": "T0",
"lastVehicle": true | false,
"originalRequestInfo": {
"requestedAt": "2020-10-15T11:49:38.0098233+02:00",
"requestedBy": "owner"
},
"context": {
"key": "value"
}
}
}
or
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
589/722
0.0.58.0
{
"notificationType": "VehicleDeallocated"
"resourceType": "truck",
"scope": "",
"sender": "Artemis.Transport.Execution",
"data": {
"transportIdentifier": "ID000000",
"transportType": "Shipment | Intrasite",
"siteIdentifier": "LIE",
"owner": "TMS",
"identifier": "ID000000",
"name": "T0",
"trailers": [
{
"name": "trailerID000000",
"identifier": "ID000000"
},
"lastVehicle": true | false,
"originalRequestInfo": {
"requestedAt": "2020-10-15T11:49:38.0098233+02:00",
"requestedBy": "owner"
},
"context": {
"key": "value"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
590/722
Ex: Deallocate a Trailer
{
"notificationType": "EventRaised"
"resourceType": "transport",
"scope": "",
"sender": "Artemis.Transport.Execution",
"data": {
"eventType": "deallocation",
"identifier": "ID000000",
"name": "trailerID000000",
"originalRequestInfo": {
"requestedAt": "2020-10-15T11:51:48.8346915+02:00",
"requestedBy": "owner"
},
"context": {
"key": "value"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
591/722
Save list of checked material(s)
0.0.41.0
Allows to create or update a list of material(s) – present in load plan to check – that are checked on a
mobile container. If previous list of checked material(s) was present, this method replaces the old list
of checked material(s).
HTTP Request
PUT /transport-api/v1/mobile-containers/name={name}/load-plan/checked
PUT /transport-api/v1/mobile-containers/identifier={identifier}/load-plan/checked
Request Parameters
name (string)
or
identifier (string)
Request Body
{
…
checkedMaterialUnits: [
{
lmiContext (string),
lmiNumber (string),
success (boolean),
reason (string, optional),
comment (string, optional)
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
592/722
Responses
Response 200 (Ok)
Response 201 (Created)
Response 204 (NoContent)
287
This mobile container does not have a load plan yet
Response 400 (BadRequest)
Response 403 (Forbidden)
47
Truck ‘{0}’ not allocated
48
Wagon ‘{0}’ not allocated
56
Ship ‘{0}’ not allocated
Response 404 (NotFound)
Physical vehicle not found
Example
{
…
"checkedMaterialUnits": [
{
"lmiContext": "LIE",
"lmiNumber": "ID000000",
"success": true
},
{
"lmiContext": "LIE",
"lmiNumber": "ID000001",
"success": false,
"reason": "reason…",
"comment": "comment…"
},
…
]
}
Notification(s) per material
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
593/722
{
"notificationType": "Checked"
"resourceType": "materialUnit",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-08-20T05:55:50.7595674+00:00",
"requestedBy": "owner"
},
"id": {
"lmiContext": "LIE",
"lmiNumber": "ID000000"
},
"success": false,
"reason": "reason",
"comment": "comment",
"mobileContainerIdentifier": "wagon1",
"mobileContainerName": "wagonName1", 0.0.54.0
"transportIdentifier": "ID000000", 0.0.54.0
"transportType": "Shipment | Intrasite", 0.0.58.0
"owner": "TMS" 0.0.54.0
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
594/722
Notification when all materials are checked
Example 1
{
"notificationType": "CheckingFinished",
"resourceType": "mobileContainer", 0.0.47.0
"scope": "",
"sender": "",
"data": {
"type":"trailer", 0.0.47.0
"transportIdentifier":"ID000000",
"transportType": "Shipment | Intrasite", 0.0.58.0
"siteIdentifier":"LIE",
"owner":"TMS",
"mobileContainerIdentifier":"ID000000",
"mobileContainerName":"trailerID000000",
"originalRequestInfo":{
"requestedAt":"2020-08-19T12:31:08.7851972+02:00",
"requestedBy":"owner"
},
"context":{
"key":"value"
}
}
}
Example 2
{
"notificationType": "CheckingFinished",
"resourceType": "mobileContainer", 0.0.47.0
"scope": "",
"sender": "",
"data": {
"type":"wagon", 0.0.47.0
"transportIdentifier":"ID000000",
"transportType": "Shipment | Intrasite", 0.0.58.0
"siteIdentifier":"LIE",
"owner":"TMS",
"mobileContainerIdentifier":"ID000000",
"mobileContainerName":"wagonID000000",
"originalRequestInfo":{
"requestedAt":"2020-08-19T12:31:08.7851972+02:00",
"requestedBy":"owner"
},
"context":{
"key":"value"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
595/722
Save one checked material
0.0.41.0
Allows to add a checked material – present in load plan to check – on a mobile container. The other
checked material(s) are unchanged.
HTTP Request
PUT /transport-api/v1/mobile-containers/name={name}/loadplan/checked/context={context}&number={number}
PUT /transport-api/v1/mobile-containers/identifier={identifier}/load-plan/checked
/context={context}&number={number}
Request Parameters
name (string)
Or
identifier (string)
context (string)
number (string)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
596/722
Request Body
{
…
success (boolean),
reason (string, optional),
comment (string, optional)
}
Responses
Response 200 (Ok)
Response 201 (Created)
Response 204 (NoContent)
287
This mobile container does not have a load plan yet
Response 400 (BadRequest)
Response 403 (Forbidden)
47
Truck ‘{0}’ not allocated
48
Wagon ‘{0}’ not allocated
56
Ship ‘{0}’ not allocated
Response 404 (NotFound)
Physical vehicle not found
289
Operation cannot be performed because load plan does not contain this material
unit to check. Affected MU: {0}
Example
{
…
"success": false,
"reason": "reason…",
"comment": "comment…"
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
597/722
Notification(s)
{
"notificationType": "Checked"
"resourceType": "materialUnit",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-08-20T05:55:50.7595674+00:00",
"requestedBy": "owner"
},
"id": {
"lmiContext": "LIE",
"lmiNumber": "ID000000"
},
"success": false,
"reason": "reason",
"comment": "comment",
"mobileContainerIdentifier": "wagon1",
"mobileContainerName": "wagonName1", 0.0.54.0
"transportIdentifier": "ID000000", 0.0.54.0
"transportType": "Shipment | Intrasite", 0.0.58.0
"owner": "TMS" 0.0.54.0
}
}
Notification when all materials are checked
Example 1
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
598/722
{
"notificationType": "CheckingFinished",
"resourceType": "mobileContainer", 0.0.47.0
"scope": "",
"sender": "",
"data": {
"type":"road", 0.0.47.0
"transportIdentifier":"ID000000",
"transportType": "Shipment | Intrasite", 0.0.58.0
"siteIdentifier":"LIE",
"owner":"TMS",
"mobileContainerIdentifier":"ID000000",
"mobileContainerName":"trailerID000000",
"originalRequestInfo":{
"requestedAt":"2020-08-19T12:31:08.7851972+02:00",
"requestedBy":"owner"
},
"context":{
"key":"value"
}
}
}
Example 2
{
"notificationType": "CheckingFinished",
"resourceType": "mobileContainer", 0.0.47.0
"scope": "",
"sender": "",
"data": {
"type":"wagon",
"transportIdentifier":"ID000000",
"transportType": "Shipment | Intrasite", 0.0.58.0
"siteIdentifier":"LIE",
"owner":"TMS",
"mobileContainerIdentifier":"ID000000",
"mobileContainerName":"wagonID000000",
"originalRequestInfo":{
"requestedAt":"2020-08-19T12:31:08.7851972+02:00",
"requestedBy":"owner"
},
"context":{
"key":"value"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
599/722
Cancel (undo) list of checked material(s)
0.0.49.0
Allows to cancel (undo) a list of material(s) checked on a mobile container. This method moves
automatically all the material(s) to the list of material(s) to check in the load plan. The material(s) are
never deleted from the load plan. Unloading a material wil also undo the checked status.
HTTP Request
DELETE /transport-api/v1/mobile-containers/name={name}/load-plan/checked
DELETE /transport-api/v1/mobile-containers/identifier={identifier}/load-plan/checked
Request Parameters
name (string)
or
identifier (string)
Request Body
{
…
materialUnits: [
{
lmiContext (string),
lmiNumber (string)
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
600/722
Responses
Response 200 (Ok)
Response 204 (NoContent)
287
This mobile container does not have a load plan yet
Response 400 (BadRequest)
290
Cannot remove empty list of material(s) checked
Response 403 (Forbidden)
47
Truck ‘{0}’ not allocated
48
Wagon ‘{0}’ not allocated
56
Ship ‘{0}’ not allocated
Response 404 (NotFound)
Physical vehicle not found
Example
{
…
"materialUnits": [
{
"lmiContext": "LIE",
"lmiNumber": "ID000000"
}
…
]
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
601/722
Notification(s)
One notification is sent by material
{
"notificationType": "Unchecked"
"resourceType": "materialUnit",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-08-20T05:55:50.7595674+00:00",
"requestedBy": "owner"
},
"id": {
"lmiContext": "LIE",
"lmiNumber": "ID000000"
},
"mobileContainerIdentifier": "wagon1",
"mobileContainerName": "wagonName1", 0.0.54.0
"transportIdentifier": "ID000000", 0.0.54.0
"transportType": "Shipment | Intrasite", 0.0.58.0
"owner": "TMS" 0.0.54.0
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
602/722
Start / End loading of a mobile container
0.0.41.0
Allows to update the state of a mobile container to send a notification “LoadingStarted” or
“LoadingEnded”. Please note these events are already automatically sent respectively when the first
material is loaded, and the last material is loaded and checked (if material(s) to check are requested).
NB: Transition to state ‘Ready’ is not allowed.
HTTP Request
POST /transport-api/v1/mobile-containers/name={name}/state-transitions
POST /transport-api/v1/mobile-containers/identifier={identifier}/state-transitions
Request Parameters
name (string)
or
identifier (string)
Request Body
{
…
nextState: (string) = [‘executing’, ‘executed’]
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
603/722
Responses
Response 200 (Ok)
Response 403 (Forbidden)
Transition not supported to state ‘Ready’
Could not change ‘mobileContainer’ state from ‘Executed’ to ‘Ready’
52
Operation is not allowed on Transport ‘…’ on site
47
Truck ‘{0}’ not allocated
48
Wagon ‘{0}’ not allocated
56
Ship ‘{0}’ not allocated
401
Operation not allowed. MobileContainer is cancelled. 0.0.49.0
Response 404 (NotFound)
Physical vehicle not found
Example
{
…
"nextState": "executing"
}
Notification(s)
Example 1
{
"notificationType": "LoadingStarted", 0.0.47.0
"resourceType": "mobileContainer", 0.0.47.0
"scope": "",
"sender": "",
"data": {
"type":"trailer", 0.0.47.0
"transportIdentifier":"ID000000",
"transportType": "Shipment | Intrasite", 0.0.58.0
"siteIdentifier":"LIE",
"owner":"TMS",
"mobileContainerIdentifier":"ID000000",
"mobileContainerName":"trailerID000000",
"loadingDateTime": "637334757518227496",
"originalRequestInfo":{
"requestedAt":"2020-08-19T12:31:08.7851972+02:00",
"requestedBy":"owner"
},
"context":{
"key":"value"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
604/722
Example 2
{
"notificationType": LoadingStarted", 0.0.47.0
"resourceType": "mobileContainer", 0.0.47.0
"scope": "",
"sender": "",
"data": {
"type":"wagon", 0.0.47.0
"transportIdentifier":"ID000000",
"transportType": "Shipment | Intrasite", 0.0.58.0
"siteIdentifier":"LIE",
"owner":"TMS",
"mobileContainerIdentifier":"ID000000",
"mobileContainerName":"wagonID000000",
"loadingDateTime": "637334757518227496",
"originalRequestInfo":{
"requestedAt":"2020-08-19T12:31:08.7851972+02:00",
"requestedBy":"owner"
},
"context":{
"key":"value"
}
}
}
Example 3
{
"notificationType": "LoadingEnded", 0.0.47.0
"resourceType": "mobileContainer", 0.0.47.0
"scope": "",
"sender": "",
"data": {
"type":"trailer", 0.0.47.0
"transportIdentifier":"ID000000",
"transportType": "Shipment | Intrasite", 0.0.58.0
"siteIdentifier":"LIE",
"owner":"TMS",
"mobileContainerIdentifier":"ID000000",
"mobileContainerName":"wagonID000000",
"loadingDateTime": "637334757518227496",
"originalRequestInfo":{
"requestedAt":"2020-08-19T12:31:08.7851972+02:00",
"requestedBy":"owner"
},
"context":{
"key":"value"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
605/722
Example 4
{
"notificationType": "LoadingEnded", 0.0.47.0
"resourceType": "mobileContainer", 0.0.47.0
"scope": "",
"sender": "",
"data": {
"type":"wagon", 0.0.47.0
"transportIdentifier":"ID000000",
"transportType": "Shipment | Intrasite", 0.0.58.0
"siteIdentifier":"LIE",
"owner":"TMS",
"mobileContainerIdentifier":"ID000000",
"mobileContainerName":"wagonID000000",
"loadingDateTime": "637334757518227496",
"originalRequestInfo":{
"requestedAt":"2020-08-19T12:31:08.7851972+02:00",
"requestedBy":"owner"
},
"context":{
"key":"value"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
606/722
Get Bays for MobileContainer
0.0.58.0
Retrieve a list of bays from a mobile container can go to to load a set of materials from the ToLoad
list in the Load plan.
The same material can be present in multiple bays, and not all materials may be available on a bay.
HTTP Request
GET /transport-api/v1/mobile-containers/name={name}/bays
GET /transport-api/v1/mobile-containers/identifier={identifier}/bays
Request Parameters
name (string)
or
identifier (string)
Responses
Response 200 (Ok)
[{
identifier (string),
label (string),
state (string) = [‘Open’, ‘Closed’],
materialUnits : [{
lmiContext (string),
lmiNumber (string),
materialGroup (string)
}, …
]}, …
]
Response 403 (Forbidden)
47
Truck ‘{0}’ not allocated
48
Wagon ‘{0}’ not allocated
56
Ship ‘{0}’ not allocated
Response 404 (NotFound)
Example
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
607/722
[
{
"identifier": "Bay-1.0SEL",
"label": "Bay-1.0SEL",
"state": "Open",
"materialUnits": [
{
"lmiContext": "LIE",
"lmiNumber": "MU-1.1SEL",
"materialGroup": "materialGroupA-1.0SEL",
"weight": 0
},
{
"lmiContext": "LIE",
"lmiNumber": "MU-1.2SEL",
"materialGroup": "materialGroupA-1.0SEL",
"weight": 0
}]
},
{
"identifier": "Bay-2.0SEL",
"label": "Bay-2.0SEL",
"state": "Closed",
"materialUnits": [
{
"lmiContext": "LIE",
"lmiNumber": "MU-1.2SEL",
"materialGroup": "materialGroupA-1.0SEL",
"weight": 0
}
]
}
]
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
608/722
Delete Load Plan
0.0.40.0
Allows to delete a loading plan for a mobile container.
HTTP Request
DELETE /transport-api/v1/mobile-containers/name={name}/load-plan 0.0.40.0
DELETE /transport-api/v1/mobile-containers/identifier={identifier}/load-plan 0.0.40.0
Request Parameters
name (string)
or
identifier (string)
Request Body
{
…
0.0.45.0
}
Responses
Response 200 (Ok)
Response 403 (Forbidden)
47
Truck ‘{0}’ not allocated
48
Wagon ‘{0}’ not allocated
56
Ship ‘{0}’ not allocated
Response 404 (NotFound)
Physical Vehicle not found
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
609/722
Notification(s)
{
"notificationType": "LoadPlanRemoved"
"resourceType": "mobileContainer",
"scope": "",
"sender": "",
"data": {
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2020-06-17T13:28:26.6632415+00:00",
"requestedBy": "owner"
},
"mobileContainerIdentifier": "ID000000",
"mobileContainerName": "trailerID000000",
"transportIdentifier": "ID000000",
"transportType": "Shipment | Intrasite", 0.0.58.0
"loadPlan":
{
"toLoad": [{"lmiContext": "LIE", "lmiNumber": "ID000000"}, …],
"toCheck": [{"lmiContext": "LIE", "lmiNumber": "ID000000"}, …],
"toUnload": [{"lmiContext": "LIE", "lmiNumber": "ID000000"}, …] 1.65.0
}
}
}
Link mobile container to equipment
1.84
The goal of this method is to link a mobile container (trailer, wagon, ship) to an equipment.
See 5.2 below for more explanation on equipments.
HTTP Request
PUT /transport-api/v1/transports/{identifier}/mobile-containers/name={mobileContainerName
}/equipment/{equipmentIdentifer}
PUT /transport-api/v1/transports/{identifier}/mobilecontainers/identifier={mobileContainerIdentifier}/equipment/{equipmentIdentifer}
Request Parameters
identifier (string)
mobileContainerName (string) or mobileContainerIdentifier (string)
equipmentIdentifier (string)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
610/722
Request Body
{
…
}
Responses
Response 200 (Ok)
Response 400 (BadRequest)
28
Validation Failed
Response 403 (Forbidden)
61
Transport is Cancelled
502
Mobile container '{0}' not allocated to transport
503
Cannot link equipment because it is already linked to mobile container '{0}'
19
Operation is forbidden because transport is closed or completed
58
Transport '{0}' is not 'Confirmed'
36
Transport '{0}' is not 'FullyDefined'
501
Equipment '{0}' not found on transport 1.84
Response 404 (NotFound)
5
Transport not found
32
Transport ‘{0}’ not found on site ‘{1}’
Example
{
…
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
611/722
Notifications
{
"resourceType": "mobileContainer",
"notificationType": "EquipmentLinked",
"sender": "Artemis.Transport.Execution",
"scope": "LIE",
"data": {
"type": "wagon",
"transportIdentifier": "ID000001",
"transportType": "Shipment",
"siteIdentifier": "LIE",
"owner": "Syltram",
"mobileContainerName": "wagon1",
"mobileContainerIdentifier": "wagon1Id",
"equipmentIdentifier": "EQ0",
"originalRequestInfo": {
"requestedAt": "2022-11-10T11:20:45.2871549+01:00",
"requestedBy": "owner"
},
"context": {
"key": "value"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
612/722
Unlink mobile container from equipment
1.84
The goal of this method is to unlink a mobile container (trailer, wagon, ship) from an equipment.
HTTP Request
DELETE /transport-api/v1/transports/{identifier}/mobilecontainers/name={mobileContainerName}/equipment
DELETE /transport-api/v1/transports/{identifier}/mobilecontainers/identifier={mobileContainerIdentifier}/equipment
Request Parameters
identifier (string)
mobileContainerName (string) or mobileContainerIdentifier (string)
Request Body
{
…
}
Responses
Response 200 (Ok)
Response 400 (BadRequest)
28
Validation Failed
Response 403 (Forbidden)
61
Transport is Cancelled
502
Mobile container '{0}' not allocated to transport
58
Transport '{0}' is not 'Confirmed'
36
Transport '{0}' is not 'FullyDefined'
Response 404 (NotFound)
5
Transport not found
32
Transport ‘{0}’ not found on site ‘{1}’
Example
{
…
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
613/722
Notifications
{
"resourceType": "mobileContainer",
"notificationType": "EquipmentUnlinked",
"sender": "Artemis.Transport.Execution",
"scope": "LIE",
"data": {
"type": "wagon",
"transportIdentifier": "ID000001",
"transportType": "Shipment",
"siteIdentifier": "LIE",
"owner": "Syltram",
"mobileContainerName": "wagon1",
"mobileContainerIdentifier": "wagon1Id",
"equipmentIdentifier": "EQ0",
"originalRequestInfo": {
"requestedAt": "2022-11-10T11:20:45.2871549+01:00",
"requestedBy": "owner"
},
"context": {
"key": "value"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
614/722
4.15. Vehicle Type(s)
Create
0.0.44.0
Allows to create a vehicle type.
HTTP Request
POST /transport-api/v1/vehicletypes
Request Body
{
…
vehicleType:
{
identifier (string),
name parentType (enum) = [‘locomotive’, ‘wagon’, ‘carrier’, ‘barge’, ‘vessel’, ‘tractor’, ‘trailer’,
‘semiTrailer’], 0.0.62.0
subType (string, optional),
label (string, optional), 0.0.62.0
specificIdentifier (string, optional),
transportMode (string) = [‘Truck’, ‘Wagon’, ‘Barge’, ‘Vessel’],
defaultGrossVehicleWeightRating (double, optional),
defaultTare (double, optional), 0.0.49.0
cradles [
{
frontToBackIndex (int),
leftToRightIndex (int),
materialUnitCapacity (int),
productDiameterMin (double, optional),
productDiameterMax (double, optional),
productWidthMin (double, optional),
productWidthMax (double, optional),
productWeightMin (double, optional),
productWeightMax (double, optional)
},
…
]
}
}
•
ParentType [‘locomotive’, ‘wagon’, ‘carrier’, ‘barge’, ‘vessel’, ‘tractor’, ‘trailer’, ‘semiTrailer’]
Level 1 of vehicle type (enumeration)
•
TransportMode [‘Truck’, ‘Wagon’, ‘Barge’, ‘Vessel’]
•
Identifier
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
615/722
•
SubType
Combinaison of ‘Identifier’ and ‘SubType’ should be unique !
•
Label
Responses
Response 200 (Ok)
Examples
{
…
"vehicleType": {
"parentType": "carrier",
"subType": "string",
"label": "string",
"specificIdentifier": "string",
"transportMode": "Truck",
"defaultGrossVehicleWeightRating": 0,
"defaultWeight": 0,
"cradles": [
{
"frontToBackIndex": 0,
"leftToRightIndex": 0,
"materialUnitCapacity": 0,
"productDiameterMin": 0,
"productDiameterMax": 0,
"productWidthMin": 0,
"productWidthMax": 0,
"productWeightMin": 0,
"productWeightMax": 0
}
],
"identifier": "carrier"
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
616/722
{
"requestedBy":"ARTEMIS-MK",
"requestedAt":"2021-10-29T07:58:58.778Z",
"context":{
},
"vehicleType":{
"identifier":"S32",
"parentType":"wagon",
"subType":"S32",
"label":"wagon",
"label":"BOGIES BERCEAUX DECOUVERTS BOB AXE HORIZ",
"transportMode":"wagon",
"cradles":[
{
"frontToBackIndex":1,
"leftToRightIndex":2,
"materialUnitCapacity":3,
"productDiameterMin":1150,
"productDiameterMax":2100,
"productWidthMin":0,
"productWidthMax":0,
"productWeightMin":0,
"productWeightMax":30
},
{
"frontToBackIndex":2,
"leftToRightIndex":2,
"materialUnitCapacity":3,
"productDiameterMin":1150,
"productDiameterMax":2100,
"productWidthMin":0,
"productWidthMax":0,
"productWeightMin":0,
"productWeightMax":30
},
{
"frontToBackIndex":3,
"leftToRightIndex":2,
"materialUnitCapacity":3,
"productDiameterMin":1150,
"productDiameterMax":2100,
"productWidthMin":0,
"productWidthMax":0,
"productWeightMin":0,
"productWeightMax":30
}
]
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
617/722
ParentType
carrier
tractor
semiTrailer
trailer
wagon
wagon
wagon
wagon
Identifier
carrier
tractor
semiTrailer
trailer
wagonC43
wagonC43bis
wagonC44
S32
SubType
carrier
tractor
semiTrailer
trailer
wagonC43
wagonC43
wagonC44
locomotive
barge
vessel
locomotive
barge
vessel
locomotive
barge
vessel
TransportMode
Truck
Truck
Truck
Truck
Wagon
Wagon
Wagon
Wagon
Label
BOGIES BERCEAUX DECOUVERTS
BOB AXE HORIZ
Wagon
Barge
Vessel
Notification(s)
{
"notificationType": "Create"
"resourceType": "vehicleType",
"scope": "",
"sender": "Artemis.Transport.Vehicle",
"data": {
"id": "ID000000",
"context": {
"key": "value"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
618/722
Create or Update
0.0.44.0
Allows to create or update a vehicle type.
HTTP Request
PUT /transport-api/v1/vehicletypes/{identifier}
Request Parameters
identifier (string)
Request Body
{
…
vehicleType:
{
name parentType (string) = [‘locomotive’, ‘wagon’, ‘carrier’, ‘barge’, ‘vessel’, ‘tractor’, ‘trailer’,
‘semiTrailer’], 0.0.62.0
subType (string, optional),
label (string, optional), 0.0.62.0
specificIdentifier (string, optional),
transportMode (string) = [‘Truck’, ‘Wagon’, ‘Barge’, ‘Vessel’, ‘Airplane’],
defaultGrossVehicleWeightRating (double, optional),
defaultWeight (double, optional),
cradles [
{
frontToBackIndex (int),
leftToRightIndex (int),
materialUnitCapacity (int),
productDiameterMin (double, optional),
productDiameterMax (double, optional),
productWidthMin (double, optional),
productWidthMax (double, optional),
productWeightMin (double, optional),
productWeightMax (double, optional)
},
…
]
}
}
Responses
Response 200 (Ok)
Response 201 (Created)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
619/722
Example
{
…
"vehicleType": {
"parentType": "carrier",
"subType": "string",
"label": "carrier",
"specificIdentifier": "string",
"transportMode": "Truck",
"defaultGrossVehicleWeightRating": 0,
"defaultWeight": 0,
"cradles": [
{
"frontToBackIndex": 0,
"leftToRightIndex": 0,
"materialUnitCapacity": 0,
"productDiameterMin": 0,
"productDiameterMax": 0,
"productWidthMin": 0,
"productWidthMax": 0,
"productWeightMin": 0,
"productWeightMax": 0
}
]
}
}
Create another type of trailer :
{
…
"vehicleType": {
"parentType": "SemiTrailer",
"subType": "Trailer",
"label": "Trailer type Tautliner",
"transportMode": "Truck"
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
620/722
Notification(s)
{
"notificationType": "Update"
"resourceType": "vehicleType",
"scope": "",
"sender": "Artemis.Transport.Vehicle",
"data": {
"id": "ID000000",
"context": {
"key": "value"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
621/722
Partial Update
0.0.44.0
Allows to partially update a vehicle type.
HTTP Request
PATCH /transport-api/v1/vehicletypes/{identifier}
identifier={context}&subtype={number}
Request Parameters
identifier (string)
Request Body
{
…
vehicleType: [
{
value (Json),
path (string),
op (string)
},
…
]
}
Responses
Response 204 (NoContent)
Response 404 (NotFound)
Vehicle type not found
Example
{
…
"vehicleType": [
{
"value": 5,
"path": "defaultGrossVehicleWeightRating",
"op": "replace",
},
…
]
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
622/722
Notification(s)
{
"notificationType": "PartialUpdate"
"resourceType": "vehicleType",
"scope": "",
"sender": "Artemis.Transport.Vehicle",
"data": {
"id": "ID000000",
"context": {
"key": "value"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
623/722
Get by identifier
0.0.44.0
Retrieve a vehicle type by identifier
HTTP Request
GET /transport-api/v1/vehicletypes/{identifier}
Request Parameters
identifier (string)
Responses
Response 200 (Ok)
{
name (string, optional),
subType (string, optional),
specificIdentifier (string, optional),
transportMode (string) = [‘Truck’, ‘Wagon’, ‘Barge’, ‘Vessel’, ‘Airplane’],
defaultGrossVehicleWeightRating (double, optional),
defaultWeight (double, optional),
cradles [
{
frontToBackIndex (int),
leftToRightIndex (int),
materialUnitCapacity (int),
productDiameterMin (double, optional),
productDiameterMax (double, optional),
productWidthMin (double, optional),
productWidthMax (double, optional),
productWeightMin (double, optional),
productWeightMax (double, optional)
},
…
]
}
Response 404 (NotFound)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
624/722
Example
{
"identifier": "carrier",
"name": "carrier",
"subType": "carrier",
"specificIdentifier": null,
"transportMode": "Truck",
"defaultGrossVehicleWeightRating": null,
"defaultWeight": null,
"cradles": [
{
"frontToBackIndex": 1,
"leftToRightIndex": 2,
"materialUnitCapacity": 3,
"productDiameterMin": null,
"productDiameterMax": null,
"productWidthMin": null,
"productWidthMax": null,
"productWeightMin": null,
"productWeightMax": null
}
]
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
625/722
Get by custom filter
0.0.44.0
Retrieve a vehicle type by query.
HTTP Request
POST /transport-api/v1/vehicletypes/searches
Request Body
{
"query": {
…
},
"select": [
{
…
],
"paging": {
"pageSize": 0,
"pageNumber": 0
},
"orderBy": {
…
},
"includes": [ {
…
}]
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
626/722
Example
{
"query": {
"Operator": "equal",
"Left": {
"Name": "identifier",
"Left": null,
"nodeType": "property"
},
"Right": {
"Value": "carrier",
"Type": null,
"nodeType": "constant"
},
"nodeType": "binary"
},
"select": null,
"paging": null,
"orderBy": null
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
627/722
Responses
Response 200 (Ok)
{
totalPages (int),
hasPreviousPage (bool),
hasNextPage (bool),
pageIndex (int),
pageSize (int),
totalCount (int),
items [
{
name parentType (string) = [‘locomotive’, ‘wagon’, ‘carrier’, ‘barge’, ‘vessel’, ‘tractor’,
‘trailer’, ‘semiTrailer’], 0.0.62.0
subType (string, optional),
label (string, optional), 0.0.62.0
specificIdentifier (string, optional),
transportMode (string) = [‘Truck’, ‘Wagon’, ‘Barge’, ‘Vessel’, ‘Airplane’],
defaultGrossVehicleWeightRating (double, optional),
defaultWeight (double, optional),
cradles [
{
frontToBackIndex (int),
leftToRightIndex (int),
materialUnitCapacity (int),
productDiameterMin (double, optional),
productDiameterMax (double, optional),
productWidthMin (double, optional),
productWidthMax (double, optional),
productWeightMin (double, optional),
productWeightMax (double, optional)
},
…
]
}
]
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
628/722
Example
{
"totalPages": 1,
"items": [
{
"parentType": "carrier",
"subType": "carrier",
"label": "carrier",
"specificIdentifier": null,
"transportMode": "Truck",
"defaultGrossVehicleWeightRating": null,
"defaultWeight": null,
"cradles": [],
"identifier": "carrier"
}
],
"hasPreviousPage": false,
"hasNextPage": false,
"pageIndex": 0,
"pageSize": 20,
"totalCount": 1
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
629/722
Delete
0.0.44.0
Allows to delete a vehicle type.
HTTP Request
DELETE /transport-api/v1/vehicletypes/{identifier}
Request Parameters
identifier (string)
Request Body
{
…
reason (string)
}
Responses
Response 204 (NoContent)
Response 404 (NotFound)
Vehicle type not found
Example
{
…
"reason" : "unused"
}
Notification(s)
{
"notificationType": "Delete"
"resourceType": "vehicleType",
"scope": "",
"sender": "Artemis.Transport.Vehicle",
"data": {
"id": "ID000000",
"context": {
"key": "value"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
630/722
4.16. Physical Vehicle Group
Get by identifier or name
0.0.44.0
Allows to get a physical vehicle group by id / name.
HTTP Request
GET /transport-api/v1/physicalvehiclegroups/identifier={identifier}
GET /transport-api/v1/physicalvehiclegroups/name={name}
Request Parameters
name (string)
or
identifier (string)
Responses
Response 200 (Ok)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
631/722
{
identifier (string),
name (string),
transportMode (string) = [‘Truck’, ‘Wagon’, ‘Barge’, ‘Vessel’, ‘Airplane’],
badgeIdentifier (string),
realSupplierAsRequested (string) = [‘Yes’, ‘No’, ‘Undefined’],
realSupplierName (string, optional),
realSupplierIdentifier (string, optional),
driverOrCaptainName (string, optional),
IMO (string, optional), 0.0.49.0
VIN (string, optional), 0.0.49.0
ENI (string, optional), 0.0.49.0
locatedOnSiteIdentifier (string, optional),
grossVehicleWeightRating (double, optional),
locatedOn
{
type (string) = ‘Bay’,
label (string, optional),
bayIdentifier (string),
maxNumberOfEquipments (int),
or
type (string) = ‘FreeLocation’,
label (string, optional),
freeLocation (string),
locationSubType (string)
},
locationChangedBy (string),
locationChangedAt (datetime),
locationChangedType (string),
weighings [
{
date (datetime),
weight (double),
weighingMethod (string) = [‘Scale’, ‘ManualInput’, ‘Historical’],
weighBridgeName (string), 0.0.54.0
siteIdentifier (string), 0.0.63.0
}, …
],
activeWeighings [
{
date (datetime),
weight (double),
weighingMethod (string) = [‘Scale’, ‘ManualInput’, ‘Historical’],
weighBridgeName (string), 0.0.54.0
siteIdentifier (string), 0.0.63.0
}, …
],
crossGateEvents
{
entryCrossGateEvent {
date (datetime),
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
632/722
gateIdentifier (string)
},
exitCrossGateEvent {
date (datetime),
gateIdentifier (string)
},
},
locatedMetadata (Json),
physicalVehicles [
{
identifier (string),
name (string),
metadata (Json),
vmsIdentificationDate (datetime, optional),
vehicleTypeIdentifier (string),
physicalVehicleGroupIdentifier (string),
sequenceNumberInGroup (int, optional),
refused (bool, optional),
tagIdentifier (string),
refusedOrigin (string) = [‘Core’, ‘User’],
refusedReason (string),
refusedComment (string),
grossVehicleWeightRating (double, optional),
vehicleType
{
name (string, optional),
subType (string, optional),
specificIdentifier (string, optional),
transportMode (string) = [‘Truck’, ‘Wagon’, ‘Barge’, ‘Vessel’, ‘Airplane’],
defaultGrossVehicleWeightRating (double, optional),
defaultWeight (double, optional),
cradles [
{
frontToBackIndex (int),
leftToRightIndex (int),
materialUnitCapacity (int),
productDiameterMin (double, optional),
productDiameterMax (double, optional),
productWidthMin (double, optional),
productWidthMax (double, optional),
productWeightMin (double, optional),
productWeightMax (double, optional)
},
…
]
},
parentVehicleGroup
{
…
}
}, …
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
633/722
]
}
Response 404 (NotFound)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
634/722
Example
{
"identifier": "SemiTrailer-Identifier13.0A",
"name": "SemiTrailer-Name13.0A",
"transportMode": "Truck",
"metadata": {},
"definitionLevel": "Draft",
"badgeIdentifier": null,
"realSupplierAsRequested": "Undefined",
"realSupplierName": null,
"realSupplierIdentifier": null,
"driverOrCaptainName": null,
"locatedOnSiteIdentifier": null,
"grossVehicleWeightRating": null,
"locatedOn": {
"type": "freeLocation",
"label": "Hall-BCmd13.0",
"freeLocation": "Hall-BCmd13.0",
"locationSubType": "Parking"
},
"locationChangedBy": "Requester13.0",
"locationChangedAt": "2020-07-28T05:44:49.573+00:00",
"locationChangeType": null,
"weighings": [],
"activeWeighings": [],
"locationMetadata": {},
"physicalVehicles": [
{
"identifier": "Trailer-Identifier13.0A",
"name": "B-13HFX142",
"metadata": {},
"vmsIdentificationDate": "2020-07-28T05:44:49.573+00:00",
"vehicleTypeIdentifier": "semiTrailer",
"physicalVehicleGroupIdentifier": "SemiTrailer-Identifier13.0A",
"sequenceNumberInGroup": 2,
"refused": false,
"tagIdentifier": null,
"refusedOrigin": null,
"refusedReason": null,
"refusedComment": null,
"vehicleType": {
"identifier": "semiTrailer",
"name": "semiTrailer",
"subType": "semiTrailer",
"specificIdentifier": null,
"transportMode": "Truck",
"defaultGrossVehicleWeightRating": null,
"defaultWeight": null,
"cradles": []
}, …
}
]
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
635/722
Get by custom filter
0.0.44.0
Retrieve a physical vehicle group by query.
HTTP Request
POST /transport-api/v1/physicalvehiclegroups/searches
POST /transport-api/v1/physicalvehiclegroups/searches/include-deleted={includeDeleted}
0.0.74.0
2nd endpoint (with includeDeleted) allows to retrieve all PhysicalVehicleGroup(s) including those
logically deleted (with DeletionDate specified).
Request Body
{
"query": {
…
},
"select": [
{
…
],
"paging": {
"pageSize": 0,
"pageNumber": 0
},
"orderBy": {
…
},
"includes": [ {
…
}]
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
636/722
Example
Get all physical vehicle group(s) with children physical vehicle(s) which have transport mode = ‘Truck’
{
"query":{
"Operator":"equal",
"Left":{
"Name":"transportMode",
"Left":null,
"nodeType":"property"
},
"Right":{
"Value":"Truck",
"Type":null,
"nodeType":"constant"
},
"nodeType":"binary"
},
"select":null,
"paging":null,
"orderBy":null,
"includes":[
{
"name":"physicalvehicles",
"nodeType":"property"
}
]
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
637/722
Retrieve all PVG(s) localized on a Bay
{
"query": {
"nodeType": "binary",
"left": {
"nodeType": "property",
"left": {
"nodeType": "unary",
"operand": {
"nodeType": "property",
"name": "locatedOn"
},
"operator": "typeAs",
"type": "BayLocation"
},
"name": "bayIdentifier"
},
"right": {
"nodeType": "constant",
"value": "BayD1.0A"
},
"operator": "equal"
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
638/722
Retrieve all PVG(s) and PV(s) localized on a Bay
{
"query": {
"nodeType": "binary",
"left": {
"nodeType": "property",
"left": {
"nodeType": "unary",
"operand": {
"nodeType": "property",
"name": "locatedOn"
},
"operator": "typeAs",
"type": "BayLocation"
},
"name": "bayIdentifier"
},
"right": {
"nodeType": "constant",
"value": "${#TestCase#bayIdentifier}"
},
"operator": "equal"
},
"includes": [
{
"nodeType": "property",
"name": "physicalVehicles"
}
]
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
639/722
Get all PVG(s) which have PV identifier equal to ‘ID000000’
{
"query":{
"nodeType":"call",
"methodType":"Enumerable",
"methodName":"Any",
"arguments":[
{
"nodeType":"property",
"name":"physicalVehicles"
},
{
"nodeType":"lambda",
"body":{
"nodeType":"binary",
"operator":"equal",
"left":{
"nodeType":"property",
"name":"identifier",
"left":{
"nodeType":"parameter",
"type":"PhysicalVehicleResult",
"name":"t"
}
},
"right":{
"nodeType":"constant",
"value":"ID000000"
}
},
"parameters":[
"t"
]
}
]
},
"includes":[
{
"nodeType":"property",
"name":"physicalVehicles"
}
]
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
640/722
Include vehicleType in query
{
"includes":[
{
"nodeType":"call",
"methodName":"Select",
"arguments":[
{
"nodeType":"property",
"name":"PhysicalVehicles"
},
{
"nodeType":"lambda",
"body":{
"nodeType":"property",
"name":"VehicleType",
"left":{
"nodeType":"parameter",
"name":"p"
}
},
"parameters":[
"p"
]
}
]
}
]
}
Responses
Response 200 (Ok)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
641/722
{
totalPages (int),
hasPreviousPage (bool),
hasNextPage (bool),
pageIndex (int),
pageSize (int),
totalCount (int),
items [
{
identifier (string),
name (string),
transportMode (string) = [‘Truck’, ‘Wagon’, ‘Barge’, ‘Vessel’, ‘Airplane’],
badgeIdentifier (string),
realSupplierAsRequested (string) = [‘Yes’, ‘No’, ‘Undefined’],
realSupplierName (string, optional),
realSupplierIdentifier (string, optional),
driverOrCaptainName (string, optional),
locatedOnSiteIdentifier (string, optional),
grossVehicleWeightRating (double, optional),
locatedOn
{
type (string) = ‘Bay’,
label (string, optional),
bayIdentifier (string),
maxNumberOfEquipments (int),
or
type (string) = ‘FreeLocation’,
label (string, optional),
freeLocation (string),
locationSubType (string)
},
locationChangedBy (string),
locationChangedAt (datetime),
locationChangedType (string),
weighings [
{
date (datetime),
weight (double),
weighingMethod (string) = [‘Scale’, ‘ManualInput’, ‘Historical’]
}, …
],
activeWeighings [
{
date (datetime),
weight (double),
weighingMethod (string) = [‘Scale’, ‘ManualInput’, ‘Historical’]
}, …
],
locatedMetadata (Json),
crossGateEvents
{
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
642/722
entryCrossGateEvent {
date (datetime),
gateIdentifier (string)
},
exitCrossGateEvent {
date (datetime),
gateIdentifier (string)
},
},
physicalVehicles [
{
identifier (string),
name (string),
metadata (Json),
vmsIdentificationDate (datetime, optional),
vehicleTypeIdentifier (string),
physicalVehicleGroupIdentifier (string),
sequenceNumberInGroup (int, optional),
refused (bool, optional),
tagIdentifier (string),
refusedOrigin (string) = [‘Core’, ‘User’],
refusedReason (string),
refusedComment (string),
grossVehicleWeightRating (double, optional),
vehicleType
{
name (string, optional),
subType (string, optional),
specificIdentifier (string, optional),
transportMode (string) = [‘Truck’, ‘Wagon’, ‘Barge’, ‘Vessel’, ‘Airplane’],
defaultGrossVehicleWeightRating (double, optional),
defaultWeight (double, optional),
cradles [
{
frontToBackIndex (int),
leftToRightIndex (int),
materialUnitCapacity (int),
productDiameterMin (double, optional),
productDiameterMax (double, optional),
productWidthMin (double, optional),
productWidthMax (double, optional),
productWeightMin (double, optional),
productWeightMax (double, optional)
},
…
]
},
parentVehicleGroup
{
…
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
643/722
}, …
]
}, …
]
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
644/722
Example
{
"totalPages": 1,
"items": [
{
"name": "ID000000",
"transportMode": "Truck",
"metadata": {},
"definitionLevel": "Draft",
"badgeIdentifier": null,
"realSupplierAsRequested": "Yes",
"realSupplierName": null,
"realSupplierIdentifier": null,
"driverOrCaptainName": null,
"locatedOnSiteIdentifier": null,
"grossVehicleWeightRating": null,
"identifier": "ID000000",
"locatedOn": null,
"locationChangedBy": null,
"locationChangedAt": "0001-01-01T00:00:00+00:00",
"locationChangeType": null,
"weighings": [],
"activeWeighings": [],
"locationMetadata": {},
"physicalVehicles": [
{
"name": "string",
"metadata": {},
"vmsIdentificationDate": "2020-10-21T12:11:36.629+00:00",
"vehicleTypeIdentifier": null,
"physicalVehicleGroupIdentifier": "ID000000",
"sequenceNumberInGroup": 0,
"refused": true,
"tagIdentifier": "string",
"refusedOrigin": "Core",
"refusedReason": "string",
"refusedComment": "string",
"grossVehicleWeightRating": 0,
"identifier": "ID000000",
"vehicleType": null,
"weighings": []
}
]
}
],
"hasPreviousPage": false,
"hasNextPage": false,
"pageIndex": 0,
"pageSize": 20,
"totalCount": 1
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
645/722
Change location
0.0.44.0
Allow client to change the location of a physical vehicle group.
HTTP Request
PUT /transport-api/v1/physicalvehiclegroups/{identifier}/location
Request Parameters
identifier (string)
Request Body
{
…
type (string) = [‘Manual’, ‘Automatic’],
metadata (json, optional),
on {
type (string) = [‘Bay’, ‘FreeLocation’],
label (string, optional)
}
}
Responses
Response 200 (Ok)
Response 403 (Forbidden)
Maximum of number of associated equipmentGroups to Bay '{0} is already reached
({1}). Please unallocate one physical vehicle group from this bay before.
Response 404 (NotFound)
10
Physical Vehicle Group not found
14
Bay not found
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
646/722
Example
{
…
"type": "automatic",
"metadata": {},
"on": {
"type": "bay",
"label": "label"
}
}
Notification(s)
{
"notificationType": "LocationChanged"
"resourceType": "physicalVehicleGroup",
"scope": "",
"sender": "Artemis.Transport.Vehicle",
"data": {
"id": "ID000000",
"context": {
"key": "value"
},
"on": {
"type": "bay",
"label": "label",
"bayIdentifier": "ID000001"
},
"previousData": {
"on": {
"type": "bay",
"label": "label",
"bayIdentifier": "ID000000"
}
},
"type": "automatic",
"metadata": {
"key": "value"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
647/722
4.17. Physical Vehicle
Get by identifier or name
0.0.44.0
Allows to get a physical vehicle by id / name.
HTTP Request
GET /transport-api/v1/physicalvehicles/identifier={identifier}
GET /transport-api/v1/physicalvehicles/name={name}
Request Parameters
name (string)
or
identifier (string)
Responses
Response 200 (Ok)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
648/722
{
identifier (string),
name (string),
metadata (json),
vmsIdentificationDate (datetime, optional),
vehicleTypeIdentifier (string),
physicalVehicleGroupIdentifier (string),
sequenceNumberInGroup (int, optional),
refused (bool, optional),
tagIdentifier (string),
refusedOrigin (string) = [‘Core’, ‘User’],
refusedReason (string),
refusedComment (string),
grossVehicleWeightRating (double, optional),
vehicleType
{
name (string, optional),
subType (string, optional),
specificIdentifier (string, optional),
transportMode (string) = [‘Truck’, ‘Wagon’, ‘Barge’, ‘Vessel’, ‘Airplane’],
defaultGrossVehicleWeightRating (double, optional),
defaultWeight (double, optional),
cradles [
{
frontToBackIndex (int),
leftToRightIndex (int),
materialUnitCapacity (int),
productDiameterMin (double, optional),
productDiameterMax (double, optional),
productWidthMin (double, optional),
productWidthMax (double, optional),
productWeightMin (double, optional),
productWeightMax (double, optional)
},
…
]
},
parentVehicleGroup
{
…
},
characteristics (json) 0.0.44.0
}
Response 404 (NotFound)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
649/722
Example
{
"identifier": "Trailer-Identifier13.0A",
"name": "B-13HFX142",
"metadata": {},
"vmsIdentificationDate": "2020-07-28T05:44:49.573+00:00",
"vehicleTypeIdentifier": "semiTrailer",
"physicalVehicleGroupIdentifier": "SemiTrailer-Identifier13.0A",
"sequenceNumberInGroup": 2,
"refused": false,
"tagIdentifier": null,
"refusedOrigin": null,
"refusedReason": null,
"refusedComment": null,
"vehicleType": {
"identifier": "semiTrailer",
"name": "semiTrailer",
"subType": "semiTrailer",
"specificIdentifier": null,
"transportMode": "Truck",
"defaultGrossVehicleWeightRating": null,
"defaultWeight": null,
"cradles": []
},
“characteristics” : { “D31”: “value” }
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
650/722
Get by custom filter
0.0.44.0
Retrieve a physical vehicle by query.
HTTP Request
POST /transport-api/v1/physicalvehicles/searches
Request Body
{
"query": {
…
},
"select": [
{
…
],
"paging": {
"pageSize": 0,
"pageNumber": 0
},
"orderBy": {
…
},
"includes": [ {
…
}]
}
Example
{
"query": {
"Operator": "equal",
"Left": {
"Name": "identifier",
"Left": null,
"nodeType": "property"
},
"Right": {
"Value": "ID000000",
"Type": null,
"nodeType": "constant"
},
"nodeType": "binary"
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
651/722
Responses
Response 200 (Ok)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
652/722
{
totalPages (int),
hasPreviousPage (bool),
hasNextPage (bool),
pageIndex (int),
pageSize (int),
totalCount (int),
items [
{
identifier (string),
name (string),
metadata (Json),
vmsIdentificationDate (datetime, optional),
vehicleTypeIdentifier (string),
physicalVehicleGroupIdentifier (string),
sequenceNumberInGroup (int, optional),
refused (bool, optional),
tagIdentifier (string),
refusedOrigin (string) = [‘Core’, ‘User’],
refusedReason (string),
refusedComment (string),
grossVehicleWeightRating (double, optional),
vehicleType
{
name (string, optional),
subType (string, optional),
specificIdentifier (string, optional),
transportMode (string) = [‘Truck’, ‘Wagon’, ‘Barge’, ‘Vessel’, ‘Airplane’],
defaultGrossVehicleWeightRating (double, optional),
defaultWeight (double, optional),
cradles [
{
frontToBackIndex (int),
leftToRightIndex (int),
materialUnitCapacity (int),
productDiameterMin (double, optional),
productDiameterMax (double, optional),
productWidthMin (double, optional),
productWidthMax (double, optional),
productWeightMin (double, optional),
productWeightMax (double, optional)
}, …
]
},
parentVehicleGroup
{
…
}
}, …
]
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
653/722
Example
{
"totalPages": 1,
"items": [
{
"name": "string",
"metadata": {},
"vmsIdentificationDate": "2020-10-21T12:11:36.629+00:00",
"vehicleTypeIdentifier": null,
"physicalVehicleGroupIdentifier": null,
"sequenceNumberInGroup": 0,
"refused": true,
"tagIdentifier": "string",
"refusedOrigin": "Core",
"refusedReason": "string",
"refusedComment": "string",
"grossVehicleWeightRating": 0,
"identifier": "ID000000",
"vehicleType": null,
"parentVehicleGroup": null,
"weighings": []
}
],
"hasPreviousPage": false,
"hasNextPage": false,
"pageIndex": 0,
"pageSize": 20,
"totalCount": 1
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
654/722
4.18. Notifications
Check Weight
0.0.47.0
If a Transport is defined, a check weight is made depending on the state of mobile container and a
specific notification is sent.
{
notificationType (string) = [‘WeightChecked’],
resourceType (string) = [‘truck’, ‘wagon’],
sender (string),
scope (string),
data {
name (string) 0.0.55.0,
identifier (string) 0.0.55.0,
transportIdentifier (string),
siteIdentifier (string), 0.0.53.0
transportOwner (string), 0.0.53.0
results [
{
type (string) = [‘Gvwr’, ‘Mam’, ‘MuWeight’, ‘ArrivalCanceled’],
state (string) = [‘Success’, ‘Failure’, ‘NotExecuted’]
},
…
],
originalRequestInfo {
requestedAt (string),
requestedBy (datetime)
},
context (json)
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
655/722
Example “WeightChecked” successful
{
"notificationType": "WeightChecked"
"resourceType": "truck",
"scope": "",
"sender": "",
"data": {
"transportIdentifier": "ID000000",
"siteIdentifier": "LIE", 0.0.53.0
"name": "T0", 0.0.55.0
"identifier": "T0", 0.0.55.0
"results": [
{
"type": "Gvwr",
"state": "Success"
},
{
"type": "Mam",
"state": "Success"
},
{
"type": "MuWeight",
"state": "Success"
}
],
"originalRequestInfo": {
"requestedAt": "2020-12-15T17:44:48.3393663+01:00",
"requestedBy": "owner"
},
"context": {
"key": "value"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
656/722
Example “WeightChecked” partially failed
{
"notificationType": "WeightChecked"
"resourceType": "truck",
"scope": "",
"sender": "",
"data": {
"transportIdentifier": "ID000000",
"siteIdentifier": "LIE", 0.0.53.0
"name": "T0", 0.0.55.0
"identifier": "T0", 0.0.55.0
"results": [
{
"type": "Gvwr",
"state": "Success"
},
{
"type": "Mam",
"state": "Success"
},
{
"type": "MuWeight",
"state": "Failure",
"message": "The current weight value '40' is above the expected one '25' considering the
current loaded material units."
}
],
"originalRequestInfo": {
"requestedAt": "2020-12-15T17:44:48.3393663+01:00",
"requestedBy": "owner"
},
"context": {
"key": "value"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
657/722
Example “WeightChecked” successful
{
"notificationType": "WeightChecked"
"resourceType": "wagon",
"scope": "",
"sender": "",
"data": {
"transportIdentifier": "ID000000",
"siteIdentifier": "LIE", 0.0.53.0
"name": "W0", 0.0.55.0
"identifier": "TestWagon0", 0.0.55.0
"results": [
{
"type": "Gvwr",
"state": "Success"
},
{
"type": "Mam",
"state": "Success"
},
{
"type": "MuWeight",
"state": "Success"
}
],
"originalRequestInfo": {
"requestedAt": "2020-12-15T17:44:48.3393663+01:00",
"requestedBy": "owner"
},
"context": {
"key": "value"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
658/722
Example “WeightChecked” partially failed
{
"notificationType": "WeightChecked"
"resourceType": "wagon",
"scope": "",
"sender": "",
"data": {
"transportIdentifier": "ID000000",
"siteIdentifier": "LIE", 0.0.53.0
"name": "W0", 0.0.55.0
"identifier": "TestWagon0", 0.0.55.0
"results": [
{
"type": "Gvwr",
"state": "Success"
},
{
"type": "Mam",
"state": "Success"
},
{
"type": "MuWeight",
"state": "Failure",
"message": "The current weight value '40' is above the expected one '25' considering the
current loaded material units."
}
],
"originalRequestInfo": {
"requestedAt": "2020-12-15T17:44:48.3393663+01:00",
"requestedBy": "owner"
},
"context": {
"key": "value"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
659/722
Anomalies
See MuOnMulipleTransports
See NotAccessibleMuDetected
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
660/722
4.19. Mobile Container & Transport states
All transports that have the state closed or cancelled will be removed from the instruction context
after X days. (X is configuration parameter)
Context
Transport
value
Loading Instruction
loading instruction transport useCases
property
property
value
isChartered = null
not allocated
definitionLevel Draft
state
Created
not allocated
definitionLevel Draft
state
Ordered
isChartered = true not allocated
definitionLevel FullyDefined
state
Confirmed
isChartered = true allocated
definitionLevel FullyDefined
state
Arrived
isChartered = true allocated+departure (empty)
definitionLevel FullyDefined
state
Confirmed
isChartered = true (empty)
definitionLevel FullyDefined
state
Confirmed
isChartered = true allocated+loading
definitionLevel FullyDefined
state
Executing/Executed
isChartered = true allocated+loading+departure
definitionLevel FullyDefined
state
Closed/Completed
isChartered = true cancel transport/LI
definitionLevel FullyDefined
state
Cancelled
isChartered =
false
allocated+unloading+departure
Find here below some interesting links in order to see what happens on transport and vehicle(s)
(mobileContainer) states after performing departure or cancellation on single or multi-site transport:
•
•
•
Single-LI for all transport modes: SingleSite - States on MC after departure.pdf
Multi-LI for ROAD & MARITIME transports: MultiSite - ROAD - MARITIME Transport & MC
state after departure.pdf
Multi-LI for RAIL transport : MultiSite - RAIL Transport & MC state after departure.pdf
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
661/722
Examples
LoadPlan 2 materials
Leave
MC Status
Transport
Status
Weight check
strategy
Weight check
departure
0 loaded
0 ITL
Arrival Cancel ready
arrived
Projected
Arrival cancelled
0 loaded
1 ITL
(but it's not
in LP)
Departure
ready
executing
Projected
Actual
0 loaded
1 ITL
Departure
executing
executing
Actual
Actual
0 loaded
2 ITL
Departure
executing
executing
Actual
Actual
1 loaded
(not in LP)
0 ITL
Departure
executing
executing
Actual
Actual
1 loaded
0 ITL
Departure
executing
executing
Actual
Actual
1 loaded
1 ITL
Departure
executing
executing
Actual
Actual
2 loaded
0 ITL
Departure
executed
executed
Actual
Actual
2 loaded
1 ITL
(but it's not
in LP)
Departure
executed
executed
Actual
Actual
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
662/722
No LoadPlan (Implies known MC)
Leave
MC Status
Transport
Status
Weight check
strategy
Weight check
departure
0 loaded
0 ITL
Arrival Cancel ready
arrived
Projected
Arrival cancelled
0 loaded
1 ITL
Departure
ready
executing
Projected
Actual
0 loaded
2 ITL
Departure
ready
executing
Projected
Actual
1 loaded
0 ITL
Departure
executing
executing
Actual
Actual
1 loaded
1 ITL
Departure
executing
executing
Actual
Actual
2 loaded
0 ITL
Departure
executing
executing
Actual
Actual
Leave
MC Status
Transport
Status
No Allocated MC
0 loaded
0 ITL
0 loaded
1 ITL
0 loaded
2 ITL
Can’t leave
with no MC’s
at all
N/A
confirmed
Projected weight check strategy: GVWR, MAM vs. what we expect in the loadplan
Actual weight check strategy: GVWR, MAM, First weighing (tare) + weight of materials vs. last
weighing
Arrival cancelled check strategy: First weighing vs. last weighing
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
663/722
4.20. Anomalies
0.0.48.0
Introduction
TODO
Common data
Anomaly Detected
{
resourceType (string) = [‘anomaly’],
notificationType (string) = [‘AnomalyDetected’],
sender (string),
scope (string),
data {
senderId (string),
timeStamp (datetime),
anomalyId (string),
siteIdentifier (string), 0.0.56.0
type (string),
reason (string, optional),
comment (string, optional),
metadata (json, optional),
source {
parent (json) , optional = source),
id (string),
businessEntityName (string)
}
originalRequestInfo {
requestedAt (datetime),
requestedBy (string)
},
context (string)
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
664/722
Anomaly Fixed
{
resourceType (string) = [‘anomaly’],
notificationType (string) = [‘AnomalyFixed’],
sender (string),
scope (string),
data {
anomalyId (string, optional),
siteIdentifier (string), 0.0.56.0
types [(string)],
source {
parent (json) = [null or source],
id (string),
businessEntityName (string)
}
originalRequestInfo {
requestedAt (datetime),
requestedBy (string)
},
context (string)
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
665/722
Get by id
0.0.49.0
Allows to get an anomaly by id.
HTTP Request
GET /anomaly-api/v1/anomalies/{id}
Request Parameters
id (string)
Responses
Response 404 (NotFound)
Response 200 (Ok)
{
id (string),
type (string),
severity (string) [‘warning’, ‘error’]
comment (string),
reason (string),
metadata (Json),
requestedAt (datetime),
source {
id (string),
compositeKey ([(string), …], optional)
businessEntityName (string),
siteIdentifier (string), 0.0.56.0
paths [
{
parent {
parent (hierarchy),
id (string),
compositeKey ([(string), …], optional)
businessEntityName (string),
},
id (string),
compositeKey ([(string), …], optional)
businessEntityName: (string),
}
]
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
666/722
Example
{
"id": "a1",
"type": "gvwrExceeded",
"severity": "error",
"siteIdentifier": "LIE", 0.0.56.0
"comment": "comment",
"reason": "reason",
"metadata": {…},
"requestedAt": "2021-02-16T09:58:38.816322+01:00",
"source": {
"id": "1-MC",
"businessEntityName": "MC",
"paths": [
{
"parent": {
"parent": null,
"id": "1",
"businessEntityName": "SITE"
},
"id": "1",
"businessEntityName": "MC"
}
]
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
667/722
Get by entity name and identifier
0.0.49.0
Allows to get a list of anomalies by the name of the entity type and its identifier. It is also possible to
only get the anomalies of a specific type when passing the ‘type’ parameter.
HTTP Request
GET /anomaly-api/v1/anomalies/searches
Responses
Response 200 (Ok)
{
anomalies [{
id (string),
siteIdentifier (string), 0.0.56.0
type (string),
severity (string) [‘warning’, ‘error’]
comment (string),
reason (string),
metadata (Json),
requestedAt (datetime),
source {
id (string),
compositeKey ([(string), …], optional)
businessEntityName (string),
paths [
{
parent {
parent (hierarchy),
id (string),
compositeKey ([(string), …], optional)
businessEntityName (string),
},
id (string),
compositeKey ([(string), …], optional)
businessEntityName: (string),
}
]},
}, …]
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
668/722
Example
{
"anomalies": [{
"id": "a1",
"type": "gvwrExceeded",
"severity": "error",
"siteIdentifier": "LIE", 0.0.56.0
"comment": "comment",
"reason": "reason",
"metadata": {…},
"requestedAt": "2021-02-16T09:58:38.816322+01:00",
"source": {
"id": "1-MC",
"businessEntityName": "MC",
"paths": [
{
"parent": {
"parent": null,
"id": "1",
"businessEntityName": "SITE"
},
"id": "1",
"businessEntityName": "MC"
}
]
}
}]
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
669/722
Get by custom filter
Allows to get a list of anomalies by a query.
HTTP Request
GET /anomaly-api/v1/anomalies/searches
Request Body
{
"sourceId": "…"
"entityName": "…"
"query": {
…
},
"select": [
{
…
],
"paging": {
"pageSize": 0,
"pageNumber": 0
},
"orderBy": {
…
},
"includes": [ {
…
}]
}
Responses
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
670/722
Response 200 (Ok)
[
id (string),
compositeKey ([(string), …], optional)
businessEntityName (string),
anomalies [{
id (string),
type (string),
severity (string), [‘warning’, ‘error’]
siteIdentifier (string), 0.0.56.0
comment (string),
reason (string),
metadata (Json),
requestedAt (datetime),
source {
id (string),
compositeKey ([(string), …], optional)
businessEntityName (string),
paths [
{
parent {
parent (hierarchy),
id (string),
compositeKey ([(string), …], optional)
businessEntityName (string),
},
id (string),
compositeKey ([(string), …], optional)
businessEntityName: (string),
}
]},
}, …],
…
]
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
671/722
Example
{
"totalPages": 1,
"items": [
{
"id": "a4",
"type": "NoLoadPlanPossible",
"severity": "error",
"siteIdentifier": "LIE", 0.0.56.0
"comment": "",
"reason": "",
"metadata": {…},
"requestedAt": "2021-07-12T10:17:26.3068364+02:00",
"source": {
"id": "1-M",
"compositeKey": [],
"businessEntityName": "M",
"paths": [
{
"parent": {
"parent": null,
"id": "1",
"compositeKey": null,
"businessEntityName": "TRS"
},
"id": "1",
"compositeKey": null,
"businessEntityName": "M"
}
]
}
}
],
"hasPreviousPage": false,
"hasNextPage": false,
"pageIndex": 0,
"pageSize": 20,
"totalCount": 1
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
672/722
Get multiple entities
0.0.56.0
Allows to get a list of entities and their anomalies by the name of the entity type and a list of
identifiers.
HTTP Request
GET /anomaly-api/v1/entities/searches
Request Body
{
ids [ (string), …],
entityName (string),
}
Responses
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
673/722
Response 200 (Ok)
[
id (string),
compositeKey ([(string), …], optional)
businessEntityName (string),
anomalies [{
id (string),
type (string),
severity (string), [‘warning’, ‘error’]
siteIdentifier (string), 0.0.56.0
comment (string),
reason (string),
metadata (Json),
requestedAt (datetime),
source {
id (string),
compositeKey ([(string), …], optional)
businessEntityName (string),
paths [
{
parent {
parent (hierarchy),
id (string),
compositeKey ([(string), …], optional)
businessEntityName (string),
},
id (string),
compositeKey ([(string), …], optional)
businessEntityName: (string),
}
]},
}, …],
…
]
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
674/722
Example
[{
“id": "1",
"businessEntityName": "MC"
"anomalies": [{
"id": "a1",
"type": "gvwrExceeded",
"severity": "error",
"siteIdentifier": "LIE", 0.0.56.0
"comment": "comment",
"reason": "reason",
"metadata": {…},
"requestedAt": "2021-02-16T09:58:38.816322+01:00",
"source": {
"id": "1-MC",
"businessEntityName": "MC",
"paths": [
{
"parent": {
"parent": null,
"id": "1",
"businessEntityName": "SITE"
},
"id": "1",
"businessEntityName": "MC"
}
]
}
}]
}, …]
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
675/722
Custom Anomaly
Create or update anomaly
0.0.49.0
Allows to create or update an anomaly.
HTTP Request
PUT /anomaly-api/v1/anomalies/{id}
Request Parameters
id (string)
Request Body
{
source {
parent (json) , optional = source),
id (string),
businessEntityName (string)
},
type (string),
siteIdentifier (string), 0.0.56.0
transportIdentifier (string), 0.0.59.0
reason (string, optional),
comment (string, optional),
senderId (string),
timeStamp (datetime),
metadata (json, optional),
arguments [ {
(string),
(json)
}, …
],
severity (string) [‘warning’, ‘error’]
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
676/722
Responses
Response 200 (Ok)
Example
{
"anomalyId":"id",
"source":{
"id":"DefaultIdentifier",
"businessEntityName":"DefaultEntityName"
},
"type":"type",
"siteIdentifier": "LIE", 0.0.56.0
"transportIdentifier": "LIE", 0.0.59.0
"senderId":"DefaultIdentifier",
"timeStamp":"637490664373752330",
"severity":"warning"
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
677/722
Delete anomaly
0.0.49.0
Allows to delete an anomaly.
HTTP Request
DELETE /anomaly-api/v1/anomalies/{id}
Request Parameters
id (string)
Responses
Response 200 (Ok)
Response 404 (NotFound)
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
678/722
VehicleRefused
A vehicle allocated to a transport was refused (wrong weight, security/safety problem, wrong
type/…)
{
"resourceType": null,
"notificationType": "AnomalyDetected",
"sender": null,
"scope": null,
"data": {
"senderId": "ID000000",
"timeStamp": "637456248798801606",
"anomalyId": null,
"source": {
"parent": null,
"id": "ID000000",
"businessEntityName": "Truck" / “Wagon”
},
"type": "vehicleRefused",
"siteIdentifier": "LIE", 0.0.56.0
"reason": "reason",
"comment": "comment",
"metadata": null,
"arguments": null,
"context": {
"key": "value"
},
"originalRequestInfo": {
"requestedAt": "2021-01-07T14:01:10.982162+00:00",
"requestedBy": "owner"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
679/722
OutOfStock
There are not enough materials in stock to create a loadplan satisfying minimal loading tonnage for
the Transport/vehicle of the transport
TODO
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
680/722
NoLoadPlanPossible
It is not possible to create a loadplan satisfying the loading requirments for a transport/vehicle of the
transport
TODO
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
681/722
UnexpectedMuLoaded
MU loaded on the transport/vehicle and it is not in the loadplan of that transport
{
"resourceType": "anomaly",
"notificationType": "AnomalyDetected",
"sender": "Artemis.Transport.Execution",
"scope": null,
"data": {
"anomalyId": "4c93930c-ce0b-4724-b9e2-02b2c45908e9",
"type": "unexpectedMuLoaded",
"siteIdentifier": "LIE", 0.0.56.0
"senderId": "33-33",
"timeStamp": "637456248798801606",
"source": {
"parent": {
"parent": {
"parent": {
"id": "ID000000",
"businessEntityName": "Transport"
},
"id": "ID000000",
"businessEntityName": "Truck"
},
"id": "ID000000",
"businessEntityName": "Trailer"
},
"id": "33-33",
"compositeKey": [
"33",
"33"
],
"businessEntityName": "MaterialUnit"
},
"originalRequestInfo": {
"requestedAt": "2021-01-07T14:39:43.5443114+01:00",
"requestedBy": "owner"
},
"context": {
"key": "value"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
682/722
{
"ResourceType": "anomaly",
"NotificationType": "AnomalyFixed",
"Sender": "Artemis.Transport.Execution",
"Scope": null,
"Data": {
"types": [
"unexpectedMuLoaded"
],
"siteIdentifier": "LIE", 0.0.56.0
"source": {
"parent": {
"parent": {
"parent": {
"id": "ID000000",
"businessEntityName": "Transport"
},
"id": "ID000000",
"businessEntityName": "Truck"
},
"id": "ID000000",
"businessEntityName": "Trailer"
},
"id": "33-33",
"businessEntityName": "MaterialUnit",
},
"originalRequestInfo": {
"requestedAt": "2021-01-07T16:14:49.5556593+01:00",
"requestedBy": "owner"
},
"context": {
"key": "value"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
683/722
MuWithProblemLoaded
MU with known problem loaded on the transport (Quality problem, not ready to ship, …. ) "blocked
MU".
{
"resourceType": "anomaly",
"notificationType": "AnomalyDetected",
"sender": "Artemis.Transport.Execution",
"scope": null,
"data": {
"anomalyId": "b5c7a7bf-5608-4d26-85ca-3896630824c3",
"type": "muWithProblemLoaded",
"siteIdentifier": "LIE", 0.0.56.0
"senderId": "33-33",
"timeStamp": "637456248798801606",
"source": {
"parent": {
"parent": {
"parent": {
"id": "ID000000",
"businessEntityName": "Transport"
},
"id": "ID000000",
"businessEntityName": "Truck"
},
"id": "ID000000",
"businessEntityName": "Trailer"
},
"id": "33-33",
"compositeKey": [
"33",
"33"
],
"businessEntityName": "MaterialUnit"
},
"originalRequestInfo": {
"requestedAt": "2021-01-07T14:39:43.5443114+01:00",
"requestedBy": "owner"
},
"context": {
"key": "value"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
684/722
{
"ResourceType": "anomaly",
"NotificationType": "AnomalyFixed",
"Sender": "Artemis.Transport.Execution",
"Scope": null,
"Data": {
"anomalyId": "b5c7a7bf-5608-4d26-85ca-3896630824c3",
"types": [ "muWithProblemLoaded" ],
"siteIdentifier": "LIE", 0.0.56.0
"source": {
"parent": {
"parent": {
"parent": {
"id": "ID000000",
"businessEntityName": "Transport"
},
"id": "ID000000",
"businessEntityName": "Truck"
},
"id": "ID000000",
"businessEntityName": "Trailer"
},
"id": "33-33",
"businessEntityName": "MaterialUnit"
},
"originalRequestInfo": {
"requestedAt": "2021-01-07T14:39:43.5443114+01:00",
"requestedBy": "owner"
},
"context": {
"key": "value"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
685/722
ImpossibleToLoad
Not possible to load requested (mustload or in loadplan) MU on transport
{
"resourceType": "anomaly",
"notificationType": "AnomalyDetected",
"sender": "Artemis.Transport.Execution",
"data": {
"anomalyId": "ITL-ID000001-LIE-11-11", 0.0.56.0
"source": {
"id": "ID000001",
"businessEntityName": "Transport"
},
"type": "impossibleToLoad",
"siteIdentifier": "LIE", 0.0.56.0
"reason": "reason",
"metadata": {
"__arguments": {
"lmiContext": "11",
"lmiNumber": "11"
}
},
"senderId": "ID000001",
"timeStamp": "637503544846260492",
"originalRequestInfo": {
"requestedAt": "2021-03-03T08:47:57.4044905+01:00",
"requestedBy": "owner"
},
"context": {
"key": "value"
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
686/722
{
"ResourceType": "anomaly",
"NotificationType": "AnomalyFixed",
"Sender": "Artemis.Transport.Execution",
"Scope": null,
"Data": {
"anomalyId": "ef993d4a-230e-4625-8347-d0d02a8f6606",
"type": [ "impossibleToLoad" ],
"siteIdentifier": "LIE", 0.0.56.0
"reason": "reason",
"source": {
"parent": {
"parent": {
"id": "ID000001",
"businessEntityName": "Transport"
},
"id": "wagon1",
"businessEntityName": "Wagon"
},
"id": "11-11",
"businessEntityName": "MaterialUnit"
},
"originalRequestInfo": {
"requestedAt": "2021-01-07T14:48:34.2002645+01:00",
"requestedBy": "owner"
},
"context": {
"key": "value"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
687/722
MuLoadedOnWrongPosition
MU was loaded on the MC, and the precise position was requested, but it's not loaded on the right
position on the MC
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
688/722
{
"resourceType": "anomaly",
"notificationType": "AnomalyDetected",
"sender": "Artemis.Transport.Execution",
"scope": null,
"data": {
"anomalyId": "eab66f68-3a7f-4e05-b61c-d995365808d3",
"type": "muLoadedOnWrongPosition",
"siteIdentifier": "LIE", 0.0.56.0
"senderId": "11-11",
"timeStamp": "637456248798801606",
"source": {
"parent": {
"parent": {
"parent": {
"id": "ID000000",
"businessEntityName": "Transport"
},
"id": "ID000000",
"businessEntityName": "Truck"
},
"id": "ID000000",
"businessEntityName": "Trailer"
},
"id": "11-11",
"compositeKey": [
"11",
"11"
],
"businessEntityName": "MaterialUnit"
},
“metadata”: {
“__arguments” : {
“expectedPosition” : {
"cradleFrontToRearIndex": 1,
"cradleLeftToRightIndex": 1,
"level": 1,
"orientation": "axisVertical",
"spireOrientation": "topToFront"
},
“actualPosition” : {
"cradleFrontToRearIndex": 3,
"cradleLeftToRightIndex": 5,
"level": 1,
"orientation": "axisVertical",
"spireOrientation": "topToFront"
}
}
},
"originalRequestInfo": {
"requestedAt": "2021-01-07T14:50:31.137737+01:00",
"requestedBy": "owner"
},
"context": {
"key": "value"
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
689/722
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
690/722
{
"resourceType": "anomaly",
"notificationType": "AnomalyFixed",
"sender": "Artemis.Transport.Execution",
"scope": null,
"data": {
"anomalyId": "eab66f68-3a7f-4e05-b61c-d995365808d3",
"type": [ "muLoadedOnWrongPosition" ],
"siteIdentifier": "LIE", 0.0.56.0
"senderId": "11-11",
"timeStamp": "637456248798801606",
"source": {
"parent": {
"parent": {
"parent": {
"id": "ID000000",
"businessEntityName": "Transport"
},
"id": "ID000000",
"businessEntityName": "Truck"
},
"id": "ID000000",
"businessEntityName": "Trailer"
},
"id": "11-11",
"businessEntityName": "MaterialUnit"
},
“metadata”: {
“__arguments” : {
“expectedPosition” : {
"cradleFrontToRearIndex": 1,
"cradleLeftToRightIndex": 1,
"level": 1,
"orientation": "axisVertical",
"spireOrientation": "topToFront"
},
“actualPosition” : {
"cradleFrontToRearIndex": 3,
"cradleLeftToRightIndex": 5,
"level": 1,
"orientation": "axisVertical",
"spireOrientation": "topToFront"
}
}
},
"originalRequestInfo": {
"requestedAt": "2021-01-07T14:50:31.137737+01:00",
"requestedBy": "owner"
},
"context": {
"key": "value"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
691/722
MuUnloadedFromClosedTransport
0.0.61.0
{
"resourceType": "anomaly",
"notificationType": "AnomalyDetected",
"sender": "Artemis.Transport.Execution",
"scope": "LIE",
"data": {
"source": {
"id": "ID000000",
"businessEntityName": "Transport"
},
"siteIdentifier": "LIE",
"type": "muUnloadedFromClosedTransport",
"metadata": {
"__arguments": {
"materialUnitIdentifier": "11-11"
}
},
"senderId": "ID000000",
"timeStamp": "637716988255045380",
"originalRequestInfo": {
"requestedAt": "2021-11-05T09:45:32.9668862+01:00",
"requestedBy": "owner"
},
"context": {
"key": "value"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
692/722
MuNotLoaded
End of loading was declared for a vehicle or transport, but the MU of the loadplan was not loaded
{
"resourceType": "anomaly",
"notificationType": "AnomalyDetected",
"sender": "Artemis.Transport.Execution",
"scope": null,
"data": {
"type": "muNotLoaded",
"siteIdentifier": "LIE", 0.0.56.0
"senderId": "11-11",
"timeStamp": "637456248798801606",
"source": {
"parent": {
"parent": {
"parent": {
"id": "ID000000",
"businessEntityName": "Transport"
},
"id": "ID000000",
"businessEntityName": "Truck"
},
"id": "ID000000",
"businessEntityName": "Trailer"
},
"id": "11-11",
"compositeKey": [
"11",
"11"
],
"businessEntityName": "MaterialUnit"
},
"originalRequestInfo": {
"requestedAt": "2021-01-07T14:52:13.2952129+01:00",
"requestedBy": "owner"
},
"context": {
"key": "value"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
693/722
{
"resourceType": "anomaly",
"notificationType": "AnomalyFixed",
"sender": "Artemis.Transport.Execution",
"scope": null,
"data": {
"type": [ "muNotLoaded" ],
"siteIdentifier": "LIE", 0.0.56.0
"source": {
"parent": {
"parent": {
"parent": {
"id": "ID000000",
"businessEntityName": "Transport"
},
"id": "ID000000",
"businessEntityName": "Truck"
},
"id": "ID000000",
"businessEntityName": "Trailer"
},
"id": "11-11",
"businessEntityName": "MaterialUnit"
},
"originalRequestInfo": {
"requestedAt": "2021-01-07T14:52:13.2952129+01:00",
"requestedBy": "owner"
},
"context": {
"key": "value"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
694/722
MuNotFinalChecked
End of loading was declared for a vehicle or transport, but the MU on the loadplan was not checked
{
"resourceType": "anomaly",
"notificationType": "AnomalyDetected",
"sender": "Artemis.Transport.Execution",
"scope": null,
"data": {
"type": "muNotFinalChecked",
"siteIdentifier": "LIE", 0.0.56.0
"senderId": "11-11",
"timeStamp": "637456248798801606",
"source": {
"parent": {
"parent": {
"id": "ID000001",
"businessEntityName": "Transport"
},
"id": "wagon1",
"businessEntityName": "Wagon"
},
"id": "11-11",
"compositeKey": [
"11",
"11"
],
"businessEntityName": "MaterialUnit"
},
"originalRequestInfo": {
"requestedAt": "2021-01-07T14:53:15.3956384+01:00",
"requestedBy": "owner"
},
"context": {
"key": "value"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
695/722
{
"resourceType": "anomaly",
"notificationType": "AnomalyFixed",
"sender": "Artemis.Transport.Execution",
"scope": null,
"data": {
"types": [
"muNotFinalChecked"
],
"siteIdentifier": "LIE", 0.0.56.0
"source": {
"parent": {
"parent": {
"id": "ID000001",
"businessEntityName": "Transport"
},
"id": "wagon1",
"businessEntityName": "Wagon"
},
"id": "11-11",
"businessEntityName": "MaterialUnit"
},
"originalRequestInfo": {
"requestedAt": "2021-01-07T14:53:15.3956384+01:00",
"requestedBy": "owner"
},
"context": {
"key": "value"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
696/722
MuFinalCheckError
Final check was failed for a MU
{
"ResourceType": "anomaly",
"NotificationType": "AnomalyDetected",
"Sender": "Artemis.Transport.Execution",
"Scope": null,
"Data": {
"anomalyId": "fad42018-793e-4cff-a1c8-82be361240fe",
"type": "muFinalCheckError",
"siteIdentifier": "LIE", 0.0.56.0
"senderId": "11-11",
"timeStamp": "637456248798801606",
"reason": "reason",
"comment": "comment",
"source": {
"parent": {
"parent": {
"id": "ID000001",
"businessEntityName": "Transport"
},
"id": "wagon1",
"businessEntityName": "Wagon"
},
"id": "11-11",
"compositeKey": [
"11",
"11"
],
"businessEntityName": "MaterialUnit"
},
"originalRequestInfo": {
"requestedAt": "2021-01-07T14:54:50.7605793+01:00",
"requestedBy": "owner"
},
"context": {
"key": "value"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
697/722
{
"ResourceType": "anomaly",
"NotificationType": "AnomalyFixed",
"Sender": "Artemis.Transport.Execution",
"Scope": null,
"Data": {
"anomalyId": "fad42018-793e-4cff-a1c8-82be361240fe",
"type": [ "muFinalCheckError" ],
"siteIdentifier": "LIE", 0.0.56.0
"reason": "reason",
"comment": "comment",
"source": {
"parent": {
"parent": {
"id": "ID000001",
"businessEntityName": "Transport"
},
"id": "wagon1",
"businessEntityName": "Wagon"
},
"id": "11-11",
"businessEntityName": "MaterialUnit"
},
"originalRequestInfo": {
"requestedAt": "2021-01-07T14:54:50.7605793+01:00",
"requestedBy": "owner"
},
"context": {
"key": "value"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
698/722
MuOnMultipleTransports
{
"resourceType": "anomaly",
"notificationType": "AnomalyDetected",
"sender": "Artemis.Transport.Execution",
"scope": null,
"data": {
"anomalyId": "4c93930c-ce0b-4724-b9e2-02b2c45908e9",
"type": "muOnMultipleTransports",
"siteIdentifier": "LIE", 0.0.56.0
"senderId": "ID000000",
"timeStamp": "637456248798801606",
"source": {
"id": "ID000000",
"businessEntityName": "Transport"
},
"originalRequestInfo": {
"requestedAt": "2021-01-07T14:39:43.5443114+01:00",
"requestedBy": "owner"
},
“metadata”: {
“__arguments” : {
“materialUnitIdentifier” : “11-11”
},
"context": {
"key": "value"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
699/722
{
"ResourceType": "anomaly",
"NotificationType": "AnomalyFixed",
"Sender": "Artemis.Transport.Execution",
"Scope": null,
"Data": {
"anomalyId": "4c93930c-ce0b-4724-b9e2-02b2c45908e9",
"types": [ "muOnMultipleTransports" ],
"siteIdentifier": "LIE", 0.0.56.0
"source": {
"id": "ID000000",
"businessEntityName": "Transport"
},
"originalRequestInfo": {
"requestedAt": "2021-01-07T14:39:43.5443114+01:00",
"requestedBy": "owner"
},
“metadata”: {
“__arguments” : {
“materialUnitIdentifier” : “11-11”
},
"context": {
"key": "value"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
700/722
NotAccessibleMuDetected
0.0.59.0
When saving a loading instruction or loadplan, or when opening/closing a bay or location, it is
possible that Artemis core detects that some of the MU's that are linked to a transport are not
accessible.
{
"resourceType": "anomaly",
"notificationType": "AnomalyDetected"
"sender": "Artemis.Material",
"scope": null,
"data": {
"anomalyId": "3942b956-6319-4c0f-8645-09cc3830fdbc",
"type": "NotAccessibleMuDetected",
"siteIdentifier": "LIE"
"senderId": "ID000000",
"timeStamp": "637456248798801606",
"source": {
"parent": {
"id": "ID000000",
"businessEntityName": "Transport"
},
"compositeKey": [
"LIE",
"ID000001"
],
"businessEntityName": "MaterialUnit"
},
"originalRequestInfo": {
"requestedAt": "2021-01-07T14:45:54.6223329+01:00",
"requestedBy": "owner"
},
"context": {
"key": "value"
}
}
}
MamExceeded
Weight loaded on a vehicle exceeds the MAM/derogation for the transport
OR total weight computer by loaddetermiantion for a vehicle exceed the MAM/derogation for the
transport
OR weight weighed exceeds the MAM/derogation for the transport.
MAM is per Transport = whole train or truck. A derogation mass is only possible for trucks.
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
701/722
{
"ResourceType": "anomaly",
"NotificationType": "AnomalyDetected",
"Sender": "Artemis.Transport.Execution",
"Scope": null,
"Data": {
"type": "mamExceeded",
"siteIdentifier": "LIE", 0.0.56.0
"senderId": "ID000000",
"timeStamp": "637456248798801606",
"source": {
"parent": {
"id": "ID000000",
"businessEntityName": "Transport"
},
"id": "ID000000",
"businessEntityName": "Truck"
},
"originalRequestInfo": {
"requestedAt": "2021-01-07T14:39:43.5443114+01:00",
"requestedBy": "owner"
},
"context": {
"key": "value"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
702/722
{
"ResourceType": "anomaly",
"NotificationType": "AnomalyFixed",
"Sender": "Artemis.Transport.Execution",
"Scope": null,
"Data": {
"types": [ "mamExceeded" ],
"siteIdentifier": "LIE", 0.0.56.0
"source": {
"parent": {
"id": "ID000000",
"businessEntityName": "Transport"
},
"id": "ID000000",
"businessEntityName": "Truck"
},
"originalRequestInfo": {
"requestedAt": "2021-01-07T14:39:43.5443114+01:00",
"requestedBy": "owner"
},
"context": {
"key": "value"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
703/722
GvwrExceeded
"Weight loaded on a vehicle exceeds its GVWR
OR total weight computed by loaddetermination for a vehicle exceed the GVWR of a vehicle
OR weight weighed exceeds the GVWR for the vehicle
(GVWR is per vehicle - truck or wagon)"
{
"ResourceType": "anomaly",
"NotificationType": "AnomalyDetected",
"Sender": "Artemis.Transport.Execution",
"Scope": null,
"Data": {
"type": "gvwrExceeded",
"siteIdentifier": "LIE", 0.0.56.0
"senderId": "ID000000",
"timeStamp": "637456248798801606",
"source": {
"parent": {
"id": "ID000000",
"businessEntityName": "Transport"
},
"id": "ID000000",
"businessEntityName": "Truck"
},
"originalRequestInfo": {
"requestedAt": "2021-01-07T14:39:43.5443114+01:00",
"requestedBy": "owner"
},
"context": {
"key": "value"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
704/722
{
"ResourceType": "anomaly",
"NotificationType": "AnomalyFixed",
"Sender": "Artemis.Transport.Execution",
"Scope": null,
"Data": {
"types": [
"gvwrExceeded"
],
"siteIdentifier": "LIE", 0.0.56.0
"source": {
"parent": {
"id": "ID000000",
"businessEntityName": "Transport"
},
"id": "ID000000",
"businessEntityName": "Truck"
},
"originalRequestInfo": {
"requestedAt": "2021-01-07T14:39:43.5443114+01:00",
"requestedBy": "owner"
},
"context": {
"key": "value"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
705/722
WeightIncoherence
There is a difference in the weight at arrival vs weight at departure (taking into account
loaded/unloaded materials)
{
"ResourceType": "anomaly",
"NotificationType": "AnomalyDetected",
"Sender": "Artemis.Transport.Execution",
"Scope": null,
"Data": {
"anomalyId": "6186a640-0b0d-4308-9f7b-75921a7cace3",
"type": "weightIncoherence",
"siteIdentifier": "LIE", 0.0.56.0
"senderId": "ID000000",
"timeStamp": "637456248798801606",
"reason": "The current weight value '25' is below the expected one '55' considering the current
loaded and to load material units.",
"source": {
"parent": {
"id": "ID000000",
"businessEntityName": "Transport"
},
"id": "ID000000",
"businessEntityName": "Truck"
},
"originalRequestInfo": {
"requestedAt": "2021-01-07T14:39:43.5443114+01:00",
"requestedBy": "owner"
},
"context": {
"key": "value"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
706/722
{
"ResourceType": "anomaly",
"NotificationType": "AnomalyFixed",
"Sender": "Artemis.Transport.Execution",
"Scope": null,
"Data": {
"anomalyId": "6186a640-0b0d-4308-9f7b-75921a7cace3",
"types": [ "weightIncoherence" ],
"siteIdentifier": "LIE", 0.0.56.0
"reason": "The current weight value '25' is below the expected one '55' considering the current
loaded and to load material units.",
"source": {
"parent": {
"id": "ID000000",
"businessEntityName": "Transport"
},
"id": "ID000000",
"businessEntityName": "Truck"
},
"originalRequestInfo": {
"requestedAt": "2021-01-07T14:39:43.5443114+01:00",
"requestedBy": "owner"
},
"context": {
"key": "value"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
707/722
SafetyCheckFailed
A safety check was done for a vehicle/driver, and it failed
One anomaly is sent by safety checked.
{
"ResourceType": "anomaly",
"NotificationType": "AnomalyDetected"
"Sender": "Artemis.Transport.Execution",
"Scope": null,
"Data": {
"anomalyId": "ccd2bfd0-7fb9-4507-af0a-95b993dca4a7",
"type": "safetyCheckFailed",
"siteIdentifier": "LIE", 0.0.56.0
"senderId": "ID000000",
"timeStamp": "637456248798801606",
"reason": "LoadLashing",
"source": {
"id": "ID000000",
"businessEntityName": "Transport"
},
"originalRequestInfo": {
"requestedAt": "2021-01-07T14:43:46.6197242+01:00",
"requestedBy": "owner"
},
"context": {
"key": "value"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
708/722
FailureToShowUp
Vehicle (Truck) does not respect it's timeslot or shows up too early or too late
{
"resourceType": "anomaly",
"notificationType": "AnomalyDetected"
"sender": "Artemis.Transport.Execution",
"scope": null,
"data": {
"anomalyId": "3942b956-6319-4c0f-8645-09cc3830fdbc",
"type": "failureToShowUp",
"siteIdentifier": "LIE", 0.0.56.0
"senderId": "ID000000",
"timeStamp": "637456248798801606",
"metadata": {
"__arguments": { 0.0.62.0
"expectedTimeSlotEarliest": "2021-11-04T11:26:42.1145252+01:00",
"expectedTimeSlotLatest": "2021-11-04T12:26:42.1145252+01:00",
"arrivalDateTime": "2021-11-04T13:26:42.1155252+01:00",
"timeSlotResult": "Late arrival"
}
},
"source": {
"parent": {
"id": "ID000000",
"businessEntityName": "Transport"
},
"id": "ID000000",
"businessEntityName": "Truck"
},
"originalRequestInfo": {
"requestedAt": "2021-01-07T14:45:54.6223329+01:00",
"requestedBy": "owner"
},
"context": {
"key": "value"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
709/722
DepartureWhileNotAllowed
A departure occurred while the departure was not requested or allowed.
{
"resourceType": "anomaly",
"notificationType": "AnomalyDetected"
"sender": "Artemis.Transport.Execution",
"scope": null,
"data": {
"anomalyId": "ccd2bfd0-7fb9-4507-af0a-95b993dca4a7",
"type": "departureWhileNotAllowed",
"siteIdentifier": "LIE", 0.0.56.0
"senderId": "ID000000",
"timeStamp": "637456248798801606",
"reason": "CIM Missing",
"source": {
"id": "ID000000",
"businessEntityName": "Transport"
},
"originalRequestInfo": {
"requestedAt": "2021-01-07T14:43:46.6197242+01:00",
"requestedBy": "owner"
},
"context": {
"key": "value"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
710/722
LoadingRefused
0.0.55.0
In some mills (like Fos) the loading can be refused for several reasons by ArcelorMittal.
ArcelorMittal is then responsible for the not-loading of the truck and will have to pay for (part of) the
transport.
{
"resourceType": "anomaly",
"notificationType": "AnomalyDetected",
"sender": "Artemis.Transport.Execution",
"data": {
"anomalyId": "ITL-ID000000-LIE-11-11", 0.0.56.0
"source": {
"id": "ID000000",
"businessEntityName": "Transport",
"isCompositeKeyEmpty": true
},
"type": "loadingRefused",
"siteIdentifier": "LIE", 0.0.56.0
"reason": "MaterialUnitNotFound",
"comment": "comment"
},
"senderId": "ID000000",
"timeStamp": "637503544846260492",
"originalRequestInfo": {
"requestedAt": "2021-03-03T08:47:57.4044905+01:00",
"requestedBy": "owner"
},
"context": {
"key": "value"
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
711/722
MuNotReadyForShipment
0.0.62.0
When saving a loading instruction or loadplan, or allocating a MobileContainer, it is possible that
Artemis core detects that some of the MU's that are linked to a transport are not ready for shipment.
{
"resourceType": "anomaly",
"notificationType": "AnomalyDetected"
"sender": "Artemis.Material",
"scope": null,
"data": {
"anomalyId": "3942b956-6319-4c0f-8645-09cc3830fdbc",
"type": "MuNotReadyForShipment",
"siteIdentifier": "LIE"
"senderId": "ID000000",
"timeStamp": "637456248798801606",
"source": {
"parent": {
"id": "ID000000",
"businessEntityName": "Transport"
},
"compositeKey": [
"LIE",
"ID000001"
],
"businessEntityName": "MaterialUnit"
},
"originalRequestInfo": {
"requestedAt": "2021-01-07T14:45:54.6223329+01:00",
"requestedBy": "owner"
},
"context": {
"key": "value"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
712/722
MuBlockedForShipment
0.0.62.0
When saving a loading instruction or loadplan, or allocating a MobileContainer, it is possible that
Artemis core detects that some of the MU's that are linked to a transport are blocked for shipment.
{
"resourceType": "anomaly",
"notificationType": "AnomalyDetected"
"sender": "Artemis.Material",
"scope": null,
"data": {
"anomalyId": "3942b956-6319-4c0f-8645-09cc3830fdbc",
"type": "MuBlockedForShipment",
"siteIdentifier": "LIE"
"senderId": "ID000000",
"timeStamp": "637456248798801606",
"source": {
"parent": {
"id": "ID000000",
"businessEntityName": "Transport"
},
"compositeKey": [
"LIE",
"ID000001"
],
"businessEntityName": "MaterialUnit"
},
"originalRequestInfo": {
"requestedAt": "2021-01-07T14:45:54.6223329+01:00",
"requestedBy": "owner"
},
"context": {
"key": "value"
}
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
713/722
5. Definitions
5.1. FreeLocation definition
It is possible to localize a truck or a convoy of wagons in a free location in a site.
A free location is for example a parking or a check in station, … but it is NEVER a bay.
A free location is defined by the following properties:
FreeLocationType: this is an enum used to localize a truck or a wagons convoy in a free
location in a site.
Following values are defined:
o
Type used by truck VMS:
CheckIn: FreeLocationName should define the local name of the check in place.
WeighingBridge: FreeLocationName should define the name of the weighing
bridge
Parking: FreeLocationName should define the local name of the parking.
CheckOut: FreeLocationName should define the local name of the checkout place.
o
Type used by wagon VMS:
Railway: FreeLocationName should define the local name of the railway
To be completed
o
Type used by Artemis core:
o InInternalTransit: this type is used by Artemis core when a truck or a wagons
convoy leaves a bay.
FreeLocationName will be completed by Artemis with the names of yard and bay
left.
o InExternalTransit: this type is used by Artemis core when a truck leaves a site and
that another loading/unloading has to be done in another site.
FreeLocationName will be completed by Artemis with the site left.
o ToExternalDestination: this type is used by Artemis core when a truck leaves a site
and all is finished for the transport.
FreeLocationName will be completed by Artemis with the site left.
FreeLocationName: it defined in more details the name of the FreeLocationType.
For example, for a parking type, it is the local name of the parking.
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
714/722
5.2. Equipment
In some cases when planning a train T&L (transport & logistics) wants to impose a specific
distribution of the coils over the wagons. This distribution must be followed by the loading teams
on the floor.
However at the time of planning the actual wagon numbers are not known, it is only at loading
that these are known. So a dummy placeholder for the wagon is used in the LI
For reporting and validation of the loading process the link between these dummies and the
actual wagons is needed.
The equipments must be specified when creating the loading instruction. Each materialgroup can
be linked to multiple equipments.
Once a wagon is allocated to a transport, it can be linked to an equipment that exists in this
transport. During this link there is a validation that checks if the wagon, equipment and possibly
equipmentgroup are all linked to the same materialgroup.
In the example hereunder we cannot link Wagon 3 to EQ3 because it was linked at allocation to
EG2. EQ3 does not belong to EG2
Global Transport
Load Instruction
At allocation to
transport
Wagon 1
Wagon 2
Materialgroup 1
List of Materials
EquipmentGroup : EG1
List of Equipments : EQ1 ; EQ2
Is part of EG1
Link to EQ1 (that must be part of EG1)
Link to EQ2 (that must be part of EG1)
Materialgroup 2
List of Materials
EquipmentGroup : EG1
List of Equipments : EQ3
Materialgroup 3
List of Materials
EquipmentGroup : EG2
Link to EQ3 does not work is not part of EG2
At allocation
to transport
Wagon 3
Is part of EG2
List of Equipments : EQ4
The above explanation focuses on Rail transport because this is the usual business case. Equipments
can however be used for other transportmodes also. In that case however the link with
EquipmentGroup is not made since we do not use this concept for Ship or Road. There is also no link
truck to equipment API , for this the generic link mobile container to equipment must be used.
5.3. Select Object
Artemis.Core allows to receive a part of an object within a query. It allows to decrease the amount of
data and to apply aggregator if coupled with a query object.
Select object is a list of SelectItem objects.
SelectItem
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
715/722
name
nodeType
string
string
Mandatory
Mandatory
property
A readable example would be
"select": [
{
"name": "lmiContext",
"nodeType": "property"
},
{
"name": "lmiNumber",
"nodeType": "property"
},
{
"name": "owner",
"nodeType": "property"
}
]
For selecting a JSON metadata property, name must be : ‘metadata.propertyname’
5.4. Query Object
Artemis.Core allows querying entities with a standardize way.
One query contains a tree of query items.
QueryItem
nodeType
string
left
ExpressionNode
right
ExpressionNode
ParameterExpressionNode
nodeType
string
type
string
name
string
Version 1.84.0
Artemis.Core Business API Documentation
Unknown, Parameter, Property, Binary,
Constant, Lambda, Unary, Call
ParameterExpressionNode,
PropertyExpressionNode,
BinaryExpressionNode,
UnaryExpressionNode,
ConstantExpressionNode,
LambdaExpressionNode,
AnyExpressionNode
Same as left
parameter
Name of class
Name of parameter
Marechal Frédéric
716/722
PropertyExpressionNode
nodeType
string
name
string
left
ExpressionNode
BinaryExpressionNode
nodeType
string
left
ExpressionNode
operator
string
right
property
Name of property
binary
unknown, and, andAlso, equal, greaterThan,
greaterThanOrEqual, lessThan,
lessThanOrEqual, not, notEqual, or, orElse
ExpressionNode
UnaryExpressionNode
nodeType
string
operator
UnaryOperator
operand
ExpressionNode
type
string
isNullable
Bool
ConstantExpressionNode
nodeType
string
value
Object
LambdaExpressionNode
noteType
string
body
ExpressionNode
parameters
string[]
AnyExpressionNode
noteType
string
left
ExpressionNode
parameterName
condition
ExpressionNode
unary
unknown, convert, not, typeAs
constant
lambda
any
0.0.41.0
InExpressionNode
noteType
string
left
ExpressionNode
parameterName
condition
ExpressionNode
Version 1.84.0
Artemis.Core Business API Documentation
in
Marechal Frédéric
717/722
Examples:
A, B and C are standard QueryItem
A and B
{
"nodeType": "binary",
"operator": "and",
"left": A,
"right": B,
A or B
}
{
"nodeType": "binary",
"operator": "or",
"left": A,
"right": B,
(A and B) or C
}
{
"nodeType": "binary",
"operator": "or",
"left": {
"operator": "and",
"left": A,
"right":B,
"nodeType": "binary"
},
"right": C,
(A or B) AND C
}
{
"nodeType": "binary",
"operator": "and",
"left": {
"nodeType": "binary"
"operator": "or",
"left": A,
"right":B,
},
"right": C,
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
718/722
A readable example would be
"query" : {
"nodeType": "binary",
"operator": "or",
"left": {
"nodeType": "binary",
"operator": "equal",
"left": {
"nodeType": "property",
"name": "lmiNumber"
},
"right": {
"nodeType": "constant",
"value": " K123456789"
},
},
"right": {
"nodeType": "binary",
"operator": "and",
"left": {
"nodeType": "binary",
"operator": "equal",
"left": {
"nodeType": "property",
"name": "lmiContext"
},
"right": {
"nodeType": "constant",
"value": "LIE"
},
},
"right": {
"nodeType": "binary",
"operator": "equal",
"left": {
"nodeType": "property",
"name": "type"
},
"right": {
"nodeType": "constant",
"value": "Coil"
},
},
},
}
In this example, LambdaExpression is not specified (around the BinaryExpression) but it is implicit
thus not required.
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
719/722
This will give entities having a lmiNumber equal to “K123456789”, or lmiContext equal to “LIE” and
type equal to “Coil”.
A readable example on Metadata (JSON) field would be
"query" : {
"nodeType": "binary",
"operator": "equal",
"left": {
"nodeType": "call",
"methodName": "JsonValue",
"arguments": [
{
"value": "MUBId",
"nodeType": "constant"
}
],
"left": {
"nodeType": "property",
"name": "metadata"
}
},
"right": {
"nodeType": "constant",
"value": "1198878000"
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
720/722
From the version 0.0.41.0, we can also use ‘In’ expression. A readable example of ‘In’ expression
would be:
{
"query":{
"methodName":"In",
"arguments":[
{
"value":[
{
"lmiContext":"LIE",
"lmiNumber":"ID000000"
},
{
"lmiContext":"GT",
"lmiNumber":"ID999999"
},
{
"lmiNumber":"ID123456"
},
{
"lmiNumber":"XXXXXXXX"
}
],
"nodeType":"constant"
}
],
"nodeType":"call"
}
}
Version 1.84.0
Artemis.Core Business API Documentation
Marechal Frédéric
721/722
5.5. Paging Object
Some GET API methods allow to work with a paging system.
Paging_V1
pageSize
Integer
pageNumber
Integer
Optional
0.0.25.0
Optional
0.0.25.0
Default value: 20
0 for first page
Defaut value: 1
0.0.25.0
5.6. OrderBy Object
Some GET API methods allow to sort result. The orderBy object is a list of orderByItem object
OrderByItem_V1
field
order
string
string (ascending/descending)
Version 1.84.0
Artemis.Core Business API Documentation
It empty : ascending
Marechal Frédéric
722/722
Download