- 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:
- Similar intelligent and consistent naming conventions should be applied to all other ION
connect components to assist in identification and debugging.
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
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.
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.