Is it possible to modify Siebel Message Property Set without using custom business service (scripting option)?

This section explains how to manipulate a property set in a workflow without custom script. The mechanisms used here are:

  • The Workflow Utilities business service, echo method.

  • Workflow process aliases

  • The dot notation.

The following techniques allow reading and setting property set content. It is limited to hierarchies that do not have many children of the same type. For example, if a hierarchy has an Account and several Activities, retrieving the value of an Activity attribute is only possible for the first activity of the hierarchy.

If the requirement is to navigate the property set and loop through children, scripted is needed.

  • Aliases

Workflow Processes can have Process Properties of type "Alias". This kind of Process Property works as a pointer to a specific attribute inside a Property Set. Aliases can be used to get an attribute from or set an existing attribute in a Property Set.

Syntax description:
ProcessProperty/[PropertySeta]/[PropertySetb]/.../[PropertySetn]/@attribute

  • ProcessProperty (mandatory): an existing Workflow Process Property of type Hierarchy.

  • PropertySeta to PropertySetn (optional): any sub-property set used to reach the sub-levels of the hierarchy.

  • @attribute (mandatory): the attribute being referenced in the alias.

"/" is the mandatory separator between the ProcessProperty, sub-propertysets and the attribute
Example:
psSiebelMessage/ListOfOrder Interface/Orders/@Account Id
Below Table describes the behavior of different Aliases

Alias

Get

Set

Comments

psSiebelMessage/ListOfOrder Interface/Orders/@Id

1-110CJ

1-110CJ

 

psSiebelMessage/ListOfOrder Interface/@Id

Empty value

Nothing happens

There is no attribute called "Id" inside the psSiebelMessage/ListOfOrder Interface.

psSiebelMessage/ListOfOrder Interface//@Id

Error

Error

There is a syntax error in the Alias "//@Id"

  • Dot Notation - Read Attributes

As an alternative for Aliases, the dot notation can also be used to get attributes from a PropertySet. We commonly use Echo Steps with dot notation.
The table below shows the behavior of reading values from PropertySets using dot notation and an Echo step. Assuming the Input argument is called with the Process Property psSiebelMessage.

Output Argument

Get

Comments

psSiebelMessage.ListOfOrder Interface.Orders.Account Id

1-110CJ

 

psSiebelMessage.ListOfOrder Interface.Account Id

Error

There is no attribute called "Account Id" inside the PS

  • Dot Notation - Set Attributes

As an alternative for Aliases, the dot notation can also be used to set attributes from a Property Set. We commonly use Echo Steps with dot notation.

The table below shows the behaviour of setting values to Property Sets using dot notation and an Echo step. Assuming the Input argument is called with the Process Property psSiebelMessage and the psSiebelMessage is recaptured in the Output of the Echo step from the PS.

Input Arguments

Result

Comments

psSiebelMessage.ListOfOrder Interface.Orders.Account Id

The new value is replaced inside the Property Set

 

psSiebelMessage.ListOfOrder Interface.Orders.Id

The new value is added to the Hierarchy

A new attribute called "Id" will be created under the hierarchy "psSiebelMessage.ListOfOrder Interface.Orders"

psSiebelMessage.ListOfOrder Interface.Orders..Id

The new value is added to a Hierarchy without name

A new non-named hierarchy (or PropertySet) will be created under the hierarchy "psSiebelMessage.ListOfOrder Interface.Orders" with an attribute called "Id".


When the sample workflow attached to this document  is simulated/tested to set the attributes using dot notation, output after populate alias step in the workflow for the following elements will be as follows:
sLocationIntegrationId:Testing String - value added
sMessageId:Test Message Id via Alias

SiebelMessage/@MessageId, SiebelMessage/ListOfOrder Interface/Orders/ListOfLine Items/Line Items/ListOfRequested Schedule Lines/Requested Schedule Lines/@Source Inventory Location Integration Id in siebel message are undisturbed.

If you want to populate the SiebelMessage/@MessageId then you need to specify the property name as aMessageId in output arguments.

Summary

  • Dot notation can create new items under hierarchies, aliases cannot. This operation doesn't Error-out with any of them.

  • Dot notation Error-outs when reading a non-existing attribute from a Property Set. Aliases do not.

  • Dot notation has a limitation of 75 characters (maximum size for step input/output arguments). Aliases can have up to 255 characters.

  • Process property of type Alias will not show up in Watch Windows.

  • There is no need to echo the Alias to a process property if it is used it in an expression or decision step. It is considered by the workflow as the value it is pointing to in the PropertySet.

  • To read attributes from Generic Inbound messages, the Dispatch Rule transformation should be used to populate the attribute value inside the Workflow Process Property, avoiding additional Echo Steps. Use aliases if the attribute is not part of the message.

Tags