## Result
### 1. Intro
Processing result based on configuration `connect` defined, different situation could trigger different joining
Here are three critical concept:
1. Name: Mapped to `X_ATTRIBUTE` field `NAME`, it's the model attribute name.
2. SourceField: Mapped to reference field name.
3. JoinField: it's defined by `connect` configuration.
### 2. connect
#### 2.1. Single Pair
There is `connect` of
String defined in json configuration such as following segment.
```json
//
{
"connect": "joinField"
}
//
```
> One to One/Many, join json object with JoinField ( Batch Mode )
1. Pick data from reference data by `sourceField` name.
2. Join data based on `joinField` in Batch mode, connect json object/array.
3. Build new attribute key-pair `name = json object/array`.
> JoinField, SourceField, Name. Result: `name = JsonObject / JsonArray`.
#### 2.2. Multi Join
There is `connect` of
JsonObject defined in json configuration such as following segment.
```json
//
{
"connect": {
"sourceField1": "joinField1",
"sourceField2": "joinField2"
}
}
//
```
> One to One/Many, join json object with JoinFields ( Batch Mode )
1. Pick data from reference data by `sourceField1` and `sourceField2` name.
2. Join data based on `joinField1` and `joinField2` in Batch mode, connect json object/array.
3. Build new attribute key-pair `name = json object/array`.
> JoinFields, SourceFields, Name. Result: `name = JsonObject / JsonArray`.
### 3. K-V
1. Left field is `sourceField` of reference record - `referenceField`.
2. Right field is `joinField` of current record - `currentField`.