You are on page 1of 3

FILTER BY EXPRESSION

Purpose
Filter by Expression filters data records according to a DML expression.
Parameters
select_expr (expression, required)
Filter for data records.
reject-threshold (choice, required)
The component's tolerance for reject events. For more information, see "AGGREGATE
component.
Logging (boolean, optional)
Specifies whether you want certain component events logged. For more information, see
"AGGREGATE" component .
Runtime behavior of FILTER BY EXPRESSION
Many components have a select parameter or input_select transform function that filter
records. If you do not need the deselected records, you can usually get better performance
by eliminating Filter by Expression and using the downstream component's select
parameter or input_select transform function.
Filter by Expression:
1. Reads data records from the in port.
2. Applies the expression in the select_expr parameter to each record. If the
expression returns:
Non-0 value Filter by Expression writes the record to the out port.
0 - Filter by Expression writes the record to the deselect port. If you do
not connect a flow to the deselect port, Filter by Expression discards the
records.
NULL Filter by Expression writes the record to the reject port and a
descriptive error message to the error port.
Filter by Expression stops execution of the graph when the number of reject events
exceeds the result of the following formula:
limit + (ramp * number_of_records_processed_so_far)

FUSE
Purpose
Fuse combines multiple input flows into a single output flow by applying a transform
function to corresponding records of each flow.
NOTE:
In conjunction with JOIN, Fuse supersedes MATCH SORTED.
We recommend keeping Automatic Flow Buffering, the default, turned on for
FUSE. This component reads input from its flows in a specific order. Thus,
turning off Automatic Flow Buffering could cause deadlock.
Parameter
Count (integer, required)
An integer from 1 to 20 that sets the number of all of the following:
Input arguments to the transform functions
in ports
reject ports
error ports
The n in inn gives each in port a unique number. Each inn port has a corresponding
rejectn port and errorn port.
Default is 2.
Transform (filename or string, required)
Either the name of the file containing the name of a transform package or a transform
string. The transform must contain a function named fuse and optionally a function
named select.
reject-threshold (choice, required)
The component's tolerance for reject events.
Logging (boolean, optional)
Specifies whether or not you want certain component events logged.
Runtime behavior of FUSE
fuse applies a transform function to corresponding records of each input flow. The first
time the transform function executes, it uses the first record of each flow. The second
time the transform function executes, it uses the second record of each flow, and so on.
Fuse sends the result of the transform function to the out port.
FUSE works as follows:
1. Fuse tries to read from each of its input flows):
If all of its input flows are finished, fuse exits.
Otherwise, Fuse reads one record from each still-unfinished input port and
a NULL from each finished input port.
2. If Fuse reads a record from at least one flow, Fuse uses the records as arguments
to the select function if the select function is present.

If the select function is not present, Fuse uses the records as arguments to the
fuse function.
If the select function is present, fuse discards the records if select returns zero
and uses the records as arguments to the fuse function if select returns nonzero.
3. Fuse sends to the out port the record returned by the fuse function.
The fuse and select functions take arguments whose number and record formats are
determined by the number and record formats of the input ports. The fuse function
returns a record whose record format is that of the out port, and the select function
returns an integer(4).
If an input record is malformed such that it is impossible to determine the boundaries of
the record, Fuse emits an error message and exits. If an error occurs within either fuse or
select, Fuse sends the input records to their corresponding reject ports and sends an error
message to the corresponding error ports.

You might also like