ION sends a message to an application

Prepare your application to receive IMS requests from ION

Ensure your application exposes these methods, which are used by ION to get information and verify whether message processing is enabled:

  • GET <Application>/service/ping

    Checks whether ION can connect to your application and checks whether ION is authorized for your application.

  • GET <Application>/service/protocol

    Retrieves the expected IMS API version and protocol parameters from the application.

  • POST <Application>/service/v2/discovery

    Http header X-TenantId

    Called during modeling of the connection point in ION Desk. Retrieves, from the application, the documents that are supported to be exchanged.

    Implementation is optional: if not implemented, ensure that the hasDiscovery property in the protocol method response is false.

  • POST <Application>/service/v2/multipartMessage

    Http header X-TenantId

    Sends the actual message.

Configuration

Ensure an Infor application (IMS) connection point is configured in ION. This connection point must be used in a document flow. Ensure this document flow is activated.

Testing the connectivity

To test connectivity from ION to your application, you can click the Test button in the ION Desk connection point model.

Methods to verify connectivity and configuration

These methods are used by ION to verify connectivity and configuration:

  • GET <Application>/service/ping

    Checks whether ION can reach your application and checks whether ION is authorized for your application.

  • GET <Application>/service/protocol

    Retrieves the expected IMS API version and protocol parameters from the application.

    If this method fails, ION calls the GET <Application>/service/versions method and continues with v1. The application is probably on v1.

    If an ION Desk user opens the Documents tab on the IMS connection point screen, ION calls the ping and protocol methods. Based on the protocol response, ION enables or disables the Discovery option on the Documents tab.

Methods that are executed if "The IMS End point has Discovery" is true and the application IMS protocol version is v3

The discovery method can only be called if "the IMS End point has Discovery" is true. When ION Desk calls the discovery method, these methods are executed by ION towards the application:

  • GET <Application>/service/ping

    Checks whether ION can reach your application and checks whether ION is authorized for your application.

  • GET <Application>/service/protocol

    Retrieves the expected IMS API version and protocol parameters from the application.

    If this method fails, ION calls the GET <Application>/service/versions method and falls back to v1 if required.

  • If the identified version is v3, ION calls the POST <Application>/service/v3/discovery method.

    Http header X-TenantId

    Retrieves, from the application, the documents that are supported to be exchanged.

ION sends a message, when application IMS protocol version is v3

ION executes these methods in the given sequence when a message is being sent:

  1. GET <Application>/service/ping

    If this method is successful, then ION continues. Otherwise a retry is performed and errors are raised.

    If the retry remains to fail, ION slows down the pace of the retry.

  2. GET <Application>/service/protocol

    Retrieves the IMS protocol parameters from the application.

    If this method fails, ION calls the GET <Application>/service/versions method and expects version v1.

  3. POST <Application>/service/v3/multipartMessage

    Http header X-TenantId

    X-TenantId: ION CE sends the cloud tenant Id. On-premises ION sends "Infor".

    If sending the message fails, then, based on the error code, ION performs one of these actions:

    • Retry, that is, return to step 1.
    • Raise an ERROR for the specific message and continue with the next message.
    • Special case:

      An application can send an http status code 409 if the message that is sent by ION is not according to the protocol definition. For example, the encryption of the message is NONE although DEFLATE is expected.

      ION calls the protocol method again, step 2, to refresh its cache.

  4. ION continues with the next message, step 3.