Define a property within the <context> element for a business process.
Description
The <property> element defines a property within the business process execution context.
The life cycle of a business process requires it to have certain state information saved to disk and restored from disk, whenever the business process suspends or resumes execution. A BPL business process supports the business process life cycle with a group of variables known as the execution context.
The execution context variables include the objects called context, request, response, callrequest, callresponse and process; the integer value synctimedout; the collection syncresponses; and the %StatusOpens in a new tab value status. Each variable has a specific purpose, as described in documentation for the <assign>, <call>, <code>, and <sync> elements.
Most of the execution context variables are automatically defined for the business process. The exception to this rule is the general-purpose container object called context, which a BPL developer must define. Any value that you want to be persistent and available everywhere within the business process should be declared as a property of the context object. You can do this by providing <context> and <property> elements at the beginning of the BPL document. Each <property> element defines one property of the context object.
A <property> element must provide a name.
For non-collection properties, the initialexpression and instantiate attributes dictate how the object will be initialized. If the instantiate attribute has the integer value 1 (true), then a call to “new” the object will be generated. If an initialexpression attribute is specified as well, then the result of this expression will be assigned to the object.
The instantiate attribute should be used to initialize properties that can be instantiated, whereas the initialexpression attribute should be used to initialize data type classes such as %String. For string values, be sure to provide the string quotes wrapped inside another set of quotes. That is: initialexpression='"hello"' to set an initial string value of "hello".
If the collection attribute is set (“list”, “array”, “binarystream”, or “characterstream”) the property is automatically instantiated as a collection of that type.
The following example shows a set of <property> elements within the <context> element at the beginning of a business process:
<process request="Demo.Loan.Msg.Application" response="Demo.Loan.Msg.Approval">
<context>
<property name="BankName" type="%String"
initialexpression="BankOfMomAndDad" />
<property name="IsApproved" type="%Boolean"/>
<property name="InterestRate" type="%Numeric"/>
<property name="TheResults"
type="Demo.Loan.Msg.Approval"
collection="list"/>
<property name="Iterator" type="%String"/>
<property name="ThisResult" type="Demo.Loan.Msg.Approval"/>
</context>
...
</process>
Each <property> element defines the name and data type for a property. For a list of available data type classes, see “Parameters” in the chapter “Data Types”. <property> may assign an initial value by providing an initialexpression attribute. Alternatively, you may assign values during business process execution, using the <assign> element.