Role Modellers The RADRunner Guide

the Role Modellers site
 
   

Process Definition

printer
print-friendly
PDF

Overview

Process definition is what you do to set up a RADRunner system.

A RADRunner system typically contains many different process models - groups of related Role types with their supporting entity and interaction types, as well as instances and associated users. Notionally, each process model corresponds to a particular business process. However, the boundary between process models is often hard to establish, since (for example) some Roles may participate, or some entities may be of use, in several business processes.

RADRunner caters for this overlap by removing the need to have boundaries in the first place. A Playwright world (RADRunner data store) simply contains a number of objects - types, instances and users. These can be imported, exported and used as required, singly or in any combination.

This document explains how to use RADRunner to set up support for your own business processes.

Step-By-Step Guide

Here is a step-by-step guide to process definition:

  1. [Optional] The first step is generally to create Role Activity Diagrams (RADs) of your processes, to outline the Roles, activities and interactions you wish to include. We supply a graphical tool for making RADs - alternatively, any standard drawing tool can be used

    Once you have designed your processes in outline, you need to enter them into RADRunner: the entity types used to store data, plus the Role and interaction types shown in your RADs.

  2. Log in to RADRunner as the Boss user - if you have more than one Role (initially, you will not), choose 42.

    Alternatively, you can use other Roles capable of process definition - new instances of the 42 type, or instances of other Role types which contain suitable tasks (sub-types of 42, for example).

  3. Add the entity types needed to store data - some may be used in multiple Roles, and passed from one to another via interactions.
  4. Add the Role types in your process, making public those that you wish anyone to be able to use.
  5. Add entity types to each Role as appropriate.
  6. Add the interaction types needed for communication between Roles.
  7. Add tasks to each Role, grouped into activities for transaction control.

    RADRunner is supplied with many pre-built task types. Some are available in 42, and are used for process definition - adding Roles, entities, interactions, and so on. Other Role types can include these tasks if desired. However, the tasks usually assigned to other Role types are those for process enactment .

  8. Create initial instances of your Role and interaction types.
  9. Create an initial set of users.
  10. Assign Roles to users as appropriate.

That's it. Now you need to start a process.

Often a process is started by creating a single Role instance and assigning it to a user, which can be done in a single step via the Maintain Users activity in 42 . Either assign the new Role instance to boss or (preferably) create a new user to act it.

It may not even be necessary to do this much. If suitable public Role types are imported into the initial 42 Role instance, anyone can register as a new user of the system via the Register New User page, and start a process by instantiating one of these Role types via the Start New Role page.

The initial Role instance then creates new users and starts other Roles as required, and these new Roles will do the same. Once users start logging in and using their Roles, the system will grow organically.

Once you have created a process, you may wish to export the definitions as Playwright XML for backup .

Example Process Models

To help with getting started, we provide some example processes:

The processes are provided in archive files of zip format. To use the archives, extract their files to a directory, and import the contents of the directory into RADRunner. For example, login as Boss/42 and use Maintain Frameworks/Import All Playwright Files In A Specified Directory.

Some points to watch out for:

  • Make sure that the directory used for import is either at a different location to the zip files, or has a different name than both zip files - otherwise, some operating systems with built-in zip support (e.g., Windows XP) may try to read from the correspondingly named zip file instead of the directory and no files will be imported.
  • The Report Ambulance Service Activity process requires Internet access in order to access via HTTP the stylesheets used to generate custom entry forms (for submission and review of Ambulance Service Activity data). If Internet access is not available, you cannot run the process.
  • The Stockbroker Call Centre process requires Internet access in order to call public web services (for example, for real-time stock quote generation). If Internet access is not available, you can still run the process, but each Quoter Role instance will suspend after the first quote is requested, since no further activities are then available until the quote has been generated.

Guidance on how to use the example processes is given in our Presentation On RADRunner.

The 42 Role Type

When RADRunner is first installed, there are only 3 objects in the world:

  1. The Boss user
  2. The 42 Role type
  3. The root Role, an instance of the 42 Role type assigned to the Boss user - this is generally known simply as 42

The 42 Role type includes all the tasks necessary for process definition. Hence it is possible to extend a new system as follows:

  1. Log in to the Boss user and 42
  2. Create further users and Role types
  3. Instantiate the Roles and assign them to the users

The new Role types can also include process definition tasks. The easiest way to set this up is to make them sub-types of the 42 Role type, removing any tasks from the sub-types that for security or other reasons you do not wish other users to possess (such as Export World To A Specified Directory As Playwright Files). Using this means, multiple users can be empowered to carry out process definition.

In particular, users engaged in a day-to-day business process can evolve the system from within.

The 42 Role type includes the following activities and tasks:

Process Evolution

A RADRunner system can evolve naturally, to meet changing organisational needs.

There are the following methods of enabling this:

  1. If your Roles include tasks for process definition as well as process enactment, users themselves will be able to change the process definitions as required and as permitted
  2. Process definition is itself done via a Role, which at any time can modify the types and instances created by it or (where visible) other Roles
  3. A Role instance which has the necessary tasks can directly edit the XML text which defines types and instances within the system.

These approaches to process evolution can be used singly or in any combination to create a truly dynamic system, in which flexibility, coarse-grained control, and fine-grained control are simultaneously available.

Changes to process types are straightforward, but it is more complex to change the behaviour of running Role instances. In some cases this is possible by direct change to the instance objects from within RADRunner, but in others it is necessary either to export the Role instances to XML form for modification and re-import or to implement a "behaviour change pattern", by which new instances of an updated Role type are made and the contents of current Role instances transferred into them.

In the latter case (where the Role type in general is changed), this procedure is simplified by the task type, Update Role Instances To Current Type Definition. This task allows the user to select running Role instances, and will then automatically update their behaviour to conform to the latest version of their Role type. Hence the option is available, after changing the type of a process, to bring as many process instances as required into line with the updated type - entirely without user intervention.

This feature makes RADRunner a uniquely powerful system for process evolution. However, it should be used with care, as the effects of such dynamic change can be confusing in the case where data previously in the Role body is removed from the new type. The automatic update will leave this data available in the updated Role instance(s), but the user may find (for instance) that this data is now inaccessible via maintenance screens, or no longer available as parameters for web service calls, database acess, etc. Caution is advised!

The process definition task types required to implement process evolution in RADRunner are described below.

Process Definition Task Types

Add Access Relational Database To Role Type

Description

Add an Access Relational Database task to a Role type.

Parameters

The RADRunner page allows for a maximum of 10 bind variables. More can be added if required by editing the Playwright XML.

Object owner
The Role type or activity to which the task will be added
Property name
The name to be assigned to the task
New activity name for task (if owner is not itself an activity)
If the owner is a Role type, a new activity will be created within it to contain the task - specify its name here
Property index
The numeric index (starting at 1) of the task within the owner Role type or activity
Description of the Task
A description of the task
URL of database
An entity attribute containing the URL of the database to be accessed. This is the JDBC URL without the standard jdbc: prefix. For example - db2://woody/sales or oracle:thin:@144.212.123.24:1822 or mysql://guthrie:3306/metrics. If you are not sure what to put here, consult your database vendor.
Database username
An entity attribute containing the database username to be used
Database password
An entity attribute containing the database password to be used
SQL statement (command or query)
An entity attribute containing the SQL statement to be invoked (insert, update, delete, or select). The statement can contain bind variables - placeholders for parameters of the form ?. These are indexed from left to right, starting at 1.
%1
An entity attribute containing bind variable 1 [optional]
%2
An entity attribute containing bind variable 2 [optional]
%3
An entity attribute containing bind variable 3 [optional]
%4
An entity attribute containing bind variable 4 [optional]
%5
An entity attribute containing bind variable 5 [optional]
%6
An entity attribute containing bind variable 6 [optional]
%7
An entity attribute containing bind variable 7 [optional]
%8
An entity attribute containing bind variable 8 [optional]
%9
An entity attribute containing bind variable 9 [optional]
%10
An entity attribute containing bind variable 10 [optional]
Entity to get from response
An entity into which the results will be placed [query only]

Add Automatable Start Role (And Introduce) To Role Type

Description
Parameters
Object owner
The Role type or activity to which the task will be added
Property name
The name to be assigned to the task
New activity name for task (if owner is not itself an activity)
If the owner is a Role type, a new activity will be created within it to contain the task - specify its name here
Property index
The numeric index (starting at 1) of the task within the owner Role type or activity
Description of the Task
A description of the task
Role type
Role type to be instantiated
Automated
Whether or not the new Role instance should be automated
User property name
Entity attribute containing the property name of the new Role's user [optional]
Interaction type for give
Interaction type for give [optional]
Activity to add give part interaction task to
Activity to add a new give part interaction task to - in current Role [required if and only if Interaction type for give specified]
Get part interaction
Get part interaction - in new Role [required if and only if Interaction type for give specified]
Interaction type for get
Interaction type for get [optional]
Give part interaction
Give part interaction - in new Role [required if and only if Interaction type for get specified]
Activity to add get part interaction task to
Activity to add a new get part interaction task to - in current Role [required if and only if Interaction type for get specified]

Add Compound Condition To Role Type

Description

Add a compound condition to a Role type - a logical statement formed by combining 1 or 2 existing conditions with a logical operator.

Parameters
Role type
The Role type to which the new object will be added
Property name
The "nickname" by which the new object will be known to its owner
Left-hand side
The simple condition to use as the left-hand side of the condition
Operator
A logical operator:
And
Nand
Not
Or
Xor
Right-hand side
If the operator is binary, the simple condition to use as the right-hand side of the condition

Add Computation To Role Type

Description

Add a Computation task to a Role type.

Parameters
Object owner
The Role type or activity to which the task will be added
Property name
The name to be assigned to the task
New activity name for task (if owner is not itself an activity)
If the owner is a Role type, a new activity will be created within it to contain the task - specify its name here
Property index
The numeric index (starting at 1) of the task within the owner Role type or activity
Description of the Task
A description of the task
Left-hand side attribute
The attribute whose value is to be used as the left-hand side of the operation, and which will be updated by the computation
Operation
The operation to be performed. This will be validated to check that it is appropriate for the left-hand side and right-hand side value types. The full operation list is:
And
Append
Decrement
DivideBy
FractionalPart
Increment
Lower
Minus
MinusDays
MinusHours
MinusMilliseconds
MinusMinutes
MinusSeconds
MinusWeeks
Modulo
MultiplyBy
Nand
Negate
Not
Now
Or
Plus
PlusDays
PlusHours
PlusMilliseconds
PlusMinutes
PlusSeconds
PlusWeeks
Prepend
Round
SetTo
SetToNull
Truncate
Upper
Xor
Right-hand side attribute
If the operation is binary, the attribute whose value is to be used as the right-hand side of the operation. The values shown here include 2 pseudo-attributes for each entity X: X.# (the total number of attributes and sub-entities belonging to the entity) and X.+ (the sum of all numeric attributes belonging to the entity and its sub-entities)
Right-hand side constant value
If the operation is binary, a constant value to be used as the right-hand side [as an alternative to an attribute value]
Automated
Whether or not the computation is to be carried out in the background, i.e., without manual instigation

Add Convert User To Entity To Role Type

Description

Add a Convert User To Entity task to a Role type.

Parameters
Object owner
The Role type or activity to which the task will be added
Property name
The name to be assigned to the task
New activity name for task (if owner is not itself an activity)
If the owner is a Role type, a new activity will be created within it to contain the task - specify its name here
Property index
The numeric index (starting at 1) of the task within the owner Role type or activity
Description of the Task
A description of the task
Entity to get from User(s)
The entity into which the user details will be placed
User
The user to convert
Automated
Whether or not the computation is to be carried out in the background, i.e., without manual instigation

Add Create Reference To User To Role Type

Description

Add a Create Reference To User task to a Role type.

Parameters
Object owner
The Role type or activity to which the task will be added
Property name
The name to be assigned to the task
New activity name for task (if owner is not itself an activity)
If the owner is a Role type, a new activity will be created within it to contain the task - specify its name here
Property index
The numeric index (starting at 1) of the task within the owner Role type or activity
Description of the Task
A description of the task
User
An entity attribute containing the nickname of the user once a reference to it has been added to the Role
Id
An entity attribute containing the id of the user

Add Download File To Role Type

Description

Add a Download File task to a Role type.

Parameters
Object owner
The Role type or activity to which the task will be added
Property name
The name to be assigned to the task
New activity name for task (if owner is not itself an activity)
If the owner is a Role type, a new activity will be created within it to contain the task - specify its name here
Property index
The numeric index (starting at 1) of the task within the owner Role type or activity
Description of the Task
A description of the task
Prompt
An entity attribute containing a message on screen, explaining to the user what they are downloading and why
Attribute from which to take the downloaded filename
An entity attribute containing a URL (http:// or file://) for the file to be downloaded - if no protocol is specified, http:// is assumed

Add Entity To Role Type

Description

Add an instance of an entity type to a Role type as a top-level resource.

Parameters
Role type
The Role type to which the new object will be added
Property name
The "nickname" by which the new object will be known to its owner
Entity type
The entity type of which an instance will be added to the Role type

Add Entity Type Component

Description

Add a new:

  • Entity type to the current Role
  • Sub-entity to an existing entity type, or sub-entity of an entity type, in the current Role
  • Entity attribute to an existing entity type, or sub-entity of an entity type, in the current Role.
Parameters
Object owner
The current Role, an entity type known to it, or a sub-entity of an entity type known to it
Property name
The "nickname" by which the new object will be known to its owner
Entity component type
Choose from:
Entity Type
Boolean Attribute
String Attribute
Float Attribute
Integer Attribute
Date Time Attribute
Now Attribute
Object supertype
The existing type to use as a template for the new type (Entity Type only)
Initial value
The initial value for the new component (Attribute only) [optional]

Add External Component To Role Type

Description

Add an External Component task to a Role type.

Parameters

The RADRunner page allows for a maximum of 10 parameters to the URL. More can be added if required by editing the Playwright XML.

Object owner
The Role type or activity to which the task will be added
Property name
The name to be assigned to the task
New activity name for task (if owner is not itself an activity)
If the owner is a Role type, a new activity will be created within it to contain the task - specify its name here
Property index
The numeric index (starting at 1) of the task within the owner Role type or activity
Description of the Task
A description of the task
URL of external component
An entity attribute containing the URL (http:// or file://) to be invoked - if no protocol is specified, http:// is assumed
Parameter name [1-10]
An entity attribute containing a parameter name
Parameter value [1-10]
An entity attribute containing a parameter value

Add Get Entity From URL To Role Type

Description

Add a Get Entity From URL task to a Role type.

Parameters

The RADRunner page allows for a maximum of 10 entry fields. More can be added if required by editing the Playwright XML.

Object owner
The Role type or activity to which the task will be added
Property name
The name to be assigned to the task
New activity name for task (if owner is not itself an activity)
If the owner is a Role type, a new activity will be created within it to contain the task - specify its name here
Property index
The numeric index (starting at 1) of the task within the owner Role type or activity
Description of the Task
A description of the task
Entity to get from response
An entity into which to parse the XML elements and attributes returned from the URL
URL from which to get Entity
An entity attribute containing the URL (http:// or file://) to be invoked - if no protocol is specified, http:// is assumed
Parameter name [1-10]
An entity attribute containing a parameter name
Parameter value [1-10]
An entity attribute containing a parameter value

Add Get Entity From XSL To Role Type

Description

Add a Get Entity From XSL task to a Role type.

Parameters
Object owner
The Role type or activity to which the task will be added
Property name
The name to be assigned to the task
New activity name for task (if owner is not itself an activity)
If the owner is a Role type, a new activity will be created within it to contain the task - specify its name here
Property index
The numeric index (starting at 1) of the task within the owner Role type or activity
Description of the Task
A description of the task
Entity to use as destination
An entity into which to parse the XML elements and attributes returned by the specified XSL transformation of the Role resources
Resource attribute containing stylesheet URL
The XSL stylesheet defining the transformation required

Add Get Resource From Collection To Role Type

Description

Add a Get Resource From Collection task to a Role type.

Parameters
Object owner
The Role type or activity to which the task will be added
Property name
The name to be assigned to the task
New activity name for task (if owner is not itself an activity)
If the owner is a Role type, a new activity will be created within it to contain the task - specify its name here
Property index
The numeric index (starting at 1) of the task within the owner Role type or activity
Description of the Task
A description of the task
Source entity for collection
The entity whose sub-entities or attributes are used as the collection
Attribute to use as index into collection
An attribute containing an index into the collection - the attribute does not have to be of type Integer, but on execution of the task it must contain a value which can be used as an integer
Entity or attribute to use as destination
A Role resource into which the indexed collection element will be placed. If the destination resource is an entity, the sub-entities of the source entity are used as the collection. If the destination resource is an attribute, the attributes of the source entity are used as the collection.
Retain original element in collection?
If checked, the element will be left in the collection. Otherwise it will be removed.
Automated
Whether or not the selection is to be carried out in the background, i.e., based on the value of the index attribute, and without user involvement. If this flag is left unchecked, the task page allows the element to be chosen from the collection, whose items are displayed on screen in a selection box (if no selection is made, the index attribute value will be used as in the automated case). If the destination resource is an attribute, the items in the source collection will also be attributes, in which case their values are displayed in the list. If the destination resource is an entity, the items in the source collection will also be entities, in which case the values shown are the values of a particular attribute in each item - the one named @, which corresponds to the top-level text content of the item when converted to standard XML form. In either case, if no value exists, the index of the item will be shown enclosed in square brackets - for example, item 5 will be shown as [5].

Add Get To Interaction Instance

Description

Add a get (an outbound message send) to an interaction instance - the get is actually added to a give within the interaction instance, to provide an additional delivery for the message received via the give.

For a detailed explanation of interactions, see Playwright semantics.

See also Add Get To Interaction Type, an equivalent define time mechanism for interaction extension.

Parameters
Give property in interaction
The give to which the get will be added
Get property in interaction
The name of the new get
Resource to use as message
The name of the resource in the receiving Role
Retain original of message in getter?
Whether or not to leave any existing resource of the same name in the receiving Role - if so, a copy with a generated name will be added rather than overwriting the original
Messaging protocol when user is offline
How to send the message if the user is offline (its Roles are not operated by this system):
Email
Fax
JMS
MQ
Post
SOAP
TIA
Telephone

Add Get To Interaction Type

Description

Add a get (an outbound message send) to an interaction type - the get is actually added to a give within the interaction type, to provide an additional delivery for the message received via the give.

For a detailed explanation of interactions, see Playwright semantics.

See also Add Get To Interaction Instance, an equivalent runtime mechanism for interaction extension.

Parameters
Give property in interaction
The give to which the get will be added
Get property in interaction
The name of the new get
Resource to use as message
The name of the resource in the receiving Role
Retain original of message in getter?
Whether or not to leave any existing resource of the same name in the receiving Role - if so, a copy with a generated name will be added rather than overwriting the original
Messaging protocol when user is offline
How to send the message if the user is offline (its Roles are not operated by this system):
Email
Fax
JMS
MQ
Post
SOAP
TIA
Telephone

Add Give To Interaction Instance

Description

Add a give (an inbound message receipt) to an interaction instance, to provide an additional message delivered via the interaction.

For a detailed explanation of interactions, see Playwright semantics.

See also Add Give To Interaction Type, an equivalent define time mechanism for interaction extension.

Parameters
Interaction instance
The interaction instance to which the give will be added
Give property in interaction
The name of the new give
Resource to use as message
The name of the resource in the sending Role
Retain original of message in giver?
Whether or not to leave the resource in the sending Role - if not, it will be deleted from the sender
Messaging protocol when user is offline
How to receive the message if the user is offline (its Roles are not operated by this system):
Email
Fax
JMS
MQ
Post
SOAP
TIA
Telephone

Add Give To Interaction Type

Description

Add a give (an inbound message receipt) to an interaction type, to provide an additional message delivered via the interaction.

For a detailed explanation of interactions, see Playwright semantics.

See also Add Give To Interaction Instance, an equivalent runtime mechanism for interaction extension.

Parameters
Interaction type
The interaction type to which the give will be added
Give property in interaction
The name of the new give
Resource to use as message
The name of the resource in the sending Role
Retain original of message in giver?
Whether or not to leave the resource in the sending Role - if not, it will be deleted from the sender
Messaging protocol when user is offline
How to receive the message if the user is offline (its Roles are not operated by this system):
Email
Fax
JMS
MQ
Post
SOAP
TIA
Telephone

Add Interaction Type

Description

Add an interaction type to the current Role.

Parameters
Property name
The "nickname" by which the new object will be known to its owner
Object name
The internal name of the new object [optional - if left blank, the property name will be used]
Object supertype
The existing type to use as a template for the new type
Terminate after single execution?
If not, the interaction is enabled to repeat once all its gives and gets have completed - see the explanation of interactions under Playwright semantics

Add Introduce This Role Instance To Another Role Instance To Role Type

Description
Parameters
Object owner
The Role type or activity to which the task will be added
Property name
The name to be assigned to the task
New activity name for task (if owner is not itself an activity)
If the owner is a Role type, a new activity will be created within it to contain the task - specify its name here
Property index
The numeric index (starting at 1) of the task within the owner Role type or activity
Description of the Task
A description of the task
Role instance
Role instance to which the introduction(s) will be made
Interaction type for give
Interaction type for give [optional]
Give part interaction
Give part interaction - in current Role [required if and only if Interaction type for give specified]
Activity to add get part interaction task to
Activity to add a new get part interaction task to - in specified Role instance [required if and only if Interaction type for give specified]
Interaction type for get
Interaction type for get [optional]
Activity to add give part interaction task to
Activity to add a new give part interaction task to - in specified Role instance [required if and only if Interaction type for get specified]
Get part interaction
Get part interaction - in current Role [required if and only if Interaction type for get specified]

Add Manual Action To Role Type

Description

Add a Manual Action task to a Role type.

Parameters
Object owner
The Role type or activity to which the task will be added
Property name
The name to be assigned to the task
New activity name for task (if owner is not itself an activity)
If the owner is a Role type, a new activity will be created within it to contain the task - specify its name here
Property index
The numeric index (starting at 1) of the task within the owner Role type or activity
Description of the Task
A description of the task

Add Part Interaction Get To Role Type

Description

Add a Part Interaction Get task to a Role type.

Parameters
Object owner
The Role type or activity to which the task will be added
Property name
The name to be assigned to the task
New activity name for task (if owner is not itself an activity)
If the owner is a Role type, a new activity will be created within it to contain the task - specify its name here
Property index
The numeric index (starting at 1) of the task within the owner Role type or activity
Description of the Task
A description of the task
Resource to use as message
The entity to use as a message, which can be nested at any level within the Role resources

Add Part Interaction Give To Role Type

Description

Add a Part Interaction Give task to a Role type.

Parameters
Object owner
The Role type or activity to which the task will be added
Property name
The name to be assigned to the task
New activity name for task (if owner is not itself an activity)
If the owner is a Role type, a new activity will be created within it to contain the task - specify its name here
Property index
The numeric index (starting at 1) of the task within the owner Role type or activity
Description of the Task
A description of the task
Resource to use as message
The entity to use as a message, which can be nested at any level within the Role resources

Add Presentation To Role Type

Description

Add a Presentation task to a Role type.

Parameters
Object owner
The Role type or activity to which the task will be added
Property name
The name to be assigned to the task
New activity name for task (if owner is not itself an activity)
If the owner is a Role type, a new activity will be created within it to contain the task - specify its name here
Property index
The numeric index (starting at 1) of the task within the owner Role type or activity
Description of the Task
A description of the task
Resource attribute containing stylesheet URL
An entity attribute containing the URL (http:// or file://) of an XSL stylesheet - this will usually be a file of form *.xsl

Add Put Resource Into Collection To Role Type

Description

Add a Put Resource Into Collection task to a Role type.

Parameters
Object owner
The Role type or activity to which the task will be added
Property name
The name to be assigned to the task
New activity name for task (if owner is not itself an activity)
If the owner is a Role type, a new activity will be created within it to contain the task - specify its name here
Property index
The numeric index (starting at 1) of the task within the owner Role type or activity
Description of the Task
A description of the task
Destination entity for collection
The entity whose sub-entities or attributes are used as the collection
Attribute to use as index into collection
An attribute containing an index into the collection - the attribute does not have to be of type Integer, but on execution of the task it must contain a value which can be used as an integer. If the value is 0, the element is added at the start of the collection and all existing elements have their index incremented by 1. If the value is between 1 and the current collection size, the existing element at that index is replaced. If the value is larger than the current collection size, the element is added at the end of the collection.
Entity or attribute to use as source
A Role resource from which the indexed collection element will be taken. If the source resource is an entity, the sub-entities of the source entity are used as the collection. If the source resource is an attribute, the attributes of the source entity are used as the collection.

Add Resource Attribute Maintenance Form To Role Type

Description

Add a Resource Attribute Maintenance Form task to a Role type.

Parameters

The RADRunner page allows for a maximum of 10 entry fields. More can be added if required by editing the Playwright XML.

Object owner
The Role type or activity to which the task will be added
Property name
The name to be assigned to the task
New activity name for task (if owner is not itself an activity)
If the owner is a Role type, a new activity will be created within it to contain the task - specify its name here
Property index
The numeric index (starting at 1) of the task within the owner Role type or activity
Description of the Task
A description of the task
Prompt [1-10]
The label for an entry field [optional]
Resource Attribute [1-10]
An entity attribute to be updated [optional]

Add Role Type

Description

Add a new Role type to the current Role.

Parameters
Property name
The "nickname" by which the new object will be known to its owner
Object name
The internal name of the new object [optional - if left blank, the property name will be used]
Object supertype
The existing type to use as a template for the new type
Make Role type available to public?
Whether or not the new Role type should be public

Add Send Email To Role Type

Description

Add a Send Email task to a Role type.

Parameters
Object owner
The Role type or activity to which the task will be added
Property name
The name to be assigned to the task
New activity name for task (if owner is not itself an activity)
If the owner is a Role type, a new activity will be created within it to contain the task - specify its name here
Property index
The numeric index (starting at 1) of the task within the owner Role type or activity
Description of the Task
A description of the task
Email Recipient Address
Where to send the email to - entity attribute
Email Subject
The subject line of the email - entity attribute
Email Body Text
The body text of the email - entity attribute or entity (if entity, the standard XML format will be used)

Add Simple Condition To Role Type

Description

Add a simple condition to a Role type - a logical statement formed by combining 1 or 2 entity attributes and/or constants with an expression operator.

Parameters
Role type
The Role type to which the new object will be added
Property name
The "nickname" by which the new object will be known to its owner
Left-hand side
The attribute whose value is to be used as the left-hand side of the condition. The values shown here include 2 pseudo-attributes for each entity X: X.# (the total number of attributes and sub-entities belonging to the entity) and X.+ (the sum of all numeric attributes belonging to the entity and its sub-entities)
Operator
An expression operator:
Equal To
Less Than
Less Than Or Equals
Greater Than
Greater Than Or Equals
Starts With
Contains
Ends With
Matches Regular Expression
In
Isa
Is Null
Not Null
And
Or
Xor
Nand
Right-hand side
If the operator is binary, the attribute whose value is to be used as the right-hand side of the condition. The values shown here include 2 pseudo-attributes for each entity X: X.# (the total number of attributes and sub-entities belonging to the entity) and X.+ (the sum of all numeric attributes belonging to the entity and its sub-entities)
Right-hand side constant value
If the operation is binary, a constant value to use as the right-hand side of the condition [as an alternative to an attribute value]

Add Upload File To Role Type

Description

Add an Upload File task to a Role type.

Parameters
Object owner
The Role type or activity to which the task will be added
Property name
The name to be assigned to the task
New activity name for task (if owner is not itself an activity)
If the owner is a Role type, a new activity will be created within it to contain the task - specify its name here
Property index
The numeric index (starting at 1) of the task within the owner Role type or activity
Description of the Task
A description of the task
Prompt
Entity attribute containing the prompt
Uploaded filename
Entity attribute containing the name of the uploaded file on the server
Place URL to uploaded file in attribute
Entity attribute in which a URL to the uploaded file will be placed

Add User Definition Tasks To Role Type

Description

Add User Definition tasks to a Role type:

This gives instances of the Role type the ability to extend and maintain the user base.

See also Edit User; this task is included by default in all new Role types, along with the automated tasks Do Automated Role Instances and Stop Terminated Role And Interaction Instances.

To transfer knowledge of a user to another Role (so as to delegate the ability to change their details, start and stop their Role instances, and so on), it is necessary to use Convert User To Entity to store the id of the user in a Role resource, transfer the resource to another Role via an interaction, then use Create Reference To User to recreate a reference to the user in the receiving Role.

Parameters
Object owner
The Role type or activity to which the task will be added
Property name
The name to be assigned to the task
New activity name for task (if owner is not itself an activity)
If the owner is a Role type, a new activity will be created within it to contain the task - specify its name here
Property index
The numeric index (starting at 1) of the task within the owner Role type or activity
Description of the Task
A description of the task

Add Web Service Call To Role Type

Description

Add a Web Service Call task to a Role type.

Parameters

The RADRunner page allows for a maximum of 5 parameters and 5 return values. More can be added if required by editing the Playwright XML.

Object owner
The Role type or activity to which the task will be added
Property name
The name to be assigned to the task
New activity name for task (if owner is not itself an activity)
If the owner is a Role type, a new activity will be created within it to contain the task - specify its name here
Property index
The numeric index (starting at 1) of the task within the owner Role type or activity
Description of the Task
A description of the task
Location of WSDL file for web service [network path/URL]
A URL or network path to the WSDL file for the web service
Web service operation name
The operation to be invoked from the web service
Parameter name [1-5]
A parameter to the web service
Resource to use as parameter [1-5]
An entity attribute or entity containing a parameter value - if an entity is specified, the standard XML form will be used
Constant value to use as parameter [1-5]
A constant parameter value [used if no attribute containing the parameter value is specified]
Return value name [1-5]
A return value from the web service
Resource for return value [1-5]
An entity attribute or entity into which the return value will be placed - if an entity is specified, the return value is assumed to be in standard XML form and parsed accordingly into attributes and sub-entities

Assign Always Condition To Role Type

Description

Assign an always condition to a Role type.

Parameters
Condition
The condition to assign - the Role type to use must be its owner, so there is no need to specify it separately

Assign Postcondition To Activity In Role Type

Description

Assign a postcondition to an activity in a Role type.

Parameters
Role type node
The activity, or group of activities, to which the condition will be assigned
Condition
The condition to assign

Assign Precondition To Activity In Role Type

Description

Assign a precondition to an activity in a Role type.

Parameters
Role type node
The activity, or group of activities, to which the condition will be assigned
Condition
The condition to assign

Assign Terminating Condition To Role Type

Description

Assign a terminating condition to a Role type.

Parameters
Condition
The condition to assign - the Role type to use must be its owner, so there is no need to specify it separately

Delete Activities And Tasks From Role Types

Description

Delete a number of activities and/or tasks from Role types known to the current Role.

Parameters
Activities and/or tasks
The activities and/or tasks to be deleted

Delete Entities From Role Types

Description

Delete top-level resources from Role types known to the current Role. These will be entities rather than entity attributes.

Parameters
Entities
The top-level entity resources to delete

Delete Entity Type Components

Description

Delete entity types and/or entity type sub-entities and/or entity type attributes known to the current Role.

If entity types are specified which have been added to a Role type, the task will fail, since entities within Role types are considered to be instances of their entity type.

Parameters
Entity type components
The entity types and/or attributes to delete

Delete Interaction Types

Description

Delete interaction types known to the current Role.

If the specified types have active instances, the task will fail.

Parameters
Interaction types
The interaction types to delete

Delete Role Types

Description

Delete Role types known to the current Role.

If the specified types have active instances, the task will fail.

Parameters
Role types
The Role types to delete.

Do Automated Role Instances

Description

Perform background automation on any automated Role instances known to the current Role.

This task is placed by default in every new Role type. It can be deleted if not required.

Parameters

None.

Export Entity Types As Playwright

Description

Export specified entity types known to the current Role as Playwright XML, with each object placed in a separate file. The files are placed in the system out directory.

Parameters
Entity types
The objects to be exported as Playwright XML

Export Interaction Instances As Playwright

Description

Export specified interaction instances known to the current Role as Playwright XML, with each object placed in a separate file. The files are placed in the system out directory.

Parameters
Interaction instances
The objects to be exported as Playwright XML

Export Interaction Types As Playwright

Description

Export specified interaction types known to the current Role as Playwright XML, with each object placed in a separate file. The files are placed in the system out directory.

Parameters
Interaction types
The objects to be exported as Playwright XML

Export Role Instances As Playwright

Description

Export specified Role instances known to the current Role as Playwright XML, with each object placed in a separate file. The files are placed in the system out directory.

Parameters
Role instances
The objects to be exported as Playwright XML

Export Role Type Resources

Description

Export the resources of specified Role types known to the current Role as standard XML, with each Role's resources placed in a separate file. The files are placed in the system out directory.

This task is particularly of use when defining XSL transformations based upon Role resources, for use in tasks such as Presentation and Get Entity From XSL.

Parameters
Role types
The Role types whose resources are to be exported

Export Role Types As Playwright

Description

Export specified Role types known to the current Role as Playwright XML, with each object placed in a separate file. The files are placed in the system out directory.

Parameters
Role types
The objects to be exported as Playwright XML

Export World To A Specified Directory As Playwright Files

Description

Export the entire Playwright world to Playwright XML files in a specified directory on the server LAN.

For details on how to export individual processes, see exporting processes as XML.

Parameters
Directory name
A directory on the server LAN to which Playwright files representing the entire Playwright world will be exported

Import All Playwright Files In A Specified Directory

Description

Import to the Playwright world all Playwright XML files found in a specified directory on the server LAN.

Use with care, since this will cause any object with the same id as an imported object to be overwritten. For details on how to avoid this, see importing processes from XML.

Parameters
Directory name
A directory on the server LAN containing Playwright files to upload and import

Import Entity From XML File

Description

Import an entity type or sub-entity from a file containing standard XML.

See also Import Entity Type From Playwright.

Parameters
Object owner
The current Role or an entity type known to it
Property name
The "nickname" by which the new object will be known to its owner
File name
The client-side file containing standard XML text for an entity - this file will be uploaded, and its content used to define the new object

Import Entity Type From Playwright

Description

Import an entity type from a file containing Playwright XML.

See also Import Entity Type From XML File.

Parameters
Property name
The "nickname" by which the new object will be known to its owner
Content to upload to file
If desired, Playwright text can be pasted into this field - if non-empty, this will be placed in the server-side file and used to define the new object [optional]
File name
The client-side file containing Playwright text - this will be uploaded, and (if no content is specified separately) its content used to define the new object

Import Interaction Type From Playwright

Description

Import an interaction type from a file containing Playwright XML.

Parameters
Property name
The "nickname" by which the new object will be known to its owner
Content to upload to file
If desired, Playwright text can be pasted into this field - if non-empty, this will be placed in the server-side file and used to define the new object [optional]
File name
The client-side file containing Playwright text - this will be uploaded, and (if no content is specified separately) its content used to define the new object

Import Role Type From Playwright

Description

Import a Role type from a file containing Playwright XML.

Parameters
Property name
The "nickname" by which the new object will be known to its owner
Content to upload to file
If desired, Playwright text can be pasted into this field - if non-empty, this will be placed in the server-side file and used to define the new object [optional]
File name
The client-side file containing Playwright text - this will be uploaded, and (if no content is specified separately) its content used to define the new object

Introduce A Getter To An Interaction Instance

Description

Bind a Part Interaction Get in a Role instance to a get in an interaction instance.

For a detailed explanation of interactions, see Playwright semantics.

Parameters
Get property in interaction
The get to be bound
Get part interaction
The part interaction to be bound

Introduce A Giver To An Interaction Instance

Description

Bind a Part Interaction Give in a Role instance to a give in an interaction instance.

For a detailed explanation of interactions, see Playwright semantics.

Parameters
Give property in interaction
The give to be bound
Give part interaction
The part interaction to be bound

Start Role Instance And Assign User

Description

Start a new Role instance and assign a user to it.

Parameters
Property name
The "nickname" by which the new object will be known to its owner
Object name
The internal name of the new object [optional - if left blank, the property name will be used]
Role type
The Role type to instantiate
Automated
Whether or not the new Role instance is enabled for automation by the current Role
User
The user to assign to the new Role instance

Start Interaction Instance

Description

Create a new interaction instance.

Parameters
Property name
The "nickname" by which the new object will be known to its owner
Object name
The internal name of the new object [optional - if left blank, the property name will be used]
Interaction type
The interaction type to instantiate
Terminate after single execution?
This setting over-rides the equivalent setting in the interaction type, for use when a new interaction instance is created manually (rather than automatically via one of the tasks Start A Role Instance And Introduce It To This Role Instance or Introduce This Role Instance To Another Role Instance)

Stop Interaction Instances

Description

Terminate specified interaction instances.

Parameters
Interaction instances
The instances to terminate

Stop Role Instances And Deassign Users

Description

Terminate specified Role instances, and deassign their users.

This task is placed by default in every new Role type. It can be deleted if not required.

Parameters
Role instances
The instances to terminate

Stop Terminated Role And Interaction Instances

Description

Stop any terminated Role instances known to the current Role.

This task is placed by default in every new Role type. It can be deleted if not required.

Parameters

None.

Update Role Instances To Current Type Definition

Description

Update specified Role instances to the current definition of their Role type.

For each instance, a corresponding new instance is made of its Role type, and the resources of the old instance transferred into it. The old instance is then terminated, and its id given to the new instance - which preserves any connections previously inherent in running processes (knowledge of the Role instance, bindings to interactions, etc).

If the new instance contains data not available in the old instance, this will be left at its default values. Conversely, if the old instance contains data not available in the new instance, this will be left intact, but it is unlikely that the user will now be able to make much use of this data (e.g., in maintenance screens, as parameters to web service calls, for database access, etc) - however, it is available via resource snaphots and exports if required.

Note that if a particular resource in the updated Role type also exists in the old instances, but with some elements added, these new elements will not appear in the updated instances. It is therefore necessary to cater for this eventuality, either by using tasks which create the elements as and when required, or by creating new resources rather than re-using old ones and allowing for transfer of any existing data into them (which is safer, since an audit trail is then kept of data from the previous incarnation of the Role instance).

This task is placed by default in every new Role type. It can be deleted if not required.

Parameters
Role instances
The instances to update