Extracting property values from integration object instance or a property set
There are five ways to do it:
1. Dot notation and the Echo method of the Workflow Utilities business service.
2. Workflow variables of the Alias type.
3. Execute method of the FINS Industry XML Query Service business service.
4. GetFieldValue method of the CMU External Integration Service business service.
5. GetProperty method of the PRM ANI Utility Service business service.
The first four are universal approaches, i.e. those work for both property sets and instances of integration objects, but the last one works only with instances of integration objects.
Dot notation and the Echo method of the Workflow Utilities business service:
Requirement to extract the values of ‘Order Type’ & ‘Order Status’ from the below given property set.
Property Set: The following one is the property set from which we are going to extract.
Workflow step: The following are the input and output arguments of the Echo method of the Workflow Utilities business service.
- The dot notation method could be used to extract several values in a single workflow step. However, be careful extracting multiple property values like this – if one of the properties being extracted is missing, the extracted value could be … value of randomly chosen property extracted at the same step! Such a confusing behavior has been noticed in different Siebel 8.1 implementations.
- Also, in earlier Siebel versions the error was thrown trying to extract the value of a non-existing property. Finally, if there are several property sets of the same type traversing the path specified in output argument being found, the extracted value will be returned from the first of those.
- In the Siebel Tools process designer the maximum length of an output argument is 75 characters, therefore the method should quite often be invoked several times, e.g. first step extracts the intermediate hierarchy, this hierarchy is provided as an input to the second step, and it then extracts the value of the needed property. Note that this approach doesn’t work if integration object’s name or integration component’s name contains a dot, e.g. looks like this: “7.7 Order Entry Integration Object”.
Workflow variable of the Alias type:
1. You might think of Alias type workflow variables as of pointers to a specific property in a property set. To extract the value of the Order Status property from the property set created earlier, create a new workflow variable of the Alias type, and then set the default string for it to “PropSet/Context/Header/@Order Type”.
2. The maximum length of a default string is 250 characters – that should be sufficient for most of the cases. Pay attention that the default string for variables of the Alias type doesn’t support all XPath capabilities, e.g. predicates with search specifications.
If there are several property sets of Header type underneath a Context property set, the “Evaluation of Process Property Alias ‘<?>’ returns multiple values.(SBL-BPR-00271)” error will be thrown.
3. The values of the variables of the Alias type are not displayed in the watcher window when simulating the workflow in Siebel Tools and in the Workflow Instance Monitor Logs. Also, the value of the variable of the Alias type returned as workflow output argument is not visible by the parent process. You can tackle this by assigning the value of a variable of the Alias type to a variable of the String type.