Process Orchestration Listener responds to Process Orchestration events created by other modules, such as the Orchestration Transport, and determines whether a new event should be fired.
There are 4 tabs: Basic, Firing Conditions, Action, Timeout.
1. On the Basic tab are two options for selecting the Process Orchestration event type. The “Select from existing event types” drop down can be used to select from the event types that have been declared in existing Process Orchestration Transports. Alternatively, you can select “Input Manually” and type in the name of an event type. Either way, this event type should match the event type used in the corresponding Process Orchestration transport.
2. Firing Conditions tab provides three items which specify available conditions on which this Listener will actually create a Transaction:
Process Component Names Required is a comma-separated list of component names (see the Transport’s Process Component field) which must have been “received” (generated a message for) by this Listener before it will trigger. If the Listener is intended to join three disparate components, those should be listed here.
Transaction Count Required is a value for the number of messages (Transactions) this Listener must receive before it will trigger. Here we’ve specified the Transaction Attribute “com.pilotfish.PollingCycleSize,” which is available because this expression is evaluated against each Transaction this Listener “receives”. This value is provided by the Directory Listener with each polling cycle and gives the number of files (Transactions created) polled by the Listener.
Conditional Statement is an expression which must evaluate to “true” in order for the Listener to trigger. This could be any literal or dynamic value and is evaluated against each Transaction received by this Listener.
3. Action: At this tab, you can specify:
Type of Transaction to Create item identifies what the Listener does with the aggregate of Transactions. There are a number of options here but the one of primary interest (and the one used most often, if not exclusively) is Aggregate Transactions, meaning all received Transactions should be joined into a single Transaction.
Remove Process Instance item specifies when the Process Instance this Listener is handling is removed from memory. We’ve specified “When Transactions Fired” here to ensure that this is only cleared once we manage to successfully trigger a Transaction.
4. Timeouts: At this tab, you can specify:
Timeout Interval: The time (in seconds) before a process handled by this Listener times out
Remove Process: If the process should be removed/terminated on timeout.
Log Exception: If the process should log an exception on timeout.
Throw Exception: If the process should throw an exception on timeout.