The Workflow Designer enables you to create a sequence of actions to occur when triggered by an alarm using a graphical drag and drop user interface. Once triggered a workflow will work through the sequence of activities you have defined. If you modify an existing workflow, this will not affect any instances of this workflow already in process. Workflows currently running will be completed using the actual workflow as it was published at the time it was triggered. When you modify a workflow, the workflow will be marked as 'Modified' and saved so that you can come back to and work on it but it will not be triggered by an alarm until such time as it has been 'Published'. The current state of the workflow, either modified or published is shown on the right hand side of the tool bar. Once the workflow is ready for use, the Publish button is used to make the selected workflow the current workflow for future alarms that utilize this workflow.
On this page ...
Workflow Designer Toolbar Function
Icon | Function |
---|---|
Changes to the workflow are save periodically. The Save button saves the current changes made now. This does not make the current workflow active but simply saves the changes. The right hand side of the toolbar will indicate the workflow has been modified. | |
The Publish button makes the current workflow the active workflow to be used by all relevant alarms raised after it has been published. In the event the workflow is not in a state that it can be published a list of errors will be displayed. Clicking on each error in turn will take you to the activity that requires correcting and where possible the offending variable will have a red border. | |
Clear will remove all components from the current workflow effectively erasing the workflow with the exception of the required start and finish activities. | |
The Discard button will remove your modified workflow completely and reload the workflow designer with a copy of the current published workflow. | |
The Delete button deletes the complete workflow. Existing alarms currently being processed will continue to be processed however no workflow will be available for any alarms that are mapped to this workflow if it has been deleted. | |
Exit will ask you to confirm you wish to exit the Workflow Designer application. If you select Yes you will be returned to the workflow definitions page. | |
The Zoom In button will enable you to get a more detailed view of larger workflows. Zoom in will enlarge the workflow activities until a maximum size is reached. | |
The Zoom Out button enables a more complete view of the overall workflow as opposed to individual activities. | |
Auto scale will centralize and scale the workflow to an optimal width view as seen with the activity and property windows hidden. The activity and properties windows are hidden or displayed by clicking on the drawing pin icon. | |
Select all selects all activities in the workflow. Click an activity to select it or hold the Shift key and click to select multiple activities. |
Workflow Activity Properties Summary
The workflow activity properties window displayed on the right hand side of the workflow designer contains one or more of the following sections depending on the activity type. Each of the activities are listed in detail below.
General
The general section contains basic information regarding the activity such as its name and description. By providing relevant detailed information in these fields the workflow will be easier to maintain and modify in the future by yourself or other users.
Identification
The identification properties are used to access various identities such as a customer or business partner name or callout list using a unique identifier. The details related to that identity can then be used to determine subsequent or alternative workflow activities that need to be performed.
Variables
The variable property contains a list of variables that may be used within this activity. The content of a variable can the be used within a workflow such as using an alarm name in the subject of an email. Each variable is assigned an id starting with zero which is used in the formatting of strings. To add a new variable to the list select a new variable in the last entry of the list. To remove a variable click the 'X' next to the variable to be removed. The index of all variables below the one deleted will be moved up one and a string format activity would need to modified to reflect this change.
Formatting
The formatting property is a string. The string is plain text or may contain HTML tags and may contain variables. An example of a string is Trunk Threshold reached - Customer - {0} ; Alarm '{1} </br>' where the variables 0 and 1 may be customer name and alarm name respectively. The </br> will add a line break if this is used in an email that has the Is Body HTML property set as an example.
Output Mapping
The output mapping describes what to do with the content or result of an activity. For example the content of String Format activity may be to build up the body of an email to include all the relevant information including the customer name, alarm name, severity, and location. This would be mapped to a string variable with a name of your choosing such as AlarmEmailBody. This variable can then be used in the messaging Send Email activity by selecting the variable name AlarmEmailBody from the available list for the message property as shown below.
The output mapping may also be a Boolean variable (true or false) which may be tested to determine the next workflow steps. For example the result of sending an email is either true or false as to whether the send was successful or not. This can be mapped to a Boolean output which can then be tested to determine if email needs to be sent again or an SMS sent as an alternative for example.
Message
The message properties are used to pull together the complete message to be sent: destinations from a callout list, subject and body from previous string format activities. The options available in the Message properties window will be dependent on the message type being sent, currently either email or SMS. For example both have a common Message property but email has additional capabilities such as Cc, Bcc and subject.
Input
Input allows you to select a variable to be used or tested. An example of this is in the 'Is String Populated' activity. The Input property is used to select the variable to be tested in the case of an If or While activity or processed in the case of a GetCalloutDetails activity as an example.
Settings
Settings enables you to set the value of specific properties which are then used in a particular activity. An example is the Alarm Active activity. After setting the alarm id and location id, the Alarm Active activity will determine if alarm meeting that specific criteria is active or not, mapping the result to a defined variable which can be used later.
Operation
The operation property enables you to perform an operation on parameter 1 using parameter 2 with the output being written to a target. These are multiplicative and additive operators generally found in the Assign activity.
Conditional Operator
The conditional operators enables you to test one parameter against another such as a Boolean variable equal to true or false. These are relational and equality operators generally found in the If and While activities.
Transition Criteria
The Transition Criteria property is displayed when an activity connector is selected from an activity that has multiple outputs such as For Each or If activities. These outputs are Boolean states and the criteria may be swapped by checking or unchecking the appropriate checkbox.
Workflow Designer Activity Details
Not all activities are available to all users with the available list based on the users login level. The list below shows those activities generally available at a business partner level.
General Activities
Is String Populated Activity
Description
A string cannot be used directly in an If activity to determine if the string is empty or not. First the Is String Populated activity is used to determine if a particular string variable is empty or not and set a Boolean variable appropriately. A subsequent IF activity may be used to determine which branch of a workflow to follow depending on the Boolean state. For example if an email address variable is populated the Is String Populated activity sets a variable to true, otherwise set it to false. In a follow-up If activity the Boolean output is tested; If True send an email but if False don't attempt to send an email.
Properties
General
Name
This is a name given to this activity that is displayed within the workflow. Ideally the name would provide some relevance when looking at the overall workflow design.
Description
The general section contains basic information regarding the activity such as its name and description. The description is visible in the properties window when the activity is selected in the workflow. Ideally it should contain relevant information regarding the specific function of this activity.
Input
Input String
The input string is the variable to be tested as to whether it is populated or not. Select the required variable from the available variables listed. If the required variable is not yet defined a new variable may be created by clicking the '+' button and completing the required information. A variable name is required which may contain spaces although this is not recommended. The available types are String, Integer, Decimal, Boolean, GUID and Date. The variable may then be added by clicking the Add button or the Add as a parameter button. The key differences between adding as a variable and adding as a parameter, from your point of view, is that a parameter is not editable once it has been created. The purpose of a parameter is that of an input variable taking a value from whatever triggers the workflow and as such needs to be defined by the back-end administrators. At an activity level variables and parameters may be used interchangeably so just use the Add button when adding a variable.
Output Mapping
Is Populated
The Is Populated output is mapped to a variable as either true or false depending on whether the input variable was empty or not. Select the output variable from the available variables listed. If the required variable is not yet defined a new variable may be created by clicking the '+' button and completing the required information. A variable name is required which may contain spaces although this is not recommended. The available types are String, Integer, Decimal, Boolean, GUID and Date. The variable may then be added by clicking the Add button or the Add as a parameter button. The key differences between adding as a variable and adding as a parameter, from your point of view, is that a parameter is not editable once it has been created. The purpose of a parameter is that of an input variable taking a value from whatever triggers the workflow and as such needs to be defined by the back-end administrators. At an activity level variables and parameters may be used interchangeably so just use the Add button when adding a variable.
String Format Activity
Description
The String Format activity enables you to construct a string by combining fixed text and variables. This string may then be assigned to a variable to be used in other activities such as subject or body content in a Send Email or Send SMS activity.
Properties
General
Name
This is a name given to this activity that is displayed within the workflow. Ideally the name would provide some relevance when looking at the overall workflow design.
Description
While the name of an activity should provide relevance when looking at the overall workflow, the description can provide much more information regarding the purpose of the activity. The description is visible in the properties window when the activity is selected.
Formatting
The activity Formatting property contains a string of plain or formatted text. The formatting may include HTML for use in a HTML email as an example as well as placeholders for variables. The syntax for a place holder is a curly bracket (braces) enclosed variable ID which is zero indexed. For example {2} in the formatted string will be replaced with the third variable from the variables list contained in this activity.
Variables
The Variables property window contains a list of variables to be used in the string being created. Each string has an Id starting at zero which is inserted in the Format String text at the respective placeholder for example {0} for the first variable. To remove a variable click the 'X' next to the variable name and all variables below will then move up one ID. Your formatted string will then need to be modified to reflect this change.
Output Mapping
The output of a String Format activity is a string that may be mapped to an existing variable. If the required variable is not yet defined a new variable may be created by clicking the '+' button and completing the required information. A variable name is required which may contain spaces although this is not recommended. The available types are String, Integer, Decimal, Boolean, GUID and Date. The variable may then be added by clicking the Add button or the Add as a parameter button. The key differences between adding as a variable and adding as a parameter, from your point of view, is that a parameter is not editable once it has been created. The purpose of a parameter is that of an input variable taking a value from whatever triggers the workflow and as such needs to be defined by the back-end administrators. At an activity level variables and parameters may be used interchangeably so just use the Add button when adding a variable.
Delay Activity
Description
The Delay activity pauses the processing on this branch of the workflow. If a split has been used to perform some parallel processing the other branches are not affected by this delay. This must be taken into consideration when merging branches if output from the delayed branch is required in the workflow post merging of branches.
Properties
General
Name
This is a name given to this activity that is displayed within the workflow. Ideally the name would provide some relevance when looking at the overall workflow design.
Description
While the name of an activity should provide relevance when looking at the overall workflow, the description can provide much more information regarding the purpose of the activity. The description is visible in the properties window when the activity is selected.
Settings
Duration (sec)
The Duration property causes the Delay action to pause processing of this workflow branch for a defined number of seconds. The value may be a fixed numeric value or using the switch button a variable may be selected. If the required variable is not yet defined a new variable may be created by clicking the '+' button and completing the required information. A variable name is required which may contain spaces although this is not recommended. The available types are String, Integer, Decimal, Boolean, GUID and Date. The variable may then be added by clicking the Add button or the Add as a parameter button. The key differences between adding as a variable and adding as a parameter, from your point of view, is that a parameter is not editable once it has been created. The purpose of a parameter is that of an input variable taking a value from whatever triggers the workflow and as such needs to be defined by the back-end administrators. At an activity level variables and parameters may be used interchangeably so just use the Add button when adding a variable.
Web Service Activity
Description
The Webservice activity enables a workflow to communicate with external systems via SOAP web services. During configuration the Webservice activity reads the web service description (WSDL) and presents the available web methods for selection
Properties
General
Name
This is a name given to this activity that is displayed within the workflow. Ideally the name would provide some relevance when looking at the overall workflow design.
Description
While the name of an activity should provide relevance when looking at the overall workflow, the description can provide much more information regarding the purpose of the activity. The description is visible in the properties window when the activity is selected.
Credentials
User Name
The user name parameter contains the name required for accessing the web service. If the web service does not require authentication, leave the user name parameter empty. The user name and password provided must have permissions to execute the web service being called.
Password
The password parameter contains the password for the user name entered in the user name field. If a user name and password are not required, leave the password parameter empty. The user name and password provided must have permissions to execute the web service being called.
WSDL URL
The WSDL URL parameter contains the complete URL to the web service description. An example of this is http://testserver.com/testwebservice/Service1.asmx?WSDL
Generally the web service description URL can be tested in a browser and will return and XML document as shown below.
Remote Method
Once the WSDL URL has been entered, the search button next to the Remote Method parameter can be clicked. A Web Service Browser window will open and list the available web methods available from within the web service description. Expand the available drop downs to display the list of available web methods and associated parameters. Select the required radio button against the required web method and click Save. The Input Parameters will then be listed in the Web Service activity to have variables or values assigned.
Input Parameters
Parameter List
The list of Input Parameters will vary dependent on the web service description. For each input parameter select from the available variable list or enter a fixed value as required. In the image below the parameters from the web service description have become input parameters within the web service activity.
Output Mapping
Return Value
The Output Mapping Return Value will contain the response from the web service. This value can then be tested or used as required subsequently in the workflow.
Executed Result
Executed Successfully
This returns the result of the web service as returned by the web service or if the call to the web service fails completely such as unable to connect to the web service. This can be assigned to a variable which can be tested later in the workflow so as to perform additional functions such as send an email if the web service call fails.
Error Message
The Expected Result Error Message is the string returned by the web service in the event of a web service failure.
Data Activities
Alarm Active Activity
Description
The Alarm Active activity is used to determine if a specific alarm at a specific location is still active. For example an alarm may be raised however it may resolved by part of the workflow performing some action. After performing the action it is possible to test if the alarm is still active and escalate the alarm to an engineer or just complete the workflow as the intervention was successful.
Properties
General
Name
This is a name given to this activity that is displayed within the workflow. Ideally the name would provide some relevance when looking at the overall workflow design.
Description
While the name of an activity should provide relevance when looking at the overall workflow, the description can provide much more information regarding the purpose of the activity. The description is visible in the properties window when the activity is selected.
Settings
Alarm ID
The Alarm ID is a specific identifier for this instance of an alarm. This value is passed in to the global parameter list when the workflow is triggered by the alarm and it is this global parameter that should be selected here.
Customer ID
The Duration property causes the Delay action to pause processing of this workflow branch for a defined number of seconds. The value may be a fixed numeric value or using the switch button a variable may be selected. If the required variable is not yet defined a new variable may be created by clicking the '+' button and completing the required information. A variable name is required which may contain spaces although this is not recommended. The available types are String, Integer, Decimal, Boolean, GUID and Date. The variable may then be added by clicking the Add button or the Add as a parameter button. The key differences between adding as a variable and adding as a parameter, from your point of view, is that a parameter is not editable once it has been created. The purpose of a parameter is that of an input variable taking a value from whatever triggers the workflow and as such needs to be defined by the back-end administrators. At an activity level variables and parameters may be used interchangeably so just use the Add button when adding a variable.
Output Mapping
Alarm Active
The Alarm Active output mapping will set a Boolean variable true if the alarm identified in the input settings is still active. If the required variable is not yet defined a new variable may be created by clicking the '+' button and completing the required information. A variable name is required which may contain spaces although this is not recommended. The available types are String, Integer, Decimal, Boolean, GUID and Date. The variable may then be added by clicking the Add button or the Add as a parameter button. The key differences between adding as a variable and adding as a parameter, from your point of view, is that a parameter is not editable once it has been created. The purpose of a parameter is that of an input variable taking a value from whatever triggers the workflow and as such needs to be defined by the back-end administrators. At an activity level variables and parameters may be used interchangeably so just use the Add button when adding a variable.
Get Location Details Activity
Description
The Get Location Details activity uses the Location ID GUID sent with the alarm to get specific details of the location such as its name and description and appliance name. This user friendly information can then be incorporated into an email escalation as an example.
Properties
General
Name
This is a name given to this activity that is displayed within the workflow. Ideally the name would provide some relevance when looking at the overall workflow design.
Description
While the name of an activity should provide relevance when looking at the overall workflow, the description can provide much more information regarding the purpose of the activity. The description is visible in the properties window when the activity is selected.
Identification
The Location ID is a GUID which is generated at the time the location is created. The GUID itself is not visible through the administration interface however it may be exported from the list of all locations as shown below.
Output Mapping
Active
This Boolean will be true if the location is active. A location is considered active when ...
Appliance Friendly Name
This is the Appliance Name as entered in the location details which can be found under the main menu Service Desk > All Equipment Locations. The appliance friendly name is labeled Appliance Name under the Appliance Details heading.
Description
This is the description as entered in the Location Details page accessible from the main menu Service Desk > All Equipment Locations.
Name
This is the Location Name as entered in the location details which can be found under the main menu Service Desk > All Equipment Locations. The location name is labeled Appliance Name under the Location Details heading.
Get User Details Activity
Description
The purpose of the Get User activity is to retrieve user specific details based on a user Id which is a GUID. The output from this activity includes the users name, email and telephone details which may be used in an escalation process. The details are those listed for the user under the main menu Service Desk > Users.
Properties
General
Name
This is a name given to this activity that is displayed within the workflow. Ideally the name would provide some relevance when looking at the overall workflow design.
Description
While the name of an activity should provide relevance when looking at the overall workflow, the description can provide much more information regarding the purpose of the activity. The description is visible in the properties window when the activity is selected.
Identification
User Id
This input to the Get User Details activity is a GUID. This will be obtained from ...
Output Mapping
Email Address
The email address is that listed as the User Name in a users details, accessible from the main menu Service Desk > Users.
First Name
The first name is that listed as the First Name in a users details, accessible from the main menu Service Desk > Users.
Last Name
The last name is that listed as the Last Name in a users details, accessible from the main menu Service Desk > Users.
Mobile Number
The mobile number is that listed as the Mobile Number in a users details, accessible from the main menu Service Desk > Users. The mobile number should have been entered in E.164 format to enable SMS messages to be sent successfully. For example the number should be +countrycode areacode number with no long distance access codes included. E.g. +15551234567
Telephone Number
The telephone number is that listed as the Work Number in a users details, accessible from the main menu Service Desk > Users.
Get Customer Details Activity
Description
The Get Customer Details activity returns information about the customer including primary contact and escalation user details as well and business partner details summary details including the business partner ID which may then be used to get detailed business partner details if required.
Properties
General
Name
This is a name given to this activity that is displayed within the workflow. Ideally the name would provide some relevance when looking at the overall workflow design.
Description
While the name of an activity should provide relevance when looking at the overall workflow, the description can provide much more information regarding the purpose of the activity. The description is visible in the properties window when the activity is selected.
Identification
Customer ID
The Customer ID is a GUID generated at the time the customer is added. The GUID itself is not visible through the administration interface however it may be exported from the list of all locations as shown below.
Output Mapping
Active
This Boolean will be true if the location is active. A location is considered active when ...
Alert Via Email
The Alert Via Email variable is a boolean. The value returned is relevant to the activity being called either Get BP Detail or Get Customer Details. It is administered in the business partners or customers availability manager option page respectively: Alert Callout Engineer via Email.
Alert Via SMS
The Alert Via SMS variable is a boolean. The value returned is relevant to the activity being called either Get BP Detail or Get Customer Details. It is administered in the business partners or customers availability manager option page respectively: Alert Callout Engineer via SMS.
Business Partner ID
This is a GUID unique to each business partner. It is created automatically when the business partner is first administered. This would then normally be used in a Get BP Details activity to retrieve any specific details regarding the business partner.
Business Partner Service Desk Email Address
This is the business partner email address as administered in customer details page as distinct from the email address administered in the business partners settings. The intended use for this would be to send the email to a customer specific email address at the business partner. For example customerABC@BPxyz.com. The standard BP Major Alarm template send alarm emails to this email address if populated otherwise it reverts to the email address administered in the business partner settings.
Business Partner Telephone
This is the Work Number as defined in the business partner details configuration.
Customer Name
This is the Customer Name as defined is the customer details page.
Customer Number
This is the Partner Customer Number as defined is the customer details page.
Max Days For Unresolved Alarms
The Max Days For Unresolved Alarms is an integer. It is administered in the customers availability option page: Maximum Age Of Unresolved Alarms(Days).
Mobile Number
The mobile number is that listed as the Mobile Number in a users details, accessible from the main menu Service Desk > Users. The mobile number should have been entered in E.164 format to enable SMS messages to be sent successfully. For example the number should be +countrycode areacode number with no long distance access codes included. E.g. +15551234567
Primary Contact Mobile Number
The Primary Contact is configured at the time the customer is created. Details include name, email address, work number and mobile number.
Primary Contact Name
The Primary Contact is configured at the time the customer is created. Details include name, email address, work number and mobile number.
Send Alarms To Service Desk Email
The Send Alarms To Service Desk Email variable is a boolean. The value returned is relevant to the activity being called either Get BP Details or Get Customer Details. It is administered in the business partners or customers availability manager option page respectively: Send Alarms to Service Desk Email Address.
Service Desk Email Address
This is the service desk email address of the customer as opposed to the business partner service desk email address. It is administered in the customer details page: Service Desk Email Address.
Use Callout List
The Use Callout List variable is a boolean. The value returned is relevant to the activity being called either Get BP Detail or Get Customer Details. It is administered in the business partners or customers availability manager option page respectively: Use Callout List.
User To Receive Alarms Email Address
The User To Receive Alarms Email Address variable is a string. It is the email address of the user administered in the customers availability manager option page: User to Receive Alarms.
The value returned is relevant to the activity being called either Get BP Detail or Get Customer Details. It is administered in the business partners or customers availability manager option page respectively:
User To Receive Alarms Name
The user To Receive Alarms Name variable is a string. It is the name of the user administered in the customers availability manager option page: User to Receive Alarms.
User To Receive Alarms SMS
The user To Receive Alarms SMS variable is a string. It is the mobile number of the user administered in the customers availability manager option page: User to Receive Alarms.
Get BP Details Activity
Description
The purpose of the Get BP Details is to retrieve business partner specific details based on a Customer ID.
Properties
General
Name
This is a name given to this activity that is displayed within the workflow. Ideally the name would provide some relevance when looking at the overall workflow design.
Description
While the name of an activity should provide relevance when looking at the overall workflow, the description can provide much more information regarding the purpose of the activity. The description is visible in the properties window when the activity is selected.
Identification
Customer ID
The Customer ID is a GUID generated at the time the customer is added. The GUID itself is not visible through the administration interface however it may be exported from the list of all locations as shown below.
Output Mapping
Active
This Boolean will be true if the location is active. A location is considered active when ...
Alert Via Email
The Alert Via Email variable is a boolean. The value returned is relevant to the activity being called either Get BP Detail or Get Customer Details. It is administered in the business partners or customers availability manager option page respectively: Alert Callout Engineer via Email.
Alert Via SMS
The Alert Via SMS variable is a boolean. The value returned is relevant to the activity being called either Get BP Detail or Get Customer Details. It is administered in the business partners or customers availability manager option page respectively: Alert Callout Engineer via SMS.
Business Partner Billing Reference
This is for future use.
Business Partner ID
This is a GUID unique to each business partner. It is created automatically when the business partner is first administered. This would then normally be used in a Get BP Details activity to retrieve any specific details regarding the business partner.
Business Partner Mobile Phone
This is the business partner mobile number as administered under the business partner settings, contact information.
Business Partner Name
This is the business partner name as administered under the business partner settings.
Business Partner Service Desk Email Address
This is the Partner Service Desk Email Address as defined in the business partner details page. This email address will be defined by the business partner which may or may not be customer specific.
Max Days For Unresolved Alarms
The Max Days For Unresolved Alarms is an integer. It is administered in the customers availability option page: Maximum Age Of Unresolved Alarms(Days).
Primary Contact Mobile Number
The Primary Contact is configured at the time the customer is created. Details include name, email address, work number and mobile number.
Primary Contact Name
The Primary Contact is configured at the time the customer is created. Details include name, email address, work number and mobile number.
Send Alarms To Service Desk Email
The Send Alarms To Service Desk Email variable is a boolean. The value returned is relevant to the activity being called either Get BP Details or Get Customer Details. It is administered in the business partners or customers availability manager option page respectively: Send Alarms to Service Desk Email Address.
Service Desk Email Address
This is the service desk email address of the customer as opposed to the business partner service desk email address. It is administered in the customer details page: Service Desk Email Address.
Use Callout List
The Use Callout List variable is a boolean. The value returned is relevant to the activity being called either Get BP Detail or Get Customer Details. It is administered in the business partners or customers availability manager option page respectively: Use Callout List.
User To Receive Alarms Email Address
The User To Receive Alarms Email Address variable is a string. It is the email address of the user administered in the customers availability manager option page: User to Receive Alarms.
The value returned is relevant to the activity being called either Get BP Detail or Get Customer Details. It is administered in the business partners or customers availability manager option page respectively:
User To Receive Alarms Name
The user To Receive Alarms Name variable is a string. It is the name of the user administered in the customers availability manager option page: User to Receive Alarms.
User To Receive Alarms SMS
The user To Receive Alarms SMS variable is a string. It is the mobile number of the user administered in the customers availability manager option page: User to Receive Alarms.
Virsae Account Number
For future use.
Virsae Contract Number
For future use.
Virsae Entity ID
This is a unique identifier for the business partner or customer.
Get Callout List Activity
Description
The Get Callout List activity retrieves the callout list using the Callout List ID passed in with the alarm event. The Callout List ID global variable will be populated if the customer or business partner is configured to use a callout list. The list can then be passed into a For Each activity which will iterate through, selecting an item from the list in descending order of rank. The output of the For Each would be passed into a Get Callout Details activity to get the user information.
An example of a common sequence is shown below. Note the labels on the outputs from the For Each for the correct flow.
Properties
General
Name
This is a name given to this activity that is displayed within the workflow. Ideally the name would provide some relevance when looking at the overall workflow design.
Description
While the name of an activity should provide relevance when looking at the overall workflow, the description can provide much more information regarding the purpose of the activity. The description is visible in the properties window when the activity is selected.
Identification
Callout List ID
When an alarm is generated and the customer or business partner is configured to use a callout list, the callout list ID will be passed with the alarm. The callout list iD is a GUID but it is selected from the list of available global variables.
Output Mapping
Callout Details
The output of the Get Callout List activity is of the type Collection and contains the details of all entries within the callout list.
Get Callout Details Activity
Description
Get Callout Details retrieves the name, email address and mobile phone number of the next user in the call out list. This information is then used to send notifications such as raising an alarm.
Properties
General
Name
This is a name given to this activity that is displayed within the workflow. Ideally the name would provide some relevance when looking at the overall workflow design.
Description
While the name of an activity should provide relevance when looking at the overall workflow, the description can provide much more information regarding the purpose of the activity. The description is visible in the properties window when the activity is selected.
Input
Callout Details
The input to a Get Callout Details activity is of the type CallOutDetails and is one item from the callout list. The item is normally retrieved from the callout list using a For Each activity.
Output Mapping
Contact Name
The Contact Name is the first and last name as entered in a users details, accessible from the main menu Service Desk > Users.
Email Address
The email address is that listed as the User Name in a users details, accessible from the main menu Service Desk > Users.
SMS
The SMS address is that listed as the Mobile Number in a users details, accessible from the main menu Service Desk > Users.
Get Contract Expiry List Activity
Description
The Get Contract Expiry List activity retrieves the contracts and schedules associated with a customer. This is then iterated through to get the specific contract which is passed into the Get Contract Expiry Details to get the expiry date, customer ID and days until the contract expires.
Properties
General
Name
This is a name given to this activity that is displayed within the workflow. Ideally the name would provide some relevance when looking at the overall workflow design.
Description
While the name of an activity should provide relevance when looking at the overall workflow, the description can provide much more information regarding the purpose of the activity. The description is visible in the properties window when the activity is selected.
Output Mapping
Contract Details
The Contract Details is of a type List and contains contract related information. This is normally output from a Get Contract Expiry List and would be passed into a For Each activity to iterate through.
Get Contract Expiry Details Activity
Description
The Get Contract Expiry Details activity takes a specific contract item from a Get Contract Expiry List and provides the contract expiry date, customer ID and count of days until expiry for that contract.
Properties
General
Name
This is a name given to this activity that is displayed within the workflow. Ideally the name would provide some relevance when looking at the overall workflow design.
Description
While the name of an activity should provide relevance when looking at the overall workflow, the description can provide much more information regarding the purpose of the activity. The description is visible in the properties window when the activity is selected.
Input
Contract Expiry Details
This input to the Get Contract Expiry Details is an item from get contract details list activity which is passed in from a for each activity.
Output Mapping
Contract Expiry UTC
The Contract Expiry UTC output is written to a variable of type Date. This contains the UTC date the contract is configured to expire as administered in Service Desk > Contracts > Schedules.
Customer ID
The Customer ID output from the Get Contract Expiry Details activity is written to a variable of type GUID. This customer ID could then be used in Get Customer Detail activity to get more detail about the customer.
Days Until Expiry
The Days Until Expiry is output to a variable of type Integer. It contains the number of days until the contract expires.
Get Tags
Description
The Get Tags activity retrieves all tags associated with an entity identifier, which can be a customer ID, Location ID, or Equipment ID. For example for an alarm, it might be the equipment ID the alarm was raised against - and this would then retrieve all tags associated with that equipment.
Properties
General
Name
This is a name given to this activity that is displayed within the workflow. Ideally the name would provide some relevance when looking at the overall workflow design.
Description
While the name of an activity should provide relevance when looking at the overall workflow, the description can provide much more information regarding the purpose of the activity. The description is visible in the properties window when the activity is selected.
Input
Tag Entity Level
This receives an ID, either customer, location, or equipment.
Include Inherited Tags
Tags are may be inherited downwards from Customer → Location → Equipment. This means a tag associated at the customer level, will typically also be associated with all locations for that customer, and all equipment under each of those locations. Checking this box will retrieve all inherited tags.
Output Mapping
Tag List
Produces a list of tags associated with the given ID, these may then be passed through to the Get Tag Details activity to retrieve specific information about the tag.
Get Tag Details
Description
The Get Tag Details activity lists through a tag objects, and returns all key, value pairs associated with that tag. For example:
Properties
General
Name
This is a name given to this activity that is displayed within the workflow. Ideally the name would provide some relevance when looking at the overall workflow design.
Description
While the name of an activity should provide relevance when looking at the overall workflow, the description can provide much more information regarding the purpose of the activity. The description is visible in the properties window when the activity is selected.
Input
Tag
This is the tag object. A tag object is a customizable identifier associated with a customer, location, or equipment. A tag object can be retrieved via the Get Tags activity.
Output Mapping
Category
The category name of the tag
Key
The Keys associated with the tag. A tag can have 0, 1, or several keys associated with it.
Value
The value of the key - each key can have an optional text value associated with it.
Logical Activities
Start Activity
Description
The start activity is required as the entry point to all activities. Here global variables are defined to be used throughout the workflow.
Properties
General
Name
This is a name given to this activity that is displayed within the workflow. Ideally the name would provide some relevance when looking at the overall workflow design.
Description
While the name of an activity should provide relevance when looking at the overall workflow, the description can provide much more information regarding the purpose of the activity. The description is visible in the properties window when the activity is selected.
Global Variables
Here global variables are defined for use throughout the workflow. Here the variable is named and its type selected. The available types are
- String
- Integer
- Decimal
- Boolean
- GUID
- Date
A default value for a variable may be set here or left empty. A Boolean state is indicated using a check box where checked is true and unchecked is false.
A variable may be defined as either a parameter or an output or have no definition.
A parameter is a variable that will be passed into the workflow by the triggering event such as an alarm. The alarm for example passes in a number variable parameters such as the alarm ID, alarm level, business partner id and customer id.
Parameter Name | Parameter type | Description |
---|---|---|
AdministeredId | String | The administered ID of the object that raised the alarm such as a circuit board location or a station number. |
AlarmDescription | String | A long text description of the alarm that has been raised. |
AlarmEventName | String | The text name of the alarm that has been raised. |
AlarmId | GUID | A unique ID for this alarm. This GUID is used to reference this specific alarm such as in the Alarm Active activity to determine if the alarm is still active or has been resolved. |
AlarmLevel | String | The alarm level provided by the alarming device: Information, minor, major, fatal |
AlarmResponseId | String | |
AlarmState | String | |
BusinessPartnerId | GUID | A unique ID for a business partner. Note the Get Business Partner Details activity correctly uses the Customer ID to determine the appropriate business partners details to return. |
CreatedDateTime | DateTime | The date and time the alarm was generated. |
CustomerId | GUID | A unique ID for each customer. Used in both the Get Customer Details and Get Business Partner Details as the input parameter. |
DisplayName | String | |
EquipmentId | GUID | A unique ID for the equipment that generated the alarm. Used in the Get Equipment Details activity to return more information regarding the equipment. |
LocationId | GUID | A unique ID for the location that generated the alarm. Used in the Get Location Details activity to return more information regarding the location. |
OriginatingProbeName | String | For future use. Currently fixed to "Unknown" |
OriginationProbeId | String | A unique identifier for the software probe that raised the alarm. For future use. |
RecommendedAction | String | The recommended action for an alarm as defined in the alarm details. |
Severity | Integer | The severity of the alarm raised. A value from 0 - 10. |
SiteId | Integer | The numerical site ID. |
SiteName | String | A text site name as defined |
Vendor | String | The name of the vendor of the equipment that raised the alarm. |
CalloutListId | GUID | A unique ID of the callout list that should be used in this workflow. The callout list is defined in the alarm rules that initiated this workflow. |
ServerInstanceId | String | |
ShortAlarmDescription | String | A text description of the alarm limited to a maximum of 50 characters. This is for use when including an alarm description within an SMS message with the intention that when combined with other message content the total length is less than 160 characters generating only a single SMS message. |
An icon above the variable will indicate whether the variable is a parameter or output as shown below for SiteID and NewOutput. The menu button to the left of the variable name enables you to set or unset the variable as parameter or output, or to delete the variable altogether. To add a new variable add a variable name to the empty entry at the bottom of the list. As you add a new variable, a new empty entry will automatically be added to the list.
Finish Activity
Description
The finish activity is added automatically to all workflows when they are created. It has a Name and Description but no other properties or functions other than terminating the work flow.
Properties
General
Name
This is a name given to this activity that is displayed within the workflow. Ideally the name would provide some relevance when looking at the overall workflow design.
Description
While the name of an activity should provide relevance when looking at the overall workflow, the description can provide much more information regarding the purpose of the activity. The description is visible in the properties window when the activity is selected.
Assign Activity
Description
The Assign activity is used to perform an operation on parameter 1 using parameter 2. The available operators are Plus, Minus, Multiply, Divide and Mod. The operators available to select from will be dependent on the type of parameter selected. For example when the parameter 1 is of a type string the only operator available will be 'Plus' in which case parameter 1 will be concatenated with parameter 2.
Properties
General
Name
This is a name given to this activity that is displayed within the workflow. Ideally the name would provide some relevance when looking at the overall workflow design.
Description
While the name of an activity should provide relevance when looking at the overall workflow, the description can provide much more information regarding the purpose of the activity. The description is visible in the properties window when the activity is selected.
Operation
Target
The target is the destination variable to which the result will be sent. The target type must match the type of output from the operation. For example if the operation is to add 1 to a loop counter then the target must be of the type integer. The options available will dependent on either the target or parameter 1 selected. If the target selected for example is an integer, then the Parameter 1 list will only contain variables of type integer to select from. If the target is a string then the Parameter 1 list will contain other strings but the only operator option will be 'Plus'
If the required variable is not yet defined a new variable may be created by clicking the '+' button and completing the required information. A variable name is required which may contain spaces although this is not recommended. The available types are String, Integer, Decimal, Boolean, GUID and Date. The variable may then be added by clicking the Add button or the Add as a parameter button.
The key differences between adding as a variable and adding as a parameter, from your point of view, is that a parameter is not editable once it has been created. The purpose of a parameter is that of an input variable taking a value from whatever triggers the workflow and as such needs to be defined by the back-end administrators. At an activity level variables and parameters may be used interchangeably so just use the Add button when adding a variable.
Parameters
The parameters are the items to be operated on. Initially Parameter 1 only is displayed until such time as the variable and operator is selected at which time if a second parameter is required the option will automatically be displayed.
If the required variable is not yet defined a new variable may be created by clicking the '+' button and completing the required information. A variable name is required which may contain spaces although this is not recommended. The available types are String, Integer, Decimal, Boolean, GUID and Date. The variable may then be added by clicking the Add button or the Add as a parameter button.
The key differences between adding as a variable and adding as a parameter, from your point of view, is that a parameter is not editable once it has been created. The purpose of a parameter is that of an input variable taking a value from whatever triggers the workflow and as such needs to be defined by the back-end administrators. At an activity level variables and parameters may be used interchangeably so just use the Add button when adding a variable.
Operator
The available operators are dependent on the type of variables selected.
- Plus - Numeric addition when operating on numerical values. Concatenation when operating on strings.
- Minus - Numeric subtraction when applied to numerical values. Returns the result of Parameter 1 minus Parameter 2.
- Multiply - Numeric multiplication when operating on numerical values.
- Divide - Numeric division when applied to numeric values. Returns the result of Parameter 1 divided by Parameter 2.
- Mod - Numeric modulus when applied to numeric values. Returns the remainder when Parameter 1 is divided by Parameter 2.
For Each Activity
Description
The For Each activity takes a collection such as a call out list as an input and will iterate through until it reaches the end of the collection. The For Each activity has two outputs. While the activity has items in the collection to process, the workflow will follow the True branch passing the item to the next activity. This branch should then loop back to the For Each so that the next item may be processed. When the collection is exhausted the For Each activity will follow the False branch enabling the workflow to exit the loop.
Each item passed from the For Each activity may be used for further processing. An example of this would be to get a call out list for an alarm and pass that to the For Each activity. The For Each activity will then pass each item in the call out list where each item is an engineers details, to a GetCalloutDetails activity which retrieves the email address for the engineer item being passed. An email is sent to the engineer and the process loops back to the For Each activity. In this way an email is sent to all users in the call out list before exiting at the end of the collection.
Properties
General
Name
This is a name given to this activity that is displayed within the workflow. Ideally the name would provide some relevance when looking at the overall workflow design.
Description
While the name of an activity should provide relevance when looking at the overall workflow, the description can provide much more information regarding the purpose of the activity. The description is visible in the properties window when the activity is selected.
Input
Collection
The input collection will most likely be provided by a defined list of items such as a list of call out details of engineers generated by the GetCalloutList activity for example. The output from the GetCalloutList is fed into the ForEach activity and then iterated through. The items available for input selection as a collection will only contain those items that are of type collection which will require population as part of the workflow.
Output Mapping
Item
The Item output mapping from a For Each is one item from the collection received at the input. Each iteration through the For Each activity will output the next item in the collection until all items in the collection have been processed.
Loop Complete
When all items in the input collection have been processed, the For Each activity will exit and if required LoopComplete output may set a Boolean variable which can later be tested.
Transition Criteria
Complete
Decision activities such as For Each, have two outputs: complete or bot complete. To change the output branch criteria simply select the branch and in the available Transition Criteria properties check or un-check the complete checkbox. This will reverse the criteria automatically changing the other branch at the same time.
Note: The transition criteria properties window is only visible while the output branch is selected
If Activity
Description
The If activity enables you to test an input parameter against another parameter using an appropriate operator. The activity has two output branches, 'true' and 'false' depending in the results of the test.
Properties
General
Name
This is a name given to this activity that is displayed within the workflow. Ideally the name would provide some relevance when looking at the overall workflow design.
Description
While the name of an activity should provide relevance when looking at the overall workflow, the description can provide much more information regarding the purpose of the activity. The description is visible in the properties window when the activity is selected.
Condition
Parameter
The parameters are the items to be operated on. Initially Parameter 1 only is displayed until such time as the variable and operator is selected at which time if a second parameter is required the option will automatically be displayed.
If the required variable is not yet defined a new variable may be created by clicking the '+' button and completing the required information. A variable name is required which may contain spaces although this is not recommended. The available types are String, Integer, Decimal, Boolean, GUID and Date. The variable may then be added by clicking the Add button or the Add as a parameter button.
The key differences between adding as a variable and adding as a parameter, from your point of view, is that a parameter is not editable once it has been created. The purpose of a parameter is that of an input variable taking a value from whatever triggers the workflow and as such needs to be defined by the back-end administrators. At an activity level variables and parameters may be used interchangeably so just use the Add button when adding a variable.
Operator
The operator is used to test parameter 1 against parameter 2. The list of available operators will be dependent on the type of parameters selected. For example if a Boolean parameter 1 is selected, the only condition operators available will be Equals or NotEquals. Available operators may include one or more of the following
- Equals - Parameter 1 is equal to parameter 2
- Less Than - Parameter 1 is less than parameter 2
- Greater Than - Parameter 1 is greater than parameter 2
- Less Than Or Equals - Parameter 1 is less than or equal to parameter 2
- Greater Than Or Equals - Parameter 1 is greater than or equal to parameter 2
- Not Equals - Parameter 1 is not equal to parameter 2
Transition Criteria
Result
Decision activities such as If, have two outputs: true or false. To change the output branch criteria simply select the branch and in the available Transition Criteria properties check or un-check the result checkbox. This will reverse the criteria automatically changing the other branch at the same time.
Note: The transition criteria properties window is only visible while the output branch is selected
While Activity
Description
The While loop will execute a branch in the workflow until condition in activity tests false at which time the false branch will be followed. The condition tests parameter 1 against parameter 2 using appropriate operators for the parameter types selected.
The While activity accepts two inputs where one is the initial entry point and the second is the point at which the looping branch re-enters the loop.
Properties
General
Name
This is a name given to this activity that is displayed within the workflow. Ideally the name would provide some relevance when looking at the overall workflow design.
Description
While the name of an activity should provide relevance when looking at the overall workflow, the description can provide much more information regarding the purpose of the activity. The description is visible in the properties window when the activity is selected.
Condition
Parameter
The parameters are the items to be operated on. Initially Parameter 1 only is displayed until such time as the variable and operator is selected at which time if a second parameter is required the option will automatically be displayed.
If the required variable is not yet defined a new variable may be created by clicking the '+' button and completing the required information. A variable name is required which may contain spaces although this is not recommended. The available types are String, Integer, Decimal, Boolean, GUID and Date. The variable may then be added by clicking the Add button or the Add as a parameter button.
The key differences between adding as a variable and adding as a parameter, from your point of view, is that a parameter is not editable once it has been created. The purpose of a parameter is that of an input variable taking a value from whatever triggers the workflow and as such needs to be defined by the back-end administrators. At an activity level variables and parameters may be used interchangeably so just use the Add button when adding a variable.
Operator
The operator is used to test parameter 1 against parameter 2. The list of available operators will be dependent on the type of parameters selected. For example if a Boolean parameter 1 is selected, the only condition operators available will be Equals or NotEquals. Available operators may include one or more of the following
- Equals - Parameter 1 is equal to parameter 2
- Less Than - Parameter 1 is less than parameter 2
- Greater Than - Parameter 1 is greater than parameter 2
- Less Than Or Equals - Parameter 1 is less than or equal to parameter 2
- Greater Than Or Equals - Parameter 1 is greater than or equal to parameter 2
- Not Equals - Parameter 1 is not equal to parameter 2
Split Activity
Description
The Split activity enables you to perform activities in parallel such as send emails to two different destinations at the same time instead of doing this sequentially. One reason for this may be that the email activity is required to wait for a confirmation response before proceeding which would delay the sending of the second email if processed sequentially. The split activity has no output properties.
Properties
General
Name
This is a name given to this activity that is displayed within the workflow. Ideally the name would provide some relevance when looking at the overall workflow design.
Description
While the name of an activity should provide relevance when looking at the overall workflow, the description can provide much more information regarding the purpose of the activity. The description is visible in the properties window when the activity is selected.
Merge Activity
Description
The Merge activity brings together a number of branches of the workflow. The workflow may pause at this point depending on the 'Wait For' synchronization requirement to be met. The synchronization setting will cause the merge activity to proceed when any one branch is complete, X number of branches are complete or all branches are complete.
Properties
General
Name
This is a name given to this activity that is displayed within the workflow. Ideally the name would provide some relevance when looking at the overall workflow design.
Description
While the name of an activity should provide relevance when looking at the overall workflow, the description can provide much more information regarding the purpose of the activity. The description is visible in the properties window when the activity is selected.
Synchronization
The Wait For property of the merge activity is designed to enable synchronization of multiple branches of a workflow by pausing processing until any or all parallel branches of the workflow are complete to that point in the workflow. An example of this would be where the synchronization property is set to All, meaning that all branches of the workflow connected to the merge activity must have got to that point in the workflow before the activity after the merge is processed.
Where the synchronization value is set to Any, the workflow will progress to the next activity as soon as the first of any of the branches reaches the merge activity.
Where the synchronization is set to a configured number, the workflow will progress to the next activity as soon as the first X number of branches reach the merge activity. Exactly which of the branches that make up that number cannot be specified. In a complex workflow for example where the next activity should only be processed where two specific branches have completed and at least one other, two merge activities would be used, one to synchronize the two required branches which would lead into a second merge which synchronizes other branches as required.
Messaging Activities
Email Activity
Description
The Email activity performs the email send function. It combines the results of the email subject and email body activities and attempts to send the complete email. The result of sending an email may be used in further workflow activities. For example if sending the email returns 'sent OK' that may be the end of the workflow, however if this is not received within a set time an attempt to resend the email could be performed. Similarlyafter sending an email, if a reply to that email is received, then the workflow is completed otherwise an escalation path may be followed.
Properties
General
Name
This is a name given to this activity that is displayed within the workflow. Ideally the name would provide some relevance when looking at the overall workflow design.
Description
While the name of an activity should provide relevance when looking at the overall workflow, the description can provide much more information regarding the purpose of the activity. The description is visible in the properties window when the activity is selected.
Message
Reply To
The Reply To address is the email address that an email will be sent to when replying to this email. The message Reply To address may be entered as plain text. Alternatively the entry may be selected from a list of variables. To switch between the two options click the switch button
Copy
The message Cc address may be entered as plain text. Multiple addresses may be entered, separated by a semi-colon ( ; ). Alternatively the entry may be selected from a list of variables. To switch between the two options click the switch button
Blind Copy
The message Bcc address may be entered as plain text. Multiple addresses may be entered, separated by a semi-colon ( ; ). Alternatively the entry may be selected from a list of variables. To switch between the two options click the switch button
Reply To
The Reply To address is the email address that an email will be sent to when replying to this email. The message Reply To address may be entered as plain text. Alternatively the entry may be selected from a list of variables. To switch between the two options click the switch button
Wait For Reply
Checking the Wait For Reply check box will cause this workflow to pause until a reply to this email has been received. Selecting the Switch button enable the option to be changed to 'Sent OK' rather than a reply being received before the workflow continues.
Subject
The subject of this email may be a text entered in this field or the content may be selected from a list of variable information. New variables may be created to produce the desired output. See managing variables.
Is Body HTML
When checked, the email will be sent as an HTML email which includes a plain text option in case the receiving application supports plain text only. Unchecked the email will be sent in plain text only with no HTML content..
Message
The body of the email will either be a fixed string or a variable. When the content is to contain more than one item of variable data that variable will need to be populated using the General - StringFormat action. See string format.
Reply Timeout
When Wait For Reply has been checked, the workflow will wait for a reply for a defined number of seconds. Once that time has been exceeded the workflow will continue. If a reply is received the workflow will continue immediately on receipt and if configured it will set the Reply Received variable to True
Output Mapping
Email sent
The activity will return true or false as to whether the message was sent successfully but not necessarily that it was received at the far end. This output may be mapped to a variable which can then be used to determine if additional workflow activity is required such a sending the message again or an alternative message type if the send failed.
Reply Received
When sending a message either email or SMS a reply timeout may be set. If a reply to the message is received within the timeout period then true will be mapped to the configured variable. If the time out occurs before a reply is received then false will be mapped. These outputs may then be tested to determine any subsequent workflow activities that may be required.
SMS Activity
Description
The Send SMS activity sends an SMS using fixed content or destination and message content defined earlier in the workflow. Outputs from the SMS activity include whether the send was successful or not and if a reply has been received within a defined period.
General
Name
This is a name given to this activity that is displayed within the workflow. Ideally the name would provide some relevance when looking at the overall workflow design.
Description
While the name of an activity should provide relevance when looking at the overall workflow, the description can provide much more information regarding the purpose of the activity. The description is visible in the properties window when the activity is selected.
Messaging
The Messaging properties set the message destination and message content
To
The message To address may be entered as plain text. Multiple addresses are not possible in the To field. Alternatively the entry may be selected from a list of variables. To switch between the two options click the switch button
Message
The body of the email will either be a fixed string or a variable. When the content is to contain more than one item of variable data that variable will need to be populated using the General - StringFormat action. See string format.
Wait For Reply
Checking the Wait For Reply check box will cause this workflow to pause until a reply to this email has been received. Selecting the Switch button enable the option to be changed to 'Sent OK' rather than a reply being received before the workflow continues.
Reply Timeout
When Wait For Reply has been checked, the workflow will wait for a reply for a defined number of seconds. Once that time has been exceeded the workflow will continue. If a reply is received the workflow will continue immediately on receipt and if configured it will set the Reply Received variable to True
Output mapping
SMSSent OK
The activity will return true or false as to whether the message was sent successfully but not necessarily that it was received at the far end. This output may be mapped to a variable which can then be used to determine if additional workflow activity is required such a sending the message again or an alternative message type if the send failed.
Reply Received
When sending a message either email or SMS a reply timeout may be set. If a reply to the message is received within the timeout period then true will be mapped to the configured variable. If the time out occurs before a reply is received then false will be mapped. These outputs may then be tested to determine any subsequent workflow activities that may be required.
Workflow Designer Best Practice
Loop within a loop
Do not create a loop within a loop. Each loop has an internal ID which gets modified by the looping activities ForEach or While. If a loop passes through the same Merge activity a second time with the same loop ID, the workflow will stop at this activity and hang.
Parallel Timers
Activities do not get processed instantaneously. Each activity is queued and executed and if execution fails for some reason may be retried with each step in the process possibly taking seconds. If the workflow is split into parallel branches with the same wait timers, the branches may not necessarily exit at the same time and this needs to be catered for within the workflow such as using Merge activity with synchronization set to 'All' to ensure all branches are completed.
Activity Naming
While it is not a requirement for all activities to have unique names, it does make it a little easier when looking at workflow traces if significant activities, if not all activities, have unique names.
Check While Loops
Before publishing a workflow double check the loop functionality so as to avoid an infinite loop and in the example of a bad loop below, avoid a flood of emails. In the example below the condition is to check if the email was sent successfully and if not to try again. However the While loop transition is set to false, so the loop will only exit if the email send fails otherwise it will send emails continuously. To correct this, click the line between the While activity and the Finish activity, and in the Transition Criteria check the Result check box for the While activity to exit on True.
Testing Workflows
There are a couple of ways to test a workflow. For a major alarm workflow for instance, the alarm rules would be configured as required to run the workflow to be tested, with the required callout list and the appropriate alarm severity level. A Severity 2 alarm can then be generated by running the Avaya Communication Manager shell command 'testinads'. Another way would be to use a lower severity alarm that may occur on a regular basis by setting the alarm rules severity condition to a lower level such as 4 and even define the alarm name you wish to trigger a workflow. In the unresolved alarm history, resolve the specific alarm so that the next alarm will be a new alarm and correctly escalated.
While developing a workflow, a workflow trace is available to be reviewed through the same customer unresolved alarm list by right clicking on the alarm and selecting Response Rule Log. See Response Rule Log for more information.