Property Inheritance

by Marjo Martinez, in Tech Talk, posted 9/30/08

Introduction

In AutoMate BPA Server 7, object properties are specific settings and preferences that influence the behavior of workflows and tasks as well as the agents that they operate on. These properties control agent preferences, such as which user logon information an agent should use when logging onto the workstation or which user account an agent should specify for sending emails that are generated by BPA Server 7. They influence workflow performance and task execution by dictating specific runtime elements, such as whether a task should run independently or in concurrence with other task, whether an error notification should be sent to the proper recipient if an error occurs in a workflow or task, or instruct whether a task should unlock or log on the workstation before running its steps or to run the steps in the background as an alternative. 

AutoMate BPA Server 7 encompasses a newly designed "inheritance" engine which employs a unique approach in the way object properties are stored, managed and shared. Property Inheritance basically allows new or existing objects to inherit their properties from associated parent objects. For example, tasks can inherit their properties from the workflow they reside in. Consecutively, workflows can inherit their properties from the default properties specified on the server. These properties are made global to all affiliated objects. For example, if modifications were made to the default Logon properties, the changes will be applied to all tasks currently inheriting those properties. However, server inherited properties can be "overridden" on a case by case basis within the agent, workflow or task level.

 
Figure 1 - SMC Default Properties Section

The properties of newly created tasks and workflows as well as newly connected agents by design point to the default properties specified on the server. These properties can be managed or modified via the Server Management Console (SMC) by navigating to the Options tab and selecting Default Properties. This section provides a complete list of default agent, workflow and task properties, as shown in Figure 1.

Inheritance Hierarchies & Order of Precedence

Property Inheritance is logically structured through two separate hierarchies of inheritance levels. Both levels of inheritance are classified accordingly below with the server level sustaining the highest level of inheritance due to its ability to affect virtually all objects.

1.    Server
2.    Agent

And

1.    Server
2.    Workflow
3.    Task

An order of precedence is categorized through a hierarchy with regards to overriding parent property inheritance as well. However, the hierarchy is structured completely opposite from the one displayed above. In this case, each object takes precedence over the one above it with the highest level of precedence set to the Agent in the first structure and task in the second. In other words, a workflow has the authority to override object properties inherited from the server level but cannot override properties inherited from the task level.

For example, one of the default properties inherited from the server level is the Default User options, which determine the user credentials an agent should use to log onto a workstation when it is locked or logged off. Because these settings are inherited from the server level by default, it is shared globally among all agents. However, if a particular agent needs to specify user credentials that differ from that provided by the server, the agent can override the inherited values and define its own.

Property inheritance is ideal for those who prefer to designate a common or predetermined set of preferences to be shared among all associated objects since it eliminates the monotonous procedure of manually re-entering common default properties whenever new workflows or tasks are created. For instance, if a developer decides to modify the settings of all existing tasks to the option task must run alone on the agent, he/she can set this preference to be inclusive to all tasks via the server level by selecting the Priority options found in the Default Properties section of the SMC. In this case, all pre-existing tasks contained in the repository currently inheriting their Priority properties from the server will be set to run alone. This way, any future change to this setting can be performed centrally instead of on a task by task basis.

Overriding Inherited Properties

For objects where different behavior is desired, the property can be set to "override" at the agent, workflow or task level and custom settings can be applied. For example, if the same developer determines that a few tasks are better fit to run in conjunction with other tasks, he/she can set those tasks to override the properties inherited from the server. 

To override inherited properties for a particular task, navigate to the Repository section of the SMC and select the Tasks folder to view existing tasks. Select the desired task and click the Properties button on the top right side of the window or right-click the task and select Properties from the pop-up menu. The repository’s main viewing area becomes populated with the task properties as shown in Figure 2. Double-clicking the desired property (in this case, double-clicking Priority) will reveal its settings.

 
Figure 2: SMC Repository Section - Task Properties

NOTE: When viewing object properties from the agent, workflow or task level, the properties currently inherited from the server are distinguished from other properties by containing the word Inherited below the property name (also illustrated in Figure 2).

When viewing the settings of a particular property item, in the parameter labeled These properties are inherited from the server, clicking the link labeled  Click here to override them (displayed in Figure 3, circled in red) will override the properties set on the server level, thus, allowing custom settings to be administered within the task level of the specified task. Property inheritance can be reverted back to the server level within the same parameter by clicking the link labeled Click here to use the inherited values


Figure 3: SMC Repository Section - Priority Options (Override Option Circled in Red)

 
Figure 4: SMC Workflow Section - Workflow Properties

To override inherited properties for a particular workflow, navigate to the Workflows section of the SMC to view existing workflows. Select the desired workflow and click the Properties button on the top right side or right-click the workflow and select Properties from the pop-up menu to display its properties, as shown in Figure 4. Double-click the desired property item in which to modify.  

Task properties are also included within the properties of a workflow (also displayed in Figure 4). This provides a convenient way to assign properties which will apply to all tasks contained in that workflow. For example, if the Execution properties of the workflow were modified to a specify a 2000 ms (2 sec) delay  and the workflow contains 5 separate tasks, execution speed will affect all 5 tasks during runtime (assuming properties were not overridden in the task level). 

 
Figure 5: SMC Agent Section - Agent Properties

To override inherited properties for an Agent, from the SMC, navigate to the Agents tab to display connected agents. Select the desired agent and click the Properties button or right-click the agent and select Properties from the pop-up menu. The main viewing area of the Agent section is then populated with the default agent properties, as shown in Figure 5. Simply double-click the desired property item to modify its inheritance settings.

Additionally, inheritance values can be overridden from the Workflow Designer (WFD) by selecting the desired task from the workspace and clicking Properties from the Items menu or simply right-clicking the task and selecting Properties from the pop-up menu. A new window titled Properties will appear as shown in Figure 6. Double-click the desired property item to modify its inheritance values. 

 
Figure 6: Task Properties Window (accessed from WFD)

Conclusion

Property inheritance is an exceptional feature because it does away with the process of "recoding" commonly used properties when new agents are connected or new workflows or tasks are created. Newly connected / created objects can simply inherit their properties from their parent object. Additionally, any future modifications to the default properties can be easily performed centrally in the Default Properties section instead of having to navigate to different parts of the SMC. For objects that require specific properties that differ from their parent object, those properties can be easily set at the agent, workflow or task level to "override" the inherited properties, enabling custom property settings to be entered for the specified object. The inheritance engine in BPA can go a long way in improving configuration and management across multiple workflows, tasks and agents.