In Order Management Standard, DefaultSystemInterface supports the following configuration parameters:
|
Parameter |
Semantics |
|---|---|
|
Vlocity DataRaptor Bundle |
Extract or transform DR bundle to prepare a request for an overall Order/Fulfillment Request |
|
Request Items Vlocity DataRaptor Bundle |
Extract or transform DR bundle to prepare a request for individual Order Items/Fulfillment Requests |
|
Request Items Encoding Style |
Send a flat list or hierarchy of Order Items/Fulfillment Request Lines instead of a tree |
|
Response Items Vlocity DataRaptor Bundle |
DR bundle to parse the response for individual Order Items/Fulfillment Requests |
|
Response Vlocity DataRaptor Bundle |
DR bundle to parse the response for an overall Order/Fulfillment Request |
|
Response Omni Data Transform Name |
Omni Data Transformation (Load type) name to apply to response payload provided by an external system via an integration adapter. |
|
Response Items Omni Data Transform Name |
Omni Data Transformation (Load type) name to apply to order items node of the response payload provided by an external system via an integration adapter. |
|
Attributes Encoding Style |
Flat or structure |
As long as Request DR Bundle is specified for an Orchestration Item, a request is processed as:
When Request Item DR Bundle is specified, it forms JSON for Order Items/Fulfillment Request Lines in the order. This JSON has the following structure:
-
Hierarchical or flat depending on the Send Flat Items List flag
-
Attributes are gathered in the attributes field of the corresponding Order Items/Fulfillment Request Lines record using one of the following encodings, as specified by Attributes Encoding Style:
-
Flat:
{attrName1: "val1", attrName2: "val2"} -
Structure:
[ { "attrName": "attrName1", "value": "value1" }, { "attrName": "attrName2", "value": "value2" } ]
-
Request Item DR bundle runs for each Item JSON to form a OI JSON list or tree. Order ID and OI JSON tree are passed to Order DR Bundle as a parameter. If Request DR is not specified, a standard encoding is used.
The following example illustrates the above sequence using sample data:
For Structure attributes/Structure request items, the Request Items DR Bundle receives the following JSON as an input. Note that the order items hierarchy is flattened.
{
"orderItemsWithAttrs": [
{
"id": "Id of orderItem1",
"attrs": [
{
"attrName": "Test attr1",
"attrCode": "TEST-ATTR1",
"value": "1"
},
{
"attrName": "Test attr2",
"attrCode": "TEST-ATTR2",
"value": "ok"
}
]
},
{
"id": "Id of orderItem1.1",
"attrs": [
{
"attrName": "Test attr3",
"attrCode": "TEST-ATTR3",
"value": "Hello"
}
]
},
{
"id": "Id of orderItem2",
"attrs": [
{
"attrName": "Test attr4",
"attrCode": "TEST-ATTR4",
"value": "No"
}
]
}
]
}
The input above produces the following JSON as output:
{
"orderItems": [
{
"id": "Id of orderItem1",
"LineNumber": "0001",
"characteristics": [
{
"name": "Test attr1",
"value": "1"
},
{
"name": "Test attr2",
"value": "ok"
}
]
},
{
"id": "Id of orderItem1.1",
"LineNumber": "0001.0001",
"characteristics": [
{
"name": "Test attr3",
"value": "Hello"
}
]
},
{
"id": "Id of orderItem2",
"LineNumber": "0002",
"characteristics": [
{
"name": "Test attr4",
"value": "No"
}
]
}
]
}
The Request DR bundle then transforms the following input. Note that the orders items hierarchy is reconstructed and "orderItems" is used as an "orderItems" tag name.
{
"orderId": "ID of the order",
"orderItems": [
{
"id": "Id of orderItem1",
"LineNumber": "0001",
"characteristics": [
{
"name": "Test attr1",
"value": "1"
},
{
"name": "Test attr2",
"value": "ok"
}
]
},
{
"orderItems": [
{
"id": "Id of orderItem1.1",
"LineNumber": "0001.0001",
"characteristics": [
{
"name": "Test attr3",
"value": "Hello"
}
]
}
]
},
{
"orderItems": [
{
"id": "Id of orderItem2",
"LineNumber": "0002",
"characteristics": [
{
"name": "Test attr4",
"value": "No"
}
]
}
]
}
]
}
The input above is transformed into the following output:
{
"id": "ID of the order",
"accountId": "ID of the account",
"accountName": "Test account",
"isVIP": "true",
"orderItems": [
{
"Id": "Id of orderItem1",
"LineNumber": "0001",
"characteristics": [
{
"name": "Test attr1",
"value": "1"
},
{
"name": "Test attr2",
"value": "ok"
}
]
},
{
"orderItems": [
{
"Id": "Id of orderItem1.1",
"LineNumber": "0001.0001",
"characteristics": [
{
"name": "Test attr3",
"value": "Hello"
}
]
}
]
},
{
"id": "Id of orderItem2",
"LineNumber": "0002",
"characteristics": [
{
"name": "Test attr4",
"value": "Nope"
}
]
}
]
}
Response parsing is done is reverse order.
For example, the downstream system returns this JSON:
{
"id": "ID of the order",
"accountId": "ID of the account",
"accountName": "Test account",
"isVIP": "true",
"orderItems": [
{
"id": "Id of orderItem1",
"External ID": "789798",
"characteristics": [
{
"name": "Resource ID",
"value": "988989"
},
{
"name": "SubResource ID",
"value": "998889"
}
],
"orderItems": [
{
"Id": "Id of orderItem1.1",
"External ID": "954764",
"characteristics": [
{
"name": "Test attr3",
"value": "Hello"
}
]
}
]
}
]
}
This JSON is processed in the following way:
Response Attributes Bundle transforms attributes to the form understandable by DefaultSystemInterface. It receives the following. Note that the Order Items are flattened.
{
"orderItems": [
{
"id": "Id of orderItem1",
"External ID": "789798",
"characteristics": [
{
"name": "Resource ID",
"value": "988989"
},
{
"name": "SubResource ID",
"value": "998889"
}
]
},
{
"id": "Id of orderItem1.1",
"External ID": "954764",
"characteristics": [
{
"name": "Test attr3",
"value": "Hello"
}
]
}
]
}
and produces:
{
"orderItems": [
{
"id": "Id of orderItem1",
"attrs": [
{
"attrName": "Resource ID",
"value": "988989"
},
{
"attrName": "SubResource ID",
"value": "998889"
}
]
},
{
"id": "Id of orderItem1.1",
"attrs": [
{
"attrName": "Test attr3",
"value": "Hello"
}
]
}
]
}
DefaultSystemInterface then uses the above attributes to update actual attributes.
The next step in how the JSON is processed is that the Response Items DR Bundle receives the following input and updates the corresponding order items. Note that the hierarchy has been flattened.
{
"orderItems": [
{
"id": "Id of orderItem1",
"External ID": "789798",
"characteristics": [
{
"name": "Resource ID",
"value": "988989"
},
{
"name": "SubResource ID",
"value": "998889"
}
]
},
{
"id": "Id of orderItem1.1",
"External ID": "954764",
"characteristics": [
{
"name": "Test attr3",
"value": "Hello"
}
]
}
]
}
Response DR Bundle then receives the full input as it was sent by the downstream system, and updates the order.