Home | Table of Contents | Mapping Functions | CloverETL 4.6.1
--- | --- | ---
Prev | Functions Reference | Next

## Mapping Functions

###### List of functions

getMappedSourceFields | isSourceFieldMapped
getMappedTargetFields | isTargetFieldMapped

Functions in this category can be used for parsing field mapping strings in the format generated by the Field mapping editor for graph parameters.

The mapping may contain multiple sources and a single target. Mappings from one source are separated with a semicolon `;`, the sources are separated with a hash `#`. Source and target fields are separated with the equals sign `=`, the target field is on the left-hand side. Both source and field names start with the dollar sign `$`. The mapping is M:N, in other words, a source field can be mapped to multiple target fields and multiple source fields can be mapped to one target field. See examples below for sample mapping strings.

### getMappedSourceFields

`string[] getMappedSourceFields(`string mapping, string targetField, integer sourceIndex`)`;

`string[] getMappedSourceFields(`string mapping, string targetField`)`;

`string[] getMappedSourceFields(`string mapping`)`;

The function `getMappedSourceFields()` returns a list of fields from the specified source (indexed from 0) mapped to a target field with the specified name.

If the source index is omitted, returns fields from all sources mapped to a target field with the specified name. Note that the result can be ambiguous if the sets of source fields are not disjoint.

If the target field name is omitted as well, returns all source fields that are mapped to some target field.

The function throws an exception, if the `mapping` is invalid or `null`. Also, if `sourceIndex` is out of bounds or `null`, an exception is thrown.

Compatibility notice: The function `getMappedSourceFields()` is available since CloverETL 4.1.0.

Example 61.166. Usage of getMappedSourceFields()

`getMappedSourceFields("$target1=$srcA1;$target3=$srcA1;#$target1=$srcB4;$target2=$srcB2;", "target1", 1)` returns `["srcB4"]`

`getMappedSourceFields("$target1=$source1;$target1=$source3;$target3=$source4;", "target1")` returns `["source1", "source3"]`

`getMappedSourceFields("$target1=$source1;$target1=$source3;$target3=$source4;")` returns `["source1", "source3", "source4"]`

See also: getMappedTargetFields, isSourceFieldMapped

### getMappedTargetFields

`string[] getMappedTargetFields(`string mapping, string sourceField, integer sourceIndex`)`;

`string[] getMappedTargetFields(`string mapping, string sourceField`)`;

`string[] getMappedTargetFields(`string mapping`)`;

The function `getMappedTargetFields()` returns a list of target fields that are mapped from a field with the specified name from the specified source (indexed from 0).

If the source index is omitted, returns target fields mapped from fields with the specified name from any source.

If the source field name is omitted as well, returns target fields that have a mapping.

The function throws an exception, if the `mapping` is invalid or `null`. Also, if `sourceIndex` is out of bounds or `null`, an exception is thrown.

Compatibility notice: The function `getMappedTargetFields()` is available since CloverETL 4.1.0.

Example 61.167. Usage of getMappedTargetFields()

`getMappedTargetFields("$target1=$src1;$target3=$src1;#$target1=$src4;$target2=$src1;", "src1", 1)` returns `["target2"]`

`getMappedTargetFields("$target1=$src1;$target3=$src1;#$target1=$src4;$target2=$src1;", "src1")` returns `["target1", "target3", "target2"]`

`getMappedTargetFields("$target1=$source1;$target1=$source3;$target3=$source4;")` returns `["target1", "target3"]`

See also: getMappedSourceFields, isTargetFieldMapped

### isSourceFieldMapped

`string[] isSourceFieldMapped(`string mapping, string sourceField, integer sourceIndex`)`;

`string[] isSourceFieldMapped(`string mapping, string sourceField`)`;

The function `isSourceFieldMapped()` returns `true`, if there is a mapping from the field with the specified name from the specified source to some target field.

If the source index is omitted, returns `true`, if there is a field with the specified name in any of the sources that is mapped to some target field.

The function throws an exception, if the `mapping` is invalid or `null`. Also, if `sourceIndex` is out of bounds or `null`, an exception is thrown.

Compatibility notice: The function `isSourceFieldMapped()` is available since CloverETL 4.1.0.

Example 61.168. Usage of isSourceFieldMapped()

`isSourceFieldMapped("$target1=$srcA1;$target3=$srcA1;#$target1=$srcB4;$target2=$srcB2;", "srcB2", 1)` returns `true`

`isSourceFieldMapped("$target1=$srcA1;$target3=$srcA1;#$target1=$srcB4;$target2=$srcB2;", "srcB2", 0)` returns `false`

`isSourceFieldMapped("$target1=$source1;$target1=$source3;$target3=$source4;", "source3")` returns `true`

`isSourceFieldMapped("$target1=$source1;$target1=$source3;$target3=$source4;", "source2")` returns `false`

See also: getMappedSourceFields, isTargetFieldMapped

### isTargetFieldMapped

`string[] isTargetFieldMapped(`string mapping, string targetField`)`;

The function `isTargetFieldMapped()` returns `true` if there is a mapping from any source field to the specified target field.

The function throws an exception if the `mapping` is invalid or `null`.

Compatibility notice: The function `isTargetFieldMapped()` is available since CloverETL 4.1.0.

Example 61.169. Usage of isTargetFieldMapped()

`isTargetFieldMapped("$target1=$srcA1;$target3=$srcA1;#$target1=$srcB4;$target2=$srcB2;", "target2")` returns `true`

`isTargetFieldMapped("$target1=$source1;$target1=$source3;$target3=$source4;", "target2")` returns `false`

See also: getMappedTargetFields, isSourceFieldMapped

Prev | Up | Next
String Functions | Home | Table of Contents | Container Functions