Delivery order message EWS - LXIR Suborder LXIRSuborder result
The flow describes the arrangement of new purchase order and return order, as well as change and cancellation.
Return orders are handled as a customer order type in LXIR and as a purchase order type in the EWS. Everything that is called the purchase order or row below also applies to return orders.
Purchase orders are called Call-off orders in LXIR.
Addition of new purchase order line / return order line cannot be done.
Change of purchase order / return order can be made. This occurs when changing the delivery date and or number. Cancellation can be made by full purchase order / return order but not line. However, cancellation of the purchase order line / return order line takes place during partial storage as the old line is replaced with a new one and this in order to reduce the risk of mis-storage. If DELVRY arrives at the ready-marked line, it must be rejected and alerted.
No feedback is made from the EWS in addition to the submission of registration.
A PURORD does not have to mean that there will be a DELVRY in response to all purchase order lines / return order lines, but the answer to these can come in several separate DELVRY messages. This happens when certain lines in a PURORD are answered but not all simultaneously. There should be no more answers with reference to the same POR and associated sequence number in different messages. If this happens, the answer must be rejected and an alarm added to the error log. On the other hand, there may be several answers to the same purchase order line / return order line and sequence number in the same message.
LXIR EWS only works with balances, not the term "be".
PURCHASE ORDER
CHANGE PURCHASE ORDER
Purchase Order
All triggerings are created by events in LXIR.
- New : Call-off orders against EWS-controlled warehouses are created. Call-off orders are sent immediately to LWS / EWS.
- Change : When changing the above call order (the entire order or single line) in the ArrivalDate and OrderQuantity fields, a modified purchase order is immediately sent to the EWS.
- Cancellation : Upon cancellation of the above call-off order, a cancellation is sent to the EWS immediately. Only entire user interface purchase orders can be canceled.
All triggerings are created by events in LXIR.
- New : Return order against EWS controlled stock is created. Return orders are sent immediately to the EWS.
- Change : When changing the above order (the entire order or single line) in the ArrivalDate and OrderQuantity fields, a changed return order is sent to the EWS immediately.
- Cancellation : Upon cancellation of the above return order, a cancellation is sent to the EWS immediately. Only whole return order from user interface can be canceled.
- Purchase orders and return orders always start from LXIR.
- The article must be posted
- The supplier must be registered
- The client must be registered as a supplier (for return orders)
- Upon return order, client is sent as supplier number (SupplierId)
XML structure
LXIRSubOrder (1)
Envelope (1) LXIRSubOrder
Attribute | Code | Mand | Explanation | Lxir | EWS | Comment |
FromPartner | Y | From system | X | X | ||
FromPartnerUser | Y | Users from system / client | X | X | ||
ToPartner | Y | To system | X | X | ||
ToPartnerUser | Y | User System / Client | X | X | ||
DateTime | N | Time to create the message (YY-MM-DD hh: mm) | X | X | ||
ReferensNumber | Y | The reference number of the message | X | X | ||
InterchangeTest | N | - | - | deleted |
LXIRSubOrder Header (1-999)
HeaderInfo (1) LXIRSubOrder
Attribute | Code | Mand | Explanation | Lxir | EWS | Comment |
DocumentNumber | Y | Callback reference number | X | X | ||
DocumentName | PURORD | Y | Call-off name: PURORD | X | X | |
CreationDate | N | - | X |
Header SubOrderHeader (1)
LXIRSubOrder Header SubOrderHeader SubOrderHeaderInfo (1)
Attribute | Code | Mand | Explanation | Lxir | EWS | Comment |
OrderNumber | Y | Purchase order number alt. Return Order Number. See note below. | X | X | ||
OrderType |
| Y | Purchase Order Type | X X X X | X X - X | |
SupplierId | Y | Supplier Number. For return orders, client time is sent (see requirement) | X | X | ||
SupplierName | N | Name of supplier | X | X | ||
WarehouseId | ass | Y | Warehouse short name in / EWS | X | X | |
ArrivalDate | Y | Expected delivery date (YY-MM-DD hh: mm) | X | X | ||
SupplierOrderNumber | N | Order number from supplier | X | |||
Reference | N | Reference | X | |||
Notes | N | Public notes | X | X | ||
InternalNotes | N | Internal notes | X | X | ||
SequenceNumber | N | |||||
WarehouseSection | N | |||||
ExternalOrderNumber | N |
HeaderAds (1) LXIRSubOrder
Attribute | Code | Mand | Explanation | Lxir | EWS | Comment |
OperationCode |
2 3 0 | Y | Type | X X X X X | X X X X X |
LXIRSubOrder Header SubOrderHeader SubOrderRow (1-99999)
SubOrderRowInfo (1) LXIRSubOrder
Attribute | Code | Mand | Explanation | Lxir | EWS | Comment |
OrderPosition | Y | Purchase order line alt. Returorderrad | X | X | ||
OrderSubPosition | Y | Sub-item to the purchase order line / return order line. | X | X | ||
OwnerNumber | Y | Client affiliation, ex.NASE (VMI) | X | X | ||
ArticleId | Y | Article | X | X | ||
PackageId |
M | Y | Unit M = Meter | X | X | |
OrderQuantity | Y | Ordered quantity | X | X | Always in stock unit | |
RevisionCode | N | - | - | |||
SupplierArticleId | N | The supplier's item number. Not sent on return orders | X | X | ||
ArrivalDate | Y | Expected delivery date (YY-MM-DD hh: mm) | X | X |
SubOrderRowAdditions (1) LXIRSubOrder
Attribute | Code | Mand | Explanation | Lxir | EWS | Comment |
OperationCode |
| Y | Type | X X X X | X X X X |
LXIRSubOrder Header SubOrderHeader SubOrderRowPreAdvice(0-99999)
Attribute | Code | Mand | Explanation | Lxir | EWS | Comment |
OrderPosition | Y | Purchase order line alt. Returorderrad | X | X | v9.10 |
SubOrderRowPreAdviceInfo(1-99999) LXIRSubOrder
Attribute | Code | Mand | Explanation | Lxir | EWS | Comment |
SerialNumber | N | X | X | |||
BatchNumber | N | X | X | |||
BestBeforeDate | N | X | X | |||
PalletInfo | N | X | X | v9.11 | ||
PackageInfo | N | X | X | v9.11 | ||
IMEINumber | N | X | X | v9.11 | ||
MacAddress | N | X | X | v9.11 | ||
AntiTheftID | N | X | X | v9.11 | ||
UUID | N | X | X | v9.11 | ||
WLANMAC | N | X | X | v9.11 | ||
MSPKID | N | X | X | v9.11 | ||
IMEINumber2 | N | X | X | v10.10 | ||
ComputerName | N | X | X | v10.10 | ||
AssetNumber | N | X | X | v10.10 | ||
OrderQuantity | N | X | X | v10.11 |
Here, "IN" is always sent if it is a call-off and "RV" or "KR" if it is a return order. (RV refers to Return order Claim, KR refers to Return Order Known and Return order unknown)
The following OperationCode combinations on head and row level are allowed for purchase orders / return orders
Type | Head | Row |
New order of purchase order / return order | 1 | 1 |
Removing all rows | 3 | Not sent |
Change of one or more rows | 0 | 2 |
Change of both head and rows | 2 | 2 |
Change of purchase order header / return order header | 2 | Not sent |
Removal of one or more rows (cleaning) | 0 | 3 |
When changing lines / rows, only these rows are sent down.
When a PURORD can be counted as completed, the response has arrived on all lines as expected, a cleaning message should immediately be sent to the EWS. This message should be viewed as a cancellation of the entire purchase order / return order. This is done by sending a PURORD with only the following information at the main level
OperationCode: 3
OrderNumber: Current
What can happen when checking DELVER is that only a part of the expected number on the line came up. Partial storage and then the following should happen if there is no information that it is OK with a certain percentage deviation.
The same order head must be sent but with:
OperationCode: 0 (Nolla).
The line delineated is now to be canceled immediately and this is done on POR by sending the following:
SubOrderHeader SubOrderRow SubOrderRowAdditions OperationCode: 3
OrderPosition: Current row
OrderSubPosition: Current subpos
Then it's time to put up a new POR as the original but now with
SubOrderHeader SubOrderRow SubOrderRowAdditions OperationCode: 1
OrderPosition: Current row
OrderSubPosition: Increase by 1
OrderQuantity: The number that did not arrive.
Delivery date is available on both main level and row level. For new layouts, these have the same dates, but this can be changed in two ways:
- All lines change dates and head dates. (Change delivery date for the entire purchase order / return order)
- Single line changes date.
XML structure
LXIRSubOrderResult (1)
Envelope (1) LXIRSubOrderResult
Attribute | Code | Mand | Explanation | Lxir | EWS | Comment |
FromPartner | Y | From system | X | X | ||
FromPartnerUser | Y | Users from system / client | X | X | ||
ToPartner | Y | To system | X | X | ||
ToPartnerUser | Y | User System / Client | X | X | ||
DateTime | N | Time to create the message (YY-MM-DD hh: mm) | X | X | ||
ReferensNumber | Y | The reference number of the message | X | X | ||
InterchangeTest | N | Indicates test message | X | X |
Header (1)
HeaderInfo (1)
Attribute | Code | MAN | Explanation | Lxir | EWS | Comment |
CreationDate | Y | Created date | X | X | ||
DocumentNumber | Y | Call-off message reference number | X | X | ||
DocumentName | DELVER | Y | Name of call-off message: DELVER | X | X |
LXIRSubOrderResult \ t
SubOrderHeaderInfo (1) LXIRSubOrderResult
Attribute | Code | Mand | Explanation | Lxir | EWS | Comment |
DeliveryNumber | N | Delivery identity. Not treated | - | X | ||
WareHouseId | Y | Warehouse short name in EWS | X | X | ||
ArrivalDate | Y | Time for start of delivery registration | X | X | ||
SupplierId | N | X | X | |||
OrderNumber | Y | Purchase order number / Return order number | X | X | ||
ExternalOrderNumber | N | External order number | X | |||
SequenceNumber | Y | Purchase order / return order sequence number | X | |||
OrderType |
| Y | Purchase Order Type | X X X X | X X X X | |
WarehouseSection | N | CAMPSITE | X | |||
DeliveryNote | N | Comments from warehouse personnel regarding delivery note. No handling LXIR | X | X | ||
ConsNote | N | Waybill number. No handling LXIR. | X | X | ||
Employee | Employee who receives the delivery | - | X | |||
CancelRemaining | 0 1 | N | Will cancel all rows not received in this message | X |
SubOrderRow (1-99999) LXIRSubOrderResult
SubOrderRowInfo (1) LXIRSubOrderResult SubOrderRowInfo
Attribute | Code | Mand | Explanation | Lxir | EWS | Comment |
ArticleId | Y | Article | X | X | ||
OwnerNumber | Y | Client name in EWS (Item owner) | X | X | ||
PackageId |
| Y | Unit | X X X | X X X | |
DeliveredQuantity | Y | Delivered amount. Total, included with possibly blocked in .. DeliveryBlocked BlockedQuantity | X | X | ||
OrderPosition | Y | Line position | X | X | ||
OrderSubPosition | Y | Row Subposition | X | X | ||
OrderNumber | Y | Purchase order number / Return order number | X | X | ||
RevisionCode | N | revision code | X | X | ||
CustomerNumber | N | Customer number, not used | X | X | ||
SupplierArticleId | N | The supplier's item number | X | X | ||
AddressIdentity | N | Address identity, not used | X | X | ||
ItemId | N | Vending Identity | - | - | ||
Weight | N | Weight | X | X | ||
CancelRemainingRow | 0 1 | N | If true, the remaining part of a partially received row will be cancelled. Default is false. Default behavior is to handle remaining part of a row as a new sub position to be handled later. | X | ||
IMEINumber | N | X | v9.10 | |||
MacAddress | N | X | v9.10 | |||
AntiTheftID | N | X | v9.10 | |||
UUID | N | X | v9.11 | |||
WLANMAC | N | X | v9.11 | |||
MSPKID | N | X | v9.11 |
DeliveryBlocked (0-1) LXIRSubOrderResult
Attribute | Code | Mand | Explanation | Lxir | EWS | Comment |
BlockCode | XX | Y | However, different codes should be handled as a block regardless of code | X | - | |
PackageId | ST | Y | Unit | X | - | |
BlockedQuantity | Blocked number | X | - | |||
BlockReason | N | BlockReason Repair Broken Damage Package Bad quality | X |
The element is optional. This can be seen as an ITECHG being sent with blocking of balance directly upon delivery.
To check the response to a purchase order / return order, reference is made to the line with OrderNumber + OrderPosition + OrderSubPosition.
The answer to a line can come "split". That is, a row that is sent down with expected delivery of eg 300pcs can then come back with three rows of 100pcs on each. However, the answer to a line will always be collected within one and the same message. In this case of split, all rows have the same OrderPosition + OrderSubPosition, ie these do not count in the answer.
Over-delivery is not allowed, parent system must be updated and changed line sent before placing in storage.
XSD files (Lxir Sub Order)
XSD Files (Lxir Sub Order Result)
<? xml version = "1.0" encoding = "UTF-8"?>
- < LXIRSubOrder >
< Envelope FromPartner = " XOE " FromPartnerUser = " KERAKOLL " ToPartner = " EWS " ToPartnerUser = " KERAKOLL " DateTime = " 2008-02-06 18:17 " ReferenceNumber = " 238 " />
- < Header >
< HeaderInfo DocumentNumber = " 001238 " DocumentName = " PURORD " />
- < SubOrderHeader >
< SubOrderHeaderInfo OrderNumber = " 8 " OrderType = " IN " SupplierId = " KERAKOLL " SupplierName = " Kerakoll SpA " = " CLUT " ArrivalDate = " 2008-03-06 10:00 " />
< SubOrderHeaderAdditions OperationCode = " 1 " />
- < SubOrderRow >
< SubOrderRowInfo OrderPosition = " 10 " OrderSubPosition = " 0 " OwnerNumber = " KERAKOLL " ArticleId = " 01151 " PackageId = " SOCK " OrderQuantity = ” 42 ” SupplierArticleId = ” 01151 ” ArrivalDate = ” 2008-03-06T10: 00: 00 ” />
< SubOrderRowAdditions OperationCode = " 1 " />
</ SubOrderRow >
<SubOrderRowPreAdvice OrderPosition="10">
<SubOrderRowPreAdviceInfo AntiTheftID="yyyyyyyyyyyyyyyyyyyy" MacAddress="AA-BB-AA-3E-A1-00" IMEINumber="12345678923568971568" PalletInfo="Pall1" PackageInfo="kolli1" BestBeforeDate="2023-05-10" BatchNumber="123546" SerialNumber="123456"/>
<SubOrderRowPreAdviseInfo AntiTheftID="xxxxxxxxxxxxxxxxxxxx" MacAddress="BB-BB-AA-3E-A1-99" IMEINumber="12345678923568971577" PalletInfo="Pall1" PackageInfo="kolli1" BestBeforeDate="2023-05-10" BatchNumber="123547" SerialNumber="123456"/>
</SubOrderRowPreAdvice>
</ SubOrderHeader >
</ Header >
</ LXIRSubOrder >
<? xml version = "1.0" encoding = "UTF-8"?>
- < LXIRSubOrderResult >
< Envelope FromPartner = " EWS " FromPartnerUser = " KERAKOLL " ToPartner = " XOE " ToPartnerUser = " KERAKOLL " DateTime = " 2008-03-12 15:32 " ReferenceNumber = " 0010000080 " InterchangeTest = "" />
- < Header >
< HeaderInfo CreationDate = " 2008-03-12 15:32 " DocumentName = " DELVRY " DocumentNumber = " 0010000080 " />
- < SubOrderHeader >
< SubOrderHeaderInfo DeliveryNumber = " 29 " WarehouseId = " CLJO " ArrivalDate = ” 2008-03-12 15:27:21 ” SupplierId = ” 0 ” OrderNumber = ” RP-28 ” SequenceNumber = ”” OrderType = ” IN ” WarehouseSection = ” " DeliveryNote =" " ConsNote =" " Employee =" Picker 1 "/>
- < SubOrderRow >
< SubOrderRowInfo ArticleId = " 01046 " OwnerNumber = " 541 " PackageId = " SOCK " DeliveredQuantity = " 126 " OrderPosition = " 10 " OrderSubPosition = " 1 " OrderNumber = " RP-28 " RevisionCode = "" CustomerNumber = "" SupplierArticleId = " 01046 " AddressIdentity =" " ItemId =" " Weight =" 25000 " AntiTheftID="yyyyyyyyyyyyyyyyyyyy" MacAddress="AA-BB-AA-3E-A1-00" IMEINumber="12345678923568971568"/>
</ SubOrderRow >
</ SubOrderHeader >
</ Header >
</ LXIRSubOrderResult >
Version | Date | Author/change | Commenct |
A | 2003-02-17 | Joakim Petersson | Move the document to LXIRNG with new document no. |
PA1 | 2004-01-02 | Joakim Petersson | Added SupName |
B | 2004-02-13 | Erik Sylvan | Changed the document to describe the XML messages between LXIR and LWS / EWS, added example messages. |
PC | 2008-03-18 | Björn Johansson | Adjusted from lXIR3 and EWS |
C | 2008-03-31 | Martin Fransson | Accepted |
C1 | 2008-05-05 | Lasse Sääf | Set ReferenceNumber to Mandatory |
D | 2010-09-10 | Björn Johansson | Deleted relationships with LWS and published on sharepoint |
E | 2012-02-27 | Lasse Sääf | Adjusted Description OwnerNumber |
PF | 2014-12-01 | David Frendin | Added Notes and InternalNotes fields to LXIRSubOrder |
G | 2015-09-21 | Lasse Sääf | Suborder Notes InternalNotes EWS Support |
H | 2022-02-05 | Zohaib Anees | Added SequenceNumber, WarehouseSection, ExternalOrderNumber at LxirSubOrder header level And added ExternalOrderNumber in LxirSubOrderResult at header level |
I | 2022-10-14 | Lasse Sääf | Added LXIRSubOrder PreAdvice Segment
IMEINumber BlockReason |