Creating Multiple Streams
Stream represents the flow of data in a process flow. Multiple streams are used when the output of an activity needs to be sent to two or more activities in a process flow.
Steps to create multiple streams for an activity
Right-click the activity in the Graph Canvas from which multiple streams are to be generated and then select Multiple Streams. The Multiple Stream Dialog screen is displayed (see Figure 135).
Figure 135: Multiple Stream Dialog Box- In the Stream Information Table, the existing stream is displayed. If you want to delete the existing stream, click on the stream to select it and then click Delete Stream ( ) button. The selected stream is deleted.
To create a new stream, enter the name for the Stream in the Stream Name field and then click Add Stream button. The name of the added Stream is displayed in the Streams dropdown list (see Figure 136).
Figure 136: New Stream Added
- The Activity which will consume the stream currently selected in the Streams dropdown list is already displayed, however to change it, select the activity from the Activities dropdown list, and then click Map button. The mapped stream and the activity are displayed in the Stream Information Table (see Figure 137).
- Ensure that the Explicit Stream checkbox is selected.
Figure 137: Stream CreatedIf you are creating an error stream select the Error Stream checkbox.
- Repeat steps 4 to 6 to create another stream.
- Click Done to return to the Graph Canvas. The created streams are displayed in the Graph canvas by data objects Artifact (see Figure 138).
Figure 138: Showing Multiple Streams in Process Flow
The Artifacts are only to show the flow of streams therefore it is necessary to add the activities with appropriate flows. If user deletes a stream from the Multiple Stream Dialog box, then the corresponding Artifacts are also deleted. If an Artifact representing a stream is deleted then the stream is also deleted. Process Designer asks user if he/she wants to delete the underlying stream.
To hide the Artifacts, click View in the menu bar and deselect the Show Artifacts and Associations option.
The Multiple Stream feature can be used in three scenarios:
Creating more than one Stream
When data from one stream is sent to more than one activity, you can create more than one stream. However, more than one stream can be created only with the selected activities. These activities are Mapping Transformation, Custom Plugin, Repeater Service, XML Validator and Decoder.
A Mapping activity does not always generate multiple streams. It is based on the schemas used in the mapping activity.
Creating Error Stream
If a source or target schema is not compliant with the corresponding source or target data, then the process flow execution will generate error records. Sometimes these error records are useful for users and user may want to store them for debugging. In such a case, error stream is created along with data stream. This error stream can be mapped to some other activity for further processing. For example, user may want to store the error records in a File Target. To specify a stream as an error stream, check the Error Stream checkbox in the Multiple Stream Dialog Box. Error stream can be generated for Schema, Database source, Database target, Advanced Database target and XML Validator only.
Creating Default Stream
Sometimes an action, for example the Delay action, is used between two activities. In such type of situation data from the first activity does not pass to another activity because the action Delay does not consume data from the first activity and hence cannot pass it to another. To avoid this condition default stream is used.
Steps to create a default stream
- Right click the first activity and select Multiple Stream. The Multiple Stream dialog box appears (refer to Figure 135).
- Delete the existing stream.
- Select another activity from the Activities dropdown list.
- Click Default Stream ( ) button and then click Map button (see Figure 135).
Ensure that the Explicit Stream checkbox is checked.
Figure 139: Creating Default Stream
Click Done button to save the stream and return to Process Designer screen.
If you map a stream from a source activity to multiple activities (for example, Schema or Target activities) using the Multiple Stream option, only one target activity can get the stream from the source activity. The other target activities do not get the stream from the source activity and thus get aborted. This in turn aborts the process flow. It will only work if a gateway element is used in a process flow. This element will include a condition, on the basis of which one target activity can be selected at runtime. Another way is to use a Repeater Node to pass the stream to more than one activity. For details on using a Repeater Node, refer to the Using Repeater Node section.