RecordJoin

The RecordJoin component joins records (Record, CSV, FixedLength) in the first input stream with records in the second input stream (Record, CSV, FixedLength).

Note: To display the input streams' order in the Flow Designer, right-click the RecordFilter component and select Change Input Order. By selecting an input connection, the input stream order can be changed.
Note: If the input streams' order are changed, the JoinKey and the OutputField settings must also be changed to reflect the new ordering.

Stream Information

InputFormatRecord,CSV,FixedLength
Number of Inputs2
OutputFormatRecord,CSV,FixedLength
DescriptionThe results of the JOIN performed on the two input streams.

Component Properties

NameData TypeMappingDescription
JoinModechoice- Specifies whether an outer join or an inner join is to be performed on the input streams.
outer - An outer join is to be performed on the input streams.
inner - An inner join is to be performed on the input streams.
LoopProcessloopProcess- Specifies if it outputs results as an individual stream or as a single stream.
true [true] - Send each record individually along the output stream.
false [false] - Send out all of the data as a single set.
JoinKeycategory- The key used to perform the join on the input streams.
Select which field in the first input stream is to be used as a key in the in[1] KeyName column. Select which field in the second input stream is to be used as a key in the in[2] KeyName column.
The field names that appear in each pull down list are the field names available for that input stream. Records in the first input stream are joined with records in the second input stream where the selected key fields match.
Multiple keys can be selected. If multiple keys are selected, the and condition is applied.
OutputFieldcategory- Specifies the fields to be output by selecting in "Select output fields" dialog box after double clicking this component. For details, please refer to following topic "Selecting output fields".

Loop

If LoopProcess=true, each record in the join result will be sent out as an individual record set. This results in looping.

Transaction

CommitDo nothing
RollbackDo nothing

Exceptions

TypeParameterStream for error handling flowError
Code
Description
Exception None This component's input stream - Two input streams are not connected to the component.
- The output stream fields are not defined.
- The defined output stream fields do not exist in the input streams.
- The JoinKey is not defined.
- The defined JoinKey does not exist.
RecordNotFoundException None This component's input stream - The resulting output stream contains zero records.

Limitations

Selecting output fields

When specifying the field to get, use Select output fields dialog displayed when double clicking this component.
In Select output fields dialog, fields of first input stream and second input stream are displayed like in[1].<Field Name> and in[2].<Field Name>. In the list, it becomes target when enables the checkbox of the field to get, then it is displayed in OutputField property
The name of output fields are field name of output stream. This can be changed by clicking the field. Input field name is read-only.

JoinMode=inner Example

Input stream 1 contains the record data outlined in the table below.
empidnamedeptid
1aaa2
2bbb3
3ccc1

Input stream 2 contains the record data outlined in the table below.
deptidname
1dev
2sales


The component's settings are outlined in the table below.
Property NameValueDescription
JoinModeinnerPerform an inner join on the input records.
JoinKeyin[1] KeyNamexxxx.deptidxxxx is the first input stream's component name.
in[2] KeyNameyyyy.deptidyyyy is the first input stream's component name.
OutputFieldempidOutput the first input stream's field named empid.
nameOutput the first input stream's field named name.
name_2Output the second input stream's field named name.

The output results are as follows:
empidnamename_2
1aaasales
3cccdev

Because JoinMode=inner, only records from the first input stream and the second input stream which have matching deptid field values are joined and output.

JoinMode=outer Example

Input stream 1 contains the record data outlined in the table below.
empidnamedeptid
1aaa2
2bbb3
3ccc1

Input stream 2 contains the record data outlined in the table below.
deptidname
1dev
2sales

The component's settings are outlined in the table below.
Property NameValueDescription
JoinModeouterPerform an outer join on the input records.
JoinKeyin[1] KeyNamexxxx.deptidxxxx is the first input stream's component name.
in[2] KeyNameyyyy.deptidyyyy is the second input stream's component name.
OutputFieldempidOutput the first input stream's field named empid.
nameOutput the first input stream's field named name.
name_2Output the second input stream's field named name.

The output results are as follows:

empidnamename_2
1aaasales
2bbb
3cccdev

Because JoinMode=outer, even records which do not have matching deptid field values in either input stream are output.