316 KiB
EasyWMS_WebApi_en
Web API communications with ERP
- Introduction
- General considerations
- Import of messages
- Export of messages
- Standard message types for Web API communications with ERP
- List of messages
- Masters
- Receiving
- Imported messages
- Exported messages
- Shipping
- Request and notifications
- Errors
Introduction
This document describes the communication interface between EasyWMS and the ERP system.
Communication between these two systems is bidirectional, so two interfaces are defined, import: from the ERP to EasyWMS and export: from EasyWMS to the ERP.
General considerations
For the exchange of information, communication will be used through REST API services.
For import communications, EasyWMS exposes a REST API endppint that allows executing the different commands that define the communications interface.
Output communications are also defined by an interface that indicates the fields that are sent in each message.
To send the export messages, scripts are provided and can be modified to adapt the message information to your Web API services.
For import and export messages, EasyWMS has some C# classes (POCOs) created following the communications interface, so that they can be used by clients to serialize and deserialize message information.
Data format
The format of the different fields of both import and export messages will be as follows:
- bool. It can take the values:
falseto represent false andtrueto represent true. - string(N). Represents a text string with maximum length N.
- Enumeration. Numeric value restricted to certain values. These values will be defined in the field description.
- DateTime. Represents a date and time with format
yyyyy-MM-ddTHH:mm:ss.fffffffffKcompatible with ISO 8601. Being- yyyyy-MM-dd. Date in year-month-day format
- T. Separator between date and time
- HH:mm:ss.fffffffff. Time in 24h format, where
fffffffffis the ten-millionths of a second. - K. Represents the offset from the UTC time zone (e.g.,
+01:00,-07:00). For UTC the value isZ.
- long. Integer numerical value between -9,223,372,036,854,775,808 and 9,223,372,036,854,775,807 by default.
- decimal. Numeric value with decimals between ±1.0 x 10-28 and ±7.9228 x 28 by default, where the separator of the decimal part is
. - Int32. Integer numeric value between -2,147,483,648 and 2,147,483,647 by default.
- Group. Contains multiple fields.
- List. Set of repeating fields.
Note: Note that for fields that are non-mandatory, the field may not appear or have a null value.
Import of messages
Our architecture has an identity and access management (IAM) used to control the access to our applications. The service responsible to manage the security is EasySTS (Security Token Service). This service used the OAuth 2.0 protocol, which forces any application to request an access token and include it in the communication.
On the other hand, to import messages we have an application service which exposes an endpoint called Command Service that is responsible for receiving and executing the commands with the information sent.
The steps to send a command to the Command Service endpoint are as follows: - Request access token to EasySTS. - Send the request by sending the command data to the Command Service endpoint.
Request access token
In order to request the access token it is necessary to add a client in EasySTS. Information on how to do this can be found in the following link.
The token request is an HTTP POST request handled by the EasySTS:
- EasySTS URL: https://{your_host}/EasySTS/OAuth/Token
- Request parameters using application/x-www-form-urlencoded format:
| Name | Description | Type | Mandatory |
|---|---|---|---|
| grant_type | Grant type. Value must be set to password. | String | Yes |
| username | User name. | String | Yes |
| password | User password. | String | Yes |
| tenant_code | Tenant code. | String | Yes |
| language | Language to use. Access token will include this value as a claim. Application Service will use this language to process request. | String | No |
| computer_name | Client computer name. Used to identify from which computer user/client has been authorized. | String | No |
In addition, you must set the client’s id and password in the basic HTTP authorization header encoded as base64 with the format user:password.
For example, for the client Mecalux with password q2w3e4r5t6 it would be:
Authorization: Basic Q3VzdG9tQ2xpZW50OnEydzNlNHI1dDY=
Request token example:
POST /EasySTS/OAuth/Token HTTP/1.1
Host: {your_host}
Content-Type: application/x-www-form-urlencoded
Authorization: Basic TWVjYWx1eDpxMnczZTRyNXQ2
Request token response
The EasySTS returns the following responses to a token request:
- Request accepted (HTTP 200): Properties returned in the JSON response:
| Name | Description | Type |
|---|---|---|
| access_token | The access token generated by the EasySTS. | String |
| token_type | Token type. Always the bearer type. | String |
| expires_in | The duration of time the access token is granted for in seconds. | Integer |
| refresh_token | Token that can be used to obtain another access token. | String |
| id_token | JWT token that can be used to obtain user information. | String |
| Issuer | Identifier of the service that generates the token. | String |
| ClientId | Identifier of the client that made the token request. | String |
| UserName | Code of the user who made the token request. | String |
| TenantId | Tenant identifier. | String |
Accepted response JSON example:
{
"access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJ1bmlxd...",
"token_type": "bearer",
"expires_in": 1199,
"refresh_token": "d46Nqzn7PFiGPH6tGlbq8VEQiL7...",
"id_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJub25lIn0.eyJ1bmlxd...",
"Issuer": "Mecalux.ITSW.SecurityTokenService",
"ClientId": "Mecalux",
"UserName": "mecalux",
"TenantId": "1fc492a2-316f-471e-bc3d-f9374fc4a301",
}
- Request denied (HTTP 400 or HTTP 401): Properties returned in the JSON response:
| Name | Description | Type |
|---|---|---|
| error | Error code. | String |
| error_description | Error description. | String |
The error code can be one of these values: - invalid_request: A request parameter is not informed and the service cannot execute the request. - invalid_client: The authentication of the client informed in the request is not valid because the client does not exist. In this case, an HTTP 401 response is returned. - unauthorized_client: The authentication of the client informed in the request is not valid because the password is incorrect. - invalid_grant: The user is locked or has an expired password. - unsupportedgranttype: The type of access specified in the request is not valid.
Denied response JSON example:
/invalid license (expired
or missing web service
module)
{
"error": "invalid_grant",
"error_description": "InvalidLicense"
}
/invalid tenant
{
"error": "invalid_request",
"error_description": "Tenant not
found"
}
/invalid client secret
{
"error": "unauthorized_client",
"error_description": "Client secret is
invalid."
}
/invalid user password
{
"error": "invalid_grant",
"error_description": "InvalidUserPassword"
}
Refresh access token request
Access tokens have limited lifetimes. If your application needs access beyond the lifetime of a single access token, you can use the refresh token. Refresh token allows your application to obtain new access token without having to specify username/password again.
Refresh access token request is a HTTP POST request to the EasySTS, using OAuth 2.0 refresh token grant, and may include some optional parameter.
- EasySTS token URL (https required): ‘https://{your_host}/EasySTS/OAuth/Token’
- Parameters sent using the application/x-www-form-urlencoded format:
| Name | Description | Type | Mandatory |
|---|---|---|---|
| grant_type | Access type. It should always be set to password. | String | Yes |
| refresh_token | Refresh token valid and not expired. | String | Yes |
| forcerevoke | Indicates whether the refresh token should be revoked. It is revoked if is not informed. | String | Not |
Request example:
POST /EasySTS/OAuth/Token HTTP/1.1
Host: localhost
Content-Type: application/x-www-form-urlencoded
Authorization: Basic TWVjYWx1eDpxMnczZTRyNXQ2
Request command execution
The application service defines a Web API endpoint that receive requests for executing commands. This Web API endpoint is called CommandExecute and receives the following parameters:
- Command Service URL: https://{your_host}/ApplicationService/api/CommandExecute
- Request parameters using the application/json format:
| Name | Description | Type |
|---|---|---|
| Id | Command identificator | Guid |
| Name | Command internal name | String |
| Properties | Command properties and their values | Dictionary of String [key] and Object [value] |
Example of a request to send the OWN01 message:
POST /ApplicationService/api/CommandExecute HTTP/1.1
Host: localhost
Content-Type: application/json
Authorization: Bearer eyJ0eXAiOiJKV1Qi...
The response returned by the endpoint can be one of the following:
-
Successful response when return code is HTTP 200, is an object with commands warning messages if any:
[ { "CommandId": "c9e21124-70e8-4075-8209-ef06aee51ebf", "WarningMessages": [] } ] -
Unsuccessful response when return code is HTTP 401, when no token or invalid token is sent.
-
Unsuccessful response when return code is HTTP 500, is an ‘Exception’ object. C# clients can hanlde it as a ‘System.Exception’. In other cases message can be checked using ‘Message’ property.
{ "Message": "Report does not exist" }
Note: Error messages language will be the token language. Token language can be specified using ‘language’ parameter in token request.
Example in C# to export messages by the ERP
We currently have available to our clients some classes generated in C# that can be used to do message requests to the CommandExecute service.
Each of the import messages defined in the communications interface has its own class that defines the properties necessary to do the request.
These classes have the same name as the communication interface message which they are related.
The structure of these classes can be seen in the following example:
public class
OWN01
{
public Guid Id { get; set; }
public string Name = "Mecalux.ITSW.EasyWMS.Modules.MasterData.Contracts.Commands.OwnerErpCommand,
Mecalux.ITSW.EasyWMS.Modules.Contracts";
[JsonIgnore]
public OWN01Data
Data { get; set; }
public
Dictionary<string, object> Properties
{
get { return Data.ToDictionary(); }
}
}
The previous example is related with the class of the owner message (OWN01). Its properties are the following:
| Name | Description |
|---|---|
| Id | Command identificator. Used to identify the command in the warnings of the response |
| Name | Internal name of the command to execute |
| Data | Class that contains the properties of the command defined in the Name property. Property marked to be not serialized on request |
| Properties | Dictionary created from Data property |
Following is detailed the use of this class to send the OWN01 message to the CommandExecute defined in the application service.
The first step to send a message is create an instance of the OWN01 class and fill it with its data:
public OWN01 CreateOWN01Data()
{
return new OWN01()
{
Id =
Guid.NewGuid(),
Data = new OWN01Data()
{
Code =
"Owner1",
Operation = ErpOperation.Create,
IgnoreNulls = true,
Data =
new OwnerErpData()
{
Address = new ErpAddress()
{
AddressLine = "AddressLine",
State = "State"
},
Description = "Description",
Contact = new ErpContact()
{
Comment = "Comment"
},
CustomAttribute = new ErpCustomAttribute()
{
Attribute1 = "Attribute1"
}
}
}
};
}
Next the code to request and parse the token to send the message to Application Service:
public async Task<HttpResponseMessage> GetToken()
{
Dictionary<string, string> dictionary = new Dictionary<string, string>();
dictionary.Add("grant_type",
"password");
dictionary.Add("username",
userName);
dictionary.Add("password",
pass);
dictionary.Add("tenant_code",
tenant);
try
{
HttpClient client = new HttpClient();
var
byteArray = Encoding.UTF8.GetBytes($"{clientId}:{clientPass}");
client.DefaultRequestHeaders
.Accept
.Add(new MediaTypeWithQualityHeaderValue("application/x-www-form-urlencoded"));
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray));
var
response = await client.PostAsync(new Uri("https://applicationHost/EasySTS/OAuth/Token"), new FormUrlEncodedContent(dictionary));
return
response;
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
throw
ex;
}
}
public string GetTokenFromResponse(Task<HttpResponseMessage> tokenResponse)
{
string token
= string.Empty;
using (Stream receiveStream = tokenResponse.Result.Content.ReadAsStreamAsync().Result)
{
StreamReader readStream = new StreamReader(receiveStream, Encoding.UTF8);
string
response = readStream.ReadToEnd();
JObject joResponse = JObject.Parse(response);
JToken ojObject = joResponse["access_token"];
token =
ojObject.Value<string>();
}
return
token;
}
Finally, we can do the request to the CommandExecute service:
public static HttpClient GetClient(string accessToken)
{
HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Add("Authorization", "Bearer " + accessToken);
return
client;
}
public async
Task<IEnumerable<string>> ExecuteCommandAsync()
{
/Request a token and
parse it
Task<HttpResponseMessage> tokenResponse = GetToken();
string token
= GetTokenFromResponse(tokenResponse);
/Preparing the client
to send the message
using (HttpClient client = GetClient(token))
{
try
{
/Fill the
OWN01 message and enqueue it
OWN01 ownCommand = CreateOWN01Data();
Queue<OWN01> cmd = new
Queue<OWN01>();
cmd.Enqueue(ownCommand);
/Send the
message
using
(var response = await client.PostAsJsonAsync("https://applicationHost/applicationservice/api/CommandExecute",
cmd))
{
if
(response.StatusCode == System.Net.HttpStatusCode.InternalServerError)
{
AggregateException
exception = response.Content.ReadAsStringAsync().Exception;
throw exception;
}
response.EnsureSuccessStatusCode();
return null;
}
}catch(Exception ex)
{
throw
ex;
}
}
}
Export of messages
The system is prepared to communicate messages to the ERP.
There is no endpoint for exporting messages. This is done by the GNA application that is responsible for processing the transactions generated by EasyWMS and communicating them to the ERP. The ERP must expose and endpoint to which GNA will send the exported messages.
In Imple mentation documentation you can get information on how to deploy GNA for Web API.
The tasks performed by the GNA are the following: - Search the transactions to process. - Transform the transaction information to comply with the defined interface. - Send the message to the ERP endpoint.
The GNA performs these actions by executing some scripts where the communications are implemented.
The structure of the classes that the ERP must use to deserialize the received messages is detailed below.
Structure of exported messages from our application
All messages exported by EasyWMS have the same structure:
| Name | Description |
|---|---|
| MessageType | Message type sent (for example, SOC01) |
| Messages | List of messages sent |
Below we can see the JSON schema for the message SOC01:
{
"$schema": "http:/json-schema.org/draft-04/schema#",
"title": "SOC01",
"type": "object",
"additionalProperties": false,
"properties": {
"MessageType": {
"type": [
"null",
"string"
]
},
"Messages": {
"type": [
"array",
"null"
],
"items": {
"$ref": "#/definitions/ShippingOrderStatusChange"
}
}
},
"definitions": {
"ShippingOrderStatusChange": {
"type": "object",
"additionalProperties": false,
"required": [
"Site",
"SorCode",
"Status",
"UpdateDate"
],
"properties": {
"Site": {
"type": "string",
"maxLength": 50,
"minLength": 1
},
"SorCode": {
"type": "string",
"maxLength": 50,
"minLength": 1
},
"Status": {
"type": "string",
"minLength": 1
},
"UpdateDate": {
"type": "string",
"format": "date-time",
"minLength": 1
}
}
}
}
}
An example of JSON for the SOC01 message:
{
"MessageType": "SOC01",
"Messages": [
{
"SorCode": "SORDER01",
"Site": "KITDEMO",
"UpdateDateString": "2021-04-07T09:51:15Z",
"Status": "Waiting",
"UpdateDate": "2021-04-07T09:51:15Z"
},
{
"SorCode": "SORDER02",
"Site": "KITDEMO",
"UpdateDateString": "2021-04-07T09:51:16Z",
"Status": "Waiting",
"UpdateDate": "2021-04-07T09:51:16Z"
}
]
}
Example in C# to import messages by the ERP
The ERP client can use the provided classes in the implementation of its Web API services to deserialize the requests from the communications scripts.
These classes, like input messages, are named as the export message which they are related.
Next, we can see an example of the class to serialize the SOC01 message:
public class SOC01
{
public string MessageType { get;
set; }
public
IList<ShippingOrderStatusChange> Messages { get; set; }
}
public partial class ShippingOrderStatusChange
{
// <summary xml:lang="en">
// Warehouse code
of the shipping order
// </summary>
// <summary xml:lang="es">
// Código del
almacén desde el que se envió la orden de salida
// </summary>
[Required]
[MaxLength(50)]
public
string Site { get;
set; }
// <summary xml:lang="en">
// Shipping order
code
// </summary>
// <summary xml:lang="es">
// Código de la
orden de salida
// </summary>
[Required]
[MaxLength(50)]
public
string SorCode { get;
set; }
// <summary xml:lang="en">
// Current status
of the shipping order. Possible values: Secured, Waiting, Assigned, Release, Working, Paused, StockFailure, Merged,
Grouped
// </summary>
// <summary xml:lang="es">
// Estado en el
que se encuentra actualmente la orden. Posibles valores: Secured, Waiting, Assigned, Release, Working, Paused,
StockFailure, Merged, Grouped
// </summary>
[Required]
public
string Status { get;
set; }
// <summary xml:lang="en">
// UTC date and
time of the status change of the shipping order
// </summary>
// <summary xml:lang="es">
// Fecha y hora
en horario UTC en la que se produjo el cambio de estado de la orden de salida
// </summary>
public
DateTime UpdateDate { get; set; }
}
Next, we can see an example of a service implemented in .Net Core to receive requests with the SOC01 message:
[Route("api/[controller]")]
[ApiController]
public class TestController : ControllerBase
{
private readonly ILogger<TestController> _logger;
public TestController(ILogger<TestController> logger)
{
_logger =
logger;
}
[HttpGet]
public bool IsAvailable()
{
return
true;
}
[HttpPost]
public async
Task<ActionResult<SOC01>> SendSOC01(SOC01 soc01)
{
await Task.Run(() => _logger.LogInformation(soc01.ToString()));
return
AcceptedAtAction(nameof(SendSOC01));
}
}
Standard message types for Web API communications with ERP
List of messages
Below is a list of the different types of messages in the communications interface, highlighting whether they will be received in the import (from ERP to our applications), or sent in the export (from our applications to ERP).
| MASTERS | IMPORT / EXPORT |
|---|---|
| ITM - Items | Import |
| ITC - Item classifications | Import |
| OWN - Owners | Import |
| CAR - Carriers | Import |
| ACC - Accounts | Import |
| SUP - Suppliers | Import |
| KIT - Kits | Import |
| LCK - User status | Import |
| RECEIVING | IMPORT / EXPORT |
|---|---|
| ROR - Receipt orders | Import |
| ASN - Advanced shipping notice | Import |
| SRN - Advanced stock notice for replenishment | Import |
| ROC - Receipt order status change | Export |
| ROF - Receipt or receipt order finalization | Export |
| REF - Receipt End | Export |
| ASO - Advanced shipping notice OK | Export |
| ASK - Advanced shipping notice KO | Export |
| SRO - Replenishment of pre-notified loose stock | Export |
| SRK - Cancellation of pre-notified loose stock for replenishment | Export |
| SHIPPING | IMPORT / EXPORT |
|---|---|
| SOR - Shipping orders | Import |
| RUT - Routes | Import |
| WOR - Work orders | Import |
| SOC - Shipping order status change | Export |
| SOF - Shipping order close or finalization | Export |
| LOF - Truck load finalization | Export |
| WOF - Work Order finalization | Export |
| REQUESTS AND NOTIFICATIONS | IMPORT / EXPORT |
|---|---|
| STR - Stock status change request | Import |
| SCR - Stock count request | Import |
| COR - Request for counting order | Import |
| CMC - Container Move Confirmation | Import |
| KST - Kit stock assembled | Export |
| UNK - Kit stock disassembled | Export |
| STV - Stock variation | Export |
| STC - Stock status change | Export |
| WSC - Warehouse inventory | Export |
| COF - Warehouse stock count | Export |
| COS - Container output to PS | Export |
| COC - Client container closed in MP | Export |
| SAC - Suggested ABC classification | Export |
| ERRORS | IMPORT / EXPORT |
|---|---|
| ERR - Error message | Export |
Masters
Imported messages
Messages that will be received in Import direction (from the ERP to MAP).
Items - ITM
Message type: ITM (Item)
Import / Export: Import
Command name: Mecalux.ITSW.EasyWMS.Modules.MasterData.Contracts.Commands.ProductErpCommand, Mecalux.ITSW.EasyWMS.Modules.Contracts
Description: This message allows to create, modify, delete and upsert the items that can be stored in the warehouse.
- An item deletion can only be done if there is no data in the current warehouse data related to that item:
- No stock of that item in the warehouse (including ASN, buffers, etc…)
- The item is not a component of any kit
- There are no inbound or Shipping order delivery notes for that item
- There are no pending counts for that item
- When deleting, not all data is necessary, but only primary key data (marked in red).
- The 0..1 and 1 groups indicated in the structure that refers to other entities of Easy WMS will only allow a creation (no modifications or deletions) or changing the field value to refer to another entity already existing in Easy WMS. For example:
- A new item is received with a new unit of measurement as base unit. Both the item and the unit of measurement are created.
- A modification of the item is received. This modification has the base unit set to null, but the attribute ignoreNull is set to true. The base unit of the item will not be changed, only the other changes in the modification will be applied.
- A modification of the item is received. This modification has the base unit set to another new unit of measurement. The new unit of measurement will be created, and set as the base unit of the item. Then, in Easy WMS there will be two units of measurement, as the first one created is not deleted, the item does just not reference it.
To delete or modify entities of these 0..1 and 1 groups the Easy WMS PC application must be used.
- The 0..n groups(AlternativeItems,AliasesandConversions) has a complete attribute, which indicates whether all the existing elements are included into the group (when true), or only the modified ones (when false):
- When the complete attribute has a false (0) value: Only the specific elements of the group will be modified, other possible existing elements maintains its previous value.
- When the complete has true(1) value: The message has to include all group elements, because operations set in the groups elements will be performed and after that any other element will be deleted of Easy WMS. E.g.:
- A new item is sent with one alias on it ->item and alias objects are created into the Easy WMS system
- A modification of the Description data field is sent, and the Aliases group has true ignoreNull attribute -> item description is updated, and alias kept its previous values
- A new ITM message is sent, creating a new Alias with the complete attribute set to true ->the new alias will be created but the old one deleted, so the item will have only one alias in the Easy WMS system.
- An entity can only be deleted when is not referenced by any other entity in Easy WMS, even when it is inside a group like AlternativeItem or Conversions. For example, if a unit of measurement of a Conversion is used in an AlternativeItem, that AlternativeItem must be deleted prior to deleting the Conversion. If an Item message is received without that Conversion, and the AlternativeItem still exist, an error will be thrown.
- Creating an element and using it below in the same message is supported. E.g.:
- Inside an ITM message a new UoM is created, and then used forward to define a new Conversion into the item.
- An Alias can only be assigned to one Item or Conversion. If Easy WMS receives an ITM message where an existing Aliasis assigned to another Item or Conversion, an error will be thrown.
- Every single item has a base Alias that is named the same. It is not allowed to delete this base Alias, it will be automatically deleted when the item is deleted
Structure:
ITM
| Field | Required | Format | Description |
|---|---|---|---|
| IgnoreNulls | No | bool | |
| Operation | Yes | Enumeration | Operation to be executed. 0: Create, 1: Update, 2: Delete, 3: UPSERT |
| Code | Yes | string(50) | Item Code |
| NewCode | No | string(50) | New item Code (only in case of modification) |
| OwnerCode | No | string(50) | Code of the item stock owner (required only if need to create or if there are more than one owners and none of them are default owner) |
| Data | No | Group | Data about the product. Contains all necessary data to define a product from the ERP |
| NewOwnerCode | No | string(50) | |
| OwnerDescription | No | string(65) | |
| Description | No | string(1000) | |
| AlternativeDescription | No | string(1000) | |
| ShortDescription | No | string(65) | |
| HandlingDescription | No | string(1000) | |
| PickingMessage | No | string(65) | |
| ImageName | No | string(50) | |
| StockLabeled | No | bool | |
| UoMBaseCode | Yes | string(50) | |
| UoMBaseDescription | No | string(65) | |
| UoMCustomAttribute | No | Group | |
| Attribute1 | No | ||
| Attribute2 | No | ||
| Attribute3 | No | ||
| Attribute4 | No | ||
| Attribute5 | No | ||
| Attribute6 | No | ||
| Attribute7 | No | ||
| Attribute8 | No | ||
| Attribute9 | No | ||
| Attribute10 | No | ||
| Attribute11 | No | ||
| Attribute12 | No | ||
| Attribute13 | No | ||
| Attribute14 | No | ||
| Attribute15 | No | ||
| Attribute16 | No | ||
| Attribute17 | No | ||
| Attribute18 | No | ||
| Attribute19 | No | ||
| Attribute20 | No | ||
| MaterialABCCode | No | string(50) | |
| MaterialABCDescription | No | string(65) | |
| ProductTypeCode | No | string(50) | |
| IsPacking | No | bool | |
| IsBulky | No | bool | |
| Stack | No | long | |
| ProductTypeDescription | No | string(65) | |
| ProductFamilyCode | No | string(50) | |
| ProductFamilyDescription | No | string(65) | |
| Profiles | No | Group | |
| LogisticProfileCode | No | ||
| LogisticProfileDescription | No | ||
| ReceptionProfileCode | No | ||
| ReceptionProfileDescription | No | ||
| PutAwayProfileCode | No | ||
| PutAwayProfileDescription | No | ||
| ShippingProfileCode | No | ||
| ShippingProfileDescription | No | ||
| CuttingProfileCode | No | ||
| CuttingProfileDescription | No | ||
| CountProfileCode | No | ||
| CountProfileDescription | No | ||
| HazardCode | No | string(50) | |
| HazardDescription | No | string(65) | |
| StockClassificationByZoneCode | No | string(50) | |
| StockClassificationByZoneDescription | No | string(65) | |
| MinCuttingQuantity | No | decimal | |
| MaxShippingQuantityPerLine | No | decimal | |
| MaxPartitionsAllowed | No | long | |
| MinTemperature | No | decimal | |
| MaxTemperature | No | decimal | |
| MinWarningQuantity | No | decimal | |
| MaxWarningQuantity | No | decimal | |
| AllowCrossdocking | No | bool | |
| AllowCommingle | No | bool | |
| AliasList | No | List | |
| Operation | No | ||
| When modifying or deleting(1: Update, 3: UPSERT, 2: Delete) AliCode has to be an existing code in Easy WMS related to the item code. When creating(0: Create, 3: UPSERT) AliCode has to be a new code in Easy WMS. | |||
| Any other case notifies an error. | |||
| Code | No | ||
| NewCode | No | ||
| CustomAttribute | No | ||
| Attribute1 | |||
| Attribute2 | |||
| Attribute3 | |||
| Attribute4 | |||
| Attribute5 | |||
| Attribute6 | |||
| Attribute7 | |||
| Attribute8 | |||
| Attribute9 | |||
| Attribute10 | |||
| Attribute11 | |||
| Attribute12 | |||
| Attribute13 | |||
| Attribute14 | |||
| Attribute15 | |||
| Attribute16 | |||
| Attribute17 | |||
| Attribute18 | |||
| Attribute19 | |||
| Attribute20 | |||
| TransactionalAliasList | No | bool | |
| CompleteAliasList | No | bool | |
| ConversionList | No | List | |
| Operation | No | ||
| Only not referenced productpacks in Easy WMS can be deleted. | |||
| Otherwise, an error will be notified. | |||
| UoMCode | No | ||
| UoMDesc | No | ||
| CustomAttribute | No | ||
| Attribute1 | |||
| Attribute2 | |||
| Attribute3 | |||
| Attribute4 | |||
| Attribute5 | |||
| Attribute6 | |||
| Attribute7 | |||
| Attribute8 | |||
| Attribute9 | |||
| Attribute10 | |||
| Attribute11 | |||
| Attribute12 | |||
| Attribute13 | |||
| Attribute14 | |||
| Attribute15 | |||
| Attribute16 | |||
| Attribute17 | |||
| Attribute18 | |||
| Attribute19 | |||
| Attribute20 | |||
| Quantity | No | ||
| Stack | No | ||
| AliasCode | No | ||
| Weight | No | ||
| MaxWeight | No | ||
| MinWeight | No | ||
| ImageName | No | ||
| PreparationTime | No | ||
| IsVirtual | No | ||
| When false, the stock can be stored and handled in this product pack. | |||
| Default value is false. | |||
| AvoidConsolidation | No | ||
| SingleParcel | No | ||
| Dimensions | No | ||
| Height | |||
| Length | |||
| Width | |||
| Volume | |||
| ContainerList | No | ||
| Operation | |||
| Type | |||
| CompleteQuantity | |||
| MinCompletePercent | |||
| PickingPercent | |||
| CompleteContainerHeight | |||
| MinCompletePercentForShipping | |||
| AllowExceedCompleteQuantity | |||
| TransactionalContainerList | No | ||
| CompleteContainerList | No | ||
| IsPresentation | No | ||
| ConversionPresentation | No | ||
| ExpeditionMinimumQuantity | |||
| SaleMinimumQuantity | |||
| Cost | |||
| Currency | |||
| StartingLockDate | |||
| EndingLockDate | |||
| MinWarningQuantity | |||
| MaxWarningQuantity | |||
| AllowSplitPresentation | No | ||
| SplitPack | No | ||
| Customs | No | ||
| HSCode | |||
| TransactionalConversionList | No | bool | |
| CompleteConversionList | No | bool | |
| AlternativeProductList | No | List | |
| Operation | No | ||
| Code | No | ||
| Sequence | No | ||
| QuantityFrom | No | ||
| UoMCodeFrom | No | ||
| QuantityTo | No | ||
| UoMCodeTo | No | ||
| StartDate | No | ||
| EndDate | No | ||
| TransactionalAlternativeProductList | No | bool | |
| CompleteAlternativeProductList | No | bool | |
| CustomAttribute | No | Group | |
| Attribute1 | No | ||
| Attribute2 | No | ||
| Attribute3 | No | ||
| Attribute4 | No | ||
| Attribute5 | No | ||
| Attribute6 | No | ||
| Attribute7 | No | ||
| Attribute8 | No | ||
| Attribute9 | No | ||
| Attribute10 | No | ||
| Attribute11 | No | ||
| Attribute12 | No | ||
| Attribute13 | No | ||
| Attribute14 | No | ||
| Attribute15 | No | ||
| Attribute16 | No | ||
| Attribute17 | No | ||
| Attribute18 | No | ||
| Attribute19 | No | ||
| Attribute20 | No | ||
| UomPickCode | No | string | |
| DefaultReplenishCapacity | No | decimal | |
| DefaultReplenishLevel | No | decimal | |
| ProductTypeDefaultReplenishCapacity | No | decimal | |
| ProductTypeDefaultReplenishLevel | No | decimal |
Item classification - ITC
Message type: ITC (Item classification)
Import / Export: Import
Command name: Mecalux.ITSW.EasyWMS.Modules.Contracts.Commands.StockClassificationByZone.StockClassificationERPCommand, Mecalux.ITSW.EasyWMS.Modules.Contracts
Description: This message allows creating, modifying, deleting and upserting the possible classifications of the stock stored in each subwarehouses or stores.
- When deleting, not all data is necessary, but only primary key data (marked in red).
- Operations 2 (Delete) and 3 (Upsert) are the only ones allowed to perform with the Subwarehouses group.
Structure:
ITC
| Field | Required | Format | Description |
|---|---|---|---|
| ClassificationCode | Yes | string(50) | Code of the classification. |
| NewClassificationCode | No | string(50) | New code of the classification in a modification. |
| Description | No | string(1000) | Description of the classification. |
| Operation | Yes | Enumeration | The operation flag that indicates the process that the ERP is going to make. 0: Create, 1: Update, 2: Delete, 3: UPSERT |
| IgnoreNulls | No | bool | Flag to ignore null values. If it is set to true, null values are not modified in the upsert and update operations. |
| Data | No | Group | Data about the stock classification. It contains all necessary data to define an stock classification from the ERP. |
| LineList | No | List | |
| Operation | No | ||
| Possible values: Create, Update, Delete. Create when not included | |||
| WarehouseCode | Yes | ||
| SubwarehouseCode | Yes | ||
| The subwarehouse or inner store code has to be in the selected warehouse, or an error will be notified | |||
| MinQuantity | No | ||
| Entire number greater than or equal to 0 | |||
| MaxQuantity | No | ||
| Entire number greater than 0. When MinQuantity has a value set, this has to be greater | |||
| Sequence | No | ||
| Entire number greater than 0 | |||
| CompleteLineList | No | bool | |
| If it is false, more lines appart from those in the list can exist for this stock classification. | |||
| TransactionalLineList | No | bool |
Owners - OWN
Message type: OWN (Owners)
Import / Export: Import
Command name: Mecalux.ITSW.EasyWMS.Modules.MasterData.Contracts.Commands.OwnerErpCommand, Mecalux.ITSW.EasyWMS.Modules.Contracts
Description: This message allows creating, modifying, deleting and upserting the possible owners of the stock stored in the warehouse.
-
An owner deletion can only be done if there is no other data related to that owner currently in Easy WMS:
- No item associated to that owner
- No receipt associated with that owner
-
When deleting, not all data is necessary, but only primary key data (marked in red).
-
In this case the groups included in the owners message may be registered, updated or deleted together with the owner, since they will have a univocal relationship
Structure:
OWN
| Field | Required | Format | Description |
|---|---|---|---|
| Code | Yes | string(50) | Owner code. When this is a non existing owner, and operation is a creation(0: Create, 3: UPSERT), the owner is created. When operation is a modification(1: Update, 2: Delete) the owner has to exist in the system or an error will be notified. |
| NewCode | No | string(50) | New owner code. Only used when modifying data (1: Update, 3: UPSERT operations). |
| Operation | Yes | Enumeration | Operation to do. 0: Create, 1: Update, 2: Delete, 3: UPSERT |
| IgnoreNulls | No | bool | Flag to ignore null values. If it is set to true, null values are not modified in the upsert and update operations. |
| Data | No | Group | Data about the owner. It contains all necessary data to define an owner from the ERP. |
| Description | No | string(1000) | |
| Address | No | Group | |
| ZipCode | No | ||
| AddressLine | No | ||
| AddressLine2 | No | ||
| City | No | ||
| State | No | ||
| Country | No | ||
| Comment | No | ||
| Contact | No | Group | |
| Comment | No | ||
| Extension | No | ||
| Fax | No | ||
| Name | No | ||
| Phone | No | ||
| CellPhone | No | ||
| No | |||
| CustomAttribute | No | Group | |
| Attribute1 | No | ||
| Attribute2 | No | ||
| Attribute3 | No | ||
| Attribute4 | No | ||
| Attribute5 | No | ||
| Attribute6 | No | ||
| Attribute7 | No | ||
| Attribute8 | No | ||
| Attribute9 | No | ||
| Attribute10 | No | ||
| Attribute11 | No | ||
| Attribute12 | No | ||
| Attribute13 | No | ||
| Attribute14 | No | ||
| Attribute15 | No | ||
| Attribute16 | No | ||
| Attribute17 | No | ||
| Attribute18 | No | ||
| Attribute19 | No | ||
| Attribute20 | No | ||
| IsMixingAllowed | No | bool | |
| TaxIdNumber | No | string |
Carriers - CAR
Message type: CAR (Carriers)
Import / Export: Import
Command name: Mecalux.ITSW.EasyWMS.Modules.MasterData.Contracts.Commands.AgencyErpCommand, Mecalux.ITSW.EasyWMS.Modules.Contracts
Description: This message allows creating, modifying, deleting and upserting the carriers that can be used as an attribute of a receipt or Shipping order delivery note.
A carrier deletion can only be done if there is no other data related to that carrier currently in Easy WMS: - No route associated to that carrier. - No truck load associated to that carrier. - No Shipping order delivery note associated to that carrier. - No reception or receipt order related to that carrier.
In a carrier deletion not all the fields are required: only the ones that make the primary key (marked in red in the structure).
The carrier name field does not belong to the primary key, but it must be unique within Easy WMS.
Structure:
CAR
| Field | Required | Format | Description |
|---|---|---|---|
| Code | Yes | string(50) | Agency code, which has to be a unique value into the system. When a non-existing value is included and a creation operation (0: Create, 3: UPSERT) is performed, this will be created. When a non-existing value is included in a modification operation (1: Update, 2: Delete) is performed, an error will be notified. |
| NewCode | No | string(50) | New code of the transport agency. Only use in case of modification(1: Update, 3: UPSERT operations) |
| Operation | Yes | Enumeration | Operation to perform. 0: Create, 1: Update, 2: Delete, 3: UPSERT |
| IgnoreNulls | No | bool | |
| Data | No | Group | Contains all the necessary data involved in the process of creating an agency froim an ERP |
| Name | Yes | string(50) | |
| Description | No | string(1000) | |
| CustomAttribute | No | Group | |
| Attribute1 | No | ||
| Attribute2 | No | ||
| Attribute3 | No | ||
| Attribute4 | No | ||
| Attribute5 | No | ||
| Attribute6 | No | ||
| Attribute7 | No | ||
| Attribute8 | No | ||
| Attribute9 | No | ||
| Attribute10 | No | ||
| Attribute11 | No | ||
| Attribute12 | No | ||
| Attribute13 | No | ||
| Attribute14 | No | ||
| Attribute15 | No | ||
| Attribute16 | No | ||
| Attribute17 | No | ||
| Attribute18 | No | ||
| Attribute19 | No | ||
| Attribute20 | No | ||
| Address | No | Group | |
| ZipCode | No | ||
| AddressLine | No | ||
| AddressLine2 | No | ||
| City | No | ||
| State | No | ||
| Country | No | ||
| Comment | No | ||
| Contact | No | Group | |
| Comment | No | ||
| Extension | No | ||
| Fax | No | ||
| Name | No | ||
| Phone | No | ||
| CellPhone | No | ||
| No |
Accounts - ACC
Message type: ACC (Accounts)
Import / Export: Import
Command name: Mecalux.ITSW.EasyWMS.Modules.MasterData.Contracts.Commands.AccountErpCommand, Mecalux.ITSW.EasyWMS.Modules.Contracts
Description: This message allows creating, modifying, deleting and upserting the customer accounts that can be used as addressees of the shipping orders.
- A customer account deletion can only be done if there is no other data related to that customer account currently in Easy WMS:
- No shipping orders for that customer accounts.
- No stock reserved for that customer accounts
- When deleting, not all data is necessary, but only primary key data (marked in red).
- The AccountType, Company and PreferredCarrier groups are referenced groups, so only a new group or reference to an existing one will be allowed (no deletion, modification or upsert of its data). For example:
- A message is sent with a new customer account that has a Company -> the customer account and the company to which it belongs are registered.
- Another message is sent for the same customer account but with a different value in the Company group -> the new company is registered and referred to from the customer account, but in the system the existence of the company registered in the first message is maintained.
- The rest of the groups included in the message can be added, updated or deleted together with the customer account.
Structure:
ACC
| Field | Required | Format | Description |
|---|---|---|---|
| Code | Yes | string(50) | Account code, which has to be a unique value into the system. When a non-existing value is included and a creation operation (0: Create, 3: UPSERT) is performed, this will be created. When a non-existing value is included in a modification operation (1: Update, 2: Delete) is performed, an error will be notified. |
| NewCode | No | string(50) | New account code. Has to be a unique value into the system. Only used when modifying data (1: Update, 3: UPSERT operations). |
| OwnerCode | No | string(50) | Owner code. When this is a non existing owner, and operation is a creation(0: Create, 3: UPSERT), the owner is created. When operation is a modification(1: Update, 2: Delete) the owner has to exist in the system or an error will be notified. |
| NewOwnerCode | No | string(50) | New owner code. Only used when modifying data (1: Update, 3: UPSERT operations). |
| Operation | Yes | Enumeration | Operation to perform. 0: Create, 1: Update, 2: Delete, 3: UPSERT |
| IgnoreNulls | No | bool | ACC mandatory boolean attribute. When true (1) null or not existing data fields keep its original value; when false (0) data fields are set to void. |
| Data | No | Group | Data about the account. It contains the necessary data to define the account from the ERP. |
| Name | Yes | string(50) | |
| Description | No | string(1000) | |
| Terms | No | string(1000) | |
| AutoMerge | No | bool | |
| AccountTypeCode | No | string(50) | |
| AccountTypeDescription | No | string(65) | |
| CompanyData | No | Group | |
| Name | Yes | ||
| Description | No | ||
| Code | Yes | ||
| PreferredCarrierCode | No | string(65) | |
| Address | No | Group | |
| ZipCode | No | ||
| AddressLine | No | ||
| AddressLine2 | No | ||
| City | No | ||
| State | No | ||
| Country | No | ||
| Comment | No | ||
| Contact | No | Group | |
| Comment | No | ||
| Extension | No | ||
| Fax | No | ||
| Name | No | ||
| Phone | No | ||
| CellPhone | No | ||
| No | |||
| CustomAttribute | No | Group | |
| Attribute1 | No | ||
| Attribute2 | No | ||
| Attribute3 | No | ||
| Attribute4 | No | ||
| Attribute5 | No | ||
| Attribute6 | No | ||
| Attribute7 | No | ||
| Attribute8 | No | ||
| Attribute9 | No | ||
| Attribute10 | No | ||
| Attribute11 | No | ||
| Attribute12 | No | ||
| Attribute13 | No | ||
| Attribute14 | No | ||
| Attribute15 | No | ||
| Attribute16 | No | ||
| Attribute17 | No | ||
| Attribute18 | No | ||
| Attribute19 | No | ||
| Attribute20 | No | ||
| IsStrictFEFO | No | bool |
Suppliers - SUP
Message type: SUP (Suppliers)
Import / Export: Import
Command name: Mecalux.ITSW.EasyWMS.Modules.MasterData.Contracts.Commands.SupplierErpCommand, Mecalux.ITSW.EasyWMS.Modules.Contracts
Description: This message allows to create, modify, delete and upsert the suppliers data.
-
A supplier deletion can only be done if there is no other data related to that supplier currently in Easy WMS:
- No receipt orders from that supplier
- No return orders for that supplier
-
When deleting, not all data is necessary, but only primary key data (marked in red).
-
The groups PreferredCarrier and SupplierType refers to other entities of the system, and only creation (no modifications or deletions) or changing (to refer other supplier) are allowed. E.g.:
- A SUP creation message is sent including a new supplier and its preferred carrier ->the new supplier and the new carrier are created into the system.
- A different SUP message is sent, modifying the preferred carrier of the supplier previously created ->the new carrier is created into the system, and its noted as preferred carrier to the supplier.
-
The rest of the groups included in the message can be added, updated or deleted together with the supplier.
Structure:
SUP
| Field | Required | Format | Description |
|---|---|---|---|
| Code | Yes | string(50) | Supplier code. |
| When a non-existing value is included and a creation operation (0: Create, 1: Update) is performed, this will be created. | |||
| NewCode | No | string(50) | |
| OwnerCode | No | string(50) | The owner code. If a non existent value with a 0: Create operation is introduced in the system, 3: UPSERT will be registered, however if it is a 1: Update operation, 2: Delete will notify an error. |
| NewOwnerCode | No | string(50) | The new owner code. |
| It will only be used in case the user wants to make an update (1: Update, 3: UPSERT operations). | |||
| Operation | Yes | Enumeration | Operation to perform. |
| Possible values: 0: Create, 1: Update, 2: Delete, 3: UPSERT | |||
| IgnoreNulls | No | bool | SUP mandatory boolean attribute. |
| When true (1) null or not existing data fields keep its original value; when false (0) data fields are set to void. | |||
| Data | No | Group | The data about the container. Contains all necessary data to define a container from the ERP. |
| Name | Yes | string(50) | |
| Description | No | string(1000) | |
| SupplierTypeCode | Yes | string(50) | |
| When a new type is included, it will be created into the system. | |||
| SupplierTypeDescription | No | string(65) | |
| Only used when a new supplier type is created. | |||
| PreferredCarrierCode | Yes | string(50) | |
| This has to be an existing value or an error will be notified. | |||
| DeliveryConditions | No | string(1000) | |
| ShippingAddress | No | Group | |
| ZipCode | No | ||
| AddressLine | No | ||
| AddressLine2 | No | ||
| City | No | ||
| State | No | ||
| Country | No | ||
| Comment | No | ||
| ShippingContact | No | Group | |
| Comment | No | ||
| Extension | No | ||
| Fax | No | ||
| Name | No | ||
| Phone | No | ||
| CellPhone | No | ||
| No | |||
| ReturnContact | No | Group | |
| Comment | No | ||
| Extension | No | ||
| Fax | No | ||
| Name | No | ||
| Phone | No | ||
| CellPhone | No | ||
| No | |||
| ReturnAddress | No | Group | |
| ZipCode | No | ||
| AddressLine | No | ||
| AddressLine2 | No | ||
| City | No | ||
| State | No | ||
| Country | No | ||
| Comment | No | ||
| CustomAttribute | No | Group | |
| Attribute1 | No | ||
| Attribute2 | No | ||
| Attribute3 | No | ||
| Attribute4 | No | ||
| Attribute5 | No | ||
| Attribute6 | No | ||
| Attribute7 | No | ||
| Attribute8 | No | ||
| Attribute9 | No | ||
| Attribute10 | No | ||
| Attribute11 | No | ||
| Attribute12 | No | ||
| Attribute13 | No | ||
| Attribute14 | No | ||
| Attribute15 | No | ||
| Attribute16 | No | ||
| Attribute17 | No | ||
| Attribute18 | No | ||
| Attribute19 | No | ||
| Attribute20 | No | ||
| VerifyItems | No | bool |
Kits - KIT
Message type: KIT (Kits)
Import / Export: Import
Command name: Mecalux.ITSW.EasyWMS.Modules.MasterData.Contracts.Commands.KitErpCommand, Mecalux.ITSW.EasyWMS.Modules.Contracts
Description: This message allows creating, modifying, deleting and upserting the kit items data.
-
A kit deletion can only be done if there is no other data related to that kit currently in Easy WMS, i.e.:
- Kit stock stored.
- Kit stock in assembly locations.
- Receipts, receipts orders, shipping orders or work orders for the kit.
- Kit is also another kits part.
-
When deleting, not all data is necessary but only primary key data (marked in red)
-
When a new kit is created in Easy WMS, it is also enabled.
-
The 0..n group Components has a complete attribute, which indicates whether all the existing components are included into the group (when true), or only the modified ones (when false):
-
When the complete attribute has a false (0) value: Only the specific components of the group will be modified, other possible existing components maintains its previous value.
-
When the complete has true (1) value: The message has to include all kit components, because operations set in the kit components will be performed and after that any other component will be deleted of the system. E.g.:
- A new kit item is sent with two components on it -> kit and components are created into the Easy WMS system.
- A modification of the kit is sent with a new component and the complete attribute set to true ->the component will be created but the old one removed from the kits components list, so the kitwill have only one component in the Easy WMS system.
-
-
Default operation in the Components group is SUPSERT
-
If after the creation or modification of a kit, it runs out of components, the kit is set to disabled.
-
OnDemand field indicates if on demand assemble is requiere for that kit (kit must requiere being assembled). This means that, when a shiping order asking for a kit is received, it will be cheked if there are enough kits on the warehouse to supply the order, in other case, shipping orders to supply the order will be created. This testing is made in this situations: enable replenishment, reserve, assign and release.
Structure:
KIT
| Field | Required | Format | Description |
|---|---|---|---|
| ItemCode | Yes | string(50) | Existing item that is a kit |
| It has to be an existing item code; otherwise, an error will be notified. | |||
| OwnerCode | Yes | string(50) | Existing kit item owner. |
| When not sent, default owner is taken if exists. | |||
| When not sent, if there is only one owner into the system this is taken by default | |||
| When not sent and no default owner exists, an error is notified. | |||
| It has to be the existing items owner, otherwise an error will be notified | |||
| KitVersion | Yes | string(50) | Kit version. Notallowed to be modified |
| When creating a new kit (0: Create, 3: UPSERT) a new version is required. | |||
| When modifying(1: Update, 2: Delete) an existing version reference is required | |||
| Error in other cases | |||
| Operation | Yes | Enumeration | The operation flag that indicates the process that the ERP is going to make. 0: Create, 1: Update, 2: Delete, 3: UPSERT |
| IgnoreNulls | No | bool | Flag to ignore null values. If it is set to true, null values are not modified in the upsert and update operations. |
| Data | No | Group | Data about the kit. It contains all necessary data to define an kit from the ERP. |
| UomBaseCode | Yes | string(50) | |
| Has to reference an existing UoM | |||
| IsAssembled | No | bool | |
| Default value is true | |||
| OnDemand | No | bool | |
| IsAssembled must be true. By default is false | |||
| Components | No | List | |
| Operation | No | ||
| CmpItemCode | Yes | ||
| Existing item required. It has to match to the kit owner or an error will be notified. | |||
| CmpVersion | No | ||
| When creating, a new version is required. | |||
| When modifying, an existing version is required | |||
| Otherwise, an error is notified | |||
| CmpUoMCode | Yes | ||
| Existing UoM | |||
| CmpQuantity | Yes | ||
| Number greater than 0 | |||
| CmpIsMaster | No | ||
| Default value is false | |||
| CmpCustomAttribute | No | ||
| Attribute1 | |||
| Attribute2 | |||
| Attribute3 | |||
| Attribute4 | |||
| Attribute5 | |||
| Attribute6 | |||
| Attribute7 | |||
| Attribute8 | |||
| Attribute9 | |||
| Attribute10 | |||
| Attribute11 | |||
| Attribute12 | |||
| Attribute13 | |||
| Attribute14 | |||
| Attribute15 | |||
| Attribute16 | |||
| Attribute17 | |||
| Attribute18 | |||
| Attribute19 | |||
| Attribute20 | |||
| CustomAttribute | No | Group | |
| Attribute1 | No | ||
| Attribute2 | No | ||
| Attribute3 | No | ||
| Attribute4 | No | ||
| Attribute5 | No | ||
| Attribute6 | No | ||
| Attribute7 | No | ||
| Attribute8 | No | ||
| Attribute9 | No | ||
| Attribute10 | No | ||
| Attribute11 | No | ||
| Attribute12 | No | ||
| Attribute13 | No | ||
| Attribute14 | No | ||
| Attribute15 | No | ||
| Attribute16 | No | ||
| Attribute17 | No | ||
| Attribute18 | No | ||
| Attribute19 | No | ||
| Attribute20 | No | ||
| TransactionalComponentList | No | bool | |
| If it is true, the whole list must be treated as an atomic transaction. | |||
| If it is false, each element must be individually transactioned. | |||
| CompleteComponentList | No | bool | |
| When the complete attribute has a false value: Only the specific components of the group will be modified, other possible existing components maintains its previous value. | |||
| When the complete has true value: The message has to include all kit components, because operations set in the kit components will be performed and after that any other component will be deleted of the system. | |||
| KitId | Yes | Guid | The kit identifier |
User statuses - LCK
Message type: LCK (User status)
Import / Export: Import
Command name: Mecalux.ITSW.EasyWMS.Modules.MasterData.Contracts.Commands.StockStatusErpCommand, Mecalux.ITSW.EasyWMS.Modules.Contracts
Description: This message is used to register, modify or delete the different stock user statuses that exist in the organization. The user statuses allow to apply a status to the stock after the detection of a problem that affects its quality. User statuses can also be assigned when the stock is received.
The deletion (2(Delete)) can only be carried out if there is no data in the system related to the user status, e.g. if there is any stock line with this stock status. - In the case of deletion, not all fields are required, but only those that make up the primary key (marked in red). - The CaptureProcesses group only supports options 0 (Create) and 2 (Delete). - If the CaptureProcesses group does not appear, and an operation 0 (Create) is being performed, all possible processes will be assigned. - The complete attribute in the group 0..n included in the process capture data, i.e. CaptureProcesses, will indicate whether the list of elements is exhaustive or only contains the elements to be modified: - If the complete attribute is false: The system will only perform the specified operation on each element of that group. - If the complete attribute is true: the message must include all the references of elements of the group, so that the operations at group level will also imply the deletion of the possible existing references previously not transmitted in the message.
- If a modification 1(Update) or 3(Upsert) is sent:
- With ignoreNull true: only the fields that appear in the message for which there are changes are modified.
- With ignoreNull false: a failure occurs if a mandatory field does not appear in the message. Changes are made with the values indicated in the message, and the default value is given to those that do not appear in the message.
Estructura:
LCK
| Field | Required | Format | Description |
|---|---|---|---|
| CaptureProcesses | No | List | |
| Operation | No | Enumeration | |
| Possible values: Create, Delete. Create when not included | |||
| ProcessTypeCode | Yes | Enumeration | |
| Data | No | Group | Data about the stock status. It contains the necessary data to define the stock status from the ERP. |
| Code | No | string | |
| Description | No | string | |
| CustomAttribute | No | Group | |
| Attribute1 | No | ||
| Attribute2 | No | ||
| Attribute3 | No | ||
| Attribute4 | No | ||
| Attribute5 | No | ||
| Attribute6 | No | ||
| Attribute7 | No | ||
| Attribute8 | No | ||
| Attribute9 | No | ||
| Attribute10 | No | ||
| Attribute11 | No | ||
| Attribute12 | No | ||
| Attribute13 | No | ||
| Attribute14 | No | ||
| Attribute15 | No | ||
| Attribute16 | No | ||
| Attribute17 | No | ||
| Attribute18 | No | ||
| Attribute19 | No | ||
| Attribute20 | No | ||
| AllowCount | No | bool | |
| AllowMove | No | bool | |
| AllowPick | No | bool | |
| AllowPutaway | No | bool | |
| AllowReceive | No | bool | |
| AllowReplenish | No | bool | |
| AllowShip | No | bool | |
| AllowSecure | No | bool | |
| AllowInternalConsumption | No | bool | |
| CommentRequired | No | bool | |
| CompleteCaptureProcess | No | bool | |
| TransactionalCaptureProcess | No | bool | |
| IgnoreNulls | No | bool | LCK mandatory boolean attribute. When true (1) null or not existing data fields keep its original value; when false (0) data fields are set to void. |
| NewCode | No | string(50) | New stock status code. Has to be a unique value into the system. Only used when modifying data (1: Update, 3: UPSERT operations). |
| Operation | Yes | Enumeration | Operation to perform. 0: Create, 1: Update, 2: Delete, 3: UPSERT |
Receiving
Imported messages
Messages that will be received in Import direction (from the ERP to MAP).
Receipt orders - ROR
Message type: ROR (Receipt orders)
Import / Export: Import
Command name: Mecalux.ITSW.EasyWMS.Modules.Receptions.Contracts.Commands.InboundOrderErpCommand, Mecalux.ITSW.EasyWMS.Modules.Contracts
Description:This message allows creating, modifying, deleting and upserting the receipt orders data managed in Easy WMS. - When deleting (2 (Delete)), not all data is necessary but only primary key data (marked in red). - When operatin with lines, the line number is its primary key data. - It is not allowed to change the Site in existing receipt orders. - Delete, update and upsert operations (1 (Update), 2 (Delete), 3 (Upsert)) depend on the current order status and its lines status, both for header and lines. Some modifications can be done: - Line can be edited when: - Line status is not Cancelled, Closed, Closing, Expired or Completed. - Line has not any reception line asociated with Receiving or Closing status.
- The conversion (and item) can be modified as long as nothing has been received on the line (the quantity
received from the line is 0).
- The quantity can be changed as long as the new quantity is greater than or equal to the quantity already received
(never less). Placing a quantity equal to the quantity received will result in the order line being
completed.
-
An incoming order may be cancelled with operation 2 (Delete) as long as no stock has been received for any of its lines and its status is not Cancelled, Closing, Closed, Receiving, Partially received or Completed. The CloseReceiptOrderfield shall be set to false.
-
A receipt order may be closed with operation 2 (Delete), provided that its status is not Waiting, Cancelled, Closing, Closed, Closed or Receiving. The CloseReceiptOrder field shall have the value true.
-
The operation of creating a new line in an existing order (1 (Create) or 3 (Upsert) for line, 1 (Update) or 3 (Upsert) for order) shall be allowed as long as the order has not been closed, completed, cancelled or expired.
-
The group 0..1 included in the ROR message, i.e. ReceiptData, may be added, modified or deleted because of its unique relationship to the incoming order.
-
The complete attribute in the group 0..n Lines included in the ROR message, shall indicate whether the list of lines is exhaustive or only contains the elements to be modified:
- If the complete attribute is false: The system shall only perform the specified operation on each line of that group.
- If the complete attribute is true: the message must include all the lines, so that the operations at line level will also imply the deletion of the possible existing lines previously not transmitted in the message. For example:
- A new receipt order with one line is sent -> will be added.
- A modification in the order data is sent, without sending any group Lines, and indicating ignoreNull true -> the corresponding data of the order header will be modified and its lines will not be modified, i.e. it will continue to have the line with which it was created.
- A modification in the order data is sent with a Lines group containing two lines -> if necessary, the order header data will be modified, and in addition the two new lines will be created with their data and the one previously existing in the system will be deleted, so that the order will only have the two lines indicated in the last message.
-
When the insertion of the order lines is transactional true and an error occurs, none of the lines shall be created, nor shall the empty order be created.
-
A system parameter shall determine whether a ROR message shall also create a receipt associated with the incoming order. With the system parameter true and the SingleReceipt field set to true, a single receipt shall be created automatically for the incoming order, the rest of the receipts (if needed) shall be created manually. With the value of the parameter set to true and SingleReceipt set to false, receipts will be created automatically whenever any auto-created receipt is closed for the order and not all the quantity indicated in the order lines has been received.
-
Regardless of the value of this parameter, the values of the associated receipts (if any) shall always be maintained in case of deletions and modifications in the order lines as well as in the order header.
-
In the case of not automatically creating the receptions associated to the receipt orders (system parameter false), an error could be notified when trying to change data in the order header if the order shares receipt with another one.
-
When a Receipt associated to the order is automatically created, its code shall contain the code of the receipt order.
-
The receipt/s associated to the receipt order will inherit the value of the field that allows to auto create lines and the one that allows to print GS1-128 labels during the receipt, not being able to be edited at receipt level in the case of the auto create lines field and only from ROR message updates.
-
Inbounds reservations are made for each line. An inbound reservation can be made for an existing or non-existing shipping order or for an account, but not both at the same time.
-
Exclusive reservations are made for each line. An exclusive reservation can be made for an existing or non-existing departure order or for an existing or non-existing route/stop, but not both at the same time.
- For a line, each exclusively reserved quantity will be reflected in the system as a separate stock line once the stock has been received, which will not be merged with the rest of the stock lines with the same characteristics even if it is in the same holder (location, container, or division).
-
The same ROR message can request inbound reservations (group LneStockReserves) or exclusive reservations (group LneStockExclusiveReserves) for the same line, but not both types of reservations at the same time.
Structure:
ROR
| Field | Required | Format | Description |
|---|---|---|---|
| IgnoreNulls | No | bool | Flag to ignore null values. When true null or not existing data fields keep its original value; when false data fields are set to void. |
| Operation | Yes | Enumeration | The operation flag that indicates the process that the ERP is going to make. 0: Create, 1: Update, 2: Delete, 3: UPSERT |
| Code | Yes | string(50) | Receipt order code. |
| When a non-existing value is included and a creation operation (Create, Upsert) is performed, this will be created. | |||
| NewCode | No | string(50) | New receipt order code. Only used when a modification is performed (Update, Upsert) |
| Site | Yes | string(50) | Code of the warehouse site. Has to be an existing site, and It is not allowed to modify it |
| Data | No | Group | Contains all necessary data to define an inbound order from the ERP |
| InboundType | Yes | Enumeration | |
| SupplierCode | No | string(50) | |
| AccountCode | No | string(50) | |
| SaleOrderCode | No | string(50) | |
| AllowAutoCreateLines | No | bool | |
| HasContainerLabelPrinting | No | bool | |
| HasItemLabelPrinting | No | bool | |
| InboundClassCode | No | string(50) | |
| CarrierCode | No | string(50) | |
| TransportType | No | string(1000) | |
| Document | No | string(65) | |
| Source | No | string(65) | |
| Description | No | string(1000) | |
| ExpectedNumContainers | No | long | |
| ExpectedDate | No | DateTime | |
| DockStationCode | No | string(50) | |
| ValidityDays | No | long | |
| IsSingleReceipt | No | bool | |
| TransactionalLineList | No | bool | |
| CompleteLineList | No | bool | |
| If the complete attribute is false: The system will only perform the specified operation on each line of said group. | |||
| If the complete attribute is true: the message must include all the lines, so that line-level operations will also imply the deletion of the possible existing | |||
| lines previously not transmitted in the message. | |||
| LineList | No | List | |
| Operation | No | ||
| LineNumber | Yes | ||
| Unique line number into the order. Line number modification is not allowed. LneNumber is the key to perform 1: Update, 2: Delete, 3: UPSERT operations | |||
| ProductCode | Yes | ||
| It must match an existing product. | |||
| OwnerCode | No | ||
| When not set: | |||
| - If only one owner exists into the system, this value will be set | |||
| - If there is a default owner, this value will be set | |||
| - In any other way, an error is notified | |||
| ContainerCode | No | ||
| StockStatusCode | No | ||
| Has to be an existing stock status, or an error will be notified | |||
| Package | No | ||
| PurchasePrice | No | ||
| Quantity | |||
| Currency | |||
| UnitOfMeasureCode | Yes | ||
| Has to be an existing UoM into Easy WMS, or an error will be notified. | |||
| Quantity | Yes | ||
| Positive number greater than 0 | |||
| FreeQuantity | No | ||
| Positive number | |||
| Terms | No | ||
| ExceedPercentageAllowed | |||
| Values greater than 0 resembles the allowed exceed percentage accepted | |||
| When this attribute does not exist in the ROR, the item reception profile will set the upper percentage accepted | |||
| Integer greater than 0 | |||
| ReceiveLessAllowed | |||
| When false less quantity is not permitted | |||
| When true less quantity is permitted | |||
| HandlingRequired | |||
| true means handling is mandatory. false means handling is not mandatory. | |||
| HandlingDescription | |||
| Only used when LneTrmReqHandling is true | |||
| DaysOfLife | |||
| Positive number greater than 0 | |||
| When set, the best before date or the expiration date of the logistic attributes of the inbound order line must also be set. | |||
| LogisticAttributes | No | ||
| LotCode | |||
| SerialNumber | |||
| ProductionDate | |||
| ExpirationDate | |||
| BestBeforeDate | |||
| DaysOfLife | |||
| Quality | |||
| Color | |||
| Source | |||
| Version | |||
| ProductionMethod | |||
| PostProductionTreatment | |||
| Size | |||
| Weight | |||
| CustomAttribute | No | ||
| Attribute1 | |||
| Attribute2 | |||
| Attribute3 | |||
| Attribute4 | |||
| Attribute5 | |||
| Attribute6 | |||
| Attribute7 | |||
| Attribute8 | |||
| Attribute9 | |||
| Attribute10 | |||
| Attribute11 | |||
| Attribute12 | |||
| Attribute13 | |||
| Attribute14 | |||
| Attribute15 | |||
| Attribute16 | |||
| Attribute17 | |||
| Attribute18 | |||
| Attribute19 | |||
| Attribute20 | |||
| StockReserveList | No | ||
| OutboundOrderCode | |||
| It may not exist yet when the reserve is created. If empty, account code must be given. | |||
| AccountCode | |||
| It must exists in the system on the reserve creation. If empty, outbound order code must be given. | |||
| QuantityToReserve | |||
| It must be greater than 0 and less than or equal to the inbound order line total quantity. | |||
| ReserveValidDate | |||
| If empty, reserve does not expire. | |||
| StockExclusiveReserveList | No | ||
| ExpectedOutboundOrderCode | |||
| It may not exist yet when the reserve is created. If empty, route code must be given. | |||
| ExpectedRouteCode | |||
| It may not exist yet when the reserve is created. If empty, outbound order code must be given. | |||
| If it is given, expected route stop number is required. | |||
| ExpectedRouteStopNumber | |||
| It must be greater than 0 and less than or equal to the total number of the stops of the route. | |||
| ReserveValidDate | |||
| If empty, reserve does not expire. | |||
| QuantityToReserve | |||
| It must be greater than 0 and less than or equal to the inbound order line total quantity. | |||
| CustomAttribute | No | Group | |
| Attribute1 | No | ||
| Attribute2 | No | ||
| Attribute3 | No | ||
| Attribute4 | No | ||
| Attribute5 | No | ||
| Attribute6 | No | ||
| Attribute7 | No | ||
| Attribute8 | No | ||
| Attribute9 | No | ||
| Attribute10 | No | ||
| Attribute11 | No | ||
| Attribute12 | No | ||
| Attribute13 | No | ||
| Attribute14 | No | ||
| Attribute15 | No | ||
| Attribute16 | No | ||
| Attribute17 | No | ||
| Attribute18 | No | ||
| Attribute19 | No | ||
| Attribute20 | No | ||
| OwnerCode | No | string(50) | |
| CloseReceiptOrder | No | bool | Together with the operation Delete, it indicates whether the order must be cancelled (false value) or closed (true value). |
Advanced shipping notice - ASN
Message type: Advanced shipping notice
Import / Export: Import
Command name: Mecalux.ITSW.EasyWMS.Modules.Contracts.Commands.ContainerForASNErpCommand, Mecalux.ITSW.EasyWMS.Modules.Contracts
Description: This message allows to create, modify, delete or upsert the advanced shipping notice of LPNs (license plate numbers) containing stock to be received.When deleting, not all data is necessary but only primary key data (marked in red). - It is not allowed to change the Site in previously notified LPNs. - Advanced LPNs will be created with the status Reception pending and placed in the ASN location. - Deletion and modification (1 (Update), 2 (Delete), 3 (Upsert)) are only permitted when the LPN status is Reception pending. - When the LPN and its stock is receipt into the warehouse, the corresponding stock status change will be notified (STC message). - The 1..n group Lines has a complete attribute, which indicates whether all the existing components are included into the group (when true), or only the modified ones (when false): - When the complete attribute has a false (0) value: Only the specific components of the group will be modified, other possible existing components maintains its previous value. - When the complete has true (1) value: The message has to include all order lines, because operations set in the lines will be performed and after that any other order line will be deleted of the system. E.g.: - A new advanced notification is receipt with two stock lines on it -> the LPN and its lines are created into the Easy WMS system - A modification of the advanced notification is sent with a new line and the complete attribute set to true -> the LPN line will be created but the old two existing lines will be removed from the order list, so the LPN will have only one line to receive in the Easy WMS system.
-
Operations available in the Lines group are only create or delete (0 (Create), 2 (Delete)), and this is a mandatory field.
-
When the Lines transactional attribute is set true and an error happens, not only the lines are not created, but also the empty LPN is not created in Easy WMS.
-
Creating or modifying any Line, corresponding to an item, without all logistic attributes required by this item reception profile, will be responded with an error notifying the lack of data in the ASN message.
-
Stacked containers:
- Containers group is used to stacked containers. A stacked container can also have as many Containers groups as nested containers as needed to establish the hierarchy.
- To modify the data of a container belonging to a hierarchy of stacked containers (stock included), it’s necessary to send all hierarchy indicating an update operation (1 (Update), 3 (Upsert)) to all containers in the hierarchy.
- Deleting the parent container implies the deleton of all his childs.
- To add a container to a hierarchy of stacked containers, it’s necessary to indicate an update operation (U, S) for the rest of the hierarchy.
- To delete a stacked container, it’s necessary to indicate an update operation (1 (Update), 3 (Upsert)) for the rest of the hierarchy and a delete (2 (Delete)) operation for the container.
-
Number of expected containers (NumExpectedContainers):
- In the case that the number of containers to be received is known in advance but the container codes are not known, such as in the case of containers that come from a production line, a number of expected containers can be indicated, so that as many “equivalent” containers as indicated in this field will be created with the stock lines indicated. The containers will be created with a autogenerate code that will be updated later when identified in the PIE station+. In this case the container code should not be informed.
- Likewise, if the container code or the number of containers to be produced is not informed and it is not the case of an unidentified slave container, the number of containers will be calculated taking into account the quantity of stock indicated in the lines and the complete container quantity configured for the container type. This case will only be taken into account in the case of mono-reference containers.
- In deletion and modification operations (D, U, S) only the equivalent containers that are in ASN at the time of receiving the message will be taken into account and the necessary containers will be created or deleted to reach the indicated number of containers.
-
Expedition information (ExpectedOutboundOrderCode y ExpectedRouteCode):
- In case the expected shipping order or the route of the containr is known, it can be informed in the ASN message. They do not need to exist in Easy WMS when message is received.
- The expected shipping order or the route can be informed. In case the route is informed, it is mandatory to inform the stop number of the route for the container.
-
Exclusive reservation:
- The exclusive reservation of a container reserves its stock for a single shipping order, so that its stock cannot be allocated for the preparation of any other shipping order from the warehouse.
- The container advance notice message allows you to request the exclusive reservation of the container’s stock for a specific shipping order or for any compatible order of a route and stop, which will be searched in the system at the moment when the receipt of the container in the warehouse is validated.
- The exclusive reservation request for a container does not require the completion of data relating to stock lines.
- To request the exclusive reservation of the container it is mandatory to fill in the ContainerCode and NumExpectedContainers fields, in addition:
- To request the reservation for a specific shipping order the ExpectedOutboundOrderCode field must be filled in with the code of an shipping order that may or may not exist, prior to the receipt of the advanced notification.
- To request a reservation for a route, the ExpectedRouteCode and ExpectedRouteStopNumber fields must be filled in.
- To limit the validity of the reservation request in the event that it could not be formalized because there are no shipping orders compatible with the container, a validity date must be indicated in the ExpectedReserveValidDate field.
- In sequenced or density warehouses, the completion of the stock reservation and equivalent container data implies that the channel reservation is made for all identical containers with exclusive reservation for the same shipping order or route and stop.
Structure:
ASN
| Field | Required | Format | Description |
|---|---|---|---|
| IgnoreNulls | No | bool | The flag to ignore null values. If it is set to true, null values are not modified in the upsert and update operations. |
| Operation | Yes | Enumeration | Operation to perform |
| Possible values: 0: Create, 1: Update, 2: Delete, 3: UPSERT | |||
| Site | Yes | string(50) | Warehouse site code |
| It should be included in an existing site in the system, and it does not allow being modified. | |||
| ContainerCode | No | string(50) | Container code. If it includes a non existing value in the system with an operation 0: Create, 3: UPSERT will register it, meanwhile, if the operation is 1: Update, 2: Delete will produce an error. It is not mandatory when it represents an slave container without identification. |
| NumExpectedContainers | No | long | Number of expected containers. |
| ExpectedOutboundOrderCode | No | string | Code of the expected outbound order. |
| ExpectedRouteCode | No | string | Code of the expected outbound route. |
| ExpectedRouteStopNumber | No | long | Number of the route stops expected. |
| NewContainerCode | No | string(50) | New container code. Only used when a modification is performed (1: Update, 3: UPSERT) |
| Data | No | Group | The data about the container. Contains all necessary data to define an container from the ERP. |
| ContainerTypeCode | No | string(50) | |
| Height | No | decimal | |
| Positive number greater than 0 | |||
| If not specified, the height of the container type used will be taken by default. | |||
| Weight | No | decimal | |
| Positive number greater than 0 | |||
| Volume | No | decimal | |
| Positive number greater than 0 | |||
| DivisionTypeCode | No | string(50) | |
| Has to be an existing division type, or an error will be notified | |||
| TransactionalLineList | No | bool | |
| CompleteLineList | No | bool | |
| When the complete attribute has a false value: Only the specific components of the group will be modified, other possible existing components maintains its previous value | |||
| When the complete has true value: The message has to include all order lines, because operations set in the lines will be performed and after that any other order line will be deleted of the system | |||
| LineList | No | List | |
| Operation | Yes | ||
| Possible values: 0: Create, 2: Delete | |||
| ProductCode | Yes | ||
| Has to be an existing item code, or an error will be notified | |||
| OwnerCode | No | ||
| When no owner is set: | |||
| When only one owner exists into the system, this will be set | |||
| When some owner is default, this will be set | |||
| In other cases, an error will be notified | |||
| Has to be the existing stock owner code, or an error will be notified | |||
| DivisionCode | No | ||
| Has to be and exisiting división code for the division type included, or an error will be notified. | |||
| If DivisionType is not included an error will be notified. | |||
| Quantity | Yes | ||
| Positive number greater than 0 | |||
| UnitOfMeasureCode | Yes | ||
| Existing UoM in EasyWMS, or an error will be notified | |||
| SupplierCode | No | ||
| Existing supplier code in EasyWMS, or an error will be notified | |||
| Weight | No | ||
| Positive number greater than 0 | |||
| Package | No | ||
| Status | No | ||
| StockStatus | |||
| Existing stock status code, or an error will be notified | |||
| StatusEnd | |||
| UTC date-time forma | |||
| Comment | |||
| LogisticAttributes | No | ||
| LotCode | |||
| SerialNumber | |||
| ProductionDate | |||
| ExpirationDate | |||
| BestBeforeDate | |||
| DaysOfLife | |||
| Quality | |||
| Color | |||
| Source | |||
| Version | |||
| ProductionMethod | |||
| PostProductionTreatment | |||
| Size | |||
| Weight | |||
| CustomAttribute | No | ||
| Attribute1 | |||
| Attribute2 | |||
| Attribute3 | |||
| Attribute4 | |||
| Attribute5 | |||
| Attribute6 | |||
| Attribute7 | |||
| Attribute8 | |||
| Attribute9 | |||
| Attribute10 | |||
| Attribute11 | |||
| Attribute12 | |||
| Attribute13 | |||
| Attribute14 | |||
| Attribute15 | |||
| Attribute16 | |||
| Attribute17 | |||
| Attribute18 | |||
| Attribute19 | |||
| Attribute20 | |||
| CustomAttribute | No | Group | |
| Attribute1 | No | ||
| Attribute2 | No | ||
| Attribute3 | No | ||
| Attribute4 | No | ||
| Attribute5 | No | ||
| Attribute6 | No | ||
| Attribute7 | No | ||
| Attribute8 | No | ||
| Attribute9 | No | ||
| Attribute10 | No | ||
| Attribute11 | No | ||
| Attribute12 | No | ||
| Attribute13 | No | ||
| Attribute14 | No | ||
| Attribute15 | No | ||
| Attribute16 | No | ||
| Attribute17 | No | ||
| Attribute18 | No | ||
| Attribute19 | No | ||
| Attribute20 | No | ||
| IsSlave | No | bool | The value indicating whether container is slave. |
| Containers | No | List | The list of child containers. |
| Site | Yes | string(50) | |
| It should be included in an existing site in the system, and it does not allow being modified. | |||
| Operation | Yes | Enumeration | |
| Possible values: 0: Create, 1: Update, 2: Delete, 3: UPSERT | |||
| ContainerCode | No | string(50) | |
| NewContainerCode | No | string(50) | |
| IsSlave | No | bool | |
| IgnoreNulls | No | bool | |
| Data | No | Group | |
| ContainerTypeCode | No | ||
| Height | No | ||
| Positive number greater than 0 | |||
| If not specified, the height of the container type used will be taken by default. | |||
| Weight | No | ||
| Positive number greater than 0 | |||
| Volume | No | ||
| Positive number greater than 0 | |||
| DivisionTypeCode | No | ||
| Has to be an existing division type, or an error will be notified | |||
| TransactionalLineList | No | ||
| CompleteLineList | No | ||
| When the complete attribute has a false value: Only the specific components of the group will be modified, other possible existing components maintains its previous value | |||
| When the complete has true value: The message has to include all order lines, because operations set in the lines will be performed and after that any other order line will be deleted of the system | |||
| LineList | No | ||
| Operation | |||
| Possible values: 0: Create, 2: Delete | |||
| ProductCode | |||
| Has to be an existing item code, or an error will be notified | |||
| OwnerCode | |||
| When no owner is set: | |||
| When only one owner exists into the system, this will be set | |||
| When some owner is default, this will be set | |||
| In other cases, an error will be notified | |||
| Has to be the existing stock owner code, or an error will be notified | |||
| DivisionCode | |||
| Has to be and exisiting división code for the division type included, or an error will be notified. | |||
| If DivisionType is not included an error will be notified. | |||
| Quantity | |||
| Positive number greater than 0 | |||
| UnitOfMeasureCode | |||
| Existing UoM in EasyWMS, or an error will be notified | |||
| SupplierCode | |||
| Existing supplier code in EasyWMS, or an error will be notified | |||
| Weight | |||
| Positive number greater than 0 | |||
| Package | |||
| Status | |||
| Existing stock status code, or an error will be notified | |||
| UTC date-time forma | |||
| LogisticAttributes | |||
| CustomAttribute | |||
| CustomAttribute | No | ||
| Attribute1 | |||
| Attribute2 | |||
| Attribute3 | |||
| Attribute4 | |||
| Attribute5 | |||
| Attribute6 | |||
| Attribute7 | |||
| Attribute8 | |||
| Attribute9 | |||
| Attribute10 | |||
| Attribute11 | |||
| Attribute12 | |||
| Attribute13 | |||
| Attribute14 | |||
| Attribute15 | |||
| Attribute16 | |||
| Attribute17 | |||
| Attribute18 | |||
| Attribute19 | |||
| Attribute20 | |||
| InboundOrderCode | No | string(50) | |
| Receipt order code. It can be modified with Update operation | |||
| NumExpectedContainers | No | long | |
| ExpectedOutboundOrderCode | No | string | |
| ExpectedRouteCode | No | string | |
| ExpectedRouteStopNumber | No | long | |
| ExpectedReserveValidDate | No | DateTime | |
| InboundOrderCode | No | string(50) | Receipt order |
| Receipt order code. It can be modified with Update operation | |||
| ExpectedReserveValidDate | No | DateTime | Max valid date for the reserve |
Registration of pre-notified stock for replenishment - SRN
Message type: SRN (Stock Replenish Notice)
Import / Export: Import
Command name: Mecalux.ITSW.EasyWMS.Modules.Contracts.Commands.StockForASNErpCommand, Mecalux.ITSW.EasyWMS.Modules.Contracts
Description: This message is used for the creation and deletion of loose stock for automatic warehouse replenishment. - In the case of cancellation (2 (Delete)), not all fields are necessary, but only those that make up the primary key (marked in red). If the stock is created with the non mandatory groups (except the group ReplenishQueue), it will be necessary to indicate the same values that were filled for the creation of the stock. - The modification of the site for the pre-advised stock will not be allowed - Pre-notified loose stock will always be created in Pending Receipt status and at the ASN location. - If the ReplenishQueue group is not filled it is understood that you do not want to generate the replenishment order automatically. - The cancellation operation (2 (Delete)) can only be carried out while the loose stock is in the Pending state - If you delete stock for which a replenishment order exists, the replenishment order must be cancelled automatically. - If loose stock is created for an item that does not contain sufficient logistical attributes to cover the reception profile of that item, the SRN message will be responded to with an error notifying the lack of pre-notification data.
Structure:
SRN
| Field | Required | Format | Description |
|---|---|---|---|
| IgnoreNulls | No | bool | The flag to ignore null values. If it is set to true, null values are not modified in the upsert and update operations. |
| Operation | Yes | Enumeration | The operation. 0: Create, 1: Update, 2: Delete, 3: UPSERT |
| WarehouseCode | Yes | string(50) | Warehouse site code. Both the Site and the Code univocally identify the stock. |
| An existing site must be included in the system and is not allowed to be modified | |||
| ReplenishQueueData | No | Group | The data about the replenishment. Contains all of the data needed for replenishment from ERP. |
| PickingStationCode | Yes | string(50) | |
| Priority | Yes | Enumeration | |
| Possible values: Urgent, High, Normal, Low, VeryLow | |||
| ReplenishmentMode | Yes | Enumeration | |
| Possible values: Automatic, SameProduct, EmptyDivisions, EmptyContainers | |||
| ReplenishmentEfficiencyMode | Yes | Enumeration | |
| Possible values: None, Efficiency, Complete | |||
| ERPPack | No | string(50) | The ERP pack. |
| Quantity | Yes | decimal | Stock quantity in the UoM |
| Positive number higher than 0 | |||
| StockReceptionDate | No | DateTime | |
| UserDefinedStatusComment | No | string(65) | Comment of the stock status for that line |
| UserDefinedStatusEnd | No | DateTime | |
| UserDefinedStatusCode | No | string(50) | Status of the stock once received |
| Must reference an existing stock user status code in the system, otherwise an error will be reported | |||
| DivisionCode | No | string(50) | The division code |
| ProductCode | Yes | string(50) | Item code |
| YES a value that does not exist in the system is included with a Create operation will be registered, while YES the operation is Delete there will be an error | |||
| OwnerCode | Yes | string(50) | Item owner code |
| YES a value that does not exist in the system is included with a Create operation will be registered, while YES the operation is Delete there will be an error | |||
| UnitOfMeasureCode | Yes | string(50) | UoM of the quantity |
| Must be an existing UoM code in the system, otherwise an error will be notified | |||
| LogisticAttributes | No | Group | The logistic attributes. |
| BestBeforeDate | No | DateTime | |
| Colour | No | string | |
| DaysOfLife | No | DateTime | |
| ExpirationDate | No | DateTime | |
| ProductionMethod | No | string | |
| ProductionDate | No | DateTime | |
| PostProductionTreatment | No | string | |
| Quality | No | string | |
| SerialNumber | No | string | |
| Size | No | string | |
| Source | No | string | |
| Version | No | string | |
| LotCode | No | string | |
| CustomAttribute | No | Group | The custom attributes |
| Attribute1 | No | string | |
| Attribute2 | No | string | |
| Attribute3 | No | string | |
| Attribute4 | No | string | |
| Attribute5 | No | string | |
| Attribute6 | No | string | |
| Attribute7 | No | string | |
| Attribute8 | No | string | |
| Attribute9 | No | string | |
| Attribute10 | No | string | |
| Attribute11 | No | string | |
| Attribute12 | No | string | |
| Attribute13 | No | string | |
| Attribute14 | No | string | |
| Attribute15 | No | string | |
| Attribute16 | No | string | |
| Attribute17 | No | string | |
| Attribute18 | No | string | |
| Attribute19 | No | string | |
| Attribute20 | No | string | |
| SupplierCode | No | string(50) | Supplier code |
| Must be an existing supplier code code in the system, otherwise an error will be notified | |||
| Weight | No | decimal | Stock weight |
| Positive number higher than 0 | |||
| SkipMixedValidations | No | bool | The skip mixed validations flag. |
| If the flag value is true, all mixed validations are skipped. | |||
| HasTrace | No | bool | The HasTrace flag. |
| Indicates if the Stock has trace (is Manufactured or Mounted). |
Exported messages
Messages that will be sent in Export direction (from MAP to the ERP).
Receipt order status change - ROC
Message type: ROC (Receipt orders status change)
Import / Export: Export
Version: 01
Description: With this message, Easy WMS notifies any status change of an existing receipt order in the system.
Structure:
ROC01
| Field | Required | Format | Description |
|---|---|---|---|
| Site | Yes | string(50) | Code of the warehouse site |
| RorCode | Yes | string(50) | Code of the receipt order |
| Status | Yes | string | Current receipt order status. Possible values: Waiting ReceptionPending Receiving PartiallyReceived Complete Expired Cancelled |
| UpdateDate | Yes | DateTime | Date and time at which the status change was performed. UTC date time format |
Receipt or receipt order finalization - ROF
For the receipt or receipt order finalization two version exist: ROF01 y ROF02
Receipt or receipt order finalization - ROF01
Message type: ROF (Receipt or receipt order finalization)
Import / Export: Export
Version: 01
Description: With this message, Easy WMS notifies stock reception or the finalization of an existing receipt order in the system. This message is sent when a stock receipt is finished (closed) or a receipt order is finished (closed, cancelled or expired).
-
When a stock receipt is related to more than one receipt orders, multiple ROF messages are sent, one for each related receipt order. In each message RecCode contains the receipt code, RorCode the receipt order code, and the receipt order lines the received data details including the total received quantity in the order until this moment.
-
When a stock receipt is not related to any receipt order, only one ROF message is sent, containing all the receipt data including its line details.
-
When a receipt order is finished, the message contains the code of the order in **RorCode* –while RecCode is empty– and its line data details including the order line number inLneNumber.
-
The version of the message to be used must be specified in the EasyWMS.config file.
<add key="INO.CNL.001" value="ROF01"/> <add key="INO.CLS.001" value="ROF01"/> <add key="REC.CLS.001" value="REF01"/>
Structure:
ROF01
| Field | Required | Format | Description |
|---|---|---|---|
| Site | Yes | string(50) | Code of the warehouse site where the reception is done |
| RecCode | Yes | string(50) | Receipt code. Mandatory when a receipt is finished |
| RorCode | Yes | string(50) | Receipt order code. Mandatory when a receipt order is finished |
| Status | Yes | string | Receipt or receipt order finish status. Values: Partially received Completed Expired Cancelled |
| Document | No | string(65) | Name of the delivery note file for the receipt or receipt order |
| Source | No | string(65) | Open text to describe the receipt origin |
| CarrierCode | No | string(50) | Receipt or receipt order carrier code |
| TransportType | No | string(1000) | Open text to describe the type of transportation |
| ReceiptData | Yes | Group | Data about the receipt. It contains the necessary data to define the receipt from the ERP |
| RecDatContainers | No | long | |
| RecDatDate | No | DateTime | |
| RecDatDock | No | string(50) | |
| RecDatTemperature | No | decimal | |
| Lines | Yes | Group | Data about the lines. It contains the necessary data to define the lines from the ERP |
| Line | Yes | List | |
| LneNumber | Yes | ||
| LneItemCode | Yes | ||
| LneOwnerCode | Yes | ||
| LneContCode | No | ||
| LneStockStatus | No | ||
| LnePackage | No | ||
| LnePrice | No | ||
| LnePriPurchase | |||
| LnePriCurrency | |||
| LneQuantity | Yes | ||
| LneQtyExpected | |||
| LneQtyReceived | |||
| LneQtyFree | |||
| LneQtyUoMCode | |||
| LneAttributes | No | ||
| LneCustomAttributes | No | ||
| CustomAttributes | No | CustomAttributes | Data about the custom attributes. It contains the necessary data to define the custom attributes from the ERP |
Receipt or receipt order finalization - ROF02
Message type: ROF (Receipt or receipt order finalization)
Import / Export: Export
Version: 02
Description: This message is used to notify the ERP of the closing of the receipt order and to inform of the quantities received. All the information of the received stock is also sent. - The version of the message to be used must be specified in the EasyWMS.config file: <add key="INO.CNL.001" value="ROF02"/> <add key="INO.CLS.001" value="ROF02"/> <add key="REC.CLS.001" value="REF01" />
- This message is sent when a receipt order is finished (closed, cancelled or expired).
- Areceipt order can only be closed if it is in a partially received or completed state.
- When requesting the closing of a receipt order that has some receipts shared with other entry orders, the received stock will be marked with the label LneStockIsShared. This is due to the impossibility of determining for which receipt order a specific stock has been received when dealing with receipts from several orders.Las cantidades recibidas serán especificadas en LneQtyReceived. El stock recibido se informará en StockReceivedLines.
Structure:
ROF02
| Field | Required | Format | Description |
|---|---|---|---|
| Site | Yes | string(50) | Code of the warehouse site where the reception is done |
| RorCode | Yes | string(50) | Receipt order code |
| Status | Yes | string | Receipt or receipt order finish status. Values: Closed, Cancelled |
| Document | No | string(65) | Name of the delivery note file for the receipt or receipt order |
| Source | No | string(65) | Open text to describe the receipt origin |
| CarrierCode | No | string(50) | Receipt or receipt order carrier code |
| TransportType | No | string(1000) | Open text to describe the type of transportation |
| Lines | Yes | Group | Lines data |
| Line | Yes | List | |
| LneNumber | Yes | ||
| LneItemCode | Yes | ||
| LneOwnerCode | Yes | ||
| LneContCode | No | ||
| LneStockStatus | No | ||
| LnePackage | No | ||
| LnePrice | No | ||
| LnePriPurchase | |||
| LnePriCurrency | |||
| LneQuantity | Yes | ||
| LneQtyExpected | |||
| LneQtyReceived | |||
| LneQtyFree | |||
| LneQtyUoMCode | |||
| LneAttributes | No | ||
| LneCustomAttributes | No | ||
| StockReceivedLines | No | Group | Stock received lines data |
| LneStockReceived | Yes | List | |
| LneStockContainerCode | No | ||
| LneStockItemCode | No | ||
| LneStockLineNumbers | No | ||
| LneStockLineNumber | |||
| LneStockQty | No | ||
| LneStockUoMCode | Yes | ||
| LneStockOwnerCode | No | ||
| LneStockStockStatus | No | ||
| LneStockStockStatusComment | No | ||
| LneStockStockStatusEndDate | No | ||
| LneStockStockStatusRec | No | ||
| LneStockStockStatusRecEndDate | No | ||
| LneStockRecDate | No | ||
| LneStockWeight | No | ||
| LneStockIsShared | No | ||
| LneStockAttributes | No | ||
| LneStockCustomAttributes | No | ||
| CustomAttributes | No | CustomAttributes | Custom attributes data |
Receipt end - REF
Message type: REF (Receipt finalization)
Import / Export: Export
Version: 01
Description: This message is used to notify the ERP of the receipt of stock. - This message will be sent after the close of a reception. - When we close a receipt that is associated to several receipt orders simultaneously, the received stock will be informed, and the potential receipt orders and potential lines for which the stock could have been received will be notified. - When there is an end of a reception that is not associated with any receipt order, a single REF message will be sent with all the reception data (including its code in RecCode) and its lines (with its numbering in LneNumber). - The stock received will be informed with the tag StockReceivedLines. - It will not be possible to close a reception if nothing has been received. In that case it can only be canceled. Canceling a reception does not generate REF.
Structure:
REF01
| Field | Required | Format | Description |
|---|---|---|---|
| Site | Yes | string(50) | Code of the warehouse site where the reception is done. Mandatory when a receipt is finished |
| ReceiptCode | Yes | string(50) | Receipt order code. Mandatory when a receipt order is finished |
| Status | Yes | string | Receipt or receipt order finish status. Values: Partially received Completed Expired Cancelled |
| Document | No | string(65) | Name of the delivery note file for the receipt or receipt order |
| Source | No | string(65) | Open text to describe the receipt origin |
| CarrierCode | No | string(50) | Receipt or receipt order carrier code |
| TransportType | No | string(1000) | Open text to describe the type of transportation |
| ReceiptData | Yes | Group | Data about the receipt. It contains the necessary data to define the receipt from the ERP |
| RecDatContainers | Yes | long | |
| RecDatDate | No | DateTime | |
| RecDatDock | No | string(50) | |
| RecDatTemperature | No | decimal | |
| Lines | Yes | Group | Data about the lines. It contains the necessary data to define the lines from the ERP |
| Line | Yes | List | |
| LneNumber | Yes | ||
| LneRecOrdersPotential | Yes | ||
| LneRecOrderPotential | |||
| LneItemCode | Yes | ||
| LneOwnerCode | Yes | ||
| LneContCode | No | ||
| LneStockStatus | No | ||
| LnePackage | No | ||
| LnePrice | No | ||
| LnePriPurchase | |||
| LnePriCurrency | |||
| LneQuantity | Yes | ||
| LneQtyExpected | |||
| LneQtyReceived | |||
| LneQtyFree | |||
| LneQtyUoMCode | |||
| LneAttributes | No | ||
| LneCustomAttributes | No | ||
| StockReceivedLines | No | ||
| LneStockReceived | |||
| RecCustomAttributes | No | CustomAttributes | Data about the reception custom attributes. It contains the necessary data to define the reception custom attributes from the ERP |
Advanced shipping notice OK - ASO
Message type: ASO (Advanced shipping notice OK)
Import / Export: Export
Version: 01
Description: This message confirms to the ERP the inbound of an advanced shipping LPN (ASN) into the warehouse site. - All received stock lines has to be included in the ASO message. - When no Lines group included, empty LPN container is confirmed. - Stacked containers: - Containers group is used to notified the received stacked containers. A stacked container can also have as many Containers groups as nested containers as needed to establish the hierarchy.
Structure:
ASO01
| Field | Required | Format | Description |
|---|---|---|---|
| Site | Yes | string(50) | Code of the warehouse site |
| ContainerCode | No | string(50) | Receipt LPN (License plate number) |
| ContainerType | Yes | string(50) | Receipt container type |
| ReceptionDate | Yes | DateTime | Date and time of the reception. UTC date-time format |
| Height | No | decimal | Maximum height, in meters. Positive number greater than 0 |
| Weight | No | decimal | Total weight received in this LPN, in kilos (including containers). Positive number greater than 0 |
| Volume | No | decimal | Volumecubic metersreceipt. Positive number greater than 0 |
| IsSlave | No | bool | If true (value 1) the container is a slave container: It has not stock but fisically exists |
| ReceiptOrderCode | No | string(50) | Receipt order code |
| DivisionType | No | string(50) | Division type of the receiving container |
| Lines | No | Group | Lines data |
| Line | Yes | List | |
| LneItemCode | Yes | ||
| LneOwnerCode | Yes | ||
| LneDivision | No | ||
| LneQuantity | Yes | ||
| LneUoMCode | Yes | ||
| LneSupplierCode | No | ||
| LneWeight | No | ||
| LnePackage | No | ||
| LneStatus | No | ||
| LneStaStatus | |||
| LneStaEnd | |||
| LneStaComment | |||
| LneAttributes | No | ||
| LneCustomAttributes | No | ||
| CustomAttributes | No | CustomAttributes | Custom attributes |
| Containers | No | Group | Containers data |
| Container | No | List |
Advanced shipping notice KO - ASK
Message type: ASK (Advanced shipping notice KO)
Import / Export: Export
Version: 01
Description: This message cancels to the ERP the inbound of an advanced shipping LPN (ASN) into the warehouse site (the LPN has not been received). - When the LPN is cancelled, all its lines notified in advanced are cancelled too. - When only some stock lines are receipt into a LPN, no cancellation message is sent but a confirmation message (ASO) instead.
Structure:
ASK01
| Field | Required | Format | Description |
|---|---|---|---|
| Site | Yes | string(50) | Code of the warehouse site where the LPN was expected |
| ContainerCode | Yes | string(50) | Advanced receipt LPN (License plate number) |
| CancelDate | Yes | DateTime | Cancellation date and time. UTC date-time format |
| ReceiptOrderCode | No | string(50) | Receipt order code |
Replenishment of pre-notified loose stock – SRO
Message type: SRO (Stock replenish notice OK)
Import / Export: Export
Version: 01
Nombre del fichero XML: SRO01yyyyMMddHHmmssxxx.xml
Description: This message is used to confirm that the stock created for the replenishment of the automatic warehouse has been used for replenishment and has been registered as available stock.
Structure:
SRO01
| Field | Required | Format | Description |
|---|---|---|---|
| Site | Yes | string(50) | Site code where the stock is |
| ItemCode | Yes | string(50) | Item code |
| OwnerCode | Yes | string(50) | Owner code |
| Quantity | Yes | decimal | Stock quantity. Positive number higher or equal to zero |
| UoMCode | Yes | string(50) | UoM of the quantity |
| ContainerCode | Yes | string(50) | Destination code container. Code of the container destination of the replenishment |
| DivisionCode | No | string(50) | Destination division of the container. Code of the division destination of the replenishment |
| LocationCode | Yes | string(50) | Location where the stock has been processed |
| ReceptionDate | Yes | DateTime | Date and hour of the replenishment. UTC date-time format |
| Status | No | Group | Data about the status. It contains the necessary data to define the status from the ERP |
| StaUsrCode | Yes | string(50) | |
| StaUsrEnd | No | DateTime | |
| StaUsrComment | No | string(1000) | |
| Attributes | No | StockAttributes | Data about the stock attributes. It contains the necessary data to define the stock attributes from the ERP |
| CustomAttributes | No | CustomAttributes | Data about the custom attributes. It contains the necessary data to define the custom attributes from the ERP |
Cancellation of pre-notified loose stock for replenishment – SRK
Message type: SRK (Stock Replenish notice KO)
Import / Export: Export
Version: 01
Description: This message is used to indicate the cancellation of loose stock created for the replenishment of an automatic warehouse and which has not been used.
Structure:
SRK01
| Field | Required | Format | Description |
|---|---|---|---|
| Site | Yes | string(50) | Code of the site where the stock is located |
| CancelDate | Yes | DateTime | Date and time the stock was removed. Date and hour in UTC format |
| ItemCode | Yes | string(50) | Item code |
| OwnerCode | Yes | string(50) | Owner code |
| Quantity | Yes | decimal | Stock quantity. Positive number higher or equal to zero |
| UoMCode | Yes | string(50) | UoM of the quantity. You must reference an existing conversion in the system. Otherwise the error will be notified |
| Status | No | Group | Data about the status. It contains the necessary data to define the status from the ERP |
| StaUsrCode | Yes | string(50) | |
| StaUsrEnd | No | DateTime | |
| StaUsrComment | No | string(1000) | |
| Attributes | No | StockAttributes | Data about the stock attributes. It contains the necessary data to define the stock attributes from the ERP |
| CustomAttributes | No | CustomAttributes | Data about the custom attributes. It contains the necessary data to define the custom attributes from the ERP |
Shipping
Imported messages
Messages that will be received in Import direction (from the ERP to MAP).
Shipping orders - SOR
Message type: SOR (Shipping orders)
Import / Export: Import
Command name: Mecalux.ITSW.EasyWMS.Modules.Expeditions.Contracts.Commands.OutboundOrderErpCommand, Mecalux.ITSW.EasyWMS.Modules.Contracts
Description: This message allows creating, modifying, deleting and upserting the shipping orders data managed in Easy WMS.
-
Shipping orders processed will be created and set to the Waiting status.
-
When deleting, not all data is necessary but only primary key data (marked in red).
-
Line number is the primary key data when operating with order lines. Must be greather than 0.
-
It is not allowed to change the Site in existing shipping orders.
-
It is not allowed to change the header data in merged orders.
-
Update, Delete and Upsert operations (1, 2, 3) depends on the current order status and its lines status, i.e.: Delete (2) could imply order cancelation -not deletion- when the status is different of Creating and do not allow deleting the order or its lines.
-
Shipping orders and lines will be created with the data AutoCreated false y ReceivedFromERP true.
-
Only shipping orders created by SOR message could be deleted or modified using SOR messages with operations Update (1), Delete (2) or Upsert (3).
-
When not any dock is set in the message, the default shipping dock for the site is used (when existing).
-
Shipping order lines could always be created (when not Cancelled or Closed).
-
All shipping order lines attributes can be modified if no quantity has been prepared or shipped. Shipping order lines quantities (Quantity data group but not UnitOfMeasureCode) can always be modified, being the minimum limit the already shipped quantity.
-
Shipping order lines that are not merged could be deleted when notCancelled or Closed.
-
The 1..n group Lines has a complete attribute, which indicates whether all the existing components are included into the group (when true), or only the modified ones (when false):
- When the complete attribute has a false (0) value: Only the specific components of the group will be modified, other possible existing components maintains its previous value.
- When the complete has true (1) value: The message has to include all order lines, because operations set in the lines will be performed and after that any other order line will be deleted of the system. E.g.:
- A new shipping order is sent with two order lines on it -> the order and its lines are created into the Easy WMS system
- A modification of the order is sent with a new line and the complete attribute set to true -> the order line will be created but the old two existing lines will be removed from the order list, so the order will have only one line to ship in the Easy WMS system.
-
Default operation in the Lines group is 3 (Upsert).
-
Lines could specify requested item, container, or both, in which case it refers to the specific stock from this item stored in the specified container.
-
If lines transactional attribute is set to true (transactional true)and an error happens, the order will not be created. Otherwise (transactional false), the order is created without the lines that fails.
-
For update any attribute on a line, the rest of attributes must be set with the right values. There is not supported to communicate attributes to null to respect the old values (note that ignoreNull attribute on the lines group is not available)
-
AllowDynamicReplenishment field enables automatic replenishment, so, when a shipping order is received with this field active, the automatic job that enables dynamic picking will be active too, creating the requiered tasks to do it. If the field is empty or false automatic replenishment will not be active.
Structure:
SOR
| Field | Required | Format | Description |
|---|---|---|---|
| IgnoreNulls | No | bool | Flag to ignore null values. If it is set to true, null values are not modified in the upsert and update operations. |
| Operation | No | Enumeration | Operation to do with the shipping order. An error may be reported if the operation is not allowed for the shipping order status. Operation 2 (Delete) will involve a deletion when the order is in creation or a cancellation when it is released. Possibles values: 0 (Create), 1 (Update), 2 (Delete), 3 (Upsert). |
| Code | Yes | string(50) | Code of the shipping order. If a non-existent value is included in the system with an operation 0 (Create) or 3 (Upsert) will be registered, while if the operation is 1 (Update) or 2 (Delete) an error will occur. |
| NewCode | No | string(50) | New shipping order code. It will only be used in case you want to modify: operations 1 (Update), 3 (Upsert). |
| Site | Yes | string(50) | System site code. An existing site must be included in the system and its modification is not allowed. |
| Data | No | Group | Data about the shipping order. It contains the necessary data to define a shipping order from the ERP. |
| Priority | No | Enumeration | |
| OutboundType | No | Enumeration | |
| AccountCode | No | string(50) | |
| OutboundClassCode | No | string(50) | |
| SupplierCode | No | string(50) | |
| WarehouseToCode | No | string(50) | |
| Document | No | string(65) | |
| Source | No | string(65) | |
| Description | No | string(1000) | |
| DeliveryInstructions | No | string(1000) | |
| DeskLocationCode | No | string(50) | |
| ValidDate | No | DateTime | |
| FollowSequence | No | bool | |
| Transport | No | Group | |
| AgencyCode | No | ||
| TransportType | No | ||
| RouteCode | No | ||
| StopNumber | No | ||
| Planning | No | Group | |
| AutoReleaseDate | No | ||
| EstimatedNumCont | No | ||
| ExpectedDockStationCode | No | ||
| AssignedDockStationCode | No | ||
| PlannedLoadDate | No | ||
| PlannedShippingDate | No | ||
| Preparation | No | Group | |
| PackingLocationCode | No | ||
| RequiredClientContainerTypeCode | No | ||
| ClientContainerTypeCode | No | ||
| ClientContainerNumLabels | No | ||
| ShipReportNumCopies | No | ||
| PackingListNumCopies | No | ||
| RequiresPackaging | No | ||
| TransactionalLineList | No | bool | |
| CompleteLineList | No | bool | |
| AllowDynamicReplenishment | No | bool | |
| LineList | No | List | |
| Operation | No | ||
| LineNumber | Yes | ||
| MaxLots | No | ||
| ProductCode | No | ||
| OwnerCode | No | ||
| ContainerCode | No | ||
| Comment | No | ||
| Quantity | No | ||
| QuantityOrdered | |||
| UnitOfMeasureCode | |||
| RequiredUnitOfMeasure | |||
| QuantityToReserve | |||
| QuantityRejected | |||
| AllowAssignStockExcess | |||
| Terms | No | ||
| FavouriteContainerTypeCode | |||
| FavouriteUnitOfMeasureCode | |||
| CatchWeight | |||
| RequiredToShip | |||
| IsCritical | |||
| UseAlternativeProducts | |||
| Status | |||
| ContainerTypeCode | |||
| Customer | No | ||
| ProductCode | |||
| LineNo | |||
| AltProduct | No | ||
| ProductCode | |||
| FromFactor | |||
| ToFactor | |||
| UnitOfMeasureCodeTo | |||
| PurchasePrice | No | ||
| Quantity | |||
| Currency | |||
| LogisticAttributes | No | ||
| LotCode | |||
| SerialNumber | |||
| ProductionDate | |||
| ExpirationDate | |||
| BestBeforeDate | |||
| DaysOfLife | |||
| Quality | |||
| Color | |||
| Source | |||
| Version | |||
| ProductionMethod | |||
| PostProductionTreatment | |||
| Size | |||
| Weight | |||
| CustomAttribute | No | ||
| Attribute1 | |||
| Attribute2 | |||
| Attribute3 | |||
| Attribute4 | |||
| Attribute5 | |||
| Attribute6 | |||
| Attribute7 | |||
| Attribute8 | |||
| Attribute9 | |||
| Attribute10 | |||
| Attribute11 | |||
| Attribute12 | |||
| Attribute13 | |||
| Attribute14 | |||
| Attribute15 | |||
| Attribute16 | |||
| Attribute17 | |||
| Attribute18 | |||
| Attribute19 | |||
| Attribute20 | |||
| Transport | No | ||
| AgencyCode | |||
| TransportType | |||
| CustomAttribute | No | Group | |
| Attribute1 | No | ||
| Attribute2 | No | ||
| Attribute3 | No | ||
| Attribute4 | No | ||
| Attribute5 | No | ||
| Attribute6 | No | ||
| Attribute7 | No | ||
| Attribute8 | No | ||
| Attribute9 | No | ||
| Attribute10 | No | ||
| Attribute11 | No | ||
| Attribute12 | No | ||
| Attribute13 | No | ||
| Attribute14 | No | ||
| Attribute15 | No | ||
| Attribute16 | No | ||
| Attribute17 | No | ||
| Attribute18 | No | ||
| Attribute19 | No | ||
| Attribute20 | No | ||
| CreationDateOnERP | No | DateTime | |
| Address | No | Group | |
| ZipCode | No | ||
| AddressLine | No | ||
| AddressLine2 | No | ||
| City | No | ||
| State | No | ||
| Country | No | ||
| Comment | No | ||
| ShipExpiredStock | No | bool | |
| PrepackagingConfiguration | No | Group | |
| Operation | No | ||
| PrepackagingProcess | No | ||
| PrepackagingWorkingMode | No | ||
| TransactionalLineList | No | ||
| CompleteLineList | No | ||
| PrepackagingContainersList | No | ||
| Operation | |||
| ContainerType | |||
| PrepackagingLines | |||
| OrderContainer | |||
| OwnerCode | No | string(50) |
Routes - RUT
Message type: RUT (Routes)
Import / Export: Import
Command name: Mecalux.ITSW.EasyWMS.Modules.Expeditions.Contracts.Commands.RouteErpCommand, Mecalux.ITSW.EasyWMS.Modules.Contracts
Description: This message allows creating, modifying, deleting and upserting the routes and shipping orders managed in Easy WMS. - Routes created with this message, will have ReceivedFromERP set true, and will be completely created so its status will be Waiting. - It is not allowed to change the Site in existing routes - Only routes created by RUT message could be deleted or modified using RUT messages with operations Update (1), Delete (2) or Upsert (3) - When deleting, not all data is necessary but only primary key data (marked in red). - When adding or removing shipping orders tothe route orders list, or cancelling the route itself, the order will be removed or added from the route list, but not from the Easy WMS system. - When not any dock is set, the default shipping dock for the site is used (when existing) - Shipping orders included into the SORs 1..n group, can be existing shipping orders or new ones, which would be created in the system. Existing ones will inherit from the route its priority, expected dock, carrier, and autorelease date, as well as being released, stopped, or paused according to the route current state. - SOR elements into the route SORs group will be treated as if received in separated SOR messages including them into the route, except for priority, autorelease date and expected dock which will be the same as in the route. - When SORs group attribute transactional is set true, if any order import fails, thre route shouldn’t be created. Otherwise (transactional false) the route will be created without the order that fails. - It’s not mandatory to include the lines of the outbound order. If not included, the existing ones are ketp.
Structure:
RUT
| Field | Required | Format | Description |
|---|---|---|---|
| IgnoreNulls | No | bool | Flag to ignore null values. If it is set to true, null values are not modified in the upsert and update operations. |
| Operation | Yes | Enumeration | Operation to perform. |
| 0: Create, 1: Update, 2: Delete, 3: Upsert | |||
| Code | Yes | string(50) | Route code. |
| When a non-existing value is included and an ooperation 0 (Create) or 3 (Upsert) is performed, this will be created. | |||
| NewCode | No | string(50) | New route code. |
| Only used when a modification is performed 1 (Update), 3 (Upsert). | |||
| Site | Yes | string(50) | Warehouse site code. |
| Has to be an existing site, and it is not allowed to modify it. | |||
| Data | No | Group | Data about the route. Contains all necessary data to define an route from the ERP |
| Priority | No | Enumeration | |
| Possible values: 0 (Urgente), 1 (Alta), 2 (Normal), 3 (Baja), 4 (Muy baja). | |||
| Document | No | string(65) | |
| CommodityType | No | string(65) | |
| Driver | No | Group | |
| AgencyCode | No | ||
| Code has to exist in the system, or an error will be notified. | |||
| DriverName | No | ||
| TruckPlate | No | ||
| TrailerPlate | No | ||
| Planning | No | Group | |
| EstimatedLoadDate | No | ||
| UTC date-time format. | |||
| EstimatedDeliveryDate | No | ||
| UTC date-time format. | |||
| AutoReleaseDate | No | ||
| UTC date-time format. | |||
| ExpectedDockStationCode | No | ||
| The dock has to exist in the system or an error will be notified. | |||
| AssignedDockStationCode | No | ||
| The dock has to exist in the system or an error will be notified. | |||
| TransactionalSorList | No | bool | |
| If it is false, each element must be individually transactioned. | |||
| CompleteSorList | No | bool | |
| If it is false, more sors appart from those in the list can exist for this route. | |||
| SorList | No | List | |
| Operation | No | ||
| An error might raise if the operation is not allowed for the order’s status. | |||
| Possible values: 0 (Create), 1 (Update), 2 (Delete), 3 (Upsert). If it’s not included, it will take the value 3 (Upsert) by default. | |||
| Code | Yes | ||
| When a non-existing value is included and a creation operation 0 (Crear) is performed, the order will be created. | |||
| If the code already exists in the system, it will include the order into the route. | |||
| OutboundType | No | ||
| Possible values: 0 (Customer), 1 (Return), 2 (Transfer), 4 (DirectTransfer). | |||
| AccountCode | No | ||
| Code has to exist in Easy WMS, or an error will be notified. | |||
| It cannot be null or empty when the type of the order is Customer. | |||
| OutboundClassCode | No | ||
| The code has to be an existing shipping class code which can be received from ERP or an error will be notified. | |||
| SupplierCode | No | ||
| Code has to exist in the system, or an error will be notified. Only used when shipping order type is Return. | |||
| WarehouseToCode | No | ||
| The site has to exist in the system, or an error will be notified. Only used when shipping order type is Transfer or DirectTransfer. | |||
| Document | No | ||
| Source | No | ||
| Description | No | ||
| DeliveryInstructions | No | ||
| ValidDate | No | ||
| UTC date-time format. | |||
| ShipExpiredStock | No | ||
| It takes the value false (0) by default. | |||
| FollowSequence | No | ||
| It takes the value 0 (false) by default. | |||
| StopNumber | No | ||
| Positive number greater than zero. | |||
| EstimatedNumCont | No | ||
| Positive number greater than zero. | |||
| PlannedLoadDate | No | ||
| UTC date-time format. | |||
| PlannedShippingDate | No | ||
| UTC date-time format. | |||
| PackingLocationCode | No | ||
| Packing location has to exist in the system, or an error will be notified. | |||
| ClientContainerTypeCode | No | ||
| It must match an existing container type, or an error will be notified. | |||
| ClientContainerNumLabels | No | ||
| Positive number greater than 0. | |||
| ShipReportNumCopies | No | ||
| Positive number greater than 0. | |||
| PackingListNumCopies | No | ||
| Positive number greater than 0. | |||
| TransactionalLineList | No | ||
| If it is false, each element must be individually transactioned. | |||
| CompleteLineList | No | ||
| If it is false, more lines appart from those in the list can exist for this inbound order. | |||
| LineList | No | ||
| Operation | |||
| LineNumber | |||
| MaxLots | |||
| ProductCode | |||
| OwnerCode | |||
| ContainerCode | |||
| Comment | |||
| Quantity | |||
| Terms | |||
| Customer | |||
| AltProduct | |||
| PurchasePrice | |||
| LogisticAttributes | |||
| CustomAttribute | |||
| Transport | |||
| CustomAttribute | No | ||
| Attribute1 | |||
| Attribute2 | |||
| Attribute3 | |||
| Attribute4 | |||
| Attribute5 | |||
| Attribute6 | |||
| Attribute7 | |||
| Attribute8 | |||
| Attribute9 | |||
| Attribute10 | |||
| Attribute11 | |||
| Attribute12 | |||
| Attribute13 | |||
| Attribute14 | |||
| Attribute15 | |||
| Attribute16 | |||
| Attribute17 | |||
| Attribute18 | |||
| Attribute19 | |||
| Attribute20 | |||
| OwnerCode | No | ||
| CustomAttribute | No | Group | |
| Attribute1 | No | ||
| Attribute2 | No | ||
| Attribute3 | No | ||
| Attribute4 | No | ||
| Attribute5 | No | ||
| Attribute6 | No | ||
| Attribute7 | No | ||
| Attribute8 | No | ||
| Attribute9 | No | ||
| Attribute10 | No | ||
| Attribute11 | No | ||
| Attribute12 | No | ||
| Attribute13 | No | ||
| Attribute14 | No | ||
| Attribute15 | No | ||
| Attribute16 | No | ||
| Attribute17 | No | ||
| Attribute18 | No | ||
| Attribute19 | No | ||
| Attribute20 | No |
Work Orders - WOR
Message type: WOR (Work Order received)
Import / Export: Import
Command name: Mecalux.ITSW.EasyWMS.Modules.Contracts.Commands.WorkOrderErpCommand, Mecalux.ITSW.EasyWMS.Modules.Contracts
Description: With this message we can get the information about the work orders received to prepare. - Work Orders will be created and their status will be Waiting. - When we receive the information to cancel one work order, we only need the fields marked in red. - It´s not allowed to modify the Site for an existing work order. - Work orders received from the ERP will be created with the ReceivedFromERP field to true. - From the ERP, we can only change de work orders created in the ERP. - If the work order is a Kitting or Dekitting order, the fields ItemCode, KitItemVersion and OwnerCode will be requeired. - The OBL column defines the obligation for the field to be informed. If the field is not informed and it is an update, we must pay attention to the value of the ignorenull tag.
Structure:
WOR
| Field | Required | Format | Description |
|---|---|---|---|
| IgnoreNulls | No | bool | WOR mandatory boolean attribute. When true (1) null or not existing data fields keep its original value; when false (0) data fields are set to void. |
| Operation | Yes | Enumeration | Operation to perform with the work order data. An error may be reported if the operation is not allowed for the state of the order. |
| Operation 2: Delete will involve cancellation in all cases, except when already we have quantity mounted / disassembled that it will be a close. | |||
| Allowed values: 0: Create, 1: Update, 2: Delete, 3: UPSERT. | |||
| Code | Yes | string(50) | Work order. |
| If we try to create an order with 0: Create or 3: UPSERT, the order will be created successfully. If the operations is 1: Update or 2: Delete, the system will throw an error message. | |||
| Site | Yes | string(50) | Site. |
| The site should exists in the system and it is not possible to modify it. | |||
| Data | No | Group | Data about the work order. It contains all necessary data to define an work order from the ERP. |
| Priority | Yes | Enumeration | |
| Possible values: Urgent, High, Normal, Low, VeryLow. | |||
| WorkOrderType | Yes | Enumeration | |
| If the order is Kitting or Dekitting type, the ItemCode field, KitItemVersion field and OwnerCode field are required. | |||
| WorkLocationCode | No | string(50) | |
| If the work location received does not exist, or is not a valid work zone, the system throws an error message. | |||
| ItemCode | No | string(50) | |
| It must reference an existing item code, otherwise you will be notified of an error. | |||
| OwnerCode | No | string(50) | |
| It must reference an existing provider code in the system, otherwise you will be notified of error. | |||
| KitItemVersion | No | string(50) | |
| It must reference an existing version in the system for the requested kit. | |||
| Quantity | Yes | long | |
| Natural number greater than 0. | |||
| Description | No | string(1000) | |
| CustomAttribute | No | Group | |
| Attribute1 | No | ||
| Attribute2 | No | ||
| Attribute3 | No | ||
| Attribute4 | No | ||
| Attribute5 | No | ||
| Attribute6 | No | ||
| Attribute7 | No | ||
| Attribute8 | No | ||
| Attribute9 | No | ||
| Attribute10 | No | ||
| Attribute11 | No | ||
| Attribute12 | No | ||
| Attribute13 | No | ||
| Attribute14 | No | ||
| Attribute15 | No | ||
| Attribute16 | No | ||
| Attribute17 | No | ||
| Attribute18 | No | ||
| Attribute19 | No | ||
| Attribute20 | No |
Exported messages
Messages that will be sent in Export direction (from MAP to the ERP).
Shipping order status change - SOC
Message type: SOC (Shipping order status change)
Import / Export: Export
Version: 01
Description: With this message, Easy WMS notifies any status change of an existing shipping order.
- Shipping orders that has been grouped o merged, once grouped or merged, don’t changes of status, so changes in the status of their preparation (Released, Working, Paused) shouldn’t be expected like for orders non grouped or merged.
Structure:
SOC01
| Field | Required | Format | Description |
|---|---|---|---|
| Site | Yes | string(50) | Warehouse code of the shipping order |
| SorCode | Yes | string(50) | Shipping order code |
| Status | Yes | string | Current status of the shipping order. Possible values: Secured, Waiting, Assigned, Release, Working, Paused, StockFailure, Merged, Grouped |
| UpdateDate | Yes | DateTime | UTC date and time of the status change of the shipping order |
Shipping order close or finalization - SOF
For the shipping order close or finalization message there are two versions: SOF01 y SOF02
Shipping order close or finalization - SOF01
Message type: SOF (Shipping order close or finalization)
Import / Export: Export
Version: 01
Description: With this message, Easy WMS notifies the stock shipped related to an existing shipping order in the system, because the order has been closed or finished.
- When the shipping order has been created by a RUT message received from ERP, route code will be part of the finalization SOF data.
- When partial closing is used, each closing will generate a SOF message containing the closing number and only the shipping order lines closed.
- When the close of an outbound order is forced but it didn’t ship any stock, no order lines will be sent.
- When cancelling shipping orders, no order lines will be sent in the SOF message (all pending lines will be cancelled).
Structure:
SOF01
| Field | Required | Format | Description |
|---|---|---|---|
| Site | Yes | string(50) | Code of the warehouse site where the shipping is done |
| SorCode | Yes | string(50) | Shipping order code |
| Status | Yes | string | Status in which the order has been closed or finalized. Finalization statuses are Cancelled and Closed. Possible values: Waiting, Release, Working, Paused, StockFailure, Cancelled, Closed, Secured |
| ClosingNum | No | long | Closing number. Positive integer greater than 0. It will be mandatory when what has occurred is a closing |
| Document | No | string(65) | Delivery note |
| Source | No | string(65) | Open text to describe the shipping |
| ShipExpiredStock | No | bool | Order requires expired stock or not |
| Transport | No | Transport | Transport data of the shipping order |
| Preparation | Yes | Group | Preparation data of the shipping order |
| PrpReleaseDate | No | DateTime | |
| PrpContainers | Yes | long | |
| PrpContType | No | string(50) | |
| PrpDock | No | string(50) | |
| PrpShippingDate | No | DateTime | |
| Delivery | No | Group | Delivery data of the shipping order |
| DlvTrackingNumber | No | string(1000) | |
| DlvCarrierCode | No | string(50) | |
| Lines | No | Group | Shipping order lines |
| Line | Yes | List | |
| LneNumber | Yes | ||
| LneItemCode | No | ||
| LneContCode | No | ||
| LneOwnerCode | No | ||
| LneComment | No | ||
| LneQuantity | No | ||
| LneQtyOrder | |||
| LneQtyFree | |||
| LneQtyUoMCode | |||
| LneCustomerData | No | ||
| LneCtmCode | |||
| LneCtmLineNumber | |||
| LneCost | No | ||
| LneCstPurchase | |||
| LneCstCurrency | |||
| LneAttributes | No | ||
| LneCustomAttributes | No | ||
| LneDetails | No | ||
| LneDetail | |||
| LneVASDetails | No | ||
| LneVASDetail | |||
| CustomAttributes | No | CustomAttributes | Custom attributes of the shipping order |
Shipping order close or finalization - SOF02
Message type: SOF (Shipping order close or finalization)
Import / Export: Export
Version: 02
Description: With this message, Easy WMS notifies the stock shippied related to an existing shipping order in the system, because the order has been closed or finished.
- When the shipping order has been created by a RUT message received from ERP, route code will be part of the finalization SOF data.
- When partial closing is used, each closing will generate a SOF message containing the closing number and only the shipping order lines closed.
- When the close of an outbound order is forced but it didn’t ship any stock, no order lines will be sent.
- When cancelling shipping orders, no order lines will be sent in the SOF message (all pending lines will be cancelled).
Structure:
SOF02
| Field | Required | Format | Description |
|---|---|---|---|
| Site | Yes | string(50) | Code of the warehouse site where the shipping is done |
| SorCode | Yes | string(50) | Shipping order code |
| Status | Yes | string | Status in which the order has been closed or finalized. Finalization statuses are Cancelled and Closed. Possible values: Waiting, Release, Working, Paused, StockFailure, Cancelled, Closed, Secured |
| OutboundType | Yes | string | The outbound order’s outbound type. Possible values: Customer, Return, Transfer, Manual, DirectTransfer, KitAssembly, Manufacturing, KitDisassembly, Replenishment, Desk |
| ClosingNum | No | long | Closing number. Positive integer greater than 0. It will be mandatory when what has occurred is a closing |
| Document | No | string(65) | Delivery note |
| Source | No | string(65) | Open text to describe the shipping |
| ShipExpiredStock | No | bool | Order requires expired stock or not |
| Transport | No | Transport | Transport data of the shipping order |
| Preparation | Yes | Group | Preparation data of the shipping order |
| PrpReleaseDate | No | DateTime | |
| PrpContainers | Yes | long | |
| PrpContType | No | string(50) | |
| PrpDock | No | string(50) | |
| PrpShippingDate | No | DateTime | |
| Lines | No | Group | Shipping order lines |
| Line | Yes | List | |
| LneNumber | Yes | ||
| LneItemCode | No | ||
| LneContCode | No | ||
| LneOwnerCode | No | ||
| LneComment | No | ||
| LneQuantity | No | ||
| LneQtyOrder | |||
| LneQtyFree | |||
| LneQtyUoMCode | |||
| LneCustomerData | No | ||
| LneCtmCode | |||
| LneCtmLineNumber | |||
| LneCost | No | ||
| LneCstPurchase | |||
| LneCstCurrency | |||
| LneAttributes | No | ||
| LneCustomAttributes | No | ||
| LneDetails | No | ||
| LneDetail | |||
| CustomAttributes | No | CustomAttributes | Custom attributes of the shipping order |
Truck loads finalization - LOF
Message type: LOF (Truckload finalization)
Import / Export: Export
Version: 01
Description: With this message, Easy WMS notifies the finalization of a truck load, specifying included shipping orders and LPNs. - Only correctly loaded trucks will be notified. Cancelled loads will not be notified because stock will not leave the warehouse site.
Structure:
LOF01
| Field | Required | Format | Description |
|---|---|---|---|
| Site | Yes | string(50) | Code of the warehouse site where the load is done |
| LoadCode | Yes | string(50) | Load code |
| LoadDate | Yes | DateTime | Date and time of the load. UTC date-time format |
| RouteCode | No | string(50) | Route that contains the load. Only used when the route was created from a RUT ERP message |
| Dock | No | string(50) | Shipping dock from where the truck was loaded |
| Weight | No | decimal | Weight of the load. Positive number greater than 0 |
| Description | No | string(65) | Load description |
| Comments | No | string(1000) | Load open text comment |
| CommodityType | No | string(1000) | Commodity type |
| Driver | No | Driver | Data about the driver. It contains the necessary data to define the driver from the ERP |
| Bill | No | Group | Data about the bill. It contains the necessary data to define the bill from the ERP |
| BllName | No | string(1000) | |
| BllAddress | No | string(1000) | |
| BllZipCode | No | string(50) | |
| BllCity | No | string(65) | |
| BllState | No | string(65) | |
| BllCountry | No | string(65) | |
| Containers | No | Group | Data about the containers. It contains the necessary data to define the containers from the ERP |
| Container | No | List | |
| CntCode | No | ||
| CntType | No | ||
| CntSorCode | No | ||
| IsSlave | No | ||
| Lines | No | ||
| Line | |||
| Containers | No | ||
| Stocks | No | Group | Data about the stock. It contains the necessary data to define the stock from the ERP |
| Line | No | List | |
| SorCode | No | ||
| LneNumber | Yes | ||
| LneItemCode | No | ||
| LneOwnerCode | No | ||
| LneIsAlternative | Yes | ||
| LneQtyShipped | No | ||
| LneQtyUoMCode | No | ||
| LneWeight | No | ||
| LneComment | No | ||
| LneCustomerData | No | ||
| LneCtmCode | |||
| LneCtmLineNumber | |||
| LneAttributes | No | ||
| LneCustomAttributes | No | ||
| CustomAttributes | No | CustomAttributes | Data about the custom attributes. It contains the necessary data to define the custom attributes from the ERP |
Work Order Finalization - WOF
Message type: WOF (Work order closed or finished)
Import / Export: Export
Version: 01
Description: This message is used to notify the ERP of changes in the stock caused by a work order, which has been closed or canceled.
-
If we cancel a work order after any quantity has been processed, the status of the order will be closed status. If any quantity has been yet, the status will be cancelled.
-
This message will be sent only in the work orders created by the ERP.
Structure:
WOF01
| Field | Required | Format | Description |
|---|---|---|---|
| Site | Yes | string(50) | Site |
| WorCode | Yes | string(50) | Work order |
| Status | Yes | string | Status in which the order has been closed or finished. The finishing status are Cancelled or Closed |
| WorType | Yes | string | Work order type. If the order is Kitting or Dekitting type, the ItemCode field, KitItemVersion field and OwnerCode field are requeired. With feature UseSameValuesForWorkTypeInWOR01AndWOF01Message enabled possible, values: KitAssembly, KitDisassembly, else Kitting, Dekitting, |
| WorkLocationCode | Yes | string(50) | Work zone location |
| ItemCode | No | string(50) | Item code |
| OwnerCode | No | string(50) | Owner code |
| KitItemVersion | No | string(50) | Kit version |
| Quantity | Yes | long | Ordered quantity |
| QuantityProc | Yes | long | Processed quantity. For the kits working orders, it will be the assembled quantity (Kitting) or disassembled (Dekitting) |
| StockConsumed | Yes | Group | Data about the stock consumed. It contains the necessary data to define the stock consumed from the ERP |
| StockDetails | No | List | |
| ItemCode | Yes | ||
| OwnerCode | Yes | ||
| Quantity | Yes | ||
| QtyUoMCode | Yes | ||
| Location | Yes | ||
| Container | No | ||
| StockAttributes | No | ||
| StockCustomAttributes | No | ||
| StockCreated | Yes | Group | Data about the stock created. It contains the necessary data to define the stock created from the ERP |
| StockDetails | No | List | |
| ItemCode | Yes | ||
| OwnerCode | Yes | ||
| Quantity | Yes | ||
| QtyUoMCode | Yes | ||
| Location | Yes | ||
| Container | No | ||
| StockAttributes | No | ||
| StockCustomAttributes | No | ||
| CustomAttributes | No | CustomAttributes | Data about the custom attributes. It contains the necessary data to define the custom attributes from the ERP |
Request and notifications
Imported messages
Messages that will be received in Import direction (from the ERP to MAP).
Stock status change request - STR
Message type: STR (Stock status change request)
Import / Export: Import
Command name: Mecalux.ITSW.EasyWMS.Modules.Contracts.Commands.StockStatusChangeRequestERPCommand, Mecalux.ITSW.EasyWMS.Modules.Contracts
Description: This message type allows to change specific stock status
- As a response to this request, when stock status is set or removed, a STC (stock status change) message will be sent to notify the change done
- Only upsert or delete operations are permitted (2 (Delete), 3 (Upsert))
- When upserting, the user stock status is always set, even if deleting previous user stock status is required
- When deleting, user status and/or reception status can be deleted
Structure:
STR
| Field | Required | Format | Description |
|---|---|---|---|
| Operation | Yes | Enumeration | Operation to perform with the status. UPSERT (3: UPSERT) will be about the user status. The delete (2: Delete) will perform about the user status and/or receipt status.0: Create, 1: Update, 2: Delete, 3: UPSERT |
| Site | Yes | string(50) | Code of the warehouse site. Has to be an existing site, and It is not allowed to modify it |
| ItemCode | Yes | string(50) | Item code. Has to be an existing item code, or an error will be notified |
| OwnerCode | No | string(50) | Item owner code. |
| When not set: | |||
| - If only one owner exists into the system, this | |||
| value will be set | |||
| - If there is a default owner, this value will be | |||
| set | |||
| In any other way, an error is notified | |||
| FltContainerCode | No | string | Container code that contains the item stock (to filter) |
| FltLocationCode | No | string | Location code that contains the item stock (to filter) |
| FltLogisticAttributes | No | Group | Logistic attributes (to filter) |
| BestBeforeDate | No | DateTime | |
| Colour | No | string(65) | |
| DaysOfLife | No | DateTime | |
| ExpirationDate | No | DateTime | |
| ProductionMethod | No | string(65) | |
| ProductionDate | No | DateTime | |
| PostProductionTreatment | No | string(65) | |
| Quality | No | string(65) | |
| SerialNumber | No | string(65) | |
| Size | No | string(65) | |
| Source | No | string(65) | |
| Version | No | string(65) | |
| LotCode | No | string(65) | |
| FltCustomAttribute | No | Group | Custom attributes (to filter) |
| Attribute1 | No | string(1000) | |
| Attribute2 | No | string(1000) | |
| Attribute3 | No | string(1000) | |
| Attribute4 | No | string(1000) | |
| Attribute5 | No | string(1000) | |
| Attribute6 | No | string(1000) | |
| Attribute7 | No | string(1000) | |
| Attribute8 | No | string(1000) | |
| Attribute9 | No | string(1000) | |
| Attribute10 | No | string(1000) | |
| Attribute11 | No | string(1000) | |
| Attribute12 | No | string(1000) | |
| Attribute13 | No | string(1000) | |
| Attribute14 | No | string(1000) | |
| Attribute15 | No | string(1000) | |
| Attribute16 | No | string(1000) | |
| Attribute17 | No | string(1000) | |
| Attribute18 | No | string(1000) | |
| Attribute19 | No | string(1000) | |
| Attribute20 | No | string(1000) | |
| StaCode | Yes | string(50) | User status to be set. User or reception status to be deleted. Has to be an existing status code in Easy WMS, or an error will be notified. |
| StaUsrEnd | No | DateTime | User status end in date UTC date-time format. Only used when upserting (3: UPSERT) |
| StaUsrComment | No | string(1000) | User status optional comment. Only used when upserting (3: UPSERT) |
Stock count request - SCR
Message type: SCR (Stock count request)
Import / Export: Import
Command name: Mecalux.ITSW.EasyWMS.Modules.Contracts.Commands.StockCountRequestErpCommand, Mecalux.ITSW.EasyWMS.Modules.Contracts
Description: This message allows to request a stock count with the currently existing data in Easy WMS. Stock to count can be filtered. SCR messages are always responded with WSC01 (same version) messages. - SCR messages only request the counting, so no modifications are done to the stock data. - Specific stock to be counted can be filtered by using the groups Filter, Items or Containers. - Stock status filters simultaneously by user status and reception status. - One data group at most (Filter, Items or Containers) can be used to filter in each SCR message in order to avoid redundant stock counting. - It is possible to request a total count with no filter on it. In this case a WSC message with all the site stock will be responded. - When MassiveCount is true, WSC message will group identical stock lines in different locations or LPN. Different status or different logistic attributes will not be grouped. - When MassiveCount is false, WSC will contain a stock line for each stock line in the site.
Structure:
SCR
| Field | Required | Format | Description |
|---|---|---|---|
| Site | Yes | string(50) | Code of the warehouse site. |
| MassiveCount | Yes | bool | When is true the identical stock lines in different locations will be grouped. If it is false the message returns every single stock line. |
| Batch | No | string(50) | Unique code used to group different messages in the same batch. |
| Filter | No | Group | Defines the filter by item categories. If this data group has value not Items nor Containers data groups are allowed. |
| TypeCode | No | string(50) | |
| FamilyCode | No | string(50) | |
| OwnerCode | No | string(50) | |
| Items | No | List | Defines the filter by an item or a list of items. If this data group has value not Filter nor Containers data groups are allowed. |
| ItemCode | Yes | string(50) | |
| OwnerCode | No | string(50) | |
| When not set, default owner or unique owner is assumed.If there is more than one product and there is not default owner returns quantity zero. | |||
| StatusCode | No | string(50) | |
| Attributes | No | Group | |
| BestBeforeDate | No | ||
| Colour | No | ||
| DaysOfLife | No | ||
| ExpirationDate | No | ||
| ProductionMethod | No | ||
| ProductionDate | No | ||
| PostProductionTreatment | No | ||
| Quality | No | ||
| SerialNumber | No | ||
| Size | No | ||
| Source | No | ||
| Version | No | ||
| LotCode | No | ||
| Containers | No | List | Defines the filter by a container or a list of containers. If this data group has value not Filter nor Items data groups are allowed. |
| ContainerCode | Yes | string(50) |
Count order request - COR
Message type: COR (Count Order Request)
Import / Export: Import
Command name: Mecalux.ITSW.EasyWMS.Modules.Contracts.Commands.CountOrderErpCommand, Mecalux.ITSW.EasyWMS.Modules.Contracts
Description: This message is used to request the creation, update or deletion of a count order and its lines (it can indicate any of the characteristics allowed for a count order in Easy WMS)
-
COR messages are always answered with COF messages with the same count code number. The main difference between the SCR message and the COR message is that the COR message corresponds to the COF message, which merely contains the stock of the counted locations (as indicated in COR). The WSC, as a result of the SCR message, responds to all the stock in the warehouse.
-
It allows to modify the count code, the description and the priorities; as well as any data on its lines (as well as delete them), as long as they have not been released.
-
Once the count has been released, any new lines in the count will be auto-released, unlike orders created directly in Easy WMS.
-
Count lines that are added when the count has already been released will be released automatically. This behavior is exclusive for count lines created through this message.
-
The message contains the ignoreNull parameter that allows specifying the treatment for non-mandatory empty labels. If the parameter is set to true it will ignore all empty fields and it will create the order/line (except for parameters that are of type date). When the parameter is set to false, and there are empty non-mandatory fields, it will not create/update anything included in the message and will return an error.
-
The message contains the transactional parameter that defines the behavior on an error in a line. When set to true, and there is an error on one line, it will not process any of the lines (even if the rest contain no errors). If the parameter is set to false, only errored lines will be ignored, and well-defined lines will be processed.
-
The message contains the complete parameter, which defines the behavior on order updates. If the parameter is set to true it will update the command with everything contained in the message, removing any previously created lines. If the parameter is set to false, it will honor what already exists in the command and only update/create/delete what is set in the new message.
Structure:
COR
| Field | Required | Format | Description |
|---|---|---|---|
| IgnoreNulls | No | bool | Flag to ignore null values. If it is set to true, null values are not modified in the upsert and update operations. |
| Operation | Yes | Enumeration | Operation to be carried out with the count order.An error may be reported if the operation is not allowed for the order status.Operation D will result in a deletion when the order is being created or a cancellation when it is released. 0: Create, 1: Update, 2: Delete, 3: UPSERT |
| Code | Yes | string(50) | Código de la orden de recuento |
| NewCode | No | string(50) | New count order code.It will only be used if you want to change(operations U, S) |
| Site | Yes | string(50) | Code of the system site where the stock is located.An existing site must be included in the system. |
| Data | No | Group | Data about the count order. It contains the necessary data to define a count order from the ERP. |
| Description | No | string(1000) | |
| Priority | Yes | Enumeration | |
| CustomAttribute | No | Group | |
| Attribute1 | No | ||
| Attribute2 | No | ||
| Attribute3 | No | ||
| Attribute4 | No | ||
| Attribute5 | No | ||
| Attribute6 | No | ||
| Attribute7 | No | ||
| Attribute8 | No | ||
| Attribute9 | No | ||
| Attribute10 | No | ||
| Attribute11 | No | ||
| Attribute12 | No | ||
| Attribute13 | No | ||
| Attribute14 | No | ||
| Attribute15 | No | ||
| Attribute16 | No | ||
| Attribute17 | No | ||
| Attribute18 | No | ||
| Attribute19 | No | ||
| Attribute20 | No | ||
| LineList | No | List | |
| Operation | No | ||
| Item | No | ||
| ProductCode | |||
| OwnerCode | |||
| ProductCountAttErpData | |||
| Container | No | ||
| ContainerCode | |||
| Location | No | ||
| PutawayZoneCode | |||
| AisleCode | |||
| LocationMaxCode | |||
| LocationMinCode | |||
| XMax | |||
| XMin | |||
| YMax | |||
| YMin | |||
| LineNumber | Yes | ||
| OwnerCodeCountLine | No | ||
| CustomAttribute | No | ||
| Attribute1 | |||
| Attribute2 | |||
| Attribute3 | |||
| Attribute4 | |||
| Attribute5 | |||
| Attribute6 | |||
| Attribute7 | |||
| Attribute8 | |||
| Attribute9 | |||
| Attribute10 | |||
| Attribute11 | |||
| Attribute12 | |||
| Attribute13 | |||
| Attribute14 | |||
| Attribute15 | |||
| Attribute16 | |||
| Attribute17 | |||
| Attribute18 | |||
| Attribute19 | |||
| Attribute20 | |||
| IsInformed | No | ||
| TransactionalLineList | Yes | bool | |
| If it is false, each element must be individually transactioned. | |||
| CompleteLineList | Yes | bool | |
| If it is false, more lines appart from those in the list can exist for this inbound order. |
Container Move Confirmation - CMC
Message type: CMC (Container Movement Confirmation)
Import / Export: Import
Command name: Mecalux.ITSW.EasyWMS.Modules.Contracts.Commands.ContainerMovementConfirmationERPCommand, Mecalux.ITSW.EasyWMS.Modules.Contracts
Description: When movements from an outbound point are not managed via Easy WMS, the CMC message is used for the ERP to confirm the movement from outbound conveyor to the next destination..
-
CMC message allow “1” (delete) and “0” (update) operations .
-
Delete operation doest not requires a destination, and the container Will be removed on Easy WMS.
-
With the update operation the destination is a mandatory field, and Easy WMS will move the container on outbound conveyor to the location indicated in CMC message. If this operation has not destination, Easy WMS will return an error message.
Structure:
CMC
| Field | Required | Format | Description |
|---|---|---|---|
| ContainerCode | Yes | string(50) | Container code |
| Operation | Yes | Enumeration | Indicates the operation that will be executed (1: Update: Update, move container, 2: Delete: Delete, delete container) |
| ForceDeletionOfEmptyHolderContainer | No | bool | Indicates that the holder container will be deleted (if empty) when Operation is “Delete” |
| LocationCode | No | string(50) | Location code to move container when Operation is “Update” |
| WarehouseCode | Yes | string(50) | Warehouse code to move container when Operation is “Update” |
Exported messages
Messages that will be sent in Export direction (from MAP to the ERP).
Kitting - KST
Message type: KST (Kit stock assembled)
Import / Export: Export
Version: 01
Description: This message is used to notify the assembly of stock of kits inEasy WMS so that the ERP can know the new stock created and the components that have been used to mount it.
Structure:
KST01
| Field | Required | Format | Description |
|---|---|---|---|
| Site | Yes | string(50) | Warehouse stock site |
| WorkOrderCode | No | string(50) | Work order code |
| KitItemCode | Yes | string(50) | Kit item code |
| KitOwnerCode | Yes | string(50) | Kit item owner code |
| KitQuantity | Yes | long | Quantity mounted. Positive number greater than 0 |
| KitQuantityUomCode | Yes | string(50) | UoM (Unit of Measure) of the quantity |
| KitLocation | No | string(50) | Location code |
| KitContainer | No | string(50) | LPN |
| KitVersion | Yes | string(65) | Kit version |
| KitAttLot | No | string(128) | Lot logistic attribute |
| KitAttSN | No | string(128) | Serial number logistic attribute |
| KitAttProdDate | No | DateTime | Production date logistic attribute. UTC date-time format |
| KitAttExpDate | No | DateTime | Expiration date logistic attribute. UTC date-time format |
| KitAttBBDate | No | DateTime | Best before date logistic attribute. UTC date-time format |
| KitAttDaysLife | No | DateTime | Shelf life data logistic attribute. UTC date-time format |
| KitAttQuality | No | string(128) | Quality logistic attribute |
| KitAttColor | No | string(128) | Color logistic attribute |
| KitAttSource | No | string(128) | Source logistic attribute |
| KitAttProdMethod | No | string(128) | Production method logistic attribute |
| KitAttPostTreat | No | string(128) | Post-production treatment logistic attribute |
| KitAttSize | No | string(128) | Size logistic attribute |
| Components | Yes | Group | Data about the components. It contains the necessary data to define the components from the ERP |
| Component | Yes | List | |
| CompItemCode | Yes | ||
| CompOwnerCode | Yes | ||
| CompQtty | Yes | ||
| CompQttyUomCode | Yes | ||
| CompLocationCode | No | ||
| CompContainerCode | No | ||
| CompWeight | No | ||
| CompAttLot | No | ||
| CompAttSN | No | ||
| CompAttProdDate | No | ||
| CompAttExpDate | No | ||
| CompAttBBDate | No | ||
| CompAttDaysLife | No | ||
| CompAttQuality | No | ||
| CompAttColor | No | ||
| CompAttSource | No | ||
| CompAttProdMethod | No | ||
| CompAttPostTreat | No | ||
| CompAttSize | No | ||
| CompAttVersion | No | ||
| CompCustomAttributes | No | ||
| KitCustomAttributes | No | KitCustomAttributes | Data about the kit custom attributes. It contains the necessary data to define the kit custom attributes from the ERP |
Dekitting – UNK
Message type: UNK (Kit stock disassembled)
Import / Export: Export
Version: 01
Description: This message is used to notify the disassembly of stock of kits inEasy WMS so that the ERP can know the new stock of the components and the current stock of the kit.
Structure:
UNK01
| Field | Required | Format | Description |
|---|---|---|---|
| Site | Yes | string(50) | Warehouse stock site |
| WorkOrderCode | No | string(50) | Work order code |
| KitItemCode | Yes | string(50) | Kit item code |
| KitOwnerCode | Yes | string(50) | Kit item owner code |
| KitQuantity | Yes | long | Quantity dissasembled. Positive number greater than 0 |
| KitQuantityUomCode | Yes | string(50) | UoM (Units of Measure) of the quantity |
| KitLocation | No | string(50) | Location code |
| KitVersion | Yes | string(65) | Kit version |
| KitAttLot | No | string(128) | Lot logistic attribute |
| KitAttSN | No | string(128) | Serial number logistic attribute |
| KitAttProdDate | No | DateTime | Production date logistic attribute. UTC date-time format |
| KitAttExpDate | No | DateTime | Expiration date logistic attribute. UTC date-time format |
| KitAttBBDate | No | DateTime | Best before date logistic attribute. UTC date-time format |
| KitAttDaysLife | No | DateTime | Shelf life data logistic attribute. UTC date-time format |
| KitAttQuality | No | string(128) | Quality logistic attribute |
| KitAttColor | No | string(128) | Color logistic attribute |
| KitAttSource | No | string(128) | Source logistic attribute |
| KitAttProdMethod | No | string(128) | Production method logistic attribute |
| KitAttPostTreat | No | string(128) | Post-production treatment logistic attribute |
| KitAttSize | No | string(128) | Size logistic attribute |
| Components | Yes | Group | Data about the components. It contains the necessary data to define the components from the ERP |
| Component | Yes | List | |
| CompItemCode | Yes | ||
| CompOwnerCode | Yes | ||
| CompQtty | Yes | ||
| CompQttyUomCode | Yes | ||
| CompLocationCode | No | ||
| CompWeight | No | ||
| CompCustomAttributes | No | ||
| KitCustomAttributes | No | KitCustomAttributes |
Stock variation - STV
Message type: STV (Stock variation)
Import / Export: Export
Version: 01
Description: With this message, Easy WMS notifies stock quantity variations due to adjustment - Stock quantity adjustments are actions performed without previous ERP knowledge. When variations in the stock quantity are a result of an ERP notified actions (i.e. shipping or receipts) no STV message is sent, because finish notification messages will be sent when the action is done. - This message notifies stock quantity increases as well as decreases and logistic attributes modifications.
Structure:
STV01
| Field | Required | Format | Description |
|---|---|---|---|
| Operation | Yes | string | Performed operation: - C: stock quantity increase (creation) - D: stock quantity decrease (deletion) |
| Site | Yes | string(50) | Warehouse stock site code. |
| ItemCode | Yes | string(50) | Item code. |
| OwnerCode | Yes | string(50) | Item owner code. |
| LocationCode | No | string(50) | Current stock location code. |
| ContainerCode | No | string(50) | Current stock container code. |
| Status | No | Group | Stocks assigned status. |
| StaUsrCode | No | string(50) | |
| StaUsrEnd | No | DateTime | |
| StaUsrComment | No | string(1000) | |
| StaRecCode | No | string(50) | |
| StaRecEnd | No | DateTime | |
| FilterAttributes | No | FltAttributes | This data group will be used as a filter to indicate the specific selection of the stock that has changed in the system. The values of the filter will be the previous values of the stock attributes. In case of deletion, this group will also be used for attributes present in the stock line to be deleted, but not required by the logistic profile of the item. |
| FilterCustomAttributes | No | FltCustomAttributes | This data group will only be used as a filter to indicate the specific selection of the stock that has changed in the system. The values of the filter will be the previous values of the customized of the stock attributes. In case of deletion, this group will also be used for attributes present in the stock line to be deleted, but not required by the logistic profile of the item. |
| QuantityVar | Yes | decimal | Added or diminished quantity. If quantity has not been modified this value will be zero. |
| UoMCode | Yes | string(50) | Item unit of measure. |
| ReasonCode | No | string(50) | Adjust reason code. |
| ERPReasonCode | No | string(50) | ERP adjust reason code. |
| Comment | No | string(1000) | Open text adjust comment. |
| Attributes | No | Attributes | In this group, the new values of the stock attributes will be specified in case of modification. |
| CustomAttributes | No | CustomAttributes | In this group, the new values of the stock attributes will be specified in case of modification. |
Stock status change- STC
Message type: STC (Stock status change)
Import / Export: Export
Version: 01
Description: This message is a response of a previous STR ERP request, or a warehouse stock status change notified by Easy WMS.
- Every single creation or deletion of stock status will generate a specific STC message notification.
Structure:
STC01
| Field | Required | Format | Description |
|---|---|---|---|
| Site | Yes | string(50) | Code of the stock warehouse site |
| ItemCode | Yes | string(50) | Item Code |
| OwnerCode | No | string(50) | Stock owner code |
| Quantity | Yes | decimal | Stock quantity |
| UoMCode | Yes | string(50) | UoM (Unit of Measure) of the quantity |
| Filter | No | Filter | Filter to select the specific stock where the status was modified |
| Status | Yes | Group | Status |
| StaUsrEmpty | Yes | bool | |
| StaUsrPrevCode | No | string(50) | |
| StaUsrCode | No | string(50) | |
| StaUsrEnd | No | DateTime | |
| StaUsrComment | No | string(1000) | |
| StaRecEmpty | Yes | bool | |
| StaRecPrevCode | No | string(65) | |
| StaRecCode | No | string(65) | |
| StaRecEnd | No | DateTime |
Warehouse stock count - WSC
Message type: WSC (Warehouse stock count)
Import / Export: Export
Version: 01
Description: This message allows to request a stock count with the currently existing data in Easy WMS. Stock to count can be filtered. SCR messages are always responded with WSC01 messages - The WSC messages always are the response of same version SCR messages. It is not possible to activate different SCR and WSC versions. - The stock is taken into account since its reception has been closed to it is shipped in a shipping order. - The ASN containers will not be counted since the container has been confirmated and the ASO has been sent. - When the WSC responds to a massive count request (SCR with MassiveCount true), WSC message will group identical stock lines in different locations or LPN. Different status or different logistic attributes will not be grouped - When the WSC responds to a detailed count request (SCR with MassiveCount false), WSC will contain a stock line for each stock line in the site - When the SCR requests the count of various Items or Containers, one response for each one will be sent.
Structure:
WSC01
| Field | Required | Format | Description |
|---|---|---|---|
| Site | Yes | string(50) | Code of the warehouse site. |
| WSCDate | Yes | DateTime | Count effective date. |
| Batch | No | string(50) | Unique code used to group different messages in the same batch. It is the same code as the batch code in the SCR request. |
| Stocks | No | Group | The counted stock lines (grouped if it is a massive count). |
| Stock | No | List | |
| ItemCode | No | ||
| OwnerCode | No | ||
| TypeCode | No | ||
| FamilyCode | No | ||
| LocationCode | No | ||
| ContainerCode | No | ||
| Quantity | Yes | ||
| UoMCode | No | ||
| Status | No | ||
| StaUsrCode | |||
| StaUsrEnd | |||
| StaUsrComment | |||
| StaRecCode | |||
| StaRecEnd | |||
| Attributes | No | ||
| CustomAttributes | No |
Count order finalization - COF
Message type: COF (Count Order Finalization)
Import / Export: Export
Version: 01
Description: This message is used as a response to the warehouse count order request (COR). It contains the inventory (stock/containers) existing in the counted locations.
-
COF messages must always be responses to COR requests with the same version number. It is not possible to activate different versions of COR and COF, as it will imply that COF responses will no longer be received, since the same response version cannot be found.
-
Advance notice containers(ASN) will not be considered in the count until they are confirmed (ASO).
-
COF message will also notify you the status of the count order. Which may be finalized (“closed”) and will have their corresponding stock lines, or canceled (“cancelled”) in this case there will be no record of any location.
-
The COF message will also notify the status changes in the order (“closed” and “cancelled”). When the orders are cancelled, the message will only include the header, indicating the data of the order and its status. When the order is closed, the status change will be notified in the header and the body of the message will include the stock. Deleted orders (before being released) will not issue any COF message.
-
When the closing of a count order that has been created by the COR message is forced, for all the count lines that have not been counted, the stock registered in the warehouse will be included in the message, despite not having been counted.
-
For item and container counts, in automatic warehouses, the location of origin of the container in the message structure will be omitted.
Structure:
COF01
| Field | Required | Format | Description |
|---|---|---|---|
| Site | Yes | string(50) | Code of the system site where the stock is located. |
| CountCode | Yes | string(50) | Count order code. |
| Status | Yes | string | Ending order status. Possible values: Closed, Cancelled |
| UpdateDate | Yes | DateTime | Date and time in UTC time when the order status change transaction occurred. |
| Lines | No | Group | Data about the lines of the count order. |
| Line | Yes | List | |
| LineNumber | Yes | ||
| Container | No | ||
| CntCode | |||
| CntCodeExists | |||
| LocationCode | |||
| Stocks | |||
| Locations | No | ||
| Location | |||
| LneCustomAttributes | No | ||
| CustomAttributes | No | CustomAttributes | Data about the count order custom attributes. |
Container output to PS - COS
Message type: COS (Container Shipped)
Import / Export: Export
Version: 01
Description: This message is sent to inform of the arrival of a container at the outbound conveyor.
- When a container finishes an order at an outbound conveyor, the ERP is informed. This message will allow you to manage, through the ERP communications, movements from the output conveyor.
- If the container has a destination after the output point, the message will indicate that destination and, if applicable, the order to which the container is associated.
- If the destination of the container is the output point itself, the destination fields will be sent empty.
Structure:
COS01
| Field | Required | Format | Description |
|---|---|---|---|
| Site | Yes | string(50) | Warehouse site code |
| StationCode | Yes | string(50) | Station code |
| LocationCode | Yes | string(50) | Location code |
| ContainerCode | Yes | string(50) | Container code |
| ContainerType | No | string(50) | Container type |
| OutboundOrderCode | No | string(50) | Outbound order code |
| OutboundOrderLineNumber | No | long | Outbound order line number |
| RouteCode | No | string(50) | Route code |
| StopNumber | No | long | Stop number when the task has a route |
| StationToCode | No | string(50) | Station destination code |
| LocationToCode | No | string(50) | Location destination code |
| ShippingDate | Yes | DateTime | Shipping date |
| CustomAttributes | No | CustomAttributes | Data about the custom attributes |
Client container closed in MP - COC
Message type: COC (Container closed)
Import / Export: Export
Version: 01
Description: This message is used to notify to ERP when a client container is closed on the preparation table.
- When a container is closed on a preparation table, the ERP is informed. This message will allow to manage, through the ERP, movements from the preparation table to its destination station.
- The message will inform about the destination of the container, if it has destination, or empty if the container has not destination
Structure:
COC01
| Field | Required | Format | Description |
|---|---|---|---|
| Site | Yes | string(50) | Code of the warehouse site |
| StationCode | Yes | string(50) | Code of the station |
| LocationCode | Yes | string(50) | Location code |
| ContainerCode | Yes | string(50) | Code of the container |
| ContainerType | No | string(50) | Container type |
| OutboundOrderCode | No | string(50) | Outbound order code |
| RouteCode | No | string(50) | Route code |
| StopNumber | No | long | Stop number when the task has a route |
| StationToCode | No | string(50) | Station destination code |
| LocationToCode | No | string(50) | Location destination code |
| CloseDate | Yes | DateTime | Close Date |
| CustomAttributes | No | CustomAttributes | Data about the custom attributes |
Suggested ABC Classification - SAC
Message type: SAC (Suggested ABC Classification)
Import / Export: Export
Version: 01
Description: The purpose of this message is to notify the ERP about misclassify items in terms of ABC classification and suggest a proper one. - This message is only sent when the ABC Evaluation has been executed and the “Notify to ERP” button has been selected. - This message informs all the values with which the “ABC Evaluation” was executed and all of the items that, under these tested values, are considered to be misclassified (as well as their suggested ABC classification value).
Structure:
SAC01
| Field | Required | Format | Description |
|---|---|---|---|
| CurrentDate | Yes | DateTime | Date in UTC time when the message was generated. |
| DefinedVariables | Yes | Group | Variable values with which the ABC Evaluation was executed. |
| LastDays | No | long | |
| InitialDate | No | DateTime | |
| FinalDate | No | DateTime | |
| AnalysisType | Yes | string(50) | |
| PickingMovements | Yes | bool | |
| PutawayMovements | Yes | bool | |
| ReplenishmentMovements | Yes | bool | |
| ShippingMovements | Yes | bool | |
| LastCalculationDate | Yes | DateTime | |
| Lines | Yes | Group | This group holds only the items with a different values in categories AnalysisABC and SuggestedABCClassification. |
| Line | Yes | List | |
| ItemCode | Yes | ||
| Owner | Yes | ||
| AnalysisABC | Yes | ||
| SuggestedABCClassification | Yes |
Errors
Exported messages
Messages that will be sent in Export direction (from MAP to the ERP).
Error message - ERR
Type of message: ERR (Error)
Import / Export: Export
Version: 01
Description: This message is used to notifies about the errors happened during ERP batch or XML messages import:
- Some errors that could happen are:
- Non existing reference
- Mandatory data field not set
- Validating error
- Data lock error
- Import service error
- Unknown error
- Depending on the transactional mode of the element that produces the error, the ERR message could contain only one, or several errors into the NestedErrors group:
- When transactional attribute is true, only one error could happen in one element, because if this error happens, the processing of the message will be stopped and reverted
- When transactional attribute is false, multiple errors could happen in one element, and the ERR message would contain every error description during processing
- The ErrException element contains not only the description of the error exception, but also identifies the specific element in the message group that has produced the error by its primary key data
Structure:
ERR01