Files
mcp-wms-api/docs/docs_downloads/communications/EasyWMS_WebApi_en.html.md
T
2026-05-20 09:38:07 +02:00

316 KiB
Raw Blame History

EasyWMS_WebApi_en

Web API communications with ERP

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: false to represent false and true to 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.fffffffffK compatible 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 fffffffff is 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 is Z.
  • 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:

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 clients 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.

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:

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
Email 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
Email 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
Email 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
Email No
ReturnContact No Group
Comment No
Extension No
Fax No
Name No
Phone No
CellPhone No
Email 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), its 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, its necessary to indicate an update operation (U, S) for the rest of the hierarchy.
    • To delete a stacked container, its 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 containers 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 shouldnt be created. Otherwise (transactional false) the route will be created without the order that fails. - Its 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 orders status.
Possible values: 0 (Create), 1 (Update), 2 (Delete), 3 (Upsert). If its 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, dont changes of status, so changes in the status of their preparation (Released, Working, Paused) shouldnt 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 didnt 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 didnt 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 orders 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