Add Replace Field
The add-replace-field manipulator adds a field to the definition of a content type and, also, could replace the value of an existing field.
You can use this manipulator to copy values from an existing field in the content type or to set a default value for the new/updated field.
Properties
It is important to note that all these field... (i.e. fieldId, fieldType, etc) properties are motation properties, they have to use the same syntax as the motation system. Just like the ones used in the connector's Transformers.
runManipulator
When to run this manipulator? Set one of the following options: ALWAYS, VALUE_EMPTY, FIELD_NOT_EXISTS, REGEX
True
runManipulatorRegex
Regular Expression to match the Field Value
Only when REGEX was selected above
fieldId
ID of the field to add
True
fieldType
Type of the field to add
True
fieldValue
Value to set for the field
True
fieldName
Name of the field to add
False
fieldSystemType
Motation System type of the field to add
False
fieldOrder
Order of the field to add
False
Specifics
How to use
It is very straightforward to use this manipulator. You just need to:
Set
runManipulatorto one of the options and set therunManipulatorRegexif you selectedREGEXin the previous step. Note: if you select a non-valid option, the manipulator will selectFIELD_NOT_EXISTSby default. The options are:ALWAYSwill always run the manipulator.VALUE_EMPTYwill run the manipulator only if the value of the field is empty or doesn't exist.FIELD_NOT_EXISTSwill run the manipulator only if the field doesn't exist.REGEXwill run the manipulator only if the value of the field matches therunManipulatorRegex.
Set the
fieldId,fieldTypeandfieldValueproperties. Like you would do in the motation system.
applyOn
This manipulator can be used only on read
fieldType
It could be any of the Motation's TypeEnum, for example: String BigString Boolean Integer BigInteger Decimal Float ...
These Field type values are what we use in relation to our motation in order to manipulate the content these exact motation field types can be found in our Connector Matrix
fieldValue
The fieldValue property can be set to a hardcoded value or to another field value using brackets {{another-field-id}}. For example, if you want to set the value of the field to the value of another field, you can do it like this:
Let's say you "Headline" at source needs to be "Headline" and "Mobile Headline" at destination. You can do it like this:
{
"name": "Add-Field-Motator",
"contentType": "voyage",
"applyOn": "read",
"order": 1,
"config": {
"runManipulator": "FIELD_NOT_EXISTS",
"fieldId": "mobileHeadline",
"fieldType": "String",
"fieldValue": "{{headline}}",
"fieldName": "Mobile Headline",
"fieldSystemType": "Symbol",
"fieldOrder": "2"
}
}Assuming you have a field called "Headline" in your content type, with an id of "headline", the value of the field "mobileHeadline" will be the value of the field "headline".
You could even merge fields, like this:
{
"name": "Add-Field-Motator",
"contentType": "voyage",
"applyOn": "read",
"order": 3,
"config": {
"runManipulator": "ALWAYS",
"fieldId": "merged",
"fieldType": "BigString",
"fieldValue": "Merged Text: {{headline}} - {{body}}",
"fieldName": "Merged",
"fieldSystemType": "Text",
"fieldOrder": "3"
}Examples
This would be the API call for a job with this manipulator (also using Regex manipulator):
{
...
"mutate": {
"motatorsBinary": [
{
"name": "Add-Replace-Field-Motator",
"contentType": "informa",
"applyOn": "read",
"order": 1,
"config": {
"runManipulator": "FIELD_NOT_EXISTS",
"fieldId": "mobileHeadline",
"fieldType": "String",
"fieldValue": "{{headline}}",
"fieldName": "Mobile Headline",
"fieldSystemType": "Symbol",
"fieldOrder": "1"
}
},
{
"name": "Regex-Motator",
"contentType": "informa",
"applyOn": "read",
"fieldName": "body",
"order": 2,
"config": {
"regex": "dummy",
"replace": "pretty smart"
}
},
{
"name": "Add-Replace-Field-Motator",
"contentType": "informa",
"applyOn": "read",
"order": 3,
"config": {
"runManipulator": "NOT_CORRECT_CONFIG",
"fieldId": "merged",
"fieldType": "BigString",
"fieldValue": "Merged Text: {{headline}} - {{body}}",
"fieldName": "Merged",
"fieldSystemType": "Text",
"fieldOrder": "3"
}
},
{
"name": "Add-Replace-Field-Motator",
"contentType": "informa",
"applyOn": "read",
"order": 4,
"config": {
"runManipulator": "VALUE_EMPTY",
"fieldId": "emptyField",
"fieldType": "String",
"fieldValue": "{{headline}} -- This was empty",
"fieldName": "Empty Field",
"fieldSystemType": "Symbol",
"fieldOrder": "4"
}
},
{
"name": "Add-Replace-Field-Motator",
"contentType": "informa",
"applyOn": "read",
"order": 5,
"config": {
"runManipulator": "VALUE_EMPTY",
"fieldId": "notEmptyField",
"fieldType": "String",
"fieldValue": "{{headline}} -- This was not empty",
"fieldName": "Not Empty Field",
"fieldSystemType": "Symbol",
"fieldOrder": "5"
}
},
{
"name": "Add-Replace-Field-Motator",
"contentType": "informa",
"applyOn": "read",
"order": 6,
"config": {
"runManipulator": "FIELD_NOT_EXISTS",
"fieldId": "existingField",
"fieldType": "String",
"fieldValue": "This Field shouldn't have this value",
"fieldName": "Existing Field",
"fieldSystemType": "Symbol",
"fieldOrder": "6"
}
},
{
"name": "Add-Replace-Field-Motator",
"contentType": "informa",
"applyOn": "read",
"order": 7,
"config": {
"runManipulator": "ALWAYS",
"fieldId": "alwaysField",
"fieldType": "String",
"fieldValue": "This Field is always updated",
"fieldName": "Always Field",
"fieldSystemType": "Symbol",
"fieldOrder": "7"
}
},
{
"name": "Add-Replace-Field-Motator",
"contentType": "informa",
"applyOn": "read",
"order": 8,
"config": {
"runManipulator": "REGEX",
"runManipulatorRegex": "This is regex original",
"fieldId": "regexField",
"fieldType": "String",
"fieldValue": "Regex value updated",
"fieldName": "Regex Field",
"fieldSystemType": "Symbol",
"fieldOrder": "8"
}
},
{
"name": "Add-Replace-Field-Motator",
"contentType": "informa",
"applyOn": "read",
"order": 9,
"config": {
"runManipulator": "REGEX",
"runManipulatorRegex": "Not matching regex",
"fieldId": "regexNotMatchingField",
"fieldType": "String",
"fieldValue": "Regex value updated",
"fieldName": "Regex Not Matching Field",
"fieldSystemType": "Symbol",
"fieldOrder": "9"
}
}
]
}
...
}Last updated