Enterprise Integration

Naming Conventions

  • All data flows, API flows and other associated components are modelled within ION and
    are contained within a single repository. There are no grouping or folder options available to
    segregate the flows, although in most cases the data can selectively be viewed with the use of
    filters and free-text searches.
  • Consequently, all components should be named intelligently & consistently in order to aid
    visual recognition and to allow filters to be applied accurately. Flow names should be prefixed
    to identify the relevance (e.g. Project Name, Department Name, Developer Name etc) or left
    blank for multi-use flows followed by a name which reflects the flow’s functional purpose (Data
    type, data source, data target).
  • Sample data flow names:
    • PR01_MasterData_LN_to_EAM.
    • IDM_to_Mingle.
  • Similar intelligent and consistent naming conventions should be applied to all other ION
    connect components to assist in identification and debugging.

Data Flows

Connection Points General Notes

  • An application should only have a single connection point defined within an environment
    unless there are multiple types of connection required (e.g. Outbound File, inbound API).
  • Define all document types inbound & outbound within the single connection point.
  • The same connection point can be deployed within multiple data flows
  • Do not process the same document type within multiple data flows.
  • The normal logical flow of messages between connection points is left-to-right.
  • Readability – it is easier to understand flows that only include left-to-right processing.
  • Flexibility – any redesign, modification, pausing, stopping / starting of data flows only affects
    one-way flow of messages if bi-directional flows are avoided.

Database Connection Points

  • Use Timeout for calling a Stored Procedure via JDBC Database connection.
  • Setting ;socketTimeout (e.g. 60 or 120 seconds) is often required to get a stable Connection
    Point calling a Stored Procedure.
  • Setting loginTimeout may be needed too (e.g. 60 or 120 seconds).
  • Additionally, queryTimeout and lockTimeout can be set e.g. SQL-Server.
  • When specifying the time-out check the connected database for details (whether unit is second
    or milliseconds). E.g.
  • The Stored Procedure must be fully reliable and resilient, handle all possible errors internally
    (add logging tables) as ION is not able to handle internal errors.
  • The Stored Procedure should preferably only receive data and store it or send data which has
    been prepared before. The Post or Pre-Processing of the data must be done by a background
    process. This prevents that due to functional reason one message is not processed correctly
    by the SP thus blocking all other messages.
  • Ensure the Stored Procedure always responds with properly formatted XML data, in every
    case, whether data could be processed or received or not.
  • For short interval (seconds) preferably use the Advanced Scheduling instead of Basic

Filename Conventions

Use below as starting point.

  • Write Location: <DocumentName>\Write
  • Write File Name Pattern: [document_name]_[current_datetime].<xml|json|csv\…> (ensure
    multiple files per second can be written).
  • Read Location:<DocumentName>\Read
  • Error Location: <DocumentName>\Errors
  • Archive Location: <DocumentName>\Archive
  • Read File Name Pattern: [document_name]_[current_datetime].<xml|json|csv\…> (ensure
    multiple files per second can be sent.

File Templates

When generating file template metadata using a sample file, ensure that the data type chosen
for each element reflects the true requirement, rather than accepting the data type chosen by
the engine. For example, the sample data may contain a numeric field and the data type will
be defined as ‘Numeric’, but the requirement for the field is to include string values – so the data type should be redefined as ‘String’.


Runtime of scripts in testing can be longer than in production. We recommend that you test
the script with the largest expected payload. This is to ensure that the Execution Time is
within the limit of 15 seconds running time. And that the output that is generated is less than

Invoking API Calls

  • API calls are used to retrieve from or post data to other applications that expose their data via
    APIs. Be aware of the impact that this may have on overall message processing times due to
    one or more of the following factors.
  • the time taken to process an individual call.
  • the network delay in reaching external application.
  • the volume of messages to be processed.

These best practices offer essential guidance to enhance your processes. For a personalized and thorough implementation tailored to your needs, reach out to Infor Professional Services. Their expertise ensures optimal results for your unique challenges.