Skip to content

System Integrations#

🔒 Administration.NavigationPane

🔒 Administration.SystemIntegrations

Interoperability is paramount to ensuring data integrity, enhancing security and achieving a new complex engineering system paradigm. The Critical Manufacturing MES System integrates these concepts and adds a versatile layer of extensibility by using a engine called Integration Entries.

Integration Entries#

In the Critical Manufacturing MES, Integration Entries are a set of records that work as a queue system and are processed periodically by an engine. That same engine is also used to calculate, in real time, which integration package should be responsible for the handling of each integration entry. The rules are supplied by an integration resolution table which is also configured in the system.

integration_entries_overview

Info

The processing period or pooling interval is by default 60 seconds, but can be reconfigured in config table at /Cmf/System/Configuration/Integration/PollingInterval/.

Critical Manufacturing MES is able to integrate with external systems through its integration interface, an extensible mechanism where a plugin is loaded to handle the communication details between the MES and the external system. A plugin is made available upon MES installation in order to provide a way to record the received messages and to process them either synchronously or asynchronously.

Critical Manufacturing MES supplies three integration packages:

Activate Integration Engine#

Configuration entry Description
/Cmf/System/Configuration/Integration/IntegrationSchedulerIsActive/ Define if engine is active (boolean)

Table: Integration Scheduler configuration entries

activate_integration_scheduler

Integration Systems#

The integration systems area managed within a Generic Table named IntegrationSystem, and they specify which systems will be in communication with MES.

integration_systems

Integration Packages#

Integration Packages are software libraries that expose one integration handler as an entry point. These packages and their handlers are configurable within a Generic Table called IntegrationHandler.

integration_handler

Each line points to an assembly that was developed and tested by the Critical Manufacturing team. The technical instructions can be found within developer area.

integration_handler_edit

Integration Handler Resolution#

The integration engine for each integration entry looks up to a mapping table to infer what handler must be invoked to treat the record.

The configuration ensures a high level of flexibility through the usage of certain specific parameters:

  • From System - Sender Integration System
  • To System - Destination Integration System
  • Message Type - Message Type supported by both systems
  • Handler - Reference to IntegrationHandler Generic Table
  • Action Name - DEE Action that will be called from the handler
  • Error Handling Action Name - DEE Action that will be called in error scenarios
  • IoT Event Definition - Event to be posted on Enterprise Integration scenarios

integration_handler_resolution

Managing System Integrations#

The Administration area provides a user interface to allow authorized users to manage system integrations. In System Integrations, the entry point will present a simple dashboard that can be viewed as a summary for each system type. For now, it will show the number of errors in previous integration entries as well as the number of successful integration entries processed by the system.

manage_system_integrations

A list of the integration entries in different states can be seen in the SAP System Integration page. The entries are grouped by state and can be filtered to allow a bird's eye view of the current status.

Integration System Main View#

Depending on the optional modules that are licensed in the system, the main view will display some or all of the following page sections:

  • Integration Entries - displays general information on the Integration Entries that have been processed in the system.

erp_page_entries_view

Integration Entry Details#

Selecting an integration entry will open a new page with details of the selected entry. There are several views available:

Body View#

This view displays the actual information contained in the body of the Integration Entry.

erp_integrationentry_page_body_view

Info

The data that is receive in the integration message can be used to name any object that is created by the integration in the system. If this information is not present in the message, Name Generators can be used to name newly created objects.

For more information, see the Integration use case of the Name Generator tutorial.

Details View#

Depending on the optional modules that are licensed in the system, the Details view will display some or all of the following page sections:

  • Details - displays general information on the Integration Entry.
  • Attributes - enables the visualization of existing Attributes and the possibility to create new ones. For more information on Attributes, visit the section Attributes.
  • Automation Jobs - displays general information on the System Jobs (created by the Integration Entry).
  • Iot Events Queue - displays general information on the IoT Events (associated with the Integration Entry).
  • Attachments - shows the documents that are attached to the Integration Entry and enables the user to attach additional documentation to the Integration Entry.

erp_integrationentry_page_details_view

automation_jobs_iot_event

References View#

This view combines information concerning other objects that have references to the current object:

  • Relations - displays the existing Relations between the Integration Entry and other entities and enables the user to edit them. For more information on Relations, visit the section Relations.
  • Where Used - displays the set of relationships between the Integration Entry and the other objects used throughout the system.

History View#

This view combines information concerning other objects that have references to the current Integration Entry object:

  • History - displays the history of the operations, associated information, user(s) performing the changes and date and time of the changes.

Integration Entry Actions#

Depending on the current state of the Integration Entry, the user can perform the following actions:

State / Operation Reprocess Reject Resend Download Body
Received Yes (if Target System is MES) Yes Yes (if Source System is MES) Yes
Failed Yes (if Target System is MES) Yes Yes (if Source System is MES) Yes
Processing No No No Yes
Processed No No No Yes
Rejected No No No Yes

Table: Integration Entry actions

Reprocess Integration Entry#

To attempt manual reprocessing of an Integration Entry, press the Reprocess Integration Entry in the top ribbon.

Info

This operation will only work if the Target System property of the Integration Entry is set to MES.

erp_integrationentry_reprocess

Reject Integration Entry#

To reject the processing of an Integration Entry, press the Reject Integration Entry in the top ribbon.

erp_integrationentry_reject

Resend Integration Entry#

To resend the Integration Entry, press the Resend Integration Entry in the top ribbon.

Info

This operation will only work if the Source System property of the Integration Entry is set to MES.

erp_integrationentry_resend

Download Integration Entry body and schema#

A user can download the body of the Integration Entry by pressing the Download Body button in the top ribbon. Similarly, the schema used to parse the message can also be downloaded by pressing the Download Schema button in the top ribbon. In both cases, an XML file will be downloaded to the user's machine, containing the body or the schema, respectively.

Integration Entry Retry Logic#

Whenever an Integration Entry fails and is set to be automatically reprocessed (marked as Retriable), the underlying reprocessing mechanism will use a timer (RetryIntegrationEntry) that adds a specific amount of time between each retry attempt. This period will increase by an exponential increase factor so as to avoid overburdening the system. A simple example can be the following scenario:

If the value for RecurrenceDefinedSeconds in the RetryIntegrationEntry timer is set to 10 seconds, the following table lists the expected execution times of the next integration entry reprocessing events (where Tn = Timestamp of the nth failed execution):

Attempt Time between attempts Next attempt at
1 10 seconds T + 10 seconds
2 20 seconds T1 + 20 seconds
3 40 seconds T2 + 40 seconds
4 80 seconds T3 + 80 seconds

Table: Integration Entry Retry Logic