HomeInterfacesRecipesChangelogFAQ
Log In
Interfaces

Technical Interface

šŸ“˜

The software architecture and the software modules are described in AS-55127-STD-en - Software - Operation Manual.

The AutoStore Interface consists of:

  • An XML/JSON interface via HTTP where the WMS makes method calls to AutoStore. The Bin Interface and Task Interface have different specifications of the XML messages. HTTPS is supported as well, and its configuration is explained in detail here.
  • A stream interface via TCP/IP where AutoStore sends information to the WMS. This stream of information is provided by the Log Publisher interface. TLS encryption is supported as well, and its configuration is explained in detail here.

XML Message Format

Each message must:

  • Be well-formed XML.
  • Begin with an XML declaration that specifies:
    • The XML version (1.0).
    • The encoding (either ISO-8859-1 or UTF-8).

The message format is loosely based on XML-RPC. It supports named parameters with types that are not defined globally but rather on a per method basis. Naming conventions also differ from XML-PRC.


Request

The root element of the method request is <methodcall>, and the name of the method is given as a string in the first level child element <name>. The method parameters are given in the first level child element <params>. The method parameters are specific to each method.

XML request example:

<?xml version="1.0"?>
<methodcall>
  <name>add_task</name>
  <params>
    <taskgroup_id>123004</taskgroup_id>
    <tasks>
      <task>
        <task_id>420233</task_id>
        <bin_id>23255</bin_id>
      </task>
    </tasks>
  </params>
</methodcall>

Response

The root element of the returned XML document is always <response>.

If the method call is successful, a child element named <params> will be created. It contains the returned data. If no data is returned, <params> will be empty.

XML response example:

<?xml version="1.0"?>
<response>
  <params/>
</response>

If the method call is not successful a child element named <fault> will be created. It will contain another child element named <code> that contains the numeric error code.

XML fault response example:

<?xml version="1.0"?>
<response>
  <fault>
    <code>1009</code>
  </fault>
</response>

JSON Message Format

Each message must:

  • Be well-formed JSON.
  • Adhere to JSON syntax as defined by ECMA-404.
  • Use UTF-8 encoding (default for JSON).

The message format is inspired by JSON-RPC but adapted for specific use cases. It supports named parameters with types that are defined per method, rather than globally. Naming conventions may differ from JSON-RPC standards.


Request

The root object of the method request is a JSON object with a method property, which specifies the method name as a string. The method parameters are provided in the params property, which is an object or array specific to each method.

JSON request example:

{
    "method": "add_task",
    "params": {
        "taskgroup_id": 123004,
        "task": {
            "task_id": 420233,
            "bin_id": 23255
        }
    }
}

Response

The root object of the returned JSON document is always a JSON object.

If the method call is successful, a result property will be included, containing the returned data. If no data is returned, result will be an empty object or null.

JSON response example:

{
    "jsonrpc": "2.0",
    "id": null,
    "result": {}
}

If the method call is not successful, an error property will be included. It will contain an object with a code property (a numeric error code) and a message property (a string describing the error).

JSON fault response example:

{
    "jsonrpc": "2.0",
    "id": null,
    "error": {
        "code": 1002,
        "message": "PORT_IS_ALREADY_OPEN"
    }
}

Using The AutoStore Interface

Messages are sent as HTTP POST requests to one of the following URLs:

InterfaceURL
Task InterfaceTASK_INTERFACE_API_ENDPOINT
Bin InterfaceBIN_INTERFACE_API_ENDPOINT
ā—ļø

Never use Task Interface and Bin Interface in the same implementation!