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.
jdbc:jtds:sqlserver://server:port/database;loginTimeout=60;socketTimeout=60 - 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 Scheduling.
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’.
Scripting
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 5MB.
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.