MBPM Designer User's Guide Release 9.2.1 This documentation has been created for software version 9.2.1. It is also valid for subsequent software versions as long as no new document version is shipped with the product or is published at https://knowledge.opentext.com. Open Text SA 40 Avenue Monterey, Luxembourg, Luxembourg L-2163 Tel: 35 2 264566 1 Open Text Corporation 275 Frank Tompa Drive, Waterloo, Ontario, Canada, N2L 0A1 Tel: +1-519-888-7111 Toll Free Canada/USA: 1-800-499-6544 International: +800-4996-5440 Fax: +1-519-888-0677 Email: support@opentext.com FTP: ftp://ftp.opentext.com For more information, visit www.opentext.com. Copyright © 1996–2012 Open Text Corporation OpenText is a trademark or registered trademark of Open Text SA and/or Open Text ULC. The list of trademarks is not exhaustive of other trademarks, registered trademarks, product names, company names, brands and service names mentioned herein are property of Open Text SA or other respective owners. Disclaimer No Warranties and Limitation of Liability Every effort has been made to ensure the accuracy of the features and techniques presented in this publication. However, Open Text Corporation and its affiliates accept no responsibility and offer no warranty whether expressed or implied, for the accuracy of this publication. Table of Contents Chapter 1 MBPMComponents 18 Chapter 2 Solution, Project and Process 19 Solution 19 Project 19 Process 20 Chapter 3 Stage and Action 21 Stage 21 Action 21 Chapter 4 Navigation 23 Chapter 5 Toolboxes 25 Sorting the Toolbox contents 25 Chapter 6 Repository 27 Chapter 7 Inventory 29 "Used by” Item 29 Chapter 8 Templates 31 Create a template 31 Configure Template Locations 31 Creating a New Component Using a Template Chapter 9 Importing and Exporting 32 33 Importing Components 33 Exporting 33 Exporting Components 33 Exporting Graphics 34 Importing and Exporting Language Files 34 Importing 34 Exporting 35 1 Chapter 10 Setting the Designer Options 37 Chapter 11 Designing a Project 41 Define the Initial Action 41 Define and Prioritize Tasks 41 Identify Participants 42 Determine Necessary Information 42 Determine Possible Outcomes 42 Identify Reusable Elements 42 Maintain the Process 42 Chapter 12 Creating a Project Setting the Project Properties 43 Process Overview 43 Elements of a Process 44 The Process Toolbox 44 Docking and Pinning 44 Docking 44 Pinning 45 Lanes 45 Adding a Lane 45 Editing Lane Properties 46 Moving Lanes 46 Adding a Stage to a Lane 46 Moving a Stage from one lane to another 46 Deleting a Lane 47 Creating a Process 47 Create a Process 47 Process Element Properties 2 43 47 Archive stage 48 Comment 48 Common stage 49 Conditional action 50 Flag action 51 Group stage 52 Linked process stage 53 Process 54 Rendezvous action 55 Rules stage 56 Start stage 57 Sub-Process 58 Sub-Process stage 58 System stage 59 Timed action 60 User action 61 User stage 63 Chapter 13 Introduction to Sub-Processes 65 Sub-Process Rules 66 Sub-Process Properties 66 Creating Sub-Processes 66 Adding a Sub-Process to a Process 66 Using Sub-Processes 66 Nested Sub-Processes 67 Chapter 14 Introduction to Linked Processes 69 Linking Processes 70 Nested Linked Processes 71 Chapter 15 Working with Processes 73 Adding Stages to a Process 73 Defining the Process Stage Order 73 Set the Stage Order 73 Adding Actions to a Process 73 Add a Direct Action 74 Add a Loopback Action 74 Changing the Action Style 74 Icons and Event Handlers 74 Icons 74 Event Handler 74 Adding Comments to a Process 75 Comment Action Rules 75 Add a Comment 75 3 Change the Comment Shape and Content Style Change Style of Comment Contents 75 Selecting Process Elements 76 Copying Process Elements 76 Deleting Process Elements 77 Changing Fonts and Colors of Process Elements 77 Chapter 16 Stage Types Clapperboard (Start Stage) Clapperboard Rules User Stage User Stage-Action Rules Group Stage Group Stage Action Rules Sub-Process Stage Sub Process Stage Action Rules Linked Process Stage Linked Stage Action Rules Rule Stage Rule stage Action Rules System Stage System Stage Action Rules Common Stage Common Stage Action Rules Archive Stage Archive Stage Action Rules Deleting a Stage Chapter 17 Action Types 79 81 81 81 81 81 81 81 82 82 82 82 82 83 83 83 83 83 83 83 85 Loopback Actions 86 User Action 86 User Action Rules Timed Action Timed Action Rules Conditional Action Conditional Action Rules 4 75 87 87 87 87 87 Rendezvous Action Rendezvous Action Rules Flag Action Flag Action Rules Loopback Action Add a Loopback Action Chapter 18 Introduction to Folders 88 88 88 88 88 88 91 Folder ID 91 Folder Name 91 Cloning Folders 91 Chapter 19 Introduction to Libraries 93 Creating a Library 94 Adding Items to Library 94 Associating Library with a Process 94 Associating Library with a Process of another Solution 95 Chapter 20 Designing a Form 97 Guidelines 97 Creating a Form 97 Create a New Form 98 Using the Form Toolbox 98 Using Forms and Form Segments 99 Open an Existing Form or Form Segment 99 Close a Form or Form Segment 99 Editing Form and Form Segment Properties 99 Form Component 100 Form Segment Component 101 Form Controls 102 Using Form Controls 104 Moving Controls 104 Moving a Single Control 104 Moving Multiple Controls 105 Copying and Pasting Controls 105 Aligning and Spacing Controls 105 Aligning Individual Controls 106 5 Aligning and Spacing Groups of Controls 106 Removing Controls 106 Grid controls 106 Forms on Web Client 106 Tab Order and Tab Index 107 Changes in MBPM v9.2 SR1 107 Editing Form Control Properties 108 Attachment clip 108 Checkbox 110 Command Button 112 Currency 115 Date/Time 119 Dropdown 122 Grid 126 Image 137 Label 139 Using dynamic URL for Label 140 List 141 Memo 144 Multi-clip 147 Number 148 Panel 152 Person 153 Rich Text 155 Radio group 159 Rule 162 Signature 163 Status 165 Text 170 Using a text field to add a hyperlink 174 Chapter 21 Introduction to Form Segments 6 177 Creating and Using Form Segments 178 Adding Controls to a Form Segment 178 Adding an instance of Form Segment to a Form 178 Chapter 22 Introduction to Administration Forms 181 Creating Administration Forms 181 Chapter 23 Admin Form Group 183 Moving Admin Forms among Admin Form Groups 183 Deleting Admin Form Groups 183 Chapter 24 Introduction to Roles 185 Defining a Role 185 Creating a Role 185 Group Role 186 Dynamic Role 186 Chapter 25 Introduction to Find and Replace 189 Find Text 189 Advanced Find and Replace 189 Find Results 190 Replace Text 190 Filtering the Results 190 Chapter 26 Introduction to Business Objects Types of Business Objects Custom Business Objects 191 191 193 Data Access 193 Process Context Business Objects 193 Cost and Revenue Enhancements 197 Process Business Objects 199 Local Business Objects 199 Add a Variable to a Local Business Object 200 Delete a Variable from a Local Business Object 200 Binding Processes to Forms and Reports 200 Adding a Business Object to a Component Twice 202 Binding to Custom Variables 202 Binding to Process Context Variables 203 Introduction to Custom Business Objects 203 Database Custom Business Objects 203 Table Business Object 204 Query Business Objects 204 7 LDAP query 205 Creating a Connection 206 Web Service Connection 207 Creating Custom Business Objects 209 Defining Custom Business Object Parameters 210 Introduction to Database Business Objects Error message 211 Defining Table and Query Business Object Parameters 212 DMS Business Objects for Content Server 214 Introduction to Scripted Business Objects 214 Developing a Scripted Business Object Server Script 214 The Anatomy of a Scripted Business Object 215 Business Object Implementation Types 226 Creating Scripted Business Objects 233 Defining Scripted Business Objects Parameters and Scripts 234 Implementing a Scripted Business Object for a Grid Control 234 Troubleshooting 234 MSDTC Configuration 235 Chapter 27 Query Builder 237 Building a single query Adding objects to the query 238 238 Setting object aliases 239 Joining tables 239 Adding and removing joins 239 Changing join type 240 Selecting output fields 241 Working with expressions in the Columns Pane 8 211 242 Sorting a dataset 243 Defining criteria 243 Grouping output fields 244 Building a query with sub-queries 244 Navigating the query tree 244 Working with sub queries 245 Working with derived tables 246 Working with unions 248 Union Sub-Query operations 248 Operations with brackets 248 Chapter 28 Filter Editor 249 Remarks 249 Add Conditions 250 Delete Conditions 250 Work with Clipboard 251 Change a Column in a Filter Condition 251 Change an Operator in a Filter Condition 251 Edit a Condition's Value 251 Compare a Condition's Column with Another Column 251 Navigation 252 Filter Criteria with Multiple Logical Operators 252 Chapter 29 Introduction to Visual Scripts 253 Interface 253 Types of Visual Scripts 254 Event Handler Buttons Event Handler Visual Scripts Creating a new event handler Visual Script Reusable Visual Scripts Creating a new reusable Visual Script 254 254 255 255 255 Categorizing a Promoted Reusable Visual Script 255 Creating Event Handler Visual Script 256 Enhanced View 256 Properties pane of process 257 Deleting an Event Handler Visual Script 257 Visual Script Toolbox 257 Commands 257 Visual Scripts 270 Document 276 Database Category 283 Using Standard Activities 292 Transactional Support 293 9 Chapter 30 Introduction to Expression Builder Building Expressions using Intellisense OK, Cancel and ESC 10 295 297 297 Building Formulas using the Expression Builder 298 Expression Builder Formulas 298 AbsoluteNumber 299 AllNotes 299 AND 299 CalculateDateTime 299 CalculateDuration 300 ConcatenateSubstrings 301 CountCharacters 301 DeleteAttachment 301 ExecuteStoredProcedure 302 ExtractSubstring 302 Findsubstring 302 FormatDateTime 303 GetEarlierMessage 304 GetEarlierNote 304 GetEmailAddress 305 GetEmailAddresses 305 GetToDoList 305 GetUserAttribute 305 GetUserDistinguishedName 305 GetWatchList 306 HtmlToText 306 IF 306 Left 307 List 307 ListPublishedRoles 307 ListRegisteredUsers 307 ListSelectedUsers 307 MaximumNumber 308 MinimumNumber 308 NOT 308 Never 308 NewAttachment 308 OR 309 Pair 309 ReadAttachment 309 ReadFile 309 Remainder 310 ReplaceSubstrings 310 Right 310 RoundNumber 310 SaveAttachment 311 SearchDirectory 311 SelectSQL 311 UsersManager 312 UsersStaff 312 GetColumns 312 Using List Functions Library 313 Function 313 Data Types 314 Casting 316 Implicit Typecasts 317 Using Operators 319 Modes of Expression Builder 320 Text and Memo mode 320 Assignment mode 321 Adding an Assignment 321 Editing an Assignment 322 Deleting an Assignment 322 Condition mode 323 Adding Conditions 323 Editing a Condition 323 Deleting a Condition 323 SQL Mode 324 11 Constructing a simple Select statement 324 SelectSql Properties 325 Constructing a Parameterized Select statement 325 List Mode 326 Using Check Mode 327 Using AND 327 Using ‘OR’ 328 Using ‘NOT’ 328 Using ‘IF’ 329 Chapter 31 Introduction to Scripting C# Guidelines 331 Server-Side Scripting 332 Using Business Objects 332 Passing Business Objects to Scripts 332 Writing Functions that use Business Objects 333 Passing a Business Object Instance to a Function 333 Passing Form Local and Process Business Objects 334 Passing a Form or Process Context 335 Process Runtime API Reference 335 Using the Business Object’s Refresh Method 336 Access selected row of Grid 336 Using the Business Object in Server Script 336 Reading Variable values 336 Setting Variable values 337 Reading a DataSet 337 Writing a DataSet 337 Controlling the Parameters of a Business Object 337 Promote Reusable Server-side scripts 339 Promotion Attributes 340 Client-Side Scripting 342 SetField Syntax 343 GetField Syntax 346 Grid Functions getCurrentRow 12 331 349 349 getCurrentCol 349 getRowCount 349 getCell 349 setCell 350 showSubmit and showCancel Functions 350 showSubmit 350 showCancel 350 submitForm, cancelForm and buttonClick Functions Chapter 32 Introduction to Flags 350 353 Creating a Flag 353 Raising a Flag 354 Using eraiseflag.exe to raise a flag from an external application Receiving Flag Data Associating Flag Data to a Business Object Chapter 33 Introduction to Reports 355 356 357 359 Creating a Report 359 Reports Interface 359 Adding new bands Report Group 360 361 Moving Reports among Report Groups 361 Deleting Report Groups 361 Reports Toolbox 361 Report Bands 361 Report Controls 363 Report controls and their properties 364 Bottom margin band 364 Checkbox 365 Detail band 366 Grid 367 Grid Cell 371 Grid Row 372 Grid footer band 372 Grid header band 373 Hyperlink 374 13 Image 379 Label 380 Memo 381 Native Report 382 Page break 384 Page footer band 384 Page header band 385 Page Info 386 Panel 387 Report Filter Area 387 Report footer band 389 Report header band 389 Shape 390 Top margin band 391 Filter Controls 392 Filter controls and their properties 392 Checkbox 392 Command button 394 Date/Time 396 Dropdown 398 Image 400 Label 401 Memo 402 Number 404 Rule 406 Text 407 Custom Lists Creating a Custom List Chapter 34 Using Charts in Reports 14 409 409 413 Chart Design Context Ribbon 413 Chart Composition 413 Setting Chart Appearance 414 Series 414 Arrange Series 414 Type 415 Styles 415 Palette 415 Define Custom Palettes 415 Editing Default Palettes 415 Variations 416 Elements 417 Chart title 417 Legend 417 Point Options 417 Argument 417 Values 417 Labels 417 Markers 417 Axes 417 Grid Lines 417 Selecting Chart Types 418 Bars 418 Points and Lines 419 Pie 420 Areas 420 Chart controls and their properties 421 Chart 421 Chart Axis 422 Chart Pane 422 Chart Series 423 Chart Series (Common) 424 Chart Series (Pie Chart) 425 Chart Series (XY Chart) 425 Diagram (XY 3D) 425 Chapter 35 Introduction to Multi-Lingual Processes 427 Setting the Project Languages 429 Creating the Translations 429 Translate via the Translation Pane 430 15 Translate via the Properties Pane Designing Localization Layouts Repositioning Controls on Forms Chapter 36 Introduction to Solution Tables 431 431 433 Create a Solution Table 433 Identity Columns 434 Chapter 37 Deploying a Project, Library or Solution 435 Chapter 38 Debugging 437 Debugging a process 437 Debugging without administrative privileges 437 Setting Breakpoints in C# Code Troubleshooting Checklist Debugging in Windows XP Chapter 39 Troubleshooting 438 439 439 439 441 Code Generation Error Troubleshooting 441 Deployment Internal Error 441 Chapter 40 Process Activator 443 Introduction to Process Activator 443 Activated Process as a Web Service 446 Activating the Sample Process 446 Allow Activated Process Web Service Access through SSO Chapter 41 Document Management System 448 451 Setup 451 DMS Features 451 DMS Controls 451 DMS Single Attachment Clip 452 DMS Multiple Attachment Clip 452 DMS Properties 452 Introduction to DMS Business Objects for Content Server 16 430 453 Creating a Content Server DMS Connection 453 Creating DMS Business Objects 454 DMS Business Objects Attributes and Variables 454 Navigating the Attributes Tree 455 System Attributes 455 Attribute Data Types 456 Assigning Variable Names to Attributes 456 Using Content Server Business Objects on Forms Opening Content Server Attachment 456 457 DMS Libraries and Functions 457 DMS Functions 457 Get Document Id 458 Get Folder Document Ids 458 SharePoint Functions 458 Content Server Functions 463 Content Server DMS Provider Activities 469 Chapter 42 Accessiblity Designing an accessible process 477 477 Section 508 477 Keyboard navigation 477 Internet Explorer Text Size 477 JAWS Support 478 Chapter 43 MBPM Reserved Words 481 Chapter 44 OpenText Mobile BPM 483 Supported Form Controls in Mobile Client 483 Unsupported Features and Form Controls in Mobile Client 483 Field Behavior 484 Alignment 485 Action Description and Help URL 485 Command Button 486 Attachment Clip 487 Multi Clip 488 Status 488 GPS 488 17 Chapter 1 MBPMComponents MBPM™ is composed of the following components: l An MBPM database l One or more MBPM Process Engines l A Service List l A Deployment Service l MBPM Web Extensions l Web Client 18 Chapter 2 Solution, Project and Process Chapter 2 Solution, Project and Process Solution An MBPM Solution consists of a set of projects. A Project (previously called a Procedure in MBPM v7.6) holds one or more processes. Each process is a collection of forms, actions, stages, and so on. The Solution, Project, and Process hierarchy is displayed below: Note: You can save the entire solution using the MBPM button > Save. Project In MBPM, a Project is a collection of one or more processes. MBPM Designer User's Guide 19 Chapter 2 Solution, Project and Process Process An MBPM Business Process is any sequence of actions that you wish to automate. A business process may be as simple as approving an employee’s expenses request, or as complex as a support system that tracks all support activity from the initial support call to its final resolution. A process is a graphic representation of the business process and may also contain (or use) any number of forms, form segments, roles, visual scripts, and so on. 20 MBPM Designer User's Guide Chapter 3 Stage and Action Chapter 3 Stage and Action When you design a process, it is represented through one or more process diagrams, each illustrating the various steps required to complete a specific business process (the life cycle of a folder). Each instance of the business process is called a folder. Folders are progressed in steps referred to as stages. At each stage, actions such as recording information are performed on the contents of the folder. Stage A stage is a stopping point in a process. Upon reaching a stage, a folder may require a user to act upon it or it may be acted upon by the system, either by querying existing data in the folder or by adding data. When a folder arrives at a stage, other than a system stage, it is made available for examination or action to selected process users through the client interface. Action Action represents the activity that happens to a folder as it progresses through a process. Actions can loop back to the same stage or can link stages, which would cause the folder to move from one stage to the next. Actions may include activities such as: l Filling out a form l Logging a telephone call l Reviewing an attached file l Approving or denying a request In MBPM, it is also possible to have actions that do not require human intervention, such as: l Determining the routing for a folder based on information available in a folder or in a database. l Raising or responding to an event l Moving a folder after a timed action l Starting an external application You can set properties and formulas in the MBPM Designer to accommodate a wide variety of possible actions. MBPM Designer User's Guide 21 22 MBPM Designer User's Guide Chapter 4 Navigation Chapter 4 Navigation The Navigation Pane consists of Inventory, Properties, Toolbox, Repository, and Data Access toolbar buttons that are stacked to the left of the Designer window. Clicking on a button will launch the appropriate toolbar. You can control the number of buttons displayed either by clicking on the drop-down below the Data Access button or by re-sizing the Navigation Pane to display the desired buttons. You can choose between Navigation Pane mode and Multiple Task Pane modes from Options > Display > Task Panes tab. For more information, refer to Setting the Designer Options. MBPM Designer User's Guide 23 24 MBPM Designer User's Guide Chapter 5 Toolboxes Chapter 5 Toolboxes The Designer uses a number of toolboxes. The toolboxes share the same pane, on the left side of the Designer pane. Only one of these toolboxes is available at a time: l When a process is active in the main pane, the Process Toolbox is displayed. l When a form is active in the main pane, the Form Toolbox is displayed. l When a report is active in the main pane, the Report Toolbox is displayed. l When a visual script is active in the main pane, the Activity Toolbox is displayed. You may choose to customize your Designer display by moving the toolboxes to a more convenient location. Regardless of their location, each toolbox will appear only when you are working with the corresponding component. You use the buttons on the toolboxes to add controls to processes, forms, reports and so on in a process. To toggle the Toolbox pane on and off: Select the View tab and click on the Toolbox button. The appropriate toolbox for the active component is displayed. Sorting the Toolbox contents You can right-click in the Toolbox to do one of the following: l Sort alphabetically l Reset order For example, with a process in the main pane of Designer, the sections in Process Toolbox are Default, Stages, Actions, Miscellaneous, Roles, and Business Objects. Any new Business Objects created are appended to the end of the Business Objects section with the most recently created Business Object at the bottom of the section. If you right-click in the Toolbox and select Sort alphabetically, the Default section stays at the top and all the other sections are sorted alphabetically. The items within the sections are also sorted alphabetically. To set it back to the default order, right-click in the Toolbox and select Reset order. MBPM Designer User's Guide 25 26 MBPM Designer User's Guide Chapter 6 Repository Chapter 6 Repository The Repository enables the process designer to view and access the services that are available, for example libraries, remote databases, and so on. The Repository is a floating dialog, which you may move or toggle on/off at your convenience. The Repository is not displayed by default. To toggle the Toolbox on and off: Select the View ribbon tab and click on the Repository button. The Deployment node has a default child node to represent the user’s local storage area which is used for the deployment of off-line libraries. To configure the Deployment Services: 1. In the Repository, right-click Deployment Services > Configure Deployment Services. The Deployment Services page in the BPM Options dialog box is displayed. 2. Choose the path for the deployment services list. The deployment service list file is named DeploymentServiceConfig.xml The path is usually C:\Program Files\Metastorm\BPM\IIS extensions\DeploymentServiceConfig.xml 3. Click Validate. If invalid, a message is displayed. 4. Click OK. MBPM Designer User's Guide 27 28 MBPM Designer User's Guide Chapter 7 Inventory Chapter 7 Inventory The Inventory provides information on the objects in your solution and the logical relation between the objects. For example, it displays forms and their associated actions, scripts and their associated components, and so on. It enables the process designers to see the structure of their solutions and projects more clearly. The Inventory allows you to drill down to components such as stages, actions, and forms. When you double-click on an item in the Inventory, it will be opened in the main pane, or will gain focus if it is already open. You can set the options to display items with a singleclick in the Inventory. For example, if you want to view a form component, find the form in the Inventory and double-click to open it. Form will be opened in the main pane, or will gain focus if it is already open. The Inventory is a pane, which you may move or toggle on/off. To toggle the Inventory on and off: l Select the View ribbon tab and click on the Inventory button. "Used by” Item Components in the Inventory display other components that are using them by using the "Used by" display item. The following components display “Used by” by connecting them to relevant items: l Form ->Used by-> Stages and Actions l Roles->Used by ->Stages, Actions, Forms, Reports, and Admin forms l Process->Used by->Process l Sub-Process->Used by->Process l Flag-> Used by->Action l Form Segment-> Used by->Forms l Business Objects->Used by->Processes, Forms, Reports, and Custom Lists MBPM Designer User's Guide 29 30 MBPM Designer User's Guide Chapter 8 Templates Chapter 8 Templates A template is a placeholder for default values, layout and controls. In MBPM Designer, forms and reports serve as containers for other items and therefore qualify to be saved as templates. For example, a form can define a company’s default style in terms of fonts, colors, values, layout, controls, and so on. This form when saved as a template can be re-used in the same project or a different project to create new components that inherit the template’s design. Components that are created from a template do not maintain a link with the template. This means that if a template is updated, components that have already been created using the template do not reflect the updates. If you want to create a new component that is updated automatically whenever the template is updated, creating a form segment is more suitable than creating a template. Templates, when saved, will not include languages. When you create a form or form segment, and then save it as a template, if it has multiple languages set up, the non-default languages do not come across in the template. Create a template 1. Select the Form or Report tab in MBPM Designer. 2. Click the MBPM button > Export > Template. 3. Type a name and click Save. The file is saved in My Metastorm Templates folder. Configure Template Locations 1. Click the MBPM button. 2. Click Options . 3. Select Templates. 4. Click Add to add a new location or click Edit to change the default location for saving templates. 5. Click Remove to remove a location that you no longer want to use as the default template folder location. Remove is available only when you have more than one folder location listed under Template options. MBPM Designer User's Guide 31 Chapter 8 Templates Clicking Add or Edit displays the Browse for Folder dialog box. 6. Select a folder and click OK. Depending on your choice of Add or Edit, the folder location is either added or updated to reflect the new selection. Creating a New Component Using a Template 1. In the Home tab of the Designer, click on the drop-down button in the Components ribbon tab. 2. Scroll down to the end of the list of components to view your saved templates. 3. Click on the chosen template. An instance of the template is added to the active project. 32 MBPM Designer User's Guide Chapter 9 Importing and Exporting Chapter 9 Importing and Exporting The import and export features allow you to store and retrieve individual components within your solution. Importing Components You can import all the components that have been exported. To import a component: 1. Click the MBPM button > Import. 2. From the Files of type drop-down, select the component that you want to import. The exported components of the selected component type are displayed. 3. Click the component that you would like to import and click Open. You can now view the imported component in a new tab within the main pane of the Designer. Exporting You can export a component, graphic, or template. Exporting Components You can export the following components: l Connection l Solution Table l Flag l Role l Business Object l Process l Sub-Process l Admin form l Report l Form l Form Segment MBPM Designer User's Guide 33 Chapter 9 Importing and Exporting To export a component: 1. Click on the relevant component tab in the main pane of the Designer. 2. Click the MBPM button > Export > Component. 3. Type in a file name. 4. Click Save. The component is exported as a package file. Exporting Graphics You can save a screenshot of a component by using the export as graphic feature. To export a graphic: 1. Click on the relevant component tab in the main pane of the Designer. 2. Click the MBPM button > Export > Graphic. 3. Type in a file name. 4. Click Save. You can now view the exported graphic files in .PNG format at the saved location. Importing and Exporting Language Files The Import/Export Language Files feature allows you to retrieve translation (.resx) files with all of the appropriate strings already populated (by the translation agents or services). This avoids having to manually enter in values for every string and for every language. Importing 1. Click the MBPM button > Import > Import Language Files. 2. From the Browse dialog, choose a folder where the language files for import are located. 3. After selecting the source folder, the Import feature detects the languages stored in the selected folder. 4. A “Choose Languages” dialog is displayed listing the languages that can be imported into the current project. 5. An Overwrite option, displayed for each detected language, provides the possibility to overwrite all of the existing translations for a given language. 6. When a language is imported which does not currently exist, it will be added to the translation pane and project properties for the active Project/Library. 7. Click on OK to start the Import process. Note: Adding and replacing resx (Translation) files reflects a change to the project and is marked as such. All changes should therefore be saved before using the Import Language Files feature. 8. The Progress of the Import Language Files process is indicated with a progress bar and file-by-file information messages appearing in the message pane, along with a icon that 34 MBPM Designer User's Guide Chapter 9 Importing and Exporting blinks in the status bar. Exporting 1. Before language files can be exported, it is necessary to add at least one language to the currently opened project. This is achieved by double-clicking on the project and setting the available language. Note: Once the language is added, the Project must be saved in order for the Export Language Files menu option to be enabled. Until this is done, the Export Language Files menu option under Export will be disabled (grayed out). 2. Click the MBPM button and then select Export -> Export Language Files. 3. A Browse Folder will appear allowing a folder to be specified for the exported files. Alternatively, a new target folder can be created. 4. Click OK on the Browse Folder dialog.. 5. The Export process will commence. Note: This will only be carried out for the currently opened Project/Library’s set of languages. 6. Each of the exported language's localized files will be placed in a separate countrycoded folder with a country-coded file extension. An example of an exported localized file is: Project1.fr.resx. 7. The Progress of the Export process is indicated with a progress bar and file-by-file information messages appearing in the message pane, along with an icon that blinks in the status bar. 8. A final message will appear in the message pane indicating the quantity of exported files. MBPM Designer User's Guide 35 36 MBPM Designer User's Guide Chapter 10 Setting the Designer Options Chapter 10 Setting the Designer Options You can set your preferences for specific view, display, and editing settings in the Options window. To display the options, click the MBPM button > Options. The settings in the options menu are: l Deployment - set the locations to where the project will be deployed. For more information, see Repository. By default, you are warned about over-writing roles and processes. You can also turn on Windows Single sign-on (SSO) whereby authenticating the user one single time permits access to all systems where you have access permission, without the need to enter multiple passwords. Note that this option can only be used if the system is already configured for SSO. The Process Diagnostics Service address field is related to Process Debugging feature. Process Diagnostic service is connected to an MBPM Repository in the same way as the Deployment service with the web.config file containing a connection string to the repository. l l Forms - set the default form background color. For more information, see Creating a Form. Process Modeling - Choose from Basic and Enhanced process model style and the line styles in a process. When you choose Enhanced process model style, besides a different visual style, the stages and actions of your process are displayed with links to create visual scripts. For more information on creating visual scripts, see Visual Scripting Interface. Color Settings: The default font color and border color can be specified for the following items: l Comments l Stages Note that changing a default value will not change any currently set colors. l Default Connection - The MBPM Designer allows the development of connection objects of type Database, LDAP, or WCF Service. By default, there will always be an initial connection object called the MetastormDefault Connection, which connects to the MBPM Repository. This connection needs to be configured when the Designer is first used. Designer saves these settings for subsequent use. The steps below needs to be followed to configure the MetastormDefault Connection: MBPM Designer User's Guide 37 Chapter 10 Setting the Designer Options l Select the Default Connection option l On the Define Connection tab, select the provider: SQL or Oracle l Enter the name of the server l Enter authentication details l Enter the name of the MBPM Repository (for a default install, this will be Metastorm) l Click the Test Connection button If the connection is successful, you can explore the repository contents. l Scripting - provides the location for the assemblies. Note that you should only add folders that contain just the .NET assemblies that you would like to use. The assemblies copied into CustomLib folder should be compatible with the target platform (x86, x64, or CPU format). An assembly is a collection of functionality that is built, versioned, and deployed as a single implementation unit. Assemblies can be static or dynamic. Static assemblies can include .NET Framework types (interfaces and classes), as well as resources for the assembly (bitmaps, JPEG files, resource files, and so on). You can also use the .NET Framework to create dynamic assemblies, which are run directly from memory and are not saved to disk before execution. You can save dynamic assemblies to disk after they have executed. Note that 3rd party assemblies referenced by MBPM must be strongly named. For more information, please refer to the Microsoft documentation. Namespace is a logical naming scheme for types in which a simple type name is preceded with a dot-separated hierarchical name. For example, types MyOffice.FileAccess.Open and MyOffice.FileAccess.Edit might be logically expected to have functionality related to file access. A single assembly may contain many types whose hierarchical names have different namespace roots, and a logical namespace root may span multiple assemblies. Designer allows selecting the namespaces and thereby makes it easier to browse and reference types in their code. The selected namespaces will be included to all subsequently created Code Activities. The Intellisense tab allows you to choose whether you would like to display all the functions including the .NET framework functions or the functions of the Designer along with promoted functions. l l l l l Projects - provides you with an option to toggle the automatic saving of new items when saving a project. For more information on projects, see Creating a Project. Inventory - You can toggle the option to display items in the Inventory by a single click. For more information, see Inventory. Templates - set the locations for templates. For more information, see Templates. Logging - Errors, warnings, and information can be logged to a log file in your specified location. You can choose to display it in simple, verbose, or user text format. Backup - You can choose from None, Single, or Incremental. None: no backup of solution is created. Single: your existing saved solution is replaced with the latest solution.(default) 38 MBPM Designer User's Guide Chapter 10 Setting the Designer Options Incremental: a new backup of solution is made each time you save. l Display Quick Access Bar: Choose from list of commands from Available Commands list and move them to the Quick Access Bar. The items that you move to the Quick Access Bar will be displayed in the Show Quick Access Toolbar. The Reset docking layout button resets the Designer layout to the default settings. Task Pane: You can choose between Navigation Pane and Multiple Task Pane modes. Selecting Navigation Pane mode displays the Navigation pane. The Navigation Pane consists of Inventory, Properties, Toolbox, Repository, and Data Access navigation option buttons that are stacked to the left of the Designer window. Clicking on a button will launch the appropriate toolbar. You can control the number of buttons displayed either by clicking on the drop-down below the Data Access button or by re-sizing the Navigation Pane to display the desired buttons. In Multiple task pane modes, all the toolboxes can be toggled to be displayed or hidden by clicking in View tab and clicking the desired toolbox button. Also, the toolboxes can be moved around within the Designer. Docking and pinning of toolboxes is also possible. For more information, see Docking and Pinning Toolboxes. l MBPM Designer - displays the version of MBPM and is of use when contacting support. MBPM Designer User's Guide 39 40 MBPM Designer User's Guide Chapter 11 Designing a Project Chapter 11 Designing a Project When designing a project, the following should be considered: l What action initiates the project? l What tasks must be performed to complete the project? l In what order must these tasks be performed? l What individuals within the organization will be involved? l What roles will they be taking in the project? l What information needs to be gathered during the course of the project? l What information should be shared among participants? l What are the possible outcomes? l Does the project flow in a step-by-step manner from start to finish, or are there alternative paths that must be taken into consideration? That is, are actions taken sequentially or in parallel? l What elements of your design could be reused for other projects? l What happens when the project is run? Define the Initial Action When you define a new process, MBPM automatically creates a default project and attaches the process to it. Within the process, one or more initial user actions may be set to originate from the clapperboard as input into any stage. Each action must have a unique name and may be associated with a different form. Examples of such initial actions would be an incoming phone call or email message, a request for information or services, the beginning of multiple new projects and so on. Define and Prioritize Tasks The tasks required to complete the business process will be represented as stages and actions: l l A stage is where the folder is at in the process, that is, where it stops awaiting action. At these stages, the MBPM Process Engine or process users can act on the folders. Actions represent the tasks to be performed at various stages throughout the process. Actions may be: MBPM Designer User's Guide 41 Chapter 11 Designing a Project n n Complex – For example, they may require a process user to enter information on a form. Simple – For example, they may require approval before being passed on to the next stage of the process. Other actions may be performed by the system based on information pulled from the database or provided by a process user at an earlier point in the process. Identify Participants The participants in your project are identified by their roles within the project. Note: The system may also be a participant in the project, handling automated tasks. In this case, the system will be represented by a system stage rather than by a role assignment. Determine Necessary Information The type of task being performed determines the information needed and the routing of that information. The information you require will determine the forms you will need to create to accompany your project. Determine Possible Outcomes A project may have several possible outcomes that may affect the route a business process follows from start to finish. Identify Reusable Elements If you identify tasks that will be performed more than once within the process, consider creating a library. Libraries can be used to store common sub processes, forms, form segments, scripts, and roles. When an existing library is associated with a project its contents become available to that project. Maintain the Process The Find and Replace feature allows the process designer to locate (and update) all the places specific text is used in a process. By searching on caption names this feature can also be used to locate various process elements. 42 MBPM Designer User's Guide Chapter 12 Creating a Project Chapter 12 Creating a Project Creation of a project is automatic when you create a process. 1. To create a new project, select Application > New > Project. A new project is created in the Inventory. The project name is generated automatically, for example, Project1. 2. Right-click the project and click Open to set the project properties. 3. The Owner field is populated automatically with the login user name. 4. In the Description field, enter a brief description for the project. 5. In the Language pane, select the languages to be made available in the project and use the add button to add them to the right pane. 6. Click the MBPM button > Save. The solution is saved. Setting the Project Properties l l l Owner - the project creator or owner. This field is the same as the Owner field in the main pane. The name can be entered in either field. Company Name - an optional field to enter the name of the company, if required. Description - this field is the same as the Description field in the main pane. A brief project description can be entered in either field. Process Overview An MBPM process is a visual representation of a business process. A process is broken down into Stages and Actions. A stage is where a folder waits until an action is taken to leave the stage. A process contains the following elements: l A single start stage, from which new folders are created. l One or more stages where folders are held pending action. l One or more actions which are used to update a folder or move it to another stage. l Any number of Comments. Note: A process needs to have at least one archive stage. MBPM Designer User's Guide 43 Chapter 12 Creating a Project Elements of a Process 1. Start stage 2. Action 3. Stage 4. Process Lanes 5. Comment 6. Loopback action 7. Properties pane (showing properties for the currently selected item) 8. Individual properties of selected form or report control 9. Archive stage You can select the stages and actions from the process toolbox and add to the process to build the business process. You can use the properties pane to set process parameters at each stage and action. The Process Toolbox Stages, actions, comments and Sub-Processes are added to processes via the Process Toolbox. The Process Toolbox is a floating dialog box, which you may move or toggle on/off at your convenience. When a process or sub process is active, the Process toolbox is also displayed. To toggle the Toolbox on and off, select the View ribbon tab and click Toolbox. The process toolbox is displayed when you select a process. The process toolbox is divided into six sections: l Default - The Pointer button allows you to select a particular process stage or action. l Stages - The Stage buttons are used to add stages to the process. l Actions - The Action buttons are used to add actions to the process. l Miscellaneous - The Comments button is used to add a comments field to the process. l l Business Objects - A Business Object facilitates process designers to access and manipulate data in a business process. Roles - All of the default Designer roles and any new roles created in that project. Docking and Pinning Docking To dock a pane: 1. Click on the pane's title bar and drag the pane within the Designer. A set of docking icons are displayed. 2. Drag the pane on to one of the docking icon. A blue shaded area is displayed where the 44 MBPM Designer User's Guide Chapter 12 Creating a Project pane will be docked. 3. While holding the pane on the icon, release the mouse. The pane is docked. To undock a pane: 1. Click on the pane's title bar and drag the pane away from its docked position. The pane will now float. Pinning Once a pane is docked it can be set to show and hide by setting the auto-hide feature using the pinning buttons. Each pane has a pinning icon on the right side of its title bar . To auto-hide a pane, click on the pin button. The pane is tabbed to the nearest side and will now auto-hide. Hover the cursor over the tab to display the pane. To remove auto-hide, display the pane and click on the unpin button . Lanes A lane is a graphical representation of a role. It assists you to add roles to stages but not actions. Adding a Lane You can add a lane to a process by dragging a Role button from the toolbox and dropping it in the main pane of the process tab. Note: You can adjust the height of the lane and change the icon associated with a specific role. Lanes can be used in Basic or Enhanced process modeling mode. MBPM Designer User's Guide 45 Chapter 12 Creating a Project Editing Lane Properties Click on the Role icon in the Process to edit a lane's properties. Note: In the MBPM Designer, the process lanes have a StartBackground property that specifies the color gradient. This property enables color applied in a BPM Process model to be persisted when transformed into a ProVision model using the MBPM ProVision Connect tool. Moving Lanes You can shift a lane up or down by using drag-and-drop operation on a role icon in a process. Adding a Stage to a Lane When you add a stage to a lane, the role that it represents is automatically added to the To Do list. Moving a Stage from one lane to another When you move a stage from one lane to another, the role associated with the source lane is removed from the To Do list and the role associated with the destination lane is added. No other roles in the To Do list are affected. 46 MBPM Designer User's Guide Chapter 12 Creating a Project Deleting a Lane You can remove a lane that contains no stages from a process by selecting its button in the main pane and pressing the DELETE key. When you delete a lane, any of the lanes below it move up to fill up the space. Note: You cannot delete a lane if it contains any stages. Creating a Process Before starting to build your process, define the business process and identify the tasks and actions required to complete it. Whenever you create a new process, a default process is displayed in the main pane. This process will contain a Start stage (the Clapperboard) and a User stage connected by a User action. When you create a new process it will be assigned to the project that is currently open. If you do not have a project open, a default project will be created when you create the process. Create a Process To create a new process: 1. On the Home ribbon tab, Components group, click on the Process button. Alternatively, from Inventory, right-click on an object, click New > Process. The new process consists of a start stage and a user stage connected by a user action. 2. To display the process properties, click anywhere in the process, that is not occupied by a process element. In the Properties pane, edit the process properties as required. You can edit the process default name and caption. You can also change the default names for the start stage, first action and first stage. 3. Click the MBPM button > Save. Process Element Properties To specify the properties of a process, click anywhere in the process that is not occupied by a process element. The process name will appear in the Properties pane, together with a list of its properties. You can specify or alter any of the properties in the Properties pane. The following table lists all the processes and process elements and their properties. MBPM Designer User's Guide 47 Chapter 12 Creating a Project Archive stage Property Name Description Caption Choose a caption for this element. It is the caption which is visible at runtime. Name Specify a unique name to identify this element. This name is not visible at runtime. Position from top The position (in pixels) of this element, from the top edge of the process Position from left The position (in pixels) of this element, from the left hand side of the process design area. Associated icon Choose an icon to represent this item within Designer, if you do not want to use the default. When stage started Use this property to enter a visual script that is run when the stage is started Font color Choose a font color for this element. Background color Choose a background color for this element. Border color Choose a border (outline) color for this element. Forms Choose the order in which forms appear in the folder for this stage Notes Use this to enter any specific notes for anyone using this element within the Designer environment. Help URL A URL or expression which the help button will launch when clicked. Comment Property Name Description Comment Enter the text of your comment here Position from top The position (in pixels) of this element, 48 MBPM Designer User's Guide Chapter 12 Creating a Project Property Name Description from the top edge of the process Position from left The position (in pixels) of this element, from the left hand side of the process design area. Width Specify the width of the form, in pixels. Height Specify the height, in pixels, of this element. Font Choose a font color for this comment Font color Choose a font color for this element Background color Choose a background color for this element. Border color Choose a border (outline) color for this element. Alignment Choose an alignment style from the options displayed to position the text in the comment accordingly. Common stage Property Name Description Caption Choose a caption for this element. It is the caption which is visible at runtime. Name Specify a unique name to identify this element. This name is not visible at runtime. Associated icon Choose an icon to represent this item within Designer, if you do not want to use the default. Position from top The position (in pixels) of this element, from the top edge of the process Position from left The position (in pixels) of this element, from the left hand side of the process design area. Font color Choose a font color for this element. MBPM Designer User's Guide 49 Chapter 12 Creating a Project Property Name Description Background color Choose a background color for this element. Border color Choose a border (outline) color for this element. Applied to stages Stages to which this common stage applies When stage started Use this property to enter a visual script that is run when the stage is started When stage completed Use this property to enter a visual script that is run when the stage is completed Notes Use this to enter any specific notes for anyone using this element within the Designer environment. Conditional action Property Name Description Caption Choose a caption for this element. It is the caption which is visible at runtime. Name Specify a unique name to identify this element. This name is not visible at runtime. Associated icon Choose an icon to represent this item within Designer, if you do not want to use the default. Position from top The position (in pixels) of this element, from the top edge of the process Position from left The position (in pixels) of this element, from the left hand side of the process design area. Font color Choose a font color for this element. Priority The priority for this action (Actions always have a priority of 1 if they are the only action leaving a stage) Message Enter an alert message to be shown to the user. You can also use an expression to 50 MBPM Designer User's Guide Chapter 12 Creating a Project Property Name Description make the message more context sensitive. Only start action if Only start the conditional action if this formula returns a positive result. When action completed Use this property to enter a visual script that is run when the stage is completed Clone new folder Clone a new folder in this action, marking its parent folder as the original folder. The parent folder will remain; the cloned folder proceeds to the next stage. Notes Use this to enter any specific notes for anyone using this element within the Designer environment. Flag action Property Name Description Caption Choose a caption for this element. It is the caption which is visible at runtime. Name Specify a unique name to identify this element. This name is not visible at runtime. Associated icon Choose an icon to represent this item within Designer, if you do not want to use the default. Position from top The position (in pixels) of this element, from the top edge of the process Position from left The position (in pixels) of this element, from the left hand side of the process design area. Font color Choose a font color for this element. Message Enter an alert message to be shown to the user. You can also use an expression to make the message more context sensitive. Only start action if Only start the flag action if this formula returns a positive result. MBPM Designer User's Guide 51 Chapter 12 Creating a Project Property Name Description Clone new folder Clone a new folder in this action, marking its parent folder as the original folder. The parent folder will remain; the cloned folder proceeds to the next stage. When action completed Use this property to enter a visual script that is run when the stage is completed Priority The priority for this action (Actions always have a priority of 1 if they are the only action leaving a stage) Flag used to invoke this action Choose which flag should be used to cause this action to be initiated. Folder which must raise flag Specify the folder which must raise this flag Loopback options Choose what should happen to the to-do lists for the folder which is being looped back. Notes Use this to enter any specific notes for anyone using this element within the Designer environment. Group stage Property Name Description Caption Choose a caption for this element. It is the caption which is visible at runtime. Name Specify a unique name to identify this element. This name is not visible at runtime. Associated icon Choose an icon to represent this item within Designer, if you do not want to use the default. Position from top The position (in pixels) of this element, from the top edge of the process Position from left The position (in pixels) of this element, from the left hand side of the process design area. 52 MBPM Designer User's Guide Chapter 12 Creating a Project Property Name Description Font color Choose a font color for this element. Background color Choose a background color for this element. Border color Choose a border (outline) color for this element. Forms Choose the order in which forms appear in the folder for this stage To Do list Users who will see this stage on their ToDo list Watch list Choose the users who will see the folder on their watch list when it is at this stage When stage started Use this property to enter a visual script that is run when the stage is started When stage completed Use this property to enter a visual script that is run when the stage is completed Notes Use this to enter any specific notes for anyone using this element within the Designer environment. Help URL A URL or expression which the help button will launch when clicked. Linked process stage Property Name Description Caption Choose a caption for this element. It is the caption which is visible at runtime. Name Specify a unique name to identify this element. This name is not visible at runtime. Associated icon Choose an icon to represent this item within Designer, if you do not want to use the default. Position from top The position (in pixels) of this element, from the top edge of the process MBPM Designer User's Guide 53 Chapter 12 Creating a Project Property Name Description Position from left The position (in pixels) of this element, from the left hand side of the process design area. Font color Choose a font color for this element. Background color Choose a background color for this element. Border color Choose a border (outline) color for this element. Forms Choose the order in which forms appear in the folder for this stage Linked processes The processes associated with this stage When stage started Use this property to enter a visual script that is run when the stage is started When stage completed Use this property to enter a visual script that is run when the stage is completed To Do list Users who will see this stage on their To Do list Watch list Choose the users who will see the folder on their watch list when it is at this stage Notes Use this to enter any specific notes for anyone using this element within the Designer environment. Help URL A URL or expression which the help button will launch when clicked. Process Property Name Description Caption Choose a caption for this element. It is the caption which is visible at runtime. Name Specify a unique name to identify this element. This name is not visible at runtime. Subject Process description 54 MBPM Designer User's Guide Chapter 12 Creating a Project Property Name Description Prefix of folder name A prefix for folders generated by this process Limit access to Define which roles can access this process. Perform external events before local events Perform external events before local events Stages order The order of the stages in the process Length of numeric suffix Indicate how many digits should be used to form the folder's numeric ID. (This is the total number of digits which follows the 'prefix to folder name', defined above.) Notes Use this to enter any specific notes for anyone using this element within the Designer environment. Rendezvous action Property Name Description Caption Choose a caption for this element. It is the caption which is visible at runtime. Name Specify a unique name to identify this element. This name is not visible at runtime. Associated icon Choose an icon to represent this item within Designer, if you do not want to use the default. Position from top The position (in pixels) of this element, from the top edge of the process Position from left The position (in pixels) of this element, from the left hand side of the process design area. Font color Choose a font color for this element. Priority The priority for this action (Actions always have a priority of 1 if they are the only action leaving a stage) Linked processes Use this to choose which Sub-Processes MBPM Designer User's Guide 55 Chapter 12 Creating a Project Property Name Description must complete in order for the rendezvous action to release the folder to the next stage. Wait for all/any linked processes to complete Specify whether this rendezvous action should wait for any of the incoming linked processes to finish, or whether it must wait for all of them. Only start action if Only start this rendezvous action if this formula returns a positive result. When action completed Use this property to enter a visual script that is run when the stage is completed Message Enter an alert message to be shown to the user. You can also use an expression to make the message more context sensitive. Clone new folder Clone a new folder in this action, marking its parent folder as the original folder. The parent folder will remain; the cloned folder proceeds to the next stage. Notes Use this to enter any specific notes for anyone using this element within the Designer environment. Rules stage Property Name Description Caption Choose a caption for this element. It is the caption which is visible at runtime. Name Specify a unique name to identify this element. This name is not visible at runtime. Associated icon Choose an icon to represent this item within Designer, if you do not want to use the default. Position from top The position (in pixels) of this element, from the top edge of the process Position from left The position (in pixels) of this element, from the left hand side of the process 56 MBPM Designer User's Guide Chapter 12 Creating a Project Property Name Description design area. Font color Choose a font color for this element. Background color Choose a background color for this element. Border color Choose a border (outline) color for this element. Forms Choose the order in which forms appear in the folder for this stage Watch list Choose the users who will see the folder on their watch list when it is at this stage Rules Rules to run for this stage When stage started Use this property to enter a visual script that is run when the stage is started When stage completed Use this property to enter a visual script that is run when the stage is completed Notes Use this to enter any specific notes for anyone using this element within the Designer environment. Help URL A URL or expression which the help button will launch when clicked. Start stage Property Name Description Name Specify a unique name to identify this element. This name is not visible at runtime. Associated icon Choose an icon to represent this item within Designer, if you do not want to use the default. Position from top The position (in pixels) of this element, from the top edge of the process Position from left The position (in pixels) of this element, from the left hand side of the process design area. MBPM Designer User's Guide 57 Chapter 12 Creating a Project Property Name Description Font color Choose a font color for this element. Background color Choose a background color for this element. Border color Choose a border (outline) color for this element. Notes Use this to enter any specific notes for anyone using this element within the Designer environment. Sub-Process Property Name Description Caption Choose a caption for this element. It is the caption which is visible at runtime. Name Specify a unique name to identify this element. This name is not visible at runtime. Stages order The order of the stages in the process Notes Use this to enter any specific notes for anyone using this element within the Designer environment. Sub-Process stage Property Name Description Caption Choose a caption for this element. It is the caption which is visible at runtime. Name Specify a unique name to identify this element. This name is not visible at runtime. Position from top The position (in pixels) of this element, from the top edge of the process Position from left The position (in pixels) of this element, from the left hand side of the process design area. Font color Choose a font color for this element. 58 MBPM Designer User's Guide Chapter 12 Creating a Project Property Name Description Background color Choose a background color for this element. Border color Choose a border (outline) color for this element. Associated icon Choose an icon to represent this item within Designer Sub-Process Sub-Process for this Sub-Process stage Forms Choose the order in which forms appear in the folder for this stage When stage completed Use this property to enter a visual script that is run when the stage is completed Notes Use this to enter any specific notes for anyone using this element within the Designer environment. Help URL A URL or expression which the help button will launch when clicked. System stage Property Name Description Caption Choose a caption for this element. It is the caption which is visible at runtime. Name Specify a unique name to identify this element. This name is not visible at runtime. Associated icon Choose an icon to represent this item within Designer, if you do not want to use the default. Position from top The position (in pixels) of this element, from the top edge of the process Position from left The position (in pixels) of this element, from the left hand side of the process design area. Font color Choose a font color for this element. Background color Choose a background color for this MBPM Designer User's Guide 59 Chapter 12 Creating a Project Property Name Description element. Border color Choose a border (outline) color for this element. Forms Choose the order in which forms appear in the folder for this stage Watch list Choose the users who will see the folder on their watch list when it is at this stage When stage started Use this property to enter a visual script that is run when the stage is started When stage completed Use this property to enter a visual script that is run when the stage is completed Auto-forward folders to Pick a stage to which you want folders reaching this stage to be forwarded to automatically. Notes Use this to enter any specific notes for anyone using this element within the Designer environment. Help URL A URL or expression which the help button will launch when clicked. Timed action Property Name Description Caption Choose a caption for this element. It is the caption which is visible at runtime. Name Specify a unique name to identify this element. This name is not visible at runtime. Associated icon Choose an icon to represent this item within Designer, if you do not want to use the default. Position from top The position (in pixels) of this element, from the top edge of the process Position from left The position (in pixels) of this element, from the left hand side of the process 60 MBPM Designer User's Guide Chapter 12 Creating a Project Property Name Description design area. Font color Choose a font color for this element. Timed event A variable or formula before or after which to start this action. Message Enter an alert message to be shown to the user. You can also use an expression to make the message more context sensitive. Clone new folder Clone a new folder in this action, marking its parent folder as the original folder. The parent folder will remain; the cloned folder proceeds to the next stage. Only start action if Only start the timed action if this formula returns a positive result. When action completed Use this property to enter a visual script that is run when the stage is completed Start this action When to start the action Duration Choose the length of time that this timed action should wait, before the folder proceeds to the next stage. Before / After Choose whether to Start this action before or after specified interval Priority The priority for this action (Actions always have a priority of 1 if they are the only action leaving a stage) Loopback options Choose what should happen to the to-do lists for the folder which is being looped back. Notes Use this to enter any specific notes for anyone using this element within the Designer environment. User action Property Name Description Caption Choose a caption for this element. It is the MBPM Designer User's Guide 61 Chapter 12 Creating a Project Property Name Description caption which is visible at runtime. Name Specify a unique name to identify this element. This name is not visible at runtime. Description Enter a description for this action. This appears as the description at the start of the process. Associated icon Choose an icon to represent this item within Designer, if you do not want to use the default. Position from top The position (in pixels) of this element, from the top edge of the process Position from left The position (in pixels) of this element, from the left hand side of the process design area. Font color Choose a font color for this element. Form Choose a form to associate with this action. When the user reaches this action, the form you choose here is the one that will be shown. Form field Property behavior for this form Clone new folder Clone a new folder in this action, marking its parent folder as the original folder. The parent folder will remain; the cloned folder proceeds to the next stage. When action started Use this property to enter a visual script that is run when the stage is started When action completed Use this property to enter a visual script that is run when the stage is completed Chained action Indicate whether or not you want to run a chained action from this user action. Chained action name If you've chosen to run a chained action, use this property to specify the required action. You may use an expression to dynamically choose the appropriate action. 62 MBPM Designer User's Guide Chapter 12 Creating a Project Property Name Description Message Enter an alert message to be shown to the user. You can also use an expression to make the message more context sensitive. Confirm action Choose whether the user needs to confirm this action. (Only available if no form is associated to the action.) Priority The priority for this action (Actions always have a priority of 1 if they are the only action leaving a stage) Re-open folder Return the user to this folder when the action is submitted Available to roles Specify which roles are allowed to perform this action Only show Action if When a Form is evaluated at runtime for a stage, if the user has the role and the condition evaluates to true, the Action is displayed. Otherwise, the Action is not displayed. The default value is blank, which is interpreted as "true" for the condition. Loopback options Choose what should happen to the to-do lists for the folder which is being looped back. Notes Use this to enter any specific notes for anyone using this element within the Designer environment. Help URL A URL or expression which the help button will launch when clicked. User stage Property Name Description Caption Choose a caption for this element. It is the caption which is visible at runtime. Name Specify a unique name to identify this element. This name is not visible at runtime. MBPM Designer User's Guide 63 Chapter 12 Creating a Project Property Name Description Associated icon Choose an icon to represent this item within Designer, if you do not want to use the default. Position from top The position (in pixels) of this element, from the top edge of the process Position from left The position (in pixels) of this element, from the left hand side of the process design area. Font color Choose a font color for this element. Background color Choose a background color for this element. Border color Choose a border (outline) color for this element. To Do list Users who will see the folder on their to-do list when it is at this stage Watch list Choose the users who will see the folder on their watch list when it is at this stage When stage started Use this property to enter a visual script that is run when the stage is started When stage completed Use this property to enter a visual script that is run when the stage is completed Forms Choose the order in which forms appear in the folder for this stage Notes Use this to enter any specific notes for anyone using this element within the Designer environment. Help URL A URL or expression which the help button will launch when clicked. 64 MBPM Designer User's Guide Chapter 13 Introduction to Sub-Processes Chapter 13 Introduction to Sub-Processes Sub-Processes allow the process to be broken down into portions that can be re-used in any process in the project. They can be used for portions of processes that are repeated. This saves the process designer from creating the portion more than once. They may also be used to break down a large process into several smaller processes. In earlier versions of MBPM, Sub-Processes were called map segments. Sub-Processes are designed in much the same way as processes except that the first action within a Sub-Process has no properties and is not removable. When a folder arrives at a Sub-Process stage, it drops into the Sub-Process. It progresses through the stages of the Sub-Process until it arrives at an archive stage. This is a virtual archive stage. It indicates that the folder should leave the Sub-Process stage (on the “top level” process) by one of the rendezvous actions leaving that stage. When folder comes to the end of the Sub-Process, it rejoins the main process. 1. The same folder flows through main process and Sub-Process. 2. Main process waits at Sub-Process stage until the Sub-Process is completed. 3. Sub-Processes must have same exit and re-entry point on the main process. 4. Sub-Processes can be nested within other Sub-Processes. 5. A Sub-Process has its own Business Object to hold local variables and their values. MBPM Designer User's Guide 65 Chapter 13 Introduction to Sub-Processes Sub-Process Rules l Any action can lead into a Sub-Process stage. l Only Rendezvous actions may lead out of a Sub-Process stage. Sub-Process Properties l Sub-Processes can have multiple end points, but only one starting point. l Sub-Processes can be nested, that is, they may contain other Sub-processes. Creating Sub-Processes To create a new Sub-Process, on the Home ribbon tab Components group, click SubProcess. The Designer creates a default Sub-Process in the main pane. The new Sub-Process consists of a start stage and a user stage connected by a user action. In the Properties pane, edit the Sub-Process properties as required. Note: Sub-Processes are added by dragging and dropping on to a parent process. Adding a Sub-Process to a Process The following steps describe how to add a Sub-Process to a main process, or another SubProcess: 1. Create the Sub-Process. A new Sub-Process section is added to the Process toolbox and the newly created SubProcess is displayed in it. 2. In the main process, drag and drop the Sub-Process from the Sub-Processes pane. Note: You can only draw a Rendezvous action from a Sub-Process stage. Using Sub-Processes The same Sub-Process can be reused several times in the same process and can also be used in other processes in the same project. 66 MBPM Designer User's Guide Chapter 13 Introduction to Sub-Processes If the Sub-Process is added to a library it can also be used within other projects in the solution. Nested Sub-Processes Sub-Processes can be nested. For example, to nest two Sub-Processes to a top process: 1. Create the Sub-Processes. 2. In the top process attach the first Sub-Process. 3. In the first Sub-Process, attach the second Sub-Process. MBPM Designer User's Guide 67 68 MBPM Designer User's Guide Chapter 14 Introduction to Linked Processes Chapter 14 Introduction to Linked Processes Linked Process stages are used to display a number of linked processes, each of which will create a “child folder” that can be processed simultaneously or in parallel to the main process. Linked processes should only be used when there is a requirement for the parent folder to wait until the child folders have finished processing before the parent folder continues on through its process. If this requirement does not exist, the project should raise a flag to start a new folder in another process. Linked Process stages may also be used in conjunction with rendezvous actions to place the parent process “on hold” status until one or more linked processes are completed. Each time a folder arrives at a Linked Process stage, a child folder is initiated in each Linked Process. Because of this inherent functionality, loop-back actions may not be desirable for linked process stages. Each time a loop-back action is triggered a new set of child folders will be created. MBPM Designer User's Guide 69 Chapter 14 Introduction to Linked Processes In the above example, Process 2 and Process 3 are run in parallel with Process 1. Linking Processes 1. You can only link a parent process to other processes within the same project. 2. Create the parent process. 3. Use the New Process function to create the process to which you want to link the parent. 4. In the parent process, add a Linked stage. 5. Select the linked stage, in the properties pane, click on the Linked processes drop-down. The Linked stage properties contain a list of all processes. The system updates this list as new processes are created within the project. 6. Select the linked processes you wish to display at this point from the list displayed. You may check all the linked processes that apply. If you have not yet created the desired linked processes, you may return to this list after the processes have been created and select them at that time. 7. Click OK. The selected processes are now linked. 70 MBPM Designer User's Guide Chapter 14 Introduction to Linked Processes Note: When a child process is linked, a flag is raised. Note that the flag added to linked processes should not be deleted. Nested Linked Processes Linked processes can be nested. To nest linked processes to a top process: 1. Create the linked processes. 2. In the top process attach the first linked process. 3. In the first linked process, attach the second linked process. MBPM Designer User's Guide 71 72 MBPM Designer User's Guide Chapter 15 Working with Processes Chapter 15 Working with Processes Adding Stages to a Process To add a stage to the process: 1. From the Toolbox, drag and drop the required type of Stage. 2. Click on the process where you wish to place the stage. 3. In the properties pane, edit the stage properties as required. The Designer will allocate a default name (for example GroupStage1). You can move stages around the main pane of the Designer by selecting them and dragging them to the desired location. Any action lines attached to the stage will be automatically adjusted as you move the stage. Defining the Process Stage Order The Stages Order property enables you to establish the stage priority for each stage on the process. The stages pass their priority to the actions originating from them. If the common stage is higher on the Stages Order list, the conditional actions from the common stage will be assessed before the conditional actions on the other stage. The default order of the stages on the Stages Order tab is defined by the order in which the stages are originally added to the process. Set the Stage Order To set the Stage Order for stages on your process: 1. In the Process Properties pane, click in the Stages field to display the popup menu showing the current order sequence. 2. Select a stage from the list, and use the up and down arrow buttons to move the stage in the order sequence. 3. Click outside the list menu to save the changes. Adding Actions to a Process Actions can run directly between stages or loopback to the same stage. MBPM Designer User's Guide 73 Chapter 15 Working with Processes Add a Direct Action To add an action to a process: 1. In the Toolbox pane, Actions section, click on the required action type. 2. Click on the stage that represents the source of the action. 3. Drag the action from the source stage to the destination stage of the action. A line is displayed from the source stage to the destination stage. MBPM Designer automatically assigns a default name (for example UserAction1). 4. Edit the action properties. 5. To move actions, select the action and drag it to a new location. Add a Loopback Action You can draw any type of action other than a Rendezvous action so that the source and destination stages are the same. Such an action is called a loopback action. To add a loopback action: 1. In the Toolbox pane Actions section, click on the required action type. 2. Click on the stage that is to be the source and destination of the action and release the mouse button (do not drag). An action line is drawn that loops back to the same stage. You may need to drag the loopback action out from the stage to view it clearly. Changing the Action Style To change the type of action line style: 1. Select the Design tab and then click Line Styles. 2. Select a line style from the drop-down gallery. The selected style is applied to the action. Icons and Event Handlers Icons To hide the icons associated with process elements, select the Design tab and then click Icons. The icons for stages and actions are not displayed for the processes. Click Icons again to display them. Event Handler To hide the event handler icons associated with process elements, select the Design tab and then click Event Handlers. 74 MBPM Designer User's Guide Chapter 15 Working with Processes The event handler icons for stages and actions are not displayed for the processes. Click on Event Handlers button again to display them. Adding Comments to a Process A Comment allows you to annotate your process with descriptive notes about the stages and actions it contains. This makes the logic in your process easier for others to understand. You can place any number of comments directly on the process to provide extra information for yourself and other designers. Comment Action Rules You cannot draw actions to or from a comment. Add a Comment To add a comment to a process: 1. In the Toolbox pane, Miscellaneous section, click on Comment. 2. Click on the process where the comment is to be placed. A comment box is placed on the process. 3. Click inside the comments box and type the comment. You can also type the comment in the Properties > Comments Text field. Tip: To enter new line in a Comment field, press CTRL+Enter. 3. To move the Comments box, drag it to a new location. 4. To resize the Comments box, drag the handles. 5. You can enter a name for the comments in the Properties editor. Change the Comment Shape and Content Style You can change the shape of the comment box and the style of the contents. To change comment shape: 1. Select the Comment. 2. Select the Processes tab and then click on Shape Styles. 3. Select a shape style from the drop-down gallery. Change Style of Comment Contents In the process, select the Comment, the comment properties are displayed. To specify the font in which the comments are to be displayed, in the Properties editor scroll through the available drop-down, or click on the Fonts button. (Designer displays the standard Font dialog box and you can select the font, text color and size you require.) MBPM Designer User's Guide 75 Chapter 15 Working with Processes Selecting Process Elements To o move a process element or to display the corresponding Properties editor, you must select it. To select a process element, click the Pointer button and then click the process element. Click anywhere on the element and drag it to its new position. To select multiple process elements, perform one of these actions: l l l l Place your cursor over a point on the process, click and hold the left mouse button and, drag your cursor to encompass all of the desired process elements. Designer will display a dashed line indicating the outer edges of your selection. All items within the dashed line will be selected when you release the mouse button. From the Process toolbox, choose the Pointer button, and click on a process element. Then, holding either the Shift or the Ctrl keys, select any additional elements desired. Press Ctrl + A. MBPM Designer selects all elements currently on the process. If you have selected multiple process elements, the handles surrounding each selected element will be grayed out. You may move the elements as a group to another position on the process. You may also cut, copy or delete them as a group. Copying Process Elements You can copy process elements. To copy process elements: 1. Select one or more process elements using the [Ctrl] or [Shift] keys. 2. Perform one of these actions: n Select the Home ribbon tab, in the Clipboard group click Copy. n Right-click and select Copy. 3. To paste the process element, select the process that you want to paste the clipboard contents. (It is not necessary to select the process if you want to paste into the same process.) n Select the Home ribbon tab, in the Clipboard group click Paste. n Right-click and select Paste. You may need to drag the pasted content to ensure that it does not overlap existing process elements. If pasted elements have the same name as existing elements, they will be renamed by adding a digit to the end of the name to avoid confusion. For example, if you copy a stage called Approval and paste it into the same process, the pasted stage will be renamed Approval1. If you copy an action and paste it into the same process, the pasted action will have the same source and destination stages as the copied action. If you paste a copied action 76 MBPM Designer User's Guide Chapter 15 Working with Processes into a different process, it will be pasted into the process without any source or destination stage. Deleting Process Elements You can remove process elements from a process using either of the following methods: l Select the element and press the DELETE key on your keyboard. l Right-click on the element and select Delete from the shortcut menu. l Select the element, and in the Home ribbon tab Clipboard group, click Cut. When a stage is deleted the associated actions remain. Process elements that are Cut are saved in the clipboard, and may be pasted back onto the same or another process in the project. Process elements that are deleted using the Delete function are not stored. However, you may use the Undo option in the Quick Access toolbar to restore deleted items immediately. Changing Fonts and Colors of Process Elements You can change the font and color of process elements using the Design tab of the ribbon menu. To change font or color: 1. Open the process. 2. Select the appropriate process element. 3. To change the font, in the Design tab of ribbon change the font color, font name, and font size. 4. To change the color, in the Design tab of ribbon change the background color and border color. You can also use the Designer Options to set the default background and border color. MBPM Designer User's Guide 77 78 MBPM Designer User's Guide Chapter 16 Stage Types Chapter 16 Stage Types A stage is where the folder is at in the process, that is, where it stops awaiting action. Stages may require human intervention or they may be progressed automatically, either by querying existing data in the folder or by adding more data to the folder. When a folder arrives at a particular stage, it is made available to selected business users through the client interface for examination or action. There are nine types of stages: Stage Type Icon Description Clapperboard The Clapperboard represents the starting point of a process. When you create a process the Designer inserts a Clapperboard by default, with a single User action leading to a single User stage. User Where action is required by a single specified user. Group Where action is required by one (non-specific) member of a group. Sub-Process Allows you to reuse common portions of a process. When a folder reaches a sub process stage, it enters the specified sub process. When it comes to the end of the Sub-Process, it rejoins the main process. MBPM Designer User's Guide 79 Chapter 16 Stage Types Stage Type Icon Description There is no generic stage for Sub-Process in the toolbox. You need to create a Sub-Process from the Components group. Linked Process Interrelated processes may need to complete in parallel. A Linked process stage is used to achieve this by linking additional processes to the main process. A Linked process stage can be triggered to continue when one or all of its linked processes have finished. Rule A rule can be invoked from a Business Rules Engine. System Where system/automation action is required (that is no user intervention is required). Common Actions from a common stage can be applied to multiple stages, eliminating the need for duplicate actions around several different stages. Archive When a folder reaches an archive stage the process is completed and the folder is no longer active and cannot be viewed by the client. The information remains in the database and can be reported on using the reporting tools. 80 MBPM Designer User's Guide Chapter 16 Stage Types Clapperboard (Start Stage) The Clapperboard represents the starting point of a process. When you create a process the Designer inserts a Clapperboard by default, with a single User action leading to a single User stage. You cannot remove the Clapperboard from a business process, and you cannot add another. The user action that initiates from the start stage is called the initiating action. Clapperboard Rules The following restrictions apply to the Clapperboard stage. l l l You can move the Clapperboard within the process, but you cannot remove it from the process. You cannot draw conditional, timed, or rendezvous actions coming from the Clapperboard. You cannot draw any type of action going into the Clapperboard. User Stage A User stage represents a point in a process at which a particular business user is expected to take some action. When a folder reaches a User stage it is placed in a specific business user’s To Do list in the client interface. User Stage-Action Rules l You can draw any type of action going into a User stage. l You can draw any type of action except a Rendezvous action coming from a User stage. Group Stage A Group stage represents a point in a process at which any process user associated with a particular role can take action. When a folder reaches a Group stage it is placed on the To Do list of every business user associated with a specific role. Group Stage Action Rules l You can draw any type of action going into a Group stage. l You can draw any type of action except a Rendezvous action coming from a Group stage. Sub-Process Stage Sub-Process stages replace what were referred to in a previous release of Designer as 'map segment' stages. MBPM Designer User's Guide 81 Chapter 16 Stage Types Note: You have to create a Sub-Process stage from the Components tab before it appears in the toolbox as there is no longer a generic Sub-Process stage. Sub-Process stages allow the main process to be broken down into reusable portions that can be used in any process. They can be used for portions of processes that are repeated. This saves the process designer from creating the same portion more than once. The effect of a folder reaching a Sub-Process stage is that the folder then passes through the stages and actions defined in the Sub-Process before returning to the Sub-Process stage and continuing through the main process. Sub Process Stage Action Rules l You can draw any type of action going into a Sub-Process stage. l You can only draw a Rendezvous action coming from a Sub-Process stage. Linked Process Stage Linked process stages replace what were referred to in a previous release of Designer as Sub Procedure stages. A Linked Process stage allows you connect one or more processes that can be performed in parallel with the main process. A Linked Process stage has the following characteristics: l l l A Linked Process stage can call multiple processes, each of which is processed in parallel. When a folder reaches a Linked Process stage the Engine creates a child folder for each Linked Process named by the linked stage, and it is this child folder that is used within each of the Linked Processes. The original folder is unchanged. Linked process stages can be queued to resume when one or all of its linked processes have finished. Linked Stage Action Rules l You can draw any type of action going into or coming from a Linked Process stage. Rule Stage A Rule stage allows you to execute a rule in a Business Rules Engine as part of your process. The advantage of executing a rule from the Rules property is that the rule is executed after the form is submitted, rather than as part of Submit processing, so that control is returned to the client sooner. Rule stage Action Rules l You can draw any type of action going into a Rule stage. l You can draw any type of action except a Rendezvous action coming from a Rule stage. 82 MBPM Designer User's Guide Chapter 16 Stage Types System Stage A System stage represents a point in a process at which the Engine is expected to take some action, without the involvement of any business user. When a folder reaches a System stage it is handled automatically by the Engine. The folder will not appear on any business user’s To Do list. System Stage Action Rules l l You can draw any type of action going into a System stage. You can draw any type of action except a Rendezvous action coming from a System stage. Common Stage Common stages are used in cases where the same sequence of steps occurs at several points in the business process. To create a Common stage: 1. Create a Common stage where you have set of actions that should be performed. 2. Link Common stage to the stages from where it needs to be invoked through Properties task pane. Common Stage Action Rules l l You can draw a loop back action from a Common stage to itself. However, you cannot draw any type of action going into a Common stage. You can draw any type of action except a Rendezvous action coming from a Common stage. Archive Stage An Archive stage represents a logical end point for a business process. A process may include several Archive stages, since a process can have several different outcomes. For example, a travel request has been accepted and a flight has been booked, or the travel request has been rejected. When a folder reaches an Archive stage it is no longer visible in the client interface, although it can still be examined using MBPM Administrative Tools. Archive Stage Action Rules l You can draw any type of action going into an Archive stage. l You cannot draw any type of action coming from an Archive stage. Deleting a Stage To delete a stage from a process, either: MBPM Designer User's Guide 83 Chapter 16 Stage Types l Right-click on the stage and select Delete from the context sensitive menu. l Select the stage and press the DELETE key. The stage is deleted from the process. Any associated actions will remain in place and must be deleted separately. 84 MBPM Designer User's Guide Chapter 17 Action Types Chapter 17 Action Types An action is where a folder is progressed either by human intervention or automatically. MBPM defines the step or activity necessary to modify data and/or move a folder from one stage to the next as an action. Examples of actions may include activities such as: l Filling out a form. l Logging a telephone call. l Reviewing an attached file. l Approving or denying a request. Examples of actions that do not require human intervention: l Determining the routing for a folder based on information available in a folder or in a database. l Raising or responding to an event. l Moving a folder after a timed event. l Starting an external application. You can set properties in the MBPM Designer to accommodate a wide variety of possible business activities. There are five types of actions: Action Type Icon Description User Actions performed by the user, for example the entry of data. Timed Actions triggered after a set time period before or after a specific event. Conditional Actions executed when their Only start action if property is met. Rendezvous This action can be linked from a Linked Process stage. Once one or more MBPM Designer User's Guide 85 Chapter 17 Action Types Action Type Icon Description processes have been completed, any folder waiting at the Linked Process stage can be moved on using the Rendezvous action. Flag Within a MBPM process, Flag actions are used to send messages between processes and/or external applications. A process may contain several processes allowing actions in one folder's life cycle to influence the actions performed upon another folder. Flag actions trigger messages which indicate that event has occurred and to pass data between processes. Keep in mind the following when working with actions: l l l The first action that is executed in a process is called a creation action. It can be changed to a flag action but cannot be changed to a conditional, timed or rendezvous action. Creating a process where the creation action is chained to an action that uses the To Do List role is not supported. An error is displayed when you attempt to invoke a folder of this process. An action created within a process in the Designer may be in a connected or unconnected state (i.e. to a stage). In order to differentiate between a connected and unconnected action, unconnected actions are represented using dashed lines. Loopback Actions A loopback action is one that begins and ends at the same stage. It updates a folder but does not move it on to a different stage. User Action A User action is invoked by a user, possibly requiring the user to enter data via a form. 86 MBPM Designer User's Guide Chapter 17 Action Types User Action Rules The following rules apply to user actions: l You can draw User actions from any stage except an Archive. l You can draw User actions to any stage except a Common stage. l User actions can be loopback actions. l You can draw any number of User actions from the Clapperboard. l l If you draw more than one User action from a stage, they will be shown in the client folder in the order of the set in the priority property. User actions are the only actions that can display a form to a process user. Timed Action A Timed action is initiated at a specified interval after a specific event in the life of a folder. Timed Action Rules The following rules apply to timed actions: l You can draw Timed actions from any stage except Archive stages or the Clapperboard. l You can draw Timed actions to any stage except a Common stage. l Timed actions can be loopback actions. Note: To make a loopback timed action run more than once, follow one of the following options: l l Use the ProcessContext.WhenFolderLastUpdated variable in the Timed Event property of the loopback timed action. Use a DateTime variable as the Timed Event where the time value is later than ProcessContext.WhenFolderLastUpdated. Note: Loopback timed actions will only run once if the above condition is not met. Conditional Action A Conditional action is initiated automatically if a specified logical condition is evaluated by the Engine to be true. The condition is evaluated when a folder arrives at a stage, and is reevaluated each time a loopback action is processed for the stage. Conditional Action Rules The following rules apply to conditional actions: l You can draw Conditional actions from any stage except Archive stages. l Conditional actions can be loopback actions. l You cannot draw Conditional actions from the Clapperboard. l If you draw more than one Conditional action from a stage, they will be evaluated in the order of priority set by the Priority property. MBPM Designer User's Guide 87 Chapter 17 Action Types Rendezvous Action A Rendezvous action can be invoked when a folder in a process of a Linked Process stage ends. You can set a Rendezvous action to trigger when one or all processes reach completion. Rendezvous Action Rules The following rules apply to rendezvous actions: l You can draw Rendezvous actions only from a Linked or Sub-Process stage. l You can draw Rendezvous actions to any stage except a Common stage. l If you draw more than one Rendezvous action from a stage, they will be evaluated in the order of the priority set by the property. Flag Action A flag action is invoked when the Engine is informed that a specified event has occurred. This may be the result of: l Action taken in the same process. l Action taken in a different process. Flag Action Rules The following rules apply to flag actions: l You can draw flag actions from any stage except an Archive stage. l You can draw flag actions to any stage except a Common stage. l Flag actions can be loopback actions. l You can draw multiple flag actions from the Clapperboard. Loopback Action You can draw an action where the source and destination stages are the same. Such an action is called a loopback action. The action type can be any action except a Rendezvous action. A loopback action is any action that updates a folder, but does not move it on to a different stage. By default, when a loopback action is taken on a folder, MBPM does not regenerate the list of users who have the folder on their To Do or Watch lists. It simply updates the details for this folder in each list. Using the properties on the Roles tab for a loopback action, you can modify this functionality so that the To Do and Watch lists are regenerated. Add a Loopback Action To add a loopback action: 1. In the Toolbox pane Actions section, click on the required action type (excluding Rendezvous actions). 88 MBPM Designer User's Guide Chapter 17 Action Types 2. Click on the stage that is to be the source and destination of the action and release the mouse button (do not drag). An action line is drawn that loops back to the same stage. You may need to drag the loopback action out from the stage to view it clearly. MBPM Designer User's Guide 89 90 MBPM Designer User's Guide Chapter 18 Introduction to Folders Chapter 18 Introduction to Folders A folder is set of data that progress through the process. Each time a business process is initiated, the system creates a folder containing one or more forms. When an end-user opens the folder, these forms are displayed on separate tabs. At the bottom of the window, action buttons are displayed. Users can add or edit the information on the folder forms by clicking on actions. A folder can also contain documents. These documents are attached to the folder using a clip. The MBPM developer designs the process that the folder follows by specifying the stages and actions on a process and designing the forms that are linked to the actions. Another important part of the folder concept is that there is only ever one copy of a folder passing through the process at any one time. This means there is no duplication and everyone involved in the process is working from the same source of information. During the lifetime of a folder, the forms contained within it can change as the requirements of the workflow dictate. Controls on a form can be set to be hidden, read-only, required, or optional, and these attributes can be set differently at each stage. Folder ID As a folder is created, it is automatically assigned a unique identifier – this is called the folder ID. This unique identifier negates the need for designers to build such identifiers into their projects. The folder ID is stored in the database. MBPM developers can use the folder ID to query the MBPM database tables. Folder Name As a folder is created, it is automatically assigned a folder name. This name is comprised of a textual prefix concatenated with a numerical suffix. You can specify what the textual prefix should be and how long (number of digits) the numerical suffix should be. The folder name is displayed on the MBPM desktop interface. It acts as a descriptive tracking number for the folder. Cloning Folders The Clone new folder property copies the folder from the stage the action is coming from to the stage the action is going to. The original folder is left behind. This property is not available for the first action. MBPM Designer User's Guide 91 Chapter 18 Introduction to Folders All actions, except the first action, have the Clone new folder property. When this property is set, a copy of the folder is created when the action is taken. This copy will include all of the folder’s data but will have a different Folder Name and Folder ID. If the action advances the folder from one stage to another, only the cloned copy of the folder will advance. Note: When you select the Clone new folder property for a system action leading to a user stage, the To Do list property of user stage should be set to Everybody role instead of the default Originator role. This is because with the default Originator role, the cloned folder's originator becomes a system action and therefore the folder will not be visible to any user in the To Do list of MBPM Web Client. 92 MBPM Designer User's Guide Chapter 19 Introduction to Libraries Chapter 19 Introduction to Libraries A library is published to the MBPM repository database in the same way as a project. A library can be used to store parts that will be of use in more than one project. When a library is associated with a project its contents become available to that project. Libraries have a number of advantages: l l l l New projects may be created more quickly – existing libraries may be associated with new projects Maintenance of projects is simpler – if a form that is used in several projects needs to be updated, it need only be updated in the library. Once a project is redeployed with the latest version of the library, the updated form becomes available to users of that project. Increased accuracy – by maintaining one copy of a commonly used part, the likelihood of introducing an error is minimized. More than one process designer can build projects simultaneously – each process designer works on a library. These libraries are then brought together in one project file. One or more libraries can be attached to any project file. Once a library is attached to a project, all of the elements in that library are available to the project. If a library is updated, the process designer will be warned the next time when they open the project. You can store the following components in a library: l Business Objects l Client Scripts l Connections l Custom Lists l Flags l Form Segments l Forms l Roles l Server Scripts l Sub-Processes l Visual Scripts MBPM Designer User's Guide 93 Chapter 19 Introduction to Libraries Creating a Library To create a new library, on the Home ribbon tab, Components group, click on the Library button. A new empty library is added to the Inventory. The empty library will consist of the following: l Connections l Roles Adding Items to Library To add an item to a library: 1. In the Inventory tab, select the Library. 2. Right-click on Library, click New, and create the new item from the list. Any item in the list except for Project and Library can be added to the current library. In the Inventory, the new item is added to the library. Associating Library with a Process To associate a library with a process: 1. Deploy the Library. 2. Click the Repository tab in the Navigation pane, right-click on MBPM Deployment Service and click Refresh. 3. The deployed library with version numbers (for example, v1, v2, v3, etc) is displayed. You can right-click on a version and choose from the following: l Add this library to current project See step 5 for details. l Retrieve Click on this menu item to save your library to a location on your computer. l Add to local storage This will add the chosen version to the user's Offline Library Storage. You can choose this option if you need the library to be locally available without connecting to MBPM Service (that is, work offline.) 4. In the Inventory tab, click on the Project to which you would like add the library. 5. In the Repository tab, right-click on the chosen version of the library and click Add this library to current project. The chosen version of the library is attached to the solution. 94 MBPM Designer User's Guide Chapter 19 Introduction to Libraries Associating Library with a Process of another Solution After a library is created and if you would like to add it to a project in another solution: 1. Open the solution to which you would like to reference a library that is already available. 2. In the Inventory tab, click on the Project to which you would like to reference the library. 3. In the Repository tab, right-click on the chosen version of the library and click Add this library to current project. 4. Go back to the Inventory tab. A new item called Referenced Libraries is displayed. The version that you have chosen in earlier step is added to it. If a newer version of the library is available, an exclamation icon and a tool tip is displayed with the library name icon suggesting that you can right-click and choose Update to get the latest version of the library. You will be prompted that the newer version will replace the existing version. Click Yes to get the latest version. MBPM Designer User's Guide 95 96 MBPM Designer User's Guide Chapter 20 Designing a Form Chapter 20 Designing a Form Guidelines When designing a form in MBPM: l l l l l l Avoid large forms with a lot of controls as they may be difficult to use, slow to publish and slow to display. If necessary, you can divide form controls across a number of forms linked together by chained actions (effectively, a multi-page form). If the same controls are required on many forms, group such controls together in a form segment that can then be included in any forms that need to display that information. Before building the form, create a worksheet summarizing the information the form is to collect and display. Paper forms are not always good models for the design of electronic forms. In MBPM, you can set field visibility on forms and you can display multiple forms on different tabs at stages in the process. This provides greater flexibility than a single page of a paper form can offer. Remember that different machines have different color palettes so your users might not see the exact color scheme you design. l It is good practice to: l Add a title to all forms. l Place key data (creation date, originator, folder name) in read-only fields at the top of the form and to place routing/audit data at the bottom of the form. l Design the form to avoid horizontal scrolling. l If possible, try to: l Avoid graphical backgrounds since they increase the time required to load the form. l Avoid large number of different fonts on a form. l Avoid placing labels on top of images. Note: When designing a form using a font which is not available on the deployment service, any references to that font will always be rendered in MS Sans Serif, or equivalent. Creating a Form In most cases, it will be necessary to create one or more forms as part of the process. These forms will be used to collect and/or distribute information. MBPM Designer User's Guide 97 Chapter 20 Designing a Form Forms can be as simple or as complex as required, and may consist of the following: l l l A form background, provided by default (required) Background controls, such as images, frames, and rules, which are used as layout and design controls (optional) Foreground controls, such as buttons, attachment clips, and grids, which are used to collect and display information. In addition to any form controls you chose to add, forms have several predefined properties, which may be changed or reviewed as required through the Properties pane. When using a control on a form that expands when clicked (for example, Date/time control), make sure the form is designed to be big enough to display the control completely at runtime. Note: There is no restriction on the maximum size of a Form. Scrollbars are automatically displayed when size of Form exceeds the screen dimension. Create a New Form To create a new form: 1. On the Home ribbon tab, Components group, click the Form button. You can also create a form using templates or by following the steps below: a. Right-click menu on any item in the Inventory. b. Click New. c. Click Form. A blank form is displayed in a tabbed window in the Designer. You can drag the corners or sides of this form to re-size it. To change the appearance of the form, edit the form properties. Drag and drop the controls in the toolbox to build the form. Note: When a form is created it is not associated to anything. To use the form you must attach one or more processes to it. The Form toolbox is replaced with the process toolbar when you are working on a process. Using the Form Toolbox Form controls are added to forms and form segments via the Form Toolbox. The Form Toolbox is a floating dialog, which you may move or toggle on/off at your convenience. The Form Toolbox will automatically be displayed by default when a form is active in the Designer. To toggle the Toolbox on and off: l Select the View ribbon tab and click on the Toolbox button. The form toolbox is divided into two sections: 98 MBPM Designer User's Guide Chapter 20 Designing a Form l Default The Pointer allows you to select a particular form control or to cancel a select-and-drag action. l Controls The controls that can be added to the form or form segment are listed here. l Business Objects The Business Objects can be used to access and manipulate data in a business process. Using Forms and Form Segments Whenever you are designing a form, the form toolbox will be available. The buttons on the form toolbox are used to add form controls to the form. Open an Existing Form or Form Segment You can open a Form or Form Segment in one of the following ways: l l l In the Inventory, double-click the Form/Form Segment or right-click on Form/Form Segment and click Open. In the Inventory, under the 'Used by Forms' node. When a Form Segment is added to a Form, you can right-click within the Form Segment and click 'Go To' and select the form. Close a Form or Form Segment To close a form or form segment: l In the Inventory, right-click on Form/Form Segment and click Close. Or l Click the 'X' button for the Form/Form Segment tab in main pane of the Designer. Or l Right-click on Form tab in the main pane of Designer and click Close. l Right-click on any other tab in the main pane of Designer and click 'Close other tabs' (Form will be closed together with all other open tabs). Close a Form or Form Segment To close a form or form segment: 1. In the Designer, click on the form’s tab. 2. Click Close in the MBPM menu. If you have changed the object’s definition since last saving it, you are prompted to save it. Editing Form and Form Segment Properties To specify the properties of a form or form segment, click anywhere in the form that is not occupied by a form control. The form name will appear in the Properties pane, together with a list of its properties. You can specify or alter any of the properties in the Properties pane. MBPM Designer User's Guide 99 Chapter 20 Designing a Form Form Component Property Name Description Name Specify a unique name to identify this component. This name is not visible at runtime. Caption Choose a caption for this component. Normally it is the caption that is visible at run-time. Height Specify the height, in pixels, of this component. Width Specify the width of the form, in pixels. Color Choose a background color for the form. Font Choose a font for this form. Font color Choose a font color for this form. Restrict viewing to ... Roles that can view this form. The property will display and allow you to select only the built-in default roles or roles with project scope. To use a dynamic role that makes use of process data, use SelectSQL to query the folder table for the process. Only show Form if When a Form is evaluated at runtime for a stage, if the user has the role and the condition evaluates to true, the Form is displayed. Otherwise, the Form is not displayed. The default value is blank, which is interpreted as "true" for the condition. When user loads form Use this to enter a visual script that is run when the form is loaded. On form load Do this when the form loads. Client extensions The field is included only for backwards compatibility. When user exits form What to do when user submits the form. When form canceled Use this to create a script which is run 100 MBPM Designer User's Guide Chapter 20 Designing a Form Property Name Description when the user cancels the form. On form submission Do this when the form is submitted. Notes Use this to enter any specific notes for anyone using this component within the Designer environment. Form Segment Component Property Name Description Name Specify a unique name to identify this component. This name is not visible at runtime. Form segment Choose which form segment should be shown. Position from top The position (in pixels) of this component, from the top edge of the form. Position from left The position (in pixels) of this component, from the left hand side of the form. Height Specify the height, in pixels, of this component. Width Specify the width, in pixels, of this component. Form segment Choose which form segment should be shown. Anchor Use this to adjust form control behavior on form resizing. There are four available options: Top, Bottom, Left and Right. Form controls will change position and be resized depending on the combination of options selected Dock Specifies whether the control should be docked to the left, right, top, bottom, or fill to the control it is placed on. Visibility depends on Indicates rules for showing the control. Notes Use this to enter any specific notes for MBPM Designer User's Guide 101 Chapter 20 Designing a Form Property Name Description anyone using this component within the Designer environment. Form Controls Form controls are the background and interactive items you can place on a form. You can place any number of form controls on a form. If you place too many controls on a form it will take longer to load and will be less easy to use. Form controls are selected from the Form Toolbox, Controls pane. When you are editing a form, the toolbox should display automatically. Control Type Icon Description Image An image control can be used to place an image onto a form. The image formats supported are *.bmp, *.emf, *.wmf, *.ico, *.jpeg, *.jpg, *.png, and *.gif. Designer will display a blank rectangle until you have specified the location of the image in the Picture property. Status A status control can be used to display whether a specified value is within a safety, warning or danger range. The status control can display a different graphic depending upon state. Label A label control is a text that cannot be changed when viewed at runtime; usually used for titles and headers. Rule A rule control adds lines and frames for presentation purposes. Button A button control is used to perform operations associated with the button when it is clicked on. These must not be confused with the action buttons that are automatically added to a form as a result of the process. Clip An attachment clip control allows the user to attach a file to a folder. Attached files become part of the specific folder. MultiClip A multiclip attachment clip control allows the user to attach multiple files to a folder. Attached files become part of the specific folder. Check Box A check box control is used to record a value that can only be TRUE or FALSE. If the check box is unchecked (the default value) the variable behind the check box is set to FALSE. Checking the box sets it to TRUE. 102 MBPM Designer User's Guide Chapter 20 Designing a Form Control Type Icon Description Number A number control can display Integer (whole numbers) and Real (numbers with decimal places) numbers. The range of values that are accepted can be specified – as well as the number of decimal places used if displaying a Real number. Currency A currency control displays currency values. These are set to display a specified currency type. Date/Time A date/time control is used to input or display dates and/or times. Text A text control can be added to a form using a text box. Text boxes can hold up to 250 characters. If you need to give users more space, use a memo control. Dropdown A drop-down control list allows the selection of a text item from a controlled list where only one item may be chosen. This list can be hard-coded into the form or retrieved from a formula or an external database; or can be a mixture of the two. When hard-coding the list, you may also use name-value pairs, which allow you to associate a user-friendly name to a specific database value. Radio Group A radio group control is used to present a range of options to the user. List A list control is used to allow selection of one or more items. The options are provided in a box with each item on a separate line. The selection of multiple items follows the Windows standard of selection (holding down the Shift key to select adjacent items or the Ctrl key to select non-adjacent items). Panel A Panel control allows you to group Form controls. By grouping Form controls into a Panel control, you can move, hide, or display all the controls on it at once. A Panel control can be placed on a Form, Form Segment, Administration Form, or another Panel control. A Form Segment can also be added to a Panel. Use the cross-arrow on a Panel for moving it. Rich Text A rich text control allows content to be edited, formatted and spellchecked for English, French, and German languages. The control is supplied with a toolbar containing a set of options which provide basic editing functionality such as cut, copy, paste, find and replace, undo/redo etc. It is also possible to export data from the edit area to a PDF file. Person The Person Control allows Process Designers to quickly create MBPM Designer User's Guide 103 Chapter 20 Designing a Form Control Type Icon Description collaborative user interfaces. The person is displayed using a thumbnail*, includes an indicator of the person’s presence*, shows the full name, includes the ability to search for and select a user, send an email to the user, or initiate a live chat* in the context of the current folder. * These items will only appear where MBPM Smart Business Workspace is available. Memo A memo control is used to enter large amounts of text onto a form. When the text entered into this control is more than can be displayed a scroll bar is automatically provided. Signature A signature control enables digital signature of a folder. When the signature is authorized, the signer’s user name and a time stamp are displayed. The authorization mechanism for the signature control is established via the MBPM Administrator utility. For a signature field to incorporate the current user's ID or user name, a text field called "UserID" mapped to a variable must be added to the form. When the signature script runs, the UserID is included in the signature; otherwise the text ‘user’ is added. In addition, the process designer must assign the logged on user's name to the UserID field. Grid A grid control is used to display information from a database (either the MBPM database or an external database) in a column and row format. Scroll bars are automatically displayed when the grid cannot display all the requested information. Note that a table associated with an editable grid must have a primary key. If there is no primary key the grid will just appear as Read-Only. The data within Grid cells will automatically wrap if the data in it is longer than the cell width providing enhanced visibility and readability. Using Form Controls Moving Controls You can move a single control or multiple controls at once. Moving a Single Control 1. In the toolbox, click on the Pointer button . 2. Click on the form control to select it. 104 MBPM Designer User's Guide Chapter 20 Designing a Form 3. Drag it to its new position, or use the cursor control keys to move the control in the required direction. Moving Multiple Controls 1. In the toolbox, click on the Pointer button . To select the controls to be moved either: l l Click on each form controls while holding down the Shift or Ctrl key, or Hold down the mouse button and drag to draw a rectangle around all the form controls to be moved. 2. Click on any of the selected form control and drag it, or use the cursor control keys to move the selected block in the required direction. All of the selected form controls will move together. Copying and Pasting Controls You can copy controls and paste them, either to the same form or report, or into another form or report, that is currently open in another instance of the Designer. To copy one or more controls: 1. Select the control to be copied (use Shift/Ctrl click or left mouse button drag to select multiple controls). 2. On the Home ribbon tab, click Copy. The selected controls are copied to the clipboard. If you are pasting to another form or report, select it in the main pane of the Designer (not necessary if you are copying and pasting within the same form or report). 3. On the Home ribbon tab, click Paste. The contents of the clipboard are pasted into the form or report. It may be necessary to drag the pasted content to ensure it does not overlap existing controls. If pasted controls have the same name as existing controls, they will be renamed by incrementing the digit to the end of the name to the next available number. For example, if you copy a control called Button1 and paste it into the same form, the pasted button will be renamed to Button2. Aligning and Spacing Controls The Designer provides facilities for aligning and spacing controls with each other both horizontally and vertically. You can align form controls: l Individually l In groups MBPM Designer User's Guide 105 Chapter 20 Designing a Form Aligning Individual Controls To align an individual form control with other controls: 1. Click on the control to select it. 2. Holding down the mouse button, drag the control around the main pane of the Designer. As you move the control around, thin horizontal or vertical lines will appear in the main pane of the Designer whenever: l The left side of the control is aligned with the left side of another control l The right side of the control is aligned with the right side of another control l The top of the control is aligned with the top of another control l The bottom of the control is aligned with the bottom of another control Aligning and Spacing Groups of Controls You can align and space a selected group of controls in a form using controls in the Layout tab: l l l l The align controls allow you to align the selected group of controls left, right, top, bottom, center vertically or horizontally. Space Equally equalizes the horizontal or vertical space between each selected control. Increase/Decrease increases or decreases the horizontal or vertical spacing between each selected controls in small increments, while ensuring that they remain equally spaced. Remove removes any horizontal or vertical space between the selected controls. MBPM Designer does not consider captions when it aligns form controls; alignment is based upon the control's data field size and position. You should inspect your form layout to verify that the captions for each form controls appear as desired. Removing Controls You can remove form controls from a form or report using either of the following methods: l Select the desired control and press the DELETE key on your keyboard. l Select the desired control, and click Cut in the Clipboard pane of the Home ribbon tab. l Form controls that are Cut are saved in the clipboard, and may be pasted back onto the same or another form in the process. Form controls that are deleted using the Delete are not stored. However, you may use the Undo option to restore deleted items immediately. Grid controls You cannot bind an image directly to a grid cell. Forms on Web Client In the MBPM Web Client, if the user tries to open a form on a stage that no longer exists or is inaccessible due to the lack of user's permissions, then the first available form, if any, is 106 MBPM Designer User's Guide Chapter 20 Designing a Form displayed. Tab Order and Tab Index Tab order defines the order in which user will move focus from one control to another on a form in the Web Client and Mobile Client using the Tab key. The order is determined by an index. To view the Tab Order using Tab Order from the ribbon: 1. Open a form in Designer. 2. Click Design tab. 3. Click Tab Order. The current index for the controls on the form are displayed. To view the Tab Order using Form Properties: 1. Open a form in Designer. 2. In the form Properties pane, click the value of the Tab Order property of the Form. The current tab order for the controls on the form are displayed. To edit the Tab Order using the ribbon: 1. Open a form in Designer. 2. Click Design tab. 3. Click Tab Order. 4. Click the index of the control that you would like to change. The index changes for the control and the index for all other controls are automatically adjusted. To edit the Tab Order using Form Properties: 1. Open a form in Designer. 2. Ensure that Tab Order is not selected from the ribbon. 3. In the form Properties pane, click the value of the Tab Order property of the Form. 4. Adjust the tab order using the arrow keys. The index changes for the control and the index for all other controls are automatically adjusted. Changes in MBPM v9.2 SR1 From MBPM v9.2 SR1, for newly created solutions, image and label controls also will be assigned a tab index. However, they will take part in the tab order only when their URL property is set. For solutions that are not redeployed after upgrading, the behavior of tab order will not change. Images will not take part in tab order and labels will be assigned a tab index only if it is a URL. MBPM Designer User's Guide 107 Chapter 20 Designing a Form For solutions that are redeployed without making any changes to the tab order, labels with URLs and images with URLs will take part in the tab order. They will get tab index values of 1000 and higher to avoid conflict with existing tab indexes. Editing Form Control Properties The tables listed below describe all the form controls and their properties. Note: The Name property cannot contain illegal characters such as spaces. On entering an illegal character, a validation hint dialog is displayed and the illegal characters are removed from the entered string. Attachment clip Property Name Description Caption Choose a caption for this control. Normally it is the caption that is visible at run-time. Name Specify a unique name to identify this control. This name is not visible at runtime. Position from left The position (in pixels) of this control, from the left hand side of the form. Position from top The position (in pixels) of this control, from the top edge of the form. Anchor Use this to adjust form control behavior on form resizing. There are four available options: Top, Bottom, Left and Right. Form controls will change position and be resized depending on the combination of options selected. Edit only 108 If this option is checked, the Remove and Delete menu options are not available. Once a MBPM Designer User's Guide Chapter 20 Designing a Form Property Name Description document has been uploaded or selected in a single clip, the option Upload and Select will also be unavailable. Visibility depends on Indicates rules for showing the control. When changed Use this to create a visual script that is run when this control has been changed. Default action behavior Specify a default action usage status for this control. Variable Indicate whether you want to specify a calculation or select a Business Object variable. Calculation Specify a calculation to retrieve the parameter value. Business Object Item Select a Business Object variable as the Parameter value. Client extensions The field is included only for backwards compatibility. DMS support Indicate whether this control is intended to support a document management system. Default location Specify a location where the data for this attachment can be found. Field has dependants of its own Check this to indicate that other field(s) on this form is dependent on this field, and it should therefore be updated when any field MBPM Designer User's Guide 109 Chapter 20 Designing a Form Property Name Description marked 'field is dependent on another' is changed. Hint Type in the text you want to use to explain to a user how to use this control. Hint text appears when the use rolls or hovers over the control. Notes Use this to enter any specific notes for anyone using this control within the Designer environment. Note: Visibility dependent fields are not visible until you tab out of the field if mouse is used as input device to enter (paste) data. For example, if you have a button that has "visibility depends on" set to a memo field, when you paste content into the memo field using mouse as the input device, the button is not visible until you move the focus out of the memo field. However, if you are using keyboard as the input device, the command button is visible as soon as you start entering data into the memo field. Checkbox Property Name Description Caption Choose a caption for this control. Normally it is the caption that is visible at run-time. Name Specify a unique name to identify this control. This name is not visible at runtime. Caption alignment Choose the position for the caption of this field above, below, to the left or to the right Position from top The position (in pixels) of this control, from the top edge of the form. 110 MBPM Designer User's Guide Chapter 20 Designing a Form Property Name Description Position from left The position (in pixels) of this control, from the left hand side of the form. Anchor Use this to adjust form control behavior on form resizing. There are four available options: Top, Bottom, Left and Right. Form controls will change position and be resized depending on the combination of options selected. Width Specify the width, in pixels, of this control. Visibility depends on Indicates rules for showing the control. Hint Type in the text you want to use to explain to a user how to use this control. Hint text appears when the use rolls or hovers over the control. Variable Indicate whether you want to specify a calculation or select a Business Object variable. Calculation Specify a calculation to retrieve the parameter value. Business Object Item Select a Business Object variable as the Parameter value. On field entry Do this when the control acquires system focus. On field exit Use this to create a script that is run when the user exits the field. MBPM Designer User's Guide 111 Chapter 20 Designing a Form Property Name Description When changed Use this to create a visual script that is run when this control has been changed. Client extensions The field is included only for backwards compatibility. Default action behavior Specify a default action usage status for this control. Field has dependants of its own Check this to indicate that other field(s) on this form is dependent on this field, and it should therefore be updated when any field marked 'field is dependent on another' is changed. Field is dependent on another Check this if you want this field to be updated when any field marked 'field has dependents of its own' has been changed. Notes Use this to enter any specific notes for anyone using this control within the Designer environment. Command Button Property Name Description Caption Choose a caption for this control. Normally it is the caption that is visible at run-time. Name Specify a unique name to identify this control. This name is not visible at runtime. Position from top The position (in pixels) of this control, from the top 112 MBPM Designer User's Guide Chapter 20 Designing a Form Property Name Description edge of the form Position from left The position (in pixels) of this control, from the left hand side of the form. Anchor Use this to adjust form control behavior on form resizing. There are four available options: Top, Bottom, Left and Right. Form controls will change position and be resized depending on the combination of options selected. Width Specify the width, in pixels, of this control. Height Specify the height, in pixels, of this control. Visibility depends on Indicates rules for showing the control. Default action behavior Specify a default action usage status for this control. Open folder (Folder ID) Choose a specific folder to open when this button is pressed. You can also enter an expression to dynamically choose a particular folder at runtime. When button pressed Use this field to enter a visual script that is run when the button is pressed. Client extensions The field is included only for backwards compatibility. MBPM Designer User's Guide 113 Chapter 20 Designing a Form Property Name Description When button pressed Do this when the button is clicked. Hint Type in the text you want to use to explain to a user how to use this control. Hint text appears when the use rolls or hovers over the control. Button action Choose the type of operation this button will perform when pressed. To set the action that will occur when the button is clicked: Click in the Button Action property and select the action from the drop-down list. l l l l l 114 Cancel Action - Allows you to cancel the form without saving any changes. Client Operation - Uses the Client extension script (defined on the Do This tab) to perform an operation specified by the script. Commit Action Updates the database with any changes made to the form and may move the folder to the next stage. Initiate a process Specify the Process name and the Action name within the process to run in their respective fields. Open existing folder - MBPM Designer User's Guide Chapter 20 Designing a Form Property Name Description Allows you to open a folder created previously by this or another process, as specified in the Open folder field. l Server Operation Uses the When button pressed script (defined on the Do This tab) to perform an operation specified by the script. This is the default action. Action name Once you've chosen a process, choose the action to run in that process. Process name Choose a process that has an action you want to run, when this button is pressed. Notes Use this to enter any specific notes for anyone using this control within the Designer environment. Currency Property Name Description Caption Choose a caption for this control. Normally it is the caption that is visible at run-time. Name Specify a unique name to identify this control. This name is not visible at runtime. Caption alignment Choose the position for the caption of this field - MBPM Designer User's Guide 115 Chapter 20 Designing a Form Property Name Description above, below, to the left or to the right. Position from top The position (in pixels) of this control, from the top edge of the form. Position from left The position (in pixels) of this control, from the left hand side of the form. Anchor Use this to adjust form control behavior on form resizing. There are four available options: Top, Bottom, Left and Right. Form controls will change position and be resized depending on the combination of options selected. Width Specify the width, in pixels, of this control. Minimum enabled Indicate whether or not you want to set a minimum value for this field. This property specifies the minimum value that will be accepted as input into a currency property. In the Minimum enabled property, click on the + button. In the Minimum enabled property, select the check box. In the Minimum property, enter the minimum value that will be accepted. Minimum value 116 Choose a minimum value that this field may have. MBPM Designer User's Guide Chapter 20 Designing a Form Property Name Description Maximum enabled Indicate whether or not you want to set a maximum value for this field. This property specifies the maximum value that will be accepted as input into a currency property. In the Maximum enabled property, click on the + button. In the Maximum enabled property, select the check box. In the Maximum property, enter the maximum value that will be accepted. Currency symbol Choose the currency symbol or code to use on this field. Maximum value Choose a maximum value that this field may have. Symbol position Position of symbol. Negative number style Specify how you want negative currency amounts to be displayed in this field. This property choose the negative number style from the following options: Placing a minus sign before the negative currency number (default). Placing a minus sign after the negative currency number Placing parentheses around the negative currency number. MBPM Designer User's Guide 117 Chapter 20 Designing a Form Property Name Description Visibility depends on Indicates rules for showing the control. Decimal places Specify the number of decimal places that will be shown in this field. Default action behavior Specify a default action usage status for this control. When changed Use this to create a visual script that is run when this control has been changed. Variable Indicate whether you want to specify a calculation or select a Business Object variable. Calculation Specify a calculation to retrieve the parameter value. Business Object Item Select a Business Object variable as the Parameter value. Client extensions The field is included only for backwards compatibility. On field entry Do this when the control acquires system focus. On field exit Use this to create a script that is run when the user exits the field. Hint Type in the text you want to use to explain to a user how to use this control. Hint text appears when the use rolls or hovers over the control. Field has dependants of its own Check this to indicate that other field(s) on this form 118 MBPM Designer User's Guide Chapter 20 Designing a Form Property Name Description is dependent on this field, and it should therefore be updated when any field marked 'field is dependent on another' is changed. Field is dependent on another Check this if you want this field to be updated when any field marked 'field has dependents of its own' has been changed. Notes Use this to enter any specific notes for anyone using this control within the Designer environment. Date/Time Property Name Description Caption Choose a caption for this control. Normally it is the caption that is visible at run-time. Name Specify a unique name to identify this control. This name is not visible at runtime. Caption alignment Choose the position for the caption of this field above, below, to the left or to the right. Position from top The position (in pixels) of this control, from the top edge of the form. Position from left The position (in pixels) of this control, from the left hand side of the form. Anchor Use this to adjust form control behavior on form MBPM Designer User's Guide 119 Chapter 20 Designing a Form Property Name Description resizing. There are four available options: Top, Bottom, Left and Right. Form controls will change position and be resized depending on the combination of options selected. Width Specify the width, in pixels, of this control. Format Choose whether this field should display a date, a time, or both. This property defines whether a Date/Time control should display only a date portion, only a time portion, or both a date and a time portion. Earliest Use this to define the earliest value that can be entered in this field. The earliest value that you can enter is 1 January, 1753. If omitted, no specific earliest Date/Time will be enforced. This property is only shown for Date/Time properties that include a date portion ('Date' or 'Both', but not 'Time'). Latest Choose the latest date and/or time that can be shown in this control. This property specifies the latest date that will be accepted as input into a Date/Time property. If omitted, no specific latest Date/Time will be enforced. This property is 120 MBPM Designer User's Guide Chapter 20 Designing a Form Property Name Description only shown for date/time properties that include a date portion ('Date' or 'Both', but not 'Time'). Visibility depends on Indicates rules for showing the control. Disable timezone adjustment Choose whether or not to disable time zone adjustment for this control. When changed Use this to create a visual script that is run when this control has been changed. Default action behavior Specify a default action usage status for this control. Variable Indicate whether you want to specify a calculation or select a Business Object variable. Calculation Specify a calculation to retrieve the parameter value. Business Object Item Select a Business Object variable as the Parameter value. Client extensions The field is included only for backwards compatibility. On field entry Do this when the control acquires system focus. On field exit Use this to create a script that is run when the user exits the field. Hint Type in the text you want to use to explain to a user how to use this control. MBPM Designer User's Guide 121 Chapter 20 Designing a Form Property Name Description Hint text appears when the use rolls or hovers over the control. Field is dependent on another Check this if you want this field to be updated when any field marked 'field has dependents of its own' has been changed. Field has dependants of its own Check this to indicate that other field(s) on this form is dependent on this field, and it should therefore be updated when any field marked 'field is dependent on another' is changed. Notes Use this to enter any specific notes for anyone using this control within the Designer environment. Note: To enter static date for Earliest/Latest/Default value in a calculation, use quotes around the value. For example, "12/03/1983". Otherwise, date will be evaluated as a division expression, calculated, and converted to date. Dropdown Property Name Description Caption Choose a caption for this control. Normally it is the caption that is visible at runtime. Name Specify a unique name to identify this control. This name is not visible at run-time. Caption alignment Choose the position for the caption of this field - above, below, to the left or to the right. Position from top The position (in pixels) of this control, from the top edge of the form. 122 MBPM Designer User's Guide Chapter 20 Designing a Form Property Name Description Position from left The position (in pixels) of this control, from the left hand side of the form. Anchor Use this to adjust form control behavior on form resizing. There are four available options: Top, Bottom, Left and Right. Form controls will change position and be resized depending on the combination of options selected. Width Specify the width, in pixels, of this control. List options Click here to define the options that appear in the dropdown. Click on the ellipsis button to the right of the property value. The List Options dialog is displayed. The list option picker allows the user to create a list from three types: l From an expression which returns a list of values l From a Business Object l From a SELECT statement From an expression which returns a list of values To create an expression, you can type in values directly in the bottom pane. For example, you can type: "A", "B", "C" and click OK. The static list is displayed at runtime. You can also use the Expression Builder to populate the list of values. The ListFunctionsLibrary provides functions that facilitate MBPM Designer User's Guide 123 Chapter 20 Designing a Form Property Name Description returning a list that can be used to populate the List options value. The ListFunctionsLibrary.Solution is available in the following location: C:\Program Files\Metastorm\BPM\Sample Processes\ListConversionLibrary For more information, see Using List Functions Library From a Business Object Choose a Business Object from the list of Business Objects that you have created. Depending on the chosen Business Object, you can select a 1-column list of values or a list of name-value pairs. You can use a Name/Value pair to give a meaningful name to a database value. For example, you can use “High Priority” as the name for value of “1” in the database. For Name/Value pair, two rows are displayed: l Name l Value From a SELECT statement Select a connection from the Connection drop-down list. For the SQL Syntax, you can either type in the SELECT statement or display the Query Builder to construct the query. Visibility depends on Indicates rules for showing the control. Default action behavior Specify a default action usage 124 MBPM Designer User's Guide Chapter 20 Designing a Form Property Name Description status for this control. When changed Use this to create a visual script that is run when this control has been changed. Variable Indicate whether you want to specify a calculation or select a Business Object variable Calculation Specify a calculation to retrieve the parameter value. Business Object Item Select a Business Object variable as the Parameter value. Client extensions The field is included only for backwards compatibility. On field entry Do this when the control acquires system focus On field exit Use this to create a script that is run when the user exits the field. Field is dependent on another Check this if you want this field to be updated when any field marked 'field has dependents of its own' has been changed. Field has dependants of its own Check this to indicate that other fields on this form are dependent on this field, and it should therefore be updated when any field marked 'field is dependent on another' is changed. Hint Type in the text you want to use to explain to a user how to use this control. Hint text appears when the use rolls or hovers over the control. Notes Use this to enter any specific notes for anyone using this MBPM Designer User's Guide 125 Chapter 20 Designing a Form Property Name Description control within the Designer environment. Grid Property Name Description Name Specify a unique name to identify this control. This name is not visible at run-time. Width Specify the width, in pixels, of this control. Height Specify the height, in pixels, of this control. Position from top The position (in pixels) of this control, from the top edge of the form. Position from left The position (in pixels) of this control, from the left hand side of the form. Business Object Select the Business Object to be used to retrieve the grid's data. Columns Use this option to manage the columns that will appear on your grid. Grids are used on forms and report bands. A grid maps multiple rows and columns (fields) from one or more database tables. You can place any number of grids on a form. Grids will overlay any background (image, rule, or label) controls. Grids do not support paging on Business Object's CurrentIndex. Columns This property is used to build the grid by adding and removing columns. 126 MBPM Designer User's Guide Chapter 20 Designing a Form Property Name Description 1. In the Columns property, click on the ellipsis button. The Columns builder is displayed with one default column. 2. To add another column, click on the Add button. A new column is added to the left pane. Column types available are: l l l l l l l l l MBPM Designer User's Guide Text: A text column type is added. Currency: A currency column type is added. Date and Time: A date and type column type is added. Number: A number column type is added. Drop-down: A drop-down column type is added. Folder: If you choose the “Folder” as column type, then the values of the selected Business Object Item are FolderIDs. At runtime, the contents of this column will contain hyperlinks to these folders. Also, on the Web Client, the display value of a folder column will be “Open folder”, and it is hyperlinked to open the folder of the underlying FolderID. Status: A Status column type is added. Person: A Person column type is added. Hyperlink: A hyperlink column type is added. Note that some browsers have problems with URLs containing spaces. If you experience such problems, replace each space with %20. 127 Chapter 20 Designing a Form Property Name Description Business Object Item The Business Object Item property displays variables of type Int, Real, Text and Memo. Default action The Folder Column can have default action usage set to either “ReadOnly” or “Hidden”. In V7.6 only one column could be set to be a folder column, but in V9, more than one column can be set to be a folder column. Folder Columns will not be available for editable grids. Status: If you choose "Status" as column type, you can set the following properties for the column: Property Name Description Safety threshold Use this field to specify the value of the safety threshold for this status field. Danger threshold Use this field to specify the value of the danger threshold for this status field. Value as Use percentages percentages for threshold values. 100% 128 Enter a value that represents "100%" for this status. (For example if you have 1,300 staff, MBPM Designer User's Guide Chapter 20 Designing a Form Property Name Description enter '1,300' in this field.) Display value Allows both the icon and value to be displayed. Alignment value Set the alignment of value to the left, right, top, or bottom for Status fields. Set the alignment of value to the left or right for Status Fields in Grids and Custom Lists. Drill down to Choose whether this status field drills down to one of the following: 1. No drill down No drill down is performed. 2. Initiate a Process Selecting this option displays the Dynamic, Process, Action, and Parameters fields. If you do not select Dynamic, you can select the static values for the Process and Actions available in the selected process from the respective drop- MBPM Designer User's Guide 129 Chapter 20 Designing a Form Property Name Description down lists. If you select Dynamic, you can click on the Expression Builder icon in the Process and Action fields to set the respective values. The Parameters field is displayed when static values are set for the Process and Action fields. The Parameters value can be set by clicking on the ellipsis button. The Expression Builder with Assignments Builder is launched where you can set the values to the form fields. 3. Administration form Selecting this option displays the Dynamic, Administration Form Group, Administration Form, and Parameters fields. If you do not select Dynamic, you can select the 130 MBPM Designer User's Guide Chapter 20 Designing a Form Property Name Description static values for the Administration Form Group and Administration Form from the respective dropdown lists. If you select Dynamic, you can click on the Expression Builder icon in the Administration Form Group and Administration Form fields to set the respective values. The Parameters field is displayed when static values are set for the Administration Form Group and Administration Form fields. The Parameters value can be set by clicking on the ellipsis button. The Expression Builder with Assignments Builder is launched where you can set the values to the form fields. 4. URL Enter a URL to open when this status button is MBPM Designer User's Guide 131 Chapter 20 Designing a Form Property Name Description clicked on. 5. Existing Folder Selecting this option displays two sub-fields: - FolderID - FolderID Reference Type On selecting FolderID Reference Type, two options are displayed: "Text" and "Business Object". Selecting "Text" causes Folder ID to become a static text field. If "Business Object" is selected, a list of Business Object text variables is displayed in the FolderID field, allowing selection of one of these variables to be bound to the Grid or Custom List. clicked on. 132 Warning Choose an image to display if this status state becomes a warning. Warning hint When deployed, the text entered is displayed as an MBPM Designer User's Guide Chapter 20 Designing a Form Property Name Description alternative text when you hover your mouse over the field. MBPM Designer User's Guide Safety Choose an image to display if this status state becomes a safety. Safety hint When deployed, the text entered is displayed as an alternative text when you hover your mouse over the field. Danger Choose an image to display if this status state becomes a danger. Danger hint When deployed, the text entered is displayed as an alternative text when you hover your mouse over the field. Width Choose the width for the column Default action behavior Choose from displaying the column as readonly data, hidden column, optional, or required. The ‘optional’ and ‘required’ options are for editable grids only. 133 Chapter 20 Designing a Form Property Name Description Default Value Calculation Business Object Item Choose Calculated or Business Object. If ‘Calculated’ is selected, the subproperty ‘Calculation’ is displayed. If ‘Business Object’ is selected, the sub-property ‘Business Object Item’ is displayed. Specify a calculation to retrieve a parameter value. Select a Business Object variable as the Parameter value. l Hyperlink If you choose "Hyperlink" as column type, you can select a Business Object Item consisting of url values. These Business Object items can be of the text or memo data type. You can select a Business Object variable as the display value for the selected url. By default, the display value will point to the same Business Object Item value as selected in the Business Object Item property. In the Web Client, the “Display values” are displayed as hyperlinked text that will link to the underlying URL value (as selected 134 MBPM Designer User's Guide Chapter 20 Designing a Form Property Name Description by the Business Object Item property). Default action usage Default action usage set to either “Read-Only” or “Hidden”. Person: A person column type is added: If you choose "Person" as column type, you can select the "Name" option to display further information about the person. To set the column details, select the column in the left pane and then edit it in the right pane. To change the order of a column in the grid, select the column and use the arrow keys to move it up or down. To remove a column from the grid. Select the column in the right pane and click on the Remove button. Enable Client-side Paging Client-side paging is available to grids bound to either editable Business Objects or read-only Business Objects. The default size of the client-side page is 50. If no server side paging has been specified, you will be able to enter any value as the client side page size. If the client-side paging has been enabled, then the client-side grid will only contain as many rows as specified by the client-side page size. Further pages will then be accessed using navigational controls of the grid available at runtime. If server side paging is specified, then the client-side page size must MBPM Designer User's Guide 135 Chapter 20 Designing a Form Property Name Description be an exact fraction of the serverside page size. For example, if the server-side page size is set to be 100, then the client side page size can be 1, 2, 5, 10, 20, 50, or 100. This ensures that partial results from a server side page are not displayed within a client-side page. Visibility depends on Indicates rules for showing the control. Column sizing units Use this option to specify units for column width size. It can have two values: Percent and Pixels. If you use Pixels, columns are not resized when Grid is resized. However, you can change column width by dragging the column borders. If you use Percent, 'Width' property for columns is re-calculated taking the whole Grid width as 100%. Columns are resized keeping your set proportions when a Grid is resized. You can also change column width by dragging the column borders. Default is Pixels. Default action behavior Specify a default action usage status for this control. On cell entry Use this to create a script that is run when the user enters the cell. On cell exit Use this to create a script that is run when the user exits the cell. When user selects row Do this when the user selects a row. Client extensions The field is included only for backwards compatibility. Field has dependants of its Check this to indicate that other 136 MBPM Designer User's Guide Chapter 20 Designing a Form Property Name Description own field(s) on this form is dependent on this field, and it should therefore be updated when any field marked 'field is dependent on another' is changed. Field is dependent on another Check this if you want this field to be updated when any field marked 'field has dependents of its own' has been changed. Read-only Used to specify that the grid should be rendered as read-only when the Business Object attached to the grid is read-write. Hint Type in the text you want to use to explain to a user how to use this control. Hint text appears when the use rolls or hovers over the control. Notes Use this to enter any specific notes for anyone using this control within the Designer environment. Keep in mind the following when working with grid controls: l l If you create a Grid with several columns and assign the same Business Object variable to all the columns, the Web Client displays the Grid with data only in the first column and all other columns of the Grid will be empty. In some instances, the following error is displayed when opening the Form: “An item with the same key has already been added.” As a result of this limitation, MBPM does not support using the same Business Object variable in multiple columns of a Grid. For example, consider a Grid has multiple columns (col1, col2, col3, and so on) and Business Object with variables var1, var2, and so on. Using the Properties pane of the Grid, assign var1 to col1 of the Grid, then assign var1 to col2 of the Grid, and then the same var1 to col3 of the Grid. In the Web Client, data is shown only in col1 of the Grid and remaining columns (col2 and col3) are empty. Data is not displayed in all columns of the Grid. A table associated with an editable grid must have a primary key. If there is no primary key the grid will just appear as Read-Only. Image Property Name Description Name Specify a unique name to MBPM Designer User's Guide 137 Chapter 20 Designing a Form Property Name Description identify this control. This name is not visible at runtime. Position from top The position (in pixels) of this control, from the top edge of the form. Position from left The position (in pixels) of this control, from the left hand side of the form. Anchor Use this to adjust form control behavior on form resizing. There are four available options: Top, Bottom, Left and Right. Form controls will change position and be resized depending on the combination of options selected. Picture Choose a graphic for this image control. Width Specify the width, in pixels, of this control. Height Specify the height, in pixels, of this control. URL Enter a URL that should be displayed when this image is clicked on. Visibility depends on Indicates rules for showing the control. Client extensions The field is included only for backwards compatibility. Notes Use this to enter any specific notes for anyone using this control within the Designer environment. 138 MBPM Designer User's Guide Chapter 20 Designing a Form Label Property Name Description Caption Choose a caption for this control. Normally it is the caption that is visible at run-time. Name Specify a unique name to identify this control. This name is not visible at runtime. Caption type Available options are Static and Calculated. If ‘static’ is chosen, the current caption property is displayed. If ‘dynamic’ is chosen, an expression property is displayed. Note that the expressions are not evaluated. Field Alignment Choose an alignment (left, center or right) for the label's text. Position from top The position (in pixels) of this control, from the top edge of the form. Position from left The position (in pixels) of this control, from the left hand side of the form. Anchor Use this to adjust form control behavior on form resizing. There are four available options: Top, Bottom, Left and Right. Form controls will change position and be resized depending on the combination of options selected. MBPM Designer User's Guide 139 Chapter 20 Designing a Form Property Name Description Width Specify the width, in pixels, of this control. Height Specify the height, in pixels, of this control. Font Choose a font for this label. Font Color Choose a font color for this label. URL Enter a URL to display when this label is clicked on. Visibility depends on Indicates rules for showing the control. Client extensions The field is included only for backwards compatibility. Notes Use this to enter any specific notes for anyone using this control within the Designer environment. Using dynamic URL for Label To use a dynamic URL for Label: 1. Create 2 textboxes: Name, URL 2. Right-click and choose Add Variable to assign local Business Object text variables for the textboxes. For example: Local.Name and Local.URL 3. For both text boxes, enable the following properties: l Field is dependent on another l Field has dependents of its own 4. Create 2 labels: LabelSiteName, LabelSiteURL 5. For both labels, enable the following properties: l Change Caption Type to Calculated l Select Field is dependent on another 6. For LabelSiteName, in the Caption field, enter an expression: 140 MBPM Designer User's Guide Chapter 20 Designing a Form l Local.Name 7. For LabelSiteURL, in the Caption field, enter an expression: l "<a href=" + Local.URL + ">" + Local.Name + "</a>" 8. Deploy the project. Enter different values in the Name and URL text boxes and observe that the corresponding labels and the associated URL are changed dynamically. List Property Name Description Caption Choose a caption for this control. Normally it is the caption that is visible at runtime. Name Specify a unique name to identify this control. This name is not visible at run-time. Caption alignment Choose the position for the caption of this field - above, below, to the left or to the right. Position from top The position (in pixels) of this control, from the top edge of the form. Position from left The position (in pixels) of this control, from the left hand side of the form. Anchor Use this to adjust form control behavior on form resizing. There are four available options: Top, Bottom, Left and Right. Form controls will change position and be resized depending on the combination of options selected. Width Specify the width, in pixels, of this control. Height Specify the height, in pixels, of MBPM Designer User's Guide 141 Chapter 20 Designing a Form Property Name Description this control. Visibility depends on Indicates rules for showing the control. Default action behavior Specify a default action usage status for this control. When changed Use this to create a visual script that is run when this control has been changed. Variable Indicate whether you want to specify a calculation or select a Business Object variable. Calculation Specify a calculation to retrieve the parameter value. Business Object Item Select a Business Object variable as the Parameter value. Client extensions The field is included only for backwards compatibility. On field entry Do this when the control acquires system focus. On field exit Use this to create a script that is run when the user exits the field. List options Click here to define the options that appear in this list. Click on the ellipsis button to the right of the property value. The List Options dialog is displayed. The list option picker allows the user to create a list from three types: l 142 From an expression which returns a list of values l From a Business Object l From a SELECT statement MBPM Designer User's Guide Chapter 20 Designing a Form Property Name Description From an expression which returns a list of values To create an expression, you can type in values directly in the bottom pane. For example, you can type: "A", "B", "C" and click OK. The static list is displayed at runtime. You can also use the Expression Builder to populate the list of values. The ListFunctionsLibrary provides functions that facilitate returning a list that can be used to populate the List options value. The ListFunctionsLibrary.Solution is available in the following location: C:\Program Files\Metastorm\BPM\Sample Processes\ListConversionLibrary For more information, see Using List Functions Library From a Business Object Choose a Business Object from the list of Business Objects that you have created. Depending on the chosen Business Object, you can select a 1-column list of values or a list of name-value pairs. You can use a name/value pair to give a meaningful name to a database value. For example, you can use “High Priority” as the name for value of “1” in the database. For name/value pair, two rows are displayed: l MBPM Designer User's Guide Name 143 Chapter 20 Designing a Form Property Name Description l Value From a SELECT statement Select a connection from the Connection drop-down list. For the SQL Syntax, you can either type in the SELECT statement or display the Query Builder to construct the query. Field is dependent on another Check this if you want this field to be updated when any field marked 'field has dependents of its own' has been changed. Field has dependants of its own Check this to indicate that other field(s) on this form is dependent on this field, and it should therefore be updated when any field marked 'field is dependent on another' is changed. Hint Type in the text you want to use to explain to a user how to use this control. Hint text appears when the use rolls or hovers over the control. Notes Use this to enter any specific notes for anyone using this control within the Designer environment. Memo Property Name Description Caption Choose a caption for this control. Normally it is the caption that is visible at run-time. Name Specify a unique name to identify this control. This name is not visible at run- 144 MBPM Designer User's Guide Chapter 20 Designing a Form Property Name Description time. Caption alignment Choose the position for the caption of this field above, below, to the left or to the right. Position from top The position (in pixels) of this control, from the top edge of the form. Position from left The position (in pixels) of this control, from the left hand side of the form. Anchor Use this to adjust form control behavior on form resizing. There are four available options: Top, Bottom, Left and Right. Form controls will change position and be resized depending on the combination of options selected. Width Specify the width, in pixels, of this control. Height Specify the height, in pixels, of this control. Visibility depends on Indicates rules for showing the control. When changed Use this to create a visual script that is run when this control has been changed. Default action behavior Specify a default action usage status for this control. Variable Indicate whether you want to specify a calculation or select a Business Object variable. MBPM Designer User's Guide 145 Chapter 20 Designing a Form Property Name Description Calculation Specify a calculation to retrieve the parameter value. Business Object Item Select a Business Object variable as the Parameter value. Client extensions The field is included only for backwards compatibility. On field entry Do this when the control acquires system focus. On field exit Use this to create a script that is run when the user exits the field. Field has dependants of its own Check this to indicate that other field(s) on this form is dependent on this field, and it should therefore be updated when any field marked 'field is dependent on another' is changed. Field is dependent on another Check this if you want this field to be updated when any field marked 'field has dependents of its own' has been changed. Hint Type in the text you want to use to explain to a user how to use this control. Hint text appears when the use rolls or hovers over the control. Notes Use this to enter any specific notes for anyone using this control within the Designer environment. 146 MBPM Designer User's Guide Chapter 20 Designing a Form Multi-clip Property Name Description Name Specify a unique name to identify this control. This name is not visible at runtime. Position from top The position (in pixels) of this control, from the top edge of the form. Position from left The position (in pixels) of this control, from the left hand side of the form. Width Specify the width, in pixels, of this control. Height Specify the height, in pixels, of this control. Edit only If this option is checked, the Remove and Delete menu options are not available to the Process User. Once a document has been uploaded or selected in a single clip, the option Upload and Select will also be unavailable. Client extensions The field is included only for backwards compatibility. Default action behavior Specify a default action usage status for this control. Visibility depends on Indicates rules for showing the control. Field has dependants of its own Check this to indicate that other field(s) on this form is dependent on this field, and it should therefore be MBPM Designer User's Guide 147 Chapter 20 Designing a Form Property Name Description updated when any field marked 'field is dependent on another' is changed. Default location Specify a location where the data for this attachment can be found. DMS support Indicate whether this control is intended to support a document management system. Hint Type in the text you want to use to explain to a user how to use this control. Hint text appears when the use rolls or hovers over the control. Notes Use this to enter any specific notes for anyone using this control within the Designer environment. Note: Multiclip and DMS Multiclip control's columns are resized proportionally to whole control width when you resize a Form. Number Property Name Description Caption Choose a caption for this control. Normally it is the caption that is visible at run-time. Name Specify a unique name to identify this control. This name is not visible at runtime. Caption alignment Choose the position for the caption of this field above, below, to the left or to the right. 148 MBPM Designer User's Guide Chapter 20 Designing a Form Property Name Description Position from top The position (in pixels) of this control, from the top edge of the form. Position from left The position (in pixels) of this control, from the left hand side of the form. Anchor Use this to adjust form control behavior on form resizing. There are four available options: Top, Bottom, Left and Right. Form controls will change position and be resized depending on the combination of options selected. Width Specify the width, in pixels, of this control Minimum enabled Indicate whether or not you want to set a minimum value for this field. This property specifies the minimum value that will be accepted as input into a number property. 1. In the Minimum enabled property, click on the + button. 2. In the Minimum enabled property, select the check box. 3. In the Minimum property, enter the minimum value that will be accepted. l MBPM Designer User's Guide You cannot set a Maximum value lower than a Minimum value. For example, if you set 149 Chapter 20 Designing a Form Property Name Description the Minimum option to 10, the lowest possible Maximum value will automatically be set to 10. l In addition, even though valid maximum and minimum values have been set, if the number property is an optional field on a form, the user may leave the field blank and still have the property pass validation. If the values set in the Properties editor are required minimum/maximum values, the property must be made a required property on the form. Minimum value Choose a minimum value that this field may have. Maximum enabled Indicate whether or not you want to set a maximum value for this field. This property specifies the maximum value that will be accepted as input into a number property. 1. In the Maximum enabled property, click on the + button. 2. In the Maximum enabled property, select the check box. 3. In the Maximum 150 MBPM Designer User's Guide Chapter 20 Designing a Form Property Name Description property, enter the maximum value that will be accepted. Maximum value Choose a maximum value that this field may have. Visibility depends on Indicates rules for showing the control. Decimal places Specify the number of decimal places that will be shown in this field. Client extensions The field is included only for backwards compatibility. Variable Indicate whether you want to specify a calculation or select a Business Object variable. Calculation Specify a calculation to retrieve the parameter value. Business Object Item Select a Business Object variable as the Parameter value. Default action behavior Specify a default action usage status for this control. When changed Use this to create a visual script that is run when this control has been changed. On field exit Use this to create a script that is run when the user exits the field. On field entry Do this when the control acquires system focus. Field is dependent on another Check this if you want this field to be updated when MBPM Designer User's Guide 151 Chapter 20 Designing a Form Property Name Description any field marked 'field has dependents of its own' has been changed. Field has dependants of its own Check this to indicate that other field(s) on this form is dependent on this field, and it should therefore be updated when any field marked 'field is dependent on another' is changed. Hint Type in the text you want to use to explain to a user how to use this control. Hint text appears when the use rolls or hovers over the control. Notes Use this to enter any specific notes for anyone using this control within the Designer environment. Note: If a number field is set to required, 0 (zero) is not an acceptable value. Panel Property Name Description Name Specify a unique name to identify this control. This name is not visible at runtime. Position from top The position (in pixels) of this control, from the top edge of the form. Position from left The position (in pixels) of this control, from the left hand side of the form. Height Specify the height, in pixels, of this control. Width Specify the width, in 152 MBPM Designer User's Guide Chapter 20 Designing a Form Property Name Description pixels, of this control. Color Choose a color for this control. Anchor Use this to adjust form control behavior on form resizing. There are four available options: Top, Bottom, Left and Right. Form controls will change position and be resized depending on the combination of options selected. Dock Relative to the Form, you can dock the Panel either to the Top, Bottom, Left, or Right. Use Fill to make the Panel take up the entire Form control area. Visibility Indicates rules for showing the control. Tab Order Determines the order in which user will move focus from one control to another using the TAB key. Notes Use this to enter any specific notes for anyone using this control within the Designer environment. Behavior of the Panel with docking set to 'Fill' depends on its z-order. The Panel will fill all space on Form except those which is already taken by Panels created earlier. All Panels created after the Panel with ‘Fill’ docking will be placed over it. Person Property Name Description Caption Choose a caption for this control. Normally it is the caption that is visible at MBPM Designer User's Guide 153 Chapter 20 Designing a Form Property Name Description run-time. Name Specify a unique name to identify this control. This name is not visible at runtime. Position from top The position (in pixels) of this control, from the top edge of the form. Position from left The position (in pixels) of this control, from the left hand side of the form. Anchor Use this to adjust form control behavior on form resizing. There are four available options: Top, Bottom, Left and Right. Form controls will change position and be resized depending on the combination of options selected. Visibility depends on Indicates rules for showing the control. User Name Indicate whether you want to specify a calculation or select a Business Object variable. Calculation Specify a calculation to retrieve the parameter value. Business Object Item Select a Business Object variable as the Parameter value. Default action behavior Specify a default action usage status for this control. Field is dependent on another Check this if you want this 154 MBPM Designer User's Guide Chapter 20 Designing a Form Property Name Description field to be updated when any field marked 'field has dependents of its own' has been changed. Field has dependants of its own Check this to indicate that other fields on this form are dependent on this field, and it should therefore be updated when any field marked 'field is dependent on another' is changed. Hint Type in the text you want to use to explain to a user how to use this control. Hint text appears when the use rolls or hovers over the control. Notes Use this to enter any specific notes for anyone using this control within the Designer environment. Rich Text Property Name Description Caption Choose a caption for this control. Normally it is the caption that is visible at run-time. Name Specify a unique name to identify this control. This name is not visible at runtime. Caption alignment Choose the position for the caption of this field above, below, to the left or to the right. Position from top The position (in pixels) of MBPM Designer User's Guide 155 Chapter 20 Designing a Form Property Name Description this control, from the top edge of the form. Position from left The position (in pixels) of this control, from the left hand side of the form. Anchor Use this to adjust form control behavior on form resizing. There are four available options: Top, Bottom, Left and Right. Form controls will change position and be resized depending on the combination of options selected. Width Specify the width, in pixels, of this control. Height Specify the width, in pixels, of this control. Visibility depends on Indicates rules for showing the control. Default action behavior Specify a default action usage status for this control. Variable Indicate whether you want to specify a calculation or select a Business Object variable. Calculation Specify a calculation to retrieve the parameter value. Business Object Item Select a Business Object variable as the Parameter value. Auto-hide Check this to ensure that the toolbar is always displayed. Uncheck to 156 MBPM Designer User's Guide Chapter 20 Designing a Form Property Name Description display the toolbar only when the control is being edited. Client extensions The field is included only for backwards compatibility. On field entry Do this when the control acquires system focus. On field exit Use this to create a script that is run when the user exits the field. Field is dependent on another Check this if you want this field to be updated when any field marked 'field has dependents of its own' has been changed. Field has dependants of its own Check this to indicate that other fields on this form are dependent on this field, and it should therefore be updated when any field marked 'field is dependent on another' is changed. Hint Type in the text you want to use to explain to a user how to use this control. Hint text appears when the use rolls or hovers over the control. Notes Use this to enter any specific notes for anyone using this control within the Designer environment. Rich Text spell-check supports only following languages: l English (United States) [en-US] l French (France) [fr-FR] MBPM Designer User's Guide 157 Chapter 20 Designing a Form l German (Germany) [de-DE] To send Rich Text contents as an e-mail: 1. Add a Rich Text control and a Command button to a Form. 2. Assign a text variable named RTV to the Rich Text control. Set name of the Button to btnSendEmail. 3. Select 'Server operation' in Button Activity property for the btnSendEmail. 4. Add Event Handler Script to 'On Button Pressed' action. 5. Add Code Activity to Event Handler. 6. Add the following line to code function body: Mstm.SendEmail("to@email","cc@email","CC",Local.RTV ,"",""); Replace to@email and cc@email with your own email address. Note: Email address with non-ascii characters is not supported by SendEmail. Following are the examples of email addresses which are not supported: 伊 æ˜ å‚‘ @郵 件 .商 å‹™ (Chinese, Unicode) юзер@екзампл.ком (Ukrainian, Unicode) θσερ@εχαμπλε.ψομ (Greek, Unicode) 7. Deploy the Solution. 8. Open the relevant Form from the Blank Forms in the Web Client. 9. Form opens with Rich Text control and btnSendEmail. 10. Type some text with different formatting (size, color, font, background color, italic, bold, etc) in Rich Text control. 11. Press btnSendEmail. 12. Check your e-mail. Observe the e-mail content. It should have the same formatting that it has in Rich Text control. To convert Rich Text control’s formatted content to a Text control’s unformatted content: 1. Using the Form from the previous example, create the following additional controls: A Text control named PlainText and a Command button named PlainTextEmail. 2. Select 'Server operation' in Button Activity property for the PlainTextEmail. 3. Add Event Handler Script to PlainTextEmail’s ‘On Button Pressed' action. 4. Add Code Activity to Event Handler. 5. Add the following line to code function body: Local.PlainText = Mstm.HtmlToText(Local.RTV); Mstm.SendEmail("to@email","cc@email","CC",Local.PlainText ,"",""); Replace to@email and cc@email with your own email address. Note: Email address with non-ASCII characters is not supported by SendEmail. 158 MBPM Designer User's Guide Chapter 20 Designing a Form 6. Deploy the Solution. 7. Open the relevant Form from the Blank Forms in the Web Client. 8. Type some text with different formatting (size, color, font, background color, italic, bold, etc) in Rich Text control. 9. Press PlainTextEmail. 10. Check your e-mail. Observe the e-mail content. It should not have any formatting as we have removed the formatting by copying the contents from Rich Text control to a Text control using the HtmlToText function. Radio group Property Name Description Caption Choose a caption for this control. Normally it is the caption that is visible at run-time. Name Specify a unique name to identify this control. This name is not visible at runtime. Position from top The position (in pixels) of this control, from the top edge of the form. Position from left The position (in pixels) of this control, from the left hand side of the form. Anchor Use this to adjust form control behavior on form resizing. There are four available options: Top, Bottom, Left and Right. Form controls will change position and be resized depending on the combination of options selected. Width Specify the width, in pixels, of this control. Height Specify the height, in pixels, of this control. MBPM Designer User's Guide 159 Chapter 20 Designing a Form Property Name Description Orientation Choose whether you want to display this radio group horizontally, rather than vertically, that is the default. Visibility depends on Indicates rules for showing the control. When changed Use this to create a visual script that is run when this control has been changed. Default action behavior Specify a default action usage status for this control. Variable Indicate whether you want to specify a calculation or select a Business Object variable. Calculation Specify a calculation to retrieve the parameter value. Business Object Item Select a Business Object variable as the Parameter value. Client extensions The field is included only for backwards compatibility. On field entry Do this when the control acquires system focus. Note: The On field entry event occurs when moving between radio groups and other controls and not when moving between radio buttons within a radio group. On field exit 160 Use this to create a script that is run when the user exits the field. MBPM Designer User's Guide Chapter 20 Designing a Form Property Name Description Note: The On field exit event occurs when moving between radio groups and other controls and not when moving between radio buttons within a radio group. Radio button captions This specifies the caption to be displayed against each individual button in a radio group, and to be stored in the radio group’s variable when a button is selected. l l l In the drop-down menu, select an Option caption and type the caption you want. To display more than three buttons, in the drop-down menu, click after the last caption and press Return to start a new line. To delete a radio button, in the dropdown menu, select the caption and press DELETE key. Field is dependent on another Check this if you want this field to be updated when any field marked 'field has dependents of its own' has been changed. Field has dependants of its own Check this to indicate that other fields on this form are dependent on this field, and it should therefore be updated when any field marked 'field is dependent on another' is changed. MBPM Designer User's Guide 161 Chapter 20 Designing a Form Property Name Description Hint Type in the text you want to use to explain to a user how to use this control. Hint text appears when the use rolls or hovers over the control. Notes Use this to enter any specific notes for anyone using this control within the Designer environment. Rule Property Name Description Name Specify a unique name to identify this control. This name is not visible at runtime. Position from left The position (in pixels) of this control, from the left hand side of the form. Position from top The position (in pixels) of this control, from the top edge of the form. Anchor Use this to adjust form control behavior on form resizing. There are four available options: Top, Bottom, Left and Right. Form controls will change position and be resized depending on the combination of options selected. Width Specify the width, in pixels, of this control. Height Specify the height, in pixels, of this control. 162 MBPM Designer User's Guide Chapter 20 Designing a Form Property Name Description Type Rule type. Color Choose a color for this line or box. Style Style for the rule. Client extensions The field is included only for backwards compatibility. Visibility depends on Indicates rules for showing the control. Notes Use this to enter any specific notes for anyone using this control within the Designer environment. Signature Property Name Description Caption Choose a caption for this control. Normally it is the caption that is visible at run-time. Name Specify a unique name to identify this control. This name is not visible at runtime. Caption alignment Choose the position for the caption of this field above, below, to the left or to the right. Position from top The position (in pixels) of this control, from the top edge of the form. Position from left The position (in pixels) of this control, from the left hand side of the form. Anchor Use this to adjust form MBPM Designer User's Guide 163 Chapter 20 Designing a Form Property Name Description control behavior on form resizing. There are four available options: Top, Bottom, Left and Right. Form controls will change position and be resized depending on the combination of options selected. Width Specify the width, in pixels, of this control. Height Specify the height, in pixels, of this control. Visibility depends on Indicates rules for showing the control. Default action behavior Specify a default action usage status for this control. When changed Use this to create a visual script that is run when this control has been changed. Variable Indicate whether you want to specify a calculation or select a Business Object variable. Calculation Specify a calculation to retrieve the parameter value. Business Object Item Select a Business Object variable as the Parameter value. Client extensions The field is included only for backwards compatibility. On field entry Do this when the control acquires system focus. On field exit Use this to create a script 164 MBPM Designer User's Guide Chapter 20 Designing a Form Property Name Description that is run when the user exits the field. Field has dependants of its own Check this to indicate that other field(s) on this form is dependent on this field, and it should therefore be updated when any field marked 'field is dependent on another' is changed. Field is dependent on another Check this if you want this field to be updated when any field marked 'field has dependents of its own' has been changed. Hint Type in the text you want to use to explain to a user how to use this control. Hint text appears when the use rolls or hovers over the control. Notes Use this to enter any specific notes for anyone using this control within the Designer environment. Status Property Name Description Name Specify a unique name to identify this control. This name is not visible at runtime. Position from top The position (in pixels) of this control, from the top edge of the form. Position from left The position (in pixels) of this control, from the left hand side of the form. MBPM Designer User's Guide 165 Chapter 20 Designing a Form Property Name Description Anchor Use this to adjust form control behavior on form resizing. There are four available options: Top, Bottom, Left and Right. Form controls will change position and be resized depending on the combination of options selected. Variable Indicate whether you want to specify a calculation or select a Business Object variable. Calculation Specify a calculation to retrieve the parameter value. Safety threshold Use this field to specify the value of the safety threshold for this status field. Danger threshold Use this field to specify the value of the danger threshold for this status field. Value as percentages Use percentages for threshold values. 100% Enter a value that represents "100%" for this status. (For example if you have 1,300 staff, enter '1, 300' in this field.) Display value Allows both the icon and value to be displayed. Alignment value Set the alignment of value to the left, right, top, or bottom for Status fields. Set the alignment of value 166 MBPM Designer User's Guide Chapter 20 Designing a Form Property Name Description to the left or right for Status Fields in Grids and Custom Lists. Business Object Item Select a Business Object variable as the Parameter value. Visibility depends on Indicates rules for showing the control. Warning Choose an image to display if this status state becomes a warning. Warning hint When deployed, the text entered is displayed as an alternative text when you hover your mouse over the field. Safety Choose an image to display if this status sate becomes a safety. Safety hint When deployed, the text entered is displayed as an alternative text when you hover your mouse over the field. Danger Choose an image to display if this status state becomes a danger. Danger hint When deployed, the text entered is displayed as an alternative text when you hover your mouse over the field. Drill down to Choose whether this status field drills down to one of the following: 1. No drill down No drill down is MBPM Designer User's Guide 167 Chapter 20 Designing a Form Property Name Description performed. 2. Initiate a Process Selecting this option displays the Dynamic, Process, Action, and Parameters fields. If you do not select Dynamic, you can select the static values for the Process and Actions available in the selected process from the respective drop-down lists. If you select Dynamic, you can click on the Expression Builder icon in the Process and Action fields to set the respective values. The Parameters field is displayed when static values are set for the Process and Action fields. The Parameters value can be set by clicking on the ellipsis button. The Expression Builder with Assignments Builder is launched where you can set the values to the form fields. 2. Administration form Selecting this option displays the Dynamic, Administration Form Group, Administration Form, and Parameters fields. If you do not select Dynamic, you can select the static values for the Administration Form Group and Administration Form 168 MBPM Designer User's Guide Chapter 20 Designing a Form Property Name Description from the respective dropdown lists. If you select Dynamic, you can click on the Expression Builder icon in the Administration Form Group and Administration Form fields to set the respective values. The Parameters field is displayed when static values are set for the Administration Form Group and Administration Form fields. The Parameters value can be set by clicking on the ellipsis button. The Expression Builder with Assignments Builder is launched where you can set the values to the form fields. 4. URL Enter a URL to open when this status button is clicked on. 5. Existing Folder Selecting this option displays the Folder ID field. This allows for an expressionable folder id to be specified. It accepts a Text return type. It is then possible to navigate to the specified folder during execution. Field is dependent on another Check this if you want this field to be updated when any field marked 'field has dependents of its own' has been changed. On field entry Use this to create a script MBPM Designer User's Guide 169 Chapter 20 Designing a Form Property Name Description that is run when the user enters the field. On field exit Use this to create a script that is run when the user exits the field. Client extensions The field is included only for backwards compatibility. Notes Use this to enter any specific notes for anyone using this control within the Designer. Note: In order to ensure the Status field refreshes correctly in the Web Client, the Status field tab order should be prior to the tab order of the field it is dependent on. Text Property Name Description Caption Choose a caption for this control. Normally it is the caption that is visible at run-time. Name Specify a unique name to identify this control. This name is not visible at runtime. Caption alignment Choose the position for the caption of this field above, below, to the left or to the right. Position from top The position (in pixels) of this control, from the top edge of the form. Position from left The position (in pixels) of this control, from the left hand side of the form. Anchor Use this to adjust form 170 MBPM Designer User's Guide Chapter 20 Designing a Form Property Name Description control behavior on form resizing. There are four available options: Top, Bottom, Left and Right. Form controls will change position and be resized depending on the combination of options selected. Field Alignment Choose the alignment (left, center, right) for the caption the user will see for this control. Width Specify the width, in pixels, of this control. Maximum length Indicate the maximum length (in number of characters) for this field. Mask Choose a validation mask for this entry: the user will not be able to enter data that does not 'fit' the mask you choose. The Mask property defines the format of the text to be entered at runtime. Value in a masked text field, entered at runtime, will be validated after entering data and exiting a field. Selecting a Mask To choose a predefined mask, for example, time of day, do the following: 1. Click on the ellipsis button that appears to the right of the Mask property. The Mask Picker dialog is displayed. MBPM Designer User's Guide 171 Chapter 20 Designing a Form Property Name Description 2. Select a mask from the list or enter your own in encoded format into the Mask field. The Mask formats are encoded and are referred to as Regular Expressions. For users who want to develop their own Regular Expressions for text masks, refer to http://www.regularexpressions.info/ If there are no suitable formats in the Mask Name list, click Browse to locate a folder with a suitable mask collection (file type of *.xml) file. Note: The Mask property is not available if the Password field is checked. Mask applies to Field The mask applies to field offers the following options: l Anywhere in the text l The start of the text l The end of the text l The entire text Choosing one of these options will cause the Mask field to change appropriately. Validation Clicking the Validate button causes the text in Test value property to be validated against the mask property. 172 MBPM Designer User's Guide Chapter 20 Designing a Form Property Name Description Password Indicates that this field is a password: if you choose this, data entered into the field will be masked. If you check the Password check box, MBPM is instructed to display all user input as asterisks and to store all user input in the database in encrypted form. A password text property will never be filled by the server: information travels only from the client back to the server, never the other way. Visibility depends on Indicates rules for showing the control. Default action behavior Specify a default action usage status for this control. Variable Indicate whether you want to specify a calculation or select a Business Object variable. Calculation Specify a calculation to retrieve the parameter value. Business Object Item Select a Business Object variable as the Parameter value. Client extensions The field is included only for backwards compatibility. When changed Use this to create a visual script that is run when this control has been changed. On field entry Do this when the control acquires system focus. MBPM Designer User's Guide 173 Chapter 20 Designing a Form Property Name Description On field exit Use this to create a script that is run when the user exits the field. Field is dependent on another Check this if you want this field to be updated when any field marked 'field has dependents of its own' has been changed. Field has dependants of its own Check this to indicate that other field(s) on this form is dependent on this field, and it should therefore be updated when any field marked 'field is dependent on another' is changed. Hint Type in the text you want to use to explain to a user how to use this control. Hint text appears when the use rolls or hovers over the control. Notes Use this to enter any specific notes for anyone using this control within the Designer environment. Using a text field to add a hyperlink There are two ways in which you can add a hyperlink to a form using a text field: 1. Using a Business Object: 1. Create a text box on a form. 2. Right-click on text box and click Add Variable. 3. In the Create a new Custom Variable window, enter a Variable Name, select a Business Object, and click OK. 174 MBPM Designer User's Guide Chapter 20 Designing a Form Depending on the selected Business Object type, a Form or Process Variable is created. 4. Using the Properties pane, set the following properties for the text box: Client Extensions: URL Variable: Business Object Calculation: "http://www." + AppBO.Company + ".com" Caption: Company Website URL The link that is displayed on the form will display the text entered in Caption property. 5. Click on the Form containing the text box to select it. 6. Using the Properties pane, set the following properties for the form: When user loads form: Click ‘Activate Visual Script Event-Handler’ A Visual Script Editor tab opens. 7. Drag and drop Assign Value(s) activity into the main pane of the Visual Script Editor. 8. Using the Properties pane, set the following properties for the AssignmentActivity1: Assignments: Click on the ellipsis to open the Assignments Builder. MBPM Designer User's Guide 175 Chapter 20 Designing a Form 9. In the Variable drop-down, select the variable that you have created. 10. In the value field, enter "opentext". 11. Click OK. 12. Save and deploy the process. The text box is displayed as a hyperlink. Note: Field is dependent on another property does not have an effect if the text field is used as a URL. 2. Using a calculated value: 1. Create a text box on a form. 2. Using the Properties pane, set the following properties for the text box: Client Extensions: URL Variable: Calculated Calculation: "http://www." + AppBO.Company + ".com" Caption: Company Website URL where: AppBO is a Business Object associated with the Process Company is a Process Variable associated with AppBO. The link that is displayed on the form will display the text entered in Caption property. 3. Save and deploy the process. The text box is displayed as a hyperlink. Note: Field is dependent on another property does not have an effect if the text field is used as a URL. For more information on using Business Objects and Visual Scripts, refer to Introduction to Business Objects and Introduction to Visual Scripts sections. 176 MBPM Designer User's Guide Chapter 21 Introduction to Form Segments Chapter 21 Introduction to Form Segments Form segments are re-usable collections of form controls. You can add controls to a form segment in the same way as you would when building a form; you can then reuse the form segment on other forms. Examples where form segments may be used are: l As header blocks for forms. l As blocks of controls that are used repeatedly such as name and address. MBPM Designer User's Guide 177 Chapter 21 Introduction to Form Segments In the above example, the same form segment with fields Issue date and Current date are used in Form 1 and Form 2 as footer. Form segments cannot be nested, that is, they cannot contain other form segments. When placing a form segment on a form, the form controls will display on the form offset from the top left corner of where the form segment was placed, by the same exact offset from the top left corner of where they are on the form segment. For example, if a text control is located at position (5, 5) on a form segment, and that form segment is placed on a form so that its top left corner is positioned at (10, 20) on the form, the text control from the form segment will display at position (15, 25) on the form. Creating and Using Form Segments To create a new form segment: 1. In the Home ribbon tab, Components group, click the Form Segment button. Whenever you create a new form segment, a blank form segment is displayed in a tabbed window in the main pane of the Designer. You can drag the corners or sides of this form to re-size it. 2. Edit the form segment's properties. Adding Controls to a Form Segment Form controls can be added to the form segment in the same way as for forms: In the form Toolbox, click on the required control and then click on the on the form segment where you want to place it. Designer displays the control and its corresponding properties. Note: To add several copies of a particular form control, hold down the Shift key while clicking on the desired control button, then click at each location on the form segment where you want the control placed. Click on the Pointer arrow or select another form control to disable the multiple placement function. Note: Due to changes in Form Segment behavior in 9.1, editable fields in Form Segments will behave differently when layered. If Form Segments with editable fields are placed on top of one another on a Form, then only the top Form Segment’s fields will be editable. This change will affect Forms developed prior to 9.1 that use this design. To counter this change it is now possible to set visibility at the Form Segment level which will allow exposure of editable Form Segment controls when placed underneath another Form Segment. Adding an instance of Form Segment to a Form To add an instance of form segment to a form: 178 MBPM Designer User's Guide Chapter 21 Introduction to Form Segments 1. Select the form in the main pane of the Designer. 2. In the Toolbox, Form Segments pane, click on the form segment you wish to add. 3. Click on the form where you wish to place the form segment. The contents of the form segment are added to the form. Once you have added a form segment, you can move it around the form and align it with other form controls in the usual way. Within a form, a form segment behaves like a single form control. You cannot select individual controls in the form segment. If you wish to edit controls in the form segment, edit them in the original form segment, not in a form to which the segment has been added. Any changes that you make to a form segment will automatically be reflected in any form that includes the form segment. You cannot place a form segment inside another form segment. Troubleshooting Consider a Project containing a Form with a Form Segment. If the instances of the Form Segment are resized, re-opening these Projects in a newer version may cause the Form Segment instance size to be reset to Form Segment size. You can correct the issue in the following ways: l l Open the Solution with the incorrect Form in the Designer. Open the Form. The size of the Form Segment instance will be reset. Resize Form Segment instance to desired size either by dragging the Form Segment instance edges or by editing its size from the Properties pane. Save the solution. The alternative way is to edit the appropriate Form file in a text editor before opening it in the Designer. This way the Form Segment instance size is kept unchanged. To do so, you should follow these steps: a. Open the Form file in a text editor. b. Find the XML section describing Form Segment instance. Normally, you can find it by a string FormSegmentReferenceEntity. The line will look like: <x:Object x:Name="Segment1" x:Type="{pref_ 1900572819:FormSegmentReferenceEntity}"> c. Add an entity version information x:Version="2.0.0.0" into starting XML tag. The resulting string should look like: <x:Object x:Name="Segment1" x:Type="{pref_ 1900572819:FormSegmentReferenceEntity}" x:Version="2.0.0.0"> d. Save and close the file. MBPM Designer User's Guide 179 180 MBPM Designer User's Guide Chapter 22 Introduction to Administration Forms Chapter 22 Introduction to Administration Forms Administration forms allow the user to carry out administrative processes. Note that Administration forms do not start a process. Creating Administration Forms To create a new administration form: 1. On the Home ribbon tab, Components group, click the Admin Form button. A blank administration form is displayed in a tabbed window in the Designer. You can drag the corners or sides of this form to re-size it. 2. Edit the form properties. 3. Drag and drop the controls in the toolbox to build the form. MBPM Designer User's Guide 181 182 MBPM Designer User's Guide Chapter 23 Admin Form Group Chapter 23 Admin Form Group Admin Form Group is a component that allows you to create a grouping of your administration forms. To create an Admin Form Group: 1. In the Home tab, Components group, click Admin Form Group. An Administration Form Group is displayed in the Inventory. Also, a tab is displayed in the main pane to set the name, caption, and a default group for your new Admin form group. If you select the default group, then all the new administration forms that you create will be added to this group. You can use the Grid tools tab to insert, delete, move or delete Admin form groups. Moving Admin Forms among Admin Form Groups In the Inventory, you can drag and drop administration forms between the admin form groups. Deleting Admin Form Groups In the Inventory, you cannot delete an administration form group without deleting the administration forms that it holds. MBPM Designer User's Guide 183 184 MBPM Designer User's Guide Chapter 24 Introduction to Roles Chapter 24 Introduction to Roles Roles are a way of grouping process users. Individuals may be grouped by function, by geographical location, by skill set, or by any other criteria relevant to your organization. Process users are defined as anyone within an organization who will be using the MBPM system. In most cases, this will include everyone on the staff roster, and may be expanded to include contract or temporary workers, suppliers, customers, and so on. Defining a Role When designing a process, Roles are used to decide whether: l Specific folders should appear on a user’s To Do list, Watch list or neither. l A user is permitted to undertake a particular action. l A user is permitted to view a form in a folder. l A specific form will appear on a users Blank Forms list. For example, “Credit Manager,” “Shipping Clerk,” and “Operations Controller” are all Roles which may have responsibility for particular stages and actions in the process. Using Roles rather than assigning particular individuals to the task makes it much easier to maintain a process. As individuals join and leave the organization or change duties within the organization, the administrator only has to reassign the Role to another user rather than ask the process Designer to change the process. Roles are defined through the Roles list, which may be accessed by clicking on the Roles button on the Home tab > Components group. Creating a Role To add a Role to the Roles list, first open the project who’s Roles you wish to modify. Roles can be classified as Group Roles and Dynamic Roles. Roles that do not have a formula are classified as Group Roles. Entering data into a formula field is the criterion which changes a role from being a Group Role to being a Dynamic Role. To create a new Role, on the Home ribbon tab, Components group, click on the Role button. The Roles List is displayed with a new row. MBPM Designer User's Guide 185 Chapter 24 Introduction to Roles Note: The default Roles created by Designer have Project as their scope. This means that the Role is available to all processes in the project. You can choose to limit the scope of a Role only to a Process by selecting Process from the Scope drop-down menu. 1. Click on the blank row to add a new row. 2. In the new row's Name field, enter the Role name. A Role name cannot be longer than 31 characters, and may only include letters (A-Z or a-z), numbers (0-9) and underscores. 3. In the Caption field, enter a caption for the Role. The Roles are referred by their caption. 4. In the Scope field, select the scope (project or library) from the drop-down menu. 5. In the Description field, enter a brief description of the Role. To dynamically define the users who may use a Role, follow steps 6 and 7 below. 6. In the Formula field, click on the button to display the Expression Builder. 7. Create the formula in the Expression Builder and click OK to return to the Roles List. The new Role is added to the list. Group Role A Group Role is a Role to which users are assigned, for example, “Area Managers.” The same user holds the Role for every MBPM process. A Group Role defined through the Roles dialog is added to the database when the process containing it is deployed. As new Group Roles are added to the database, their User/Role assignments become available to processes. In order to use a Group Role assignment, the Role must be manually added to the process where you wish to use it. Note: It is a good idea to make a master list of the Group Roles in your organization, and post it where you can refer to it whenever you are designing or modifying a process. This list will help prevent you from using different naming conventions for the same Role in different processes, which could result in a number of redundant Roles. (That is : The names “Marketing Director,” “Mktg. Director,” “Marketing Dir,” and “Mktg Dir” all refer to the same Role, but each would have to be assigned separately). Dynamic Role Dynamic roles may be based on formulas, database queries, content cached from directories, and so on. The following dynamic roles are set up automatically by Designer: l l "Everybody" is used to specify all users registered in the MBPM database "Metastorm Administrator" is used by the individual(s) with authority to administer the MBPM system, and should always be assigned to at least one registered user. This role may also be used by the process designer when creating and testing a process. 186 MBPM Designer User's Guide Chapter 24 Introduction to Roles l l "Originator" identifies the user who created a folder "Access" identifies all users who hold the role identified in each process' Limit access to property l "Metastorm Guest" is used to allow access by anonymous users l "To Do list" is used to indicate all users on whose To Do lists a folder currently resides l "Watch list" is used to indicate all users on whose Watch lists a folder currently resides l Dynamic roles are specific to a process. MBPM Designer User's Guide 187 188 MBPM Designer User's Guide Chapter 25 Introduction to Find and Replace Chapter 25 Introduction to Find and Replace “Find and Replace” searches all parts of a solution for the text that you type in. You can use Find and Replace to search for processes, events, forms, reports, roles, solution tables, variables, and text. You can extend your search by using wild cards to find words or phrases that contain specific letters or combinations of letters in MBPM components. Find Text You can quickly search for every occurrence of a specific word or phrase. 1. On the Home tab, in the Find and Replace group, click in the drop-down field. 2. Type the text that you want to search for. 3. Click on the Find button. The results are displayed in the Find Results pane. Advanced Find and Replace If you want to search for a specific word or phrase only in one or more MBPM components, you can use the Advanced Find/replace. 1. On the Home tab, in the Find and Replace group, click Advanced Find/Replace. The Advanced Find pane is displayed. 2. In the Find what field, type the text that you want to search for. 3. In the Look in field, select whether you want to search in the existing solution or all the open files. 4. In the Types included field, select the MBPM components in which you want to search for the text. 5. If you wish to also search in the library, select the Search in referenced libraries check box. 6. In the Find Options pane, you can filter your search by: n Match case n Find whole words only n Use Wildcards MBPM Designer User's Guide 189 Chapter 25 Introduction to Find and Replace 7. Click on the Find button to initiate the search. The results are displayed in the Find Results pane. Note: If you wish to find a specific object, for example form or process elements and so on, search for the object's caption. You can then click on the find result to go to the object. Find Results The Find Results pane displays the search results. Replace Text To replace text: 1. Click on a row to select it. Use shift + click or Ctrl + click to select multiple rows. You can also use the Select All button to select all the rows. 2. In the For selected items, replace "Browser" with field, type the replacement text. 3. Click on the Replace button. The text is replaced in the properties of the selected objects. Filtering the Results The standard filter functions are available for each column of the Find results pane. 1. Click on the right side of the column heading to display the filter icon. 2. Click on the filter button to display a selection menu. 3. In the menu, select the parameter to filter on. 190 MBPM Designer User's Guide Chapter 26 Introduction to Business Objects Chapter 26 Introduction to Business Objects A Business Object enables process designers to access and manipulate data in a business process. It provides a unified data access layer and can access various databases. Types of Business Objects Business Object Type Designer Business Objects Designer Business Objects are used to hold system, custom, and temporary variables. Designer Business Objects are used to store and share data between the different components of the Designer. Custom Business Objects MBPM Designer User's Guide Description Process Context Business Objects Holds the system variables and folder data. Process Business Objects Every process contains it own Process Business Object that cannot be deleted. It is used to associate the process with forms and reports. Process Business Objects are also used to store custom variables that can be used across components. Local Business Objects Local Business Objects are used to store the custom variables created on the form or report. Custom Business Objects can be created by the user to make connections to external source such as databases. Table Business Objects Connect to a single table in a database. Query Business Objects Connect to multiple views 191 Chapter 26 Introduction to Business Objects Business Object Type Description or tables in a database. LDAP Query Business Objects Connects to LDAP directories. Scripted Business Objects Connect to any data source. DMS Business Objects Connect to a Document Management System. Note: Business Objects have the functionality for read-only and read-write, but not writeonly. In the following example the project contains three Designer Business Objects: l Business Object 1 is used by process 1. l Business Object 2 is used by both processes 1 and 2. l Business Object 3 is used by process 2. It also contains Custom Business Object: l Business Object 11 and Business Object 22 connects to an external database. The toolbox provides access to all Business Objects available for the Project, allowing the user to drag a Business Object to the component area in order to associate the Business Object with the component (Process, Form, Report, and so on). 192 MBPM Designer User's Guide Chapter 26 Introduction to Business Objects Custom Business Objects Custom Business Objects can be created by the user to make a connection to an external source. Data Access The Data Access displays the Process Context Business Objects and any Business Objects that are associated with the component that is currently active in the main pane of the Designer. When a new process is created, the Data Access displays the System variables and the process Business Objects. When a form is created, the Data Access displays the System variables and the form's temporary Business Objects. The Data Access displays all the Business Objects that are bound to the selected component. In the Data Access you can do the following: l Bind Business Objects variables to form controls l View the Business Objects and Business Object variables bound to the form controls l Edit Process Business Objects parameters Note: References to Business Objects used within the Expression Builder are not updated after Business Object instance is renamed from the Data Access. In the Data Access, you can right-click on a Business Object and click on the Always Refresh option. Note: The Always Refresh option is available only to Read-Only Business Objects and not Read Write Business Objects. When you select this option for a Business Object, during run-time the fields that are bound to this Business Object will retrieve data from the data source each time an operation is performed on the field. Process Context Business Objects Process context Business Object holds the system variables. These Business Objects enable variables to be shared between processes. Each project contains an instance of the Process Context Business Object. The Process Context Business Object contains the system variables and cannot be changed by the user. It is always available on every component in the project. The Process Context Business Objects does not appear in the Toolbox, but is always displayed in the Data Access. Users cannot add or remove variables to or from a system Business Object. You cannot change the Process Context Business Objects properties. The following table lists the system variables and their return types. MBPM Designer User's Guide 193 Chapter 26 Introduction to Business Objects Variable Name Return type Description ActionCaption Text Returns the caption of the current action. A value will only be available if an action has been invoked. ActionName Text Returns the name of the current action. A value will only be available if an action has been invoked. ActionNote Memo Assigns a new note or gets the note associated with current action. ActionStartsStageCaption Text Returns the caption of the stage which the action flows into and therefore initiates. A value will only be available if an action has been invoked. ActionStartsStageName Text Returns the name of the stage which the action flows into and therefore initiates. A value will only be available if an action has been invoked. ClientType For use primarily in conjunction with the “Only show action if” and “Only show form if” properties to restrict the action/form to certain device types. The ClientType variable is populated with a value provided by the client with each Engine operation request. When a system action is being performed, the value will be blank. For example, it is now possible to use one of the following based on type of the client: ProcessContext.ClientType == “Web” ProcessContext.ClientType == “Mobile” Return type CurrentTime 194 Date/time Returns the date and time provided MBPM Designer User's Guide Chapter 26 Introduction to Business Objects Variable Name Return type Description by the database on which the MBPM Process Engine is running. FolderActionCount Integer Returns the number of actions (including creation actions) that have been performed on this folder. FolderCategory Text Returns the text value stored in the predefined folder variable called category. FolderDeadline Date/time Returns the deadline set for this folder. FolderID Text Returns the internal identifier for this folder. FolderName Text Returns the folder name shown on Watch and To Do lists for this folder. FolderOriginator Text Returns the login ID of the user (if any) who originally created this folder. FolderParent Text Returns the folder ID of the parent folder (if any). FolderPriority Integer Returns the priority (0 to 9) set for this folder. FolderSubject Text Returns the subject defined for this folder. FormCaption Text Returns the name of the caption of the form being used. FormCaption is a read only variable and is available in actions and stages. When used in an action, it displays the caption of the form or a blank string when there is no form available on the action. When used in a stage, it displays the caption of the active form tab. FormCaption can also be accessed from the Expression Builder and MBPM Designer User's Guide 195 Chapter 26 Introduction to Business Objects Variable Name Return type Description via Intellisense for Expressions and Server Side scripts. FormName Text Returns the name of the form being used. If no form is being used then no value is returned. ProcessCaption Text Returns the caption of the process to which this folder belongs. ProcessName Text Returns the name of the process to which this folder belongs. ProjectName Text Returns the name of the current project. ProjectVersion Text Returns the version of the current project. StageCaption Text Returns the caption of the current stage. StageName Text Returns the name of the stage which this folder is at currently. UserError N/A Displays an error message using its value. Note: MBPM User Error messages are not displayed correctly and cause an exception on IIS7 systems. In order to correct the above behavior it is necessary to either comment out or delete the following line from the Web Client web.config file: <httpErrors> <error statusCode="404" subStatusCode="13" path="ErrorPage.aspx" responseMode="Redirect"></error> </httpErrors> UserForm 196 Text Returns the form name if and only if the user has an action open. MBPM Designer User's Guide Chapter 26 Introduction to Business Objects Variable Name Return type Description UserInput List of text items Returns the text entered by the user into the current field. (If the form field contains a collection of data, return it as a list.) Note that UserInput variable can be accessed only from Expression Builder. (Expression Builder->Business Object->ProcessContext). UserLocale Text Returns the user's locale info for localization purposes. It contains the information necessary for performing locale specific operations such as formatting dates and times, numbers and comparing strings etc. UserName Text Returns the user name of the active user. WhenFolderCreated Date/time Returns the date and time that this folder was created. WhenFolderLastUpdated Date/time Returns the date and time that this folder was last updated either when it entered the stage or when it was processed by a loop back action. WhenStageStarted Date/time Returns the date and time that this folder entered the current stage. Cost and Revenue Enhancements This section provides details of the cost and revenue enhancements that have been added to the repository. The cost and revenue information can be used in a BPM process or for reporting purpose. New Columns in eEvent and eFolder Tables As part of the BPM database schema creation, the following new columns are created in the eEvent and eFolder tables. The new columns can be used to calculate values for cost and revenue purposes. New columns in eEvent table: l eIsException l eCost l eRevenue MBPM Designer User's Guide 197 Chapter 26 Introduction to Business Objects l eWorkTimeMinutes l eTotalCost l eTotalRevenue l eTotalWorkTimeMinutes New columns in eFolder table: l eIsException l eTotalCost l eTotalRevenue l eTotalWorkTimeMinutes The new schema columns are accessible via the ProcessContext Business Object variables. Cost and Revenue ProcessContext Business Object Variables The following table lists the Cost and Revenue ProcessContext Business Object variables: Variable Name Return type Description IsException Boolean It can be used to indicate when a folder is in an ‘exception’ state. The value is set to FALSE, by default. TotalCost Currency It allows you to add or edit a value that represents the total cost related to a folder at a specific stage in a process. This value can be used for reporting purposes. TotalRevenue Currency It allows you to add or edit a value that represents the total revenue gained while a folder is at a specific stage in a process. This value can be used for reporting purposes. TotalWorkTimeMinutes Number It allows you to add or edit a value that represents the total time spent by a folder at a specific stage in a process. This value can be used for reporting purposes. 198 MBPM Designer User's Guide Chapter 26 Introduction to Business Objects The above variables correspond to the new columns added to the eFolder and eEvent tables as displayed in the table below: ProcessContext Variable Corresponding eFolder Table Column Corresponding eEvent Table Column IsException eIsException eIsException TotalCost eTotalCost eTotalCost TotalRevenue eTotalRevenue eTotalRevenue TotalWorkTimeMinutes eTotalWorkTimeMinutes eTotalWorkTimeMinutes The above ProcessContext variables can be used to create event handlers that can add or edit values to the corresponding database columns. When adding data to the above columns in the eFolder table, a record is created in both the eFolder and eEvent table and the same columns are populated with the same values. The records have the same eFolderID. Note: An event handler can be created that will edit the existing values in the eFolder columns. If the columns are edited, the changes are reflected in the columns in the eFolder table. A new event record is created in the eEvent table with the new values and the difference between the initial values and the current values is recorded in the eEvent table columns eCost, eRevenue, and eWorkTimeMinutes respectively. Process Business Objects Process Business Objects are created when a process is created. Every process contains it own Process Business Objects that cannot be deleted and remains permanently associated to the process. You can add and remove custom variables to the Process Business Objects. Once variables have been added to the ProcessBusinessObject dataset, these variables will be accessible to any component (Process, Form, and Report) that binds to this ProcessBusinessObject. When you create a process, a process Business Object is created that can be viewed in the Business Objects Explorer. Note: When using an Assignment activity in a Visual Script, the eFolderId displayed in the Process Data Business Object of the variable tree is the Business Object parameter and not the system variable. Local Business Objects Local Business Objects are created when a form is created. A Local Business Object cannot be deleted and remains permanently associated to the component. Users can add variables to the Local Business Object. MBPM Designer User's Guide 199 Chapter 26 Introduction to Business Objects Local Business Objects do not connect to anything; they are just a store for custom variables created on the component. These variables will be temporary variables (these variables will be cached for the time that the form exists, but will be deleted afterward) and will not be accessible outside the form. Add a Variable to a Local Business Object 1. Click Manage Variables in the Home tab of the Designer toolbar. A window is displayed where you can add or delete variables for all the listed processes. 2. Select Business Object name and click Add Variable button. The new variable is added to the selected Business Object. You can change the data type of the variable by clicking in the Text field, which displays a list of choices. The default data type is Text. Delete a Variable from a Local Business Object 1. Click Manage Variables in the Home tab of the Designer toolbar. 2. Select the variable that you want to delete and click Delete Variable button. 3. Click Yes to confirm the deletion. Binding Processes to Forms and Reports When a process is created a corresponding process Business Object is also created. When a form or report is created, it is not visible to anything. To enable it to be seen by the business process, a form or report must be attached. Note: Reports do not support multiple Business Objects. To bind a process to a form: 1. Select the form in the Designer. The toolbox displays the Business Objects for all available processes. 2. In the toolbox, select the required process Business Object and drag it on to the form. The process Business Object appears in the Data Access. The form can now be seen by the process. Any variables added to the Process Business Object will be accessible to any component (form and report) that binds to the process Business Object. 3. Repeat step 2 for each process you wish to bind to the form. 200 MBPM Designer User's Guide Chapter 26 Introduction to Business Objects In the above example: 1. Select the form in the main pane of Designer, 2. Drag the Business Object that you want to bind to the form and drop it in the form. 3. The Business Object is now displayed in the Data Access. Note: When the process Business Object is added to the Data Access, an additional identifier is added to it. This identifier will be incremented each time the same Business Object is added. Example MBPM Designer User's Guide 201 Chapter 26 Introduction to Business Objects If process Business Object Process1 is added to a form, it will appear in the Data Access as Process11. If process Business Object Process1 is added to a form again, it will appear in the Data Access as Process12. Adding a Business Object to a Component Twice You can add the same process Business Object to the same form or report as often as you wish. A typical reason for doing this would be to enable a form to use different folderIDs (for example, parent folder or a child folder) at different stages. In the example below, Business Object "Process1BVTData1" is added to a form twice in the process. At stage 1 of the process, the form uses expression 1 to calculate the FolderID, but at stage 4 it calculates the ID using expression 2. Keep in mind the following: l l Server side paging is supported for one grid pointing to a particular Business Object. However, server side paging is not supported for multiple grids on the same form that point to the same Business Object. When you create a Business Object that points to a Solution Table and bind this Business Object to a form, any further edits to the Solution Table are not reflected in the Business Object. You must re-bind the Business Object to view these edits. Binding to Custom Variables Once a process Business Object has been attached to a form or report you can bind to any of the variables on the process Business Object. 202 MBPM Designer User's Guide Chapter 26 Introduction to Business Objects To bind a custom variable to a form or report: 1. Select the form or report in the Designer. 2. In the Toolbox, select the Process Business Object and drag-and-drop in to the component area. 3. In the Properties pane, in Variable field, select Business Object from the drop-down and then in Business Object Item field select appropriate Business Object variable from the drop-down list. This action places a control on the form/report. 4. Set the properties for the control. The length of custom variable name should be no longer than: 31 characters if you are using SQL Server 30 characters if you are using Oracle The same Business Object variable can be bound to different forms and reports or even repeated on the same component. The properties can be set independently for each instance. In the process, each element will receive the same data. Note: Spaces in table or column names associated with Business Objects is not supported when binding the Business Object to a report. No data is returned to the report when spaces are used. Binding to Process Context Variables The Process Context Business Object is always displayed in the Business Objects Explorer area of the process, form or report and can be used to bind to System variables. To bind a System variable to a process, form or report: 1. In the Toolbox, select the Business Object and drag-and-drop it in to the component area. 2. In the Properties pane, in Variable field, select Business Object from the drop-down and then in Business Object Item field select appropriate Business Object variable from the drop-down list. 3. Set the properties. Introduction to Custom Business Objects Custom Business Objects can be created by the user to make a connection to external sources such as databases. Custom Business Objects are stored within the project. They can also be added to the libraries. Database Custom Business Objects Database Custom Business Objects are used to map data in the database to the object on which the Business Object was created. There are two types of Database Business Objects: MBPM Designer User's Guide 203 Chapter 26 Introduction to Business Objects l Table l Query Depending on the type of Business Object, a relevant connection is displayed. A default "MetastormDefault" connection always exists in the Connection field. This connection can be configured from Designer Options. This connection cannot be removed. Table Business Object The Business Object connects to the database and retrieves the entire table specified in the Business Object data schema. The parameters determine which data from the table is utilized. Effectively, the Business Object maps data from the table to which ever object the Business Object was created on. A table Business Object can only select one table in the database. In the above example: l Business Object specifies the database location/connection. l The table is retrieved from the database to populate the data schema. l Represents the data schema. l Represents the data schema parameters. Note: If there is a schema column referenced to a variable within a form that has been edited or removed, a runtime error is displayed. In all cases if any columns within databases are either renamed, deleted, or added, you will need to click on Refresh button to refresh the Business Object affected to expose the updated schema and then redeploy the solution. Query Business Objects Query Business Objects can select data from multiple views or tables in the database. 204 MBPM Designer User's Guide Chapter 26 Introduction to Business Objects In the above example: 1. Business Object specifies the database location/connection. 2. The tables or views are retrieved from the database to populate the data schema. 3. Represents the data schema. 4. Represents the data schema parameters. Keep in mind these considerations: l Aliases should be provided for columns that do not have names in a Query Business Object, otherwise Grid with paging using this Business Object will not open in Web Client. For example: SELECT COUNT (ProductName) AS C, ProductID FROM Products GROUP BY ProductID l l Execute statement is not supported by the Query Business Object. A Query or Table Business Object created using a database (such as SQL Server) cannot be re-used in an environment using a different database (such as Oracle). A warning message is displayed, "Unable to connect to data source". This is because of differences in the syntax when creating a Connection using SQL Server and Oracle databases. This behavior is applicable in the Designer and Web Client components. The Business Object should be edited manually and all references to existing Business Objects need to be re-created. LDAP query An LDAP Query Business Object can connect to LDAP directories after you create a connection to an LDAP directory using Connection from the Components group. Scripted Custom Business Objects Allows process developers to create custom business objects via scripting that implement a customized interface using standard MBPM types. Data can be retrieved from any data source and may be consumed just as in the case of any other standard editable business object (i.e. Table). MBPM Designer User's Guide 205 Chapter 26 Introduction to Business Objects Document Management Support (DMS) Business Objects Provides the ability to connect to a content server. Note: SharePoint connections are not currently supported by this Business Object. Creating a Connection To establish a connection with a database, ODBC, LDAP, web service or Document Management System (DMS) use the Connection component. To create a new connection: l l On the Home ribbon tab, Components group, click on the Connection button. Select the Type of connection and select Database, ODBC, LDAP, Web services or Document Management System. If you select Database: From the Define Connection tab, select either SQL Server or Oracle, select or enter a server name, the logon information, and then select a database on the selected server. You can also click the Advanced radio button and click the Advanced button to display the Data Link Properties window from which you can establish a connection. Please note that only the following OLE DB Providers have been tested: l SQL Server Native Client 10.0 l SQL Native Client You will have the option to turn transaction support on or off so that they can work with MSDTC when the underlying database provider does not support MSDTC. To turn transaction support on, click Use DTC check box. If you select ODBC: Use system of user Data source name or a connection string to connect to the database. You will have the option to turn transaction support on or off so that they can work with MSDTC when the underlying database provider does not support MSDTC. To turn transaction support on, click Use DTC check box. Click Test Connection to test your connection. If connection succeeds, a 'Connection successful' message is displayed. Note: You will not be able to define ODBC connections in the Designer that uses 32-bit drivers if you are running Designer on a 64-bit operating system. The only work around, in this situation, is to use the Designer on a 32-bit operating system. If you select LDAP: Select the LDAP data source, authentication and logon information. The LDAP connection object allows you to define the details and credentials for a LDAP connection so that it may be reused in the Project (or Library) for accessing different attributes from the same LDAP location. 206 MBPM Designer User's Guide Chapter 26 Introduction to Business Objects Click Test Connection to ensure it is working and then select the Preview tab. Click the Refresh button and you should see the LDAP tree become available. You can drill down into it. In order to complete the creation of a connection so that it is available to be used elsewhere with a Project or Library you must save the changes you have made in creating the connection. If you select Web Service: You can browse to locate a web service or define your own web service connection. For more information, see Web Service Connection. For information on defining a connection for Document Management Systems, see Creating a Content Server DMS Connection. Web Service Connection To create a Web Service connection: 1. In the MBPM Designer, click the Home ribbon tab. 2. In the Components group of the Home ribbon tab, click Connection component. To connect to a Web Service using Web Service connection: 1. Click Locate Web Service in the lower pane. 2. Select the appropriate web service from your local computer, UDDI registry or any known URI address. If you choose "I know the URI" field, enter the URL for Web Service. For example: http://www.webservicex.net/globalweather.asmx?wsdl. Alternatively, you can browse to file on your local machine. 3. You can also choose from one of the following 3 serialization methods: Automatic (default) Data Contract XML Serialized In some cases the default automatic serialization method may not allow you to deploy the solution. When you try to deploy, you will notice an abrupt halt in the messages displayed in the Message pane indicating that the deployment was not successful. In such cases, selecting one of the other serialization methods will allow you to deploy successfully. Note: Code generation error is displayed if two web service connections are configured to use a web service on the same server via different protocols HTTP and HTTPS. Limitation of configuring connection to web service with 2-way SSL: To configure connection to web service, which is available via 2-way SSL transport, you should use WSDL file instead of Web Service URI. Also in this case, the "Test Connection" button will always return "Test unsuccessful". MBPM Designer User's Guide 207 Chapter 26 Introduction to Business Objects 4. In the MBPM Web Service Importer, click OK. The Endpoint name is automatically populated. 5. Enter a Caption for the Web Service. 6. If the Web Service is from a trusted source, select the option Trust Service Certificate. 7. If the Web Service needs authentication, select from: 8. Use Windows NT Integrated Security or 9. User name and Password. Note: When creating a Web Service connection to server using Windows NT Integrated Security, the Engine may not authenticate when executing the process. To correct this, click on Advanced tab and enter: clientCredentialType="Windows" to clientCredentialType="Ntlm". 10. To use a proxy for the Web Service: n Select the Use Proxy button. n Enter host, User name and Password. n You can select the option "Bypass the proxy server for local addresses" if you are using local address. 11. To test the connection: n Click Test Connection. n An attempt is made to access the endpoint URI mentioned in the WSDL file. n A "Connection successful" is returned for a valid connection. 12. In the Methods&Parameters tab, the available methods, return types and parameters are displayed. Set the values in the columns: Name: The method and parameter names are displayed in this column. Description: Provide a description here. The description provided here is displayed in the help area of the Expression Builder when you use the method or as displayed as a tooltip in the Visual Script Activities toolbox when you hover your mouse over the activity. Alias: By default, the method name is displayed in Expression Builder or Activity toolbox. To provide an alternative name, enter a name for the method to be displayed in Expression Builder or Visual Script toolbox. Category: You can promote the methods to a new category or choose from one of the available categories. The method is displayed in the chosen category in Expression Builder or Visual Script toolbox. You can also right-click on the Category column to sort the columns, choose the best fit, and customize the display. To customize the display, click Column Chooser and a pop-up window is displayed where you can drag and drop column names that you would like to hide. You can drag and drop from Column Chooser on to column names to display them again. 208 MBPM Designer User's Guide Chapter 26 Introduction to Business Objects Promote to Expression Builder and Visual Script toolbox: The method is exported to the chosen category in the Expression Builder or Visual Script toolbox based on selection. 13. Select the methods that you would like to promote to Expression Builder or Visual Script Toolbox. The Advanced tab can be used to edit the Web Service connection configuration settings. Note: Web Service connections built in the MBPM Designer 9.0 did not contain some of the properties required within the 9.0.1 release. To obtain these properties, the web service needs to be reactivated by clicking on the "Locate" button. Creating Custom Business Objects Create a new custom Business Object and select the connection type and connection. To create a custom Business Object: 1. On the Home ribbon tab, Components group, click on the Business Object button. The Business Object main pane tab is opened; you can add Business Object using the first row of the grid. The Business Object main pane displays all the custom Business Objects that exist within the project. You can edit existing Business Objects using in-place editing. 2. Click in the Name field and enter a name for the Business Object (optional). button and select the connection type from the drop3. In the Type field, click on the down list. The options are Table, Query, LDAP Query, Scripted and DMS. 4. If you already have defined connections, you can click in the Connection field, click on the button and select a predefined connection from the drop-down list. The parameters for a Business Object are independent from the Business Objects name, connection and type. You can change the connection of a Business Object without making any edits to the parameters. Server-side is enabled for database connections (tables and queries) only. The default server side page size can be set as a property of the Business Object. This property is enabled only when you check the property specifying that the Business Object is read-only since read-only and not-editable Business Objects will have the opportunity to support server side paging. If you select the “[None]” option, then "no server paging” will be the default when the Business Object instance is created. You can also type in a page size value that does not appear in the drop-down. The default server page size can be overwritten at the instance of the Business Object. To do this, use right-click for a Business Object instance in the Data Access. The default server page size can be modified in the Options dialog of the Designer. In v9, there will be no caching of server-side data on the client side. If you navigate to page 2 of the server page and then navigate back to page 1 of the server page, page 1 will need to be re-fetched. MBPM Designer User's Guide 209 Chapter 26 Introduction to Business Objects Editable grids will not implement server side paging for v9. If a user sorts a column, this will result in the sort occurring at the database level and then the results of the sort will be re-fetched for display in the web. The list of available types will depend on the user’s selection of the Business Object Connection type. For example, if the user has selected a connection for a database, then the list of available types will be Table and Query but will not include web service connections. The parameters pane is displayed after you choose a Table, Query, or LDAP query in Type field. 5. Define the Business Object's parameters. 6. Click > Save. Defining Custom Business Object Parameters You can define parameters for Custom Business Objects using the parameters tab of the Business Object. To define custom business object parameters: 1. Create a Business Object of type query. 2. Select the connection as MetastormDefault or create a new connection and select it. 3. The bottom pane displays Parameters, Query, Variable names, and Test tab. 4. Click on Query tab. 5. Click on Builder button. The Query Builder is launched. 6. In the Query Builder, drag and drop a table from the left pane in to the main pane of the Query Builder. 7. Select the rows that you want to be returned and set the desired criteria in the criteria column of the filter. 8. Click OK and the query is displayed in the Query pane. 9. Click on Test tab and click Refresh to display the results for the table and filtering that have been set. Using @ParameterName In the previous example, you can set the filtering criteria using @ParameterName. For example, in step 8 above, if the query is displayed as follows: SELECT RegionName FROM Regions WHERE Region = 'West' Instead of using 'West', you can use @RegionParam, and set the value of the parameter in the Parameters tab. For example, the query can be modified as follows: SELECT RegionName FROM Regions 210 MBPM Designer User's Guide Chapter 26 Introduction to Business Objects WHERE Region = @RegionParam l l l Click on the Parameters tab. You are prompted to add the parameter RegionParam to the Business Object. Click Yes. Choose a type, enter a description, and a Test value. You can use Expression Builder to select a test value. You can add more parameters in the Parameter tab and use them in your Query. Introduction to Database Business Objects You can create three types of database Business Objects: l Table Business Object l Query Business Object l LDAP Business Object Before creating any database Business Objects you should first set up any connections that you wish to use. A default "MetastormDefault" connection always exists in the Connection field. This connection can be configured from Designer Options. This connection cannot be removed. Note: Avoid using Date/Time column as a primary key. If you must use a Date/Time primary key, then disable time zone adjustment on the key column(s) in any editable grid that it is bound to. To create a Table, Query, or LDAP Query Business Object: 1. On the Home ribbon tab, Components group, click the Business Object button. A new Business Object is displayed in a tabbed window in the main pane of the Designer. 2. In the Type column, you can choose whether to create a Table Business Object, Query Business Object, or LDAP Query Business Object. Note: Editable Table Business Objects only support tables containing a primary key. After upgrading to SR3, solutions with LDAP Business Objects should either be redeployed or the "UseDTC=no;" parameter should be removed from the LDAP connection accessible from the MBPM Administrative Tools > Metastorm Repository > Projects > [Project Name] > Connections. Error message While using a table Business Object that contain fields with images in the database, the message request size may reach its maximum value during deployment. Consequently, an error message, "The maximum message size quota for incoming messages has been exceeded." may be displayed. To increase the message size quota, increase the maximum value in the following Windows Registry entry: HKEY_LOCAL_ MACHINE\SOFTWARE\Metastorm\e-work\Engine\WCF\MaxReceivedMessageSize Note: If you have created a Table Business Object, created parameters for the Business Object, and associated conditions for the parameters, it is important that when you want to MBPM Designer User's Guide 211 Chapter 26 Introduction to Business Objects delete the parameters of the Business Object, delete the conditions associated with the parameters too. Defining Table and Query Business Object Parameters The Table and Query Business Object parameters are used to select a table and rows to filter on. Table Business Object can be read/write and are able to update the table in the database. However it is possible to specify that a table Business Object is read-only. Query Business Objects are read-only. To define the Business Object parameters: 1. Select the Parameters tab. 2. Click in the first blank row of the grid. 3. In the Name field, enter a name for the parameter. 4. In the Type field, enter the parameter type. 5. In the Description field, enter a brief description of the parameter. 6. You can also enter a default value in the Default Parameter Value field. The default parameter value can accept either a constant value or you can display the Expression Builder to define an expression for the parameter value. 7. Select the Table tab. For a Query Business Object, a Query tab is displayed in place of Table tab. See Defining Custom Business Object Parameters for an example. 8. In the Table field click on and select the table to map to from the drop-down list. You will need to create a connection before the list of available tables is populated. Note: While you can select multiple parameters, you can only select one table. 212 MBPM Designer User's Guide Chapter 26 Introduction to Business Objects For a Query Business Object, a text box is available to type in your query. Alternatively, click on the Builder button on the bottom right corner to display the Query Builder. 9. To link user-defined parameters with the underlying data source, in the Filter field, click on the drop-down button to display the Filter dialog. 9. If the parameter is to be read-only, select the Read-only check box. If the check box is not checked, the parameter is allowed to update this row in the database table. 10. To add additional parameters, click in the blank row and repeat steps 4 to 11 above. 11. Click Test tab and click Refresh to display the rows that are returned. Auto Sequence In an editable Table Business Object, you can set a column's Behavior property to 'Auto Sequence' that allows the column's value to be automatically incremented when inserting rows. The ‘Auto Sequence’ is unavailable for a ‘Read-only’ Table Business Object and Query Business Object. The 'Auto Sequence' attribute is specifically for supporting Oracle databases. When the Business Object points to a MS SQL Server database, there is no effect of setting this attribute. The 'Auto Sequence' value can be set for a 'Primary Key' column; however, it will throw a Unique key validation error if you set an ‘Auto Sequence’ database column to be Unique from the database and then try to add multiple rows to the database. Note: The Auto Sequence option is available for Check type column of a Solution Table. This is because Check type variables are stored as smallint data type in the database. MBPM Designer User's Guide 213 Chapter 26 Introduction to Business Objects DMS Business Objects for Content Server Document Management System (DMS) integration allows BPM processes to route and manage documents (and document metadata) stored in the DMS. Business Objects provide a means to define connections to a Content Server repository and to determine the document attributes (metadata), which is accessible for use in the process. For more information, refer to Introduction to DMS Business Objects for Content Server. Introduction to Scripted Business Objects Scripted Business Objects allow Process Developers to write C# Server Scripts that implement Business Object interfaces. This allows the creation of Business Object types other than the existing Table, Query, and LDAP Query. After creating the Business Object type, you can define and use Scripted Business Objects in the same way as the standard types. This section is intended for users with a basic understanding of C# classes and interfaces. For more information about C#, see the MSDN C# Programming Guide. Developing a Scripted Business Object Server Script To create a scripted business object: 1. Create a new server-side script. 2. Create a new public abstract class. 3. Define a constructor for dynamic connections (optional). 4. Define variables as public properties using MBPM types. 5. Define supported parameters as public abstract properties using MBPM types (optional). 6. Implement all mandatory interfaces plus additional optional interfaces. a. IFieldAccess – provides generic programmatic access for a process designer to the Business Object. b. gerIDataSetAccess – is required for access to grids. c. grIPagedAccess – is required for access to Custom Lists and to support server-side paging. d. egISupportRefill – allows the Business Object to be loaded with different data using parameter values that change on each refill operation. e. geIIndexedAccess – is required to support Count and Indexed Access. f. IEditableAccess – allows the Business Object to save changes to its data source and is therefore required for supporting read/write actions (optional). Note: You can define Scripted Business Objects within external assemblies as well as Server-side scripts. 214 MBPM Designer User's Guide Chapter 26 Introduction to Business Objects The Anatomy of a Scripted Business Object A Scripted Business Object must implement a base class with a well-defined public programmatic interface. This interface is used internally by the Designer and Engine, and externally by Process Designers using programmatic access in Expressions, Visual Scripts, and custom code. This chapter describes the key elements of a Scripted Business Object. These elements are used within sample solutions supplied with the BPM install build and include: l Base Class l Constructor with Connections l Parameters (optional) l Variables l Interfaces MBPM Designer User's Guide 215 Chapter 26 Introduction to Business Objects Code snippets are used to provide an example of each element's implementation. The Scripted Business Object Base Class The implementation of the Scripted Business Object should include all necessary interfaces for the functionality to be supported. The class should be defined as abstract to indicate that this class is intended only to be a base class for use as a Business Object. /// <summary> /// This class implements a business object that retrieves data from a /// stored procedure in the Northwind database defined using connections. /// </summary> public abstract class CustomerOrderHistory : IDataSetAccess, ISupportRefill Constructor with Connections (optional) A Scripted Business Object can be designed to allow a process designer to dynamically pass in a connection to be used by the business object. When a constructor is included to accept a connection, a connection can be specified within the connection property of the Business Object Definition. Use this to abstract connection information from the type and to re-use the MBPM connection pool. Business Objects can utilize database connections (MetastormDefault, DB, and ODBC) or LDAP connections. For a database type connection, two constructors must be supplied. The first must have a single parameter of type MboConnectionInfo for database connections that have not previously been instantiated. The second must have a single parameter of type 216 MBPM Designer User's Guide Chapter 26 Introduction to Business Objects MboConnection for connections that have already been instantiated. For LDAP connections, the constructor should have a single parameter of type LDAPMboConnection. Note: Web Service connections cannot be passed in to a script due to differences in their interfaces. When a scripted business object is written to communicate with a particular web service, it normally involves re-writing the script. The code snippet below illustrates an example of an instantiation of an object which accepts a database connection parameter dynamically passed into the type. /// <remarks> /// This constructor may be called by the constructor of an inheriting /// business object script that takes a pre-instantiated connection to its data source. /// </remarks> public ScriptedBusinessObject(MboConnection connection) : this() { this.Connection = connection; } /// <remarks> /// This constructor may be called by the constructor of an inheriting /// business object script that takes the connection info for its data source. /// </remarks> MBPM Designer User's Guide 217 Chapter 26 Introduction to Business Objects public ScriptedBusinessObject(MboConnectionInfo connectionInfo) : this() { if (connectionInfo != null) { if (connectionInfo.MetastormDefault) this.Connection = new EngineMboConnection(); else this.Connection = new MboConnection(connectionInfo); } } Parameters (optional) You can design a Scripted Business Object to allow a process designer to dynamically pass in parameters. These are used to initialize the business object when the data is read. When including parameters in the definition of a Scripted Business Object, they are displayed within the Business Object Definition pane. This allows the process designer to add default values for the Business Object Definition. The parameters for a scripted business object are declared as public, abstract, read-only properties of an MBPM runtime type. These properties are overridden with the value(s) specified in the business object definition or business object instance. The following snippet is taken from a sample which implements an externally defined Business Object connection. public abstractMetastorm.Runtime.Types.Text CustomerID { get; } 218 MBPM Designer User's Guide Chapter 26 Introduction to Business Objects Variables The business object's variables are declared as public virtual properties of an MBPM runtime type. To use the business object with grids, the property names must match the names of the columns in the DataTable contained in the DataSet returned by the Read() method required by IDataSetAccess. Note: Data types in MBPM and .Net must be correctly mapped. Variables are not listed in the Expression Builder where the 'virtual' modifier is omitted. MBPM Designer User's Guide 219 Chapter 26 Introduction to Business Objects The following table lists the type mappings between MBPM and .NET types. MBPM Type .NET Type Sample casts/conversions Text string string = Text; Text = string; Integer int int = Integer; Integer = int; Real double double = (double) Real; Real = double; Memo string string = Memo; Memo = string; Currency decimal decimal = Currency; Currency = decimal; DateTime 220 System.DateTime System.DateTime = DateTime.ToDateTime ().DateTime; MBPM Designer User's Guide Chapter 26 Introduction to Business Objects MBPM Type .NET Type Sample casts/conversions DateTime = System.DateTime; Check bool bool = Check Check = bool Note: Neither variables nor parameters should be defined using the List data type. The following example is taken from a sample which implements an internally defined Business Object connection. public virtual Metastorm.Runtime.Types.Text Author { get { return GetField<string>("Author"); } set { SetField<string>("Author", value); } } public virtual Metastorm.Runtime.Types.Integer PublishYear { get { return GetField<int>("PublishYear"); } set { SetField<int>("PublishYear", value); } } public virtual Metastorm.Runtime.Types.Currency Price { get { return GetField<decimal>("Price"); } set { SetField<decimal>("Price", value); } } Interfaces There are a range of interfaces available for use within Scripted Business Objects to implement Business Object types. Each of these interfaces has been defined within Metastorm.Runtime.Contracts.Mbo. Detailed below are the main interfaces that are likely to be needed to implement the Business Object types to work successfully with the Designer and run-time features provided in BPM. IFieldAccess IFieldAccess provides generic programmatic access for a process designer to the Business Object. Failure to implement this interface will cause unexpected errors with generically written code against the Business Object. The properties of IFieldAccess are listed in the following table. MBPM Designer User's Guide 221 Chapter 26 Introduction to Business Objects Property Description Parameters Example GetField () fieldName public object GetField(string fieldName) Returns field value { if (fieldName == "ProcessNames") return this.ProcessNames; else return null; } GetFieldType() Returns field value fieldName public object GetField(string fieldName) { if (fieldName == "ProcessNames") return this.ProcessNames; else return null; } SetField () Sets new value to the field fieldName, newValue public void SetField(string fieldName, object newValue) { if (fieldName == "ProcessNames") data = (Metastorm.Runtime.Types.List) newValue; } IDataSetAccess IDataSetAccess is required for access to grids. Failure to implement this will cause errors during deployment when the business object is bound to either grids or custom lists. The properties of IDataSetAccess are listed in the following table. Property Description Example Read() Retrieves the data and returns a data set containing the data contained in the business object. public System.Data.DataSet Read() Write() This method is called to public void Write 222 MBPM Designer User's Guide Chapter 26 Introduction to Business Objects Property Description Example apply changes to the business object’s data set. (System.Data.DataSet dataSet) IPagedAccess IPagedAccess is required for access to Custom Lists and to support server-side paging. Where an attempt is made to sort a column that doesn’t implement IPagedAccess, an error is displayed. The properties of IPagedAccess are listed in the following table. Property Description Example TotalPageCount Returns the current total page count of the entire query (including any partial page). int TotalPageCount { get; } TotalRowCount Returns the current total row count of the entire query. int TotalRowCount { get; } CurrentPage Current page, default to -1 if the data has not yet been requested. int CurrentPage { get; } PageSize Returns the number of rows which make up one (full) page in Client. This is set in the business object instance using the Designer. int PageSize { get; } RequestPage Indicates the current page. The engine will set this value before a call to <see cref="IDataSetAccess.Read"/> is made. int RequestPage {} SortColumns Defines the requested sort order for the data. This needs to be applied to the method/logic that queries the data source. IList<KeyValuePair<string, SortDirection>> SortColumns { get; set; } Filter Defines the requested filter(s) for the data. This needs to be applied to the method/logic that queries the data source. Metastorm.Runtime.Contracts.Mbo.IBusinessObjectFilter Filter { MBPM Designer User's Guide 223 Chapter 26 Introduction to Business Objects Property Description Example get; set; } IEditableAccess IEditableAccess allows the Business Object to save changes to its data source and is therefore used for supporting read/write actions. The properties of IEditableAccess are listed in the following table. Property Description Example Commit() Commits any changes in the business object to its backing data store. public void Commit() { if (data.HasChanges()) { StringBuilder sb = new StringBuilder(); using (System.IO.StringWriter writer = new System.IO.StringWriter (sb)) data.WriteXml(writer); string dataString = Convert.ToBase64String (Encoding.UTF8.GetBytes (sb.ToString())); Mstm.DeleteAttachment (new ProcessContext ().FolderId, FileName); Mstm.SaveAttachment(new ProcessContext ().FolderId, FileName, dataString); } } ReadOnly() 224 Gets a value indicating whether the business object may be edited. This property is overridden with the value specified in public virtual bool ReadOnly { get { return false; } MBPM Designer User's Guide Chapter 26 Introduction to Business Objects Property Description Example the business object definition, and therefore it must be marked 'virtual'. } ISupportRefill ISupportRefill allows the Business Object to be loaded with different data using parameter values that change on each refill operation. The properties of ISupportRefill are listed in the following table. Property Description Example Commit() AlwaysRefresh Gets a value indicating whether the business object should retrieve its public virtual bool AlwaysRefresh { data on every request. get { return false; } The value of property is overridden by instances of the business object, } and therefore it must be marked 'virtual'. IIndexedAccess Use IIndexedAccess to support Count and Indexed Access. Failure to implement this interface can cause unexpected errors with generically written code against the Business Object. The properties of IIndexedAccess are listed in the following table. Property Description Example Count Provides a total count of records in the business object. public int Count { get { if (data != null && data.Tables.Count > 0) return data.Tables [0].Rows.Count; else return 0; MBPM Designer User's Guide 225 Chapter 26 Introduction to Business Objects Property Description Example } } CurrentIndex Provides the currently active record within the business object. public int CurrentIndex { get; set; } Business Object Implementation Types This chapter provides information on the sample Scripted Business Object solutions supplied with the BPM install build. The following implementation types are covered: l Read-Only Business Object l Editable Business Object l Externally Defined Connections Utilization l Internally Defined Connections Utilization Note: To successfully deploy the sample solutions, copy the .NET assembly System.Xml.Linq.dll into the following locations: C:\ProgramFiles\Metastorm\BPM\Designer\CustomLib C:\ProgramFiles\Metastorm\BPM\Engine\CustomLib Read Only Business Object This implementation type uses a sample solution that implements a read only business object. It retrieves news items from a Really Simple Syndication (RSS) feed. Interfaces The implementation combines the IDataSetAccess and IPagedAccess interfaces. l l Implementing the IDataSetAccess interface allows the business object to work with grids. Implementing the IPagedAccess provides the ability for the business object to support paging and can therefore be used in custom lists. IDataSetAccess #region IDataSetAccess Members This interface retrieves the data and returns a data set containing the data contained in the business object. The following steps complete these actions: l Retrieves the data. This returns a dataSet containing the data contained in the business object. public System.Data.DataSet Read() l Loads the news feed. XDocument feed = XDocument.Load(this.FeedUri); 226 MBPM Designer User's Guide Chapter 26 Introduction to Business Objects l Queries the data, grooming as we go. var newsItems = from i infeed.Descendants("item") select new object[] { i.Element("title").Value.Trim(), i.Element("description").Value.Trim(), i.Element("link").Value.Trim(), ...... l Defines the schema of the data set DataSet ds = new DataSet(); ds.DataSetName = "News"; DataTable tbl = ds.Tables.Add(); tbl.TableName = "News"; tbl.Columns.Add("Title", typeof(string)); tbl.Columns.Add("Description", typeof(string)); .... l Fills the data set foreach (object[] item in newsItems) tbl.Rows.Add(item); l Indicates that this is the initial state of the data ds.AcceptChanges(); this.data = ds; l Applies changes to the business object's data set. (RSS feeds are read only, therefore this method is left empty). public void Write(System.Data.DataSet dataSet) Parameters Declare the parameters for a scripted business object as public, abstract, read-only properties of an MBPM runtime type. These properties are overridden with the value(s) specified in the business object definition or business object instance. l Get the internet address of the feed, for example http://www.metastorm.com/rss/news.xml public abstractMetastorm.Runtime.Types.Text FeedUri { get; } Variables Declare the business object variables as public virtual properties of an MBPM runtime type. To use the business object with grids or custom lists, the property names must match the names of the columns in the data table. If the 'virtual' modifier is omitted, then the variables will fail to be listed in the Expression Builder. public virtual Metastorm.Runtime.Types.Text Title { MBPM Designer User's Guide 227 Chapter 26 Introduction to Business Objects get { return GetField<string>("Title"); } } public Metastorm.Runtime.Types.Text Description { get { return GetField<string>("Description"); } } .... Paging IPagedAccess Implementing the IPagedAccess interface allows the Business Object to provide paging support. It can therefore be used for Custom Lists. #region Custom List Support (IPagedAccess) l The following returns the current total page count of the entire query (including any partial page) public int TotalPageCount { get { return 1; } } Implementation The following steps complete the implementation of the Read Only Scripted Business Object: l Define the server script within the Business Object MetastormNewsFeed. l Bind the MetastormNewsFeed Business Object to a Custom list. The Custom List displays details of the MBPM News Feed from the internet address provided in Parameters above. Editable Business Object This implementation type uses a sample solution that implements an editable Business Object. The Business Object maintains a list of books stored in an XML data source. Interfaces The implementation combines the IDataSetAccess, IEditableAccess and IPagedAccess interfaces. l l l Implementing the IDataSetAccess interface allows the business object to work with grids. Implementing the IEditableAccess allows the Business Object to save changes to its data source. Implementing the IDisposableAccess interface allows instances of the class to be released from memory. IDataSetAccess #region IDataSetAccess Members The following steps describe the procedure for implementing an editable Business Object. l data holds the data for this business object. private DataSet data; 228 MBPM Designer User's Guide Chapter 26 Introduction to Business Objects l Initialize a new instance of the BookList class and set up caching events. Gets any previously loaded data from the cache. public BookList() { CacheHelper.LoadFromCache += LoadDataFromCache; CacheHelper.SaveToCache += SaveDataToCache; LoadDataFromCache(this, EventArgs.Empty); } l Retrieve the data. This returns a data set containing the data contained in the business object. public DataSet Read() l Define the schema of the data set. data = new DataSet(); data.DataSetName = "BookList"; .... l Retrieve the attachment. attachmentData = Mstm.ReadAttachment(new ProcessContext().FolderId, FileName); l Load the data from the attachment into the data set. using (StringReader reader = new StringReader(Encoding.UTF8.GetString (Convert.FromBase64String(attachmentData)))) data.ReadXml(reader); l Apply the changes to the business object's data set. public void Write(DataSet dataSet) { if(dataSet.HasChanges()) data.Merge(dataSet.GetChanges()); } IEditableAccess This interface gets a value that indicates whether the business object may be edited. #region IEditableAccess Members l Commits any changes to the business object's data store. using(System.IO.StringWriter writer = new System.IO.StringWriter(sb)) data.WriteXml(writer); MBPM Designer User's Guide 229 Chapter 26 Introduction to Business Objects string dataString = Convert.ToBase64String(Encoding.UTF8.GetBytes (sb.ToString())); Mstm.DeleteAttachment(newProcessContext().FolderId, FileName); Mstm.SaveAttachment(newProcessContext().FolderId, FileName, dataString); IDisposable #region IDisposable Members public void Dispose() { CacheHelper.LoadFromCache -= LoadDataFromCache; CacheHelper.SaveToCache -= SaveDataToCache; } Variables Declare the business object's variables as public virtual properties of an MBPM runtime type. To use the business object with grids, the property names must match the names of the columns in the data table. If the 'virtual' modifier is omitted, then the variables will fail to be listed in the Expression Builder. public virtual Metastorm.Runtime.Types.Text ISBN { get { return GetField<string>("ISBN"); } set { SetField<string>("ISBN", value); } } public virtual Metastorm.Runtime.Types.Text Title { get { return GetField<string>("Title"); } set { SetField<string>("Title", value); } .... Implementation The following steps complete the implementation of the Editable Scripted Business Object: l Define the server script within the Business Object BookListData. l Bind BookListData to a form BookListForm. The form displays details of the publications passed in from the XML source as described previously. Externally Defined Connections Utilization This implementation type uses a sample solution that implements an editable Business Object, which retrieves data from a database stored procedure. 230 MBPM Designer User's Guide Chapter 26 Introduction to Business Objects Interfaces This implementation combines the IDataSetAccess and ISupportRefill interfaces. Implement the IDataSetAccess interface to allow a Business Object to work with grids. Implementing the ISupportRefill interface to load the Business Object with different data using parameter values that change on each refill operation. IDataSetAccess #region IDataSetAccess Members This interface retrieves the data and returns a data set containing the data contained in the business object. public System.Data.DataSet Read() The following actions complete the implementation of the IDataSetAccess interface: l Prepare the parameters to the stored procedure. l Execute the stored procedure. l Indicate that this is the unmodified state of the data. l Apply changes to the business object's data set: public void Write(System.Data.DataSet dataSet) { // The stored procedure is read only, therefore this method is left empty } ISupportRefill #region ISupportRefill Members This interface gets a value indicating whether the business object should retrieve its data on every request. Class Definition public abstract class CustomerOrderHistory : IDataSetAccess, ISupportRefill l Holds the data for this business object. private DataSet data = null; l References the connection for this business object. private MboConnection connection = null; l Initializes a new instance of the CustomerOrderHistory class. The MboConnectionInfo parameter to this constructor indicates that the business object requires a database connection. public CustomerOrderHistory(MboConnectionInfo connectionInfo) { // Get access to the appropriate connection if (connectionInfo != null) MBPM Designer User's Guide 231 Chapter 26 Introduction to Business Objects { if(connectionInfo.MetastormDefault) connection = newEngineMboConnection(); else connection = new MboConnection(connectionInfo); } Parameters Declare the parameters for a scripted business object as public, abstract, read-only properties of an MBPM runtime type. These properties are overridden with the value(s) specified in the business object definition or business object instance. public abstractMetastorm.Runtime.Types.Text CustomerID { get; } Variables Declare the business object's variables as public virtual properties of an MBPM runtime type. To use the business object with grids, the property names must match the names of the columns in the data table. If the 'virtual' modifier is omitted, then the variables are not listed in the Expression Builder. public virtual Metastorm.Runtime.Types.Text ProductName { get { return GetField<string>("ProductName"); } } public virtual Metastorm.Runtime.Types.Integer Total { get { return GetField<int>("Total"); } } Implementation The following steps complete the implementation of the externally defined connections Business Object. l l Define the server script within the Business Object CustomerOrders. Bind the CustomerOrders Business Object to an Administration Form CustomerOrderHistoryLookUp. The Administration Form displays a Customer Order History within a grid. Internally Defined Connections Utilization This implementation type uses a sample solution that implements an editable business object that retrieves the names of deployed processes. This uses a web service connection MetadataSvc which has been internally defined within the Business Object Server Script. Class Definition public abstract class ProcessMetadata : IFieldAccess Interfaces This implementation uses the IFieldAccess interface. 232 MBPM Designer User's Guide Chapter 26 Introduction to Business Objects l Implementing the IFieldAccess interface allows the Business Object to work with fields and expressions. IFieldAccess #region IFieldAccess Members This returns field type by its name The following actions complete the implementation of the IFieldAccess interface: l Returns field value. l Sets new value to the field. Variables Declare the business object variables as public virtual properties of an MBPM runtime type. To use the business object with grids, the property names must match the names of the columns in the data table. If the 'virtual' modifier is omitted, then the variables are not listed in the Expression Builder. public virtual Metastorm.Runtime.Types.List ProcessNames { The following actions complete the implementation of the variables declared in the sample solution: l Create a connection using (MetadataSvc conn = new MetadataSvc()) l Get the Web Service channel MetadataServiceSoap service = conn.GetChannel("MetadataServiceSoap"); l Get the data DataSet results = service.AvailableProcessMaps(); data = results.Tables[0].GetFields<string>("eMapName").ToArray(); Implementation The following steps complete the implementation of the internally defined connections Business Object. l l Define the server script within the Business Object ProcessMetaDataObject. Bind the ProcessMetaDataObject Business Object to an Administration Form AvailableProcessMaps. The Administration Form displays a list of processes available for the specific installation of the Designer. Creating Scripted Business Objects To create a Custom Scripted Business Object in the main Business Objects pane, follow the steps defined in Creating Custom Business Objects. MBPM Designer User's Guide 233 Chapter 26 Introduction to Business Objects Defining Scripted Business Objects Parameters and Scripts You can define parameters for Scripted Business Objects using the parameters tab of the Business Object. Follow these steps to define a Scripted Business Object Script: 1. Create a Business Object of type Scripted in the main pane tab of the Business Objects Components group (refer to Creating Custom Business Objects to complete this step). The bottom pane displays Parameters and Script tabs. 2. Click on the Script tab. A dropdown list field Script Class Name appears. A Refresh button is also displayed beneath this. 3. Click the down arrow in the dropdown list field. A list of Script names available to the current project appears in the list. 4. To name the Scripted Business Object, select a value from the list of Script names. 5. Click the Refresh button to reconcile the Business Object definition against the latest version of the Server Script. This should be performed whenever there has been a change in the underlying Server Script. Implementing a Scripted Business Object for a Grid Control The following example describes how to implement a Scripted Business Object that uses a Grid control type. 1. Create a new scripted MBO (e.g. Script1) as described in step 1 above. 2. Click on the Script tab and select the script name from the Script class name dropdown list from Script sheet. 3. To make this MBO editable - unmark Read Only checkbox. 4. Open Form1 (it was created together with solution). 5. Add Script1 Scripted Business Object into the Form. 6. Select all rows(variables) from the previously mentioned MBO (Other Business Objects panel) and drag them onto the Form. 7. Add a Grid control type to the form . A Grid with selected columns will appear on the Form. 8. Select the required properties of the Grid (e.g. editable, add paging, multi-sorting etc). 9. Deploy the solution and open it in the Web Client. Troubleshooting A series of errors are displayed at runtime when attempting to open a report or blank form containing custom Business Objects that retrieve data from a database held on a separate database server. To prevent these errors, change the MSDTC configuration. 234 MBPM Designer User's Guide Chapter 26 Introduction to Business Objects MSDTC Configuration To connect a Table Business Object or Query Business Object executing from the MBPM Process Engine to a database running on a separate machine, the MSDTC configuration settings should be changed. The following configuration is required on both Engine and Database systems: 1. Go to Start>Control Panel> Administrative Tools. 2. Open Component Services>Computer>My Computer. 3. Right-click My Computer and click Properties. 4. Select the MSDTC tab and click the Security Configuration button. 5. Under Default Coordinator section, select Use Local Coordinator. 6. Select Network DTC Access. 7. Under Transaction Manager Communication, select Allow Inbound and Allow Outbound. 8. Click OK. When you click OK, you will be prompted for MSDTC service to restart. 9. Once the MSDTC service is restarted, restart the MBPM Process Engine Service by going to Start > control Panel > Administrative Tools > Services. The following article describes the steps to overcome error message that is displayed when you try to start a transaction in MSDTC: "New transaction cannot enlist in the specified transaction coordinator": http://support.microsoft.com/kb/922430 A summary of configuration change is displayed below from the article: 1. Click Start, click Run, type regedit, and then click OK. 2. Locate the following registry subkey: 3. HKEY_LOCAL_MACHINE\Software\Microsoft\MSDTC 4. Right-click MSDTC, point to New, and then click DWORD Value. 5. Type CmMaxNumberBindRetries, and then press ENTER. 6. Right-click CmMaxNumberBindRetries and then click Modify. 7. Click Decimal. 8. In the Value data box, type 60. This value increases the length of time that the client computer waits for the bind packet response from the server computer. This value is double the number of seconds before the client computer stops the transaction if the client computer does not receive the bind packet response. For example, a value of 60 equals 30 seconds. The value of 60 is only a recommended value. Additional testing on your configuration may be required. 9. Click OK. 10. Restart the computer. The DTCPing tool is designed to assist with troubleshooting Microsoft DTC firewall issues. You can download this tool from the Microsoft website. MBPM Designer User's Guide 235 Chapter 26 Introduction to Business Objects http://www.microsoft.com/DOWNLOADS/details.aspx?FamilyID=5e325025-4dcd-4658a549-1d549ac17644&displaylang=en For more information on troubleshooting MSDTC issues using DTCPing tool, follow the steps mentioned here: http://blogs.msdn.com/distributedservices/archive/2008/11/12/troubleshooting-msdtcissues-with-the-dtcping-tool.aspx 236 MBPM Designer User's Guide Chapter 27 Query Builder Chapter 27 Query Builder You can use the Query Builder to view a single query or sub-query. The Query Builder main window has the following areas: l l l l l The Query Building Area is the main area where the visual representation of the query will be displayed. This area allows you to define source database objects and derived tables, define links between them and configure properties of tables and links. The Columns Pane is located below the query building area. It is used to perform all necessary operations with query output columns and expressions. Here you can define field aliases, sorting and grouping, and define criteria. The Query Tree Pane is located at the left. Here you can browse your query and quickly locate any part of it. The page control above the query building area will allow you to switch between the main query and sub-queries. The small area in the corner of the query building area with the "Q" letter is the union sub-query handling control. Here you can add new union sub-queries and perform all necessary operations with them using popup menu. MBPM Designer User's Guide 237 Chapter 27 Query Builder Building a single query Active Query Builder allows you to build complex SQL queries visually. You can: l Build queries with different join types. l Build queries with sorting, grouping and complex criteria. l Build queries with different server-specific options. Adding objects to the query There are several ways to add database objects to the query: 1. Use the tree on the right that displays database objects. Double-click on objects or drag them to the query building area. To find the object you need, type the first letters of its name or scroll down the tree. The object within the tree can be grouped by Database, Schema or Type. To remove an object from the query, select it and press the Del key or click the Close button in the object header. 2. Right-click the query building area and select Add Object. The Add New Object window is displayed. You can add multiple objects in the Add New Object dialog box. The objects are grouped by type: Tables, Views, Procedures (Functions) and Synonyms. You can use the Ctrl key to select multiple objects and then click Add Object. 238 MBPM Designer User's Guide Chapter 27 Query Builder 3. After you finish adding objects, click Close. For database servers that have schemas or allow selection of objects from different databases, you can filter objects by database or schema name by selecting the necessary schema or database from the combo box at the top of the window. Setting object aliases To set an alias for an object or derived table in the query, right-click on the object and select the Properties item from context popup menu or double-click on the object header. The Datasource Properties dialog is displayed. The Datasource Properties dialog can contain other server-specific datasource options, but the Alias property is the same for all database servers. Joining tables Adding and removing joins When two objects referenced with a foreign key relationship are added to the query, they become joined automatically with INNER JOIN. For those servers that have no support of JOIN clause, Active Query Builder adds condition to WHERE part of the query. To create a link between two objects (that is, join them manually), you should select the field by which you want to link the object with another and drag it to the corresponding field of the other object. After you finish dragging, a line connecting the linked fields will appear. Key cardinality symbols are placed at the ends of link when corresponding relationship exists in the database. MBPM Designer User's Guide 239 Chapter 27 Query Builder To remove a link between objects, right-click the link line and select the Remove item from the context popup menu. Changing join type The join type created by default is INNER JOIN, that is, only matching records of both tables will be included in the resulting dataset. To change join type, right-click the link and choose the join type from "Change type" sub-menu of context popup menu. To define join type and other link properties, right-click the link and select the Properties item from the context popup menu or double-click it to open the Link Properties dialog. 240 MBPM Designer User's Guide Chapter 27 Query Builder Selecting output fields Adding and removing fields and expressions To add a field to the list of query output fields, check the box at the left of a field name in the datasource field list at the Query Building Area. To include all the fields of the specific object you can check the box at the left of the asterisk item in the datasource field list. Also you can drag fields from the Query Building Area to the Columns pane to get the same result. Another way to add a field is to select a field name from the drop-down list of the Expression column in the Columns Pane. Also, you can type any valid expression in the Expression column in the Columns Pane. To add an empty line to the Columns pane, press the Alt+Insert key. MBPM Designer User's Guide 241 Chapter 27 Query Builder To remove a field from the Columns Pane, de-select the checkbox at the left of the field name in the Query Building Area. To move a line in the Columns Pane up and down, press the Alt+Up/Down keys. Also you can add, remove and re-order lines in the Columns Pane using the context popup menu. Working with expressions in the Columns Pane The Output column determines presence of expression in the SELECT list of the query. The Alias column allows you to set aliases for your expressions. Aliases become headings of columns in the result dataset. The Asterisk Symbol 242 MBPM Designer User's Guide Chapter 27 Query Builder Even if you don't select any fields from query datasources, an asterisk item will be added to the select list of result query ("Select * from ..."). By selecting any fields or by adding any output expressions to the query, an asterisk item will be removed from result query (you can add it manually at any time). The asterisk items placed first at the datasource field's list are intended to add all fields from specific datasource, not from all of the datasources ("Select datasource.* from ..."). These asterisk items do not affect the rest of the datasource field check boxes, but act independently. If you want to check all the datasource field check boxes, not the asterisk item, use appropriate items of the datasource context popup menu. Sorting a dataset To define sorting of result dataset, you can use the Sort Type and Sort Order columns of the Columns Pane. The Sort Type column allows you to specify the way the fields will be sorted - Ascending or Descending order. The Sort Order column allows you to setup the order in which fields will be sorted if more than one field will be sorted. To disable sorting by a field, clear the Sort Type column for this field. Defining criteria To define criteria, you can use the Criteria and all of the Or columns of the Columns Pane. In these cells you should write conditions omitting the field itself. For example, to get the following criteria in your query: WHERE (Field1 >= 10) AND (Field1 <= 20) Enter ">= 10 AND <= 20" in the Criteria cell of the Field1 expression. Criteria placed in the Or columns will be grouped by columns using the AND operator and then concatenated in the WHERE (or HAVING) clause using the OR operator. For example, this visual representation will produce the following SQL statement. The criteria for Field1 is placed in the Criteria and Or columns. MBPM Designer User's Guide 243 Chapter 27 Query Builder WHERE (Field1= 10) AND ((Field2 < 0) OR (Field2 > 10)) Some expressions can be of Boolean type, for example the EXISTS clause. In this case you should type "= True" in Criteria column of such expressions or "= False" if you want to place the NOT operator before the expression. Grouping output fields To build a query with grouping, you mark expressions for grouping with the Grouping checkbox. A query with grouping must have only grouping or aggregate expressions in the SELECT list. If you try to set this checkbox for a column without Grouping or Aggregate function set, a Grouping checkbox will be set automatically to maintain validity of result SQL query. When Columns Pane contains columns marked with the Grouping checkbox, a new column called "Criteria for" appears in the grid. This column specifies application of criteria to expression groups or to their values. For example, you have a column "Quantity" with Aggregate function "Avg" in your query and you type the "> 10" in Criteria column. Having the "for groups" value set in the Criteria for column, the result query will contain only groups with average quantity greater than 10, and your query will have the "Avg(Quantity) > 10" condition in HAVING clause. Having the "for values" value set in the Criteria for column, the result query will calculate the Average aggregate function only for records with Quantity value greater than 10, and your query will have the "Quantity > 10" condition in WHERE clause. Building a query with sub-queries Active Query Builder allows building complex SQL queries with Unions, Sub Queries and Derived Tables visually. Navigating the query tree The Query Structure Tree represents the query structure in compact tree-like form. Using it, you can jump to any Union, Sub-query, Derived table and to any part of the query with a single mouse click. This feature is extremely useful in case of complex SQL queries. 244 MBPM Designer User's Guide Chapter 27 Query Builder By setting the appropriate component's options you can set up the tree to hide unnecessary nodes. For example, you can hide Objects and/or Expressions nodes and show only subqueries structure of the query. Working with sub queries This chapter describes working with Sub-queries used in criteria expressions to limit result dataset (in WHERE, HAVING and SELECT clauses). You can add a sub-query as part of the expression or condition in the Columns Pane while editing text in a cell. To add a sub-query, right click at the text position for a new sub-query and select the Insert Sub-query item from context popup menu or type the "(Select)" text to the Expression column, the "= (Select)" or "In (Select)" text to the Criteria column. The curly brackets are necessary. To build a newly added sub-query visually, confirm editing by pressing the Enter key. The corresponding tab is created above the Query Building Area and ellipsis button become visible at the right side of the cell. By clicking on the ellipsis button you'll be switched to a MBPM Designer User's Guide 245 Chapter 27 Query Builder sub-query tab where you can build it visually in the same way as the main query. If the cell contains more than one sub-query, the drop-down list will appear to select the necessary sub-query. You can always get back to the main query and switch to any sub-query or derived table using tabs above the Query Building Area or using the Query Structure Tree. Working with derived tables Derived Table is a sub-query used as a datasource for the main query. To add a derived table, you should right click on the Query Building Area and select the Add Derived Table item from context popup menu. 246 MBPM Designer User's Guide Chapter 27 Query Builder A new object representing the newly created derived table will be added to the query building area, and the corresponding tab will be created for it. This tab allows you to build it visually in the same way as the main query. Another way to switch to the corresponding derived table tab is to right click at the caption of an object representing the derived table and select the "Switch to derived table" item from context popup menu. You can set an alias for derived table the same way as for ordinary database object. You can always get back to the main query and switch to any sub-query or derived table using tabs above the Query Building Area or using the Query Structure Tree. MBPM Designer User's Guide 247 Chapter 27 Query Builder Working with unions Union sub-queries are managed within the Union Panel in the top-right corner of the Query Building Area. Initially there's only one union sub-query labeled with the "Q" letter. All required operations are performed by means of context popup menus. Union sub-queries can be grouped with other sub-queries and joined with different operators (UNION, UNION ALL, EXCEPT, INTERSECT). l To add a new union sub-query, select the New Union sub-query menu item. l To enclose the sub-query in brackets, select the Enclose in Brackets menu item. l l l l To move the sub-query or bracket to the top of the query (the topmost sub-query is the left one), select the Move Left menu item. To move the sub-query or bracket to the bottom of the query, select the Move Right menu item. To remove the sub-query or bracket, select the Remove menu item. To change the union joining operator, select the necessary operator in the list of supported operators in context popup menu. Union Sub-Query operations l Move Left l Move Right l New Union Sub-Query l Enclose In Brackets l Remove Operations with brackets You can perform the following operations: l Move Left l Move Right l Remove Brackets 248 MBPM Designer User's Guide Chapter 28 Filter Editor Chapter 28 Filter Editor The Filter Editor is used to edit filter criteria for a grid control. To create and customize filter criteria, use the and buttons embedded into the control and context menus supported by the editor's elements: Remarks A filter condition group is a set of conditions combined by the same logical operator. The following filter expression contains two groups combined by the logical OR operator: " ([Product] = 'Chang' And [Quantity] > 20) Or ([Product] In ('Tofu', 'Konbu') And [Quantity] < 100)". In the Filter Editor it's represented as follows: MBPM Designer User's Guide 249 Chapter 28 Filter Editor Add Conditions To add a condition to a logical group, do one of the following: Focus on any condition within the group or the group's logical operator and then press INSERT on the keyboard. Click the button for the group. Click the group's logical operator and select Add Condition. To add a group of conditions to another group, do one of the following: l l l Focus any condition within the group or the group's logical operator and then hold down the Ctrl key and click + on the keyboard. Click the group's logical operator and select Add Group. To add a condition or a group of conditions that have been copied to the clipboard, press Ctrl+V. The new condition will be added to the focused group. Delete Conditions To delete a condition, do one of the following: l Focus on the condition and press DELETE or SUBTRACT. l Click on the button. To delete a group of conditions, do one of the following: l Focus on the group's logical operator and press DELETE or SUBTRACT l Click the group's logical operator and select Remove Group. To delete all conditions, do one of the following: l Focus on the topmost logical operator and press DELETE or SUBTRACT. l Click the topmost logical operator and select Clear All. To cut a condition/group of conditions to the clipboard, focus on this condition/the group's logical operator and press Ctrl+X. 250 MBPM Designer User's Guide Chapter 28 Filter Editor Work with Clipboard To copy a condition/group of conditions to the clipboard, focus on this condition/the group's logical operator and press Ctrl+C. To cut a condition/group of conditions to the clipboard, focus on this condition/the group's logical operator and press Ctrl+X. To paste a condition/group of conditions from the clipboard to the focused group, press Ctrl+V. Change a Column in a Filter Condition To change a condition's column, invoke the column list by doing one of the following: l Click the current column. l Focus on the current column via the keyboard and press SPACE or ALT+DOWN ARROW. Then, choose the required column from the list that will be invoked. Change an Operator in a Filter Condition To change a condition's operator, invoke the operator list by doing one of the following: l Click the condition's current operator. l Focus on the current operator via the keyboard and press SPACE or ALT+DOWN ARROW l Then, choose the required operator from the list that will be invoked Edit a Condition's Value To edit a condition's value, click the operand value and type text. To activate the operand value's edit box without changing the value, click the value or focus on the operand value via the keyboard and press F2, SPACE, ENTER or ALT+DOWN To close the active edit box, press ENTER. To discard changes to the value and close the active edit box, press ESC. Compare a Condition's Column with Another Column Do one of the following: l Click the toggle button: l Press CTRL+Q Then, specify the column via the operand value's edit box. l This feature is not supported by default. It must be enabled by setting the ColumnViewOptionsFilter.UseNewCustomFilterDialog property to true. MBPM Designer User's Guide 251 Chapter 28 Filter Editor l This feature is supported by a limited set of operators: =, <>, >, <, >=, <=. Like, Not Like, Between, Not Between, Any Of and None Of. Navigation To focus on a specific filter condition or a group's operator within the Filter Editor, do one of the following: l Click the target element. l Use Arrow keys to move focus via the keyboard. Filter Criteria with Multiple Logical Operators Some filter criteria contain multiple logical (Boolean) operators combining simple filter conditions. To build such criteria via the Filter Editor, first, you need to identify groups of filter conditions. A filter group is a set of simple filter conditions or other groups combined by the same logical operator. You can think of groups as of clauses in a filter expression wrapped by round brackets. Consider the filter criteria: [UnitPrice] = 10 AND [Product Name] Begins with 'A' OR [UnitPrice] = 20 AND [Product Name] Begins with 'B' OR [UnitPice] > 100. In this expression, we'll identify groups by wrapping them with round brackets as follows: ([UnitPrice] = 10 AND [Product Name] Begins with 'A') OR ([UnitPrice] = 20 AND [Product Name] Begins with 'B') OR [UnitPice] > 100. Here you see three groups of filter conditions. Within each group, filter conditions are combined by the same logical operator: l ([UnitPrice] = 10 AND [Product Name] Begins with 'A') l ([UnitPrice] = 20 AND [Product Name] Begins with 'B') l [UnitPice] > 100. This group consists of a single simple filter condition. The three groups are combined by the same OR operator. After filter groups have been identified, the filter expression can be easily built using the Filter Editor. 252 MBPM Designer User's Guide Chapter 29 Introduction to Visual Scripts Chapter 29 Introduction to Visual Scripts Visual Scripts allows you to create sophisticated scripts, without code, by dragging and dropping. Interface A default visual script has the following items: l Start node l Attachment point l End note The following components, identified in the screenshot below, are used when working with Visual Scripts. 1. Visual Script toolbox – a collection of activities for use with Visual Scripts only. 2. Default Visual Script – a modeling tool which enables the user to handle an event without having to write code. 3. Design Area/Main pane of Designer – design area to build your Visual Script. 4. Properties – used to set the properties for the visual script. The properties that determines its behavior. MBPM Designer User's Guide 253 Chapter 29 Introduction to Visual Scripts Types of Visual Scripts There are two types of Visual Scripts: l Event handler visual scripts l Reusable visual scripts Both types of visual script are created in the visual script design interface. The following are events: l When Action Started l When Action Completed l When Stage Started l When Stage Completed Event Handler Buttons Event handler buttons are found in the following locations of a Process in the Designer: l Within event handler properties in Basic and Enhanced mode l Either side of stages and actions in the main pane in Enhanced mode Event Handler Visual Scripts Event handlers appear in two places: l In the main pane of a process in Enhanced view l In the Properties task pane of process and form controls 254 MBPM Designer User's Guide Chapter 29 Introduction to Visual Scripts The event handlers related to processes are graphically represented as buttons. You can toggle the MBPM Options->Process Modeling setting to Enhanced view to view these buttons. Creating a new event handler Visual Script You can create a new event handler visual script in one of the following ways: l Click on the event handler icons on a process l Using the properties task pane. Reusable Visual Scripts This is a script created with the view to reuse them in other visual scripts. Once created, they can be promoted to the Visual Script toolbox. Creating a new reusable Visual Script To create a new reusable visual script: 1. On the Home ribbon tab, Components group, click on the VisualScript button. The Visual Script design interface is opened displaying a default visual script consisting of a start node, a connection point, and an end node. 2. To view the visual script properties, click anywhere on the background in the main pane. The Promote Visual function is collapsed, by default. 3. Click in the Name field and enter a name for the visual script. (You can choose to retain the default name if you wish). 4. To promote the visual script, in the Promote Visual Function field, select the check box. Note: If you are using a promoted visual script within itself, the promoted visual script should only be a part of If/Else condition to avoid creating an infinite loop at run-time. When a visual script is promoted, the following optional properties become editable: l Category l Caption l Tooltip l Icon (graphic picker) 5. To build the visual script, in the Visual Script toolbox, click on an activity and drag it onto the default visual script attachment point. The activity is added to the visual script. 6. Edit the activity's properties. 7. Repeat steps 4 and 5 to add further activities to the visual script. 8. To save the visual script, select the MBPM button > Save. Categorizing a Promoted Reusable Visual Script The Visual Script activities are divided into a number of categories. MBPM Designer User's Guide 255 Chapter 29 Introduction to Visual Scripts To promote a visual script to an existing category: In the properties pane, click in the Category field and select a category from the drop-down menu. The menu displays all core categories plus any others that have been previously defined by the user. The visual script will now be available in the toolbox under the selected category. To promote a visual script to a new (user defined) category: l In the properties pane, click in the Category field and enter a category name. A new category is displayed in the toolbox, and the visual script is now available under that category. If you promote a visual script but do not select a category, the Designer will create a default category with the project's name. The activities do not support in/out or reference parameters as part of method signature. You can however use a simple wrapper to the required method: [Promote(PromotionTargets.VisualToolbox)] [Category("UserCategory")] public static bool SampleActivity(string activityParam, int activityParam2) { return SampleCallByRef(ref activityParam, activityParam2); } private static bool SampleCallByRef(ref string activityParam, int activityParam2) { return true; } Creating Event Handler Visual Script You can create event handler visual scripts either from process in Enhanced view or from the process' properties pane. Enhanced View You can create an event handler visual script from the process in Enhanced view as follows: 1. To enable enhanced view, see MBPM Designer Options > Process Modeling. In the Enhanced view of a process, both actions and stages will display event handler links. 2. For a stage or action in the process, click on the empty event handler button. The Visual Script design interface is opened displaying a default visual script consisting of a start node, connection point, and an end node. 3. To build the visual script, from the Visual Script toolbox, click on an activity and drag it onto the default visual script attachment point. The activity is added to the visual script. 256 MBPM Designer User's Guide Chapter 29 Introduction to Visual Scripts 4. After you drag an activity from the Visual Script toolbox to be placed in the main pane of the Designer, you can attach it to the Visual Script only at the attachment point. The attachment point is indicated with a green plus icon indicating the points where you can drop the activity. 5. Edit the activity's properties in the properties task pane. 6. Repeat steps 4 and 5 to add further activities to the visual script. 7. To save the visual script, select the MBPM button > Save. Properties pane of process You can also add visual script to actions or stages by using the Properties task pane of the action or stage as follows: 1. Click on the empty Event handler button in the stage or action's properties task pane. 2. Follow the steps mentioned above (step 3 to step 7) to create a visual script. After you create your Visual Script, return to the process. The following diagram displays the Properties task pane view when a visual script is created and attached for "When action completed". In the above diagram, you will notice that no visual script is attached for "When action started". Deleting an Event Handler Visual Script To remove an attached visual script that you have set, click on the button in the property. Visual Script Toolbox The Visual Script toolbox contains the following activities that can be used in building a Visual Script. When a activity returns data, that data is auto-created as a variable of the type returned. The name, caption, description, and enabled properties are common to all activities. Name specifies a unique name to identify an activity; caption is the text that is displayed in the activity's block; description describes the activity; and enabled property indicates whether an activity should be executed or skipped. The other properties are described below: Commands Activity Name Assign Value(s) Use this activity to assign one or more new value(s) to specified variable(s). MBPM Designer User's Guide 257 Chapter 29 Introduction to Visual Scripts Property Name Description Assignments Specify set of one or more assignment statements. Example Consider a Folder Search Form with a Refresh button that retrieves the folders created between selected dates. In the Refresh button When button pressed property, drag and drop an Assign Value(s) Activity on to the Visual Script Editor. The Assignments property for the Visual Script can be created to retrieve the folders created between the two dates as follows: 258 MBPM Designer User's Guide Chapter 29 Introduction to Visual Scripts Activity Name Code Activity Use this activity to invoke the Scripting environment. Property Name Description Code Function Write some C# code to execute at this step. Example The following example uses Code Activity to retrieve the properties for chemical elements using a Web Service Connection. Consider that a Web Service Connection exists that retrieves the periodic table for chemical elements. Consider a Form that has been designed as follows: In the Lookup Symbol button’s When button pressed property, drag and drop a Code Activity on to the Visual Script Editor. MBPM Designer User's Guide 259 Chapter 29 Introduction to Visual Scripts Click the Code Function property and enter the code as follows: localhost.PeriodicWS.PeriodicTableLookup.asmx.ElementDetails el = PeriodicTableScript.getElementDetailsBySymbol(Local.txtSymbol); Local.intAtomicNumber = (int)el.AtomicNumber; Local.memMessage = el.Message; Local.numAtomicRadius = (Real)el.AtomicRadius; Local.txtSymbol = el.AtomicSymbol; Local.numAtomicWeight = (Real)el.AtomicMass; Local.numBoilingPoint = (Real)el.BoilingPoint; Local.numDensity = (Real)el.Density; Local.numElectroNegativity = (Real)el.Electronegativity; Local.numIonisationPotenial = (Real)el.IonizationPotential; Local.numMeltingPoint = (Real)el.MeltingPoint; Local.txtElementName = el.ElementName; Local.txtCommonOxidationStates = el.CommonOxidationStates; Note: Data Casting has been used on some of the values returned by the Web Service. For more information, please see Data Casting. Activity Name Write to Log Logs a user-defined message in the MBPM database. Property Name Description Message Specify a brief message to be written to the log (less than 250 characters). Details Specify additional details to be written to the log (no limit to length). 260 MBPM Designer User's Guide Chapter 29 Introduction to Visual Scripts Property Name Description Severity Specify the severity of the logged item. Valid values are: l Severity.Information l Severity.Warning l Severity.Error Note that Severity.Error should contain a value. If it is left blank, the process flow will not be halted and an error message, 'Failed to execute deployed <<method name>>, using entity <<entity name>>', is displayed. Example Consider the following Process that is used for logging information to the database: In the When action completed property for the Write to Log Error, Write to Log Warning, and Write to Log Information actions, drag and drop Write to log activity on to the Visual Script Editor. The Write to log activity properties can be populated as follows for the 3 states as follows: Error: MBPM Designer User's Guide 261 Chapter 29 Introduction to Visual Scripts Warning: Information: The Entry Description message is saved in the eLog table of the database. Activity Name Send E-Mail Send an e-mail. 262 MBPM Designer User's Guide Chapter 29 Introduction to Visual Scripts Property Name Description To Specify a list of one or more recipient email addresses who will receive the emailed message. CC Specify a list of one or more recipient email addresses to be copied in. BCC Specify a list of one or more recipient email addresses to be blind copied in. Subject Write the subject of the message to be emailed to all recipients. Message Write the message to be emailed to all recipients. For sending messages in HTML format, use HTML tags within quotes. Attachments A string identifying the directory path, name and extension of a file to be included as an attachment. If omitted (by using “ ”), no attachment will be included. From Specify the email address of the person who sent the emailed message. Note: To avoid run-time errors from occurring, this property should be set either to empty (i.e. "") or contain an email address which has an acceptable format i.e. "e@mail.address". Example Consider a Process that involves a user action to send an email to Manager of the Originator. MBPM Designer User's Guide 263 Chapter 29 Introduction to Visual Scripts Consider a Form that has been designed as follows for the stage following Submit to Manager action: In the When action completed property for the Submit to Manager action, drag and drop Send Email Activity on to the Visual Script Editor. The property values can be entered as shown in the screenshot below: The information is emailed to the recipient. 264 MBPM Designer User's Guide Chapter 29 Introduction to Visual Scripts Activity Name Raise Flag Use this activity to specify that a Flag is to be raised. This allows one action to raise multiple Flags. Property Name Description Flag Name Name of the Flag created. Folder ID The Folder ID that the Process should look for to receive data. For example, use ProcessContext.FolderParent to ensure that the parent Process listens to the appropriate folder’s Flag data passed from the SubProcess. Parameters The name of the parameter that holds Flag data to be transferred between Processes. A Flag is used to trigger data transfer between folders within or across Processes. They work in combination with flagged actions. Note: There are 2 types of Flags that you can use from the Activities toolbox. The generic Raise Flag activity from Commands category and a Raise <<flag name>> activity from Flags category which is displayed once you create a new Flag component. The example below uses both types of Flags. There are 3 steps to set up a Flag: l Create a Flag l Raise a Flag l Invoke a flagged action Once a Flag has been created from Components category, it can be raised using Visual Scripting. For more information, see Flags. Note: When a Flag is created and parameters are added, deleted or edited later then any existing Flag activities used in a Visual Script will not be automatically updated. To update with the latest Flag definition, the user should remove and re-add the Flag raising activity to the Visual Script. Example Consider a Process designed for the purpose of document review that consists of a review phase and an approval phase. The Review Process and the Approval Process have been defined as separate Processes where the Review Process is the parent and the Approval Process is the child Process (SubProcess). Consider that the ‘Document name’ from the Review Process needs to be passed to the Approval Process and the ‘Approved By’ and ‘Approved Date’ data need to be sent back from the Approval Process to the Review Process. MBPM Designer User's Guide 265 Chapter 29 Introduction to Visual Scripts Sending Flag Data from Parent Process to Sub-Process: 1. Create a Flag: StartApprovalFlag (Parameter: txtDocumentName) 2. In the Review Process, consider the following workflow snippet where the Close Review action transfers control to the Approval Process by raising a Flag: 3. Select the Close Review action and create a Visual Script for the When action completes property. 4. Scroll down to the bottom of the Visual Script Toolbox and drag and drop the Flag Raise StartApprovalFlag from the Flags category to the Visual Script Editor. 5. For the StartApprovalFlag Flag activity, set ReviewProcessData.txtDocumentName as the value for the Flag Parameter property (where ReviewProcessData.txtDocumentName is the Process Data variable of Review Process). This will transfer the control to the child Process to complete the approval and also pass the ‘Document Name’ as the parameter. 6. Create the Approval Sub-Process: 7. In the Properties pane of the StartApproval Action, set the Flag used to invoke this action to StartApprovalFlag: 266 MBPM Designer User's Guide Chapter 29 Introduction to Visual Scripts This ensures that the Sub-Process listens to the Flag raised by the parent Process. 8. In the Properties pane of the StartApprovalFlag Action, click When Action Completed and drag and drop the Assign Value(s) activity to the Visual Script Editor: 9. In the Assignments property, set the value to: ApprovalProcessData.DocumentName = FlagData.txtDocumentName (where ApprovalProcessData.txtDocumentName is the Process Data variable of Approval Process) You can set this assignment by using the Expression Builder: 1. Select the ApprovalProcessData.DocumentName from the variable drop-down box. 2. Choose the FlagData.txtDocumentName listed under Parameters of the Current Flag category. This sends the Document Name data stored as Flag data to the Sub-Process. 10. Create an Approval Form that allows entering the ‘Approved By’ and ‘Comments’ information and associate it to the Ready to Approve stage. Sending the Flag data to Parent Folder: MBPM Designer User's Guide 267 Chapter 29 Introduction to Visual Scripts 11. Create a Flag: PassApprovalDataFlag (Parameters: txtApprover, txtComments) 12. Click the Complete Approval action’s When action completed property, and drag and drop the Raise Flag activity from the Commands category of the Activities Toolbox and set the properties as follows: Note: The FolderID property should be set to ProcessContext.FolderParent to ensure that the parent Process listens to the appropriate folder’s Flag data passed from the Sub-Process. The values entered in the Approval Process Form (Approver and Comments) are passed through the Flag’s Parameters property. These Property settings pass the Flag data (the Approver Name and Comments) entered in the Approval Form from the Review Process (Sub-Process) back to the Approval Process (Parent Process) 13. Back in the parent Review Process, in the Finish Approval action, set the properties as follows: 268 MBPM Designer User's Guide Chapter 29 Introduction to Visual Scripts 14. For the When action completed property of the Finish Approval Process, drag and drop the Assign Value(s) activity to the Visual Script Editor: 15. In the Assignments property, use the Current Flag of Expression Builder to assign values to your parent Process Data variables: ReviewProcessData.txtApprover=FlagData.txtApprover ReviewProcessData.txtComments=FlagData.txtComments MBPM Designer User's Guide 269 Chapter 29 Introduction to Visual Scripts Where ReviewProcessData.txtApprover and ReviewProcessData.txtComments are Process Data variables defined in the parent Process. Visual Scripts Activity Name Evaluate %Script() Use this activity to find the value of an expression written in a previous version of MBPM. Property Name Description Formula Provide the % language expression to be evaluated. Using local variables in Formula property of Evaluate activity is not supported. The MBPM Web Client displays an error message. Example Consider the following Process where a case has been resolved and waiting to be archived. In the When stage started property for this stage, create an Evaluate %Script() activity. 270 MBPM Designer User's Guide Chapter 29 Introduction to Visual Scripts The activity can be used to set to update the status of the case as follows: %Subject:=”Waiting for Archive” Activity Name If Else Use this activity to specify that MBPM is to perform one command if a condition is TRUE, and another if it is FALSE. Further conditional branches can be added if required. Property Description MBPM Designer User's Guide 271 Chapter 29 Introduction to Visual Scripts Name Condition Provide the condition that should be evaluated to determine which branch to execute. Example The following example uses If Else Activity to retrieve the search results based on legalrelated Matter Name or Matter Number. Consider a Form that has been designed as follows: The Search button’s When button pressed property can be used to open the Visual Script Editor and use the If Else activity as follows: The condition for If Else can be set as follows: 272 MBPM Designer User's Guide Chapter 29 Introduction to Visual Scripts PurchaseRequestData1.txtMatterSearchInput <> “ ” The SetSearchParams is an Assign Value(s) activity. The Assignments property has been set as follows: PurchaseRequestData1.txtMatterSearchString=”%”+PurchaseRequestData1.txtMatterSearchInput+”%” Activity Name For Each A loop that executes the specified sequence of activities on each of the items in the specified list or Business Object. Property Name Description List / Business Object Specify the list or Business Object to be looped through. Note: You can use a SELECT statement in For/Each loop. To use the values within the loop, use the name of the activity. For example: MyForEachActivity1[0].ToString() where the number in square brackets is the column number for the data returned by the Select statement. Example The following example uses For Each Loop Activity to retrieve all the items of Business Object and assign the contents to a text box. Consider a Form with a text box designed as follows: MBPM Designer User's Guide 273 Chapter 29 Introduction to Visual Scripts Consider that a Form is associated with Business Object of Query type that retrieves all the Process names as shown in screenshot below: Associate this Business Object with the Form. The text box’s Business Object Item property is set to the following: ProcessContext.ActionNote 274 MBPM Designer User's Guide Chapter 29 Introduction to Visual Scripts Click the Form’s When user loads form property to open the Visual Script Editor. Drag and drop a ForEach Activity and an Assignment Activity within ForEach activity. Set the List/Business Object collection property of the ForEach Activity to BusinessObject11. The Assign Value(s) activity will have the following: This will loop through all the Processes in your Blank Forms list and fill the BusinessObjectParse text box with data separated by each line. Activity Name While Loop A loop that executes whilst a condition is true. Property Name Description MBPM Designer User's Guide 275 Chapter 29 Introduction to Visual Scripts Condition Provide the condition that should be evaluated to determine whether to continue looping. Example Consider that in the above example we want to list all the Processes that have the default language set to “en-US” from a list of Processes that have language property set to “DEFAULT”. To display this filtered list, instead of For Each, use the While Loop in the above example and set the condition as follows: ProcessContext.eLocaleID==”en-US” Document Activity Name Save Attachment Adds a new attachment to the specified folder (saves it in the database) by storing the inmemory data provided. Property Name Description Folder ID Indicate the folder to which the attachment should be saved. File Name Indicate the name of the file to save to the database. Example Consider a Process designed as follows that imports a case file from customers and saves it in Word doc format. In the Import Case action’s When action completed property, drag and drop the Save Attachment activity to the Visual Script Editor and set the following properties for the activity as shown in the example below: l FolderID l File Name 276 MBPM Designer User's Guide Chapter 29 Introduction to Visual Scripts l Attachment The Save Attachment activity saves the attachment in the eAttachment table of the database for the specified Folder ID: Activity Name Get Attachment Retrieves the data for an existing attachment from the database, and saves it to a specified location on disk. Property Name Description Folder ID Indicate the folder from which the attachment should be retrieved. File Name Indicate the name of the file to retrieve from the database. File Path Indicate the directory path of the destination on disk along with file name. Example MBPM Designer User's Guide 277 Chapter 29 Introduction to Visual Scripts Consider a Sub-Process of the above Process that needs to retrieve the attachment that was saved earlier, followed by Assign Value(s) activity to set the file name and subject. To do this, drag and drop the Get Attachment activity to the Visual Script Editor as shown in the example below: In the Properties pane, enter appropriate values for the following properties as shown below: l FolderID l File Name l File Path Activity Name New Attachment Adds a new attachment to the specified folder (saves it in the database) by reading the contents of a file on disk. 278 MBPM Designer User's Guide Chapter 29 Introduction to Visual Scripts Property Name Description Folder ID Indicate the folder to which the attachment should be added. File Name and Path Indicate the directory path and name of the file to attach. Example In the above Process, consider a scenario where a case confirmation details are saved to local computer and a confirmation email sent to the customer. To do this, drag and drop the New Attachment activity followed by Send Email activity in the Visual Script Editor. In the Properties pane, set the following properties for the activity as shown in the example below: l FolderID l File Name l Path Activity Name Delete Attachment Deletes an existing attachment from the database. Property Name Description Folder ID Indicate the folder from which to delete the attachment. File Name Indicate the file name of the attachment to delete. MBPM Designer User's Guide 279 Chapter 29 Introduction to Visual Scripts Example In the above Process, consider a scenario where a case is closed and the attachment can be deleted. To do this, drag and drop the Delete Attachment activity to the Visual Script Editor and set the following properties for the activity as shown in the example below: l FolderID l File Name Activity Name Write to File Use this activity to write text to a file on the server. The text can be the contents of variables or the results of a formula. This can either be a new file, or you can append to an existing file. Property Name Description File Name and Path Indicate the directory path and name of the destination file. Text Provide the text that should be written to the file. Create New File Indicate whether or not a new file should be created and written to. Write As Unicode Indicate whether or not the text should be written to the specified file in Unicode. Example In the above example, consider a scenario where an attachment is being saved to local computer. To do this, drag and drop the Write to File activity to the Visual Script Editor. In the Properties pane, Set the following properties for the activity as shown in the example below: 280 MBPM Designer User's Guide Chapter 29 Introduction to Visual Scripts l File Name and Path l Text l Create New File l Write as Unicode Activity Name Save Folder to File Write the values of all of the folder variables to a comma separated values (csv) file. The first line of the file will consist of field names and the second will consist of values. Property Name Description Folder ID Specify the required folder. File Name Indicate the relevant file name. Delimiter Optionally specify an alternative delimiter to use rather than commas. Example Consider a scenario where the Process’ Folder ID information is being saved to local computer. To do this, drag and drop the Save Folder to File to Visual Script Editor. In the Properties pane, Set the following properties for the activity as shown in the example below: l Folder ID l File Name l Delimiter MBPM Designer User's Guide 281 Chapter 29 Introduction to Visual Scripts Activity Name Delete File Use this activity to delete the specified file from a server. Property Name Description File Name and Path Indicate the directory path and name of the file to delete. Example In the above Process, consider a scenario where a case is closed and the attachment can be deleted. To do this, drag and drop the Delete File activity to the Visual Script Editor. In the Properties pane, set the following properties for the activity as shown in the example below: l File Name and Path 282 MBPM Designer User's Guide Chapter 29 Introduction to Visual Scripts Database Category Activity Name Insert Row Use this activity to insert rows into a database table. Property Name Description Connection Provide a valid connection to the required data source. Insert Command Provide a valid SQL INSERT statement. The INSERT statement has the following structure: "INSERT INTO TABLENAME (TXT_COLUMN1, INT_COLUMN2) VALUES (' "+BUSINESSOBJECT.TXT_VARIABLE1+"', ' "+BUSINESSOBJECT.INT_VARIABLE2+" ')" Example Consider a Form that has been designed as shown below: Click on the Add Item button’s When button clicked property to open the Visual Script Editor. Drag and drop the Insert Row activity along with other Assign Value(s) activities that calculate totals and clear the Form variables. MBPM Designer User's Guide 283 Chapter 29 Introduction to Visual Scripts In the Properties pane of the Insert Row activity, enter the name of the connection in Connection property, and SQL command in the Insert Command property to insert a new row to a table as follows: Activity Name Update Row Use this activity to update a table in a database. Property Name Description Connection Provide a valid connection to the required data source. Update Command Provide a valid SQL UPDATE statement. The UPDATE statement has the following structure: "UPDATE TABLENAME SET TXT_COLUMN1 = '"+ BUSINESS_OBJECT.TXT_VARIABLE1 +"' WHERE (TXT_COLUMN2 = '"+ BUSINESS_OBJECT.TXT_VARIABLE2 +"')" Example Using the same example for Insert Row, click on the Update Item button’s When button clicked property to open the Visual Script Editor. Drag and drop the Update Row activity along with other Assign Value(s) activities that calculate totals and clear the Form variables. 284 MBPM Designer User's Guide Chapter 29 Introduction to Visual Scripts In the Properties pane of the Update Row activity, enter the name of the connection in Connection property, and SQL command in the Update Command property to update a new row to a table as follows: Activity Name Delete Row(s) Use this activity to delete one or more row(s) from a database table Property Name Description Connection Provide a valid connection to the required data source. Delete Command Provide a valid SQL DELETE statement. The DELETE statement has the following structure: "DELETE FROM TABLENAME WHERE TXT_COLUMN1='"+BUSINESS_OBJECT.TXT_ VARIABLE1+"'" Example MBPM Designer User's Guide 285 Chapter 29 Introduction to Visual Scripts Using the same example for Insert Row, click on the Delete Item button’s When button clicked property to open the Visual Script Editor. Drag and drop the Delete Row activity along with other Assign Value(s) activities that calculate totals and clear the Form variables. In the Properties pane of the Delete Row activity, enter the name of the connection in the Connection property, and the SQL command in the Delete Command property to update a new row to a table as follows: Activity Name Execute Stored Procedure Use this activity to execute a database stored procedure which returns NO value. Property Name 286 Description MBPM Designer User's Guide Chapter 29 Introduction to Visual Scripts Connection Provide a valid connection to the required data source. Name of Procedure Provide the name of the stored procedure to execute. Set Parameter Values Provide any parameter values that the stored procedure takes. The value for the Parameters argument can be entered as follows: @MyParam1=My Value1, @MyParam2=My Value 2 The Execute Stored Procedure statement has the following structure: EXEC Stored_Procedure @ParameterName="MyParameter" Example Consider that an Expense Verification stored procedure has already been created that verifies the Expense type selected on the previously designed Form. You can use the SelectSQL command in the Procedure name field to execute the Stored Procedure as follows: Users and Roles MBPM Designer User's Guide 287 Chapter 29 Introduction to Visual Scripts The Users and Roles activities allow you to create, change, and delete users and associate them with roles. The activities are equivalent to making the changes from the MBPM Administrative Tools. Activity Name Add Metastorm User Adds the specified User Name and any additional optional data to the MBPM database. Property Name Description User Name The new user name to be added to the MBPM database. Password The password of the new user to be added to the MBPM database. Reports To The manager(s) of the new user to be added to the MBPM database. Emailed Alerts An email address to which alerts should be emailed for this new user. Email Address An email address for this new user. Distinguished Name The distinguished name of this new user. Example Consider a scenario that requires adding a new user to the MBPM system. Drag and drop the Add Metastorm User activity to the Visual Script Editor. The Properties pane allows you to set the following properties: 288 MBPM Designer User's Guide Chapter 29 Introduction to Visual Scripts Activity Name Update Metastorm User Updates data in MBPM database for the specified user name. Property Name Description User Name The name of the user whose details are to be updated in the MBPM database. Password Optionally specify a new password for the existing user. Reports To Optionally specify a new manager for the existing user. Emailed Alerts Optionally specify a new email address for alerts to be sent to the existing user. Email Address Optionally specify a new email address for the existing user. Distinguished Name Optionally specify a new distinguished name for the existing user. Example Consider a scenario where the Reports to details of the user that was earlier created needs to be changed. For this, drag and drop the Update Metastorm User activity to the Visual Script Editor. In the Properties pane, change the Reports To property from IT Mgr to IT Services Mgr: MBPM Designer User's Guide 289 Chapter 29 Introduction to Visual Scripts Activity Name Delete Metastorm User Deletes the specified User Name and all associated data from the MBPM database. Property Name Description User Name The name of the user to be deleted from the MBPM database. Example Consider a scenario where a user needs to be deleted. For this, drag and drop the Delete Metastorm User activity to the Visual Script Editor. In the Properties pane, enter the User Name to be deleted: 290 MBPM Designer User's Guide Chapter 29 Introduction to Visual Scripts Activity Name Assign User to Role Assigns specified user to specified role. Property Name Description User Name Specify the relevant user name. Role Specify the role to assign. Example Consider a scenario where you want to assign a user to a role. For this, drag and drop the Assign User to Role activity to the Visual Script Editor. In the Properties pane, the User Name and Role property values should be provided: Activity Name Remove User from Role Removes specified user from specified role. Property Name Description User Name Specify the relevant user name. Role Specify the role to remove. Example Consider a scenario where you want to remove the association between a user and the role currently associated to the user. For this, drag and drop the Remove User from Role activity to the Visual Script Editor. MBPM Designer User's Guide 291 Chapter 29 Introduction to Visual Scripts In the Properties pane, the Role property should be provided: Using Standard Activities You can use the following standard activities in your Visual Script to create a workflow: Code Activity 1. Drag and drop the Code Activity from the Visual Script toolbox to the main pane of the Designer. You can only attach the activity to the Visual Script at the attachment point. This is indicated by a small gray-border box appearing below the pointer. 2. Double-click on the code activity to display the code function. Note: If you use Visual Script code activity for working with DataSet, Commit(); should be used to apply data changes. For example: System.Data.DataSet TestDS = TestTable1.Read(); System.Data.DataRow TestRow = TestDS.Tables[0].NewRow(); TestRow[0] = Local.Integer_; TestRow[1] = Local.Real_; TestRow[2] = Local.Text_; TestRow[3] = Local.Check_; TestRow[4] = Local.Currency_; TestRow[5] = Local.Date_; TestRow[6] = Local.Memo_; TestDS.Tables[0].Rows.Add(TestRow); TestTable1.Write(TestDS); TestTable1.Commit(); 292 MBPM Designer User's Guide Chapter 29 Introduction to Visual Scripts TestTable1.CurrentIndex = (TestTable1.Count-1); Conditional l Drag and drop the If Else activity from the Activities toolbox to the main pane of the Designer. Conditional Activity with Multiple Branches l Right-click the outer branch of the IfElse conditional activity and click Add New Branch. Note: The exclamation icons in red indicate that the Boolean condition is not yet set for the expression. When you click on it, the following message is displayed: "Moving a branch left or right" To move a branch left or right, select the inner branch of the IfElse activity and right-click. This provides the option to move the branch left or right. Loop activity l Drag and drop the LoopActivity from the Activities toolbox to the design surface. The exclamation icons in red indicate that the condition is not yet set for the expression. When you click on the icon a warning message is displayed. Transactional Support Transactional support for Visual Scripts ensures that any database changes made using a Visual Script will be rolled back if the transaction does not complete. Transactions include the following operations: l l Refill transaction: It includes all database operations (Database Activities and variables assignments) that occur within a refill. Start Action transaction: It contains all database operations (Database Activities and variables assignments) that occur within 'WhenActionStarted' and ‘WhenUserLoadsForm’ handlers. The handlers take place in following order: l WhenActionStarted l WhenUserLoadsForm l Submit Action transaction: It contains all database operations (Database Activities and variables assignments) that occur within 'WhenActionCompleted', 'WhenUserExitsForm', 'WhenStageCompleted', and ‘WhenStageStarted’ handlers. The handlers take place in following order: l WhenUserExitsForm l WhenActionCompleted l WhenStageCompleted (the stage before an action) l WhenStageStarted (the stage following an action) For example, consider a User Action's 'When action completed' property associated with a Visual Script that performs the following operations: MBPM Designer User's Guide 293 Chapter 29 Introduction to Visual Scripts l A database operation such as ‘Insert Row’, ‘Update Row’, or ‘Delete Row’ activity l A 'Write to Log' activity with Severity property set to Severity.Error In this scenario, the database changes made after executing the 'Insert Row' activity will be rolled back as the 'Write to log' activity fails and the transaction will not be completed. Note: If a transaction fails, only the database operations in that transaction are rolled back. For example, activities from Database group of the Visual Script Toolbox, assignments for variables, and so on, are rolled back. This is irrespective of how the operations were performed - using corresponded Visual Script activities, via code, using promoted functions, and so on. Any operations, which are not connected to the database, are executed regardless of whether the transaction fails or succeeds. For example, Raise Flag, Send Mail, Write to File, Delete File, Get Attachment, and so on are not rolled back. This is irrespective of how the operations were performed - using corresponded Visual Script activities, via code, using promoted functions, and so on. However, transaction may fail because of any operation; not just database operations. Therefore, for example, if a non-database operation such as Write to File operation fails for any reason within a transaction, the transaction will be rolled back. 294 MBPM Designer User's Guide Chapter 30 Introduction to Expression Builder Chapter 30 Introduction to Expression Builder Expression Builder is a tool that allows you to use formulas to build expressions. An expression is composed of one or more formulas. l l A formula is a function that has a return value. Formulas are the building blocks of an expression. An activity is a function that has no return value. It is a building block of a Visual Script. All of the items in the Command category of the Integration Wizard in v7.6 are available as activities in Designer v9. The Expression builder can be accessed from the Properties task pane by clicking on button for any field, which can take an expression. When you click on the Expression Builder button, the Expression Builder is displayed. MBPM Designer User's Guide 295 Chapter 30 Introduction to Expression Builder The Expression Builder has the following areas: 1. Title Bar - Property to which an expression is assigned. 2. Formula Ribbon - Drop-down lists to select formulas 3. Expression Bar - The expression that is being constructed 4. Name of the formula - Formula name that currently has focus as determined by cursor position 5. Parameter Area - Parameters of the formula in the Expression Bar that currently has focus 6. Help Area - Description of the formula The Expression Builder window has buttons to expand and collapse the parameters and help associated with the expression entered. 296 MBPM Designer User's Guide Chapter 30 Introduction to Expression Builder Building Expressions using Intellisense Intellisense in MBPM Designer facilitates auto completion of formulas. Intellisense drop-down list is populated with formulas that are sorted and filtered alphabetically. You can scroll through the list using the keyboard arrow keys or scroll bar and a tool tip displays the highlighted formulas and their parameters. It provides easy access to the formulas as you start typing in the field by displaying a drop-down list of functions that are allowed. If you choose a formula, Intellisense highlights it for easier identification and then prompts you with the correct data type for the argument. Intellisense is displayed even in nested formulas. When you are defining a control on a process form or report, use the Properties editor to specify the properties of the control. For properties that are expression fields, Intellisense is invoked so that you can construct the expression easily from the available formulas. As you start typing, the characters are matched with the formula names and relevant formulas are displayed. OK, Cancel and ESC The OK and Cancel buttons and ESC key can be pressed to exit from both Intellisense and Expression Builder. There are, however, differences in how validation is performed and data is saved, as described in the following table. MBPM Designer User's Guide 297 Chapter 30 Introduction to Expression Builder Key Data Validation OK When the OK button is clicked, an attempt is made to close the Expression Builder (as well as the Intellisense window if it is open) and all changes made by the user are saved. If the expression is invalid, however, a red cross is displayed indicating a validation failure and the Expression Builder remains open, allowing the user to make the appropriate corrections. Cancel Clicking on Cancel causes the Expression builder (as well as the Intellisense window) to close without performing any validation or saving changes. ESC If the Intellisense window is open, pressing ESC closes the window; however, the Expression Builder remain opens. Any changes made whilst in Intellisense are not reflected in the Expression Builder. If Intellisense is not open, pressing ESC acts in the same way as pressing Cancel. Intellisense is available in the following locations: l Expression Editor l Expression Bar l Expression fields within Expression Builder l Script Editor Building Formulas using the Expression Builder You can use the Expression Builder to build expressions using formulas. To access Expression Builder while designing a process: l l Select a user action. In the Properties task pane, for the expression fields (such as Alert message), click on the ellipsis button. The contents of the field are copied to the Expression Bar of the Expression Builder. In this case, the alert message property is of type text and the Expression Builder is displayed in text mode. Once you have opened the Expression Builder, you may type into or edit the existing contents of the Expression Bar. You can also pick a formula from any of the available groups in the Formula ribbon bar. While you are editing an expression in the Expression Builder, Intellisense is invoked. Expression Builder Formulas The following formulas are available in the Expression Builder. 298 MBPM Designer User's Guide Chapter 30 Introduction to Expression Builder AbsoluteNumber Convert the specified number into a positive integer by removing the negation sign and fractional parts (if any). Property Name Description Return Type Number Provide any number to which the Absolute function should be applied. Positive integer AllNotes Return a formatted log of all the notes added to this folder (using the ActionNotes variable) and stored in the eEvents table. Property Name Description Return Type Folder ID Provide the Folder ID related to the set of required notes. List of notes AND Use this logical operator to perform a conjunction on a pair of expressions that return TRUE or FALSE. Property Name Description Return Type Check 1 Provide an expression that evaluates to TRUE or FALSE. Check Check 2 Provide an expression that evaluates to TRUE or FALSE. Check CalculateDateTime Calculate a new date-time the specified number of units before or after the referenced datetime. Property Name Description Return Type Before / After Indicate whether the new date should be before or after the referenced date. Date/Time Count Provide the number of units. Date/Time MBPM Designer User's Guide 299 Chapter 30 Introduction to Expression Builder Property Name Description Return Type From Provide the referenced data-time. Date/Time Units Provide the time unit. Date/Time CalculateDuration Calculate in specified units the interval between the two specified date-times. Property Name Description Return Type From Provide the first date-time. Date/Time To Provide the second date-time. Date/Time Units Provide the time unit in which the calculation should be done. Date/Time Note: "From" and "To" dates used in the above calculation should be in the same scope, that is, both dates should be either process variables or code activity variables but not one of each. For example, refer to the following code snippets: Example 1: //Correct usage //Both variables used in CalculateDuration are defined in code activity Metastorm.Runtime.Types.DateTime dtCurrentTime = Metastorm.Runtime.Types.DateTime.CurrentDate; Metastorm.Runtime.Types.DateTime dtTenMinsAfterCT = Mstm.CalculateDateTime (10, DateTimeUnits.Minutes, DateTimeDirection.After, Metastorm.Runtime.Types.DateTime.CurrentDate); Local.Text1 = dtCurrentTime.ToString(); Local.Text2 = dtTenMinsAfterCT.ToString(); Local.Text3 = Mstm.CalculateDuration(dtCurrentTime,dtTenMinsAfterCT, DateTimeUnits.Minutes).ToString(); Example 2: //Correct usage //Both variables used in CalculateDuration are process custom variables TimeZoneIssueData1.dtCurrentDT = Metastorm.Runtime.Types.DateTime.CurrentDate; 300 MBPM Designer User's Guide Chapter 30 Introduction to Expression Builder TimeZoneIssueData1.dtCurrentDTPlus10 = Mstm.CalculateDateTime(10, DateTimeUnits.Minutes, DateTimeDirection.After, Metastorm.Runtime.Types.DateTime.CurrentDate); Local.Text5 = TimeZoneIssueData1.dtCurrentDTPlus10.ToString(); Local.Text6 = Mstm.CalculateDuration(TimeZoneIssueData1.dtCurrentDT, TimeZoneIssueData1.dtCurrentDTPlus10, DateTimeUnits.Minutes).ToString(); Example 3: //Incorrect usage //One variable used in CalculateDuration is process custom variable while the other one is defined in code activity Local.Text7 = TimeZoneIssueData1.dtCurrentDT.ToString(); Local.Text8 = dtTenMinsAfterCT.ToString(); Local.Text9 = Mstm.CalculateDuration(TimeZoneIssueData1.dtCurrentDT, dtTenMinsAfterCT, DateTimeUnits.Minutes).ToString(); ConcatenateSubstrings If you were to concatenate a variable containing the string "FirstName" with a variable containing the string "LastName", the result would be "FirstNameLastName". Property Name Description Return Type Strings to be Concatenated Provide the list of items that should be concatenated. Text CountCharacters Return the number of characters in a piece of text. Property Name Description Return Type Text Provide the text to which this function should be applied. Positive integer DeleteAttachment Deletes an existing attachment from the database. Property Name Description Return Type File Name Indicate the file name of the attachment to be deleted. Empty string Folder ID Indicate the folder from which the attachment should be deleted. Empty string MBPM Designer User's Guide 301 Chapter 30 Introduction to Expression Builder ExecuteStoredProcedure Use this activity to execute a database stored procedure which DOES return a value. Property Name Description Return Type Connection Provide a valid connection to the required data source. Returns an object Name of Procedure Provide the name of the stored procedure to execute. Returns an object Set Parameter Values Provide any parameter values that the stored procedure takes. Returns an object ExtractSubstring Extract a substring as specified from the supplied text. Property Name Description Return Type Extract From Specify the source text from which the substring should be extracted. Text Number of Characters Specify the length of the substring to be extracted. Text Start Position Specify the position of the first character of the Text substring to be extracted. Findsubstring Attempt to locate a substring within the specified string. Property Name Description Return Type Match Case Indicate whether or not to match the capitalization of the specified substring. Text Start Position Specify the start position from which the search should begin. Text Find Substring Specify the substring to be searched for. Text In Text Specify the source text from which the substring should be found Text Note: Values less than 1 should not be used as Start Position in Find substring function. 302 MBPM Designer User's Guide Chapter 30 Introduction to Expression Builder FormatDateTime Format a date/time value for display. Property Name Description Return Type Date / Time Specify the date-time value. Text Format Indicate the required date-time format. Text The table below shows the accepted date/time formats. BPM does not support format characters like F, D, G. Format Pattern d The day of the month. Single-digit days have no leading zero. (Only if used in the context of a longer pattern. A single "d" on its own represents the Short date pattern.) dd The day of the month. Single-digit days have a leading zero. ddd The abbreviated name of the day of the week. dddd The full name of the day of the week. M The numeric month. Single-digit months have no leading zero. (Only if used in the context of a longer pattern. A single "M" on its own represents the Month day pattern.) MM The numeric month. Single-digit months have a leading zero. MMM The abbreviated name of the month. MMMM The full name of the month. y The year without the century. If the year without the century is less than 10, with no leading zero. (Only if used in the context of a longer pattern. A single "y" on its own represents the Month year pattern.) yy The year without the century. If the year without the century is less than 10, with a leading zero. yyy The year in four digits, including the century. gg The period or era (e.g. "A.D."). This pattern is ignored if the date to be formatted does not have an associated period or era. MBPM Designer User's Guide 303 Chapter 30 Introduction to Expression Builder Format Pattern h The hour in a 12-hour clock. Single-digit hours have no leading zero. hh The hour in a 12-hour clock. Single-digit hours have a leading zero. H The hour in a 24-hour clock. Single-digit hours have no leading zero. HH The hour in a 24-hour clock. Single-digit hours have a leading zero. m The minute. Single-digit minutes have no leading zero. (Only if used in the context of a longer pattern. A single "m" on its own represents the Month day pattern) mm The minute. Single-digit minutes have a leading zero. s The second. Single-digit seconds have no leading zero. (Only if used in the context of a longer pattern. A single "s" on its own represents the sortable time pattern.) ss The second. Single-digit seconds have a leading zero. t The first character in the AM/PM designator. (Only if used in the context of a longer pattern. A single "t" on its own represents the short time pattern.) tt The AM/PM designator. GetEarlierMessage Return the alert message associated with a previous action on this folder. Property Name Description Return Type Message Index Specify the index of the message to be retrieved. Text GetEarlierNote Return the note associated with a previous action on this folder. Property Name Description Return Type Note Index Specify the index of the note to be retrieved. Memo 304 MBPM Designer User's Guide Chapter 30 Introduction to Expression Builder GetEmailAddress Return the email address of a specified user. Property Name Description Return Type User Name Provide the name of the user whose email address is required. Text GetEmailAddresses Return an email address list corresponding to a list of MBPM users. Property Name Description Return Type User(s) Provide the names of the users whose email addresses are required. A list of email addresses (text) GetToDoList Return the list of users who have the specified folder on their To Do lists. Property Name Description Return Type Folder ID Provide the Folder ID related to the required To Do List. A list of strings (text) GetUserAttribute Return one or more attribute(s) of the specified user. Property Name Description Return Type Attribute Specify the attribute(s) of interest. A list of attribute value (text) Relationship Table Specify the relationship or attribute table to be searched. A list of attribute values (text) Selection Criteria Specify the criteria determining which attribute(s) should be returned. A list of attribute values (text) User Name Specify the name of the relevant user. A list of attribute values (text) GetUserDistinguishedName Return a user’s unique ID within a directory. MBPM Designer User's Guide 305 Chapter 30 Introduction to Expression Builder Property Name Description Return Type User Name Provide a valid user name. Text GetWatchList Return the list of users who have the specified folder on their Watch lists. Property Name Description Return Type Folder ID Provide the Folder ID related to the required Watch List. A list of users (text) HtmlToText Convert Rich Text control’s formatted content to a Text control’s unformatted content. Property Name Description Return Type Variable Convert Rich Text control’s formatted content to a Text control’s unformatted content Text Example: Local.PlainText = Mstm.HtmlToText(Local.RTV); Where PlainText is a variable associated with a Text control; RTV is a variable associated with a Rich Text control. IF Use this to check a condition and return the result of the first statement if true or the result of the second statement if false. Property Name Description Return Type Condition Provide the condition that should be evaluated to determine which value to return. Returns an object Value if False The value to return if the condition evaluates to FALSE. Returns an object Value if True The value to return if the condition evaluates to TRUE. Returns an object 306 MBPM Designer User's Guide Chapter 30 Introduction to Expression Builder Note: Currently any expressions in the TRUE or FALSE parameters will get evaluated at runtime regardless of whether the condition is met or not. To workaround this limitation, use the C# conditional statement as follows: <Condition> ? <Value if TRUE> : <Value if FALSE> Left Return the left-hand part of a text string. Property Name Description Return Type Number of Characters Provide the number of characters to be extracted from the left. Text Text Provide the source text. Text List Takes a set of comma-delimited objects of any type and groups them together as a list of objects. Property Name Description Return Type Values Specify the set of items to be grouped together as a list of objects. List ListPublishedRoles Return the list of all published roles. Property Name Description Return Type N/A No parameters. List of text items ListRegisteredUsers Return a list of user names for all users who are registered to use MBPM. Property Name Description Return Type N/A No parameters. List of text items ListSelectedUsers Return a list of users with one or more specified attributes in common. The attributes will be taken from the MBPM attributes table. MBPM Designer User's Guide 307 Chapter 30 Introduction to Expression Builder Property Name Description Return Type Common Attribute(s) Specify one or more attributes that the users have in common. A list of users (text) MaximumNumber Return the largest of a list of numbers. Property Name Description List of Numbers Provide a list of numbers from which the maximum should be determined. Return Type Integer MinimumNumber Return the smallest of a list of numbers. Property Name Description List of Numbers Provide a list of numbers from which the minimum should be determined. Return Type Integer NOT Use this logical operator to negate an expression which returns TRUE or FALSE. Property Name Description Return Type Check Provide an expression which evaluates to TRUE or FALSE. Check Never Use this option to specify that MBPM is to compare or reset time values to 'never'. Property Name Description Return Type N/A No parameters. Date/Time NewAttachment Adds a new attachment to the specified folder (saves it in the database) by reading the contents of a file on disk. Returns attachment name and extension assigned to a new attachment created in the MBPM database. 308 MBPM Designer User's Guide Chapter 30 Introduction to Expression Builder Property Name Description Return Type File Name and Path Indicate the directory path and name of the file to attach. Text Folder ID Indicate the folder to which the attachment should be added. Text OR Use this logical operator to perform a disjunction on a pair of expressions which return TRUE or FALSE. Property Name Description Return Type Check 1 Provide an expression which evaluates to TRUE or FALSE. Check Check 2 Provide an expression which evaluates to TRUE or FALSE. Check Pair Takes a pair of comma-delimited objects of any type and groups them together as a namevalue pair. Property Name Description Return Type Name Specify the name. Name Value pair Value Specify the value. Name Value pair ReadAttachment Retrieves the data as a base 64 encoded string for an existing attachment from the database, for use in memory. Property Name Description Return Type File Name Indicate the name of the file to retrieve. Text Folder ID Indicate the folder from which the attachment should be retrieved. Text ReadFile Read the contents of a text file on the server and place the contents in a text or memo field. MBPM Designer User's Guide 309 Chapter 30 Introduction to Expression Builder Property Name Description Return Type File Name Provide the name of the source file. Text Remainder Calculate the remainder from the dividend/the divisor Property Name Description Return Type Dividend Provide the number to be divided into. Real Divisor Provide the number to be divided by. Real ReplaceSubstrings Find and replace substrings. Property Name Description Return Type New String Specify the substring to put in its place. Text Number of Occurrences Specify the number of replacements to make. Specify 0, if all occurrences should be replaced. Text Old String Specify the substring to be replaced. Text Text Provide the source text. Text Right Return the right-hand part of a text string. Property Name Description Return Type Number of Characters Provide the number of characters to be extracted from the right. Text Text Provide the source text. Text RoundNumber Round a number up to a specified number of decimal places. 310 MBPM Designer User's Guide Chapter 30 Introduction to Expression Builder Property Name Description Return Type Number Specify the number to be rounded up. Integer SaveAttachment Adds a new attachment to the specified folder (saves it in the database) by storing the inmemory data provided. Returns the unique name given to the attachment by the engine. Property Name Description Return Type Attachment Data The attachment's contents. Text File Name Indicate the name of the file to save to the database. Text Folder ID Indicate the folder to which the attachment should be saved. Text SearchDirectory Retrieve information from an LDAP directory search. Property Name Description Return Type Attributes Specify any attributes on which to search. DataContainer Connection Provide a valid connection to the required data source. DataContainer Depth Specify the depth of the search. DataContainer Filter Specify any filters to apply to the search. DataContainer Parameters Specify any parameters on which to search. DataContainer Search Base Specify the base node from which to search. DataContainer SelectSQL Use this formula to run a SELECT statement. Property Name Description Return Type Connection Provide a valid connection to the required data source. Determined by Select statement, one or more MBPM Designer User's Guide 311 Chapter 30 Introduction to Expression Builder Property Name Description Return Type column dataset SQL String Specify a valid SQL Select statement. Determined by Select statement, one or more column dataset UsersManager Use this formula to return the manager, who has a specific role with respect to the specified user. Property Name Description Return Type User Name Specify the name of the user whose manager is required. Text Role Specify the role that the manager should hold. Text Fallback role Specify the role to be returned in the event that the given user has no manager with the specified role. Text UsersStaff Use this formula to return a list of the staff who have a specific role and report to the specified user. Property Name Description Return Type Role Specify the role that each of the staff should hold. Text User Name Specify the name of the user whose list of staff members is required. Text The following method is available in the Expression Builder: GetColumns A method that returns one or two columns of data from a specific Business Object, dependent on the number of columns specified. 312 MBPM Designer User's Guide Chapter 30 Introduction to Expression Builder Property Name Description Return Type Column Specify one or two columns only. List of items or namevalue pairs To use the GetColumns method, use the following notation: <<BusinessObject>>.GetColumns(<<column1>>,<<column2>>,..) For example: BusinessObjectName1.GetColumns("Col1"); or BusinessObjectName1.GetColumns("Col1", "Col2"); Using List Functions Library You can assign an expression to the List options property for Dropdown, List Box, or Memo field. You can do this either by using the Expression Builder or by using a variable which is linked to the List options. The ListFunctionsLibrary provides functions that allow you to return a list that can be used to populate the List options value. The ListFunctionsLibrary.Solution is available in the following location: C:\Program Files\Metastorm\BPM\Sample Processes\ListConversionLibrary You should deploy and add this library to your current project to use these list functions. The following functions are available within the Functions Library: Function Parameters Type Description / Example public static List CreateListFromArray (IEnumerable<string> array) array List A List that is used to populate ListOptions. public static List CreateListFromText (Text input, Text delimiter) input MBPM Designer User's Guide Example Input: A web service response (or auto-created variable from such a response) that returns an MBPM List. List A List that is used to populate ListOptions. Example Input: A web service response (or auto-created variable from such a response) that returns a comma separated list. 313 Chapter 30 Introduction to Expression Builder Function Parameters Type Description / Example delimited List Example input: A comma. public static List CreateListFromXML (string xmlString, string nodeName) xmlString List A List that is used to populate ListOptions. Example Input: A web service response (or auto-created variable from such a response) that returns a xml as a string. nodeName List Example Input: This may be the name of a node whose value(s) you wish to return. public static List GetObjectItems (IEnumerable methodResponse, string propertyIdentifier) methodResponse List (A promoted WebMethod, either expression or auto-created variable from an activity return value.) A List that is used to populate ListOptions that contains the information based on the object & property Identifier. Example: To get all of the phone numbers for a particular employee: GetObjectItems (Connection1.GetEmployeeByID (), "Employee.PhoneNumbers [].Number") propertyIdentifier List (The property whose value(s) should be returned in a list.) Data Types The MBPM type system is a layer in the MBPM architecture stack that can be used as a part of the programmable API for processes. The following data types constitute the MBPM type system. 314 MBPM Designer User's Guide Chapter 30 Introduction to Expression Builder Data Type Description Text Text is the basic text type and similar to the type System.String in the .NET framework. Text does not have a length limit and can be used for any string, including strings with formats such as email addresses or post codes. Integer Integer is the basic ordinal type. Real Real is the basic numeric type. Memo Memo is a text type. It is intended to carry free text entered by the user as a multiline block. Currency Currency is a numeric type. It is a floating point value which is used to carry monetary values. DateTime DateTime is the basic temporal type. DateTime captures date, time and time zone information and is similar to the System.DateTimeOffset type available in .NET. List The List type is an untyped single-dimensional list of objects. It is used as a general purpose list much like ArrayList in the .NET framework. However, it differs from ArrayList in several important ways. l MBPM Designer User's Guide You cannot add to a list, remove from it or 315 Chapter 30 Introduction to Expression Builder Data Type Description change the values on it. l l Lists cast to and from object arrays. List implements IEnumerable<string> and can therefore be used anywhere an enumeration of strings is required. The string enumeration is generated be calling ToString() on each item in the list. In keeping with list and array types in the .NET framework, items on the list are accessed using the [] operator. For example, list1[n] returns the nth item on list1. Any type may be implicitly cast to a list. The result is a list with the operand as single member item. Check Check is a basic logic type and is similar to System.Boolean in the .NET framework. Casting To cast one data type to another, prefix the assignment value with the intended data type in brackets. For example, if you have a number field on a form and if you want to assign it ProcessContext Business Object's CurrentTime, you can do the following: 1. Click on the Expression Builder icon in the Calculation property of the Number field. 2. In the Expression Builder, from the ribbon bar, click Business Object->ProcessContext>CurrentTime. 3. To cast it to a real data type, type (Real) in front of ProcessContext.CurrentTime The expression bar will now display: (Real)ProcessContext.CurrentTime 316 MBPM Designer User's Guide Chapter 30 Introduction to Expression Builder 4. Click OK. The table below indicates all the implicit typecasts available for the types of the MBPM type system, as well as which incur data loss. Implicit Typecasts From Type To Type Result Data Loss Text Memo The string is copied. None. Text Check Blank strings and the values “F”, “False”, “N” and “No” (without case sensitivity) are treated as false, any other string results in true. The actual string value is lost, only the logical meaning is kept. Text List A list with a single item of type Text. None. List Text The string representations of the items in the list are concatenated with new line delimiters. The entire list is represented as a single string in this way. The list structure is lost. It is not possible to distinguish between line breaks that are injected by the cast, and those that exist in the items on the original. The types of values on the list are also lost. List Check An empty list results in false, any other list results in true. The contents of the list are lost. Check Text True results in “True”, false results in “False”. None. Check List A list with a single item of type Check. None. Integer Text The string representation of the value without None. MBPM Designer User's Guide 317 Chapter 30 Introduction to Expression Builder From Type To Type Result Data Loss leading zeroes. Integer Real A floating point value with a zero fractional part. None. Integer Currency A currency value with no fractional part. None. Integer List A list with a single None. item of type Integer. Real Check Zero results in false, The numeric value is any other value are lost. true. Real Text The number is represented as a decimal string. Real Currency The value is retained None. unchanged. Real Integer The value is truncated, the integer part is returned. The fractional part is lost. Real List A list with a single item of type Real. None. DateTime Text The date and time is returned formatted according to the current locale. None, with the exception of the possibility of a small rounding error. DateTime Check A value of zero (origin date) results in false, any other date results in true. The value is lost. DateTime List A list with a single item of type DateTime. None. Currency Integer The value is truncated, only the The fractional part is lost. 318 None. MBPM Designer User's Guide Chapter 30 Introduction to Expression Builder From Type To Type Result Data Loss integer part is retained. Currency Text The value is represented as decimal string using ¤ as a place-holder for a currency symbol. The string is formatted according to locale preferences. None. Currency Real The value is retained None. unchanged. Currency Check A value of zero results in false, otherwise true. The value is lost. Currency List A list with a single item of type Currency. None. Memo Text The string is copied. None. Memo Check A blank string results in false, any other string results in true. The text is lost. Memo List A list with a single item of type Memo. None. Using Operators The operators +, -, * and / take their usual arithmetic meaning between numeric types; + is used as a string concatenation operator for Text and Memo; and the Boolean operators (&&, ||, ==, etc) are used for logic (pseudo code is used in the following sections). Operation Description Integer Division The division of two Integer values yields a double. This differs from the standard .NET integer division which yields an integer. This difference is implemented because it is more intuitive to the user to allow for fractional parts in the result of division. For example given two integers: a=1 and b=2 the user may reasonably expect a/b to evaluate to 0.5 rather than 0. MBPM Designer User's Guide 319 Chapter 30 Introduction to Expression Builder Operation Description List Concatenation The + operator is used as a concatenation operator for lists. Given two lists: a={1,2,3} and b={"hello"," ","world"}, the operation a+b results in the list {1,2,3,"hello"," ","world"}. Note that lists are immutable and this operation does not affect either of the original lists. Instead a new list is created as a result. List Appending The + operator may also be used to append a new item to a list. Logic Operators All fundamental types may be used as predicates in conditional statements. For example it is possible to write an expression using Text && Integer. Given the list a={1,2,3}, the operation a+4 results in the new list {1,2,3, 4}. Any value may be appended to the list except another List. Two lists are concatenated rather than the second list becoming an actual member of the first. Modes of Expression Builder There are several modes of Expression Builder: l Text and Memo Mode – where you can type in or construct textual expression. l Assignment Mode – where you can type in a collection of one or more assign statements. l l l l Condition Mode – where you can construct conditional expressions, in the same way that you can use Condition Builder in v7.6 SQL Mode – where you can use the Select SQL function to return data from your choice of database. List Mode – where you can pass a list of values into a formula. Check Mode – where you can use logical operators AND, OR, NOT and IF to construct expressions. Text and Memo mode Text mode allows you to construct textual expressions. In both Text and Memo modes, the Expression Bar becomes multi-line as you reach the end of a line. 320 MBPM Designer User's Guide Chapter 30 Introduction to Expression Builder Assignment mode The Assignment mode can be invoked from a Visual Script in one of two ways: Using Properties task pane 1. Drag and drop the Assign activity in a Visual Script. 2. Click the ellipsis button of the Assignments property in the Properties task pane. Double-clicking the Assign activity 1. Drag and drop the Assign activity in a Visual Script. 2. Double-click the Assign activity. An Assignment Grid is displayed within the Expression Builder. Adding an Assignment To add an assignment in Assignment mode: 1. Select a variable from the drop-down field on the left hand side. The drop-down only lists editable variables that are currently in context. 2. Enter an expression for the value field on the right hand side. The value field has Intellisense. MBPM Designer User's Guide 321 Chapter 30 Introduction to Expression Builder You can also type a SelectSQL formula in the value field. Note that the value field entry should be enclosed in quotes if the value entered is a text. 3. Click the Add button. Having added a number of assignments, use the arrow key buttons to re-arrange the order, if required. Editing an Assignment To edit an assignment in Assignment mode: 1. Choose the assignment row that you would like to edit from the Assignment grid. The assignment is displayed in the editable row. 2. Edit the assignment. 3. Click the Add button to save your changes. Deleting an Assignment To delete an assignment in Assignment mode: 1. Select the relevant assignment row in the Assignment grid. 2. Click the Delete button. 322 MBPM Designer User's Guide Chapter 30 Introduction to Expression Builder Condition mode You can display the Expression Builder in Condition mode from any property that is expecting a true or false value. For example, the Only start action if property of Flag Action. Adding Conditions 1. In the left hand expression field, enter an expression. 2. Select the required comparison operator from the central drop-down field. 3. In the right hand expression field, enter an expression. 4. Click the Add button. Before you add another condition, you can use the AND or OR operators to combine the conditions. You can select one of these operators from the option buttons to the left of the first expression field. To rearrange the order of conditions, use the arrow key buttons to move the conditions up or down, if required. Editing a Condition To edit a condition: 1. Choose the row that you would like to edit from the conditions grid. The condition is displayed in the top editable row. 2. Edit the condition. 3. Click the Add button to save your changes. Deleting a Condition To delete a condition: 1. Select the condition from the conditions grid. 2. Click the Delete button. MBPM Designer User's Guide 323 Chapter 30 Introduction to Expression Builder SQL Mode You can display the Expression Builder in Select SQL mode by displaying the Expression Builder and then selecting the Database group's Select SQL formula. Alternatively, in the Expression builder's Expression Bar, you can type in SelectSQL. Constructing a simple Select statement To use the SelectSQL formula, enter or select appropriate information as described below: 1. Choose a connection from the list of available connections using the drop-down. 2. Type in the Select query or display Query Builder using the button to build a Select query. The Query Builder is displayed. 3. Construct the required Select statement and click OK. In the above screenshot: 1 represents the Query Builder button. 324 MBPM Designer User's Guide Chapter 30 Introduction to Expression Builder SelectSql Properties Following are the properties of SelectSql() function that can be accessed by typing a dot (.) after the Sql query in the Expression Bar: The following table lists the return value types for the SelectSql() properties. Property Return Value Type Check Check Currency Currency DateTime Datetime GetDataSet Dataset GetDataTable Data table Integer Integer data List List data Memo Memo data Real Real data Text Text data Constructing a Parameterized Select statement There are two ways to construct a parameterized Select statement: l Typing the parameter name in directly l Using Query Builder to add a parameter name For example, if you were constructing the following query: SELECT chkAuthorization FROM ApprovedOrders WHERE eFolderID="APP564"; To type the parameter name directly, do the following: MBPM Designer User's Guide 325 Chapter 30 Introduction to Expression Builder You should use the @ symbol as a prefix to identify a parameter name. Use @Param1 in place of "APP564" in the above query. The query will look as follows: SELECT chkAuthorization FROM ApprovedOrders WHERE eFolderID=@Param1; Tab out of the Select statement field, and a Parameter field is displayed. You can then assign the values to the parameters. Using Query Builder to add a parameter name, do the following: From the Select statement field, display the Query Builder and construct the query as normal. When you want to add a parameter, type the parameter name in the criteria field in the same row as the expression you want to parameterize. In the above example, type in @Param1 in the same row as eFolderID. You can then see the appropriate parameterized clause added to the SQL query. When you return to Expression Builder, a Parameter field is displayed. You can then assign the values to the parameter as in point 1 above. List Mode There are several formulas that take a list of values. l l Number mode:Type in a comma delimited list of numbers into the appropriate property of the Properties task pane. For example, Maximum and Minimum. Text mode: Type a function into the appropriate property of the Properties task pane, which returns a list of values. Following are examples of formulas that return lists: GetEmailAddresses, GetToDoList, GetWatchList and GetUserAttribute. 326 MBPM Designer User's Guide Chapter 30 Introduction to Expression Builder l Conditional mode:Type a function into the appropriate property of the Properties task pane, which returns a boolean value. For example, AND and OR. Using Check Mode You can access all logical operators from the Expression Builder’s Logical group. The available operators are as follows: l AND l OR l NOT l IF Lowercase values ‘true’ and ‘false’ represent logical ‘TRUE’ and logical ‘FALSE’ respectively. Using AND If you select the ‘AND’ operator, two fields - Check 1 and Check 2, are displayed. You can type in conditional expressions into the fields. When you exit a field, the overall conditional expression is generated in the Expression Bar. MBPM Designer User's Guide 327 Chapter 30 Introduction to Expression Builder Using ‘OR’ If you select the ‘OR’ operator, two fields - Check 1 and Check 2, are displayed. You can type in conditional expressions into the fields. When you exit a field, the overall conditional expression is generated in the Expression Bar. Using ‘NOT’ If you select the ‘NOT’ operator, a field named Check is displayed. You can type in the conditional expressions to be negated into the field. Only one expression can be passed to a ‘NOT’ operator so no additional fields appear. After typing in a value, press the TAB key to update the value in the Expression Bar. 328 MBPM Designer User's Guide Chapter 30 Introduction to Expression Builder Using ‘IF’ If you select the ‘IF’ operator, three fields - Condition, Value If True, and Value If False, are displayed. The first field takes a conditional expression (such as Process1.variable = "success") and the second and third fields take expressions or values. For a valid function, the second and third fields must have the same data type. MBPM Designer User's Guide 329 330 MBPM Designer User's Guide Chapter 31 Introduction to Scripting Chapter 31 Introduction to Scripting Scripting allows you to add or extend MBPM functionality by writing your own client or server side scripts. Within the Designer, the Script Editor is used to write server side and client side scripts. The Script Editor provides syntax highlighting for C#. C# Guidelines Following are C# guidelines: Case-sensitivity If you named an item “HelloWorld” (with an upper-case “H”), then it is not the same as “helloWorld” (with a lower-case "h"). The C# compiler will not evaluate a comparison of the above two strings as true as it considers them as two different items. Double-quotes usage All text entries should be enclosed within double-quotes. String Concatenation When working with strings, you will often need to combine two or more separate strings together to form one string. Binding multiple strings together is known as concatenation. Concatenating strings can be accomplished using the concatenation operator. The concatenation operator is the plus sign, + . It is used to signify that one whole string is to be 'added' to another whole string. For example: string s1 = "Business"; string s2 = "Process"; string s3 = “Modelling”; space = “ ”; s1 = s1 + space + s2 + space + s3; This generates the following concatenated string: Business Process Modelling Any mix of string literals and string variables may be concatenated, and you may concatenate as many literals and variables on the same line as you wish. MBPM Designer User's Guide 331 Chapter 31 Introduction to Scripting Note: The space variable used above holds the space character and is used to concatenate spaces in the whole string. Server-Side Scripting You can use the Script Editor to create scripts. C# can be used for server-side scripting languages. However, you can migrate server-side Jscript, VBScript and Jscript.NET files from previous versions of Designer into v9. To create a server-side script, on the Home ribbon tab, Components group, click ServerScript. The Script Editor provides the following features: l Intellisense l Code indenting l Code commenting l Code bookmarking l Code information displaying l Script validation l Keywords color coding Note: The server script class name and constructor name must be unique. Using Business Objects You can use Business Objects on forms and processes as a way to access data from various sources and to bind the data to process and form elements. You can also access and manipulate Business Objects in server script. This allows you to write scripted functions for data manipulation that you can call from Expressions, Events and other Visual Scripts. This help file is intended for people who have at least a basic knowledge of C# and its syntax. It is divided into two parts. The first part deals with how to get access to a Business Object in server script. The second part describes some of the things that you can do with the Business Object once it is available in the scripted code. Passing Business Objects to Scripts To make use of the Business Objects in scripts, you must be able to access a Business Object in a script. This requires passing an instance of a business object to the function. To do this you need to know two things: l How to write a function which accepts a Business Object. l How to get an instance of the Business Object at the point at which the function is called. This section contains the following: l Writing Functions that use Business Objects. l Passing a Business Object Instance to a Function. 332 MBPM Designer User's Guide Chapter 31 Introduction to Scripting l Passing Form Local and Process Business Objects. l Passing a Form or Process Context. Writing Functions that use Business Objects The simplest way to receive a Business Object in a function is to pass it in as an argument in the function call. The following code snippet illustrates this using a method signature. The function takes a Business Object of employee data and returns a formatted employee name for the currently selected employee. [Promote(PromotionTargets.ExpressionBuilder)] public static string FormatEmployeeFullNme(Employees employees) { return string.Format (“{0} {1}”, employees.FirstName, employees.Surname); } This function uses a table Business Object over a solution table of employees. Note that the function's parameter type has the same name as the Business Object. The Business Object ("Employees") is used as the type name for the Business Object parameter. You can apply this method to any custom Business Object. That is, Table, Query and LDAP Business Objects. Process Data Business Objects and the Form's Local Business Object use a different convention. This is covered later. Also note that the Business Object's variables are available as properties of the argument. The properties have the same name as the variables declared for the Business Object. This uses the FirstName and Surname Text variables. Passing a Business Object Instance to a Function Once the function is written, you can call it from an expression. You must have an instance of the Business Object to pass it to the function. When you drag a Business Object onto a form or process, it creates an instance and names the Business Object. It uses the name as the Business Object definition with a numeric suffix, though you may rename the instance after creating it. When you write an expression in the context of a form or process, the Business Object instances are available using these same names. The following illustrates an Employee Business Object bound to a process. From the Data Access, note the instance name Employees1. You can use this identifier in the expression to nominate the instance to pass to the script. MBPM Designer User's Guide 333 Chapter 31 Introduction to Scripting Passing Form Local and Process Business Objects The same technique works for Process Business Objects and the Local Business Objects of a form. However, for these types of Business Object you must identify the Business Object type using a slightly different format. You cannot identify the Business Object type be by its name alone. In this case, use <Form name>.Declarations.Local to identify the Local Business Object of a form. Use <Process name>.Declarations.<Process name>Data to identify a Process Business Object. 334 MBPM Designer User's Guide Chapter 31 Introduction to Scripting The following snippets illustrate these naming conventions for a form called Form1 and a process called Process1. public static void DoSomethingWithLocalData(Form1.Declarations.Local data) { // Use the business object data } public static void DoSomethingWithProcessData (Process1.Declarations.Process1data data) { // Use the business object data } Accessing an instance of these Business Objects when calling the functions behaves the same way as for any other type of Business Object. Passing a Form or Process Context There are a number of other ways to pass a Business Object instance into a script. The main method is to pass an instance of a form or process context and to use the Business Object instances that are associated with them. The following code snippets illustrate functions written to handle a notional Form1 and Process1. This also illustrates accessing Business Object instances from the context object. The identifiers for these objects are the same as the instance names in the BPM project. public static void DoSomethingWithLocalData(Form1 form) // Get a text value from a text variable on the form’s Local data Text t = form.Local.TextVariable; public static void DoSomethingWithProcessData(Process1 process) { Text t = process.Process1Data.eFolderid; Text name = process.Employees1.FirstName; } You must again consider how to obtain an instance of the form or process context to pass it to the function at its entry point. Use the identifier Current for the current context in expressions in both forms and processes. Using Current in an expression on a form returns the form instance. It also returns the process instance when used in an expression on a process. Process Runtime API Reference For process developers wishing to manipulate runtime form content and behavior see the MBPM Process Runtime API Reference in the Appendix. Using the type information that the API reference provides, you can write generalized server script code that operates on instances of all available form field and grid column types. MBPM Designer User's Guide 335 Chapter 31 Introduction to Scripting Using the Business Object’s Refresh Method The Business Object Refresh() method enables a Query Business Object to reload its content by retrieving data from the database. Example Consider a 'Code Activity' that retrieves data into a Grid from a Query Business Object bound to a database table, and then subsequently adds data to the database table. For improved performance, the Query Business Object does not refresh itself by making a call to the database and displaying the newly added data on the Grid. However, if you need to reload the Query Business Object, use the Business Object's Refresh() method as follows: UsersListData1.Refresh(); // UsersListData1 is a Query Business Object Access selected row of Grid To access a selected row of a Grid from the server side, you can use the following: Fields.GridName.SelectedRow["columnName"].ToString() where GridName represents name of Grid and ColumnName represents name of Column. Using the Business Object in Server Script Once the scripted function with access to a business object exists, you can start to use it. This section details some of the functions that you can perform on the Business Object. It covers the following topics: l Reading Variable values. l Setting Variable values. l Reading a DataSet. l Writing a DataSet. l Controlling the Parameters of a Business Object. Reading Variable values To read a variable name from a Business Object read the property of the same name as the variable. Text t = businessObject1.TextVariable; Depending on how your Business Object is set up, and in particular how it is filtered, there may be more than one row of data. In scripted code you can affect which row is selected by assigning to the CurrentIndex property of the Business Object. Read the Count property to determine the number of rows available. The CurrentIndex property is zero-based. Integer count = businessObject1.Count; // Gets the number of rows businessObject1.CurrentIndex = count-1; // Moves to the last row 336 MBPM Designer User's Guide Chapter 31 Introduction to Scripting Setting Variable values As well as reading the values of a Business Object, it is possible to assign values to the variables on the Business Object. Attempting to do this on read-only Business Objects results in a compilation error which prevents validation and deployment. businessObject1.TextVariable = "hello world"; The new value caches on the current folder and flushes to the underlying data store when the current action commits. Reading a DataSet You can get a .NET DataSet object to represent the Business Object's data. This is especially useful for integrating with other components which understand the standard data construct. To get a DataSet object call the Read() method of any Business Object. DataSet ds = businessObject1.Read(); // Gets a standard .NET DataSet object Writing a DataSet It is also possible to assign changes to a Business Object using a DataSet which captures updates. You can do this by writing the updated DataSet to the Business Object using the Write method. DataSet ds = businessObject1.Read(); // Gets a standarad .NET DataSet object /* Make changes to ds */ businessObject1.Write(ds); // Write the changes back to the business object These changes are cached for the current folder instance and are written to the underlying data store when the current action commits. Controlling the Parameters of a Business Object As well as the variables of the Business Object, the parameters are also available as properties. Integer id = businessObject1.IdParameter; However, in the BPM model, Business Object parameters are declarative expressions that are evaluated on demand, rather than values. This means that it is not possible to assign a value to a Business Object parameter in server script. This is, however, still a useful capability to have. It allows the user to write script that uses a Business Object for a lookup based on a filtering parameter. To achieve this type of control over a Business Object parameter in server script, you must bind the parameter to a temporary variable and then assign values to this variable. The technique is illustrated as follows. MBPM Designer User's Guide 337 Chapter 31 Introduction to Scripting l l On the local Business Object (or other temporary store), add a variable for the parameter. On the Business Object that you want to affect, bind the parameter to the variable. You can now assign a value to the local variable to affect the parameter of the Business Object, and therefore the data it returns. public static string GetEmployeeSurname(Form1 form, integer empId) { form.Local.EmployeeId = empID; return form.Employees1.Surname; } 338 MBPM Designer User's Guide Chapter 31 Introduction to Scripting In addition, a form field bound to this same variable allows the end user to control the parameter of a Business Object in the form. Promote Reusable Server-side scripts You can promote Static properties and methods. You can also make them accessible in server side scripts for reuse through the Expression builder and the Visual Toolbox. To achieve this, you need to apply the relevant promotion attributes. One of these attributes is the Promote() attribute, which takes promotion target as an argument. The promotion target argument determines what type of promotion to apply to the method or property. The following table describes the possible values for these arguments. Argument Value Description ExpressionBuilder Causes the method or property to appear on the expression builder ribbon. VisualToolbox Promotes the static methods as a visual activity. Using this on a property has no effect. When you use this as a method, you create a new visual activity with the method parameters displayed as properties. You can write expressions or use any specialized editors associated with the properties to define an expression to fulfill the parameter. None Passing this value to the promote() attribute has no effect. No methods or properties are promoted. All Passing this value to the promote() attribute causes promotion to both the expression builder ribbon and the visual toolbox. If the attributed member is a property, it is only promoted to the expression builder. MBPM Designer User's Guide 339 Chapter 31 Introduction to Scripting Argument Value Description Default This property promotes any method or property to the expression builder and any method as a visual activity. Container Passing this value to the promote() attribute allows the creation of sub-menus to new categories in the expression builder ribbon. If you intend to display the methods and properties as sub-menus, you should use the regular promotion attributes listed previously. You must, however, set their category values to the same value assigned to the container type, otherwise the items are displayed at the top level instead of appearing as sub items. Promotion Attributes You can add the following attributes to provide additional metadata for use by the Designer. This also helps to improve the presentation of the promoted properties and methods. l Category – Groups promoted methods and properties. l Description – Describes what the promoted methods and properties do. l Alias – Names the methods and properties. Default values are provided. Example [Promote(PromotionTargets.ExpressionBuilder)] Category [Category("Folder Information")] You can include a method or property in multiple groups on the expression builder ribbon using the '|' delimiter with the Category attribute. The following illustrates this: [Category("UserCategory|TextFunctions|UserAndRoles")] public static object SampleMethod (string name) 340 MBPM Designer User's Guide Chapter 31 Introduction to Scripting As the previous example indicates, you can include the method or property in existing categories by specifying the name of the standard category. The following lists further examples of standard categories: l Document l NumericFunctions l Logical l TextFunctions l DateTimeFunctions l MetastormDatabase l Directory l BusinessObject l UsersAndRoles l FolderInformation Alias and Description [Alias("Get Stage Priority")] [Description("Returns the priority (order sequence number) of the given stage for a given process.")] public static Integer GetStagePriority( [Alias("Process Name")] [Description("The name of the process the stage is located within.")] Text ProcessName, [Alias("Stage Name")] [Description("The name of the stage of which the priority should be returned.")] Text StageName) The following illustrates the use of the attribute values in the Designer UI. MBPM Designer User's Guide 341 Chapter 31 Introduction to Scripting Note: You cannot use ProcessData Business objects as parameters in functions promoted to the Visual Toolbox. Use of ProcessData Business object in visual scripts prevents deployment of the process. However, this is not the case when using them with the Expression Builder. Client-Side Scripting Either VBScript or JScript can be used as client side scripting languages. Note: JScript is the recommended scripting language as this is the most portable across different browsers. Please refer to the MBPM Web Client User's Guide for specific web browser limitations. Client scripts cannot access MBPM functions and variables directly. Client-side scripts allow a form designer to create custom form functionality by manipulating form properties and form fields. Client-side scripts can either be created as part of a form/field event (i.e. When Button Pressed) or as a standalone script that can be reused within multiple events. To create a standalone client-side script: l On the Home ribbon tab, Components group, click on the ClientScript button. A default Client Script is displayed. The Script Editor provides the following features: l Intellisense l Code indenting l Code commenting l Code bookmarking l Code information displaying 342 MBPM Designer User's Guide Chapter 31 Introduction to Scripting l Script validation l Keywords color coding Features GetField & SetField To provide access to field values, there are two methods for client scripting: getField and setField. function getField(FieldName : string; Attribute : string) : string; procedure setField(FieldName : string; Attribute : string; Value : string); These methods provide access to field values and can be called from JScript or VBScript. When using SetField, the attribute parameter is currently ignored, but will provide access to other field attributes in the future. The eworkSetField and eworkGetField functions are also available to support backward compatibility. Limitations Client-side scripts have no access to MBPM functions. You cannot use the setField and getField client-side scripting methods with Grid or Clip form objects, due to the nature of these objects. SetField Syntax The following table shows required values and examples for each supported control type. Control Accepted Value(s) Example Checkbox Selects the check box if the value matches one of the following: JScript : l checked l check l true l 1 Values are not case-sensitive. All other values de-select the check box. Listbox Comma-separated list or for JScript, a JavaScript array can be used. setField ("Check1", "", "true"); VBScript : setField "Check1", "", “true” JScript : setField("List1", "", "Option2, Option3"); VBScript : setField "List1", "", "Option1, MBPM Designer User's Guide 343 Chapter 31 Introduction to Scripting Option2" Dropdown A string that matches one of the options. JScript : setField ("Dropdown1", "", "Option2"); VBScript: setField "Dropdown1", "", "Option3" DateTime A Date object. JScript : setField ("DateTime1", "", "1967-0707T01:01:01"); VBScript: setField "DateTime1", "", "1971-1117T01:01:01" Number A floating point number. JScript : setField ("Number1", "", "1234"); VBScript: setField "Number1", "", "4321" Currency A floating point number. JScript : setField ("Currency1", "", "12.34"); VBScript: setField "Currency1", "", "43.21" Radiogroup The name of one of the options in the radio group. JScript : setField 344 MBPM Designer User's Guide Chapter 31 Introduction to Scripting ("Radiogroup1", "", "Option2"); VBScript: setField "Radiogroup1", "", "Option3" Signature A text value. JScript : setField ("Signature1", "", "Sample text"); VBScript: setField "Signature1", "", "Sample text" Memo A text value. JScript : setField ("Memo1", "", "Sample text"); VBScript: setField "Memo1", "", "Sample text" Text A text value. JScript : setField("Text1", "", "Sample text"); VBScript: setField "Text1", "", "Sample text" Rich Text A text value. This can include HTML tags. JScript : setField ("RichText1", "", "<h1>Sample text</h1> <br>"); VBScript: setField "Text1", "", "<h1>Sample MBPM Designer User's Guide 345 Chapter 31 Introduction to Scripting text</h1> <br>" Person A valid user name from the list of users displayed in the Users tab of the MBPM Administrative Tools. Note: The name that is displayed following getField and setField operations is the distinguished name of the user. (The value that is used to get and set, however, is the user name). JScript : setField ("Person1", "", "User1"); VBScript: setField "Person1", "", "User1" Note: For drop-down and list controls with Name/Value pairs, the setField function expects the value to be a parameter to the function to correctly update the field. For example: Consider a list containing key value pairs that have been defined as follows: ListItems(Pair("True",1),Pair("False",0)) To set the value of Dropdown1 to "True", use setField as follows: setField("Dropdown1", "", 1); You can use the value stored in 'selection' to set the value of another field. For example: setField("txtName","",selection); GetField Syntax The following table shows the attribute names, associated field types, return values, and examples for the getField method. All examples are valid for JScript and VBScript. Note: Attributes are not case sensitive. Attribute Field Type Return Values Example [empty], no parameter All The field value. getField (“Text1”) In the case of drop-down and list without Name/Value pairs it similarly returns the value. getField (“Text1”, null) Note: ( name and value are the same in this scenario). For drop-down and listbox controls with a Name/Value pair, it returns the value. index Dropdown Listbox Returns a zero-based selected index for drop-down, listbox, Radiogroup and radiogroup controls. getField (“RadioGroup1”, “index”) Returns -1 for all other field types. 346 MBPM Designer User's Guide Chapter 31 Introduction to Scripting fieldtype Label A string is returned (see following list). “Label” Image “Image” Rule “Rule” Button “Button” Edit “Edit” Date “DateTime” NumEdit “Numeric” Combobox “Combobox” Radiogroup “Radiogroup” Checkbox “Checkbox” Memo “Memo” Attachment “Attachment” Grid “Grid” Listbox “Listbox” Password “Password” Signature “Signature” DateTime “DateTime” Time “DateTime” Currency “Currency” Status “Status” DynamicUrl “DynamicUrl” getField (“Currency1”, “fieldtype”) AttachmentGrid “AttachmentGrid” fieldid Person “Person” Invalid Control “Unknown” All MBPM Designer User's Guide Returns the field tab index. getField (“DateTime1”, “fieldid”) 347 Chapter 31 Introduction to Scripting fieldname All Returns the field name. getField (“Dropdown1”, “fieldname”) style All Returns one of the following values to represent the field usage: getField(“List1”, “style”) top All l Hidden l ReadOnly l Mandatory l Optional Returns the position of the object relative to the top of the next positioned object in the document hierarchy. getField (“Memo1”, “top”) left All Returns the position of the object relative to the left edge of the next positioned object in the document hierarchy. getField (“Number1”, “left”) width All Returns the width of the object. getField (“Radio1”, “width”) height All Returns the height of the object. getField (“Signature1”, “height”) caption All Returns the field caption. getField (“Text1”, “caption”) status Status Returns one of the following values to represent the current state of a status field. getField (“Status1”, “status”) Items Dropdown ListBox l SAFETY l WARNING l DANGER Returns a comma-separated list of options. getField (“Dropdown1”, “Items”) Returns the name element of a Name/Value pair. getField(“List1”, “displayName”) RadioGroup displayName Dropdown Listbox 348 MBPM Designer User's Guide Chapter 31 Introduction to Scripting value All Returns the value. Returns the value element of the Name/Value pair for listbox and dropdown controls. getField ("List1","value”) getField ("List1","”) Note: Avoid using invalid attributes. When using invalid attributes, the current field value is returned as a string. However, this may cause unexpected behavior if you introduce the attribute in the future. For example, if the specified field exists, it returns a value: var selection = getField("Dropdown1","AnyNonExistantorInvalidAttribute"); If the specified field does not exist, it returns an empty string. var selection = getField("FieldNameNonExistant","value"); Grid Functions The following client side script functions are provided specially for grids: function getCurrentRow(Grid : string) : number; function getCurrentCol(Grid : string) : number; function getRowCount(Grid : string) : number; function getCell(Grid : string; Col : number; Row: number) : string; function setCell(Grid : string; Col : number; Row: number; Value : string); getCurrentRow This method returns the index of the selected row in the underlying dataset. In the cell exit event handler, it returns the row that has just been left, rather than the one being entered. This index is zero-based and is based on the whole dataset rather than the current displayed page. Note: In releases prior to 7.5, calls to eWorkGetCell (using the result from eWorkGetCurrentRow) were not returning correct data. To resolve this problem, eWorkGetCurrentRow has been changed in Release 7.5 to return an index based on the whole dataset rather than the current displayed page. getCurrentCol This method returns the index of the currently selected column. In the cell exit event handler, it returns the column that has just been left, rather than the one being entered. This index is zero-based. getRowCount This method returns the number of rows in the grid, excluding the header. getCell This method returns the string value of the cell specified by the zero-based Col and Row. MBPM Designer User's Guide 349 Chapter 31 Introduction to Scripting setCell This method sets the value of the cell specified by the zero-based Col and Row. Note: Read-only grids viewed in the Web Client can be paged. In the case of a paged grid, the Row Count refers to the number of rows in the grid as a whole rather than number of rows in the current page. In the same way, the Row index refers to the index row’s index in the grid as a whole, not in the current page. showSubmit and showCancel Functions The following client-side script functions are provided for showing and hiding the Submit and Cancel buttons on a form: procedure showSubmit(Visible : boolean); procedure showCancel(Visible : boolean); showSubmit This function provides the ability to show or hide the Submit button. For example, the Submit button could be hidden until valid data has been entered in the form. showCancel This function provides the ability to show or hide the Cancel button. submitForm, cancelForm and buttonClick Functions The functions listed in the following table provide the ability to customize form behavior. Function Example usage Description Replicates Action submitForm (Event Handler) On field exit 'submitForm()' Use this function to cause the form to submit from the script. Clicking the Submit button. Use this function to cause the cancellation of the form from the script. Clicking the Cancel butt- cancelForm (Event Handler) On field entry 'cancelForm()' 350 MBPM Designer User's Guide Chapter 31 Introduction to Scripting Function Example usage Description Replicates Action on. buttonClick (Event Handler) When button pressed - 'buttonClick ("commandbutton")' MBPM Designer User's Guide Use this function to provide the ability to programmatically click any button on a form. Clicking a Command button. 351 352 MBPM Designer User's Guide Chapter 32 Introduction to Flags Chapter 32 Introduction to Flags Flags are a type of triggering mechanism used by processes to allow communication: l From one process to one or more other processes within the same project. l From a process in one project to one or more other processes in a different project. Flags should be used in conjunction with Flag Actions to trigger updates to one or more existing folders, or to create new folders (as in the case of Sub-processes). When a flag is raised, one or more data items may also be passed to each folder that is waiting for that flag. This data is known as Flag Data. Flags and the flag data they pass are defined through the Flags list. Flags may be raised within a process (internal flags), or by the use of commands external to the process (external flags). When a flag is associated with an action, the specified event is triggered when a folder meets the process's criteria. It is also possible, although much less common, to create a formula to raise a flag from a stage. Flags may be associated with the appropriate action in the following ways: l Raised through an action’s Folder Which Must Raise the Flag property. l Raised through formulas in the Only Start Action if property. l Raised automatically as part of a Sub-process stage and used to display another process, but with no sharing of data. Creating a Flag To create a Flag: 1. On the Home ribbon tab, Components group, click on the Flag button. The New Flag tab is displayed. When you create a new flag, its data consists of one default parameter called Name, whose value is the name of the flag. 2. Click on the blank row to add a new row. A new flag (with the name Flag1) is created in a tab in the Designer. MBPM Designer User's Guide 353 Chapter 32 Introduction to Flags 3. In the Description field, enter a brief description of the flag. The description is useful when you are using several flags in a project or are using the same flag across multiple projects. 4. In the Name field type a name for the parameter. A parameter name cannot be longer than 31 characters, and may only include letters (A-Z or a-z), numbers (0-9), underscores, hyphens. In addition, a parameter name cannot begin with a digit. 5. In the Type field select a flag type from the drop-down list. The options are: Text Check Currency DateTime Memo Integer Real 6. Click the MBPM button > Save. Note: Use unique flag names; flags will affect all deployed processes thus those that unintentionally share a flag name will have unexpected results. Note: The flag name must not just be unique within a project, but also unique across any referenced external projects. If you have a flag defined in the sending process, you need a flag action of the same name defined in the receiving process in order to use the flag to activate a flag action in the receiving process. Raising a Flag After a flag has been defined it can be raised from within a process or from an external application. To raise a flag: 1. Select an action in the process. 2. In the Do this section of Properties pane, click on the Activate Visual Script Eventhandler button associated with either When action started or When action completed. In the Visual Scripting interface, from the flags section of the Activities toolbox, you will find activities for the flags that you have created. 3. To raise a flag, do one of the following: n 354 Drag and drop the Raise a Flag activity from the Commands section of the Activities toolbox in to the Visual Script. This generic approach is analogous to the Raise Flag formula in Version 7 of the Designer. MBPM Designer User's Guide Chapter 32 Introduction to Flags n n n Place a Code Activity from the Visual Scripts toolbox on the Visual Script Editor, double-click the Code Activity, and enter the following: Flags.<<Flag Name>> ("<<Parameter value>>"); Specific flag: This approach is strongly-typed and is the recommended way to raising flags. This can be achieved by dragging and dropping the flag activity for the flag you want to raise at the attachment point. Example syntax for referencing a specific flag would look something like sampleFlagData.MyParameter1 Generic flag: This approach is weakly-typed and will typically be used when it is not possible to access an instance of a flag (for example, when the flag exists outside the project). Example syntax for referencing a generic flag would look something like: sampleFlagData[1] 4. Select the Flag in the Visual Script and set the Flag parameters from the Properties pane. Using eraiseflag.exe to raise a flag from an external application The program eRaiseFlag.exe can be used by any external application or any user to raise a flag outside of MBPM. If you need to raise more than one flag at a time, you can create a .bat file to automate this command line tool. Syntax The syntax for eRaiseFlag.exe is as follows: eRaiseFlag.exe /FlagName:<name> /FlagFolder:<folder id> /FlagData:<flag data> /ServerName:<server name> Switches The following table lists switches used with eRaiseFlag.exe. Switch Example Description /FlagName This switch is required to select eRaiseFlag.exe. This switch defines the name of the flag you want to raise. eRaiseFlag.exe /FlagName:firstname1 This raises the flag named “firstname1.” /FlaeRaiseFlag.exe You may specify a folder in order to move gFolde- /FlagName:firstname1 only that folder. r FlagFolder:0000000000000000000000000000034 This raises the flag “firstname1” and affects only the folder with the folder ID of “0000000000000000000000000000034”. If the folder ID exceeds 31 MBPM Designer User's Guide 355 Chapter 32 Introduction to Flags Switch Example Description characters, errors are displayed and the folder is not moved. /FlagData /FlagName:firstname1 “/FlagData:data1 data2 data3” This raises the flag “firstname1” with three flag data items: “data1,” “data2,” and “data3.” /Serve- eRaiseFlag.exe rName /FlagName:firstname1 /ServerName:metastormbpm This raises the flag “firstname1” on the server named “metastormbpm.” /? eRaiseFlag.exe /? You may define any flag data to be passed along with the flag. If more than one piece of flag data is to be passed they are delimited with tabs. If you are passing multiple amounts of flag data, the entire switch must be encapsulated in double quotes. If you are running eRaiseFlag.exe on a machine other than that of the MBPM Process Engine, you must specify the computer name of the system running the MBPM Process Engine. In order to raise a flag from one machine to another you must have appropriate DCOM rights to the server running the Engine. The syntax of the command may be displayed using the /? option. Receiving Flag Data If a flag passes flag data, the flagged action receives the array of data and can act upon it. Where the flag data is used within the process, its values must be assigned to Custom or Designer Business Objects. The following is an example of consuming flag data: 1. Create a Flag action in your process. 2. Associate the flag that you created with a Flag action using the Flag action Properties pane. 3. On the Extra section of the Properties pane, select the Flag used to invoke this action to allow selection of a previously defined flag from the drop-down list. The Folder tasked with raising the flag option determines which folder must raise the flag for this flagged action to respond. The following table describes the options available: Flag Option Description Any Folder Use this option when the action should be involved 356 MBPM Designer User's Guide Chapter 32 Introduction to Flags Flag Option Description irrespective of which folder raises the flag. This option should always be used for an action that creates a new folder. This Folder This flagged action will only start if the Folder ID in Flag Raiser matches the Folder ID of the folder upon which the flag is acting. This Folder's Parent Use this option in the case of a linked process, when the action should be invoked only as a result of a flag raised by the folder's parent folder. Expression If you choose Expression as your option, an Ellipse button is enabled allowing you to create an expression using the Expression Builder. The expression can be used to dynamically specify the Folder ID that must be listened for. 4. In the Do this section of the Properties pane, click on the Activate Visual Script Eventhandler button associated with When action completed. Associating Flag Data to a Business Object Flag data can be associated to your Business Objects in two main ways. First method: 1. In the Visual Scripting interface, from the Activities toolbox, drag and drop the Code Activity to the attachment point in the Visual Script. 2. Double-click the Code Activity and assign the value of the Flag data to your Business Object. 3. You can assign the values via code, for example: sampleBusinessObject.txt = this.sampleFlagdata.MyParameter1 MBPM Designer User's Guide 357 Chapter 32 Introduction to Flags for the strongly-typed implementation or sampleBusinessObject.txt = this.sampleFlagdata[1] for the weakly-typed implementation where: A Business Object called sampleBusinessObject and a corresponding text control is already defined in your process. SampleFlagdata is the flag that you created in your process. Second Method: 1. In the Visual Scripting interface, from the Activities toolbox, drag and drop the Assign Value(s) Activity to the attachment point in the Visual Script. 2. Double-click the activity to open the Expression Builder. 3. Select the Business Object you wish to assign the Flag Data to, in the image below this is Process1Data.Variable4. 4. Assign the value by selecting the Current Flag Item from the Expression Builder Ribbon and then selecting the relevant parameter. 358 MBPM Designer User's Guide Chapter 33 Introduction to Reports Chapter 33 Introduction to Reports Reports provide the means for business users to display information about the operation of their business processes. The Designer gives you a full range of features for designing reports. Users can run reports in the Web Client interface. Note: Reports do not support multiple Business Objects. Creating a Report To create a new report, on the Home ribbon tab, Components group, click Report. Reports Interface The Designer creates a default report in the main pane and assigns a default name. The reports interface, by default, consists of: l A report filter area l A report detail area MBPM Designer User's Guide 359 Chapter 33 Introduction to Reports In the above screenshot: 1. Represents Filter Area - you can drag and drop filter controls here 2. Represents Report Area - you can drag and drop report controls here Note: If you add several controls to the filtering area of a report and decrease the size of the filter area to display a vertical scroll bar, during deployment, the scroll bars are not visible and instead the controls are displayed on the reporting area. Note: Filters for a report cannot contain duplicate values. Adding new bands You can add more bands to the Report by using the Layout tab of Reporting tools. 360 MBPM Designer User's Guide Chapter 33 Introduction to Reports To add a band: 1. Click the Layout tab under Reporting Tools. 2. Click on the desired band in the Layout tab. Report Group Report Group is a component that allows you to create a grouping of your reports. To create a Report Group: l In the Home tab, Components group, click Report Group. A Report Group is displayed in the Inventory. Also, a tab is displayed in the main pane to set the name, caption, and a default group for your new Report Group. If you select the default report group, then all the new reports that you create will be added to this group. You can use the Grid tools tab to insert, delete, move or delete Report Groups. Moving Reports among Report Groups In the Inventory, you can drag and drop reports between the report groups. Deleting Report Groups In the Inventory, you cannot delete a Report Group without deleting the reports that it holds. Reports Toolbox Report filters and Report controls are added to reports via the Reports Toolbox. The Reports Toolbox will automatically be displayed by default when a report is active in the Designer. To toggle the Toolbox on and off, select the View ribbon tab and click on the Toolbox button. The Report toolbox is divided into four sections: l Default - The Pointer allows you to select a particular report control. l Filter Controls - The controls can be used in the report filter area. l Report Controls - The controls can be used in the report header, detail and footer areas. l Business Objects - The Business Objects can be used in the report filter area. Report Bands A Report Band represents a specific area on a report, which is used to define how to render report controls which belong to it. MBPM Designer User's Guide 361 Chapter 33 Introduction to Reports Except for the Detail band, which is mandatory, bands can be added and deleted from the report. Click on the bands to add it to a report: Report Band Description Top Margin Use this to display auxiliary information, for instance, the report date or any other information required on the top margin of each page. Report Header Located at the beginning of a report. Use this band to display introductory information, for example, a cover page for a report. Page Header Located at the top of every page, below the Report Header band. This band displays page numbers or table headers for a table that continues from the previous page. Group Header Use this for specifying grouping criteria and displaying information at the beginning of a group of records. Group Footer Use this for displaying information at the end of a group of records. Page Footer Located at the bottom of every page, below the Bottom Margin band or Report Footer band. This band displays page numbers or a table footer that continues on the following page. 362 MBPM Designer User's Guide Chapter 33 Introduction to Reports Report Band Description Report Footer Use this to display information once at the end of the report. The report footer can include information such as report summary, grand totals and any other conclusions based on the report. Bottom Margin This displays information on the bottom margin of every page. Report Controls Report controls can be placed in the report area (header, detail and footer areas). They cannot be placed in the filter area. Control Icon Description Chart Inserts a chart into the report. Checkbox Puts a check box on the report. Not user interactive. It just displays a boolean result. Hyperlink Puts a hyperlink on the report. Label Puts a label on the report. PageBreak Inserts a page break into the report. PageInfo Enables the user to add page information to the report. Panel Provides an area into which you can group controls to keep them together. Image Inserts an image into the report. MBPM Designer User's Guide 363 Chapter 33 Introduction to Reports Control Icon Description Memo Inserts a memo filed on the report. Shape Inserts a shape into the report. Grid Puts a table on the report. Report controls and their properties The following tables list all the report controls and their properties. Bottom margin band Property Name Description Color Choose a background color for this band Font Color Choose a font color for this band Height Specify the height, in pixels, of this control. Keep together If set to true, the contents of the entire band will be kept on a single page. Name Specify a unique name to identify this control. This name is not visible at runtime. Notes Use this to enter any specific notes for anyone using this control within the Designer environment. Visible Whether or not this control should be visible. 364 MBPM Designer User's Guide Chapter 33 Introduction to Reports Checkbox Property Name Description Caption Choose a caption for this control. Normally it is the caption which is visible at runtime. Caption alignment Choose the alignment (left, center, right) for the caption the user will see for this control Check State Determines the state of the checkbox Height Specify the height, in pixels, of this control. Keep together If set to true, the contents of the control will be kept on a single page Name Specify a unique name to identify this control. This name is not visible at runtime. Notes Use this to enter any specific notes for anyone using this control within the Designer environment. Position from left The position (in pixels) of this control, from the left hand side of the process design surface Position from top The position (in pixels) of this control, from the top edge of the report area Variable select a Business Object variable that will be used to populate the checkbox Visible Whether or not this control should be visible. MBPM Designer User's Guide 365 Chapter 33 Introduction to Reports Property Name Description Width Specify the width, in pixels, of this control Word wrap Wrap text in this control Detail band Property Name Description Color Choose a background color for this band Font Color Choose a font color for this band Height Specify the height, in pixels, of this control. Keep together If set to true, the contents of the entire band will be kept on a single page. The Keep Together property specifies whether the contents of the band can be horizontally split across pages. In other words, if the content of the band is larger than the remaining space on the page, this property specifies whether the band's content should be split across the current page and the next page, or whether the band will be printed in its entirety on the next page. This property is in effect only when a band's contents don't fit onto the current page. If the band still can't be printed in its entirety on the next page (there isn't enough space to keep all the band contents together), then it will be split as though this property's value is set to false. Name 366 Specify a unique name to identify this control. This name is not visible at run-time. MBPM Designer User's Guide Chapter 33 Introduction to Reports Property Name Description Notes Use this to enter any specific notes for anyone using this control within the Designer environment. Visible Whether or not this control should be visible. Grid Property Name Description Border color Choose a border color for this section Border color Choose a border color for all rows Border color Choose a border color for even rows Border color Choose a border color for odd rows Border width Border width for this section Border Width Select the width for the border for all rows Border Width Select the width for the border for even rows Border Width Select the width for the border for odd rows Borders Choose what borders should be displayed Borders Select what borders should be displayed for all rows Borders Select what borders should be displayed for even rows Borders Select what borders should be displayed for odd rows MBPM Designer User's Guide 367 Chapter 33 Introduction to Reports Property Name Description Bottom Select the size of the padding to the bottom for all rows Bottom Select the size of the padding to the bottom for even rows Bottom Select the size of the padding to the bottom for odd rows Color Choose a background color for this control Color Choose a background color for all rows Color Choose a background color for even rows Color Choose a background color for odd rows Even Style Select an existing style or create a new style Font Choose a font for the grid Font Choose a font for all rows Font Choose a font for even rows Font Choose a font for odd rows Font color Choose a font color for this grid Font Color Choose a font color for all rows Font Color Choose a font color for even rows Font Color Choose a font color for odd rows Height Specify the height, in pixels, of this control. Keep together If set to true, the contents of the control will be kept on a single page. This property is overridden to 368 MBPM Designer User's Guide Chapter 33 Introduction to Reports Property Name Description change its default value to false. Use this property to specify whether the contents of the table can be horizontally split across pages, or whether the table (all table rows) will be entirely printed on the next page. Left Select the size of the padding to the left for all rows Left Select the size of the padding to the left for even rows Left Select the size of the padding to the left for odd rows Name Specify a unique name to identify the style Name Specify a unique name to identify the style Name Specify a unique name to identify the style Name Specify a unique name to identify this control. This name is not visible at run-time. Notes Use this to enter any specific notes for anyone using this control within the Designer environment. Odd Style Select an existing style or create a new style Padding Parent property for selecting the size of padding at the left, right, top, bottom of all rows Padding Parent property for selecting the size of padding at the left, right, top, bottom of even rows Padding Parent property for selecting the size of padding at the left, right, top, MBPM Designer User's Guide 369 Chapter 33 Introduction to Reports Property Name Description bottom of odd rows Position from left The position (in pixels) of this control, from the left hand side of the process design surface Position from top The position (in pixels) of this control, from the top edge of the report area Right Select the size of the padding to the right for all rows Right Select the size of the padding to the right for even rows Right Select the size of the padding to the right for odd rows Style Select an existing style or create a new style Styles Parent property for the grid styles Text Select the alignment to be used for alignment all rows Text Select the alignment to be used for alignment even rows Text Select the alignment to be used for alignment odd rows Top Select the size of the padding to the top for all rows Top Select the size of the padding to the top for even rows Top Select the size of the padding to the top for odd rows Visible Whether or not this control should be visible. Width Specify the width, in pixels, of this control 370 MBPM Designer User's Guide Chapter 33 Introduction to Reports Grid Cell Property Name Description Border color Choose a border color for this section Border width Choose a border width for this section Borders Choose what borders should be displayed Caption Choose a caption for this control. Normally it is the caption which is visible at runtime. Color Choose a background color for this cell Font Color Choose a font color for this grid cell Height Specify the height, in pixels, of this control. Keep together If set to true, the contents of the control will be kept on a single page Name Specify a unique name to identify this control. This name is not visible at runtime. Visible Whether or not this control should be visible. Width Specify the width, in pixels, of this control Word wrap Wrap text in this control Note that you cannot bind an image directly to a grid cell. However, you can add the image control to the Grid Cell and bind the picture variable to the Image control within the Grid cell. MBPM Designer User's Guide 371 Chapter 33 Introduction to Reports Grid Row Property Name Description Border color Choose a border color for this section Border width Choose a border width for this section Borders Choose what borders should be displayed Color Choose a background color for this row Font Color Choose a font color for this grid row Height Specify the height, in pixels, of this control. Keep together If set to true, the contents of the control will be kept on a single page Name Specify a unique name to identify this control. This name is not visible at runtime. Visible Whether or not this control should be visible. Width Specify the width, in pixels, of this control Grid footer band Property Name Description Color Choose a background color for this band Font Color Choose a font color for this band Height Specify the height, in pixels, of this control. 372 MBPM Designer User's Guide Chapter 33 Introduction to Reports Property Name Description Keep together If set to true, the contents of the entire band will be kept on a single page Name Specify a unique name to identify this control. This name is not visible at runtime. Notes Use this to enter any specific notes for anyone using this control within the Designer environment. Print at bottom Specifies whether the group footer should be printed at the bottom of the page or immediately after the last group's details Repeat every page Specifies whether the group footer should be repeated on every page Visible Whether or not this control should be visible. Grid header band Property Name Description Color Choose a background color for this band Font Color Choose a font color for this band Height Specify the height, in pixels, of this control. Keep together If set to true, the contents of the entire band will be kept on a single page Name Specify a unique name to identify this control. This MBPM Designer User's Guide 373 Chapter 33 Introduction to Reports Property Name Description name is not visible at runtime. Notes Use this to enter any specific notes for anyone using this control within the Designer environment. Repeat every page Specifies whether the group header should be repeated on every page Visible Whether or not this control should be visible. Hyperlink Property Name Description Name Specify a unique name to identify this control. This name is not visible at runtime. Caption Choose a caption for this control. It is the caption which is visible at runtime. Position from left The position (in pixels) of this control, from the left hand side of the process design surface Position from top The position (in pixels) of this control, from the top edge of the report area Height Specify the height, in pixels, of this control. Width Specify the width, in pixels, of this control. Hyperlink type You can set the hyperlink type to one of the following: l 374 Dynamic MBPM Designer User's Guide Chapter 33 Introduction to Reports Property Name Description If you choose Dynamic, following additional properties are displayed: 1. TargetURL 2. Variable TargetURL: Click on the ellipsis of TargetURL.’ You can set prefix and suffix values here. You can enter static text as a prefix and point to a Business Object item as a suffix. All the variables for the Business Object bound to the Report are available under the Business Object Item drop-down. Variable: Click on the drop-down and select the variables of the Business Object associated with the Report. l Open existing folder If you choose to open an existing folder, an additional property is displayed: 1. FolderID 2. Variable FolderID: You can click in the dropdown containing the variables for the Business Object bound to the Report. This is the FolderID that will be opened by the hyperlink. Variable: Click on the drop-down and MBPM Designer User's Guide 375 Chapter 33 Introduction to Reports Property Name Description select the variables of the Business Object associated with the Report. l Open report If you choose open a report, the following additional properties are displayed: Report Group Report Name Parameters For the Report Group property, an editable dropdown is displayed. Here you can either use the drop-down to select the report groups within the project or manually type in the report group that is outside of the project. For the Report Name property, an editable dropdown is displayed. Here you can either use the drop-down to select the report names within the project or manually type in the report name that is outside of the project. For the Parameters property, you can open a dialog where the parameters and their values can be specified. Here you can select a field name of the Report identified using the Report Group and Report Name. You can also type in the name of a field as the parameter name. For every parameter name 376 MBPM Designer User's Guide Chapter 33 Introduction to Reports Property Name Description specified, you can either select a Business Object variable (from the Business Object bound to the Report) or can type in a static value. l Static If you choose Static, the following additional property is displayed: TargetURL Enter a static URL in the TargetURL property. For example: http://www.opentext.com. Keep in mind the following: l l MBPM Designer User's Guide If loading a report from a hyperlink, the report always loads with what is defined in On load property of the report regardless of what parameters have been passed from the hyperlink. An If/Else activity can be used (for On Load property of the Report which will be referenced) to confirm if report's parameters have been passed from the hyperlink. In IE7.0, an error message about hyperlink being too long is displayed if you pass too many parameters. This error does not appear when using IE8 or Firefox. 377 Chapter 33 Introduction to Reports Property Name Description Target URL This field is displayed when Static or Dynamic is chosen as the Hyperlink type. If Static is chosen, enter the URL that should be displayed in this field when Web Client user clicks on it. If Dynamic is chosen, click on the ellipsis of TargetURL. You can set prefix and suffix values here. You can enter static text as a prefix and point to a Business Object item as a suffix. All the variables for the Business Object bound to the Report are available under the Business Object Item drop-down. Font Choose a font for this control. Font Color Choose a font color from custom and Web types for this control. Visible Whether or not this control should be visible. Variable Select a Business Object variable that will be used to populate the checkbox. Keep together If set to true, the contents of the control will be kept on a single page. Format Specifies how the contents should be formatted. Summary function Selecting this option enables the following 378 MBPM Designer User's Guide Chapter 33 Introduction to Reports Property Name Description fields: Applied to: Select from Report, Group, or Page. Function: Select from a list of the available functions. Ignore Null Values: Select the option to ignore null values while computing the selected function. Notes Use this to enter any specific notes for anyone using this control within the Designer environment. Image Property Name Description Border color Choose a border color for this section Border width Choose a border width for this section Borders Choose what borders should be displayed Height Specify the height, in pixels, of this control. Name Specify a unique name to identify this control. This name is not visible at runtime. Notes Use this to enter any specific notes for anyone using this control within the Designer environment. Picture Choose a graphic for this image control Position from left The position (in pixels) of this control, from the left MBPM Designer User's Guide 379 Chapter 33 Introduction to Reports Property Name Description hand side of the process design surface Position from top The position (in pixels) of this control, from the top edge of the report area Width Specify the width, in pixels, of this control Label Property Name Description Caption Choose a caption for this control. Normally it is the caption which is visible at runtime. Font Choose a font for this control Height Specify the height, in pixels, of this control. Keep together If set to true, the contents of the control will be kept on a single page Name Specify a unique name to identify this control. This name is not visible at runtime. Notes Use this to enter any specific notes for anyone using this control within the Designer environment. Position from left The position (in pixels) of this control, from the left hand side of the process design surface Position from top The position (in pixels) of this control, from the top edge of the report area 380 MBPM Designer User's Guide Chapter 33 Introduction to Reports Property Name Description Variable select a Business Object variable that will be used to populate the checkbox Visible Whether or not this control should be visible. Width Specify the width, in pixels, of this control Memo Property Name Description Caption Choose a caption for this control. Normally it is the caption which is visible at runtime. Color Choose a background color for this control Font Color Choose a font color for this memo Height Specify the height, in pixels, of this control. Keep together If set to true, the contents of the control will be kept on a single page Lines Lists the value populating each line of the memo Name Specify a unique name to identify this control. This name is not visible at runtime. Notes Use this to enter any specific notes for anyone using this control within the Designer environment. Position from left The position (in pixels) of this control, from the left hand side of the process MBPM Designer User's Guide 381 Chapter 33 Introduction to Reports Property Name Description design surface Position from top The position (in pixels) of this control, from the top edge of the report area Variable select a Business Object variable that will be used to populate the checkbox Visible Whether or not this control should be visible. Width Specify the width, in pixels, of this control Native Report Property Name Description Bottom Select the size of the bottom margin Business Object Select the Business Object to be used for the report Color Choose a background color for this control Font Choose a font for this watermark Font Color Choose a font color Height Specify the height, in pixels, of this control. Image Select an image for the watermark Image Align Specify how the image should be aligned Image Tiling Select whether the image should be tiled Left Select the size of the left margin 382 MBPM Designer User's Guide Chapter 33 Introduction to Reports Property Name Description Margins Parent property listing the margins of the bottom, top, left, right of the report Name Specify a unique name to identify this control. This name is not visible at runtime. Notes Use this to enter any specific notes for anyone using this control within the Designer environment. Orientation Choose the orientation of the report Page height Sets the height of the printed page Page width Sets the width of the printed page Paper kind Specify the paper format that will be used for printing. Paper name Specify the name of the custom paper which is used in the printer that the document is going to be printed on Printer name Specify the name of the printer to use when printing the report Right Select the size of the right margin Size Parent property for Width and Height Text Specify the text to be displayed in the watermark Text alignment Choose the alignment (left, MBPM Designer User's Guide 383 Chapter 33 Introduction to Reports Property Name Description center, right) for the caption the user will see for this control Top Select the size of the top margin Visible Whether or not this control should be visible. Watermark Use a watermark Width Specify the width, in pixels, of this control Page break Property Name Description Name Specify a unique name to identify this control. This name is not visible at runtime. Notes Use this to enter any specific notes for anyone using this control within the Designer environment. Position from top The position (in pixels) of this control, from the top edge of the report area Page footer band Property Name Description Color Choose a background color for this control Font Color Choose a font color for this band Height Specify the height, in pixels, of this control. Keep together If set to true, the contents 384 MBPM Designer User's Guide Chapter 33 Introduction to Reports Property Name Description of the entire band will be kept on a single page Name Specify a unique name to identify this control. This name is not visible at runtime. Notes Use this to enter any specific notes for anyone using this control within the Designer environment. Visible Whether or not this control should be visible. Page header band Property Name Description Color Choose a background color for this control Font Color Choose a font color for this band Height Specify the height, in pixels, of this control. Keep together If set to true, the contents of the entire band will be kept on a single page Name Specify a unique name to identify this control. This name is not visible at runtime. Notes Use this to enter any specific notes for anyone using this control within the Designer environment. Visible Whether or not this control should be visible. MBPM Designer User's Guide 385 Chapter 33 Introduction to Reports Page Info Property Name Description Alignment Choose the alignment (left, center, right) for the caption the user will see for this control Color Choose a background color for this control Format Apply a format to the result (eg dd/mmm/yy, and so on) Height Specify the height, in pixels, of this control. Name Specify a unique name to identify this control. This name is not visible at runtime. Notes Use this to enter any specific notes for anyone using this control within the Designer environment. Page Information Specify what page information must be displayed Position from left The position (in pixels) of this control, from the left hand side of the process design surface Position from top The position (in pixels) of this control, from the top edge of the report area Start Page Number Defines the number to be used as the starting number Visible Whether or not this control should be visible. Width Specify the width, in pixels, of this control 386 MBPM Designer User's Guide Chapter 33 Introduction to Reports Panel Property Name Description Color Choose a background color for this control Height Specify the height, in pixels, of this control. Keep together If set to true, the contents of the control will be kept on a single page Name Specify a unique name to identify this control. This name is not visible at runtime. Notes Use this to enter any specific notes for anyone using this control within the Designer environment. Position from left The position (in pixels) of this control, from the left hand side of the process design surface Position from top The position (in pixels) of this control, from the top edge of the report area Visible Whether or not this control should be visible. Width Specify the width, in pixels, of this control Report Filter Area Property Name Description Caption Choose a caption for this control. Normally it is the caption which is visible at runtime. Client extensions The field is included only MBPM Designer User's Guide 387 Chapter 33 Introduction to Reports Property Name Description for backwards compatibility. Color Choose a background color for this report filter area Description Enter a description for this control Font Choose a font for this control Font Color Choose a font color for this filter area Height Specify the height, in pixels, of this control. Name Specify a unique name to identify this control. This name is not visible at runtime. Notes Use this to enter any specific notes for anyone using this control within the Designer environment. On cancel Do this when the filter is cancelled On load Do this when the report loads On submission Do this when the filter is submitted Restrict viewing to ... Specify the roles that can view this report. When user exits filter Use this field to enter a visual script that is run when the user exits the filter When user loads filter Use this field to enter a visual script that is run when the filter is loaded 388 MBPM Designer User's Guide Chapter 33 Introduction to Reports Property Name Description Width Specify the width, in pixels, of this control Report footer band Property Name Description Color Choose a background color for this band Font Color Choose a font color for this band Height Specify the height, in pixels, of this control. Keep together If set to true, the contents of the entire band will be kept on a single page Name Specify a unique name to identify this control. This name is not visible at runtime. Notes Use this to enter any specific notes for anyone using this control within the Designer environment. Visible Whether or not this control should be visible. Report header band Property Name Description Color Choose a background color for this band Font Color Choose a font color for this band Height Specify the height, in pixels, of this control. Keep together If set to true, the contents MBPM Designer User's Guide 389 Chapter 33 Introduction to Reports Property Name Description of the entire band will be kept on a single page Name Specify a unique name to identify this control. This name is not visible at runtime. Notes Use this to enter any specific notes for anyone using this control within the Designer environment. Page break Returns a value that determines where to make a page break, in respect to the given band. Visible Whether or not this control should be visible. Shape Property Name Description Angle Defines the angle of the shape Color Choose a background color for this control Fill color Choose a fill color for this shape Height Specify the height, in pixels, of this control. Line Color Foreground color of control Line width Width of the shape's border Name Specify a unique name to identify this control. This name is not visible at runtime. Notes Use this to enter any 390 MBPM Designer User's Guide Chapter 33 Introduction to Reports Property Name Description specific notes for anyone using this control within the Designer environment. Position from left The position (in pixels) of this control, from the left hand side of the process design surface Position from top The position (in pixels) of this control, from the top edge of the report area Shape type Specify the shape type Stretch Defines whether the shape should stretch when a rotation is applied Visible Whether or not this control should be visible. Width Specify the width, in pixels, of this control Top margin band Property Name Description Color Choose a background color for this control Font Color Choose a font color for this band Height Specify the height, in pixels, of this control. Keep together If set to true, the contents of the entire band will be kept on a single page Name Specify a unique name to identify this control. This name is not visible at runtime. Notes Use this to enter any MBPM Designer User's Guide 391 Chapter 33 Introduction to Reports Property Name Description specific notes for anyone using this control within the Designer environment. Visible Whether or not this control should be visible. Filter Controls The Filter controls of the Report Filter toolbox functions the same way as Form controls of the Form Toolbox. Filter controls and their properties The following tables list all the filter controls and their properties. Checkbox Property Name Description Business Object Item Select a Business Object variable as the Parameter value Calculation Specify a calculation to retrieve the parameter value. Caption Choose a caption for this control. Normally it is the caption which is visible at runtime. Caption alignment Choose the alignment (left, center, right) for the caption the user will see for this control Client extensions The field is included only for backwards compatibility. Default action behavior Specify a default action usage status for this control. Field has dependants of its Check this to indicate that 392 MBPM Designer User's Guide Chapter 33 Introduction to Reports Property Name Description own other field(s) on this form are dependent on this field, and it should therefore be updated when any field marked 'field is dependent on another' is changed Field is dependent on another Check this if you want this field to be updated when any field marked 'field has dependents of its own' has been changed Hint Type in the text you want to use to explain to a user how to use this control. Hint text appears when the use rolls or hovers over the control. Name Specify a unique name to identify this control. This name is not visible at runtime. Notes Use this to enter any specific notes for anyone using this control within the Designer environment. On field entry Do this when the control acquires system focus On field exit Do this when system focus moves away Position from left The position (in pixels) of this control, from the left hand side of the report. Position from top The position (in pixels) of this control, from the top edge of the report area Variable select a Business Object variable that will be used MBPM Designer User's Guide 393 Chapter 33 Introduction to Reports Property Name Description to populate the checkbox Visibility depends on Indicates rules for showing the control When changed Use this to create a visual script which is run when this control has been changed Width Specify the width, in pixels, of this control Command button Property Name Description Action name Once you've chosen a process, choose the action to run in that process. Button action Choose the type of operation this button will perform when pressed Caption Choose a caption for this control. Normally it is the caption which is visible at runtime. Client extensions The field is included only for backwards compatibility. Default action be ha vi our Specify a default action usage status for this control. Height Specify the height, in pixels, of this control. Hint Type in the text you want to use to explain to a user how to use this control. Hint text appears when the use rolls or hovers over the control. 394 MBPM Designer User's Guide Chapter 33 Introduction to Reports Property Name Description Name Specify a unique name to identify this control. This name is not visible at runtime. Notes Use this to enter any specific notes for anyone using this control within the Designer environment. Open folder (Folder ID) Choose a specific folder to open when this button is pressed. You can also enter an expression to dynamically choose a particular folder at runtime. Position from left The position (in pixels) of this control, from the left hand side of the report. Position from top The position (in pixels) of this control, from the top edge of the report area Process name Choose a process which has an action you want to run, when this button is pressed. Visibility depends on Indicates rules for showing the control When button pressed Use this field to enter a visual script that is run when the button is pressed When button pressed Do this when the button is clicked Width Specify the width, in pixels, of this control MBPM Designer User's Guide 395 Chapter 33 Introduction to Reports Date/Time Property Name Description Business Object Item select a Business Object variable as the Parameter value Calculation Specify a calculation to retrieve the parameter value. Caption Choose a caption for this control. Normally it is the caption which is visible at runtime. Caption alignment Choose the alignment (left, center, right) for the caption the user will see for this control Client extensions The field is included only for backwards compatibility. Default action be ha vi our Specify a default action usage status for this control. Disable timezone adjustment Choose whether or not to disable time zone adjustment for this control Earliest Use this to define the earliest value that can be entered in this field. Field has dependants of its own Check this to indicate that other field(s) on this form are dependent on this field, and it should therefore be updated when any field marked 'field is dependent on another' is changed Field is dependent on another Check this if you want this field to be updated when 396 MBPM Designer User's Guide Chapter 33 Introduction to Reports Property Name Description any field marked 'field has dependents of its own' has been changed Format Choose whether this field should display a date, a time, or both. Hint Type in the text you want to use to explain to a user how to use this control. Hint text appears when the use rolls or hovers over the control. Latest Choose the latest date and/or time which can be shown in this control Name Specify a unique name to identify this control. This name is not visible at runtime. Notes Use this to enter any specific notes for anyone using this control within the Designer environment. On field entry Do this when the control acquires system focus On field exit Do this when system focus moves away Position from left The position (in pixels) of this control, from the left hand side of the report. Position from top The position (in pixels) of this control, from the top edge of the report area Variable select a Business Object variable that will be used to populate the checkbox Visibility depends on Indicates rules for showing MBPM Designer User's Guide 397 Chapter 33 Introduction to Reports Property Name Description the control When changed Use this to create a visual script which is run when this control has been changed Width Specify the width, in pixels, of this control Dropdown Property Name Description Business Object Item select a Business Object variable as the Parameter value Calculation Specify a calculation to retrieve the parameter value. Caption Choose a caption for this control. Normally it is the caption which is visible at runtime. Caption alignment Choose the alignment (left, center, right) for the caption the user will see for this control Client extensions The field is included only for backwards compatibility. Default action be ha vi our Specify a default action usage status for this control. Field has dependants of its own Check this to indicate that other field(s) on this form are dependent on this field, and it should therefore be updated when any field marked 'field is dependent on another' is 398 MBPM Designer User's Guide Chapter 33 Introduction to Reports Property Name Description changed Field is dependent on another Check this if you want this field to be updated when any field marked 'field has dependents of its own' has been changed Hint Type in the text you want to use to explain to a user how to use this control. Hint text appears when the use rolls or hovers over the control. List options Click here to define the options which appear in this list Name Specify a unique name to identify this control. This name is not visible at runtime. Notes Use this to enter any specific notes for anyone using this control within the Designer environment. On field entry Do this when the control acquires system focus On field exit Do this when system focus moves away Position from left The position (in pixels) of this control, from the left hand side of the report. Position from top The position (in pixels) of this control, from the top edge of the report area Variable select a Business Object variable that will be used to populate the checkbox Visibility depends on Indicates rules for showing MBPM Designer User's Guide 399 Chapter 33 Introduction to Reports Property Name Description the control When changed Use this to create a visual script which is run when this control has been changed Width Specify the width, in pixels, of this control Image Property Name Description Client extensions The field is included only for backwards compatibility. Height Specify the height, in pixels, of this control. Name Specify a unique name to identify this control. This name is not visible at runtime. Notes Use this to enter any specific notes for anyone using this control within the Designer environment. Picture Choose a graphic for this image control Position from left The position (in pixels) of this control, from the left hand side of the report. Position from top The position (in pixels) of this control, from the top edge of the report area URL URL Visibility depends on Indicates rules for showing the control Width Specify the width, in pixels, of this control 400 MBPM Designer User's Guide Chapter 33 Introduction to Reports Label Property Name Description Caption alignment Choose the position for the caption of this field above, below, to the left or to the right Client extensions The field is included only for backwards compatibility. Font Choose a font for this control Height Specify the height, in pixels, of this control. Name Specify a unique name to identify this control. This name is not visible at runtime. Notes Use this to enter any specific notes for anyone using this control within the Designer environment. Position from left The position (in pixels) of this control, from the left hand side of the report. Position from top The position (in pixels) of this control, from the top edge of the report area URL URL to link to Visibility depends on Indicates rules for showing the control Width Specify the width, in pixels, of this control MBPM Designer User's Guide 401 Chapter 33 Introduction to Reports Memo Property Name Description Business Object Item select a Business Object variable as the Parameter value Calculation Specify a calculation to retrieve the parameter value. Caption Choose a caption for this control. Normally it is the caption which is visible at runtime. Caption alignment Choose the position for the caption of this field above, below, to the left or to the right Client extensions The field is included only for backwards compatibility. Default action be ha vi our Specify a default action usage status for this control. Field has dependants of its own Check this to indicate that other field(s) on this form are dependent on this field, and it should therefore be updated when any field marked 'field is dependent on another' is changed Field is dependent on another Check this if you want this field to be updated when any field marked 'field has dependents of its own' has been changed Height Specify the height, in pixels, of this control. Hint Type in the text you want 402 MBPM Designer User's Guide Chapter 33 Introduction to Reports Property Name Description to use to explain to a user how to use this control. Hint text appears when the use rolls or hovers over the control. Name Specify a unique name to identify this control. This name is not visible at runtime. Notes Use this to enter any specific notes for anyone using this control within the Designer environment. On field entry Do this when the control acquires system focus On field exit Do this when system focus moves away Position from left The position (in pixels) of this control, from the left hand side of the report. Position from top The position (in pixels) of this control, from the top edge of the report area Variable select a Business Object variable that will be used to populate the checkbox Visibility depends on Indicates rules for showing the control When changed Use this to create a visual script which is run when this control has been changed Width Specify the width, in pixels, of this control MBPM Designer User's Guide 403 Chapter 33 Introduction to Reports Number Property Name Description Business Object Item select a Business Object variable as the Parameter value Calculation Specify a calculation to retrieve the parameter value. Caption Choose a caption for this control. Normally it is the caption which is visible at runtime. Caption alignment Choose the position for the caption of this field above, below, to the left or to the right Client extensions The field is included only for backwards compatibility. Decimal places Specify the number of decimal places which will be shown in this field. Default action behavior Specify a default action usage status for this control. Field has dependants of its own Check this to indicate that other field(s) on this form are dependent on this field, and it should therefore be updated when any field marked 'field is dependent on another' is changed Field is dependent on another Check this if you want this field to be updated when any field marked 'field has dependents of its own' has been changed 404 MBPM Designer User's Guide Chapter 33 Introduction to Reports Property Name Description Hint Type in the text you want to use to explain to a user how to use this control. Hint text appears when the use rolls or hovers over the control. Maximum enabled Indicate whether or not you want to set a maximum value for this field. Maximum value Choose a maximum value that this field may have. Minimum enabled Indicate whether or not you want to set a minimum value for this field. Minimum value Choose a minimum value that this field may have. Name Specify a unique name to identify this control. This name is not visible at runtime. Notes Use this to enter any specific notes for anyone using this control within the Designer environment. On field entry Do this when the control acquires system focus On field exit Do this when system focus moves away Position from left The position (in pixels) of this control, from the left hand side of the report. Position from top The position (in pixels) of this control, from the top edge of the report area Variable select a Business Object variable that will be used MBPM Designer User's Guide 405 Chapter 33 Introduction to Reports Property Name Description to populate the checkbox Visibility depends on Indicates rules for showing the control When changed Use this to create a visual script which is run when this control has been changed Width Specify the width, in pixels, of this control Rule Property Name Description Client extensions The field is included only for backwards compatibility. Color Choose a color for this line or box Height Specify the height, in pixels, of this control. Name Specify a unique name to identify this control. This name is not visible at runtime. Notes Use this to enter any specific notes for anyone using this control within the Designer environment. Position from left The position (in pixels) of this control, from the left hand side of the report. Position from top The position (in pixels) of this control, from the top edge of the report area Style Style for the rule 406 MBPM Designer User's Guide Chapter 33 Introduction to Reports Property Name Description Type Rule type Visibility depends on Indicates rules for showing the control Width Specify the width, in pixels, of this control Text Property Name Description Business Object Item select a Business Object variable as the Parameter value Calculation Specify a calculation to retrieve the parameter value. Caption Choose a caption for this control. Normally it is the caption which is visible at runtime. Caption alignment Choose the position for the caption of this field above, below, to the left or to the right Client extensions The field is included only for backwards compatibility. Default action behavior Specify a default action usage status for this control. Field Alignment Choose an alignment (left, center or right) for this control Field has dependants of its own Check this to indicate that other field(s) on this form are dependent on this field, and it should therefore be updated when MBPM Designer User's Guide 407 Chapter 33 Introduction to Reports Property Name Description any field marked 'field is dependent on another' is changed Field is dependent on another Check this if you want this field to be updated when any field marked 'field has dependents of its own' has been changed Hint Type in the text you want to use to explain to a user how to use this control. Hint text appears when the use rolls or hovers over the control. Mask Mask to use for text entry Maximum length Indicate the maximum length (in number of characters) for this field. Name Specify a unique name to identify this control. This name is not visible at runtime. Notes Use this to enter any specific notes for anyone using this control within the Designer environment. On field entry Do this when the control acquires system focus On field exit Do this when system focus moves away Password Defines that the field will contain a password. Position from left The position (in pixels) of this control, from the left hand side of the report. Position from top The position (in pixels) of this control, from the top 408 MBPM Designer User's Guide Chapter 33 Introduction to Reports Property Name Description edge of the report area Variable select a Business Object variable that will be used to populate the checkbox Visibility depends on Indicates rules for showing the control When changed Use this to create a visual script which is run when this control has been changed Width Specify the width, in pixels, of this control Custom Lists A custom list is used in the Designer to display a grid containing a number of columns in the MBPM Web Client. In the MBPM Web Client, a custom list can have filters for the data in its columns allowing the user to filter the list of data displayed in the grid by selecting from one or more dropdowns. Creating a Custom List To create a Custom List: 1. In the MBPM Designer, click the Home ribbon tab. 2. In the Components group of the Home ribbon tab, click CustomList component. Associating a Business Object with Custom List To associate a Business Object with Custom List: 1. Go to Toolbox in the Designer. 2. Scroll down to Business Objects section. 3. Drag the Business Object that you would like to associate with the Custom List and drop it in the main pane of the Designer displaying the Custom List. A new Business Object is created in the "Other Business Objects" section of Data Access. 4. In the Properties pane of the Custom List, click the Business Object drop-down list and choose the newly created Business Object instance created. The Business Object is now associated with the Custom List. MBPM Designer User's Guide 409 Chapter 33 Introduction to Reports Creating columns for the Custom List To create columns in the Custom List: 1. Go to Data Access. 2. Drag the variables displayed under the Business Object created in the "Other Business Objects" and drop them in the Custom List control. Note: Status fields can be used as columns in Custom lists. (Processes are deployed using non GIF images for standard image types in the Designer. This is because GIF image format is not supported in the MBPM Smart Business Workspace). 3. Alternatively, in the Custom List's Columns properties, click ellipses. A pop-up window is displayed where you can create columns. 4. Click Add and Delete buttons to add or delete columns. 5. To set the properties of a column, use the properties in the right-pane of the pop-up window. Only properties relevant to the column type are displayed. Column Property Description Name Set the name of the column. Caption Set a caption that will be displayed in the Web Client when deployed. Type Set the data type of the control. You can choose from Text, Currency, Date Time , Number, Folder, Hyperlink or Person depending on the column type being created. The following table describes the available data types. Data Type Property Description Text Field Alignment Choose between Left, Center, and Right. Maximum Length This property is displayed for a Text type. Default value is 250. 410 MBPM Designer User's Guide Chapter 33 Introduction to Reports Data Type Property Description Currency Currency symbol Enter the type of decimal value. Symbol Position Choose from Before umber or After number. Negative Number Style Choose from Before number, After number, and Parenthesis. Decimal Places Default value is 0. You can set to positive or negative number. Date Time Format Choose from Date, Time or Both. Number Decimal Places Default value is 0. You can set to positive or negative number. Folder Field Alignment Choose between Left, Center, and Right. Display text Defaults to Open folder that can be changed. Display value You can choose a Business Object variable. The items of the Business Objects associated with the Custom list are available here. Hyperlink MBPM Designer User's Guide 411 412 MBPM Designer User's Guide Chapter 34 Using Charts in Reports Chapter 34 Using Charts in Reports You can add a chart to a report by dragging and dropping the Chart report control in the Report Area of a Report. Adding a chart control displays the Chart Design context ribbon. Chart Design Context Ribbon The Chart Design context ribbon is displayed only when a chart is active. Chart Composition The following items identify the composition of charts. 1. Chart Title 2. Labels 3. Major Grid Lines 4. Minor Grid Lines 5. Markers 6. Legend 7. Y-axis 8. X-axis These are represented below. You can select these items within a chart and modify their properties. MBPM Designer User's Guide 413 Chapter 34 Using Charts in Reports Setting Chart Appearance You can modify a chart's appearance using several settings as mentioned in this topic. Series You can use the Add and Remove buttons to add or remove a series from a chart. You can also click on the dialog box launcher in the Series group to display the Series Collection Editor to add or remove series. Arrange Series You can re-arrange the series using the Move Up and Move Down buttons. 414 MBPM Designer User's Guide Chapter 34 Using Charts in Reports Type The Type group allows you to choose a format for your chart. Styles The Styles group in the Chart Design Context ribbon has two options: l Palette l Variation Palette The Palette drop-down menu provides a set of default palettes to select from. You may also create a custom appearance palette and add it to the menu. To set the appearance of a chart, click on Palette and select a palette from the drop-down menu. Define Custom Palettes 1. On the Styles group, click on the dialog box launcher . The Palettes Editor is displayed. 2. Click on the right Add button. A new palette is added to the list in the left pane and a grey color bar (Double-click to edit) is added to the right pane. 3. With the new palette selected, in the right pane, double click on the grey bar to display a color palette. 4. Change the grey color in the color palette. 5. To add more color bars to the right pane, click on the right Add button and edit as required. 6. Click the OK button to save your changes. The new palette is added to the Chart Appearance drop down menu. Editing Default Palettes You cannot edit the default palettes but you can copy a default palette and then edit the copy. 1. In the left pane, select a default palette. 2. Click on the Copy button. A new palette with the same theme is added to the list. 3. Select the copied palette and edit the colors in the right pane. 4. Click OK to save the new palette. MBPM Designer User's Guide 415 Chapter 34 Using Charts in Reports Variations The Variations drop-down menu provides a set of default styles to select from based on the palette chosen in Chart Appearance. To set the chart style: l Click on Variations and select a style from the drop-down menu. l Certain styles may override some of the chart palette settings. The following example displays a Pie 3D chart and the effects of applying two different palettes to the default palette and then a dark flat yellow style. l The style colors override the appearance colors. 416 MBPM Designer User's Guide Chapter 34 Using Charts in Reports Elements Chart title Click Chart title to toggle the display of a chart title. Legend Choose the appropriate position to display the legend of a chart. The options are Top, Bottom, Left, and Right. You can also choose to hide the legend display. Point Options Arguments are displayed on the X-axis and values are represented on Y-axis. Argument You can choose to display the chart's arguments instead of values by clicking this option. Values You can choose to display or hide the chart's values instead of arguments by clicking this option. Labels You can choose to display or hide the labels. Markers If you choose a Point and Line chart type, you can click Markers to choose from squares, triangles, and so on to display the series. Axes Grid Lines X-axis You can choose to display or hide all grid lines of X-axis, only its major grid lines or none. Y-axis You can choose to display or hide all grid lines of Y-axis, only its major grid lines or none. Axes X-axis You can choose to display or hide the X-axis and its orientation in standard axis direction or reverse axis direction. Y-axis You can choose to display or hide the Y-axis and its orientation in standard axis direction or reverse axis direction. Labels MBPM Designer User's Guide 417 Chapter 34 Using Charts in Reports You can choose labels to be displayed in staggered or straight orientation. Selecting Chart Types To set the type of chart displayed. 1. On the Chart Design context ribbon, in the Type group, click on a drop-down button (for example Pie). 2. Select a chart option from the sub-menu. The available chart type options are: Bars Chart Type Example Bar Bar 3D Bar Stacked 418 MBPM Designer User's Guide Chapter 34 Using Charts in Reports Points and Lines Chart Type Example Point Line Line 3D MBPM Designer User's Guide 419 Chapter 34 Using Charts in Reports Pie Chart Type Example Pie Pie 3D Areas Chart Type Example Area Area Stacked 420 MBPM Designer User's Guide Chapter 34 Using Charts in Reports Note: During run-time, if the chart does not display the data correctly, resize (increase the size) the chart in the Designer. Chart controls and their properties The following tables list all the chart controls and their properties. Chart Property Name Description Border color Choose a border color for this section. Border width Choose a border width for this section. Borders Choose what borders should be displayed. Chart Title Specify whether to display the title. Height Specify the height, in pixels, of this control. Left Position from left. Name Specify a unique name to identify this control. This name is not visible at runtime. Notes Use this to enter any specific notes for anyone using this control within the Designer environment. Series Display a dialog to manage the series. Title The title used for the chart. Top Position from top. Visible Whether or not this control should be visible. Width Control width. MBPM Designer User's Guide 421 Chapter 34 Using Charts in Reports Chart Axis Property Name Description Auto Range Select whether the min and max of the axis should be calculated automatically or specified manually. Label angle Sets the angle of the axis labels. Max Specify the maximum value for this axis. Min Specify the minimum value for this axis. Show Axis Title Show or hide the title for this axis. Title Choose a title for the axis. Chart Pane Property Name Description Border color Choose a border color for this section. BorderVisible Toggles whether the border for the chart pane is visible or hidden. Color Choose a background color for this chart pane. Name Specify a unique name to identify this control. This name is not visible at runtime. Pane Parent property for the pane properties. Rotated Rotate. 422 MBPM Designer User's Guide Chapter 34 Using Charts in Reports Chart Series Property Name Description Name Specify a unique name to identify this control. This name is not visible at runtime. Scale Type Scale Type defines the underlying data source type of the Y axis in order for the chart to interpret how to display the data. Note that when the Scale Type property is changed from Qualitative to Numeric, the Auto Range property for the Chart axis (X-axis or Y-axis) needs to be re-enabled. X Values The data source used to define the values (x data) of the series. Y Data The data source used to define the data (y-data) of the series. Use Top N Select whether it is required to display only Top N series points in a series. Count Specify the total number of Top N series points. Format Sets the format for the data displayed on the chart. Currency: Currency Symbol: Enter the type of currency symbol that should be displayed. MBPM Designer User's Guide 423 Chapter 34 Using Charts in Reports Property Name Description Currency Symbol Position: Set the currency symbol to be displayed before or after the number (data). Fixed Point: Data is displayed as real numbers with fractional part. General: Data is displayed in a generic text format. Number: Integer part of data is displayed. Percent: Data is displayed as a percentage. Scientific: Data is displayed in scientific notation. For example, 9.70E+000 Precision Indicates the desired number of decimal places. Notes Use this to enter any specific notes for anyone using this control within the Designer environment. Chart Series (Common) Property Name Description Function Applies a function to be calculated against a specified variable. Name Specify a unique name to identify this control. This name is not visible at runtime. Notes Use this to enter any specific notes for anyone using this control within the Designer environment. Scale Type Scale Type defines the underlying data source type of the Y axis in order for the chart to interpret how to display the data. Note that when the Scale Type property is changed from Qualitative to Numeric, the Auto Range property for the Chart axis (X-axis or Yaxis) needs to be re-enabled. 424 MBPM Designer User's Guide Chapter 34 Using Charts in Reports Property Name Description Summary Function Select whether a summary function must be applied a specified variable. X Values The data source used to define the values (x data) of the series. Y Data The data source used to define the data (y-data) of the series. Chart Series (Pie Chart) Property Name Description Explode Pie Chart Explodes the slices of the pie. Show as Percentage Display the series values as percentages. Chart Series (XY Chart) Property Name Description Count Specify the total number of Top N series points. Use other values as a single series Select whether all series points not included in the "Top N" must united into a single "Others" point. Use Top N Select whether it is required to display only Top N series points in a series. Diagram (XY 3D) Property Name Description Perspective Angle Specify the perspective angle for the chart. Rotation X Specify the angle at which the x axis is rotated. Rotation Y Specify the angle at which the y axis is rotated. Rotation Z Specify the angle at which the z axis is rotated. Show X Axis Title Show or hide the title for this axis. Show Y Axis Title Show or hide the title for this axis. Text Choose a title for the axis. X Axis Label angle Sets the angle of the axis labels. Y Axis Label angle Sets the angle of the axis labels. MBPM Designer User's Guide 425 426 MBPM Designer User's Guide Chapter 35 Introduction to Multi-Lingual Processes Chapter 35 Introduction to Multi-Lingual Processes Multi-Lingual Processes, also called localization, enables the BPM client to display forms and processes in different languages. The Designer does not carry out any language translations itself. In fact the Designer does not actually recognize different languages. The language used to create the base process is called the 'Neutral' language. Multi-Lingual Processes allows you to create a number of language settings at project level. You can then enter translations for the forms and processes within the project. Once this has been done, you can switch between these available settings to display, for example a form, in different languages. Note: Reports will not be affected by multiple language definitions except for the report’s filter area. Users will have to design a separate report for each language used in the BPM project to display reports in different languages. The position of controls on forms can also be varied for different language settings. For example, the controls on a form could read left to right on the English version and right to left on the Arabic version. In the example below, the controls in the German version have been moved further right to allow more space for the captions. MBPM Designer User's Guide 427 Chapter 35 Introduction to Multi-Lingual Processes In the above example, the following are represented: 1. Set the available languages in the project. 2. Enter the translations in the Translations pane. 428 MBPM Designer User's Guide Chapter 35 Introduction to Multi-Lingual Processes 3. Users can view the form in different languages. Setting the Project Languages When a project is created it is language neutral. To display project components in a different language, you must first set up the available languages in the project. l To display the project languages settings, either: n In the Inventory, double click on the Project button. n In the main pane of the Designer, select the Project tab (if available). The Project tab displays the language settings available to the project. l l l l In the left pane, select a language. Click on the add arrow button to add the language to the project. The selected languages are displayed in the right pane. Repeat steps 2 and 3 for each language to be available in the project. Click the MBPM button > Save. The language changes will not take effect until you have saved them. To remove a language from the project, in the right pane select the language and click the remove arrow button. Warning - Removing a language from the project list will remove all translations for this language, as well as all forms specific to the language that has been removed. If the project has translated items for a language, a message asking for confirmation before removing the language is displayed. Note: A project cannot be deployed in more than one language at the same time. Either the project is deployed in “language X” or in “language Y” it cannot be deployed in both. Creating the Translations The language translation of properties must be entered manually by the process Designer. Translations can be entered via: l The Translations pane l The Properties pane You cannot translate all the properties of a component. Properties seen by the user, such as Captions, Hints, Radio Group options can be translated. Properties seen by the code, such as Name or Client Extension cannot be translated. The Inventory lists the language variations of all processes and forms. This is accomplished by listing the languages for which a translation exists, within the Inventory. So, if a form has three chosen translations for English, Serbian, and Japanese, its Inventory entry will read “Form1 [EN, SE, JP]” MBPM Designer User's Guide 429 Chapter 35 Introduction to Multi-Lingual Processes In the above example: l Form1 has French and German versions. l Form 2 has a French version. Translate via the Translation Pane To translate using the Translation pane: 1. Set the Available Languages in the Project tab. 2. Select the View ribbon tab and click on the Translations button . The Translations pane is displayed with a column for each language variation set in the project, plus the neutral language. Initially, all properties are displayed in the neutral language. Any translations required must be entered in the respective columns. Note: Only the properties that can be changed are displayed. 3. In the relevant language column, click in the property field to be translated and enter the translation. For example, to display the process caption 'Process 1' in German in the German column, Project.Process.Caption field, enter 'Karte1'. 4. Repeat the above process for each property to be translated. 5. Click the MBPM button > Save. Translate via the Properties Pane To translate using the Properties pane: 1. Set the Available Languages in the Project tab. 2. In the Design pane, select the component to be translated and ensure that the Properties pane is displayed. 3. On the Status bar, in the Language variation field, select the language to be translated to from the drop-down list. 4. Click in the property field to be translated and enter the translation. For example, with the German language variation selected, click in the process Caption field and change 'Process 1' to 'Karte1'. Note: The Help URL property of actions and stages is an expression that cannot be localized. 430 MBPM Designer User's Guide Chapter 35 Introduction to Multi-Lingual Processes Designing Localization Layouts The 'default' language variation for a project is Neutral. This is the language in which the base processes, forms must be created and initially designed. The following rules apply to designing for different languages: l You can only create or delete a process or form in the neutral language. l You can only add or delete stages, actions and controls in the neutral form. l l In each language, the controls on forms initially inherit the positions set in the neutral form. These controls can then be positioned differently for each language. Removing a language from the project list removes all the translations for that language, as well as all processes and forms specific to that language. A warning message asking for confirmation is displayed before the language is removed. l The data in a form field is the same in all the language variations. l You can add and delete languages and reposition controls at any time. Repositioning Controls on Forms The controls on forms can be placed in different positions for every language variations. 1. Set up the Project language variations. 2. In the neutral language, create the form and add the controls. 3. On the Status bar, in the Language variation field, select the language required. 4. On the form, you can now: n Move the controls to new positions. n Re-size controls. n Reposition the control captions (for example, to the right instead of left). The changes are only applied to this specific language variation. In the following example, Form1 exists in both English and Arabic versions. These can be selected from the Language variations menu. MBPM Designer User's Guide 431 Chapter 35 Introduction to Multi-Lingual Processes 432 MBPM Designer User's Guide Chapter 36 Introduction to Solution Tables Chapter 36 Introduction to Solution Tables The Solution Tables feature lets you create supplementary tables from within the Designer. This eliminates the need to use database administration tools to create these tables externally on each machine running a specific project. Solution Tables created in the Designer are stored as part of the repository. You can use Solution Tables to simplify project creation. For example, if you want to populate a drop-down list with pick items, you can create the item list in a Solution Table rather than typing a list of items into the form element’s property field. Create a Solution Table To create a new solution table: 1. In the Home ribbon tab, Components group, click on the Solution Table. A new Solution Table is displayed in a tab in the main pane of the Designer with a new row selected. 2. Enter the details for the columns you want in your table. 3. In Solution table description field, enter a description for the solution table. 4. Click in the Name field and enter a name for the column. 5. Click in the Type of a column and select a data type from the drop-down list. 6. In the Description field, enter a description of the column. 7. If the table is to be indexed by this column, in the Index field, select the check box. You can index the table by multiple columns by selecting the Key check box for each column. You cannot index Check and Memo type columns. 8. In the Primary Key field, if you want to specify the column as a Primary key, select the check box. Note: You cannot set Check and Memo type columns as Primary Key. 9. If a text column has been selected, in the Size field, enter the size of the column. The maximum value is 250. You can change the name of the Solution Table by clicking on the name in the Inventory pane and entering a new name. button. In the Grid 10. To add another row to the table, click in the blank row or on the tab, use the Insert Above, Insert Below, Move Up, Move Down, and Delete buttons to MBPM Designer User's Guide 433 Chapter 36 Introduction to Solution Tables perform operations on the rows. Note: A new row with the original primary key cell value cannot be created in the same transaction. For example, create a solution table with primary key column and an editable grid that points to this solution table. At run-time, open the form containing the grid, enter a value in the primary key cell, and Submit the form. When you re-open this form, you cannot change the original primary key cell value (for example, 1) to a different value (for example, 12) and add a new row with the original primary key cell value of 1 in the same transaction as it violates the database constraint. Note: Solution Tables can be added to a Library. Identity Columns The Identity property allows you to specify columns for a Solution Table that contains autogenerated unique values. This avoids having to maintain this within the external table in the database. The property is made optional by means of a check box. The default value is off. It is only enabled for Integer fields. Only one identity column is allowed in a table. If the database is SQL Server, both the “Primary Key”, and “Index” properties can also be enabled. Solution Tables that have been loaded with version 7.6 and version 9.0 – 9.0.3 Solutions will have the Identity property enabled for Integer columns. 434 MBPM Designer User's Guide Chapter 37 Deploying a Project, Library or Solution Chapter 37 Deploying a Project, Library or Solution To deploy a Solution: 1. Click the Deploy button. To deploy a Project or Library in a Solution, click the drop-down button of the Deploy button to display a list of existing Projects or Libraries. Select the Project or Library that you want to deploy. You will be prompted to save the overall solution before you can deploy any part of it. Until you have saved the solution, you will not be able to execute either a validation or a deployment. When you have saved your project, it is automatically validated, and if validation is successful, you will be prompted to enter the user name and password for the repository to which you are deploying. Note: The component you have deployed may have previously passed validation. Even so, validation is re-run as part of deployment, since this includes a number of rules which can only be checked once you have chosen a repository to which to deploy. 2. Enter your login details. Select Remember these details if you would like MBPM to save your login details, and click OK. 3. You can now enter a description for this version of your project. 4. Type a description and click OK. Descriptions can be useful when you're navigating around multiple versions of a project in a repository. Deployment is immediate, and you can log in to see the project. MBPM Designer User's Guide 435 436 MBPM Designer User's Guide Chapter 38 Debugging Chapter 38 Debugging MBPM Designer Process Debugging feature enables you to identify and correct problems in your MBPM processes and forms. Microsoft Visual Studio debugging tool is used to handle MBPM process debugging. The Debug button is available on the Home tab besides the Deploy button only if Visual Studio is installed. For more information on Visual Studio editions required to be installed for this feature to work, see Supported Environments. Debugging a process To debug a project, click the Debug button. Visual Studio will connect to the MBPM Engine and open the generated code files. During this process, messages are displayed in the Designer Message pane. The project is deployed and C# files are generated. For location of the generated C# files, see Location of files. Visual Studio is opened and the C# files are opened as separate tabs in Visual Studio. Debugging without administrative privileges In order to debug a process on Windows Vista, Windows Server 2008 or Windows 7 without the need to turn off the UAC prompts or running the Designer with administrator privileges, the Engine must be re-configured and launched as a standard process within the user’s session rather than as a service. The following steps detail this process: 1. Install Visual Studio 2010. 2. Start Visual Studio to complete any initial environment setup. 3. Install Designer, Deployment Service, and Engine on the local machine - set the service startup type to Manual. 4. Run the Component Services tool (dcomcnfg.exe). 5. Navigate the tree to Component Services\My Computer\COM+ Applications\Metastorm Process Engine 6. Right-click Metastorm Process Engine and select Properties. MBPM Designer User's Guide 437 Chapter 38 Debugging 7. On the Identity tab, select System Account: Interactive User. 8. On the Advanced tab, select “Enable idle shutdown” and set the minutes to zero (0). 9. Press OK. 10. If the user performing the debugging is different to the user who installed BPM, then the account will need to be added to the Administrator and Client Roles by following these steps: a. Drill-down to "Roles\Administrator\Users" of "\My Computer\COM+ Applications\Metastorm Process Engine". b. Right-click and add a new user (non-Admin account). These are accessible by expanding the Metastorm Process Engine node. 11. Open Windows Explorer and navigate to C:\Program Files\Metastorm\BPM\Engine. 12. Double-click eEngineW.exe. 13. The Engine should start without errors and an icon should appear in the system tray. 14. Start the Deployment Service. 15. Run the Designer. 16. Open the desired solution and click the Debug button. 17. Perform the debugging, and when finished: n n Press the Stop/Detach button in Visual Studio. Right-click the Metastorm Process Engine icon in the system tray, select "Shut down...", then click Yes. Setting Breakpoints in C# Code You can set breakpoints in the generated C# code displayed in Visual Studio. For example: 1. Place a breakpoint in the first line of the start action. 2. In the Web Client, when you open a blank form, Visual Studio captures the event and stops the process at the appropriate line. Control is transferred to Visual Studio. 3. At this point you will be able to hover over the code and find out the current values of Business Object items that you may have used. 4. To continue with the Web Client operations, stop the debugging operation by clicking the stop debugging button inside Visual Studio debug toolbar. To close Visual Studio, use File > Exit. Note: For breakpoints to work in Visual Studio 2010, go to Tools > Attach to Process > Select > Select "Debug these code types" > select the "Manages (v2.0, v1.1, v1.0)" option. Visual Studio 2010 selects v4.0 by default. Location of the C# files Depending on the OS, the generated C# files are saved to one of the following locations: 438 MBPM Designer User's Guide Chapter 38 Debugging l l %CommonAppData%\Metastorm\BPM\GeneratedSourceCode (Vista). C:\Documents and Settings\All Users\Application Data\Metastorm\BPM\GeneratedSourceCode (Windows XP). The source code is created under GeneratedSourceCodein in folders corresponding to the format AssemblyName\AssemblyVersion. Project Versions In the Repository, an icon is displayed next to debugged projects. There may be several versions of the project in the Repository depending on the number of times the project has been debugged. Projects Retention You can configure the Designer to retain the files that have been created when the project was debugged. The source code retention policy is configurable via the DeploymentService.exe.config file (located in Program files\Metastorm\BPM\Deployment\ folder). Currently, you can either delete all previous versions or perform no deletions at all. Troubleshooting This section provides information that will enable you to troubleshoot reasons why the debug button may not be visible in the Designer. Checklist 1. Ensure that the logged in user is listed under "Roles\Administrator\Users" of "\My Computer\COM+ Applications\Metastorm Process Engine". 2. The SQL Server must have the correct credentials in its 'Security->Logins' section. 3. Ensure both the Metastorm Engine and Deployment services are running. 4. Ensure that the MetastormDiagnosticsApppool is running under the ‘NetworkService’ account. 5. Check that the diagnostics feature is installed correctly, by opening the Add/Remove Programs and checking the BPM installation. 6. Open up the %mbpm%\Engine\Diagnostics\ProcessDiagnostics\Web.Config, and make sure that the connection string is correct. (This can be checked against the deployment service config connections string). 7. Open the Designer, go to 'Options' and enter the correct URL to the process diagnostics service. //localhost/ProcessDiagnosticsService/ProcessDiagnostics.svc 8. Open the Designer, and check for warning messages in the ‘Messages’ pane. Debugging in Windows XP The Debug button may not be displayed on Windows XP machine even though the prerequisites for using the debug feature are installed. To overcome this situation: MBPM Designer User's Guide 439 Chapter 38 Debugging 1. After starting Designer, open Event Viewer -> Applications, open last event log with type 'Failure Audit', and copy user name to clipboard. For example: The log displays, "Login failed for user '<USERNAME\USERMACHINE>'. [CLIENT: <local machine>]" 2. Open SQL Server Management Studio and connect to database engine with your MBPM database. 3. Go to Security->Logins and add the user found in step 1 (<USERNAME\USERMACHINE>) with 'sysadmin' server role. 4. Restart Designer to view and use the Debug button. 440 MBPM Designer User's Guide Chapter 39 Troubleshooting Chapter 39 Troubleshooting Code Generation Error Troubleshooting When code generation errors occur, error messages will be displayed in the form of a tool tip appearing from the right of the status bar. Clicking the message will display further error information in the Messages pane and takes the user to the source of the error. Deployment Internal Error If you set SQL Server option "xact abort" to TRUE, restart it, and open Designer to deploy any new process, an error message "Deployment internal error" is displayed. To overcome this error message, the SQL Server setting "xact abort” should always be set to FALSE. MBPM Designer User's Guide 441 442 MBPM Designer User's Guide Chapter 40 Process Activator Chapter 40 Process Activator Introduction to Process Activator The Process Activator guides you through the steps to activate a process as a web service and publish it. It is accessed from External Applications tab from the ribbon bar within the Designer or from the Start menu. Process Activator screens The Process Activator guides you through the following screens: 1. Welcome screen – choose to connect to the default metadata web service. 2. Create connection screen – configure the process metadata service. 3. Select process screen- select the process to activate. 4. Select Stages and Action screen- select the stages / actions to activate. 5. Select location screen- specify the location of the web service and the publication filter. 6. Publish Web Service screen – publish the web service. 7. Activation complete screen – see a summary of activated process. Each screen is described in more detail below: Connect to the default metadata web service (Welcome screen) The Welcome screen provides the steps that you need to take complete process activation. If you select the option to connect to the default metadata web service, you will not need to configure the process metadata service. You may skip the next screen in the Process Activator. Connection Parameters Option Summary Alias (string) This is a user defined name for the Web Service. URL (string) The location of the Process Metadata Service. The default service name is displayed. It is obtained from the Process MBPM Designer User's Guide Remarks The MBPM Process Metadata Service can run on a separate engine machine. If this is the case, the MBPM Process Metadata Service 443 Chapter 40 Process Activator Option Type Summary Remarks Activator’s and VS Integration configuration files. will need to link to the engine. The authentication used by the MBPM Process Metadata Service. The following authentication methods are supported: l l l User name (string) Sets the user name used for basic authentication. Password (string) Sets the password used for basic authentication. Domain (string) Sets the domain used for basic authentication. Default Configuration (boolean) Sets the displayed Web Service as the default Process Metadata Web Service. The alias name of the default configuration is moved to the top of the Alias drop-down. Anonymous - a dedicated local account is used to service the request. Basic Authentication (requires User name, Password and Domain) Integrated Windows Authentication, the default. The service impersonates the credentials of the user accessing the service. Remember that password information is sent in plain text over the network when using basic authentication. Proxy Details Option Summary Remarks Use Sets the information Proxy for the proxy server (boolean) used for all web services calls. Type 444 Sets the proxy type. l The proxy server can be configured into two ways: MBPM Designer User's Guide Chapter 40 Process Activator l l CURRENT_USER - the current user’s IE settings are used to determine the proxy. host:port -the proxy at host:port is used (for example. http://93.13.17.2:8080). These settings override the IE settings. Host The host port of the Http must be used in front of definition. proxy. For example: http://93.13.17.2:8080 . User name (string) Sets the username used when accessing the proxy server. Password (string) Sets the password used when accessing the proxy server. Bypass if local address (boolean) Determines whether the proxy server is bypassed when calling local resources. If checked, requests to local Internet resources do not use the proxy server. Local requests are identified by the lack of a period (.) in the URI, as in http://webserver/ or access the local server, including http://localhost, http://loopback, or http://127.0.0.1 . If not checked, all Internet requests are made through the proxy server. Buttons Options Remarks Add or Update This button adds or updates the displayed web service configuration details. Delete This button deletes the displayed web service configuration details. In the Process Activator, the web service connection is tested when the user clicks Next. Configure the process metadata service (Create connection screen) l l l Default values are provided in the fields. If you did not check the option ‘connect to the default metadata web service’, you will need to define the configuration of the process metadata service. If you are connecting through a proxy, enter the proxy details in this screen. MBPM Designer User's Guide 445 Chapter 40 Process Activator Select the process to activate (Select process screen) l l l A list of all the processes available on the selected service will be displayed. On highlighting a process, the details of this process will be displayed. This information will help you in identifying the process that has been selected. When a process has been selected, you can continue to select the stages and actions of this process that will be activated. Select the stages and actions to activate (Select stages and actions screen) For the process selected, the actions and stages will be displayed. You can select one or more actions and stages. On highlighting an action or stage, the details of this control and the form fields associated to the control will be displayed. Specify the location of the web service and the publication filter (Select location screen) You can browse to the location where the web service will be stored. You can also select the service publication filter, if the web service is going to be published. Publish the Web Service (Publish Web Service screen) If you have selected to publish to a web service, enter the UDDI and publication information. Summary of activated process (Activation complete screen) The final screen of the Process Activator displays a summary of what has been included in the activated process. Note: Some of the new controls introduced in version 9.1 will not be supported in clients other than the Web Client. The unsupported controls are as follows: l Person l Panel l Rich Text If these controls or a Grid control containing these column types are used as required fields in a Form, actions on it will fail to submit in an external client. Activated Process as a Web Service You can activate a process and deploy it as a Web Service. The following is an example describing the steps involved in activating the sample process and consuming it from Visual Studio. Activating the Sample Process To activate the sample process: 1. In the Designer, open the StormzoSolution from C:\Program Files\Metastorm\BPM\Sample Processes\Sample 1. 2. Deploy the solution. 446 MBPM Designer User's Guide Chapter 40 Process Activator 3. Open the Process Activator from the External Applications ribbon tab. 4. Follow the steps mentioned in Introduction to Process Activator to activate the Registry process of the StormzoSolution by selecting all stages and actions. The Registry process is activated and a web service will be generated. To use Visual Studio to consume the Web Service: 1. Start Visual Studio. 2. In your .NET solution, add a Service Reference from the Solution Explorer. 3. Provide the following details: n n n In the Namespace field, enter Stormzo. In the Address field, locate the Registry service. For example: http://localhost/Registry.svc. Select the Registry service. 4. Click OK. 5. In the code, perform these steps: a. Instantiate the Service Client. Stormzo.RegistryServiceClient stormzoService = new Stormzo.RegistryServiceClient(); b. Pass the user name and password. FormField[] loginData = new FormField[] { new TextField() { Name = "username", Value = "Sysadmin", Culture = CultureInfo.InvariantCulture.ToString() }, new TextField() { Name = "password", Value = PasswordEncrypt ("Metastorm"), Culture = CultureInfo.InvariantCulture.ToString() } }; c. Retrieve the session state. ServiceSessionState 0, "", loginData); eclServiceSession = stormzoService.Login("WEB;", d. Start an action. BlankFormsRegistrationFormAction bfAction = stormzoService.StartBlankFormsRegistrationForm(eclServiceSession); e. Populate field with data bfAction.Fields.TxtEmail.Value = txtEmail.Text; bfAction.Fields.TxtPassword.Value = txtPassword.Text; bfAction.Fields.TxtConfirmPassword.Value = txtConfirmPassword.Text; bfAction.Fields.TxtTitle.Value = txtTitle.Text; bfAction.Fields.TxtFirstName.Value = txtFirstName.Text; bfAction.Fields.TxtSurname.Value = txtSurname.Text; MBPM Designer User's Guide 447 Chapter 40 Process Activator bfAction.Fields.TxtAdd1.Value = txtAddress1.Text; bfAction.Fields.TxtAdd2.Value = txtAddress2.Text; bfAction.Fields.TxtAdd3.Value = txtCity.Text; bfAction.Fields.TxtPostcode.Value = txtPostcode.Text; bfAction.Fields.TxtTelephone.Value = txtTelephone.Text; bfAction.Fields.Country.Value = rbCountryUS.Text; bfAction.Fields.TxtcreditCard.Value = rbUserOtherCCCard.Text; f. Submit the form. stormzoService.SubmitBlankFormsRegistrationForm ( eclServiceSession, bfAction ); g. Log out. stormzoService.Logout(eclServiceSession); 6. Run this solution from Visual Studio. 7. Access the MBPM Web Client, and go to the To Do list. The information that you have submitted through Visual Studio is displayed when you open the related Registry folder from the To Do list of the MBPM Web Client. Allow Activated Process Web Service Access through SSO To allow activated process web service access through SSO: 1. Set the following authentication settings in IIS for the web service application: l ASP.NET Impersonation l Windows Authentication 2. Edit the generated web service’s web.config: In the <basicHttpBinding> section update the security node for each binding to be as follows: <security mode="TransportCredentialOnly"> <transport clientCredentialType="Windows" /> <message clientCredentialType="UserName" algorithmSuite="Default"></message> </security> In the <serviceBehaviors> section add the following line: <serviceAuthorization impersonateCallerForAllOperations="true"/> 448 MBPM Designer User's Guide Chapter 40 Process Activator 3. In the main service class file (<ProcessName>Service.cs) update the class <ProcessName>Service as follows: After the line eclSession = SessionHelper.CreateProxyInstance(); add the following: eclSession.ClientCredentials.Windows.AllowedImpersonationLevel = System.Security.Principal.TokenImpersonationLevel.Impersonation; Edit each method with the following attribute [System.ServiceModel.OperationBehavior(Impersonation = System.ServiceModel.ImpersonationOption.Allowed)] For example: [System.ServiceModel.OperationBehavior(Impersonation = System.ServiceModel.ImpersonationOption.Allowed)] public Metastorm.ECL.WebService.ServiceSessionState Login(string clientType, int currentSAP, string authenticationProcess, Metastorm.ECL.WebService.FormField[] loginData) 4. Edit the client’s app.config: l In the <basicHttpBinding> section set the security node to be as follows: <security mode="TransportCredentialOnly"> <transport clientCredentialType="Windows" /> <message clientCredentialType="UserName" algorithmSuite="Default"></message> </security> l In the calling code set Impersonation on the client object, for example: eclWs.ServiceClient ws = new ServiceClient(); ws.ClientCredentials.Windows.AllowedImpersonationLevel = System.Security.Principal.TokenImpersonationLevel.Impersonation; MBPM Designer User's Guide 449 450 MBPM Designer User's Guide Chapter 41 Document Management System Chapter 41 Document Management System MBPM provides Document Management System (DMS) integration to enable MBPM to route and manage documents stored in Document Management Systems. The following DMS providers are supported: l Microsoft SharePoint l OpenText Content Server For more information on versions of DMS supported, refer to the MBPM Installation and Configuration Guide. This feature adds DMS integration capabilities to the single attachment clip and multiple attachment clip controls. A library of integration functions (and Visual Script Activities) is also provided in this package. In order to make use of these integration functions in your scripts, this library must be deployed and referenced. For more information, refer to the DMS Libraries and Functions section. DMS Business Objects allow process designers to integrate with Content Server by defining lists of documents and binding those documents and their attributes to form fields. This facility is not currently supported for SharePoint. Setup For information on installing and configuring DMS, see MBPM Installation and Configuration Guide. The instructions differ depending on the supported Document Management System. DMS Features DMS Controls The Clip is used to activate DMS clips. There are two types of DMS clips: l DMS Single Attachment Clip l DMS Multiple Attachment Clip MBPM Designer User's Guide 451 Chapter 41 Document Management System DMS Single Attachment Clip To create a DMS Single Attachment Clip: 1. Open or create a form. 2. Add a Clip to the form. 3. In the Clip Properties, check Document management support. The clip changes to a DMS Single Attachment Clip icon. 4. Set the DMS Multiple Attachment Clip Properties. Note: If you use an attachment clip to delete a document from SharePoint or Content Server, the file is deleted immediately, regardless of whether or not the form on which the attachment clip is placed on, has been submitted. However, when using a native attachment clip, any changes (such as upload, delete, and so on) are rolled back if the form is not submitted. DMS Multiple Attachment Clip This clip enables users to assign multiple attachments to a folder. The attachments are uploaded individually. To create a DMS Multiple Attachment Clip: 1. Open or create a form. 2. Click the MultiClip button. 3. In MultiClip Properties, select Document management support. The Clip changes to a DMS Multiple Attachment Clip icon. 4. Set the DMS Multiple Attachment Clip Properties. DMS Properties The Properties Editor has the following options that are relevant to DMS: l l DMS Provider – An option denotes the name of the DMS Provider. Document management support – An option is selected to enable DMS support and provide access to SharePoint system for users. If this option is checked, the Upload and Select options become available for Process user. The document management support option also provides access to other DMS properties in the Designer, such as Edit only mode and Default Location. l l Edit only – If this option is selected, the Remove and Delete menu options are not available to the Process User. Once a document has been uploaded or selected in a single clip, the options Upload and Select are also unavailable. Default Location – An option defines the default location to the document repository folder. 452 MBPM Designer User's Guide Chapter 41 Document Management System Introduction to DMS Business Objects for Content Server DMS Business Objects provide Process Developers the ability to connect to a Content Server instance and bind document metadata to fields on forms (in the same way as other types of Business Objects). When defining a DMS Business Object, the set of document attributes is selected. Then, when binding these business objects to forms, the attributes (document metadata) can be associated with form fields. DMS Business Objects are read-only. So, it is not possible to update document metadata directly through the Business Object. Creating a Content Server DMS Connection To establish a new connection with a Content Server, use the Connection component. 1. On the Home ribbon tab, Components group, click on the Connection button. 2. Select the Type of connection and select Document Management System. 3. From the Define Connection tab, enter the Content Server DMS Provider configuration properties as listed in the following table: Property Name Description Document Management System Content Server DMS Provider for MBPM (provided by default). Content Web Services URL The base URL of the OpenText Content Web Services (CWS) configured under Runtime & Core Services (RCS) in the supported Application Server, for example, Apache Tomcat or SAP NetWeaver. Content Web Services Suffix The Content Web Services (CWS) suffix, .svc for the .NET CWS and no suffix for the Java CWS. Currently, the Content Server DMS Provider only supports the Java CWS. Content Server Base URL The base URL to the OpenText Content Server installation. MBPM Designer User's Guide 453 Chapter 41 Document Management System Property Name Description OTDS Server URL and Port The base URL to the Runtime & Core Services (RCS) and OpenText Directory Services (OTDS) installation in your Application Server. Content Server resource id The resource id of the OpenText Local Runtime & Core Services (RCS). 4. Select the Preview tab and click Refresh to display a tree view of the available Content Server DMS attributes. For more information, refer to Navigating the Attributes Tree. 5. Click Test Connection to test your connection. If connection succeeds, a 'Connection successful' message is displayed. Creating DMS Business Objects Create a DMS Business Object in the main Business Objects pane by following the steps defined in Creating Custom Business Objects section. These are summarized as follows: 1. On the Home ribbon tab, Components group, click on the Business Object button. The Business Object main pane displays all the custom Business Objects that exist within the project. You can edit existing Business Objects using in-place editing. 2. Click in the Name field and enter a name for the Business Object (optional). 3. In the Type field, click and select the DMS connection type from the drop-down list. 4. Click in the Connection field. 5. Click . 6. Select DMS from the drop-down list. 7. Define the DMS Business Object Attributes as described in DMS Business Objects Attributes and Variables. 8. Click the MBPM button > Save. DMS Business Objects Attributes and Variables The DMS Business Object Attribute tab defines Category and Attribute Metadata. l l Category - A category is a folder that enables grouping of related folders and attributes. Attribute - An attribute is a data item related to an attribute definition (for example, ID, Create Date, Name). This information is associated with a document stored within the Content Server system and is made available to various column types within a DMS Grid. 454 MBPM Designer User's Guide Chapter 41 Document Management System Navigating the Attributes Tree Select the Attributes tab to display the Content Server repository tree. This consists of category folders and attributes. Category folders can contain child folders. To expand and collapse the Attributes Tree: 1. Click the plus sign on the System Attributes folder to expand the tree. This displays all category folders and attributes. 2. Click the minus sign on a folder to collapse the view for that particular folder. System Attributes The following are system attributes, which are available on all documents. l Create date l Create By l Display Type l ID l Modify Date l Name l Nickname l Type l Shortcut l Location MBPM Designer User's Guide 455 Chapter 41 Document Management System Attribute Data Types Attributes of the following types exist within the Content Server system. l Date l Time l Date Time l Currency l Check l List l Double Assigning Variable Names to Attributes Create variables by selecting them from the Available Attributes pane in the DMS Attributes pane and copying them to the Added Attributes pane. To create a variable from an attribute: 1. Select the attribute in the Available Attributes pane. 2. Click Add to copy the attribute to the Added Attributes pane. This action creates variables and makes them available in the Variable names tab. 3. Click Remove to remove the attribute from the Added Attributes pane. The variable is also removed from the Variable Names tab. The variables created from the Attributes tab are available as columns within a DMS Multi-Clip. Using Content Server Business Objects on Forms You can create a Content Server DMS enabled Multi-Clip by selecting the variables created from the DMS Business Object created earlier and creating a grid. Note: The Process Designer can also bind the DMS Business Object to fields and controls other than Multi-Clips. To create a DMS Multiple Attachment Clip for Content Server: 1. Follow the steps described in DMS Multiple Attachment Clip under DMS Features. 2. Assign variables as described in DMS Business Objects Attributes and Variables to columns in the grid. The grid columns appear in the Web Client at runtime. Note: When using multiple DMS Business Objects, DMS Multi-Clips combine all documents and display the same documents in every DMS Multi-Clip, even when added separately during an action. 456 MBPM Designer User's Guide Chapter 41 Document Management System Opening Content Server Attachment When you click on the “File Name” column entry, DMS Clip, or DMS Multi-Clip to open an attached Content Server document, by default, the Document Overview Page in Content Server opens. To change this default behavior, you can make one or both or the following changes: l Disable Document Overview –For details, refer to the Configuring Presentation Settings page of the Open Text Content Server Administrator Online Help from the OpenText Knowledge Center. Note: Disabling Document Overview will only display the selected document as an icon in a browser with the options to edit, download, or add comments. You must enable the “Open” document function, described in the next step, to open the document in the browser or a native application. l Enable “Open” document function – To open a selected document in the browser or a native application, refer to the Configure Security Parameter section of the Open Text Content Server Administrator Online Help from the OpenText Knowledge Center. DMS Libraries and Functions A library of DMS specific integration functions (and Visual Script Activities) are provided in this package. These functions allow DMS operations to be performed by BPM processes. In order to make use of these integration functions in your scripts, this library must be deployed and referenced in the current project. The following libraries are provided: Library Location Common DMS Functions Library C:\Program Files\ Metastorm\BPM\Administrative Tools\Administrative Processes\DMS\ContentServerDmsLibrary SharePoint DMS Functions Library C:\Program Files\Metastorm\BPM\Administrative Tools\Administrative Processes\Office Content Server DMS Functions Library C:\Program Files\Metastorm\BPM\Administrative Tools\Administrative Processes DMS Functions The DMS functions are: l Get Document Id l Get Folder Document Ids MBPM Designer User's Guide 457 Chapter 41 Document Management System Get Document Id Retrieves the document Id from a DMS clip. This function only works with the DMS Single Attachment Clip. Parameter Name Description Variable Select the custom variable that is mapped to the DMS single attachment clip. Returns Text data type. Get Folder Document Ids Returns a delimited list of document Ids attached to the current folder. Parameter Name Description List Delimiter A delimiter to separate the document Id list items. Returns Memo data type. Note: This function could be returned into a list field with the list delimiter set to the same delimiter type defined in the function. SharePoint Functions The SharePoint functions are: l Browse SharePoint l Check In Document l Check Out Document l Delete Document l Download Document l Get Document Author l Get Document Checked Out By l Get Document Creation Date l Get Document Editor l Get Document Last Modified l Get Document Metadata l Get Document Title l Move Document l Set Document Metadata l Undo Check Out Document l Upload Document 458 MBPM Designer User's Guide Chapter 41 Document Management System l Verify Document l Verify Folder Browse SharePoint This function can browse a specific DMS location. Parameter Name Description SharePoint Location The URL of a SharePoint library, folder, or site. Returns the Document Management System location in an XML fragment as a memo data type. Check In Document Checks in a document to the Document Management System. Parameter Name Description File Name The URL of the file to check in. Comments Comments to include with the checked in version of the document. Returns Integer data type. Check Out Document Checks out a document from the Document Management System. Parameter Name Description File Name The URL of the file to check out. Returns Integer data type. Note: If a document is already checked out a message is displayed to inform the user. Delete Document Deletes a document from the Document Management System. Parameter Name Description File Name The URL of the file to delete. Returns Integer data type. MBPM Designer User's Guide 459 Chapter 41 Document Management System Download Document Downloads a document from the Document Management System to the local file system. Parameter Name Description File Name The URL of the file to download. Local File Name Enter the full path and file name where to save the document on the local file system. Returns Integer data type. Get Document Author Returns the author of the document. Parameter Name Description File Name The URL of the file to return the document author. Returns Text data type. Get Document Checked Out By Returns the name of the user who has the document checked out. Parameter Name Description File Name The URL of the file to return the name of the user who has checked the file out. Returns Text data type. Get Document Creation Date Returns the creation date of the document. Parameter Name Description File Name The URL of the file to retrieve the creation date. Returns Date/Time data type. Get Document Editor Returns the name of the user who modified the document. 460 MBPM Designer User's Guide Chapter 41 Document Management System Parameter Name Description File Name The URL of the modified file. Returns Text data type. Get Document Last Modified Returns the last modified date of the document. Parameter Name Description File Name The URL of the file to return the last modified date. Returns Date/Time data type. Get Document Metadata Retrieves metadata for the document. Parameter Name Description File Name The URL of the document to query for metadata. Metadata Column A comma-separated list of metadata field name(s) to retrieve. Returns List data type. Note: You can use the following metadata columns: Metastorm default column names : Title, Modified, ModifiedBy, Created, CreatedBy, CheckedOutTo, and CheckInComment. Custom column names - use the display name. The custom column name is case sensitive. System column name - for example, vti_sourceversioncontrol. Refer to the Microsoft SharePoint SDK help for a list of system column names. For example: Title;vti_sourceversioncontrol;ModifiedBy Get Document Title Returns the document title of the document. Parameter Name Description File Name The URL to the file which the title is to be returned. Returns Text data type. MBPM Designer User's Guide 461 Chapter 41 Document Management System Move Document Moves the document to a new location. Parameter Name Description File Name The URL to the file which is to be moved. Location The URL of the target location. Document Name The document name at the target location. Set Document Metadata Sets metadata values for the document. Parameter Name Description File Name The URL of the file to modify. Metadata Column The metadata column name to modify. Variable Select the variable containing the value to be assigned to the metadata column. The variable can contain any data type. Returns Integer data type. Note: Refer to Get Document Metadata for a list of valid column names. Undo Check Out Document Undoes the Document Management System document checkout and reverts the document to a pre check out state. Parameter Name Description File Name The URL of the file to undo from the checkout state. Returns Integer data type. Upload Document Uploads a document to the Document Management System. 462 MBPM Designer User's Guide Chapter 41 Document Management System Parameter Name Description Server File Name The name of the file to save on the server. Local File The full path and file name of the file to be uploaded. Server Location The location of the DMS Provider. Returns Text data type. Verify Document Verifies that a document exists. Parameter Name Description File name The URL of the file to verify. Returns Check data type. Verify Folder Verifies that a folder exists. Parameter Name Description Folder Name The URL of the folder to verify. Returns Check data type. Content Server Functions The following Content Server functions are available in the Expression Builder: l Browse Content Server l Check In Document l Check Out Document l Delete Document l Download Document l Get Content l Get Document Metadata l Get Node Status l Get Node Status from List l Move Document l Set Document Metadata MBPM Designer User's Guide 463 Chapter 41 Document Management System l Undo Checkout Document l Upload Document l Verify Connection l Verify Document l Verify Folder Note: The “User Name” parameter must be in the following format. {username}@{FQDN} Where {username} is the user name in the Content Server user partition of OpenText Directory Services that executes the DMS command and {FQDN} is the fully qualified domain name. Alternatively, use the “UserName” property of the ProcessContext business object. In this case, the Content Server Designer Library converts the domain\username format of the ProcessContext UserName property into the {username}@{FQDN}format that OpenText Directory Services expects. Browse Content Server Retrieves a string containing the contents of a Content Server location in XML format. Parameter Name Description DMS Connection Select a DMS connection. Server Location Enter a Content Server library, folder, or site as URL. User Name Enter a user name. Check In Document Check in document to the document library. Parameter Name Description DMS Connection Select a DMS connection. File Name Enter the URL to the file for check in. Comments Enter comments to include with the checked in version. User Name Enter a user name. Returns True if the operation is successful; otherwise, returns False. Check Out Document Check document out from a document library. 464 MBPM Designer User's Guide Chapter 41 Document Management System Parameter Name Description DMS Connection Select a DMS connection. File Name Enter URL to the file for check out. User Name Enter a user name. Delete Document Deletes the document from Content Server. Parameter Name Description DMS Connection Select a DMS connection. File Name Enter the URL to the file to delete. User Name Enter a user name. Returns True if the operation is successful; otherwise, returns False. Download Document Downloads the document to the local file system. Parameter Name Description DMS Connection Select a DMS connection. File Name Enter the URL to the file to download. Local File Name Enter the full path where to save the document on the local file system. User Name Enter a user name. Get Content Retrieves a node by ID. This can be a unique value or a URL with all the associated data. Parameter Name Description DMS Connection Select a DMS connection. ID Enter a location or an ID, depending on the DMS for setting a unique identifier for locating the node. MBPM Designer User's Guide 465 Chapter 41 Document Management System Parameter Name Description User Name Enter a user name. Get Document Metadata Retrieves the metadata column(s) for a file. When retrieving custom metadata, use the following format for the metadata column parameter: ' {Category Volume}/{Category Group(s) or Folder(s)}/{Category Name}/ {Attribute Set Name}/{Attribute Name} The metadata column can contain multiple metadata field names. In the following example, the metadata column uses CreatedDate and Description as metadata field names and passes them as a list to Content Server. new List( new string[] { "CreatedDate", "Description", "CategoriesWS/Sample Category 3/Sister/Name" } ) Parameter Name Description DMS Connection Select a DMS connection. File Name Enter the full path to the document to query for metadata. Metadata Column Enter a comma-separated list of metadata field name (s). User Name Enter a user name. Returns List data type. Get Node Status Gets the node status by the ID. Parameter Name Description DMS Connection Select a DMS connection. ID Enter a user ID. User Name Enter a user name. Get Node Status from List Gets the node status by the list of IDs. 466 MBPM Designer User's Guide Chapter 41 Document Management System Parameter Name Description DMS Connection Select a DMS connection. IDs Enter a list of user IDs. User Name Enter a user name. Move Document Moves the document to another location within Content Server. Parameter Name Description DMS Connection Select a DMS connection. File Name Enter the URL to the file to move. Location Enter the new location to move the document to. Document Name Enter the name to save the document under the new location. User Name Enter a user name. Returns True if the operation is successful; otherwise, returns False. Set Document Metadata Assigns a value to a metadata column. When modifying custom metadata, use the same format as the metadata column parameter of Get Document Metadata. Note: The metadata column name in Set Document Metadata accepts single column names only. You can use the following default names with Get Document Metadata and Set Document Metadata: CreatedDate, Description, DisplayType, ID, ModifiedDate, Name, Nickname, Type, ShortLink, Location. Parameter Name Description DMS Connection Select a DMS connection. File Name Enter the full URL of the file to modify. Metadata Column Enter the meta data column name to modify. MBPM Designer User's Guide 467 Chapter 41 Document Management System Parameter Name Description Variable Select the variable whose value is to be assigned to the meta data column. User Name Enter a user name. Returns Check data type. Undo Check Out Document Undo the check out of a document. Parameter Name Description DMS Connection Select a DMS connection. File Name Enter URL to the file for check out. User Name Enter a user name. Returns True if the operation is successful; otherwise, returns False. Upload Document Uploads or updates a File to Content Server. Parameter Name Description DMS Connection Select a DMS connection. Server Location Enter the name of the file to save on the server. Local File Enter the full path to the file to upload. User Name Enter a user name. Verify Connection Verifies if a valid connection to the DMS provider is possible, using the authentication mechanism. Parameter Name Description DMS Connection Select a DMS connection. Returns Check data type. Verify Document Verifies if the file exists. 468 MBPM Designer User's Guide Chapter 41 Document Management System Parameter Name Description DMS Connection Select a DMS connection. File Name Enter a URL to the file for verification. User Name Enter a user name. Returns True if the operation is successful; otherwise, returns False. Verify Folder Verifies if the folder exists. Parameter Name Description DMS Connection Select a DMS connection. Folder Name Enter a URL to the folder for verification. User Name Enter a user name. Returns True if the operation is successful; otherwise, returns False. Content Server DMS Provider Activities The following is a list of the Content Server DMS Provider activities: l Get Node Status l Get Node Status from list l Get Root Node Types l Verify Connection l Get Contents l Populate Contents l Get Content l Upload Document l Browse Content Server l Check In Document l Check Out Document l Create Folder l Delete Folder l Move Document l Delete Document l Download Document l Get document Metadata l Set document Metadata MBPM Designer User's Guide 469 Chapter 41 Document Management System The following section describes the activities and its properties. Note: The “User Name” property must be in the format expected by the OpenText Directory Service (OTDS). Refer to Content Server Functions for further information regarding the required format. All Activities The following properties are applicable to all the Activities in the Content Server DMS Provider Activities: Property Name Description Name Enter a unique name to identify this activity in the Visual Script. Caption Enter a caption for the Activity. The caption is the text that is displayed for the Activity in the Visual Script. Description Enter a description for the Activity. Enabled Select to enable/disable the Activity. Get Node Status Gets the node status by the ID. Property Name Description DMS Connection Select a DMS connection. ID Enter a user ID. User Name Enter a user name. Get Node Status from List Gets the node status by the list of IDs. Property Name Description DMS Connection Select a DMS connection. IDs Enter a list of user IDs. User Name Enter a user name. 470 MBPM Designer User's Guide Chapter 41 Document Management System Get Root Node Types Gets the root node types. Property Name Description DMS Connection Select a DMS connection. Verify Connection Verifies if a valid connection to the DMS provider is possible, using the authentication mechanism. Property Name Description DMS Connection Select a DMS connection. Get Contents Retrieves a node by ID which can be a unique value or a URL with all the associated data. Property Name Description DMS Connection Select a DMS connection. Contents IDs Enter a list of content IDs. They can either be a location or an ID, depending on the DMS for setting a unique identifier for locating the node. User Name Enter a user name. Populate Contents Populates the child contents of a mode in the Content Server tree. Property Name Description DMS Connection Select a DMS connection. Content Option Enter a node to retrieve the child contents. User Name Enter a user name. Get Content Retrieves a node by ID which can be a unique value or a URL with all the associated data. MBPM Designer User's Guide 471 Chapter 41 Document Management System Property Name Description DMS Connection Select a DMS connection. ID Enter a location or an ID, depending on the DMS for setting a unique identifier for locating the node. User Name Enter a user name. Upload Document Uploads or updates a File to Content Server. Property Name Description DMS Connection Select a DMS connection. Server Location Enter the name of the file to save on the server. Local File Enter the full path to the file to upload. User Name Enter a user name. Browse Content Server Retrieves the contents of a Content Server location in XML format. Property Name Description DMS Connection Select a DMS connection. Server Location Enter a Content Server Library, Folder, or Site as URL. User Name Enter a user name. Check In Document Check in document to the document library. Property Name Description DMS Connection Select a DMS connection. File Name Enter the URL to the file for check in. 472 MBPM Designer User's Guide Chapter 41 Document Management System Property Name Description Comments Enter comments to include with the checked in version. User Name Enter a user name. Check Out Document Check document out from a document library. Property Name Description DMS Connection Select a DMS connection. File Name Enter URL to the file for check out. User Name Enter a user name. Create Folder Creates a folder in Content Server. Property Name Description DMS Connection Select a DMS connection. Location Enter the full path where the folder is to be created in the Content Server workspace. Folder Name Enter the folder name. User Name Enter a user name. Returns IDmsContent type. Delete Folder Deletes a folder in Content Server. Property Name Description DMS Connection Select a DMS connection. Folder Name Enter the path of the folder to delete. User Name Enter a user name. Returns Check Type (True or False). MBPM Designer User's Guide 473 Chapter 41 Document Management System Move Document Moves the document from one location to another within Content Server. Property Name Description DMS Connection Select a DMS connection. File Name Enter the URL to the file to move. Location Enter the new location to move the document to. Document Name Enter the name to save the document under the new location. User Name Enter a user name. Delete Document Deletes the document from Content Server. Property Name Description DMS Connection Select a DMS connection. File Name Enter the URL to the file to delete. User Name Enter a user name. Download Document Downloads the document to the local file system. Property Name Description DMS Connection Select a DMS connection. File Name Enter the URL to the file to download. Local File Name Enter the full path where to save the document on the local file system. User Name Enter a user name. Get Document Metadata Retrieves the metadata column(s) for a file. 474 MBPM Designer User's Guide Chapter 41 Document Management System Property Name Description DMS Connection Select a DMS connection. File Name Enter the full path to the document to query for meta data. Metadata Column Enter a comma-separated list of metadata field name (s) to retrieve. User Name Enter a user name. Set Document Metadata Assigns a value to a metadata column. Property Name Description DMS Connection Select a DMS connection. File Name Enter the full URL of the file to modify. Metadata Column Enter the meta data column name to modify. Variable Select the variable whose value is to be assigned to the meta data column. User Name Enter a user name. MBPM Designer User's Guide 475 476 MBPM Designer User's Guide Chapter 42 Accessiblity Chapter 42 Accessiblity Designing an accessible process The MBPM Process Engine is accessible to users with disabilities. This chapter describes points to consider when designing accessible processes. Section 508 In 1998, American Congress updated section 508 of the Rehabilitation Act of 1973 to reflect a focus on technology. Section 508 aims to provide employees with disabilities access to the same systems and information as those without disabilities. Enforceable standards were put in place that define what makes a product considered accessible to people with disabilities. For further information on Section 508 refer to www.section508.gov. Keyboard navigation It is possible to navigate through most of the MBPM Process Engine using only the keyboard. The following are exceptions where a mouse must be used: l Date picker l Time picker The date and time pickers are visual controls which can be used to select a date or time. Date and time fields can be completed using the keyboard. Using a keyboard to move through the items of a drop-down which has dependants causes each dependant field to be updated. We therefore recommend using a button to update the required field. Internet Explorer Text Size Setting the text size in Internet Explorer affects the text in the MBPM Process Engine To Do, Watch, Blank Forms or Admin Forms list, but does not affect form content. This is under the control of the process developer. The process developer may set the font size of text in an MBPM form using the options on the form’s Property Editor. Doing this will affect each field’s associated label, the text within each field and the size of each field. The process developer must set the font size of label fields separately, using the Font option on the label’s Property Editor. MBPM Designer User's Guide 477 Chapter 42 Accessiblity JAWS Support An unsighted user may use the MBPM Process Engine with the aid of the JAWS screen reader. When designing procedures that will be accessed by JAWS users, be aware of the following: Placing fields When JAWS reads the contents of a form to the user, it reads the contents in the order in which the fields appear on the form (from the top left to the bottom right). You can aid the user by aligning each field caption to the left or top of the field. This will ensure that JAWS reads any useful information about the field before reaching the field itself. Form fields JAWS announces regular HTML field types to the user. It tells the user the field type, and in some cases provides instructions on how to populate the field. In MBPM there are some complex field types that are made up of several HTML commands. JAWS does not know how to announce these MBPM specific fields. Make use of field captions and labels to help the user complete these fields. MBPM specific fields include: l Clips The buttons on multiple attachment fields allow you to add, open and delete attachments. These can be accessed by the TAB key. l Currencies l Date times l Grids l Rules l Numbers l Signatures l Status Invalid Characters If the user attempts to enter a letter into a Number or Currency field, JAWS reads out the letter but MBPM does not display the letter in the field. The user must tab out and back into the field to find out which characters have been successfully entered. It may be helpful to include a Label next to the field, which suggests that the user checks the contents of the field before submitting the form. If the user enters an invalid character into a masked Edit field, a Number or a Currency field with the Min or Max property set, JAWS reads out the character, and MBPM displays it in the field and allows other characters to be entered. When the user tabs out of the field a message is displayed that states that the field data is invalid. JAWS reads out this message. The user will not be able to submit the form until the data in the field is valid. 478 MBPM Designer User's Guide Chapter 42 Accessiblity Configuring JAWS JAWS users will need to configure their JAWS keyboard options. JAWS uses the INSERT key as a ‘modifier’ key. INSERT is pressed in combination with other keys to activate commands. MBPM uses the INSERT key to allow you to insert a row into an editable grid. To insert a row into an editable grid when running JAWS, configure JAWS to use just the numeric keypad INSERT as the JAWS modifier key. This leaves the extended INSERT key free for use in an editable grid. Navigating to the submit and cancel buttons on a form To access submit or cancel buttons in a form, use TAB key. For further information on keyboard navigation of the MBPM Web Client see the MBPM Web Client User's Guide. MBPM Designer User's Guide 479 480 MBPM Designer User's Guide Chapter 43 MBPM Reserved Words Chapter 43 MBPM Reserved Words The following table contains MBPM reserved words that should not be used for names of components, controls, and so on. Metastorm Integer Text Check List Declarations _parent Currency Memo Instances Type DateTime Real Flags Client MBPM Designer User's Guide FlagDataDeclarations 481 482 MBPM Designer User's Guide Chapter 44 OpenText Mobile BPM Chapter 44 OpenText Mobile BPM OpenText Mobile BPM provides users with the ability to initiate processes and monitor their process lists on a range of mobile devices. The following topics describe the MBPM Form controls that are supported in the Mobile Client and highlight the behavior of some of the MBPM Form controls in the Mobile Client. Supported Form Controls in Mobile Client The following form controls are supported in the Mobile Client: l Attachment Clip l Checkbox l Command Button l Currency l Date/Time l Drop-down l Form Segment l Image l Label l List l Memo l Multi-clip l Number l Panel l Radio Group l Status l Text Unsupported Features and Form Controls in Mobile Client The following features are not supported in the Mobile Client: l Chained actions l Client scripts MBPM Designer User's Guide 483 Chapter 44 OpenText Mobile BPM l Custom lists l Reopen folder l Reports The following controls are also not supported in the Mobile Client: l Grid l Person l Rich Text l Rule l Signature Field Behavior The following table lists the form controls and their properties that are not supported in the Mobile Client. Control Properties that are not supported Text Position, Width, Anchor, Caption Alignment, Field Alignment, On field entry, On field exit Label Position, Size, Anchor, Field Alignment, Font and its sub-properties (except Bold), Client Extension Button Position, Size, Anchor, Client Extension, Button Action>Client operations, When button pressed (Client script event handler) Number, Position, Width, Anchor, Caption Alignment, On field entry, On field exit, Client Extension Currency, Date/Time, Drop-down, Checkbox Image Position, Anchor, Size1,Client Extension, Description Memo Position, Size, Anchor, Caption Alignment, On field entry, On field exit, Client Extension 1 If the image is wider than the device screen, it is adjusted proportionally to the device screen width and height. If the image is narrower than the device screen, it is not adjusted. 484 MBPM Designer User's Guide Chapter 44 OpenText Mobile BPM Control Properties that are not supported Clip Position, Anchor, Client Extension, DMS Support Multi-clip Position, Size, Anchor, Client Extension, DMS Support, When user selects row Panel Position, Size, Anchor, Color, Dock Form Segment Position, Size, Anchor, Dock List Position, Size, Anchor, On field entry, On field exit, Client Extension Status Position, Anchor, On field entry, On field exit, Client Extension, Drill-down Note: Hint property is supported only on desktop browsers for the following controls: l Text l Button l Number l Memo l Clip l Multi-clip l List l Status Alignment In the Mobile Client, all form controls will be placed one below the other aligned ordered by the tab index values specified in the MBPM Designer. Action Description and Help URL To use Action description and Help URL properties: 1. Create a Process. 2. In the action's property pane, enter the following: l Description: Description of the action (For example, Check rating) l HelpURL: Static or dynamic URL (For example, "www."+ BO.variable +".com") where: l BO is a Business Object associated with the Process l variable is a Process Variable associated with BO. MBPM Designer User's Guide 485 Chapter 44 OpenText Mobile BPM 3. Save the process. 4. Deploy the process. 5. Open the Mobile Client. The action description is displayed as follows: The help URL is displayed as follows: Clicking on the help URL displays the help in a new tab. For some devices, such as Windowsbased phone, the help will open in the same window. Click 'Back' button to navigate back to the Form. Help URL button will be available when an action, associated with a form, is opened. If the action is not associated with any form, irrespective of whether the confirm action property is selected or de-selected, the URL will not be available. Command Button For a Command Button control in the MBPM Designer, ‘Button action’ property can be set to one of the following operations: l Cancel action l Commit action l Initiate a process l Open existing folder l Server operation Note: Client Scripts is not supported in the Mobile Client. The following topic describes the ‘Button action’ properties and its behavior in the Mobile Client. 486 MBPM Designer User's Guide Chapter 44 OpenText Mobile BPM l l l Cancel action: Cancels the form without saving any changes. Commit action: Updates the database with any changes made to the form and may move the folder to the next stage. When a commit action is performed, form is closed, action is committed, current stage is completed, and the next stage is started. Initiate a process: Opens the associated form in a new tab. After the form is submitted or canceled, the tab is closed and control is returned to the initiator form. Note: On some devices, such as Windows-based phone, a new tab is not opened. Instead, the form displays in the current tab. n When using a confirm action, a pop-up message displays. Click OK to confirm the action. A brief message displays to indicate that the action is submitted successfully. n l l When using a non-confirm action, a brief message displays to indicate that the action is submitted successfully. Open existing folder: Opens a folder created previously by this or another process, as specified in MBPM Designer. The folder opens in a new tab in the Mobile Client. Server operation: Uses the 'When button pressed' script specified in the MBPM Designer to perform an operation specified by the script. This is the default action. Attachment Clip The following topic describes the behavior of an attachment clip in the Mobile Client when form is opened at an action and a stage. Supported Devices The attachment clip is supported on the following devices: l Android l Blackberry l iOS 6 (upload pictures only) Attachment clip on a form at a stage Attachment clip on a form opened at a stage can have one of the following properties: l Read-only and empty l Read-only and non-empty When a form with an attachment clip is opened at a stage, the following restrictions apply: l Existing attached files can be opened and saved but cannot be deleted. l Files cannot be uploaded. To open or save an attachment, click the link to the attached file. If the file has a supported program installed, the file is opened with the associated program in the device. If not, you are prompted to save the file on your device. Note: On iPhone and iPad, unsupported file attachments cannot be opened or saved. Instead, a warning message is displayed. Attachment clip on a form at an action Attachment clip on a form opened at an action can have one of the following properties: MBPM Designer User's Guide 487 Chapter 44 OpenText Mobile BPM l Read-only and empty l Read-only and non-empty l Editable and empty l Editable and non-empty When a form with an attachment clip is opened at an action and the clip is editable, the following operations can be performed: l Attachment can be deleted. l File can be uploaded. l Attachment can be opened or saved. Features of an editable clip l l l An 'Add file' link is displayed to add a file to the attachment clip. Required attachment clip field has a red asterisk to the right of the caption of the clip indicating that the field cannot be empty. A red X button is displayed to the right of the clip to enable deleting the attachment. Note: DMS functionality of attachment clip and multi-clip controls are not supported in the Mobile Client. Multi Clip The multi-clip behavior and supported devices are similar to an Attachment Clip. Following are the exceptions: l Multiple files can be attached to a multi-clip. l Multi-clip fields do not have a caption. l l Required multi-clip field has a red asterisk next to the 'Add file' link indicating that the field cannot be empty. File size is displayed for files uploaded to a multi-clip. The 'When user selects row' property of the multi-clip control is not supported on the Mobile Client. Status Drill down to property is not supported for Status controls. The Safety Hint, Warning Hint, and Danger Hint properties are supported and shown as captions for status control for all devices. GPS To use GPS coordinates on a Form: 1. In MBPM Designer, add a text control to a form and set the text control's client extension property to GPS. 2. Open the form in the mobile device.You will be prompted to share your location. 488 MBPM Designer User's Guide Chapter 44 OpenText Mobile BPM If you allow to share your location, when the form is opened or refill operation occurs, the text control is populated with GPS coordinates of current location in the format: [Latitude], [Longitude]. For example, 43.17539, 42.27507.If 'Share location' is off or if you do not allow 'Share location', an error message is displayed. Click OK on the error and the form will open but the text field will not contain GPS coordinates. If a text control has the client extension property set to GPS and uses a calculated value, such as ProcessContext.ClientType, the GPS coordinates display on the form at an action in the process. The “Share location” setting must be on to display calculated values on the form at a stage in the process. If “Share location” is off, calculated values display on the form at action and stage in a process. When a form loads or a refill operation is performed, GPS data is displayed. However, form at a stage does not cause the text box to refresh. Note: If you used earlier versions of MBPM Mobile and used the realLat and realLong fields to display GPS data, you must update and redeploy your solutions to display GPS data. MBPM Mobile no longer supports realLat and realLong fields. MBPM Designer User's Guide 489 490 MBPM Designer User's Guide