Advanced Workflow Components Web Services . . 2. Chapter 2. .... You use the
Workflow applications to plan, design, build, test, and manage workflow ...
Tivoli IBM Tivoli Service Request Manager ®
Version 7 Release 2.1
Advanced Workflow Components Implementation Guide
Tivoli IBM Tivoli Service Request Manager ®
Version 7 Release 2.1
Advanced Workflow Components Implementation Guide
Note Before using this information and the product it supports, read the information in “Notices” on page 95.
Compilation date: August 2010 This edition applies to version 7, release 2.1 of Tivoli® Service Request Manager® and to all subsequent releases and modifications until otherwise indicated in new editions. © Copyright IBM Corporation 2007, 2010. US Government Users Restricted Rights – Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
Contents Chapter 1. Workflow overview . . . . . 1 Advanced Workflow Component . . . . . Advanced Workflow Components Web Services
. .
. 1 . 2
Chapter 2. Applications that are used with Workflow . . . . . . . . . . . . 3 Chapter 3. Workflow design process . . 5 Business process analysis . . . . . . . . . Process analysis . . . . . . . . . . . Workflow processes and user responsibilities . Elements of workflow processes . . . . . . . Person records . . . . . . . . . . . . Person groups and workflow assignments . . Roles and role records . . . . . . . . . Communication templates . . . . . . . Substitution variables in communication templates . . . . . . . . . . . . . Notifications . . . . . . . . . . . . Escalations and action groups . . . . . . Escalation points . . . . . . . . . . Record routing . . . . . . . . . . . Synonym statuses . . . . . . . . . . Examples of workflow processes . . . . . . Example of a purchase requisition business process . . . . . . . . . . . . . . Example of a service request business process . Example of a work order business process . .
. 6 . 7 . 7 . 8 . 8 . 9 . 9 . 10 . . . . . . .
10 11 12 13 13 14 14
. 14 . 15 . 17
Chapter 4. Configuring for Workflow . . 19 Configuration prerequisites . . . . . . . Configuring administrator e-mail notifications . Security permissions for workflow processes .
. . .
. 19 . 19 . 19
Chapter 5. Working with Actions. . . . 21 Actions and Workflow. . . . . . . . . Actions and escalations . . . . . . . . Action types . . . . . . . . . . . . Custom actions . . . . . . . . . . . Creating action records . . . . . . . . Creating action groups . . . . . . . . Creating actions specific to Workflow. . . . Creating actions specific to escalations . . . Duplicating actions . . . . . . . . . . Deleting actions . . . . . . . . . . . View Action Log. . . . . . . . . . . Add or modify an image . . . . . . . . Synchronize parameters . . . . . . . . Configurable parameter mapping . . . . . Parameter mappings in the Action application. Input parameter mappings . . . . . . Output parameter mappings. . . . . . Automation Scripts application . . . . . .
© Copyright IBM Corp. 2007, 2010
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
21 21 21 23 23 24 25 25 25 25 26 26 26 27 28 28 31 32
Chapter 6. Workflow Designer and Workflow Designer (Advanced) . . . . 35 Creating workflow processes . . . . . . . . Adding nodes and connection lines to the canvas Using Workflow Designer application . . . Using Workflow Designer (Advanced) application . . . . . . . . . . . . Designing workflows with Workflow Designer canvas . . . . . . . . . . . . . . . . Workflow Designer toolbar . . . . . . . . Process nodes . . . . . . . . . . . . Connection lines. . . . . . . . . . . . Designing workflows with Workflow Designer (Advanced) canvas . . . . . . . . . . . . Objects and Workflow processes . . . . . . Workflow Designer (Advanced) toolbar . . . . Process nodes . . . . . . . . . . . . Connection lines. . . . . . . . . . . . Using Workflow Designer (Advanced) application . . . . . . . . . . . . . Adding attachments to workflows . . . . . Classifying workflows . . . . . . . . . Setting Launch on Demand for a workflow . . Setting the Go To Instance for a workflow . . Using the Workflow Instances tab . . . . . Enabling logging . . . . . . . . . . Setting node properties . . . . . . . . . . Specifying the properties of connector actions . . Specifying the properties of condition nodes . . Specifying the properties of interaction nodes . . Specifying the properties of manual input nodes Specifying the properties of subprocess nodes . . Specifying the properties of task nodes . . . . Specifying the properties of wait nodes . . . . Setting workflow processes to automatically initiate Setting processes to not auto-initiate . . . . . . Duplicating workflow processes . . . . . . .
35 35 35 36 36 37 38 39 43 44 44 45 45 50 51 51 51 52 53 53 53 54 55 56 57 58 58 60 60 61 61
Chapter 7. Activating and viewing workflow processes . . . . . . . . . 63 Workflow validation process. . . . . . . . . Validating workflow processes . . . . . . . Enabling workflow processes . . . . . . . . Activating workflow processes . . . . . . . . Disabling workflow processes . . . . . . . . Viewing workflow assignments from a Workflow-enabled application . . . . . . . . Viewing workflow history from a Workflow-enabled application . . . . . . . . . . . . . . Viewing workflow specifications from a workflow-enabled application . . . . . . . . Viewing workflow action logs from a workflow-enabled application . . . . . . . . Viewing a Workflow Map . . . . . . . . .
63 64 64 65 65 65 66 66 66 66
iii
Chapter 8. Modifying workflow processes . . . . . . . . . . . . . 69
Chapter 10. Workflow Launcher . . . . 79
Creating a process revision . . . . . . . . Synchronizing active workflow processes . . . Viewing synchronized processes . . . . . . Adding workflow support to applications . . . Adding toolbar buttons for active workflow processes . . . . . . . . . . . . . Modifying toolbar buttons for active workflow processes . . . . . . . . . . . . . Deleting workflow processes . . . . . . . Exporting and importing workflow processes . .
Chapter 11. Developing Custom Actions . . . . . . . . . . . . . . 81
. . . .
69 69 69 70
. 70
Parameter metadata . . . Parameter Mappings XML . Convenience routines for data Sample Jython Script . . .
. 71 . 71 . 72
Chapter 12. Troubleshooting and Support . . . . . . . . . . . . . . 89
Chapter 9. Workflow Administration and Workflow Administration (Advanced) . . . . . . . . . . . . . 73 Workflow Administration. . . . . . Workflow Administration (Advanced) . Using the List tab . . . . . . . Using the Workflow tab . . . . . Using the Assignments tab . . . . Using the History tab . . . . . . Using the Map tab . . . . . . . Using the Logs tab . . . . . . . Using the Specifications tab . . . . Stopping instances of workflow processes Deleting assignments . . . . . . . Reassigning workflow assignments . . Completing assignments . . . . . . Sending reassignment notifications . . Workflow/Inbox Assignments portlet. . Configuring the Workflow Inbox . .
iv
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
73 73 73 74 74 74 74 75 75 75 76 76 76 77 77 77
Advanced Workflow Components Implementation Guide
. . . . . . . . mappings . . . .
. . . .
. . . .
. . . .
. . . .
Known problems, work-arounds, and limitations . . Error when stopping a workflow with email specified . . . . . . . . . . . . . . Internet Explorer 7 sometimes crashes when launching Workflow Designer or Workflow Designer (Advanced) . . . . . . . . . . Right-clicking on ILOG Canvas Stop node shows a "Java Applet Window" entry . . . . . . . Internet Explorer 7: Hidden Form Missing error in Workflow Designer (Advanced). . . . . . Internet Explorer 7: security exception when launching Workflow Designer (Advanced) . . .
81 85 87 88
89 89
89 89 90 90
Chapter 13. Advanced Workflow Components Messages . . . . . . . 91 Notices . . . . . . . . . . . . . . 95 Trademarks .
.
.
.
.
.
.
.
.
.
.
.
.
. 97
Index . . . . . . . . . . . . . . . 99
Chapter 1. Workflow overview You use the Workflow applications to plan, design, build, test, and manage workflow processes. Workflow provides a means of electronically reproducing business processes so that they can be applied to records. You can manage the movement of a record through a process from start to finish. You can instruct individuals to act on records, specify delegates when workers are unavailable, ensure that individuals act in a timely manner, and ensure that an audit trail exists for each record and process. Workflow is an integrated part of the software. Workflow processes and their supporting records are at the system level in a multisite implementation. Workflow processes can be used for all organizations and sites. You can design processes or subprocesses that are specific to an organization or specific to a site, through the use of logical branching. You can create a workflow process for any business object. Because all the applications are associated with Maximo® business objects and can run a customer-developed Java class or script, you can build workflow processes for any application, including cloned and custom applications. Workflow handles assignments in a flexible manner. Assignees can receive notifications of assignments in their Workflow Inbox or in their e-mail inbox, eliminating the need for users to search for their assignments. Workers or administrators can reassign workflow tasks, stop a process instance, and remove a record from the control of Workflow. You can specify at what point in a process you want e-mail notifications generated. Delegates can be specified when workers are unavailable. A workflow process can run a program, such as a batch file or an .exe file, that is stored on a local server in the system directory. A workflow process for one type of record can launch a process for another type of record. For example, a service request can launch a process for an incident. A process can contain subprocesses. For example, for different subcategories of records, or records from different sites. When a process requires user interaction, the product can direct a user to a specific application, to a tab, or to an action.
Advanced Workflow Component The Advanced Workflow Component that is installed with this product leverages the capabilities of the Action application to automate one or more steps in a Workflow process. Workflow automation or 'runbook automation' is used to refer to process automation capabilities for IT operations teams. The ability to automate processes is of utmost importance to all IT Operations organizations; the main goals being to reduce labor costs, and to reduce the risk of human error in performing intricate, tedious, and repetitive tasks. Workflows can be exposed to IT personnel who need to run repeatable procedures in several different contexts: © Copyright IBM Corp. 2007, 2010
1
v v v v v
User- or tool-driven automation workflow procedures Service flow-driven automation workflow procedures Process-driven automation workflow procedures Ticket-based automation workflow procedures Web Services driven automation workflow procedures
In the most simple of scenarios, run book automation provides straightforward value. Above and beyond simple documentation of the steps to perform, workflow-based automation provides for automation at two levels: sequencing the steps in the task and connecting tool-based automation to steps in the workflow. Actions provide access to a variety of built-in capabilities, including the ability to: v Initiate an application action v Change the status of a record v Execute a custom class or a specified executable program v Execute an automation script v Set the value of a field on a record
Advanced Workflow Components Web Services Advanced Workflow Components comes with number of Web Services that help you automate your workflow processes. For more information, see the Advanced Workflow Components Web Services technote on the product support site: http://www.ibm.com/support/
2
Advanced Workflow Components Implementation Guide
Chapter 2. Applications that are used with Workflow Workflow is used with other applications that directly or indirectly support its functionality. Actions Create and manage actions and action groups. Actions are associated with connection lines in a workflow process and are triggered by the routing that moves a record from one node to another. Automation Scripts Create jython scripts that serve as action implementations (similar to custom Java classes). As with custom Java classes, automation scripts can access information in Maximo business objects (MBOs) and interact with operational management products to perform a variety of operations (for example, install software, re-configure a device, or start a service). Communication Templates Create and manage templates that the system uses when generating e-mail messages. Workflow uses communication templates for notifications. Escalations Create and manage escalation processes. An escalation is a mechanism that can monitor time-sensitive records and key performance indicators, which can take actions or send notifications when a record reaches a defined escalation point. Workflow can use escalations with task assignments. Inbox/Assignments Setup Configure the Workflow Inbox on the Start Center of a user. People Create and manage records for individuals who are listed on records in any capacity. Workflow uses person records when generating assignments and notifications. Person Groups Create and manage records for groups of individuals. Workflow uses person group records when generating assignments and notifications. Roles
Create and manage records for roles. All roles resolve to a person, person group, or e-mail address. All workflow assignments and notifications are made to roles.
Workflow Administration View and modify assignments and active instances of workflow processes. Workflow Administration (Advanced) View and modify assignments and active instances of workflow processes. Information about active and inactive instances of workflow processes can also be viewed, including workflow assignments, workflow history, action logs and specification attribute information. Workflow Designer Create, view, and modify workflow processes. Workflow Designer (Advanced) Create, view, and modify workflow processes. Workflow Designer (Advanced) application provides a re-designed canvas for designing workflows and provides numerous new capabilities over Workflow © Copyright IBM Corp. 2007, 2010
3
Designer application. Workflows that were designed using the original Workflow Designer application can be managed using the Workflow Designer (Advanced) application. Workflow Inbox View and respond to workflow assignments. A workflow process routes assignments to users' inboxes. Workflow Launcher Exposes a library of re-usable workflows to the user for selection and invocation.
4
Advanced Workflow Components Implementation Guide
Chapter 3. Workflow design process Workflow processes can be designed to incorporate the most effective ways of completing business tasks. You can evaluate your current practices and determine how you can improve or standardize them before you design workflow processes. When you create a workflow process, the product directs records through paths that you specify. When you design a process, be sure to consider what can happen at each decision point and include all of the paths that a record can take. You could begin your workflow implementation with simple processes. You can always build in more complexity in a later revision. To design optimum workflow processes, consider the following guidelines: v Generic processes require less maintenance than highly specific ones. For example, you could modify roles that resolve to an individual more frequently than roles that resolve to a person group. v When designing processes, consider when you want the product to generate notifications. The product can generate notifications when the following events occur in a process: – A record reaches a decision point (node) – A record follows a specific path (connection line) in a process – Task assignments are made v When designing processes, consider how you want to handle null values. A process could reach a decision point that evaluates data on the record and that data could be missing from the record. v When a record takes the negative path, you can design the record so that it can be modified to take the positive path. You could also design the record to exit the process permanently. v If a record can go through a process again after it has been rejected, you can define a limit to the number of times a record can repeat the process. v Try to avoid having separate groups of nodes and connection lines that perform the same function at different points in a process. It is more efficient to reuse the same code through looping or through creating a subprocess. v Simple processes involving a limited number of nodes are easier to troubleshoot and maintain. If the number of nodes in your process grows too large, you could break down the process into subprocesses. v When writing Structured Query Language (SQL) statements, consider how the SQL syntax affects how the product interprets the statements. The following examples demonstrate the use of the colon in SQL statements: – ASSETNUM — (without a colon) Instructs the product to go to the database for the asset record – :ASSETNUM — (with a colon) Instructs the product to use the asset record in memory (the record currently on the window)
© Copyright IBM Corp. 2007, 2010
5
Business process analysis Your business practices encompass how you manage your enterprise. You can start the analyses of your processes by collecting information about your enterprise. This information helps you to determine the types of processes that you could automate.
Enterprise analysis Gather the following enterprise information to use when designing your workflow processes: v If you have an organizational chart, review your organizational chart to see how your enterprise is organized. v If your enterprise is multinational, list the languages that are required for your workflow processes. v Collect the business process flows that document the business units of your organization. If there are different process flows for the same organizations at various locations, gather those process flows. Compare the business practices at locations to find out if the differences are significant. v Review the standard operating procedures, such as the International Organization for Standardization (ISO) 9000 quality management or the ISO 14000 procedures. v Review the regulatory requirements for your industry and how they affect your business processes. v Review the policies that define who is responsible for creating budgets. v Review the policies that define financial approval limits and list the individuals who have the authority to approve spending. v Research the types of records at your enterprise that require approval. v Review the policies that define the levels of approval that are required for each type of record.
Implementation analysis Gather the following implementation information for use when designing your workflow processes: v Determine the number of organizations and sites that exist for your enterprise. You create workflow processes at the system level. Find out if there are separate processes or subprocesses for different organizations or sites. v Find out if you use the Integration Framework to integrate with any external systems. v v v v
Determine if any Maximo product options have been purchased. Research the applications that your enterprise has implemented. Determine the types of records for which you use the software. Find out if the system has been configured to generate records, such as inventory reorder records, preventive maintenance work orders, and scheduled payment invoices.
v Determine if your implementation uses Start Centers that do not include the Workflow Inbox. If users cannot access the Inbox, you can design your workflow processes to send e-mail messages to notify users.
6
Advanced Workflow Components Implementation Guide
Process analysis Information you collect about your processes can be formatted into a flowchart. A flowchart can help you to identify reusable elements, the beginning and the end of record life cycles, and the parts of the life cycle that can be managed by a workflow process. You could diagram your business process on paper, on a blackboard, or using a graphics software program to create a flowchart. Writing or diagramming a business practice helps you to analyze it. It also provides you with a map of your process flows that you can use when you create a workflow process. Your goal is to produce a detailed diagram that shows all of the routes that a record can take through your enterprise during its life cycle. Your research must include the following information: v The names and roles of the people who interact with records during a process v The processes that are used to manage specific records v The records that enter the process, and where the records go when they exit the process v The records that are managed during a process v The length of time it takes for a record to go through a process v The parts of your current process that are working well and should be kept v The parts of your current process that are not working well and should be changed or removed As you document your business process, make note of trouble spots, such as undocumented procedures, or different ways to complete the same task. Address these issues and refine your business processes before you create and implement a workflow process.
Workflow processes and user responsibilities Workflow processes identify the people who create and who manage a record throughout its life cycle. Workflow processes also identify the types of records that are used. In workflow processes, assignments are made to roles that represent either a single user or a group of people. As you generate a list of persons associated with each process, consider whether you can create person groups for people with similar job responsibilities, levels of authority, and security clearances. To help you to identify the people, the roles, and the records that are involved in the workflow processes that you create, compile the following information: v Decide how people are going to be notified of workflow assignments. Users who are going to be assigned tasks must have user records. v Generate a list of the people who must be notified of the progress of a record. The product can send e-mail messages to notify specific users. It is more efficient to create person records for all individuals who receive notifications. v Identify the personnel who work on shifts. v Identify supervisors on person records for escalations and notifications. v Identify contract labor personnel if they are required to interact with a record in a workflow process. Identify which contract workers have both person records and labor records.
Chapter 3. Workflow design process
7
v Specify the level of security that applies to individuals in different roles in your enterprise. Decide which applications and which actions personnel in each security group are allowed to view. When you design your security groups and workflow processes, you must ensure that users in a particular role have the security permissions they need to perform their assigned tasks.
Elements of workflow processes You use workflow processes to create steps to guide records for your business processes. You use numerous elements when creating your workflow processes to achieve the business goals set out for your enterprise.
Person records You use the People application to create, to modify, to view, and to delete records for individuals. The People application stores information about individuals, such as users, laborers, asset owners, and supervisors who receive workflow notifications. A person record is a record for an individual whose name could appear as a text field value. Workflow assignments are made to roles. All roles resolve to a person, to a person group, or to an e-mail address. The name of a person is used as the text field value in the Reported By field or in the Affected Person field on a service request, in the Supervisor field on a labor record, or in a Ship To field or Bill To Attention field on a purchasing record. You must create a person record for any individual who will be assigned tasks as part of a workflow process. When you create records in the Labor application and in the Users application, you must create a person record. Person records might have to be created for other individuals who do not have records in the Labor application or in the Users application. Person records that you create for use as part of workflow processes should contain values in the following fields: Supervisor The person who oversees or manages the individual. This information is used for escalations. Primary E-mail The E-mail address where notifications are sent. Primary Calendar The work calendar that the individual follows. This information is used when determining assignments and escalations. Primary Shift The shift that the individual works. This information is used when determining assignments and escalations. Workflow E-mail Notification The circumstances when the individual should receive e-mail notifications for task assignments. The default value is PROCESS. Workflow Delegate The person identifier of the individual designated to receive assignments when the primary individual is unavailable for an extended period of time (for example, on vacation or on sick leave)
8
Advanced Workflow Components Implementation Guide
Delegate From and Delegate To The time period when workflow processes should route assignment to the delegate. If these fields are empty, all workflow assignments are routed to the delegate.
Person groups and workflow assignments You use the Person groups application to specify that a group member for a specific organization or site be used when making workflow assignments. Workflow assignments are made to roles. Different workers can perform the same role on different shifts. Creating person groups for roles such as "supervisor" or "safety engineer" simplifies a workflow process. Creating person groups also reduces the need for revisions as individuals move in and out of roles. Workflow assignments are based on entries in the person group role record. If the Broadcast check box is selected on the role record, the task is assigned to all members of the person group. If the check box has not been selected, the product goes through the following steps to determine the appropriate role for the task: v The product checks for a person record with appropriate entries in the Calendar and Shift fields for the assignment, verifying the group members in the order specified by the Sequence field. If no sequence values are specified, the assignment is made to the first group member with an appropriate entry in the Calendar and Shift fields. The search logic depends on whether the workflow process is for an application at the site, the organization, or the system level. – If the application is at the site level, the first check is for person records where the value in the Use for Site field matches the site of the record in the workflow process. The next check is for person records where the value in the Use for Organization field matches the organization of the record in the workflow process. The third check is for person records where there is no value in either the Use for Site field or the Use for Organization field. – If the application is at the organization level, the product checks for person records where the value in the Use for Organization field matches the organization of the record in the workflow process. The next check is for person records where there is no value in either the Use for Site field or the Use for Organization field. – If the application is at the system level, the product checks for person records where there is no value in either the Use for Site field or the Use for Organization field. v If there is no person whose Calendar and Shift entries match the assignment, the product checks for a person record who is listed in the Site Default field. (This field is optional; you can specify a single site default per site.) v If no site default is specified, the product checks for a person record who is checked in the Organization Default field. (This field is optional; you can specify only a single organization default per organization.) v If no organization default is specified, the Group Default person is assigned. By default, the first person added to a person group becomes the group default, but you can modify this setting.
Roles and role records You use the Roles application to create role records. A role is a function within a business. A role can represent a specific job title (such as a department manager), an assigned duty (such as a watch officer), a class file, and a data set. Chapter 3. Workflow design process
9
Workflow Inbox assignments and workflow notifications are always made to roles. All role records point to one or more person identifiers. Role records can also point to a table and column in the database that represent a person. When a role is encountered in a workflow process, it resolves the role to a person group or to an individual person record. You use roles when you create and configure the following workflow elements: v Communication templates (recipients) v Escalations v v v v v
Negative connection lines (notifications) Positive connection lines (notifications) Manual Input nodes (notifications) Task nodes (assignments and notifications) Wait nodes (notifications)
By using role records instead of person records for assignments and notifications, you can create generic workflow processes that require less maintenance as individuals move in and out of different roles within your company.
Communication templates You use the Communication Templates application to create and to manage templates that generate e-mail messages about the status of workflow records. When you create a communication template, you can specify the following information: v The business object that the template can be used for v The applications where the template can be used v v v v v
The address that the e-mail should be sent from The address that replies should be sent to The subject line of the message The body of the message One or more recipients of the message. You can send messages to roles, persons, person groups, and e-mail addresses, and you can specify whether each recipient should also receive a carbon copy (CC) or blind carbon copy (BCC) of the message.
v Documents to include as attachments when the message is generated You can use substitution variables when creating the subject line and body of your message. When an e-mail is generated using that template, it replaces the substitution variables from the template with the corresponding values from the record.
Substitution variables in communication templates A substitution variable is code that represents a column in the database related to the object specified in the Applies To field on the communication templates. When you use a substitution variable in the Subject or Message field and generate a notification, the variable is replaced with the database value for that column. You can use the Communication Templates application to modify communication templates without inactivating them. However, you cannot modify a communication template if it is in use on an escalation record or in an enabled or
10
Advanced Workflow Components Implementation Guide
active workflow process. If you try to modify a communication template that cannot be modified, an error message is displayed. You can click the Detail Menu button next to the Subject and Message fields to select a field from the tables and related tables for the object specified in the Applies To field on the communication template. When you type a substitution variable manually, you type a colon (:), followed by the database column name (for example, :WONUM). v If the column is from the main database table for the object, the format is a colon (:) and the column name (for example, :WONUM). v If the column is from a database table related to the main object, the format is a colon (:), one or more relationship names separated by periods (.), and then the column name (for example, :ASSET.STATUS). Be sure to include a space before and after each substitution variable to ensure that the generated text is formatted properly. For example, if you were creating a communication template to notify the system administrator to create a new user record, your message might be similar to the following message: Subject — New employee Message — :FIRSTNAME :LASTNAME was hired on :HIREDATE . Please create a user record for this individual and e-mail them their user name and password at :EMAIL.EMAILADDRESS.
When a communication template is used to generate a notification, it replaces the substitution variables with the corresponding values from the record that is generating the notification. A notification generated from the previous example might resemble the following notification: Subject — New employee Message — Julie Stickler was hired on 6/01/01. Please create a user record for this individual and e-mail them their user name and password at
[email protected].
Note: To find out the column name for any field, place the cursor in the field and press Alt+F1. You see the table and column name associated with the field. If you are including a substitution variable for a nonrequired field, phrase the message so that it still makes sense to the reader if the field is null.
Notifications You use the Workflow Designer or Workflow Designer (Advanced) application to create notifications. A notification is an email message that is generated by the progress of a record through a workflow process. The Workflow Designer or Workflow Designer (Advanced) application uses communication templates for notifications. You use the Communication Templates application to create and to manage the templates. When you create communication templates for workflow notifications, you specify roles as the recipients rather than persons or person groups. Many individuals come into contact with a record as it moves through its life cycle. Often these individuals need to know about the progress of a record. You can design your
Chapter 3. Workflow design process
11
workflow process to generate notifications as required by your business process. Notifications can be made through e-mail or through a pager, providing that your paging system supports e-mail. You can configure the following workflow components to generate notifications: v Escalations v Negative connection lines v Positive connection lines v Manual input nodes v Task nodes v Wait nodes You cannot modify a communication template in the Workflow Designer or Workflow Designer (Advanced) application. You must create separate templates for your notification requirements.
Escalations and action groups You use the Escalations application to create escalation records. An escalation is a mechanism for monitoring time-sensitive records. Escalations can take actions or send notifications when a record reaches a defined escalation point. Your Workflow administrator can specify that a task assignment has a time limit. If the assignment is not completed within the specified time limit, an escalation can be triggered for the record. Escalations help to get tasks completed on time and help to prevent work backlogs. Standard escalations do not exist. Your administrator creates custom escalation records that trigger a variety of actions and notifications. For example, an escalation might approve or cancel a record, or reassign a task assignment. An escalation might generate a reminder notification to the assignee regarding the task assignment, or send a notification to a supervisor that the assignee did not complete the assignment yet. Workflow uses escalations primarily with two objects: WFASSIGNMENT WFASSIGNMENT is an object associated with workflow task assignments. You can create escalations that monitor whether an assignee completes a task assignment within the specified time limit. If the task is not completed within the time limit, WFASSIGNMENT can trigger one or more actions. For example, by reassigning the task to a work group or by generating notifications to the supervisor. WFINSTANCE WFINSTANCE is an object associated with active instances of workflow processes. You can create escalations to monitor how long it takes a record to exit the control of a process. For example, if the process design includes one or more Wait nodes.
Action groups An action group is a type of action record that includes multiple actions and a sequence to use when performing the actions. Escalations are always associated with action groups.
12
Advanced Workflow Components Implementation Guide
You can associate an action group with an escalation in either of the following ways: v You can create action groups using the Actions application and then click Detail Menu next to the Action Group field on the Actions sub tab to associate the action group with the escalation. v You can create action groups in the Escalations application by clicking New Row on the Actions sub tab. When you create an action group in the Escalations application, the action group receives a generated name. The actions receive assigned sequence numbers. The sequence numbers are based on the order in which you add the actions to the group.
Escalation points An escalation point defines the attributes of a record that trigger an action. You can define one or more escalation points for an escalation and specify one or more actions and notifications for each escalation point. You can create the following categories of escalation points: v Elapsed time since a past event — Compares the current date and time to the specified field that represents an event in the past. You can select from a list of DATETYPE fields on the record (for example, a Start Date on a workflow assignment, an Actual Start date on a work order, or a Status Date on a record that includes status). v Time until a future event — Compares the current date and time to the specified field that represents an event in the future (for example, a Renewal Date on a contract, a Due Date on an invoice, or a Target Finish date on a work order). v Condition — Condition without a time measurement. If you want to trigger the actions and notifications of an escalation based on a condition that does not have a time measurement, you can specify the condition in the Escalation Point Condition field. You also can use the Condition field to specify that the escalation point should be applied to only the subset of records specified by the condition
Record routing Activating a workflow process indicates that the process is ready to have records routed through it. Before you activate a workflow, consider whether you want records to be routed into a process manually or automatically. A record can enter a workflow process by any of the following methods: v When you click the Route button on the toolbar. v When you select the Route Workflow action from the Select Action menu. v When you create and save a record, the record is routed into the workflow process. You can set one process per object to initiate automatically. v You can set workflow options in the Organizations application. These options specify that generated records should be routed into a particular workflow process. You can specify a workflow process to manage the following records: – Work orders that are generated from a preventive maintenance record – Purchase requisitions that are generated via the inventory reorder process – Purchase orders that are generated via the inventory reorder process – Work orders that are generated when a purchase order for a rotating asset is approved Chapter 3. Workflow design process
13
v A record can be routed from one workflow process to another in any of the following ways: – By means of an interaction node – By means of a subprocess node – By means of an WFINITIATE action specified on a connection line leaving a node v A record can be automatically routed into a process by means of an escalation action. v When creating a workflow process with the Workflow launcher application, a record is automatically created and routed into the process.
Synonym statuses You can create synonym statuses if your business processes for record approvals or for status changes involve multiple steps for each approval or status change. For example, your business process might call for three different people to review a record before it is considered approved. There is a single status for waiting for approval and a single status for approved. You can create synonym statuses of waiting for approval that represent each of the preliminary approvals before the record is considered approved. You use the Domains application to add synonym values to a value list. For more information about creating synonym statuses, see the Domains Help for this product.
Examples of workflow processes You can use the Workflow application to manage records used in a variety of business processes. The examples provided are basic because of the limited number of nodes that can be displayed. The examples illustrate some of the capabilities of the Workflow application and should not be used in a production environment. The product demonstration database includes workflow processes that display simple processes.
Example of a purchase requisition business process You can create a workflow process to handle a purchase requisition. When you create a purchase requisition, your supervisor must approve it. When an approved purchase requisition reaches the purchasing department, a purchasing agent evaluates the record and then performs one of the following steps: v Rejects the requisition v Creates a request for quotation to receive bids for the purchase v Creates a purchase order from the requisition The record then exits the workflow process for the purchase requisition. For example, you can create a requisition such that if the total is less than $500, the requisition is routed to the purchasing department. If the requisition total exceeds $500, the requisition requires the approval of the department manager before it can be routed to the purchasing department. If the requisition total exceeds $1,000, the requisition requires the approval of a vice president before it can be routed to the
14
Advanced Workflow Components Implementation Guide
purchasing department. If the requisition total exceeds $5,000, the requisition requires the approval of the chief financial officer before it can be routed to the purchasing department. The diagram that follows illustrates one way that you might map the preceding scenario. The nodes and the connection lines in this example are arranged so that they are easy to see at a glance, but they can be arranged differently. You could add or remove stop nodes, and the workflow process would still illustrate the same business process. Figure 1. Example of a purchase requisition workflow process
Example of a service request business process A workflow process can be created to handle service requests. An enterprise uses the software for service desk functions. The enterprise has designed a workflow process that guides a service desk agent through the initial steps of the record management process. When a service desk agent takes an incoming telephone call, the agent creates a service request ticket to record the interaction. The enterprise has configured the database to require the agent to record the caller's name and telephone number. The agent also must type a short description of the service request. For example, a Chapter 3. Workflow design process
15
request for information, maintenance, and a classification for the service request. Depending on the type of service request, the agent also might type information about the asset or the location. When the agent saves the service request ticket, the product starts the service request workflow process. The Manual Input window opens with the following options: v I must type additional information regarding this service request. v I must type information about tickets or work orders related to this service request. v I must make an entry in the Work Log or Communications Log. v I have completed data entry for this ticket. If the agent requests to type more information, either the Service Request tab, the Related Records tab, or the Log tab display, depending on which option the agent selected. When the agent indicates the completion of data entry for a service request, the product evaluates the data on the record. If the agent has not provided asset or location data, the Manual Input window displays the following options: v v v v
Close ticket - informational call Close ticket - unauthorized caller Close ticket - misdirected call Take no action
If an asset or a location is specified on the record, the Manual Input window opens with the following options: v Take Ownership of ticket (Take Ownership action) v Assign Ownership of ticket (Assign Ownership action) v Create Incident record (Create Incident action) v Create Problem record (Create Problem action) v Create Change work order for an IT asset. (Create Change action) v Create Work Order for a non-IT asset. (Create Work Order action) v Take no action on this ticket. The following diagram illustrates one way that the preceding scenario might be mapped. Figure 2. Sample Service Request Workflow
16
Advanced Workflow Components Implementation Guide
Example of a work order business process A workflow process can be created to handle a work order. An enterprise has configured the system to route all new preventive maintenance work orders that are generated through the preventive maintenance work order generation cron task into a workflow process. The first step is to evaluate the priority of the work order, as follows: v If the preventive maintenance work order is high priority or has a null value in the Priority field, it is routed to a work planner for immediate review and approval. v If the preventive maintenance work order has a low priority, it is routed to a Stop node and exits the process. All preventive maintenance work orders then go through a financial approval process. Work orders with an estimated total cost of less than $500 are automatically approved. The maintenance supervisor must review and approve work orders with an estimated total cost of more than $500. After a work order passes the financial approval process, it must be assigned to a work group, as follows:
Chapter 3. Workflow design process
17
v If the preventive maintenance work order is for a vehicle, the system assigns it to the fleet maintenance group. v If the preventive maintenance work order is for a building or location, the system assigns it to the facilities maintenance group. v The system assigns all other preventive maintenance work orders to the maintenance group. After the system assigns the work order to a maintenance group, the work order exits the workflow process. The following diagram illustrates one way that you might map the preceding scenario. Figure 3. Example of a preventive maintenance work order workflow
18
Advanced Workflow Components Implementation Guide
Chapter 4. Configuring for Workflow The Workflow Designer and Workflow Designer (Advanced) applications require minimal configuration before you can create Workflow processes.
Configuration prerequisites If you design and create Workflow processes, you must be familiar with the following tools, processes, and concepts: v The business processes for the enterprise v Applications that are involved in the workflow process, such as Asset Management applications, Change Management applications, and Provisioning applications. v Databases and data relationships v Structured query language (SQL) statements v SQL syntax required by your database Additionally, the Workflow Designer and Workflow Designer (Advanced) applications require a Java Virtual Machine (JVM) on the client workstation. If you do not have a JVM installed, the product cannot display the Workflow canvas.
Eastern Asian languages For information about configuring the Workflow canvas to properly display Chinese and other Eastern Asian languages, see the System Administrator Guide for this product.
Configuring administrator e-mail notifications During the installation process, you type an email address for the Workflow administrator. The administrator will receive system messages about errors. Record the e-mail address for the Workflow administrator in the maximo.properties file. This file is located in the following directory:\applications\maximo\properties where is the directory into which you installed the product. 1. Using a text editor, open the maximo.properties file . 2. In the Workflow Related Properties section, locate the property named mxe.workflow.admin=. 3. Type or modify the e-mail address. For example:
[email protected] 4. Save your changes.
Security permissions for workflow processes If you design workflow processes, you must belong to a security group with security permissions.
© Copyright IBM Corp. 2007, 2010
19
Users are not automatically granted access to workflow actions. An administrator must use the Security Groups application to grant users security permissions to workflow actions. The workflow actions appear in the Security Groups application when you add workflow support to an application. You can grant users access to actions before you activate a process. Additionally, you require security permissions for the following applications: v Actions v Automation Scripts v v v v v v v
Communication Templates Escalations Inbox/Assignments Setup People Person Groups Roles Workflow Administration
v Workflow Administration (Advanced) v v v v
Workflow Workflow Workflow Workflow
Designer Designer (Advanced) Inbox (portlet) Launcher
If you or your group are responsible for testing workflow processes, you must have security permissions for other applications, depending on the processes that are being tested.
20
Advanced Workflow Components Implementation Guide
Chapter 5. Working with Actions An action is an event that is triggered when a record is found that meets the conditions defined by an escalation point, service level agreement, or Workflow process. Use the Actions application to create and manage actions and action groups that can be used with Workflow processes and to enable Workflow automation. Actions and action groups can also be used with escalations and service level agreements (SLA). Workflow automation is made possible by leveraging the capabilities of the Action application. You can create actions to: v Initiate an application action. v Change the status of a record. v Execute a custom class. v Execute a custom script. v Execute a specified executable program. v Execute a group of actions v Set the value of a field on a record.
Actions and Workflow Workflow processes use actions to move records through a process and to trigger events, such as status changes. You define actions in the Actions application and then you reuse them in the Workflow processes that you create. You use actions when you create and configure the following Workflow elements: v Escalations v Negative connection lines v Positive connection lines v Interaction nodes v Manual input nodes
Actions and escalations An escalation is a mechanism for monitoring time-sensitive records automatically, which can take actions or send notifications when a record reaches a defined escalation point. You create the actions that are associated with an escalation record in the Actions application.
Action types When you create an action record, you specify the action type to help determine what kind of action to take when the action is encountered in a process. An action can be one of the following types: © Copyright IBM Corp. 2007, 2010
21
Application Action Used to specify that an application action be initiated. For this type of action, there must be values in the Object and Value fields. When creating an Application Action, you can specify one of the following actions if it is available for the specified object: v APPLYSLA — Apply the specified service level agreement. v Create Change — Create a change work order. v Create Incident — Create an incident ticket. v Create Problem — Create a problem ticket. v Create Release — Create a release work order. Create SR — Create a service request ticket. Create WO — Create a work order. APPLYPS — Apply a Customer agreement APPLYRP — Apply a Response Plan WFACCEPT — Workflow auto-accept. Accepts the record and routes it to the positive path in the workflow process. v WFESCALATE — Escalate the record in the workflow process and reassigns the assignment to its escalation role. v WFINITIATE — Initiate a workflow process. This option requires a value in the Parameter/Attribute field. v WFREJECT — Workflow auto-reject. Rejects the record and routes it to the negative path in the workflow process. v v v v v
Change Status Used to specify that the status of a record will change. There must be a value in the Object field and a status in the Value field for this type of action. Custom Class Used to specify that a custom class file should run. There must be a value in the Object field and the name and path of a class file in the Value field for this type of action. Custom Script Used to specify that a custom Automation Script should be run. When an action type of Custom Script is selected, the application link associated with the Value attribute provides a link to the Automation Script application, allowing the user to select an existing script, or create a new one. Command Line Executable Used to specify that a program on the server should run. For this type of action, the name of a program file must be in the Value field. Action Group Used to specify that the system should run the sequence of actions that you specify in the Members table window. Set Value Used to specify that the system should set the value of a specified field. For this type of action, values are required in the Object, Value, and Parameter/Attribute fields.
22
Advanced Workflow Components Implementation Guide
Custom actions Actions can be defined that invoke a custom implementation. A custom implementation can take one of two forms: v Custom java class v Custom script Both forms of custom implementation can access MBO data (and related data), as well as any application actions associated with the MBO. When an action type of Custom Class is specified, the name and path of a class file must be specified in the Value field. When an action type of Custom Script is specified, the application link associated with the Value attribute provides a link to the Automation Script application, allowing the user to select an existing Jython script, or create a new one. Related concepts “Automation Scripts application” on page 32 The Automation Scripts application allows you to create and manage a library of Jython scripts.
Creating action records You use the Actions application to create action records that can be used as part of an escalation, a service level agreement, or a workflow process. You can create different types of actions. 1. On the toolbar, click New Action. 2. In the Action Description field, type a description, or click Long Description to type additional information. 3. In the Type field, select a value from the menu of action types. The value in the Type field determines which fields on the action record you can edit, which fields are required, and the values that can be entered in those fields. 4. In the Value field, type a value that corresponds with the Action type you have selected. v If you are creating an Application Action type of action, click Detail Menu to select from the list of available actions. For this type of action, a value is required in the Object field. v If you are creating a Change Status type of action, type a status for the specified object. For this type of action, a value is required in the Object field. v If you are creating a Custom Class type of action, type the name and path of a class file in the Maximo directory. v If you are creating a Custom Script action, click Detail Menu to select from the list of available Automation Scripts, or go to the Automation Scripts application to create a new script. v If you are creating an Command Line Executable type of action, type the name and path of an executable file that exists on the server. v If you are creating a Action Group type of action, the Value field is read-only. v If you are creating a Set Value type of action, type the value to which you want the field set. You can click Detail Menu to use the SQL Expression Chapter 5. Working with Actions
23
Builder. For this type of action, values are required in the Object and Parameter/Attribute fields. If the value is a string it needs to be enclosed in single quotes. 5. Optional: In the Classification field, select a classification for the action. This is useful when selecting an action from a large library of actions in the Workflow Designer (Advanced) application. 6. If you are creating an Application Action, Change Status, or Set Value type of action, specify a value in the Object field. Specifying an Object is optional for Action Group, Custom Script, Custom Class, and Command Line Executable type actions. 7. If you are creating a Set Value type of action, specify a value in the Parameter/Attribute field. The Parameter/Attribute field contains a relationship tree containing relationships associated with the main object. 8. Optional: If you are creating a Change Status action, you can use the Memo field to add remarks regarding the status change. 9. Optional: If you are creating an action specifically for use with escalations or workflow, specify a value in the Accessible From field. Click Detail Menu to select an option and retrieve a value. 10. Click Save Action.
Creating action groups You can create a Action Group type action containing two or more action records, and specify a sequence to use when the actions in the group are activated. The following rules apply to action groups: v If you specify an object for the group, all members of the action group must be for the same object. v Group type actions cannot be members of an action group. When you create a Action Group action, the Value field, the Parameter/Attribute field, and the Memo field are all read-only. 1. On the toolbar of the Actions application, click New Action. If the Action field is empty, type a name for the role. 2. In the Action Description field, type a description, or click Long Description to type additional information. 3. In the Type field, select Action Group from the menu of action types. 4. Optional: In the Object field, type a value. 5. Optional: In the Classification field, select a classification for the action. This is useful when selecting an action from a large library of actions in the Workflow Designer (Advanced) application. 6. For actions created specifically for use with escalations or workflow, specify a value for the Accessible From field. Click Detail Menu to select an option and retrieve a value. 7. Click Select Members. You see a list of actions that exist for the specified object. If you do not specify an object, you see a list of action records that do not have a specified object. a. To select an action, check the Select Row check box. You can select more than one action. To cancel a selection, clear the check box. b. Click OK. Your selections are copied to the Members table window and sequence numbers are assigned to each action.
24
Advanced Workflow Components Implementation Guide
8. Optional: Modify the Sequence field to change the order in which the actions are initiated. 9. Click Save Action.
Creating actions specific to Workflow You can create actions that are associated with a Workflow process. Workflow processes use actions to move records through a process and to trigger events, such as status changes. You define actions once, and then reuse the actions when you create multiple Workflow processes. You use actions when you create and configure the following Workflow processes: escalations, negative connection lines, and positive connection lines, interaction nodes, and manual input nodes. 1. On the toolbar of the Actions application, click New Action. If the Action field is empty, type a name for the role. 2. Optional: In the Action Description field, type a description, or click Long Description to type additional information. 3. Optional: In the Object field, type a value. 4. Optional: In the Classification field, select a classification for the action. This is useful when selecting an action from a large library of actions in the Workflow Designer (Advanced) application. 5. In the Type field, select the type of action that you are creating. 6. In the Accessible From field, click Detail Menu to select Workflow. 7. Save your changes.
Creating actions specific to escalations 1. In the Actions application, click New Action. 2. Optional: Provide a description of the action. 3. 4. 5. 6.
Optional: Specify a value for object. Specify the type of action that you are creating. In the Accessible From field, select Escalation. Save your changes.
Duplicating actions Use the Duplicate Action option from the Select Action menu in the Actions application to copy an existing action record. You can duplicate an action if, for example, you wanted to create the same application action for two different objects. Once you duplicate an action record, you can then modify it as needed. 1. Go to System Configuration → Platform Configuration → Actions application, and display the record that you want to duplicate. 2. Click Select Action → Duplicate Action.
Deleting actions You can delete an action record if it is no longer needed and if it is not being used by specific records or elements.
Chapter 5. Working with Actions
25
You cannot delete an action record if it is being used with any of the following records or workflow elements: v Escalations v Negative connection lines v Positive connection lines v Interaction nodes v Manual input nodes v Service level agreements 1. Go to System Configuration → Platform Configuration → Actions application, and display the record that you want to delete. 2. Click Select Action → Delete Action.
View Action Log To see all of the log records that have been produced by invocations of the action, use the View Action Log option from the Select Action menu. Logging for actions must be explicitly enabled. In the System Properties application: v To enable logging for all actions of Type=Custom Class, set the value for the system property rba.log.enableCustomActionLogging to 1. v To enable logging for all actions of Type=Custom Script, set the value for the system property rba.log.enableCustomScriptLogging to 1. 1. Go to System Configuration → Platform Configuration → Actions application, and select the record for which you want to see the action log records. 2. Click Select Action → View Action Log.
Add or modify an image In the Actions application you can associate an image with an action. The image is displayed on positive or negative connectors that reference the action on the Workflow Designer (Advanced) canvas. 1. From the Select Action menu in the Actions application, click Add/Modify Image. The Add/Modify Image dialog is displayed. 2. Perform one of the following steps: v To delete the current image, click Delete. v To modify or add a new image, click Browse and select the file you want to use. Note: All images must be .jpg or .gif files. 3. Click OK. The image will be displayed where the action is used on connections lines in your Workflow process. Actions for which an image is not defined will display with the default action icon
.
Synchronize parameters For actions of type Custom Script, you can synchronize information that is configured on the Parameter Mappings tab in the Actions application with changes that have been made to the metadata in an automation script.
26
Advanced Workflow Components Implementation Guide
If the Synchronized flag is not set, use the Synchronize Parameters option from the Select Action menu to resynchronize, at which time you can update the configuration on the Parameter Mappings tab in the Actions application. The Synchronized flag is shown on the List tab and on the Parameter Mappings tab. Possible status values are NEW, DELETE, MODIFIED, and UNMODIFIED. A parameter is MODIFIED only if the MBO Type, Method Type, or Attribute Data Type values have changed in the metadata. The Relationship and Attribute values will not be overwritten, even if they have been modified in the metadata. 1. Go to System Configuration → Platform Configuration → Actions application, and display the record that you want to resynchronize and update. 2. Click Select Action → Synchronize Parameters. The table displays the changes to the Input Parameters and Output Parameters tables that are made if the changes in the metadata are accepted. 3. Click OK to apply the changes to the action and to mark the action as synchronized. 4. Press Cancel to leave the action parameters unchanged and to leave the action unsynchronized with the metadata. Related concepts “Convenience routines for data mappings” on page 87 Convenience routines for obtaining Input parameters and setting Output parameters are used by the action implementation to shield it from the location of the Input and Output parameters. Related reference “Parameter Mappings XML” on page 85 XML can be embedded in the source code to define input and output parameters for use with the parameter mapping function supported with actions.
Configurable parameter mapping The ability to configure from where an action implementation gets its input parameters (and to where it stores its output parameters) helps facilitate the development of libraries of domain-oriented automation actions that can be applied in different scenarios, and which work with different object types (for example, workorders and tickets). This separation of business logic from the marshalling of input and output parameters, in the context of Workflow automation, makes it possible to plug the same action implementation into different workflows, without necessarily being constrained by the type of object processed by the workflow. For example, if an action requires three input parameters, and the three elements of data are available in a Change workorder as well as a Problem ticket, the same action implementation should be applicable to workflows designed to work with Change workorders as well as workflows designed to work with Problem tickets. This is also true for input parameters found in MBOs related to the workflow's primary object (for example, Change or Problem). The configurable parameter mapping approach for Action parameters has three elements: v Action implementations in the form of automation scripts define their input and output parameters as a form of metadata that is imbedded in the code. A simple XML representation is used for this metadata. Chapter 5. Working with Actions
27
v Convenience routines are available for automation scripts to 'get' input parameters from the primary MBO and related MBOs and to 'put' (or set) output parameters into attributes associated with primary MBO and related MBOs. These convenience routines rely on the parameter mapping configuration (defined in the action) to determine the relationship path to the parameters, for both inputs and outputs. v The Action application supports the configuration of the input and output parameter mappings for a given action. When an automation script action implementation is to be used in a new context where inputs and outputs must be marshalled from different locations, a new action is defined with possibly a different configuration for the parameter mappings. When defining a new action, and the reference to the custom script is specified, the metadata in the action implementation is used to pre-populate the rows in the Input and Output Parameter tables on the Parameter Mappings tab. The designer of the action can then complete the configuration of the Relationship and Attribute fields for each parameter defined in the Input and Output Parameter tables. Related concepts “Convenience routines for data mappings” on page 87 Convenience routines for obtaining Input parameters and setting Output parameters are used by the action implementation to shield it from the location of the Input and Output parameters. Related reference “Parameter Mappings XML” on page 85 XML can be embedded in the source code to define input and output parameters for use with the parameter mapping function supported with actions.
Parameter mappings in the Action application While the specific input and output parameters used by an action implementation are defined in the source code metadata, the mapping of these parameters to specific MBO attributes or MBO sets is specified in the action definition. If an Action is associated with an script that contains metadata, then the 'Parameter Mappings' tab will be displayed in the Action application.
Input parameter mappings For each input parameter defined in the metadata, a row is created in the Input Parameters table on the Parameter Mappings tab. For each row, the following read-only attributes are pre-populated when the automation script is selected: v Name – name of the input parameter. This is a required value, and will always be present. v Description – description of the input parameter. This is an optional value. v MBO Type – an optional value that specifies the type of MBO that must be defined in the last position in the user-specified Relationship field. When used, this places a restriction on the type of MBO that can be used as input to the action. For example, if MBO Type is set to "CI", then the following values in the Relationship field would be considered valid, or invalid: – WOCHANGE.CI (valid) – WOCHANGE.ASSET (invalid) v Attribute Data Type – A required value that specifies the expected data type of the attribute (or array of attributes) that is expected by the action. Attribute Type is applicable when Method Type is "Attribute" or "AttributeArray". For example,
28
Advanced Workflow Components Implementation Guide
if Method Type=Attribute, and Attribute Type=INTEGER, then the attribute entered in the Attribute field must be of type INTEGER. v Method Type – A required value that specifies how the input data is being accessed by the action: – Attribute – The action is expecting a single attribute as input. – AttributeArray – The action is expecting an array of one or more attributes as input. – MBOSet – The action is expecting a MBO set as input. For each input parameter defined in the metadata, the following writeable attributes are available for configuring the "path" to each required input parameter. v Relationship – used to specify the relationship path to the input MBO, or MBO Set. – If the input MBO is the primary MBO that is associated with the action (or the workflow), then this field should be left blank. – If the input MBO is reached by a sequence of one or more relationships from the primary MBO, then a value must be specified in Relationship. – The "target", or rightmost MBO specified in the Relationship value, must match the MBO Type specification, if defined. – The relationship value can be entered into the Relationship field, or click on the Select Value icon after the Relationship field to use a the relationship navigation dialog to define the relationship path. v Attribute – used to specify the name of the attribute that is input to the action. – The specified attribute must be an attribute supported by the target MBO specified in the Relationship field. If the Relationship field is blank, the primary input MBO for the action is assumed, and the attribute must be supported by that MBO. – If Method Type is Attribute or Attribute Array, a value is required in this field. – If Method Type is MBOSet, then a value should not be specified in this field. – The data type of an attribute specified in this field must match the value specified in the Attribute Type field. – The attribute value can be entered into the Attribute field, or click on the Select Value icon after the Attribute field to use the attribute navigation dialog to select the attribute. The set of attributes displayed on the dialog is scoped to the attributes supported by the target MBO defined in the Relationship field v Override Value – used to supply a specific value to be returned as input to the action. At run-time, values specified in the Relationship and Attribute fields are ignored, and the value specified in Attribute Override is used as the input value. This field is only displayed if Attribute Data Type is UPPER, ALN, LOWER, INTEGER or SMALLINT. Clear this field to revert to use Relationship and Attribute. Note: When the input and output parameter tables are populated for an action, the values entered for Relationship and Attribute must pass validation before you can save the action.
Examples The following examples describe different scenarios and corresponding values to use for Relationship and Attribute. Chapter 5. Working with Actions
29
1. The primary MBO is WOCHANGE and the input attribute is CINUM: v Relationship=null v Attribute=CINUM 2. The primary MBO is WOCHANGE and the input attribute is the Description attribute associated with the Job Plan defined on the WOCHANGE: v Relationship=JOBPLAN v Attribute=DESCRIPTION 3. The primary MBO is WOCHANGE and the input consists of an array of OMPGUIDs that are associated with the set of CIs defined in the workorder: v Relationship=MULTIASSETLOCCI.CI.ACTUALCI v Attribute=GUID 4. The primary MBO is WOCHANGE and the input consists of a MBO Set of the CIs defined on the workorder: v Relationship=MULTIASSETLOCCI.CI v Attribute=null 5. The primary MBO is WOCHANGE and the input consists of a MBO Set of the specification attributes associated with the workorder: v Relationship=WORKORDERSPEC v Attribute=null The use of specification attributes as a way to configure additional attributes for MBOs is very convenient. Specification attributes are limited to three data types (alphanumeric, numeric and table domain). You can also define a filter in the path definition to identify a specification attribute, as shown in the following examples: 1. The primary MBO is WOCHANGE and the input consists of a MBO Set of the specification attributes associated with the workorder, where the name of the specification attribute is "capacity". Since the implementation for a specification attribute does not allow duplicates with the same ASSETATTRID for a given object, the MBO Set will contain 0 or 1 objects. v Relationship=WORKORDERSPEC[ASSETATTRID='CAPACITY'] v Attribute=null 2. The primary MBO is WOCHANGE and the input consists of an array of objects, the values obtained from the numvalue attribute associated with the filtered MBO set. Since the implementation for specification attributes does not allow duplicates with the same ASSETATTRID for a given object, an array will be returned with 0 or 1 objects: v Relationship=WORKORDERSPEC[ASSETATTRID='CAPACITY'] v Attribute=NUMVALUE 3. The primary MBO is WOCHANGE and the input consists of a MBO Set of the CIs where CINUM = the value of the CINUM attribute in the workorder: v Relationship=MULTIASSETLOCCI[CINUM=:cinum] v Attribute=null 4. The primary MBO is WOCHANGE and the input consists of a MBO Set of the CIs located in conference room 'conf200': v Relationship=MULTIASSETLOCCI[LOCATION='CONF200'] v Attribute=null
30
Advanced Workflow Components Implementation Guide
5. The primary MBO is WOCHANGE and the input consists of an array of objects containing CINUM values, filtered by the related MULTIASSETLOCCI MBOs where LOCATION='conf200' and further filtered by the related CI MBOs where the physical location is 'PITTSBURGH': - Relationship= MULTIASSETLOCCI[LOCATION='conf200'].CI[CILOCATION='PITTSBURGH'] - Attribute=CINUM
Output parameter mappings For each Output Parameter mapping, a single attribute can be defined. For each output parameter defined in the metadata, a row is created in the Output Parameters table on the Parameter Mappings tab. MBO Sets and arrays cannot be defined as Output Parameters. For each row, the following read-only attributes are pre-populated when the automation script is selected: v Name – name of the output parameter. This is a required value, and will always be present. v Description – description of the output parameter. This is an optional value. v MBO Type – an optional value that specifies the type of MBO that must be defined in the last position in the user-specified Relationship field. When used, this places a restriction on the type of MBO that can be used as output to the action. For example, if MBO Type is set to "CI", then the following values in the Relationship field would be considered valid, or invalid: – WOCHANGE.CI (valid) – WOCHANGE.ASSET (invalid) v Attribute Data Type – A required value that specifies the expected data type of the attribute that is set as an output by the action. Attribute Data Type is always applicable for output parameters, since the only supported Method Type for output is Attribute. For example, if Attribute Data Type=INTEGER, then the Attribute entered in the Attribute field must be of type INTEGER. For each output parameter defined in the metadata, the following writeable attributes are available for configuring the "path" to each output parameter. v Relationship – used to specify the relationship path to the MBO with the output attribute – If the output MBO is the primary MBO that is associated with the action (or the workflow), then this field should be left blank. – If the output MBO is reached by a sequence of one or more relationships from the primary MBO, then a value must be specified in Relationship. – The "target", or rightmost MBO specified in the Relationship value, must match the MBO Type specification, if defined. – The relationship value can be entered into the Relationship field, or click on the Select Value icon after the Relationship field to use the relationship navigation dialog to define the relationship path. v Attribute – used to specify the name of the attribute that is output from the action. – The specified attribute must be an attribute supported by the target MBO specified in the Relationship field. – A value is always required in the Attribute field, since Method Type for output parameters is limited to Attribute.
Chapter 5. Working with Actions
31
– The data type of an attribute specified in this field must match the value specified in the Attribute Data Type field. – The attribute value can be entered into the Attribute field, or click on the Select Value icon after the Attribute field to use the attribute navigation dialog to select the attribute. The set of attributes displayed on the dialog is scoped to the attributes supported by the target MBO defined in the Relationship field Note: When the input and output parameter tables are populated for an action, the values entered for Relationship and Attribute must pass validation before you can save the action.
Examples The following examples describe different scenarios and corresponding values to use for Relationship and Attribute. 1. The primary MBO is WOCHANGE and the output parameter sets a value in CINUM: v Relationship=null v Attribute=CINUM 2. The primary MBO is WOCHANGE and the output parameter sets a numeric value in the numvalue attribute associated with the filtered WORKORDERSPEC MBO Set: v Relationship=WORKORDERSPEC[ASSETATTRID='capacity'] v Attribute=NUMVALUE
Automation Scripts application The Automation Scripts application allows you to create and manage a library of Jython scripts. These scripts can be used to: v Create actions of Type=Custom Script, used anywhere a custom action can be used (for example, workflows, escalations, and so on). v Validate user input on Service Catalog Offerings application dialogs using Jython scripts. Parameter mapping metadata can be embedded in the script source, facilitating the development of re-usable actions, that can be configured for use in different object contexts (for example, workorders, tickets). The Actions tab in the Automation Scripts application provides a list of all actions that reference a particular script. This is useful when the script or its metadata is updated, thereby requiring actions that reference that script to be reconfigured.
32
Advanced Workflow Components Implementation Guide
Related concepts “Parameter metadata” on page 81 Parameter metadata embedded in a Jython script is used to define the inputs and outputs required by the implementation. “Convenience routines for data mappings” on page 87 Convenience routines for obtaining Input parameters and setting Output parameters are used by the action implementation to shield it from the location of the Input and Output parameters. Validation using Jython scripts You can use Jython scripts to validate attributes, offerings and carts in the Service Catalog. Use the Script Management application to manage the scripts. Related tasks “Synchronize parameters” on page 26 For actions of type Custom Script, you can synchronize information that is configured on the Parameter Mappings tab in the Actions application with changes that have been made to the metadata in an automation script.
Chapter 5. Working with Actions
33
34
Advanced Workflow Components Implementation Guide
Chapter 6. Workflow Designer and Workflow Designer (Advanced) You use the Workflow Designer or Workflow Designer (Advanced) application to create workflow processes that reflect your business processes. A workflow process defines the actions and notifications that can occur at different points in a business process.
Creating workflow processes A workflow process consists of the header information for the record, the nodes, the connection lines, and the properties specified for the nodes and the connection lines. 1. On the toolbar of the Workflow Designer or Workflow Designer (Advanced) application, click New Process. 2. In the Process field, type a name for the process. 3. Optional: Type a description. 4. In the Object field, type a value or click Select Value and select an object. 5. Click Save Process. You are now ready to use the canvas to add nodes and connection lines and to configure the properties of each of the elements of the process. Note: The Workflow Designer (Advanced) applet stays synchronized with the Maximo server. If there is any question about the state of the workflow, save the workflow to re-synchronize the workflow with the Maximo server.
Adding nodes and connection lines to the canvas You use the Workflow Designer or Workflow Designer (Advanced) application to create a workflow process by inserting nodes and connection lines on the Workflow canvas. Select one of the following options to enable editing on a workflow: Options
Step
To create a workflow process
Click New Process.
To configure a process that is enabled and activated
Select the process you want to revise and click Create Process Revision.
Using Workflow Designer application 1. On the Workflow Designer application toolbar, select Move/Add Nodes. 2. Drag a node onto the canvas. 3. To edit the properties of the node, double click the node, and edit the properties in the Node Properties window. 4. Repeat steps 2 and 3 to place other types of nodes onto the canvas. 5. To reposition nodes, drag the node you want to move. 6. On the Workflow Designer toolbar, select one of the following connection tools to create connection lines between nodes: © Copyright IBM Corp. 2007, 2010
35
a. Click Connect Nodes to add a positive connection line. b. Click Connect Nodes with a Negative Action to add a negative connection line. 7. Click a node and drag the line to another node. Lines must travel from one node to another node. The lines indicate the path for records to follow in the workflow process. The type of lines and the number of lines you can draw from each node varies depending on the type of node. 8. Click Save Process. After adding nodes and connection lines, the next step is to validate the process to ensure its structural integrity.
Using Workflow Designer (Advanced) application 1. On the Workflow Designer (Advanced) application toolbar, click the toolbar button for the node you want to add. 2. Click the location on the canvas where you want to place the node. 3. To edit the properties of the node, double click the node, and edit the properties in the Properties window, or right-click on the node and select Properties. 4. Repeat steps 2 and 3 to place other types of nodes onto the canvas. 5. To reposition nodes, drag the node you want to move to its new location. 6. On the Workflow Designer (Advanced) toolbar, select one of the following connection tools to create connection lines between nodes: a. Click the Positive Connection toolbar button connection line. b. Click the Negative Connection toolbar button connection line.
to add a positive
to add a negative
The positive and negative connection buttons are 'sticky'. You can continue to connect nodes together, until you click a different toolbar button. You can click the connection toolbar button again to release the 'sticky' behavior and return to the selection tool. 7. Click the source node to start the connection, then click the target node to finish the connection, and draw the connection line between the two nodes. Lines must travel from one node to another node. The lines indicate the path for records to follow in the workflow process. The type of lines and the number of lines you can draw from each node varies depending on the type of node. 8. Click Save Process. After adding nodes and connection lines, the next step is to validate the process to ensure its structural integrity.
Designing workflows with Workflow Designer canvas Using the Workflow Designer canvas you get a graphical view of a Workflow process that lets you see the process elements and how they are connected. The Workflow Designer application Canvas tab provides the tools and work space to create, view, and modify Workflow processes. Use the Workflow Designer canvas to drag and drop process nodes and add connection lines onto the canvas. The toolbar buttons provide visual indications of
36
Advanced Workflow Components Implementation Guide
workflow application support and workflow process control. You use these icons to route workflow assignments and to complete workflow assignments.
Workflow Designer toolbar The Workflow Designer application toolbar buttons provide visual indications of workflow application support and workflow process control. You use these icons to route workflow assignments and to complete workflow assignments.
Route buttons When you add workflow support to an application, a Route button is added to the application toolbar. Two icons exist for the Route toolbar button, to indicate whether a record is being used in a workflow process. You can customize the Route buttons. If multiple processes exist for an application, you can create different buttons for each process. Icon
File name
Function
nav_icon_route.gif
Indicates that the application supports workflow. You can click the icon to route the current record into a process.
nav_icon_route_active.gif
Indicates that the current record is under the control of one or more workflow processes. You can click this toolbar button to perform one of the following actions: v Complete a workflow assignment. v Route the record into another workflow process.
You can customize the Route buttons. If multiple processes exist for an application, you can create different buttons for each process.
Adding workflow toolbar buttons You can choose one toolbar button to represent all active workflow processes or add separate toolbar buttons for each active process. You can even indicate the order in which these toolbar buttons are displayed, based on your preferences and priorities. When multiple active processes exist for an object you have the following options: v Use a single toolbar button for all active workflow processes. The Start Workflow dialog box opens. Users can select a process from the menu of active processes in the dialog box. v Create separate toolbar buttons for each different, active process. Note: If you exceed the number of icons that can fit on the toolbar, users see a downward pointing arrow to indicate that a menu of options to choose from is available. To add a workflow toolbar button, complete the following steps:
Chapter 6. Workflow Designer and Workflow Designer (Advanced)
37
In the Workflow Designer application, display a process record.From the Select Action menu, select Edit Workflow GO Buttons . Applications that are associated with the object and support workflow are listed in the toolbar buttons for table window. Note: If no applications are listed in the table window, use the Add Workflow To Applications action to add workflow support to the applications. Click New Row — Enter values in the following fields: v Application — Enter the application that displays the button. v Process Name — If the button is for a specific process, enter the process name. If you are creating a single button for all active processes, leave this field empty. v Sequence — Enter a number that indicates the order, from left to right, that you want the workflow buttons displayed on the toolbar. If you exceed the number of icons that can fit on the toolbar, the sequence number determines the order that each process displays in the menu. v Description — Enter a name for the button. When a user moves the cursor over the button, that name is displayed. v Toolbar Icon — Enter the file name of the image that you want to use in the toolbar as the Route button, for example, nav_icon_route.gif. v Active Icon — Enter the file name of the image that you want to use in the toolbar. The Active icon indicates that the record is under the control of the workflow process. For example, nav_icon_route_active.gif. Click OK to add the icons to the toolbar for the specified application. Click Save Process.
Standards for graphic files When you create customized images to use as toolbar buttons, create pairs of icons for each process. The following standards are required for toolbar button images: v Images must be Graphics Interchange Format (GIF) files. Use the GIF format for a transparent background for the icon image. v Image resolution must be 72 dots per inch (DPI). v Image height for toolbar icons is 17 pixels. The width of the icon can vary from 12 to 26 pixels. v Copy the images for toolbar buttons to the following directory: \applications\maximo\maximouiweb\webmodule \webclient\images
Process nodes A node is a graphical element that represents a point in your business process. Nodes are added at specific business process junctures to denote the entry of a record into the business process. You can drag and drop nodes from the palette onto the canvas. You can add any number of nodes to a process. If a process exceeds 50 – 100 nodes, consider breaking the process into subprocesses to simplify management and maintenance. As you drag and drop each node onto the canvas, a name and a number are assigned to the node. The node name describes the type of node. The number
38
Advanced Workflow Components Implementation Guide
indicates the order in which the node was added to the canvas. You can modify the name of a node when you configure the node properties. Whenever possible, give nodes user-friendly labels. You can view node titles in the workflow map. All nodes have properties, except for the start node and for the stop node. You configure nodes by modifying the properties to match your business requirements. You specify properties for a node in the Properties window for the node. Each node must be configured individually. You can configure nodes at any point while you build a process, but as a best practice, configure nodes as you add them to the canvas. The Workflow Designer application includes the types of nodes that can represent various points in your business process. A node can be any of the following types shown in Table 1 below
Connection lines All nodes in a workflow process, except for the start nodes and the stop nodes, must be connected to two other nodes. You can draw positive and negative types of connections between nodes. Positive connections A solid black line on the canvas represents a positive connection. A positive connection indicates a positive outcome. For example, an action was performed, a record was approved, or a record met the condition specified by the node. Use the Connect Nodes tool line between nodes.
to draw a positive
Negative connections A dashed red line on the canvas represents a negative connection. A negative connection indicates a negative outcome. For example, a record was canceled, a record was rejected, or a record did not meet the condition specified by the node. Use the Negative Connection tool negative line between nodes.
to draw a
Types of nodes and guidelines for connection lines The following table describes the types of nodes that can represent various points in your business process and the guidelines for the connection lines that you can draw between one node and another node.
Chapter 6. Workflow Designer and Workflow Designer (Advanced)
39
40
Lines permitted entering a node
Lines permitted or required exiting a node
Type of node
Description
Start node
None. Indicates the point when a record starts a workflow process. When you create a process, a single start node displays on the canvas. Each process can have only one start node. You cannot delete start nodes.
Condition node
One or more positive One positive line and Indicates an lines; one or more one negative line are evaluation of the required. record, based on data negative lines. in the record. Use a condition node to enable a true evaluation or a false evaluation of the record, and then direct the record based on that evaluation. When a condition node is generated, it evaluates the record based on the Structured Query Language (SQL) statement defined in the properties for the node. The record is then routed to either the positive connection line or to the negative connection line exiting the node. You can use the Expression Builder tool to create a SQL statement.
Advanced Workflow Components Implementation Guide
One positive line is required.
Lines permitted entering a node
Lines permitted or required exiting a node
Type of node
Description
Interaction node
One or more positive One positive line is Provides an option permitted. for a user interaction lines; one or more negative lines. with a record. Use interaction nodes to guide a user through a structured interaction with a record. A process can have one or more interaction nodes. You do not have to include interaction nodes in a process. A manual input node precedes an interaction node. If an interaction node leads to an application not related to the object on the process record, place a stop node after the interaction node. The original process shuts down as the new record displays.
Manual input node
One or more positive Indicates a need for lines; one or more user input because negative lines. there are multiple directions that a record can take in a process. Use a manual input node to have the assignee decide what happens next. When a manual input node is generated, a window displays. The manual input window contains a menu of options for routing the record. When the assignee selects an option, any actions or notifications associated with the option are triggered.
More than one positive line is required. Negative connections exiting the node are not allowed.
Chapter 6. Workflow Designer and Workflow Designer (Advanced)
41
42
Lines permitted entering a node
Lines permitted or required exiting a node
Type of node
Description
Subprocess node
One or more positive One positive line and Indicates that a lines; one or more one negative line are separate workflow required. process is contained negative lines. within another workflow process. Use a subprocess node to break down a complicated business process into smaller, self-contained units. For example, you could have a subprocess that handles records in different sites, or that handles different classes of work orders. When the record encounters a stop node within a subprocess, the stop node is returned to the main process at the same point where it left the process and on the same type of routing line on which it finished.
Task node
One or more positive Indicates when a user is to be given an lines; one or more negative lines. Inbox assignment. The user has two choices. For example, the user can either approve a record or reject a record. Use task nodes when your business process requires that a user evaluate a record. Create a task assignment that routes the record to one or more individuals. Workflow comes to a stop at a task node until the assigned user has routed the record.
Advanced Workflow Components Implementation Guide
One positive line is required; one negative line is allowed.
Lines permitted entering a node
Lines permitted or required exiting a node
Type of node
Description
Wait node
One or more positive One positive line is Indicates that the lines; one or more required. progress of a record negative lines. through a process pauses until a required condition is met. Use a wait node to create a reaction to a database event, such as a status change, or a record update. A process can have one or more wait nodes. You do not need to include wait nodes in a process. A wait node cannot precede a node that requires user interaction, such as an interaction node or a manual input node.
Stop node
One or more positive None. Marks the end of a lines; one or more workflow process. negative lines. That is, the point where a record leaves control of the process. When you create a process, a single stop node is placed on the canvas. Use the stop node tool in the palette to place additional stop nodes on the canvas.
Designing workflows with Workflow Designer (Advanced) canvas The Workflow Designer (Advanced) canvas is an ILOG-based canvas that provides a graphical view of a workflow process, showing how the process elements are connected. The Workflow Designer (Advanced) application Canvas tab provides the tools and work space to create, view, and modify workflow processes. Use the Workflow Designer (Advanced) ILOG® canvas to add process nodes and connection lines to the canvas. Use the Canvas Toolbar to print, delete, zoom, and pan the canvas. The Maximo toolbar buttons provide visual indications of the Workflow application support and workflow process controls. Use these icons to route workflow assignments and to complete workflow assignments.
Chapter 6. Workflow Designer and Workflow Designer (Advanced)
43
Objects and Workflow processes You create Workflow process records for a specific business object. An object is a self-contained software entity that consists of both data and functions for manipulating data. Every application is associated with an object, and you can create a Workflow process for any object or any object with its own applications. When you create a Workflow process, you must specify an object for the process. When you specify an object on the process record, the appropriate actions, communication templates, escalations, Expression Builder relationships, and roles are filtered and displayed as you create the process. The object association also determines which records can be routed through the completed process. You can create one or more Workflow processes for any object. However, records can be automatically initiated into only one process per object.
Workflow Designer (Advanced) toolbar The Workflow Designer (Advanced) canvas toolbar allows you to print, delete, zoom, and pan the workflow process on the canvas.
Toolbar buttons The following table describes the ILOG canvas toolbar buttons that are available when designing workflow processes.
44
Button
Function
Print
Print the workflow
Delete
Delete the selected node or connection
Pan
Pan over the workflow
Zoom Box
Click and drag a box around the selected area. Zoom in on selected area.
Zoom In
Zoom in on the canvas
Zoom Out
Zoom out on the canvas
Fit to Contents
Fits the contents of the workflow to the available area
Table
Display the workflow in tabular form. The table is displayed at the bottom of the canvas.
Advanced Workflow Components Implementation Guide
Button
Function
Layout
This button runs the ILOG layoutAllNodes function to redistribute the nodes and lines on the canvas. Before changing the layout, save the workflow, in case you want to go back to the original layout.
Process nodes A node is a graphical element that represents a point in your business process. Nodes are added at specific points in your business process to denote the entry of a record into the business process. You can add nodes from the Workflow Designer (Advanced) palette onto the canvas. You can add any number of nodes to a process, but if a process exceeds 50 – 100 nodes, consider breaking the process into subprocesses to simplify management and maintenance. As nodes are added to the canvas, a name and number are assigned to each node. The name describes the type of node and the number indicates the order in which the node was added to the canvas. You can modify the name of a node when you configure the node properties. All nodes have properties. You configure nodes by modifying the properties to match your business requirements. You specify properties for a node in the Properties window for the node. Each node must be configured individually. You can configure nodes at any point while you build a process, but as a best practice, configure nodes as you add them to the canvas. Flyover on each of the nodes shows a summary of the properties for that node without invoking the properties dialogs. The Workflow Designer (Advanced) application includes a number of nodes that represent various points in your business process. See “Connection lines” fro more information on the types of nodes included and rules for connection lines.
Connection lines All nodes in a workflow process can participate in a connection with another node. You can draw positive and negative connections between nodes. There are rules associated with creating connections, for example, the start node cannot be the target of a connection, and the stop node cannot be the source of a connection. Only valid connections are allowed. Positive connections A solid black line on the canvas represents a positive connection. A positive connection indicates a positive outcome. For example, an action was performed, a record was approved, or a record met the condition specified by the node. Use the Positive Connection toolbar button draw a positive line between nodes.
to
Negative connections A dashed red line on the canvas represents a negative connection. A negative connection indicates a negative outcome. For example, a record
Chapter 6. Workflow Designer and Workflow Designer (Advanced)
45
was canceled, a record was rejected, or a record did not meet the condition specified by the node. Use the Negative Connection toolbar button draw a negative line between nodes.
to
Positive and negative connection buttons are 'sticky', meaning that you can continue to connect nodes together, until you click a different toolbar button. Connection lines can also have actions associated with them, and the new Action application enhancements allow the user to associate an icon (.jpg or .gif) with an action (see Chapter 5, “Working with Actions,” on page 21). Another feature of the Workflow Designer (Advanced) application is the addition of an icon on the connector that has an action associated with it. If the action has an icon defined, the icon will be displayed on the line. If no icon has been defined for the action, a default icon
will be displayed on the line.
Flyover help showing properties information about the actions defined on the connector is also available. This information includes the Action name, type, description, and value. Sticky mode works for connection lines only; it does not work for nodes. When you click a connector, you can continue to connect nodes without re-clicking the connector toolbar button. It remains 'sticky', or active, until you click any other button on the toolbar.
Types of nodes and guidelines for connection lines The following table describes the types of nodes and lists the guidelines for the connection lines that you can draw between one node and another node: Table 1. Types of nodes and guidelines for connection lines Lines permitted entering a node
46
Node
Description
Start node
None. Indicates the point when a record starts a workflow process. When you create a process, a single start node displays on the canvas. Each process can have only one start node. You cannot delete start nodes.
Advanced Workflow Components Implementation Guide
Lines permitted or required exiting a node One positive line is required.
Table 1. Types of nodes and guidelines for connection lines (continued) Lines permitted entering a node
Lines permitted or required exiting a node
Node
Description
Condition node
One positive line and Indicates an evaluation One or more of the record, based on positive lines; one or one negative line are data in the record. Use more negative lines. required. a condition node to enable a true evaluation or a false evaluation of the record, and then direct the record based on that evaluation. When a condition node is generated, it evaluates the record based on the Structured Query Language (SQL) statement defined in the properties for the node. The record is then routed to either the positive connection line or to the negative connection line exiting the node.
Interaction node
One positive line is Provides an option for a One or more user interaction with a positive lines; one or permitted. record. Use interaction more negative lines. nodes to guide a user through a structured interaction with a record. A process can have one or more interaction nodes. You do not have to include interaction nodes in a process. A manual input node precedes an interaction node. If an interaction node leads to an application not related to the object on the process record, place a stop node after the interaction node. The original process shuts down as the new record displays.
Chapter 6. Workflow Designer and Workflow Designer (Advanced)
47
Table 1. Types of nodes and guidelines for connection lines (continued) Lines permitted entering a node
48
Lines permitted or required exiting a node
Node
Description
Manual input node
Indicates a need for user input because there are multiple directions that a record can take in a process. Use a manual input node to have the assignee decide what happens next. When a manual input node is generated, the manual input window displays a menu of options for routing the record. When the assignee selects an option, any actions or notifications associated with the option are triggered.
Subprocess node
One positive line and Indicates that a separate One or more positive lines; one or one negative line are workflow process is more negative lines. required. contained within another workflow process. Use a subprocess node to break down a complicated business process into smaller, self-contained units. For example, you could have a subprocess that handles records in different sites, or that handles different classes of work orders. When the record encounters a stop node within a subprocess, the stop node is returned to the main process at the same point where it left the process and on the same type of routing line on which it finished.
Advanced Workflow Components Implementation Guide
One or more More than one positive lines; one or positive line is more negative lines. required. Negative connections exiting the node are not allowed.
Table 1. Types of nodes and guidelines for connection lines (continued) Lines permitted entering a node
Lines permitted or required exiting a node
Node
Description
Task node
One positive line is Indicates when a user is One or more positive lines; one or required; one negative to be given an Inbox more negative lines. line is allowed. assignment. The user has two choices. For example, the user can either approve a record or reject a record. Use task nodes when your business process requires that a user evaluate a record. Create a task assignment that routes the record to one or more individuals. The workflow comes to a stop at a task node until the assigned user has routed the record.
Wait node
One or more One positive line is Indicates that the positive lines; one or required. progress of a record more negative lines. through a process pauses until a required condition is met. Use a wait node to create a reaction to a database event, such as a status change, or a record update. A process can have one or more wait nodes. You do not need to include wait nodes in a process. A wait node cannot precede a node that requires user interaction, such as an interaction node or a manual input node.
Stop node
One or more None. Marks the end of a workflow process. That positive lines; one or more negative lines. is, the point where a record leaves control of the process. When you create a process, a single stop node is placed on the canvas. Use the stop node tool in the palette to place additional stop nodes on the canvas. Workflow processes can have multiple stop nodes. Simply delete or add stop nodes as needed. Chapter 6. Workflow Designer and Workflow Designer (Advanced)
49
Table 1. Types of nodes and guidelines for connection lines (continued) Lines permitted entering a node
Lines permitted or required exiting a node
Node
Description
Stop Warning node
Marks the end of a One or more None. positive lines; one or workflow process that ends with warnings. more negative lines. Workflow processes can have multiple stop nodes. Simply delete or add stop nodes as needed.
Stop Error node
Marks the end of a One or more None. positive lines; one or workflow process that ends with errors. more negative lines. Workflow processes can have multiple stop nodes. Simply delete or add stop nodes as needed.
Using Workflow Designer (Advanced) application The Workflow Designer (Advanced) application provides a number of new features in addition to what is available in the Workflow Designer application to help you create, view, modify, and delete Workflow process records that reflect your business process. Using the Workflow Designer (Advanced) application you can: v Add Attachments to workflow definitions to document a workflow. v Set the Launch On Demand flag to indicate that a workflow can be launched on demand from the Workflow Launcher application. v Set the Go To Instance flag, to indicate that launching the workflow from the Workflow Launcher application changes the application to the application specified in the Go To Instance Application attribute. v Classify a workflow using specification parameters. This is useful when using the explorer view to access a workflow from the Workflow Designer (Advanced), Workflow Administration (Advanced), and Workflow Launcher applications. v Define specification parameters, based on the classification for a workflow, which serve as variables for custom actions in the workflow. v Use the Workflow Instances tab to provide access to workflow instances created from the workflow definition. v Set the Go To Instance Application attribute to specify the application to switch to during Launch On Demand when Go To Instance is enabled.
Workflow Designer (Advanced) tabs The Workflow Designer (Advanced) application contains the following tabs: v The List tab allows you to search for processes. The left navigation tree shows all the classifications that can be used with workflow instances. When you click on a classification, the right tree shows all the Workflow instances for that classification and also for all the child classifications below. Legacy workflows
50
Advanced Workflow Components Implementation Guide
and any unclassified workflows will appear under the unclassified node. If you want to see all the workflows for all the classifications, click on the All Records menu v The Canvas tab is used to design and modify processes in a graphical format. v The Process tab lists all the nodes in the current Workflow process for viewing and editing. v The Specifications tab displays any specification attributes defined for the workflow in the Specifications table. If the classification defined for the workflow includes specification attributes, these attributes are displayed on the Specifications tab. Once a workflow is classified, new rows in the Specification table can be created by using the New Row button. v The Workflow Instances tab provides access to workflow instances created from the workflow definition.
Adding attachments to workflows Workflow Designer (Advanced) provides a built-in mechanism for adding documents and other information to workflows. Use the Attachment control to associate documents with each process in a workflow. To add an attachment to a workflow: 1. GoTo → System Configuration → Platform Configuration → Workflow Designer (Advanced) 2. 3. 4. 5.
Open a new Workflow process or an existing one for the Incident object. Click the Attachment icon to add an attachment file. Apply the Attachment Configuration. View the attachment file by clicking the Attachment icon within the Workflow Designer (Advanced).
Classifying workflows Use the Workflow Designer (Advanced) application to classify a workflow. Workflow classifications are used to organize workflows hierarchically on the Workflow Designer (Advanced), Workflow Administration (Advanced) and Workflow Launcher applications. Workflow classifications also provide a means to define variables in a workflow. These variables can be used by automation actions embedded in a workflow. Classifications for workflows must support the WFINSTANCE and WFPROCESS objects. You use the Workflow Designer (Advanced) application Canvas tab to classify workflows. If the classification defined for the workflow includes specification attributes, these attributes are displayed on the Specifications tab. Once a workflow is classified, new rows in the Specification table can be created by using the New Row button.
Setting Launch on Demand for a workflow Use the Workflow Designer (Advanced) application to set a Launch on Demand flag for a workflow if the workflow is designed to be run from the Workflow Launcher application. Chapter 6. Workflow Designer and Workflow Designer (Advanced)
51
When a workflow is launched from the Workflow Launcher, a new instance of the object type associated with the workflow is created, and routed into the workflow. The Launch on Demand flag can be set if the workflow is active and its object type is supported for use with the Workflow Launcher application. Objects defined in the rba.lod.objects system property are eligible for Launch on Demand. In addition, the object that is created when a workflow is launched using the Workflow Launcher can be classified automatically, prior to routing the object into the workflow. For example, the workflow may be designed to process a Change record, and expects the Change record to be classified as an Emergency change, with a particular set of specification attributes. To define the classification that is to be used when creating and routing the object (a Change, for example), select an Object Classification in the Launch On Demand Details section on the Canvas tab. Note: This is not the same as the classification defined for the workflow to classify workflow instance objects (WFINSTANCE). 1. Select a workflow process 2. From the Select Action menu, choose Enable Process for Launch-on-demand If the workflow's object type is not defined in the rba.lod.objects system property file, Launch on Demand is not supported for that object, and an error message displays if the user tries to enable Launch on Demand. Required attributes associated with objects added to this system property must have default values.
Setting the Go To Instance for a workflow Use the Workflow Designer (Advanced) application to set Go To Instance for a workflow. The Go To Instance flag is used when a workflow is launched from the Workflow Launcher application. It can be used to force a transition to the object created by the Workflow Launcher application. Launch on Demand must be enabled before you can set Go To Instance for a workflow. When Go To Instance is enabled, you can specify the application to switch to when the workflow is launched on demand. The application is specified in the "Go To Instance Application" field. If the application is not specified when Go To Instance is enabled, a dialog displays with the list of applications that are supported by the object. The user can select an application from the list or click Cancel. When an application is selected from the list, the application value is entered in the "Go To Instance Application" field, and Go To Instance flag is set. If there is only one application available, the "Go To Instance Application" field will be filled in automatically. If there are no applications available for the object type, then Go To Instance cannot be enabled. If Go To Instance is not enabled when the workflow is launched from the Workflow Launcher, the object will be created and routed into the workflow, but the submitter of the workflow will not be transferred to the created object, and will not have the opportunity to set any information in the object. This behavior can be useful for workflows that are intended to perform a very specific task. For
52
Advanced Workflow Components Implementation Guide
example, the workflow might be designed to turn off the power in a lab on the 3rd floor of building 201. In this case, the submitter does not have to provide any information. The workflow proceeds through the process of turning off the power (including approvals if needed). If the workflow is designed in a more general fashion, where the submitter is expected to specify the floor and the building when launching the workflow, then Go To Instance should be enabled, and the workflow should include an interaction node that navigates the submitter to the appropriate tab on the application (a Change for example) to enter values for floor and building. 1. Select a workflow process 2. From the Select Action menu, choose Enable Process for Go-to-instance Note: If the first interaction with the user is an interaction node and if Launch on Demand is enabled, then Go To Instance must also be enabled.
Using the Workflow Instances tab The Workflow Designer (Advanced) application Workflow Instances tab provides a table of related workflow instances (WFINSTANCE). Each row in the table represents an instance of the workflow and has an application link to the Workflow Administration (Advanced) application, providing direct access to workflow instances created from the workflow definition and revision.
Enabling logging The Workflow Designer (Advanced) application uses the Logging application to log information about the internal processing of the Workflow Designer (Advanced) canvas applet. To enable logging, do the following: 1. From the GoTo menu, select System Configuration → Platform Configuration → Logging 2. Set the Log Level to Debug for logging from the server. 3. Set the Log Level of the workflow logger to Debug. 4. For applet side logging, open to the Java Control Panel of the machine where your browser is running. 5. In the Advanced tab select: v Expand the Debugging twistie and check the 'Enable logging' checkbox. v Expand the Java console twistie and check 'Show console' checkbox. The Java console will display when the applet is invoked. The contents of the console may be requested for problem determination, and they can be copied and pasted into a file for sending.
Setting node properties You use the Workflow Designer or Workflow Designer (Advanced) application to create workflow processes that reflect your business processes. A workflow process defines the actions and notifications that can occur at different points in a business process.
Chapter 6. Workflow Designer and Workflow Designer (Advanced)
53
Specifying the properties of connector actions You use the Workflow Designer or Workflow Designer (Advanced) application to specify the action properties on individual connectors. You can specify the following properties for a connection line: Action Used to specify an action to be performed. You use the Actions application to create actions. Instructions Used to indicate instructions to present to the user in a Complete Workflow Assignment or Manual Input dialog box. Manual Input nodes Positive connection lines should include instructions that label each option. For example, an option might indicate that the record meets a certain condition, or that an action is performed. Task nodes Positive connection lines should include instructions that indicate that the record will be approved, accepted, or a similar action. Negative connection lines should include instructions that the record will be canceled, rejected, or a similar action. Positive Read-only field used to indicate whether the connection line is a positive or negative connection. Expression Read-only unless the action line is coming from Manual or Interaction node. Specifies a SQL condition that evaluates record data to determine if the option defined on the Interaction node should be presented to the user. For example, you could have one or more conditional status change options that are displayed based on the status of the current record. You also can create conditions that evaluate data about the signed in user to determine if an option should be presented to them, for example, For example, the user's craft, skill level, or work group. Custom Class Read-only unless the action line is coming from Manual or Interaction node. Used to specify that a custom class file should be used to test the condition specified in the Expression field. Notifications Used to specify the notifications to generate when a record follows the connection line to the next node. You can use a communication template to create one or more notifications, or specify the subject, message, and role recipients manually. You might want to specify different notifications for positive and negative connection lines if different people must be notified depending on the path that the record follows. Note: You can configure both nodes and connection lines to generate notifications. Avoid configuring a node and the connection lines exiting the node to generate duplicate notifications. You can access the connector/node properties in one of the following ways: v Click the Properties button for the desired connector or node on the Process tab. v Double-click on the selected connector or node on the Canvas tab.
54
Advanced Workflow Components Implementation Guide
v Right-click on the selected connector or node on the Canvas tab. Follow the procedure below to specify the properties of an action using Workflow Designer or Workflow Designer (Advanced). If using Workflow Designer (Advanced) application, you can edit properties by double-clicking or right-clicking on an action on the Workflow Designer (Advanced) canvas. 1. From the List tab of the Workflow Designer or Workflow Designer (Advanced) application, select a process with properties to be modified. 2. In the Actions window of the Process tab, click Edit Properties. 3. In the Action field, specify a value. 4. In the Instruction field, type text to describe to the runtime user what specific action occurs for routing and manual inputs. 5. Click Condition Expression Builder. 6. Select the Custom Class check box to specify that a custom class file is used to evaluate the record. 7. In the Communication Template field, specify a value. 8. In the Send To field, specify a value. 9. In the Subject field, type the subject of the notification email. 10. In the Message field, type the message of the notification email. 11. Click OK and click Save Process.
Specifying the properties of condition nodes A condition node indicates an evaluation of the record, based on data in the record. You use a condition node to have a true or false evaluation made on the record and then direct the progress of the record based on that evaluation. When a condition node is encountered, the record is evaluated based on the Structured Query Language (SQL) statement defined in the node properties. The record is then routed to either the positive or the negative connection line exiting tool in the Workflow palette to place a new the node. Use the Condition node condition node on the canvas. A workflow process can have one or more condition nodes, but you do not have to include condition nodes in a process. You can specify the following properties for condition nodes: Title
Type or modify the node name and description.
Expression Used to specify the SQL statement that tests one or more field values on the record. The product returns either a true result or a false result. You can define a simple expression or a complex expression, based on the needs of your business process. You can use substitution variables in the SQL expression. When the product encounters the condition node during a condition test, it substitutes values from the current record for the table and column information based upon the specified substitution variables. Use the Expression Builder to create your SQL expression. Custom Class Used to specify the custom class file that performs the condition test. Locate custom class files in the product directory. 1. From the List tab of the Workflow Designer or Workflow Designer (Advanced) application, select a process with properties to be modified. Chapter 6. Workflow Designer and Workflow Designer (Advanced)
55
2. From the Canvas tab, right-click the Condition node or double-click the Condition node. 3. Optional: Type a description. 4. Enter the class name in the Expression field. 5. Select the Custom Class check box. 6. Click OK and click Save Process.
and select Properties,
Specifying the properties of interaction nodes You use interaction nodes to specify the actions that occur in a workflow process between different applications. Use the Interaction Nodes Properties window to specify the following properties for interaction nodes: Application Used to specify the application that displays. Tab
Used to specify the tab for the specified application that displays. Use the tab identifier from the application's Extensible Markup Language (XML) presentation file as the value for the tab name. Tab identifiers are not in the database. You must specify them manually. To determine the application's tab identifier, navigate to the \resources\presentations directory, open the application's XML file with a text editor, and search for "tab id=" to find the appropriate tab identifier.
Action Used to specify an action that either displays or that is performed by the product. You can select from actions available via a toolbar button or from the Select Action menu. Relation Use to create an interaction that leads to another application. The information in the Relation field is used to determine which record to display when it opens the application. If the interaction involves creating a new ticket or work order, you use the Relation field to specify what kind of new record has been created, using one of the following values: v NEWACTIVITY v NEWCHANGE v NEWINCIDENT v NEWPROBLEM v NEWRELEASE v NEWSR v NEWTICKET v NEWWORKORDER If the interaction does not involve creating a new record, you can use the Select Relationship dialog box to specify a data relationship, for example, the asset record that is listed on a work order. Launch Process Used to specify an active workflow process for the specified application. The process starts on the current record upon arrival in the target application. Direction Title Used to specify the title of the message window that displays.
56
Advanced Workflow Components Implementation Guide
Direction Body Used to specify the text of the instructions that displays in a message window. The user must click the Route button to indicate that they have completed the interaction. For example, the instructions might read: "Enter X data, then click the Route button to complete the assignment." Note that the absence of a title or the absence of a body does not create a window. 1. From the List tab of the Workflow Designer or Workflow Designer (Advanced) application, select a process with properties to be modified. and select Properties, 2. From the Canvas tab, right-click the Interaction node or double-click the Interaction node. 3. Optional: Type a description. 4. In the Application field, specify a value. 5. In the Tab Name field, type the tab identifier from the XML presentation file. 6. In the Action field, specify a value. 7. In the Relation field, specify a value. 8. In the Launch Process field, specify a value. 9. In the Directions Title field, type the title of the message window. 10. In the Directions Body field, type the instructions that the product displays in the message window. 11. Click OK and click Save Process.
Specifying the properties of manual input nodes You use manual input nodes in a workflow process to designate options that users are presented with during a workflow process. Use the Manual Input Properties window to specify the following properties for manual input nodes: Title
Used to specify or modify the node name and the description.
Display One Used to specify what the product should do if a user has security permissions to only one specified option. If the check box is selected, users see the single option in the Manual Input dialog box. If the check box is cleared, the action is performed. The Manual Input dialog box is not displayed. Actions Displays actions associated with the connection lines that exit from the node. Add rows to the Actions window by drawing connections that exit the node. You can type a number in the Sequence column to specify the order in which options are presented to a user. The Instruction displays for each row in the Manual Input window. Notifications Used to specify any notifications that the product generates if the record travels through a connection line that exits the node. You can use a communication template to create one or more notifications. You can also choose to specify the subject, message, and role recipients manually. 1. From the List tab of the Workflow Designer or Workflow Designer (Advanced) application, select a process with properties to be modified. and select 2. From the Canvas tab, right-click the Manual Input node Properties, or double-click the Manual Input node. Chapter 6. Workflow Designer and Workflow Designer (Advanced)
57
3. Optional: Type a description. 4. Select the Display One check box to specify the action that occurs when a user has security permissions to one specified option. 5. In the Action field, specify a value. 6. In the Communication Template field, specify a value. 7. In the Send To field, specify a value. 8. In the Subject field, type the subject of the notification email. 9. In the Message field, type the message of the notification email. 10. Click OK and click Save Process.
Specifying the properties of subprocess nodes You use the Workflow Designer or Workflow Designer (Advanced) application to specify the properties for subprocess nodes. Subprocess nodes are processes that have been created to be used within a main workflow process. Use the Subprocess Properties window to specify the following properties for subprocess nodes: Title
Used to specify or modify the node name and the description.
Subprocess Used to type the name and the description of a workflow process record. The subprocess must meet the following criteria: v The process must exist in the Workflow Designer or Workflow Designer (Advanced) application. v The process must be associated with the same object as the main process. v The process must be enabled, but not activated. 1. From the List tab of the Workflow Designer or Workflow Designer (Advanced) application, select a process with properties to be modified. and select Properties, 2. From the Canvas tab, right-click the Subprocess node or double-click the Subprocess node. 3. Optional: Type a description. 4. In the Subprocess field, specify a value. 5. Click OK and click Save Process.
Specifying the properties of task nodes A task node indicates when a user has two choices, such as approving or to rejecting a record. You use task nodes when your business process requires you to evaluate the record and you want to create a task assignment that routes the record to one or more individuals. Use the Task Node Properties window to specify the following properties for task nodes: Title
Used to specify or modify the node name and the description.
Time Limit Used to specify the time limit for the assignee to complete the task before it is escalated. Application Used to specify which application the product uses to display the assigned record. Typically, the object is associated with a single application. In some
58
Advanced Workflow Components Implementation Guide
cases, such as in Quick Reporting and Work Order Tracking, an object can be associated with more than one application. It might, for example, represent a clone or even a new custom application on that table. Display One Used to specify whether a single option is displayed when the user has security permissions to only one option. v If the check box is selected, the product displays the single option in the Complete Workflow Assignment window. v If the check box is cleared, the product performs the action. WF Task Type Used to add another task to the workflow process. Assignments Used to specify one or more roles to receive the task assignment. Specify at least one assignment per task node. Notifications Used to specify the notifications that the system generates as a record leaves the node. You can use a communication template to create one or more notifications. Or, you can specify the subject, message, and role recipients manually. Perform Accept Action Used to specify how the system routes the record when the assignment is made to a group. v When any assignment is accepted - Used to specify that the system needs only one positive action to route the record to the positive connection line. v When all assignments are accepted - Used to specify that all assignees must select the positive action in order for the system to route the record to the positive connection line. If a single assignee selects the negative option, the system routes the record to the negative connection line. The options that the users see in the Complete Workflow Assignment dialog box are defined on the connection lines that exit the node. You can define an action and instructions for the user for each possible path. 1. From the List tab of the Workflow Designer or Workflow Designer (Advanced) application, select a process with properties to be modified. and select Properties, or 2. From the Canvas tab, right-click the Task node double-click the Task node. 3. Optional: Type a description. 4. In the Application field, specify a value. 5. In the Time Limit field, specify the time limit for the assignee to complete the task before it is escalated. 6. Select the Display One check box to specify what the system should do if the user has security permissions to only one specified option. 7. In the Assignments section, click New Row, and specify values for each of the fields that display. 8. In the Notifications section, click New Row, and specify values for each of the fields that display. 9. In the Perform Accept Action field, select one of the following options to specify how the record will be routed: a. When any assignment is accepted. Chapter 6. Workflow Designer and Workflow Designer (Advanced)
59
b. When all assignments are accepted. 10. Click OK, and click Save Process.
Specifying the properties of wait nodes You use the Workflow Designer or Workflow Designer (Advanced) application to specify the properties of wait nodes. Wait nodes specify that the process is halted until a specific event occurs. You can specify the following properties for wait nodes: Title
Used to specify or modify the node name and the description
Wait List Used to specify one or more system events. The first event to occur triggers the record to resume its progress through the process. Event names consist of three or four lowercase words, delimited by periods. For example, maximo.workorder.add or maximo.po.statuschange.appr.. v The first word is always maximo. v The second word is the name of the business object (MBO). For example, po. v The third word is one of the following words: – add – delete – init – statuschange. If the event is a status change, the event name has a fourth word, which is the name of the status. For example, appr. – update Notifications Used to specify the notifications that the system should generate as a record leaves the node. You can use a communication template to create one or more notifications. You can also specify the subject, the message, and the role recipients manually. 1. From the List tab of the Workflow Designer or Workflow Designer (Advanced) application, select a process with properties to be modified. and select Properties, or 2. From the Canvas tab, right-click the Wait node double-click the Wait node. 3. 4. 5. 6. 7.
Optional: Type a description. In the Event field, type an event name. In the Communication Template field, specify a value. In the Send To field, specify a value. In the Subject field, type the subject of the notification email.
8. In the Message field, type the message of the notification email. 9. Click OK and click Save Process.
Setting workflow processes to automatically initiate You can specify that when a user creates and saves a new record in an application, the record is automatically routed into a workflow process. Each object can have only a single process that is automatically initiated.
60
Advanced Workflow Components Implementation Guide
A process must be validated, enabled, and activated before you can set it to automatically initiate. This action only routes records created by users. Records that the product creates automatically (for example, through a PM cron task or through the inventory reorder function) cannot be automatically routed into a process through this method. 1. In the Workflow Designer or Workflow Designer (Advanced) application, display an activated process record. 2. From the Select Action menu, select Set Process to Auto-Initiate.
Setting processes to not auto-initiate You use the Workflow Designer or Workflow Designer (Advanced) application to specify that when a record is created and saved in an application, the record is not routed into a workflow process. Each object can have only a single process that is initiated automatically. 1. In the Workflow Designer or Workflow Designer (Advanced) application, select the activated process record that you want to set to not auto-initiate. 2. From the Select Action menu, select Set Process to Not Auto-Initiate. 3. Click Save Process.
Duplicating workflow processes You can use the Duplicate Process action to create a copy of an existing Workflow process, for example, if you wanted to create similar processes for different objects. After you duplicate a Workflow process, you then can modify it as needed. 1. From the List tab, select the record that you want to duplicate. 2. From the Select Action menu, select Duplicate Process. The process is copied with the Enabled and Active check boxes cleared. 3. In the Process field, type a name for the action. 4. Optional: In the Description field, type a description. 5. Optional: Modify the Object field. 6. Modify canvas elements as needed, and click Save Process.
Chapter 6. Workflow Designer and Workflow Designer (Advanced)
61
62
Advanced Workflow Components Implementation Guide
Chapter 7. Activating and viewing workflow processes Workflow processes are generally automated. For this reason, you can create a test environment where you design and test processes without affecting records in your production environment. You test your workflow processes by routing a record through each possible path. Perform these tests before you export your processes to your production environment to ensure that each workflow process accurately reflects your business process. Design your test environment so that it is a copy of your production environment. Your test database must include enough data and users so that you can thoroughly test each workflow process. You use the applications in the Integration module to migrate a workflow process from your test environment to your production environment. Testing should be done before you deploy your workflow processes. 1. Validate, enable, and activate each workflow process in a test environment that contains sufficient sample data to test the process. Your test environment must include records for test users who can receive assignments and notifications. 2. Route records through all possible paths in the process, including all possible paths through any subprocesses. You might want to create test plans to help you verify that you have tested all possible routes in a process. 3. Verify that assignments appear in users' Workflow Inbox and that e-mail notifications are being generated. 4. Determine whether the process is complete, or whether additional steps must be added. 5. Determine that you have configured the process to make the necessary assignments, notifications, and so forth that are required by your business process. If you have not configured the process, you must modify the process. 6. Make any necessary additions, modifications, or deletions and retest the process. 7. Use the integration applications to export your tested processes from your test environment to your production environment. To avoid generating large volumes of unwanted e-mail, correct or delete any test e-mail addresses that exist in your records before you export them to your production environment.
Workflow validation process You validate a workflow process to verify the structural integrity of the process. The Workflow validation process checks the following conditions: v Each node is connected to another node so that a record can travel each path in a process without interruption. v All nodes, except for the Start node, have at least one connection line entering the node. v All nodes, except for the Stop nodes, have at least one connection line exiting the node. v Start nodes have only one positive connection exiting the node. v The Structured Query Language (SQL) syntax is valid for conditions or for conditional assignments. © Copyright IBM Corp. 2007, 2010
63
v Condition nodes have either a valid WHERE clause or a custom class file specified in the node properties. The WHERE clause must evaluate to true or false. Condition nodes have both a positive and a negative connection line exiting the node. v Manual input nodes have at least one positive connection exiting the node. v Subprocess nodes have an enabled process specified in the node properties. v Task nodes have at least one assignment specified in the node properties. v Wait nodes have at least one event specified in the node properties. The validation process cannot check for the following conditions: v Notification email addresses are valid. v Custom class files are in the Maximo directory. v Custom class files run. v Executable files run. v A process accurately reflects your business process.
Validating workflow processes You use the Workflow Designer or Workflow Designer (Advanced) application to validate a workflow process. Validation of a process is a check of the structural integrity of the process. If you are validating a process that includes subprocesses, you must validate the subprocess records before you validate the main process. 1. From the List tab of the Workflow Designer or Workflow Designer (Advanced) application, select the process record that you want to validate. 2. From the Select Action menu, select Validate Process. If the process fails validation, a window displays with errors listed. You are now ready to enable the workflow process. Note that enabling a process locks the process. To modify a process that has been locked, create a revision and make your changes to it.
Enabling workflow processes Workflow process records are in a draft or a development stage until you enable the record. Enabling a process involves validating the structure of the process. After you enable a process record, the record is locked, and it is ready for use. 1. From the List tab of the Workflow Designer or Workflow Designer (Advanced) application, select the process record that you want to enable. 2. From the Select Action menu, select Enable Process. If the process is enabled, a message is displayed in the navigation bar. To make a workflow process record ready to use as a main process, you must activate the process.
64
Advanced Workflow Components Implementation Guide
Activating workflow processes Use the Workflow Designer or Workflow Designer (Advanced) application to activate workflow processes. A workflow process record must be active before it can be executed. When you activate a workflow process record, the following actions occur: v The Workflow actions and buttons are added to the applications associated with the object if those applications do not support workflow yet. v The Active check box is selected to indicate that the record is currently being used to manage records. v When you activate a process revision, the previously active revision is deactivated. The product does not disable the revision because active instances of the process might exist. 1. From the List tab of the Workflow Designer or Workflow Designer (Advanced) application, select the process record that you want to activate. 2. From the Select Action menu, select Activate Process. If the applications associated with the object already support workflow, a message displays in the navigation bar stating that the process has been activated. Otherwise, the 'Add workflow support to Application' dialog displays. 3. Click OK.
Disabling workflow processes Disabling a process prevents new records from being routed into the workflow process. Disabling a process does not affect records that are under the control of the process. You must use the Workflow Designer or Workflow Designer (Advanced) application to stop any active instances of the process. After a record is routed through an enabled process, the process cannot be deleted because other records might be under the control of the process. When you enable a new process revision, the previous revision is automatically disabled. 1. From the List tab of the Workflow Designer or Workflow Designer (Advanced) application, display the record that you want to disable. 2. From the Select Action menu, select Disable Process.
Viewing workflow assignments from a Workflow-enabled application The Workflow Map shows a graphic of a workflow process, including its nodes and connection lines. The current location of the map in a process is highlighted by a box around the node. You can view the workflow assignments for a record from within a workflow-enabled application. You use the Workflow Map to see where your assignment falls in the context of the workflow process as a whole. From the View Workflow Assignments window, you can perform the following tasks: v View a list of the active workflow assignments for the record v View the workflow history for a record
Chapter 7. Activating and viewing workflow processes
65
v View the workflow map for any processes that are currently managing the record. To view workflow assignments, from the Select Action menu, click Workflow → View Workflow Assignments.
Viewing workflow history from a Workflow-enabled application For auditing purposes a record is maintained of all records that are routed through a workflow process. You can view a list of all user-initiated actions in the workflow process, for example, routing a record into a workflow process, or completing an assignment. When a record routes through more than one workflow process, the workflow history is sorted by process name, then by transaction date. To view workflow assignments, from the Select Action menu, click Workflow → View Workflow History. Some transactions are performed automatically. The transactions that are performed automatically do not display even though they are recorded in the workflow history of the record in the database.
Viewing workflow specifications from a workflow-enabled application You can view the workflow specification attributes for a record from within a workflow-enabled application. You use the Workflow Specifications to see all the attributes associated with previously started workflow instances for a record. The workflow process must be classified and specification parameters must be associated with the workflow process in order to see the workflow instance specification parameters. To view workflow specifications, from the Select Action menu, click Workflow → View Workflow Specifications.
Viewing workflow action logs from a workflow-enabled application You can view the workflow action logs for a record from within a workflow-enabled application. You use the Workflow Action Logs to see all of the log records that have been produced by the invocations of the actions embedded in all the workflows previously started for a record. To view workflow assignments, from the Select Action menu, click Workflow → View Action Logs. See “View Action Log” on page 26 for more information.
Viewing a Workflow Map The Workflow Map shows a picture of a workflow process. You can use the Workflow Map to see where your assignment falls in the context of the process as a whole.
66
Advanced Workflow Components Implementation Guide
A workflow process consists of decision points, known as nodes, and connecting lines between the decision points. The nodes indicate points in a process where a decision is made, and the connection lines show the path that the record takes after a decision point. The current location of the map in the process is highlighted by a box around the node. 1. Click Workflow → Workflow Map from the Select Action menu of any workflow-enabled application. You can also access the Workflow Map from the View Assignments window. 2. If multiple workflow processes for the application exist, select the process from the Process Name menu. 3. Click OK to close the workflow map.
Chapter 7. Activating and viewing workflow processes
67
68
Advanced Workflow Components Implementation Guide
Chapter 8. Modifying workflow processes To modify a process after it has been enabled and locked, you must create a revision of the process. A revision of the process is required because other records might be under the control of this process.
Creating a process revision If you want to modify a process after it is enabled and locked, you must create a revision of the process. A revision of the process is required because other records might be under the control of this process. You also can create a revision of a process that is not yet activated or enabled. Creating a revision does not deactivate or disable an activated or enabled process record. However, when you activate a new process revision, the previous revision is automatically deactivated. 1. In the Workflow Designer or Workflow Designer (Advanced) application, display the enabled process record. 2. On the toolbar, click Create Process Revision. A copy of the process is created, and one is added to the value in the Process Revision field. 3. Make any necessary modifications to the process. 4. Click Save Process. You must validate, enable, and activate a process revision before it can be used to process records.
Synchronizing active workflow processes A workflow process can include one or more subprocesses. When you modify a subprocess, you must update the main process so that it uses the revised subprocess. This process is known as synchronization. You must enable the subprocess revisions before you can synchronize a workflow process. 1. In the Workflow Designer application, select the main process record that you want to update. 2. From the Select Action menu, select Resynchronize an Active Process. 3. Click Save Process.
Viewing synchronized processes You use the Workflow Designer or Workflow Designer (Advanced) application to view the name and the revision number of each subprocess associated with a main workflow process. The main workflow process record must be activated before you can perform this action. 1. From the List tab of the Workflow Designer or Workflow Designer (Advanced) application, select the process record that you want to view. 2. From the Select Action menu, select View Synchronized Processes. © Copyright IBM Corp. 2007, 2010
69
3. Click OK.
Adding workflow support to applications Workflow actions or buttons are not included with any of the applications when you install them. In the Workflow Designer or Workflow Designer (Advanced) application, you can add the workflow actions and buttons to an application without activating a process. For example, you can make the actions and buttons visible for user training. You can also create customized toolbar buttons before activating a process. Users are not automatically granted access to workflow actions. An administrator must use the Security Groups application to grant users security permissions to workflow actions. The workflow actions appear in the Security Groups application when you add workflow support to an application. You can grant users access to actions before you activate a process. When you add workflow support to applications, the product performs the following tasks: v Adds the Add a Route button to the application toolbar. To customize this button, click Edit Workflow Go Buttons. v Adds the following workflow-related actions to the Select Action menu for an application: – Route Workflow – Stop Workflow – View Workflow History – View Workflow Assignments – View Workflow Map – Workflow Help – View Workflow Action Logs – View Workflow Specifications v Supplies the workflow options to all users in security groups with access to the target application. Note that the Add Workflow to Applications action does not validate, enable, or activate processes. 1. From the List tab of the Workflow Designer or Workflow Designer (Advanced) application, select the process record to which you want to apply workflow. 2. From the Select Action menu, select Add Workflow to Applications. 3. Save your changes. The Add Workflow Support to Applications window displays. If an application does not support Workflow, the Add Support check box displays. You can clear the Add Support check box for an application if you do not want to add workflow support to it.
Adding toolbar buttons for active workflow processes If multiple active processes exist for an object, you can use a single toolbar button for all active workflow processes. The Start Workflow window displays a menu of active processes from which to select. You can also add your own toolbar buttons for different active processes.
70
Advanced Workflow Components Implementation Guide
Note that if you exceed the number of icons that can fit on the toolbar, an arrow displays to indicate that a menu of options exists. 1. In the Workflow Designer or Workflow Designer (Advanced) application, select a process record. 2. From the Select Action menu, select Edit Workflow GO Buttons. 3. Click New Row. 4. In the Application field, specify a value. 5. In the Process Name field, specify a value. 6. In the Sequence field, specify a value to indicate the order of the Go Buttons. 7. In the Description field, type a description. 8. In the Toolbar Icon field, type the name of the graphic file to use for the toolbar icon. For example, nav_icon_route.gif. 9. In the Active Icon field, type the path and name of the graphic file to use for the toolbar icon when the process is active. For example, nav_icon_route_active.gif. 10. Click OK, and click Save Process.
Modifying toolbar buttons for active workflow processes You can modify the toolbar buttons that are associated with an application at any time during the design process, or after a process activates. 1. In the Workflow Designer or Workflow Designer (Advanced) application, display a workflow process record. 2. From the Select Action menu, select Edit Workflow GO Buttons. 3. Select a row, click View Details, and modify the values in the following fields as needed: v Application — Application that displays the button. v Process Name — If the button is for a specific process, enter the process name. If you are creating a single button for all active processes, leave this field empty. v Sequence — Type a number that indicates the order, from left to right, that you want the workflow buttons displayed on the toolbar. If you exceed the number of icons that can fit on the toolbar, the sequence number determines the order that each process displays in the menu. v Description — Type a name for the button. When a user moves the cursor over the button, that name is displayed. v Toolbar Icon — File name of the image that displays in the toolbar as the Route button. For example, nav_icon_route.gif. v Active Icon — File name of the image that displays in the toolbar to indicate that the record is under the control of the workflow process. For example, nav_icon_route_active.gif. 4. Click OK. 5. Click Save Process.
Deleting workflow processes You can delete workflow process records if they are not needed. You cannot delete a process record if any of the following statements is true: v The process is activated. v The process is enabled. Chapter 8. Modifying workflow processes
71
v Any record was routed through the process. 1. In the Workflow Designer or Workflow Designer (Advanced) application, display the process record to delete. 2. From the Select Action menu, select Delete Process. 3. Click Yes to confirm the deletion.
Exporting and importing workflow processes Using the Integration Framework you can import or export a workflow process and its supporting data (including actions, roles, and communication templates) to XML. This lets you build and test your process in a test environment. You can then use the Integration Framework to export the workflow process to your production environment. For information about importing and exporting data using the Integration Framework, see the IBM® Maximo Integration Guide in the Reference section of the Infocenter.
72
Advanced Workflow Components Implementation Guide
Chapter 9. Workflow Administration and Workflow Administration (Advanced) Workflow Administration The Workflow Administration application provides the means by which you can view, modify, and stop active instances of workflow processes. The Workflow Administration application displays a row for each record that is currently under the control of a workflow process. The Workflow Administration application contains a window that displays a row for each active instance of a workflow process. A record can show up multiple times if it is controlled by multiple workflow instances. You can see which version of a revised process is used to create each instance, the identifier of the person who routed each record into the workflow process, and the date and time that the process initiated. The recordkey (for example, the work order number or the purchase order number) displays with the site identifier in the Owner Description field.
Workflow Administration (Advanced) The Workflow Administration (Advanced) application extends the capabilities of the original Workflow Administration application. The Workflow Administration application is a basic application used to work with active workflows. It is used to stop and re-assign workflows. Workflow Administration (Advanced) application allow users to work with historical workflow instance information, while preserving current usage patterns. The ability to access state information, process history and action logs for both active and completed workflows is essential for audit purposes when using workflow-based capabilities to automate processes in a customer environment. Using the Workflow Administrator (Advanced) application you can: v v v v
View active workflows (default) View completed workflows View failed workflows Stop or reassign active workflows
The Workflow Administration (Advanced) application contains the following tabs:
Using the List tab Use the Workflow Administration (Advanced) application List tab to work with a particular workflow instance, stop a workflow instance, or change a workflow assignment. © Copyright IBM Corp. 2007, 2010
73
Workflows that are classified will appear in the Classification navigation tree on the left. The left navigation tree shows all the classifications that can be used with workflow instances. When you click on a classification, the right tree shows all the Workflow instances for that classification and also for all the child classifications below. Legacy workflows and any unclassified workflows will appear under the unclassified node. If you want to see all the workflows for all the classifications, click on the All Records menu.
Using the Workflow tab Use the Workflow Administration (Advanced) application Workflow tab to see additional details about the workflow. The Workflow tab includes the following information: v The workflow instance ID v Name and description of the workflow process v Object class v Completion status v v v v
Classification and description Active flag Process revision ID of the object associated with the workflow instance
v Start time v Workflow originator ID v Activation number
Using the Assignments tab Use the Workflow Administration (Advanced) application Assignments tab to access workflow assignment information. From the Assignments tab you can access a table of the assignments that have been made during the lifespan of a workflow instance. To change the assignment, click on Select Action → View/Modify Workflow Assignments. The View/Modify assignments field is only available for active processes, not for completed processes.
Using the History tab Use the Workflow Administration (Advanced) application History tab to view actions that have occurred during the workflow process. This tab includes a table that shows user-initiated actions that have occurred in the workflow process.
Using the Map tab Use the Workflow Administration (Advanced) application Map tab to display the workflow process map for an active process.
74
Advanced Workflow Components Implementation Guide
Using the Logs tab Use the Workflow Administration (Advanced) application Logs tab to view any action log records that were created by actions embedded in the workflow. The following information may be collected for each entry in the Action Logs table: v Action name (with an application link to the action) v Instruction, as specified on the action in a workflow v v v v v v
Status of the action Script name, supplied if Action Type=CUSTOMSCRIPT Custom class, supplied if Action Type=CUSTOMCLASS Run Date Stdout – Standard output from the action Sterr – Standard error from the action
To enable logging for Custom Actions, set the rba.log.enableCustomActionLogging system property value to 1. To enable logging for Custom Scripts, set the rba.log.enableCustomScriptLogging system property value to 1.
Using the Specifications tab Use the Workflow Administration (Advanced) application Specifications tab to view the current values for parameters associated with the workflow. These are typically working parameters, used by actions embedded in the workflow.
Stopping instances of workflow processes When you route a record into a workflow process, an active instance of that process is created to manage that individual record. You can use the Workflow Administration or Workflow Administration (Advanced) application to view and to stop workflow processes for records for any workflow-enabled application. When you stop a workflow process, you are only stopping the single instance of the workflow process that controls a particular record. To deactivate a workflow process, use the Workflow Designer or Workflow Designer (Advanced) application. When you stop a process instance, the following tasks are performed: v The record is removed from the control of the workflow process. v A transaction is written to the Workflow history of the record. Workflow history remains with a record permanently, even after the record has left the control of Workflow. v Specified notifications are sent to past assignees, current assignees, or both. You can use a communication template to create a notification, or type the subject, message, and role recipients manually. 1. In the Workflow Administration or Workflow Administration (Advanced) application, select the active process instance that you want to stop. 2. From the Select Action menu, click Stop Workflow. 3. You can specify that a notification be sent to one or more assignees indicating that the record was removed from Workflow. You can use a communication template to create a notification, or specify the subject, message, and recipients. 4. Click OK.
Chapter 9. Workflow Administration and Workflow Administration (Advanced)
75
Deleting assignments You can delete task assignments if a task node has more than one assignment and you want to make a particular task assignment inactive. All task nodes must have at least one task assignment. You cannot delete the last active assignment for a given task. Deleting an assignment changes the status of the task assignment record to inactive. 1. Select the workflow process. 2. In the Workflow tab, from the Select Action menu, click View/Modify Active Assignments. 3. To delete an assignment, click Delete Assignment. The status of the task assignment is changed to inactive. The assignment record is removed from the View Active Assignments window. 4. Click OK to close the window.
Reassigning workflow assignments You use the Workflow Administration or Workflow Administration (Advanced) application to reassign workflow task assignments. Sometimes, a workflow task that has been assigned to an individual or to a group must be reassigned to someone else. 1. From the View Active Assignments window of the Workflow Administration application, click View/Modify Active Assignments. 2. Click Reassign Assignment to reassign assignments. 3. In the Person field of the Reassign window, type a person ID. 4. Click OK to close the Reassign window, then click OK.
Completing assignments View, complete your task assignments, and notify the next person in the process flow for efficient handling. To complete a task assignment, complete the following steps: 1. Select one of the following choices: v If you are viewing the assignment in your Inbox, click Route for the record. v If you are viewing the assigned record in the application, click Route in the application toolbar. 2. Select an action. If you do not have security authorizations to both actions, you might see one option only. 3. Optional: If appropriate, you can enter a memo.The memo is added to the workflow history of the record. The next person in the process flow can view your memo in the Earlier Memos table window in the Complete Workflow Assignment dialog box. 4. Click OK.
76
Advanced Workflow Components Implementation Guide
Sending reassignment notifications You use the Workflow Administration or Workflow Administration (Advanced) application to notify a person or a group of a workflow task reassignment. 1. In the Reassign window, click New Row. 2. In the Send To field, specify the identifier for a person or click Detail Menu → Select Value and choose a person record from the list. 3. In the Subject field, type a subject for the email message. 4. In the Message field, type the text of the email message. 5. Click OK to close the Reassign window, then click OK.
Workflow/Inbox Assignments portlet The Workflow Inbox/Assignments is one of the portlets that might appear on your Start Center. If your workplace has implemented the Workflow feature, a list of your task assignments displays in the Inbox. A task assignment is a record that is routed to you for action, based on the information contained in a workflow process. The number of records in Inbox/Assignments displays in the top left corner of the portlet. You use the Workflow Inbox to review assignments, to route assignments, and to complete assignments. You must complete the assignments before a record can move to the next step in a workflow process. The description that displays in the Inbox portlet is the description of the step from the workflow process, not the description of the record. For example, the description for a purchase order task might be "Supervisor approval."
Configuring the Workflow Inbox You use the Workflow Inbox to review, to route, and to complete your task assignments. A task assignment is a record that is routed to you for action, based on the information contained in a workflow process. Records that are listed in your Workflow Inbox are assigned to you. You must have security permissions to configure the portlets that display on your Start Center, including configuring the Workflow Inbox. The description that displays in the Inbox portlet is the description of the step from the workflow process, not the description of the record. For example, the description for a purchase order task might be "Supervisor approval." 1. Click Edit Portlet (pencil icon) in the Inbox/Assignments header to display the Inbox/Assignments Setup application. 2. You can perform the following actions in the Inbox/Assignments Setup application: v Change the display name of the portlet v Indicate how many rows to display in the portlet v Select the columns that are displayed in the portlet and modify their descriptions v Indicate the order that the columns are displayed by entering a value in the Order column 3. Click Finished. Chapter 9. Workflow Administration and Workflow Administration (Advanced)
77
You must complete the assignment in your Workflow Inbox before the record can move to the next step in the workflow process.
78
Advanced Workflow Components Implementation Guide
Chapter 10. Workflow Launcher The Workflow Launcher application provides a simple mechanism for exposing a library of re-usable workflows to the end user for selection and invocation. When a workflow is launched from the Workflow Launcher, a new instance of the object class associated with the workflow is automatically created and routed into the workflow. Workflows are visible on this interface if the following conditions are true: v The workflow object class is defined in the rba.lod.objects system property v The workflow is active and enabled. v The Launch on Demand flag is set to ON. There are two modes of operation when launching the workflow: v Go To Instance is ON v Go To Instance is OFF If Go To Instance is ON, the application switches to the application specified in the Go To Instance Application attribute for the workflow in the Workflow Designer (Advanced) application. After making any updates to the object, the user should route the object. If Go To Instance is OFF, the object is created and routed into the workflow without switching to the application associated with the object. This mode is useful if the person launching the workflow does not need to provide any custom data in the object (no specific inputs). Prior to launching the workflow, a confirmation dialog is presented if Go To Instance is not enabled. If confirmed, the workflow is launched. This helps prevent accidental repetitive invocations of a workflow. You can click Select Action → View Workflow Instances to see the details of the workflow instances created for the workflow process. The workflow can perform various types of automation, and can make assignments when other roles begin working with the object.
© Copyright IBM Corp. 2007, 2010
79
80
Advanced Workflow Components Implementation Guide
Chapter 11. Developing Custom Actions Parameter metadata Parameter metadata embedded in a Jython script is used to define the inputs and outputs required by the implementation. When the custom script is selected for an action, two tables on the Parameters Mapping tab are automatically populated from the metadata. The Input Parameters table is populated with input parameters from the metadata, and the Output Parameters table is populated with output parameters from the metadata. The metadata is embedded as a comment for a Jython script. Three types of information are defined in the metadata: v Description - Provides a general description of how the action implementation works. This information is rendered on the Action application. v Input Parameters - Defines the characteristics of each input parameter used by the action implementation v Output Parameters - Defines the characteristics of each output parameter The following are supported for each input parameter: Table 2. Input parameters Attribute
Description
Name
Name of the input parameter. This is a required parameter.
Description
Provides a description of the input parameter. This is an optional parameter.
DefaultRelationship
Provides a default value for the relationship portion of the parameter mapping. This value will be used to automatically populate the Relationship field in the Parameters table when the metadata is imported into an action. This is an optional parameter. The user may choose to modify the value in the action UI 'Relationship' field. If an override value is specified, this parameter will be ignored.
DefaultAttribute
Provides a default value for the attribute portion of the parameter mapping. This value will be used to automatically populate the Attribute field in the Parameters table when the metadata is imported into an action. This is an optional parameter. The user may choose to modify the value in the action UI 'Attribute' field. If an override value is specified, this parameter will be ignored.
© Copyright IBM Corp. 2007, 2010
81
Table 2. Input parameters (continued) Attribute
Description
Type
Defines how the data is being accessed (using the appropriate 'get' method). Three data access methods are supported. When a parameter mapping is defined, Type is used to validate that the parameter mapping is properly referencing a MBO Set, a single attribute value or an array of attribute values. If Type is not specified then the default will be set to 'Attribute'. In order to call 'get' methods that return arrays, the Type must be set to AttributeArray. The following three values are supported: v MBOSet – The Get method returns a MBO Set v Attribute – The Get method returns a single attribute value. v AttributeArray – The Get method returns an array of values. Note: This value will be used to populate the 'Method Type' field in the Parameters table when the metadata is imported into an action.
AttributeType
Defines the expected data type of the returned attribute (applicable when Type is Attribute or AttributeArray). AttributeType is used to validate that the provided mapping references an attribute of the required type. This value is used to populate the 'Attribute Data Type' field in the Parameters table when the metadata is imported into an action. Valid AttributeType specifications mirror the data types supported by Tivoli's process automation engine: v ALN v AMOUNT v BLOB v CLOB v CRYPTO v CRYPTOX v DATE v DATETIME v DECIMAL v DURATION v FLOAT v GL v INTEGER v LONGALN v LOWER v SMALLINT v TIME v YUPPER v YORN Note: This is an optional parameter. However, it is required if the Type is specified as 'Attribute' or 'AttributeArray' If specified, it will be enforced at validation time when the action is saved. For example, if the metadata specifies AttributeType="ALN", and the maxtype of the attribute specified in the data mapping attribute field of the mapping table is "INTEGER", then an exception will be thrown and an error displayed when the action is saved.
82
Advanced Workflow Components Implementation Guide
Table 2. Input parameters (continued) Attribute
Description
MBOType
Defines the type of MBO that should be defined in the last position in the Relationship field in the parameter mapping. For example, if MBOType="CI", then the following data mappings would be considered to be valid, or invalid: v MULTIASSETLOCCI.CI (valid) v MULTIASSETLOCCI.CI.BOOKMARK (invalid) Note: This is an optional parameter. However, if specified, it will be enforced at validation time when the action is saved. For example, if the metadata specfies MBOType="CI", and the Relationship field is MULTIASSETLOCCI.CI.ASSET, then an exception is thrown and an error displays when the action is saved.
The following are supported for each output parameter: Table 3. Output parameters Attribute
Description
Name
Name of the output parameter. This is a required parameter.
Description
Provides a description of the output parameter. This is an optional parameter.
DefaultRelationship
Provides a default value for the relationship portion of the parameter mapping. This value will be used to automatically populate the Relationship field in the Parameters table when the metadata is imported into an action. This is an optional parameter. The user may choose to modify the value in the action UI 'Relationship' field.
DefaultAttribute
Provides a default value for the attribute portion of the parameter mapping. This value will be used to automatically populate the Attribute field in the Parameters table when the metadata is imported into an action. This is an optional parameter.
Chapter 11. Developing Custom Actions
83
Table 3. Output parameters (continued) Attribute
Description
AttributeType
Defines the AttributeType is the expected data type of the attribute value to be set. For output parameters, only Type=Attribute is supported (setting arrays or MBO sets are not supported). AttributeType is used to validate that the provided parameter mapping references an attribute of the required type. This value is used to populate the 'Attribute Data Type' field in the Parameters table when the metadata is imported into an action. Valid AttributeTypes mirror the data types supported by the Tivoli's process automation engine: v ALN v AMOUNT v BLOB v CLOB v CRYPTO v CRYPTOX v DATE v DATETIME v DECIMAL v DURATION v FLOAT v GL v INTEGER v LONGALN v LOWER v SMALLINT v TIME v YUPPER v YORN Note: This is a required parameter. This value is used to populate the 'Attribute Data Type' field in the Parameters table when the metadata is imported into an action.
MBOType
Defines the type of MBO Set that should be defined in the last position in the Relationship field in the parameter mapping. For example, if MBOType=CI, then the following data mappings would be considered to be valid, or invalid: v MULTIASSETLOCCI.CI (valid) v MULTIASSETLOCCI.CI.BOOKMARK (invalid) Note: This is an optional parameter. However, if specified, it will be enforced at validation time, when the action is saved. For example, if the metadata specfies MBOType="CI", and the Relationship field is MULTIASSETLOCCI.CI.ASSET, then an exception will be thrown and an error displayed when the action is saved.
While the specific input and output parameters used by an action implementation are defined in the metadata, the mapping of these parameters to individual attributes, arrays of attributes, or MBO sets is defined in the action definition. For example, if a given action implementation is to be used in three different contexts, where three different parameter mapping configurations are required, then three actions should be created, each with a different configuration for the parameter
84
Advanced Workflow Components Implementation Guide
mapping. The mappings are defined in two tables associated with an action (WFACTIONINPUTS and WFACTIONOUTPUTS). These two tables are populated initially when an action of type=Custom Script is created (and the Jython script includes the parameter metadata). Once the WFACTIONINPUTS and WFACTIONOUTPUTS tables are initially populated, the user can complete the configuration of the Relationship and Attribute fields in each table entry. Popup dialogs for both the Relationship field and the Attribute field are provided with the Action application to assist with defining the Relationship path and associated attribute values for each parameter mapping row in the input and output tables. If the value specified for Attribute is associated with the primary MBO, then a value for Relationship is not required, since the value specified for Relationship is assumed to be relative to the primary MBO.
Parameter Mappings XML XML can be embedded in the source code to define input and output parameters for use with the parameter mapping function supported with actions.
Define Input and Output parameters Below is an example of the XML that can be embedded in the source code to define the input and output parameters. Because the output parameter "description" does not specify an MBOType, this sample XML metadata could be used with actions that have WORKORDER or TICKET as their primary objects since the relationships are valid for both types, and both contain a description attribute. Note: If cutting and pasting this sample code, ensure you add a space between each attribute. Read in an array of CI IP addresses, and a set of related assets. Use an outputparameter to modify the description on the workorder.
Chapter 11. Developing Custom Actions
85
Add metadata to a Jython script as a comment The following is an example of how the metadata XML is added to a Jython script as a comment: Note: If cutting and pasting this sample code, ensure you add a space between each attribute. from com.ibm.ism.rba.app.utils import RBAUtils """ Read in an array of CI IP addresses, and a set of the related assets. Use an outputparameter to modify the description on the workorder. """ iparray = RBAUtils.getStringArray("ci_address") print "First server address is: ", iparray[0] print "Second server address is: ",iparray[1] assets = RBAUtils.getSet("asset_set") asset = assets.getMbo(0) assetnum = asset.getString("assetnum") assetManufacturer = asset.getString("manufacturer") print "The manufacturer of asset ", assetnum," is: ",assetManufacturer RBAUtils.put("description", "This is the modified description")
The script first imports the RBAUtils class so that the convenience methods that access MBO data can be called. In the Jython code following the metadata, the call RBAUtils.getStringArray("ci_address") returns an array of values for the CISPEC ALNVALUE attribute, where the attribute ASSETATTRID equals 'IPADDR'. The first two values in the array are then printed. Note: If the specified relationship cannot be resolved at runtime (for instance, this WorkOrder or Ticket does not have any CI's in its 'Multiple Assets, Locations, and CIs' table), then an exception will be thrown. The call RBAUtils.getSet("asset_set") returns a MBO set. The first MBO in the set is retrieved and then the asset's manufacturer is printed out.
86
Advanced Workflow Components Implementation Guide
The call RBAUtils.put("description", "This is the modified description") modifies the description field on the Action's primary MBO. When an Action associated with the above script is invoked, the output of the script is captured in the Stdout field of the Action Log, or Stderr if the action does not complete successfully.
Convenience routines for data mappings Convenience routines for obtaining Input parameters and setting Output parameters are used by the action implementation to shield it from the location of the Input and Output parameters. The action simply specifies the parameter name in the Get or Put routine, and the Relationship and Attribute configurations in the action are used to navigate to the configured attribute value, attribute array or MBO set. The following 'get' methods are defined in the com.ibm.ism.rba.app.utils.RBAUtils class. Each takes as input the parameter Name, as defined in the metadata: v A set of related Get routines that correspond to the MBO access routines and return a single attribute: – getString – getInt – getFloat – getBoolean – getDouble – getDate v A set of related Get routines that return an array of attributes of a specific type: – getStringArray – getIntArray – getFloatArray – getBooleanArray – getDoubleArray v A Get routine that returns a date attribute: – getDate v A GET routine that returns a MBO set: – getSet The following 'put' method is defined in the com.ibm.ism.rba.app.utils.RBAUtils class: v A single 'put' mapping method to set a single attribute, which takes as input the parameter name and the value: – put These methods take as input the mapping name and return either a value or array of values. public static String getString(String mappingName) throws MXException, RemoteException public static String[] getStringArray(String mappingName) throws MXException, RemoteException public static int getInt(String mappingName) throws MXException, RemoteException public static int[] getIntArray(String mappingName) throws MXException, RemoteException public static float getFloat(String mappingName) throws MXException, RemoteException
Chapter 11. Developing Custom Actions
87
public static float[] getFloatArray(String mappingName) throws MXException, RemoteException public static boolean getBoolean(String mappingName) throws MXException, RemoteException public static boolean[] getBooleanArray(String mappingName) throws MXException, RemoteException public static double getDouble(String mappingName) throws MXException, RemoteException public static double[] getDoubleArray(String mappingName) throws MXException, RemoteException public static String getDate(String mappingName) throws MXException, RemoteException
There is only one 'put' method. It takes as input the mapping name and the value to set. The value can be any supported type: String, Integer, Boolean, etc: public static void put(String mappingName, Object value) throws MXException, RemoteException
The 'getSet' method takes as input a mapping name and returns an mbo set: public static MboSetRemote getSet(String mappingName) throws MXException, RemoteException
Sample Jython Script This sample Jython script shows the basic attribute access techniques without the use of parameter metadata. Inputs and outputs are hard-coded in the source code. The following script example demonstrates how to read an attribute from the input object (workorder), how to read a specification attribute from the input object, how to set an attribute in the input object, and how to read and write a specification attribute defined in the workflow instance. If your workorder or workflow instance does not have specification attributes set, for example SPEED or MATERIAL, then the sets returned by scriptHome.getMboSet and wfinstance.getMboSet will be empty, and no values are printed. The action log displays the following when the script runs: v Work order identifier: TEST1 v Speed = 35 MPH v New owner is WILSON v Material: BRASS v New Material: COPPER #Get and display the workorder name wonum = scriptHome.getString("wonum") print "Work order identifier: ", wonum #Get and display the value for the WO spec SPEED (if it exists) woSpecSet = scriptHome.getMboSet("$SPECS", "WORKORDERSPEC", "assetattrid=’SPEED’") emptySet = woSpecSet.isEmpty() if emptySet == 0: woSpec = woSpecSet.getMbo(0) speed = woSpec.getInt("numvalue") units = woSpec.getString("measureunitid") print "Speed = ", speed, units #Modify the owner attribute of the object scriptHome.setValue("owner", "WILSON") owner = scriptHome.getString("owner") print "New owner is " , owner #Get workflow instance spec for attribute MATERIAL. Display the value, then modify it instSpecSet = wfinstance.getMboSet("$INSTSPECS", "WFINSTANCESPEC", "assetattrid=’MATERIAL’") emptySet = instSpecSet.isEmpty() if emptySet == 0: instSpec = instSpecSet.getMbo(0) material = instSpec.getString("alnvalue") print "Material: ", material instSpec.setValue("alnvalue", "COPPER") material = instSpec.getString("alnvalue") print "New Material: ", material
88
Advanced Workflow Components Implementation Guide
Chapter 12. Troubleshooting and Support Use this topic to find troubleshooting information for common issues and learn how to contact IBM Software Support.
Known problems, work-arounds, and limitations The topics in this section describe problems that have been found and their solutions.
Error when stopping a workflow with email specified Problem: When I stop the workflow and select REPORTEDBY in the ‘To' field of the communication template, I get an error: "BMXAA0259E - The e-mail cannot be sent" or "BMXAA4187E - A relationship called PERSON does not exist for the WFINSTANCE business object". Note: This behavior is expected. Solution: After selecting stop workflow from the Select Action menu, in the To: field select one of the following USER, SUPERVISOR, PMSCOA, MAXADMIN, and click OK. The workflow stops without errors.
Internet Explorer 7 sometimes crashes when launching Workflow Designer or Workflow Designer (Advanced) Problem: Internet Explorer may crash when launching Workflow Designer or Workflow Designer (Advanced). This occurs for some environments using Internet Explorer 7 with Sun Java 1.6 when running applets. Solution: Do not use the next-generation Java Plug-in. The next-generation Java Plug-in is enabled by default. However if there are issues running applets, you can switch to the old Java plug-in without any manual manipulation of the windows registry and moving files. To disable the next-generation Java Plug-in: v v v v v v
Click Start → Control Panel. Open the Java Control Panel. Click the Advance tab. Scroll to the Java Plug-in entry. Uncheck the check box for "Enable next-generation Java Plug-in". Click OK and restart the browser.
Right-clicking on ILOG Canvas Stop node shows a "Java Applet Window" entry Problem: In Workflow Designer (Advanced) application, when you right-click on the ILOG Canvas Stop node to view the node properties, a "Java Applet Window" entry also displays.
© Copyright IBM Corp. 2007, 2010
89
Solution: To resolve this issue: v Launch the policytool.exe from your JAVA_HOME\jre\bin directory. v Choose File → Open, and browse to your JAVA_HOME\jre\lib\security\ directory. v Select the java.policy file and click Open. v Select CodeBase from the list, and click the Edit Policy Entry button. v Click the Add Permissions button in the Policy Entry window. v Select 'AWTPermission' from the Permission drop-down, and click OK. v Click Done.
Internet Explorer 7: Hidden Form Missing error in Workflow Designer (Advanced) Problem: Sometimes when accessing the Workflow Designer or Workflow Designer (Advanced) application using Internet Explorer 7.0, you may see the following warning at the bottom of your browser: 'Hidden Form Missing'. Clicking on the warning icon gives the following detail: Message: 'elements' is null or not an object. Solution: You can ignore this warning as it has no effect on the application functionality.
Internet Explorer 7: security exception when launching Workflow Designer (Advanced) Problem: You may see the following exception launching Workflow Designer (Advanced) if using Internet Explorer 7 with IBM Java 1.6: java.security.AccessControlException: Access denied (java.util.logging.LoggingPermission control)at java.security.AccessController.checkPermission(AccessController.java:108)
Solution: Add the following statement to the default permissions section of your java.policy file: permission java.util.logging.LoggingPermission "control";
90
Advanced Workflow Components Implementation Guide
Chapter 13. Advanced Workflow Components Messages This section provides information for messages that you see while using the Advanced Workflow Components.
Explanation: The name of the parameter specified via the convenience routine does not exist for the action.
Explanation: If the Action contains Input or Output parameters on the Parameter Mappings tab, then a value must be specified in the Action Object field. The Object value is used to verify that values specified in the parameter Relationship field are valid.
User response:
User response:
Administrator response: Check the script or custom class and make sure that the parameter name passed to the RBAUtils method is defined in the metadata of the script or custom class.
Administrator response: Specify a value in the Action Object field.
RBA0300E
RBA0301E
The action parameter "{0}" does not exist for the action "{1}".
The relationship "{0}" does not exist for the current object "{1}".
Explanation: The value specified in the relationship field is not valid for the base object specified in the Object field for the action. For example, if the value displayed in the Object field for the Action is INCIDENT, and in the Input Parameters table the Relationship is JOBPLAN, then the system will not be able to determine the attribute value, since there is no relationship in Maximo where the parent is INCIDENT and the child is JOBPLAN. User response: Administrator response: Specify a value in the Relationship field that is valid for the base object specified in the Object field for the action. RBA0302E
No value is found because the relationship "{0}" returns an empty set.
Explanation: The relationship specified for the Input or Output parameter is valid. However, at runtime no objects were found that satisfy the relationship. For example, assume the Action has its Object field set to WORKORDER, and an Input parameter with the relationship JOBPLAN. If no Job Plan has been associated with the Work Order, then at runtime no attribute values can be retrieved from a JOBPLAN object. User response: Administrator response: Before using scripts or custom Java actions to retrieve or set MBO data using Input or Output parameters, verify that the Action objects have the correct artifacts associated. RBA0303E
Object field is required for actions containing parameter mappings.
© Copyright IBM Corp. 2007, 2010
RBA0305E
The relationship "{0}" in "{2}" for the parameter "{1}" is not valid.
Explanation: Make sure the value specified in the relationship field is valid. This error occurs because at least one component in the relationship is not valid. For example, if the relationship specified is INCIDENT.WORKORDERSPEC, the validation will fail because no relationship called WORKORDERSPEC exists for the INCIDENT object. User response: Administrator response: Specify a valid relationship. RBA0306E
The attribute "{0}" defined in parameter "{1}" does not exist for the object "{2}".
Explanation: Make sure that the attribute name specified in the attribute field in the table is valid for the relationship value specified in the relationship field. For example, if the attribute specified is OWNER, and the relationship specified is JOBPLAN.JOBTASK, then the OWNER attribute would have to be valid for the object accessed via the relationship (JOBTASK). User response: Use the 'Select Value' icon next to the 'Attribute' field to select the attribute. Administrator response: Specify a valid value in the Attribute field. RBA0307E
In the metadata for script or custom class {0}, parameter "{1}" has the Type "{2}" specified. This requires that the AttributeType attribute be set.
Explanation: If the value of the 'Type' attribute specified in the script or custom class metadata is 'Attribute' or 'AttributeArray', the 'AttributeType' attribute must be set. AttributeType is the Maximo data type for the attribute, and must be a value from the MAXTYPE domain. Examples are ALN, INTEGER, UPPER, LOWER, FLOAT.
91
RBA0308E • RBA0315W User response: Administrator response: Specify the expected AttributeType in the script or custom class metadata. RBA0308E
For the parameter "{0}", the MBO Type "{1}" specified in the metadata does not match the MBO Type "{2}" accessed using the parameter relationship.
Explanation: If the MBOType is specified in the script or custom class metadata, make sure the value specified in the relationship field points to an object that matches the MBOType. For example, if the MBOType specified in the script or custom class metadata is WORKORDER, and the relationship specified for the parameter is CI.CISPEC, then the object accessed via the relationship (CISPEC) will not match the MBOType. If no value is specified in the Relationship field, then the MBOType from the metadata should match the value in the Action Object field. User response: If the MBOType in the metadata is CISPEC, the relationship should be CI.CISPEC for WORKORDER. Administrator response: Specify a value in the relationship field that corresponds to the MBOType specified in the script or custom class metadata. RBA0309W
This action has updated parameters available in the metadata. You may use the 'Synchronize Parameters' action to synchronize the Parameter Mappings.
Explanation: One or more parameters in the script or in the custom Java class metadata have been updated. Use the 'Synchronize Parameters' action to update the Parameter Mappings in the action. User response:
with the script, go to the Actions tab of the script application. From the Action application menu, select 'Synchronize Parameters'. A dialog appears that displays which parameters have been added, deleted, or modified. Click OK in the dialog to have the changes reflected in the Action parameters table. Save the Action to save the changes. RBA0311E
Explanation: In the metadata for the script or custom Java class associated with the Action, the AttributeType specifies what the Maximo Type (MAXTYPE) of the attribute should be. Examples of MAXTYPE are ALN, INTEGER, FLOAT, UPPER, LOWER. The MAXTYPE of the attribute specified in the Input or Output parameter table must correspond to what is specified for the parameter in the metadata. User response: Administrator response: Specify an attribute in the parameter table whose MAXTYPE matches the AttributeType in the metadata for the parameter. RBA0313E
The metadata has been updated in the custom script or in the custom Java class. Actions associated with this script should be synchronized with the new metadata. You can go to the Actions tab and update each action that is not synchronized.
Explanation: This script contains metadata defining Input and Output parameters. The parameter definitions in the metadata have been modified, and any Actions associated with the script need to be synchronized with the metadata changes. User response: Administrator response: To see Actions associated
92
Advanced Workflow Components Implementation Guide
Parse exception: {0}
Explanation: A parse error occurred when validating the metadata XML in the script or custom Java class. User response: Refer to the Workflow guide for the metadata format. Administrator response: Make sure the metadata XML adheres to the format defined in the schema file metadata.xsd. RBA0314E
Administrator response: Run the "Synchronize Parameters" action and verify the changes to the metadata in the dialog. Click OK. RBA0310W
For the parameter "{0}", the data type specified in the metadata is "{3}". However, it does not match the data type "{1}" for the attribute "{2}".
The script cannot be deleted because it is referenced by one or more actions. An action of type Custom Script references this script in its value field. Remove the value or delete the action before deleting this script.
Explanation: The script cannot be deleted because it is referenced by one or more actions. An action of type Custom Script references the script in its value field. User response: The 'Actions' tab displays the list of actions that are using the script. Administrator response: For any Action that uses this script, remove the script name from the Action Value field or delete the action. Then delete the script. RBA0315W
No attributes available. The relationship {0} may not be valid for the object type {1} specified in the object field.
Explanation: If no attributes are available to select
RBA0316E • RBA0332E from the dialog, the value specified in the relationship field may not be valid for the object type specified in the Object field for the action. Make sure that the relationship specified is valid for the object. For example, the relationship WORKORDERSPEC would not be valid for an object INCIDENT User response: Administrator response: Make sure the value specified in the Relationship field is valid for the object type specified in the Action Object field. RBA0316E
An attempt was made to execute an action containing parameter mappings that are not synchronized with the parameter definitions in the metadata. Synchronize the parameter mappings using the 'Synchronize Parameters' action in the Action application.
Administrator response: Activate the process first by selecting the action "Activate Process". RBA0321W
Launch-on-demand is already disabled for this process.
Explanation: Launch-on-demand is already cleared for this process and cannot be launched from the launcher application. User response: Administrator response: No action is taken since launch-on-demand is already disabled for this process. RBA0323W
Go-to-instance is already enabled for the process.
Explanation: This process is already set to switch to the object instance during launch-on-demand.
Explanation: Check the Synchronized field of the Action to make sure the parameter mappings are synchronized. To synchronize the parameter mappings, select the 'Synchronize Parameters' action from the Action application.
User response:
User response:
RBA0324E
Administrator response: Synchronize the Action with the parameter definitions using the 'Synchronize Parameters' action in the Action application. RBA0317E
The communication between the server and client machine failed to return the data for the selected process.
Explanation: The system is unable to send the nodes and actions associated with the process to the applet on the client machine. User response: Administrator response: Check that communications with the client machine are working properly. RBA0318W
Launch-on-demand is already enabled for this process.
Explanation: This process is already enabled to launch-on-demand. User response: Administrator response: No action is taken since launch-on-demand is already enabled for this process. RBA0319E
This process is not active and cannot be set to launch-on-demand.
Explanation: Launch-on-demand can only be enabled for an active process. User response:
Administrator response: No action is taken since the process is already set to switch to the object instance during launch-on-demand. This process is not enabled for launch-on-demand and cannot be set to Go-to-instance.
Explanation: Launch-on-demand is not enabled for this process and cannot be set to switch to the object instance during launch-on-demand. User response: Administrator response: Enable launch-on-demand first by choosing "Enable Process for Launch-on-demand" from the Select Action menu. RBA0326W
Go-to-instance is already disabled for this process.
Explanation: This process is already set not to switch to the object instance during launch-on-demand. User response: Administrator response: No action is taken since Go-to-instance is already cleared for the process RBA0332E
The input parameter "{0}" specifies a method Type of "{1}", but a call was made to retrieve the {2}.
Explanation: For input parameters, in order to obtain an array of values using a parameter, the method Type must be AttributeArray. To obtain an MBO set, the method Type must be MBOSet. The Type value is set in the script or custom class metadata. User response: Administrator response: In the script or custom class Chapter 13. Advanced Workflow Components Messages
93
RBA0333E • RBA0406W metadata, set the Type attribute to the appropriate value. Valid values are Attribute, AttributeArray, MBOSet. RBA0333E
Go-to-instance cannot be set for this process as there are no applications directly supporting {0} MBOs.
Explanation: This process cannot be set to switch to the object instance during launch-on-demand as there are no applications supporting the MBO object. User response: Administrator response: RBA0402W
The process is not running.
Explanation: The specified workflow instance is not active. Only active instances can be stopped. User response: Administrator response: The specified workflow instance is not active. The process may have completed or it may have been canceled by the user. RBA0403W
Launch-on-demand is not supported for this object type.
Explanation: Launch-on-demand action is not supported for this object type. In order for Launch-on-demand to be available for this object type, the object must be added to the rba.lod.objects system property. User response: Make sure that the launch-on-demand object does not need any required attributes. Administrator response: Modify the system property 'rba.lod.objects' and add the object type for which Launch-on-demand is to be provided. RBA0404W
Cannot launch an inactive process.
Explanation: The workflow process is not active and cannot be launched. User response: Administrator response: Activate the process by clicking the activate icon on the toolbar in the Workflow Designer (Advanced) application. RBA0405W
Please wait, the applet is loading.
Explanation: The Workflow Designer (Advanced) applet requires ILOG jars to be downloaded, which can take a few minutes depending on your bandwidth and network speed. This download occurs initially and does not occur again in this session with the applet. User response: Wait for the download Message to be dismissed, which indicates the applet jars have been successfully downloaded, before proceeding to use the
94
Advanced Workflow Components Implementation Guide
Workflow Designer (Advanced) application. Administrator response: RBA0406W
Are you sure you want to launch this workflow?
Explanation: If you launch the workflow, you can continue routing the workflow by clicking on "View Workflow Instances" under the Select Action menu, then go to the workflow instance and click on the link to the Object ID. User response: You can continue routing the workflow by clicking on "View Workflow Instances" under the Select Action menu, then go to the workflow instance and click on the link to the Object ID.
Notices This information was developed for products and services offered in the U.S.A. IBM may not offer the products, services, or features discussed in this document in other countries. Consult your local IBM representative for information on the products and services currently available in your area. Any reference to an IBM product, program, or service is not intended to state or imply that only that IBM product, program, or service may be used. Any functionally equivalent product, program, or service that does not infringe any IBM intellectual property right may be used instead. However, it is the user's responsibility to evaluate and verify the operation of any non-IBM product, program, or service. IBM may have patents or pending patent applications covering subject matter described in this document. The furnishing of this document does not grant you any license to these patents. You can send license inquiries, in writing, to: IBM Director of Licensing IBM Corporation North Castle Drive Armonk, NY 10504-1785 U.S.A. For license inquiries regarding double-byte (DBCS) information, contact the IBM Intellectual Property Department in your country or send inquiries, in writing, to: IBM World Trade Asia Corporation Licensing 2-31 Roppongi 3-chome, Minato-ku Tokyo 106-0032, Japan The following paragraph does not apply to the United Kingdom or any other country where such provisions are inconsistent with local law: INTERNATIONAL BUSINESS MACHINES CORPORATION PROVIDES THIS PUBLICATION “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Some states do not allow disclaimer of express or implied warranties in certain transactions, therefore, this statement may not apply to you. This information could include technical inaccuracies or typographical errors. Changes are periodically made to the information herein; these changes will be incorporated in new editions of the publication. IBM may make improvements and/or changes in the product(s) and/or the program(s) described in this publication at any time without notice. Any references in this information to non-IBM Web sites are provided for convenience only and do not in any manner serve as an endorsement of those Web sites. The materials at those Web sites are not part of the materials for this IBM product and use of those Web sites is at your own risk. IBM may use or distribute any of the information you supply in any way it believes appropriate without incurring any obligation to you. © Copyright IBM Corp. 2007, 2010
95
Licensees of this program who wish to have information about it for the purpose of enabling: (i) the exchange of information between independently created programs and other programs (including this one) and (ii) the mutual use of the information which has been exchanged, should contact: IBM Corporation Software Interoperability Coordinator, Department 49XA 3605 Highway 52 N Rochester, MN 55901 U.S.A. Such information may be available, subject to appropriate terms and conditions, including in some cases, payment of a fee. The licensed program described in this information and all licensed material available for it are provided by IBM under terms of the IBM Customer Agreement, IBM International Program License Agreement, or any equivalent agreement between us. Any performance data contained herein was determined in a controlled environment. Therefore, the results obtained in other operating environments may vary significantly. Some measurements may have been made on development-level systems and there is no guarantee that these measurements will be the same on generally available systems. Furthermore, some measurements may have been estimated through extrapolation. Actual results may vary. Users of this document should verify the applicable data for their specific environment. Information concerning non-IBM products was obtained from the suppliers of those products, their published announcements or other publicly available sources. IBM has not tested those products and cannot confirm the accuracy of performance, compatibility or any other claims related to non-IBM products. Questions on the capabilities of non-IBM products should be addressed to the suppliers of those products. All statements regarding IBM's future direction or intent are subject to change or withdrawal without notice, and represent goals and objectives only. All IBM prices shown are IBM's suggested retail prices, are current and are subject to change without notice. Dealer prices may vary. This information is for planning purposes only. The information herein is subject to change before the products described become available. This information contains examples of data and reports used in daily business operations. To illustrate them as completely as possible, the examples include the names of individuals, companies, brands, and products. All of these names are fictitious and any similarity to the names and addresses used by an actual business enterprise is entirely coincidental. COPYRIGHT LICENSE: This information contains sample application programs in source language, which illustrate programming techniques on various operating platforms. You may copy, modify, and distribute these sample programs in any form without payment to IBM, for the purposes of developing, using, marketing or distributing application programs conforming to the application programming interface for the operating
96
Advanced Workflow Components Implementation Guide
platform for which the sample programs are written. These examples have not been thoroughly tested under all conditions. IBM, therefore, cannot guarantee or imply reliability, serviceability, or function of these programs. Each copy or any portion of these sample programs or any derivative work, must include a copyright notice as follows: © (your company name) (year). Portions of this code are derived from IBM Corp. Sample Programs. © Copyright IBM Corp. _enter the year or years_. All rights reserved. If you are viewing this information softcopy, the photographs and color illustrations may not appear.
Trademarks For trademark attribution, visit the IBM Terms of Use Web site (http://www.ibm.com/legal/copytrade.shtml).
Notices
97
98
Advanced Workflow Components Implementation Guide
Index A
N
S
action groups 24 action types 21, 27, 28, 31 actions creating 23 creating action groups 24 deleting 26, 27 duplicating 25 logging 26 actions and action records 21 applications that are used with Workflow 3 assignments completing 76 Assignments tab 74
nodes adding 38, 45 notifications 10, 11
security 20 specifying properties actions 52, 54 condition nodes 52, 55 interaction nodes 56 manual input nodes 57 subprocess nodes 58 task nodes 58 wait nodes 60 standards for Workflow toolbar buttons 38 substitution variables in communication templates 10
P
B business process analyses business processes documenting 7
6
C canvas elements adding 38, 45 communication templates and Workflow 10 Communication Templates application configuration prerequisites security permissions 20 creating workflow processes 35
3
D domains synonym statuses
14
E Edit Workflow GO Buttons action 38 escalation points 13 escalations and actions 21 escalations and action groups 12 Escalations application 3 examples purchase requisition process 14, 17 service request process 15 examples of workflow processes 14 exporting 72
R record routing 13 Resynchronize an Active Process action 69 roles 7 and Workflow 10 Roles application 3
I importing 72 Inbox/Assignments portlet 4 configuring 77 Inbox/Assignments Setup application © Copyright IBM Corp. 2007, 2010
People application 3 person groups workflow assignments 9 Person Groups application 3, 9 person records 8 creating 8 Person records 8 planning people 7 roles 7 Workflow processes and user responsibilities 7 processes activating 65 adding nodes and connection lines 35 adding toolbar buttons 70 automatically initiating 61 connection lines 39, 45 creating a process revision 69 deleting 71 deleting assignments 76 designing 5 disabling 65 documenting 7 elements 8 enabling 64 examples 14 reassigning workflow assignments 76 revising 69 sending reassignment notifications 77 setting processes to not auto-initiate 61 stopping instances 75 testing 63 validating 64 validation 63 viewing synchronized processes
3
T toolbar buttons adding 37 creating 36, 37, 43, 44 modifying 71
V validation processes 63 viewing a workflow map 67 viewing workflow assignments 65 viewing workflow history 66 viewing workflow specifications 66
W
69
Web Services 2 Workflow Add Workflow to Applications action 70 administrator e-mail 19 applications 3 capabilities 1 delegates 8 designer requirements 19 enabled applications 70 overview 1 purpose 1 support 70 toolbar buttons 36, 37, 43, 44 Workflow Administration (Advanced) 73 Workflow Administration application 3, 73 Workflow administrator configuring administrator e-mail notifications 19 workflow assignments 74 Workflow Designer application 3 Workflow Inbox 3, 4 Workflow toolbar buttons 38 Workflow/Inbox Assignments portlet 77
99
100
Advanced Workflow Components Implementation Guide
Printed in USA