A process flow in iCIS starts with an Event. The Event may, for example, have been triggered by another application, a database, a Timer or the system startup. The Event then creates one or several Jobs (1). The Job is the "context" in which a Component is executed. The Job can also create new Events (2).
The separation of Jobs and Events makes it possible to achieve a "loose coupling" between process flows, and also to easily re-run process flows. However, the main thing in the process flow is that information is being processed in one way or another while going through the system. The Components perform tasks that may involve translating or collecting information, fetching certain values or process information in other ways. To facilitate the management, identification and traceability of information, the system uses a tracking entity called Nodes.
Data transfer in the process flow
A Node is a comprehensive identity for information coming from a Component. It can be seen as a container encapsulating the information, or a "snapshot" of an information state at a certain point in time. The Node is created and maintained by one or several Components. The Component is responsible for assembling information to be placed in the Node. The Component contains all processing intelligence, while the Node is only a storage format, used to monitor the process flow and to log the actions and the information surrounding it.
A Node carries the following information:
- Type (optional)
- Type Version (optional)
- Partner (optional)
It may also carry:
- User defined attributes
A Component can also distribute data, such as an e-mail address, author or a price, to a Node. These pieces of information are called Node attributes and are a type of meta data concerning the original information in the Node. The system administrator, or likewise, must define which attributes may be used for a certain Node.
The attributes may be selected and sorted. They are therefore valuable from a viewing perspective. For example, to view all Nodes by a certain author, the user selects the attribute "author".
Events referring to a Node
An Event may refer to a particular Node. It means that the Event will refer to that particular Node only when running a Component. To know which Component to run, the Event contains selection criteria:
- Event type Id
- Node type
- Node type version
- Node partner
Node type, Node type version and Node Partner are optional criteria, and are available only when referring to a Node. If Node type, Node type version and Node Partner are not specified, the Event applies to all possible types, versions or Partners. This is the default setting, which is called ALL.
A specified Partner overrides ALL. For example, if you have an Event configuration with Partner specified as “The Boot Company” and another configuration with Partner = ALL, the default settings will be used for all Partners except the Boot Company.
The Event concept
An Event is an identifier for something that happens in a process flow. Events are defined and triggered by iCore specialists or system developers, and are designed to meet the requirements of the business processes. Examples of Events are: "File received", "File fetched from ERP-system", "XML-file created", and "EDI-file sent".
Note: All Events have a unique Event ID, which is generated automatically when the Event is triggered. The Event ID is not used in iCore, but is important if an external application is used to trigger Events in iCore.
An Event is identified either by its Event Type (= its name) or by its GUID. Which one is used depends on how the Event was created.
What triggers an Event?
There are many things that can trigger an Event, for example:
- Components – a Component is run which causes an Event to be created.
- Button presses and selected menu options.
- Timers – a Timer setting for an Event has expired.
- Time-out Events – An Event with an "Earliest Execution" setting that has expired.
- Other applications – for example a database, COM, PowerShell, command line, or web service.
iCore Events can refer to Nodes. If an Event has a reference to a Node, the Event is said to "happen" on the Node. An Event always has a reference to the corresponding Event type.
An Event configuration specifies the "rules" for the Event. It specifies which Component is run when the Event is triggered, and may also define selection criteria that must be fulfilled for this to happen. The selection criteria may also contain requirements on Partner, Node type and Node type version.