# JSON REST Web Services Connector - Properties

In this agent, the configuration of the properties attributes is very important due to they define the functionality of the integration:

This agent has five families of properties:

<div id="bkmrk-family-description-l"><table class="confluenceTable tablesorter tablesorter-default stickyTableHeaders" role="grid"><thead class="tableFloatingHeaderOriginal"><tr class="tablesorter-headerRow" role="row"><th aria-disabled="false" aria-label="Family: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted" data-column="0" role="columnheader" scope="col" style="width: 134px;" tabindex="0"><div>**Family**</div></th><th aria-disabled="false" aria-label="Description: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted" data-column="1" role="columnheader" scope="col" style="width: 658px;" tabindex="0"><div>**Description**</div></th></tr></thead><thead class="tableFloatingHeader"></thead><tbody aria-live="polite" aria-relevant="all"><tr role="row"><td class="confluenceTd" style="width: 134px;">Load</td><td class="confluenceTd" style="width: 658px;">Used to retrieve all the objects in the target system</td></tr><tr role="row"><td class="confluenceTd" style="width: 134px;">Select</td><td class="confluenceTd" style="width: 658px;">Used to retrieve an object in the target system</td></tr><tr role="row"><td class="confluenceTd" style="width: 134px;">Insert</td><td class="confluenceTd" style="width: 658px;">Used to create an object in the target system</td></tr><tr role="row"><td class="confluenceTd" style="width: 134px;">Update</td><td class="confluenceTd" style="width: 658px;">Used to update an object in the target system</td></tr><tr role="row"><td class="confluenceTd" style="width: 134px;">Delete</td><td class="confluenceTd" style="width: 658px;">Used to remove an object in the target system</td></tr></tbody></table>

</div>These families are involved in the following processes:

<div id="bkmrk-process-families-rec"><table class="confluenceTable tablesorter tablesorter-default stickyTableHeaders" role="grid"><thead class="tableFloatingHeaderOriginal"><tr class="tablesorter-headerRow" role="row"><th aria-disabled="false" aria-label="Process: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted" data-column="0" role="columnheader" scope="col" style="width: 199px;" tabindex="0"><div>**Process**</div></th><th aria-disabled="false" aria-label="Families: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted" data-column="1" role="columnheader" scope="col" style="width: 589px;" tabindex="0"><div>**Families**</div></th></tr></thead><tbody aria-live="polite" aria-relevant="all"><tr role="row"><td class="confluenceTd" style="width: 199px;">Reconcile automatic task</td><td class="confluenceTd" style="width: 589px;">Load + select</td></tr><tr role="row"><td class="confluenceTd" style="width: 199px;">Authoritative automatic task</td><td class="confluenceTd" style="width: 589px;">Load + select</td></tr><tr role="row"><td class="confluenceTd" style="width: 199px;">Sync new object</td><td class="confluenceTd" style="width: 589px;">Select + Insert</td></tr><tr role="row"><td class="confluenceTd" style="width: 199px;">Sync updated object</td><td class="confluenceTd" style="width: 589px;">Select + Update</td></tr><tr role="row"><td class="confluenceTd" style="width: 199px;">Sync deleted object</td><td class="confluenceTd" style="width: 589px;">Select + Delete</td></tr></tbody></table>

</div>These are the properties attributes grouped by family:

##### Load

<div id="bkmrk-property-description-1"><table class="confluenceTable tablesorter tablesorter-default stickyTableHeaders" role="grid" style="width: 100%; height: 682.2px;"><thead class="tableFloatingHeaderOriginal"><tr class="tablesorter-headerRow" role="row" style="height: 33.4px;"><th aria-disabled="false" aria-label="Property: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted" data-column="0" role="columnheader" scope="col" style="width: 26.0814%; height: 33.4px;" tabindex="0">**Property**

</th><th aria-disabled="false" aria-label="Description: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted" data-column="1" role="columnheader" scope="col" style="width: 73.9186%; height: 33.4px;" tabindex="0">**Description**

</th></tr></thead><tbody aria-live="polite" aria-relevant="all"><tr role="row" style="height: 102.6px;"><td class="confluenceTd" style="width: 26.0814%; height: 102.6px;">**loadPath** (required)

</td><td class="confluenceTd" style="width: 73.9186%; height: 102.6px;">Denotes the path (relative to webserver root) where the WebService is located. It can contain variable names in the form of **${variableName}**. JSON connector will replace that name for the actual value. Eventually, complex expressions can be written in, but it's discouraged

</td></tr><tr role="row" style="height: 35.4px;"><td class="confluenceTd" style="width: 26.0814%; height: 35.4px;">**loadMethod** (required)

</td><td class="confluenceTd" style="width: 73.9186%; height: 35.4px;">Denotes the HTTP method to use: PUT, POST, GET and DELETE are allowed

</td></tr><tr style="height: 35.4px;"><td style="width: 26.0814%; height: 35.4px;">**loadEncoding** (required)

</td><td style="width: 73.9186%; height: 35.4px;">Type of encoded data that will be used.

</td></tr><tr role="row" style="height: 35.4px;"><td class="confluenceTd" style="width: 26.0814%; height: 35.4px;">**loadParams** (optional)

</td><td class="confluenceTd" style="width: 73.9186%; height: 35.4px;">Put the character '-' in case you would avoid its value

</td></tr><tr style="height: 35.4px;"><td style="width: 26.0814%; height: 35.4px;">**loadTemplate** (optional)

</td><td style="width: 73.9186%; height: 35.4px;">Name of the corresponding template defined on the XML Templates.

</td></tr><tr role="row" style="height: 102.6px;"><td class="confluenceTd" style="width: 26.0814%; height: 102.6px;">**loadResults** (optional)

</td><td class="confluenceTd" style="width: 73.9186%; height: 102.6px;">But highly recommended) denotes the JSON portion that contains current data for the object. If this element is not present, or empty, the connector will conclude the object does not exist yet. This property will contain a simple JSON attribute name, but complex scripts are also allowed.

</td></tr><tr style="height: 35.4px;"><td style="width: 26.0814%; height: 35.4px;">**loadSuccessCodes** (optional)

</td><td style="width: 73.9186%; height: 35.4px;">The HTTP codes to be interpreted as OK.

</td></tr><tr style="height: 35.4px;"><td style="width: 26.0814%; height: 35.4px;">**loadFailureCodes** (optional)

</td><td style="width: 73.9186%; height: 35.4px;">The HTTP codes to be interpreted as Error.

</td></tr><tr style="height: 57.8px;"><td style="width: 26.0814%; height: 57.8px;">**loadNext** (optional)

</td><td style="width: 73.9186%; height: 57.8px;">Next page to fetch. When the response gives us the URL of the next page to fetch, you must type the tag name of this attribute.

</td></tr><tr style="height: 35.4px;"><td style="width: 26.0814%; height: 35.4px;">**loadPagination** (optional)

</td><td style="width: 73.9186%; height: 35.4px;">Complex script to get the next call that has to be done.

</td></tr><tr style="height: 35.4px;"><td style="width: 26.0814%; height: 35.4px;">**loadCondition** (optional)

</td><td style="width: 73.9186%; height: 35.4px;">Script to prevent a call. To prevent the call must return false.

</td></tr><tr role="row" style="height: 102.6px;"><td class="confluenceTd" style="width: 26.0814%; height: 102.6px;">**loadHeader** (optional)

</td><td class="confluenceTd" style="width: 73.9186%; height: 102.6px;">Use this property to send HTTP header(s).  
More than one header can be sent by adding multiple properties loadHeader1, loadHeader2, and so on.  
The value of the header is "HEADER:VALUE", for example "Accept:application/json".

</td></tr></tbody></table>

</div>##### Select


<div id="bkmrk-property-description-3"><table class="confluenceTable tablesorter tablesorter-default stickyTableHeaders" role="grid" style="width: 100%;"><thead class="tableFloatingHeaderOriginal"><tr class="tablesorter-headerRow" role="row"><th aria-disabled="false" aria-label="Property: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted" data-column="0" role="columnheader" scope="col" style="width: 26.448%;" tabindex="0">**Property**

</th><th aria-disabled="false" aria-label="Description: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted" data-column="1" role="columnheader" scope="col" style="width: 73.552%;" tabindex="0">**Description**

</th></tr></thead><tbody aria-live="polite" aria-relevant="all"><tr role="row"><td class="confluenceTd" style="width: 26.448%;">**selectPath** (required)

</td><td class="confluenceTd" style="width: 73.552%;">Denotes the path (relative to webserver root) where the WebService is located. It can contain variable names in the form of **${variableName}**. JSON connector will replace that name for the actual value. Eventually, complex expressions can be written in, but it's discouraged

</td></tr><tr role="row"><td class="confluenceTd" style="width: 26.448%;">**selectMethod** (required)

</td><td class="confluenceTd" style="width: 73.552%;">Denotes the HTTP method to use: PUT, POST, GET and DELETE are allowed

</td></tr><tr role="row"><td class="confluenceTd" style="width: 26.448%;">**selectEncoding** (required)

</td><td class="confluenceTd" style="width: 73.552%;">Denotes the encoding used to send to the target webservice. **application/json** and **application/x-www-form-urlencoded** are supported. The first one is used by default to POST and PUT requests. The second one is used by default for GET and DELETE requests

</td></tr><tr><td class="confluenceTd" style="width: 26.448%; height: 35.4px;">**selectParams** (optional)

</td><td class="confluenceTd" style="width: 73.552%; height: 35.4px;">Put the character '-' in case you would avoid its value

</td></tr><tr><td style="width: 26.448%; height: 35.4px;">**selectTemplate** (optional)

</td><td style="width: 73.552%; height: 35.4px;">Name of the corresponding template defined on the XML Templates.

</td></tr><tr role="row"><td class="confluenceTd" style="width: 26.448%;">**selectResults** (optional)

</td><td class="confluenceTd" style="width: 73.552%;">Denotes the JSON portion that contains current data for the object. If this element is not present, or empty, the connector will conclude the object does not exist yet. This property will contain a simple JSON attribute name, but complex scripts are also allowed

</td></tr><tr><td style="width: 26.448%; height: 35.4px;">**selectSuccessCodes** (optional)

</td><td style="width: 73.552%; height: 35.4px;">The HTTP codes to be interpreted as OK.

</td></tr><tr><td style="width: 26.448%; height: 35.4px;">**selectFailureCodes** (optional)

</td><td style="width: 73.552%; height: 35.4px;">The HTTP codes to be interpreted as Error.

</td></tr><tr><td style="width: 26.448%; height: 57.8px;">**selectNext** (optional)

</td><td style="width: 73.552%; height: 57.8px;">Next page to fetch. When the response gives us the URL of the next page to fetch, you must type the tag name of this attribute.

</td></tr><tr><td style="width: 26.448%; height: 35.4px;">**selectPagination** (optional)

</td><td style="width: 73.552%; height: 35.4px;">Complex script to get the next call that has to be done.

</td></tr><tr><td style="width: 26.448%;">**selectCondition** (optional)

</td><td style="width: 73.552%;">Script to prevent a call. To prevent the call must return false.

</td></tr><tr role="row"><td class="confluenceTd" style="width: 26.448%;">**selectHeader** (optional)

</td><td class="confluenceTd" style="width: 73.552%;">Use this property to send HTTP header(s).  
More than one header can be sent by adding multiple properties selectHeader1, selectHeader2, and so on.  
The value of the header is "HEADER:VALUE", for instance, "Accept:application/json".

</td></tr></tbody></table>

</div>##### Insert

<div id="bkmrk-property-description-4"><table class="confluenceTable tablesorter tablesorter-default stickyTableHeaders" role="grid" style="width: 100%; height: 679.6px;"><thead class="tableFloatingHeaderOriginal"><tr class="tablesorter-headerRow" role="row" style="height: 29.8px;"><th aria-disabled="false" aria-label="Property: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted" data-column="0" role="columnheader" scope="col" style="width: 25.9589%; height: 29.8px;" tabindex="0"><div>**Property**</div></th><th aria-disabled="false" aria-label="Description: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted" data-column="1" role="columnheader" scope="col" style="width: 74.0411%; height: 29.8px;" tabindex="0"><div>**Description**</div></th></tr></thead><tbody aria-live="polite" aria-relevant="all"><tr role="row" style="height: 35.4px;"><td class="confluenceTd" style="width: 25.9589%; height: 35.4px;">**insertPath** (required)

</td><td class="confluenceTd" style="width: 74.0411%; height: 35.4px;">Denotes the path (relative to webserver root) where the webservice is located.

</td></tr><tr role="row" style="height: 35.4px;"><td class="confluenceTd" style="width: 25.9589%; height: 35.4px;">**insertMethod** (required)

</td><td class="confluenceTd" style="width: 74.0411%; height: 35.4px;">Denotes the HTTP method to use: PUT, POST, GET and DELETE are allowed

</td></tr><tr role="row" style="height: 102.6px;"><td class="confluenceTd" style="width: 25.9589%; height: 102.6px;">**insertEncoding** (required)

</td><td class="confluenceTd" style="width: 74.0411%; height: 102.6px;">Denotes the encoding used to send to the target webservice. **application/json** and **application/x-www-form-urlencoded** are supported. The first one is used by default to POST and PUT requests. The second one is used by default for GET and DELETE requests

</td></tr><tr role="row" style="height: 35.4px;"><td class="confluenceTd" style="width: 25.9589%; height: 35.4px;">**insertTemplate** (optional)

</td><td class="confluenceTd" style="width: 74.0411%; height: 35.4px;">Name of the corresponding template defined on the XML Templates.

</td></tr><tr style="height: 57.8px;"><td style="width: 25.9589%; height: 57.8px;">**insertParams** (optional)

</td><td style="width: 74.0411%; height: 57.8px;">Type in the attributes that will be sent to the rest server. If this property is not set, all attributes will be sent.

</td></tr><tr style="height: 35.4px;"><td style="width: 25.9589%; height: 35.4px;">**insertResults** (optional)

</td><td style="width: 74.0411%; height: 35.4px;">Denotes the JSON portion that contains current data for the object. If this element is not present, or empty, the connector will conclude the object does not exist yet. This property will contain a simple JSON attribute name, but complex scripts are also allowed

</td></tr><tr style="height: 57.8px;"><td style="width: 25.9589%; height: 57.8px;">**insertSuccessCodes** (optional)

</td><td style="width: 74.0411%; height: 57.8px;">The HTTP codes to be interpreted as OK.

</td></tr><tr style="height: 57.8px;"><td style="width: 25.9589%; height: 57.8px;">**insertFailureCodes** (optional)

</td><td style="width: 74.0411%; height: 57.8px;">The HTTP codes to be interpreted as Error.

</td></tr><tr style="height: 35.4px;"><td style="width: 25.9589%; height: 35.4px;">**insertCondition** (optional)

</td><td style="width: 74.0411%; height: 35.4px;">Script to prevent a call. To prevent the call must return false.

</td></tr><tr role="row" style="height: 102.6px;"><td class="confluenceTd" style="width: 25.9589%; height: 102.6px;">**insertHeader** (optional)

</td><td class="confluenceTd" style="width: 74.0411%; height: 102.6px;">Use this property to send HTTP header(s).  
More than one header can be sent by adding multiple properties insertHeader1, insertHeader2, and so on.  
The value of the header is "HEADER:VALUE", for example "Accept:application/json".

</td></tr></tbody></table>

</div>##### Update

<div id="bkmrk-property-description-5"><table class="confluenceTable tablesorter tablesorter-default stickyTableHeaders" role="grid" style="width: 100%; height: 733.8px;"><thead class="tableFloatingHeaderOriginal"><tr class="tablesorter-headerRow" role="row" style="height: 29.8px;"><th aria-disabled="false" aria-label="Property: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted" data-column="0" role="columnheader" scope="col" style="width: 26.4501%; height: 29.8px;" tabindex="0"><div>**Property**</div></th><th aria-disabled="false" aria-label="Description: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted" data-column="1" role="columnheader" scope="col" style="width: 73.5499%; height: 29.8px;" tabindex="0"><div>**Description**</div></th></tr></thead><thead class="tableFloatingHeader"></thead><tbody aria-live="polite" aria-relevant="all"><tr role="row" style="height: 35.4px;"><td class="confluenceTd" style="width: 26.4501%; height: 35.4px;">**updatePath** (required)

</td><td class="confluenceTd" style="width: 73.5499%; height: 35.4px;">Denotes the path (relative to webserver root) where the webservice is located

</td></tr><tr role="row" style="height: 57.8px;"><td class="confluenceTd" style="width: 26.4501%; height: 57.8px;">**updateMethod** (required)

</td><td class="confluenceTd" style="width: 73.5499%; height: 57.8px;">Denotes the HTTP method to use: PUT, POST, GET and DELETE are allowed

</td></tr><tr role="row" style="height: 102.6px;"><td class="confluenceTd" style="width: 26.4501%; height: 102.6px;">**updateEncoding** (required)

</td><td class="confluenceTd" style="width: 73.5499%; height: 102.6px;">Denotes the encoding used to send to the target webservice. **application/json** and **application/x-www-form-urlencoded** are supported. The first one is used by default to POST and PUT requests. The second one is used by default for GET and DELETE requests

</td></tr><tr style="height: 57.8px;"><td class="confluenceTd" style="width: 26.4501%; height: 57.8px;">**updateParams** (optional)

</td><td class="confluenceTd" style="width: 73.5499%; height: 57.8px;">Type in the attributes that will be sent to the rest server. If this property is not set, all attributes will be sent.

</td></tr><tr style="height: 80.2px;"><td style="width: 26.4501%; height: 80.2px;">**updateResults** (optional)

</td><td style="width: 73.5499%; height: 80.2px;">Denotes the JSON portion that contains current data for the object. If this element is not present, or empty, the connector will conclude the object does not exist yet. This property will contain a simple JSON attribute name, but complex scripts are also allowed

</td></tr><tr style="height: 57.8px;"><td style="width: 26.4501%; height: 57.8px;">**updateSuccessCodes** (optional)

</td><td style="width: 73.5499%; height: 57.8px;">The HTTP codes to be interpreted as OK.

</td></tr><tr role="row" style="height: 57.8px;"><td style="width: 26.4501%; height: 57.8px;">**updateFailureCodes** (optional)

</td><td style="width: 73.5499%; height: 57.8px;">The HTTP codes to be interpreted as Error.

</td></tr><tr style="height: 35.4px;"><td style="width: 26.4501%; height: 35.4px;">**updateCondition** (optional)

</td><td style="width: 73.5499%; height: 35.4px;">Script to prevent a call. To prevent the call must return false.

</td></tr><tr role="row" style="height: 102.6px;"><td class="confluenceTd" style="width: 26.4501%; height: 102.6px;">**updateHeader** (optional)

</td><td class="confluenceTd" style="width: 73.5499%; height: 102.6px;">Use this property to send HTTP header(s).  
More than one header can be sent by adding multiple properties updateHeader1, updateHeader2, and so on.  
The value of the header is "HEADER:VALUE", for example "Accept:application/json".

</td></tr></tbody></table>

</div>##### Delete

<div id="bkmrk-property-description"><div><div><table class="confluenceTable tablesorter tablesorter-default stickyTableHeaders" role="grid" style="width: 100%;"><thead class="tableFloatingHeaderOriginal"><tr class="tablesorter-headerRow" role="row"><th aria-disabled="false" aria-label="Property: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted" data-column="0" role="columnheader" scope="col" style="width: 25.8344%;" tabindex="0"><div>**Property**</div></th><th aria-disabled="false" aria-label="Description: No sort applied, activate to apply an ascending sort" aria-sort="none" class="confluenceTh tablesorter-header sortableHeader tablesorter-headerUnSorted" data-column="1" role="columnheader" scope="col" style="width: 74.1656%;" tabindex="0"><div>**Description**</div></th></tr></thead><tbody aria-live="polite" aria-relevant="all"><tr role="row"><td class="confluenceTd" style="width: 25.8344%;">**deletePath** (required)

</td><td class="confluenceTd" style="width: 74.1656%;">Denotes the path (relative to webserver root) where the webservice is located

</td></tr><tr role="row"><td class="confluenceTd" style="width: 25.8344%;">**deleteMethod** (required)

</td><td class="confluenceTd" style="width: 74.1656%;">Denotes the HTTP method to use: PUT, POST, GET and DELETE are allowed

</td></tr><tr role="row"><td class="confluenceTd" style="width: 25.8344%;">**deleteEncoding** (required)

</td><td class="confluenceTd" style="width: 74.1656%;">Denotes the encoding used to send to the target webservice. **application/json** and **application/x-www-form-urlencoded** are supported. The first one is used by default to POST and PUT requests. The second one is used by default for GET and DELETE requests

</td></tr><tr role="row"><td class="confluenceTd" style="width: 25.8344%;">**deleteParams** (optional)

</td><td class="confluenceTd" style="width: 74.1656%;">Type in the attributes that will be sent to the rest server. If this property is not set, all attributes will be sent.

</td></tr><tr><td style="width: 25.8344%; height: 35.4px;">**deleteResults** (optional)

</td><td style="width: 74.1656%; height: 35.4px;">Denotes the JSON portion that contains current data for the object. If this element is not present, or empty, the connector will conclude the object does not exist yet. This property will contain a simple JSON attribute name, but complex scripts are also allowed

</td></tr><tr><td style="width: 25.8344%; height: 57.8px;">**deleteSuccessCodes** (optional)

</td><td style="width: 74.1656%; height: 57.8px;">The HTTP codes to be interpreted as OK.

</td></tr><tr><td style="width: 25.8344%; height: 57.8px;">**deleteFailureCodes** (optional)

</td><td style="width: 74.1656%; height: 57.8px;">The HTTP codes to be interpreted as Error.

</td></tr><tr><td style="width: 25.8344%; height: 35.4px;">**deleteCondition** (optional)

</td><td style="width: 74.1656%; height: 35.4px;">Script to prevent a call. To prevent the call must return false.

</td></tr><tr role="row"><td class="confluenceTd" style="width: 25.8344%;">**deleteHeader** (optional)

</td><td class="confluenceTd" style="width: 74.1656%;">Use this property to send HTTP header(s).  
More than one header can be sent by adding multiple properties deleteHeader1, deleteHeader2, and so on.  
The value of the header is "HEADER:VALUE", for example "Accept:application/json".

</td></tr></tbody></table>

</div></div></div>**How to retrieve data from the response with the \*Results properties**

a) One level

```shell
If the JSON has one level you have to avoid the property
{
    "userName" : "soffid"
}
```

b) Two level

```shell
If the JSON has two levels you have to create the property *Result and put the name of the parent attribute, for example:
{
    "user" : {    
        "userName" : "soffid"
    }
}
And the property must be for example loadResults = user
```

c) More than two levels

```shell
If the JSON has more than two levels you have to create the property *Result and put the atributes in the next pattern

*Results = attribure1{"attribute2"}{"attribute3"}...

For example:
{
	"data" : {
        "user" : {    
            "userName" : {
                "string" : "soffid"
            }
        }
    }
}

And the property must be for example:

loadResults = data{"user"}{"userName"}
```


<div id="bkmrk-property-description-6"></div>