P. 1
7106514 Tib Bw Process Design Guide

7106514 Tib Bw Process Design Guide

|Views: 340|Likes:
Published by Swit Tei

More info:

Published by: Swit Tei on Aug 26, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

05/25/2012

pdf

text

original

Sections

  • How to Contact TIBCO Customer Support
  • Chapter1 Getting Started With TIBCO Designer
  • Welcome to TIBCO Designer
  • Starting TIBCO Designer
  • Starting the Program
  • Startup Options
  • Figure1 TIBCO Designer startup panel
  • Table1 Startup panel Project options
  • TIBCO Designer Administration
  • Table2 Startup panel Administration options
  • TIBCO Designer Interface Overview
  • Main Window
  • Figure3 The TIBCO Designer window
  • Project Panel
  • Project Display
  • Resources
  • Palette Panel
  • Design Panel
  • Configuration Panel
  • Customizing the Display
  • Choosing Panel Layout
  • Choosing Palette Mode or Non-palette Mode
  • Displaying Palettes in a Separate Window
  • Working With User Palettes
  • Documentation
  • Chapter2 Managing Projects and Resources
  • Overview of Projects
  • Project Structure
  • Using a Version Control System
  • Project Templates
  • Creating Projects
  • Validating Projects
  • Saving Projects
  • Saving a Project as a Template
  • Project Settings
  • Opening and Reopening Projects
  • Adding Resources To Your Project
  • If Adding a Resource Results in an Error
  • Deleting Projects
  • Tips and Tricks for Working With Projects
  • Chapter3 Processes
  • Business Process Modeling
  • TIBCO BusinessWorks Solves Enterprise Integration Problems
  • Overview of Processes
  • Process Definitions
  • •Activities
  • Activities
  • Transitions
  • Groups
  • Shared Configuration Resources
  • Subprocesses
  • Developing Process Definitions
  • Chapter4 Activities
  • Activity Overview
  • Activity Icons
  • Configuration
  • Advanced
  • Event
  • Editor
  • Table6 Content types for schema elements
  • Input
  • Mapping and Transforming Activity Input Data
  • Output
  • Process Starters
  • Misc Tab
  • Start Activity
  • Output Editor
  • End Activity
  • •Configuration
  • •Input Editor
  • Input Editor
  • Error Schemas
  • Chapter5 Transitions and Conditions
  • Creating a Transition
  • Conditions
  • Chapter6 Grouping Activities
  • Overview of Groups
  • Activity Output and Groups
  • Group Configuration Tab
  • No Action Groups
  • Overview of Loops
  • Index Variable
  • Accumulate Output
  • Iterate Loop
  • Iteration Element
  • Repeat Until True Loop
  • Repeat On Error Until True Loop
  • Suspend If Still Error Option
  • Critical Section Groups
  • Synchronization Options
  • Usage Guidelines
  • Pick First Groups
  • Chapter7 Working With Variables
  • Overview of Variables
  • Global Variables
  • Advanced Variables Editor
  • Changing Global Variable Values at Runtime
  • Process Variables
  • •Activity Output
  • •Predefined Process Variables
  • Activity Output
  • Predefined Process Variables
  • Error Process Variables
  • User-Defined Process Variables
  • Memory Usage of Process Variables
  • Shared Variables
  • •Shared Variable
  • Shared Variable
  • Job Shared Variable
  • Configuring Shared Variables
  • Assigning and Retrieving the Variable’s Value
  • Synchronizing Access to Shared Variables
  • Chapter8 Mapping and Transforming Data
  • Overview of Mapping and Transformation
  • Process Data Panel
  • Activity Input Panel
  • Mapping and Transforming Process Data to Activity Input
  • Statements, Hints, and Errors
  • Buttons, Menus, and Icons
  • Toolbar and Right-Click Menu on the Input Tab
  • Icons for Schema Element Datatypes
  • Qualifier Icons
  • Specifying Constants
  • Date and Datetime Strings in Constants
  • Data Validation
  • Repairing Incorrect Mappings
  • Shortcuts
  • Right-Click Menu
  • Dragging to the Left
  • Cutting and Pasting
  • Automatic Testing
  • Example of Mapping Required, Optional, and Nillable Elements
  • Examples of Mappings
  • Using XPath
  • Setting an Element Explicitly to Nil
  • Merging Input from Multiple Sources
  • Converting a List Into a Grouped List
  • Merging Two Corresponding Lists
  • Coercions
  • XSLT Statements
  • Attribute
  • Choose
  • Comment
  • Copy
  • Copy-Contents-Of
  • Copy-Of
  • Element
  • For-Each
  • For-Each-Group
  • Generate Comment
  • Generate PI
  • If
  • Value-Of
  • Variable
  • Chapter9 XPath
  • XPath Basics
  • Addressing Schema Elements
  • Evaluation Context
  • Namespaces
  • Search Predicates
  • Testing For Nil
  • Comments
  • The XPath Formula Builder
  • Table14 XPath formula builder elements
  • String Representations of Datatypes
  • Date and Time Functions
  • Table15 Formatting characters in date or time strings
  • Chapter10Error Handling
  • Overview of Error Handling
  • The Error Process Variables
  • $_error Process Variable
  • $_error_<activityName> Process Variables
  • Error Propagation
  • Group Error Propagation
  • Called Process Error Propagation
  • Process Error Schemas
  • Chapter11Transactions
  • Overview of Transactions
  • Types of Transactions
  • JDBC
  • Multiple JDBC Connections In Transaction Groups
  • Configuring JDBC Transactions
  • Java Transaction API (JTA) UserTransaction
  • Configuring JTA UserTransaction Transactions
  • XATransaction
  • Configuring XA Transactions
  • Configuring Third-Party Transaction Managers
  • Transaction Recovery
  • Nested Transactions
  • Table17 Effects of nesting transaction groups
  • Summary of Transactions
  • Table18 JDBC transaction type
  • Table20 JTA UserTransaction type
  • Chapter12Process Instance Execution
  • Detecting Duplicate Process Instances
  • When to Perform Checkpoints
  • Specifying the Duplicate Key
  • Transactions and Duplicate Detection
  • Handling Duplicate Messages
  • Process Engine Properties for Duplicate Detection
  • Sequencing Process Instances
  • Example 1: Processing Orders As They Are Received
  • Example 2: Periodic Processing
  • Example 3: Handling Client Messages
  • Logging for Third-Party Components
  • Chapter13Inter-Process Communication
  • Overview of Inter-Process Communication
  • Data for Inter-Process Communication
  • Coordinating Inter-Process Communication
  • Specifying the Key
  • Timeouts for Notify and Wait
  • Database Storage for Wait/Notify/Receive Notification Information
  • Examples of Inter-Process Communication
  • Enforcing Order for Process Execution
  • Multiple Types of Incoming Events Resume a Running Process
  • Scalability With Incoming Events
  • Specific Protocol Requirements
  • Chapter14Testing Process Definitions
  • Overview of Testing
  • Breakpoints
  • The Test Panel
  • Process Instances During Testing
  • Loading Processes to Test
  • Creating Process Instances
  • Working With Process Instances
  • Stepping Through a Process
  • Colors in Test Mode
  • Test Mode Buttons and Menus
  • AppendixAWorking with a Revision Control System
  • Overview
  • Icons Used by RCS Projects
  • Deleting RCS Projects
  • File Sharing
  • •Preparing for File Sharing on Microsoft Windows on page216
  • •Preparing for File Sharing on UNIX on page216
  • •Using File Sharing on page216
  • Preparing for File Sharing on Microsoft Windows
  • Preparing for File Sharing on UNIX
  • Using File Sharing
  • Microsoft Visual SourceSafe
  • •Visual SourceSafe Setup on page218
  • Visual SourceSafe Setup
  • Using Microsoft Visual SourceSafe
  • Perforce Fast Software Configuration Management System
  • Prerequisites
  • Using Perforce
  • Figure47 Save Project Options for Perforce Version Control System
  • XML Canon
  • Features
  • Checking In and Acquiring Resources
  • Step 2: Check in the project
  • Viewing Revision Control Information
  • Table24 Revision control system information
  • Deleting XML Canon Projects
  • Tips and Tricks
  • Tips and Tricks for Using Version Control Systems
  • Access Rights on Resources
  • AppendixBCustom Engine Properties
  • Overview of Custom Engine Properties
  • Setting Custom Engine Properties for the Testing Environment
  • Setting Custom Engine Properties in Deployed Projects
  • Available Custom Engine Properties
  • Engine Properties
  • TIBCO Hawk Properties
  • Trace Properties
  • TIBCO Rendezvous Advisory Messages
  • HTTP Properties
  • JDBC Properties
  • JMS Properties
  • Mail Properties
  • Properties for Backwards Compatibility
  • AppendixCTIBCO Hawk MicroAgent Methods
  • Enabling TIBCO Hawk
  • TIBCO Hawk Microagent Methods
  • GetExecInfo
  • GetProcessDefinitions
  • GetStaticActivityInfo
  • GetProcesses
  • GetActivities
  • GetProcessStarters
  • GetProcessesExceptions
  • SuspendAll
  • ResumeAll
  • KillAllProcesses
  • SuspendProcess
  • ResumeProcess
  • KillProcess
  • SuspendProcessStarter
  • ResumeProcessStarter
  • ListTraceProperties
  • SetTraceProperty
  • ListInstrumentProperties
  • SetInstrumentProperty
  • ListAllRoles
  • ListUserDefinedRoles
  • GetProcessCount
  • GetMemoryUsage
  • stopApplicationInstance
  • DelayedStopApplicationInstance
  • GetStatus
  • OnProcessStatusChanged
  • OnProcessActivity
  • getHostInformation
  • ConfigureAllTracing
  • ConfigureActivityTracing
  • ConfigureProcessStarterTracing
  • ConfigureUserDefinedTracing
  • ConfigureRole
  • IsAllTracingEnabled
  • IsActivityTracingEnabled
  • IsProcessStarterTracingEnabled
  • IsRoleEnabled
  • ResetActivityStats
  • ResetProcessDefinitionStats
  • OnProcessAdded
  • OnProcessRemoved
  • _onUnsolicitedMsg

TIBCO® BusinessWorks Process Design Guide

Software Release 5.2.1 May 2005

Important Information
SOME TIBCO SOFTWARE EMBEDS OR BUNDLES OTHER TIBCO SOFTWARE. USE OF SUCH EMBEDDED OR BUNDLED TIBCO SOFTWARE IS SOLELY TO ENABLE THE FUNCTIONALITY (OR PROVIDE LIMITED ADD-ON FUNCTIONALITY) OF THE LICENSED TIBCO SOFTWARE. THE EMBEDDED OR BUNDLED SOFTWARE IS NOT LICENSED TO BE USED OR ACCESSED BY ANY OTHER TIBCO SOFTWARE OR FOR ANY OTHER PURPOSE. USE OF TIBCO SOFTWARE AND THIS DOCUMENT IS SUBJECT TO THE TERMS AND CONDITIONS OF A LICENSE AGREEMENT FOUND IN EITHER A SEPARATELY EXECUTED SOFTWARE LICENSE AGREEMENT, OR, IF THERE IS NO SUCH SEPARATE AGREEMENT, THE CLICKWRAP END USER LICENSE AGREEMENT WHICH IS DISPLAYED DURING DOWNLOAD OR INSTALLATION OF THE SOFTWARE (AND WHICH IS DUPLICATED IN THE TIBCO BUSINESSWORKS CONCEPTS). USE OF THIS DOCUMENT IS SUBJECT TO THOSE TERMS AND CONDITIONS, AND YOUR USE HEREOF SHALL CONSTITUTE ACCEPTANCE OF AND AN AGREEMENT TO BE BOUND BY THE SAME. This document contains confidential information that is subject to U.S. and international copyright laws and treaties. No part of this document may be reproduced in any form without the written authorization of TIBCO Software Inc. TIB, TIBCO, Information Bus, The Power of Now, TIBCO Rendezvous, TIBCO InConcert,TIBCO Administrator, TIBCO Adapter, and TIBCO BusinessWorks are either registered trademarks or trademarks of TIBCO Software Inc. in the United States and/or other countries. EJB, J2EE, JMS and all Java-based trademarks and logos are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All other product and company names and marks mentioned in this document are the property of their respective owners and are mentioned for identification purposes only. This software may be available on multiple operating systems. However, not all operating system platforms for a specific software version are released at the same time. Please see the readme.txt file for the availability of this software version on a specific operating system platform. THIS DOCUMENT IS PROVIDED “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT. THIS DOCUMENT COULD INCLUDE TECHNICAL INACCURACIES OR TYPOGRAPHICAL ERRORS. CHANGES ARE PERIODICALLY ADDED TO THE INFORMATION HEREIN; THESE CHANGES WILL BE INCORPORATED IN NEW EDITIONS OF THIS DOCUMENT. TIBCO SOFTWARE INC. MAY MAKE IMPROVEMENTS AND/OR CHANGES IN THE PRODUCT(S) AND/OR THE PROGRAM(S) DESCRIBED IN THIS DOCUMENT AT ANY TIME. Copyright © 2001-2005 TIBCO Software Inc. ALL RIGHTS RESERVED. TIBCO Software Inc. Confidential Information

| iii

Contents

Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii
Related Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xviii TIBCO BusinessWorks Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xviii Other Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xviii How to Contact TIBCO Customer Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix

Chapter 1 Getting Started With TIBCO Designer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Welcome to TIBCO Designer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Starting TIBCO Designer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Starting the Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Startup Options. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 TIBCO Designer Administration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 TIBCO Designer Interface Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Main Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Project Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Palette Panel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Design Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Configuration Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Customizing the Display . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Choosing Panel Layout. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Choosing Palette Mode or Non-palette Mode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Displaying Palettes in a Separate Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Working With User Palettes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 13 15 17 17

Documentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

Chapter 2 Managing Projects and Resources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Overview of Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Project Structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Using a Version Control System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Project Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 20 21 21

Creating Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
TIBCO BusinessWorks Process Design Guide

iv

| Contents
Validating Projects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Saving Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Saving a Project as a Template . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Project Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Opening and Reopening Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Adding Resources To Your Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 If Adding a Resource Results in an Error. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Deleting Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Tips and Tricks for Working With Projects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

Chapter 3 Processes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Business Process Modeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 TIBCO BusinessWorks Solves Enterprise Integration Problems. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Overview of Processes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Process Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Activities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Transitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 Shared Configuration Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 Subprocesses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Developing Process Definitions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

Chapter 4 Activities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Activity Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Activity Icons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 Configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 Advanced . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 Event . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Editor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 Input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 Mapping and Transforming Activity Input Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 Process Starters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 Misc Tab. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 Start Activity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Output Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 61 61 61

TIBCO BusinessWorks Process Design Guide

Contents v

|

End Activity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Input Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Error Schemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

62 62 62 63 63

Chapter 5 Transitions and Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Transitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 Creating a Transition. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

Chapter 6 Grouping Activities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Overview of Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 Activity Output and Groups. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 Group Configuration Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 No Action Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 Overview of Loops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 Index Variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 Accumulate Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 Iterate Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 Iteration Element. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 Repeat Until True Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 Repeat On Error Until True Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 Suspend If Still Error Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 Critical Section Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 Synchronization Options. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 Usage Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 Pick First Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

Chapter 7 Working With Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Overview of Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 Global Variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 Advanced Variables Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 Changing Global Variable Values at Runtime. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 Process Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 Activity Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 Predefined Process Variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 Error Process Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 User-Defined Process Variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 Memory Usage of Process Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

TIBCO BusinessWorks Process Design Guide

vi

| Contents
Shared Variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Shared Variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Job Shared Variable. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Configuring Shared Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Assigning and Retrieving the Variable’s Value. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 101 101 101 103

Chapter 8 Mapping and Transforming Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Overview of Mapping and Transformation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Process Data Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Activity Input Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Mapping and Transforming Process Data to Activity Input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Statements, Hints, and Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Buttons, Menus, and Icons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Toolbar and Right-Click Menu on the Input Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Icons for Schema Element Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Qualifier Icons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 106 107 107 108 108 108 111 112

Specifying Constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 Date and Datetime Strings in Constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 Data Validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 Repairing Incorrect Mappings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 Shortcuts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Right-Click Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Dragging to the Left . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cutting and Pasting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Automatic Testing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Examples of Mappings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Using XPath . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Setting an Element Explicitly to Nil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Merging Input from Multiple Sources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Converting a List Into a Grouped List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Merging Two Corresponding Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Coercions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XSLT Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Choose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Comment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Copy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Copy-Contents-Of . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Copy-Of . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Element . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . For-Each . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . For-Each-Group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 119 119 120 121 124 124 124 126 131 134 137 141 141 142 142 142 142 143 143 143 144

TIBCO BusinessWorks Process Design Guide

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 144 144 145 145 Chapter 9 XPath . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Comments . Value-Of . . . . . . . 164 Process Error Schemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Search Predicates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Configuring Third-Party Transaction Managers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 Error Propagation . . . . . . . . . . . . 155 Chapter 10 Error Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 Chapter 11 Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Variable. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 Java Transaction API (JTA) UserTransaction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 Called Process Error Propagation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 148 149 149 150 150 150 The XPath Formula Builder . . . . . . . . Addressing Schema Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 172 174 176 Nested Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 XATransaction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 XPath Basics . . . . . . . . . . . . . . . . . . . . . Evaluation Context . . . . . . . . . . . . 162 Group Error Propagation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 Overview of Error Handling . . . . . . . . . . . . . . . 160 $_error Process Variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Transaction Recovery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Contents vii | Generate Comment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Configuring XA Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 Configuring JDBC Transactions . . . . . . . . . . . . . . . . . . . . . . 153 Date and Time Functions. . . . 170 Configuring JTA UserTransaction Transactions . . . . . . . . . . . . . . . 160 The Error Process Variables . . . . . . . . . . . . . . Testing For Nil. . . . . . . . . . . . . . . . . . . . . . . . . . . . . If . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 Multiple JDBC Connections In Transaction Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 Types of Transactions . . . . . . . . . . . . . . . . 167 Overview of Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 $_error_<activityName> Process Variables . . . . . . Namespaces. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Generate PI . . . . . . . . . . . . . 179 TIBCO BusinessWorks Process Design Guide . . . . . . . . . . . 151 String Representations of Datatypes . . 168 JDBC . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 Database Storage for Wait/Notify/Receive Notification Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Transactions and Duplicate Detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Multiple Types of Incoming Events Resume a Running Process. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 Specifying the Key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 Detecting Duplicate Process Instances. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 The Test Panel . . . . . . . . . . . . . . . . . . . . . . . . 184 185 185 186 186 187 187 188 188 189 Logging for Third-Party Components . . . . . . . . . . . . 195 196 196 197 198 Chapter 14 Testing Process Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Specific Protocol Requirements. . . . . . . . Example 3: Handling Client Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Loading Processes to Test. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Handling Duplicate Messages . . . . . 195 Examples of Inter-Process Communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 Chapter 13 Inter-Process Communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . When to Perform Checkpoints . . . . . Creating Process Instances . . . . . . . . . . . . . . . . . 200 Breakpoints . . . . . . . . . . . . . . . . . . . . . . . Process Engine Properties for Duplicate Detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Enforcing Order for Process Execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 Process Instances During Testing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Example 2: Periodic Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 Overview of Testing. . . . . . . . . . . . . . . . . . . . . . Example 1: Processing Orders As They Are Received . . . . . . . . . . Scalability With Incoming Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 Data for Inter-Process Communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 Overview of Inter-Process Communication. . . . . . . . . . . . . . . . . . . . . . . . . . . 207 TIBCO BusinessWorks Process Design Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 Chapter 12 Process Instance Execution . . . . . . . . . . Sequencing Process Instances. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 Colors in Test Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 Coordinating Inter-Process Communication . . . . . . . . . . . . . . . . . . 203 203 203 204 Stepping Through a Process. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 Timeouts for Notify and Wait . . . . . . . . . . . . . . . . . . . .viii | Contents Summary of Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 Test Mode Buttons and Menus . . . . . . . . . Specifying the Duplicate Key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Working With Process Instances . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Preparing for File Sharing on UNIX . . . . . . . . . . . . . . . . . . . . Tips and Tricks . . . . . . . . . . . . . . . . . . . . . . . . HTTP Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . JMS Properties . . . . . . . . . . . . . . . . . . . 213 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 Visual SourceSafe Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 XML Canon . . . . . . . . . . . . . . . . . . . Mail Properties . . . . .Contents ix | Appendix A Working with a Revision Control System . . . . . . . . . Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 Icons Used by RCS Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 Deleting RCS Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 Perforce Fast Software Configuration Management System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 Enabling TIBCO Hawk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 Using Microsoft Visual SourceSafe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 Appendix B Custom Engine Properties . Engine Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 Available Custom Engine Properties . . . . . . . . . . . . . . . . . . . . . . . . Deleting XML Canon Projects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256 TIBCO BusinessWorks Process Design Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 Access Rights on Resources . . . . . . . . TIBCO Hawk Properties . . . . . . . . 241 241 242 244 246 247 249 250 250 251 Appendix C TIBCO Hawk MicroAgent Methods . . . . . . . . . . . . . . . Preparing for File Sharing on Microsoft Windows. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Trace Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 216 216 216 Microsoft Visual SourceSafe . . . . . . . . . . 238 Setting Custom Engine Properties for the Testing Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Prerequisites. . . . . . . . . . . . . . . . 221 Prerequisites. . . . . . . . . . . . . . . . . . . . . . . . . 238 Setting Custom Engine Properties in Deployed Projects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 File Sharing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TIBCO Rendezvous Advisory Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . JDBC Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 225 225 225 231 233 233 Tips and Tricks for Using Version Control Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Using File Sharing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Checking In and Acquiring Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 Using Perforce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Properties for Backwards Compatibility . . . . . . . . . . . 237 Overview of Custom Engine Properties. . . . . . . . . . . . . . . . . . . . . Viewing Revision Control Information . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .x | Contents TIBCO Hawk Microagent Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetProcessStarters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OnProcessRemoved . . . . . . . . . . . . . . . . . . IsActivityTracingEnabled . . . . . . . . . . . . . . . . ConfigureAllTracing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetProcessesExceptions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IsProcessStarterTracingEnabled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ListUserDefinedRoles . . . . . . . . . . . . . . . . . . . . . . . . . . SetInstrumentProperty. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OnProcessStatusChanged . . . . . . . . . . . . _onUnsolicitedMsg. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ConfigureProcessStarterTracing . . . . . . . . SuspendAll. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SuspendProcessStarter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . KillProcess . . . . . . . . . . . . . . . . . . . . SuspendProcess . . . . . . . . . . . . . . . . . . . . GetMemoryUsage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ResetProcessDefinitionStats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OnProcessAdded. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . getHostInformation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetProcessCount . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SetTraceProperty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ListInstrumentProperties . . . . . . . . . . . . . . KillAllProcesses . . . . . . . . . . . . . . . . . . ConfigureActivityTracing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ResumeProcess. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IsAllTracingEnabled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ResumeProcessStarter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ListTraceProperties . . . . . . stopApplicationInstance . . . . . . ResetActivityStats . . . . . . . . . . . . . . . . . . IsRoleEnabled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetProcessDefinitions . . . . . . . . . . ListAllRoles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OnProcessActivity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetProcesses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetStatus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetActivities . . . . . . . . . . . . . . . . . . . . . . . . ConfigureRole . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DelayedStopApplicationInstance . . . . . . . . . . . . . . . . . . 256 256 257 259 259 261 262 264 264 265 265 266 266 267 267 268 268 268 269 269 270 270 271 271 272 272 272 273 274 274 275 275 276 277 277 277 278 278 279 279 280 280 280 281 TIBCO BusinessWorks Process Design Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetExecInfo . . . . . . . . . . . . . . ResumeAll . . . . . . . . . . . . ConfigureUserDefinedTracing . . . . . . . . . . . . . . . . . . . . GetStaticActivityInfo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Contents xi | Index . . . . . . 283 TIBCO BusinessWorks Process Design Guide . .

xii | Contents TIBCO BusinessWorks Process Design Guide .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 Assigning a value to a user-defined process variable . . . . . . . . . . . . . . . . . . . . . . . . . . 67 The transition dialog. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 The XPath formula builder . . . . . optional. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Adding a resource to a project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Developing process definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 The TIBCO Designer window. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 An invalid transition . . . . . . . . . . . . . . . . . . . . 12 The three-panel view . . . . . . . . . . . . . . . . . 27 An example enterprise computing environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . non-palette mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 A process engine creating process instances . . . . . 9 Global variables in project panel . . . . . . . . . . . . . . . . . . . . . . . . . . 32 A business process flow of an example enterprise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 A main process calling a subprocess . . . . . . . . . . . 14 Layout options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 An activity’s input tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Three-panel view with palettes selected . . . 118 Dragging to the left to change a hint to a statement . . . . . . . . . . . 74 Creating a process variable . . . . . . . . . . . . 106 Mapper check and repair dialog . . . . . . . . . . . 15 Palette mode vs. . . . . . . . . . . . . 4 Startup panel Administration options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 Examples of mapping required. . . . . . . . . . . . . . . . . 69 Minimizing and maximizing groups . . . . . . . . . . . . . . . . . 41 Valid transitions . . . . . . . . . . .| xiii Figures Figure 1 Figure 2 Figure 3 Figure 4 Figure 5 Figure 6 Figure 7 Figure 8 Figure 9 Figure 10 Figure 11 Figure 12 Figure 13 Figure 14 Figure 15 Figure 16 Figure 17 Figure 18 Figure 19 Figure 20 Figure 21 Figure 22 Figure 23 Figure 24 Figure 25 Figure 26 Figure 27 Figure 28 TIBCO Designer startup panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 TIBCO BusinessWorks Process Design Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . and nillable elements . . . . . . . . . . . . . . . . . . 8 Project tree in the project panel . . . . . . . . . . . . . . . . . . 35 A newly created process definition. . . . . . . . . . . . . . . . . . . . . . 10 Palette panel changed depending on current selection . . . . . .

. . . . . . . . . . 202 The test panel . . . . 202 Multiple process instances in the test panel . . . . . . . . . . . . . . . . . 196 Multiple event sources to continue a process . . . . . . . . . . . . . . . . 231 TIBCO BusinessWorks Process Design Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 XML Canon Check In Dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 The Error Schemas tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 Example of periodic processing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 A project checked into XML Canon. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 Example of handling incoming messages . 166 Example order-entry system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 A simple error-handling procedure . . . . . . . . . . . . . . 160 Propagating errors from a group . . . . . . . 219 Save Project Options for Perforce Version Control System . . . . . . . . . . . . . . . 197 Set BreakPoints dialog . . . . . . . . . . . . . . .xiv | Figures Figure 29 Figure 30 Figure 31 Figure 32 Figure 33 Figure 34 Figure 35 Figure 36 Figure 37 Figure 38 Figure 39 Figure 40 Figure 41 Figure 42 Figure 43 Figure 44 Figure 45 Figure 46 Figure 47 Figure 48 Figure 49 Figure 50 Figure 51 Figure 52 Creating an XPath formula . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 Acquire failed . . . . . . . . . 226 Browse for an XML Canon category . . . . . . . . . . . . . . . . . . . . 223 XML Canon tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 Ordering incoming events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 Process instance stopped at a breakpoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 Propagating errors from a called process . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 Example of process data for error schemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 Setting a breakpoint . . . . . . 204 Save Project Options for Microsoft VSS . . . . . . . . . . . . . . . . . . . . . . . 165 The Generate Error Configuration tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 XPath formula builder elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .| xv Tables Table 1 Table 2 Table 3 Table 4 Table 5 Table 6 Table 7 Table 8 Table 9 Table 10 Table 11 Table 12 Table 13 Table 14 Table 15 Table 16 Table 17 Table 18 Table 19 Table 20 Table 21 Table 22 Table 23 Table 24 Table 25 Table 26 Startup panel Project options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 JDBC transaction type . . . . . . . . . . . . . . . . . . . . . . . . . . 180 JTA UserTransaction type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 Actions on resources that are not locked . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 Toolbar icons for testing . . . . . . . . . . 157 Effects of nesting transaction groups . . . . . 207 Test panel icons . . . . . . . . . . 4 Startup panel Administration options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 Process starters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 Input tab toolbar buttons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 Example date and time format patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 Colors in test mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 Actions on locked resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Activity icon elements. . . . . . . . . . . . . . 59 Group Configuration tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 XA transaction type . . . . . . . . . . . . . . . . . . . . . . . . . . 109 Icons for schema items . . . . . . . . 208 Revision control system information. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 Content types for schema elements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 Datatype validation . . . . . . . 235 TIBCO BusinessWorks Process Design Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Example activities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 Icons for schema datatypes . . . . . . . . . . 151 Formatting characters in date or time strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 Activities with Event tabs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 Additional icons for hints . . . . . . . . . . .

xvi | Tables TIBCO BusinessWorks Process Design Guide .

page xix TIBCO BusinessWorks Process Design Guide . Topics • • Related Documentation. This manual describes how to create process definitions using TIBCO BusinessWorks. page xviii How to Contact TIBCO Customer Support.| xvii Preface TIBCO BusinessWorks is a standards-based. easy to deploy solution for companies looking to integrate their enterprise computing environment and automate their business processes.

TIBCO BusinessWorks Palette Reference This manual describes each of the palettes available in TIBCO BusinessWorks. and the other manuals in the documentation set assume you are familiar with the information in this manual. This manual describes terminology and concepts of TIBCO BusinessWorks. TIBCO BusinessWorks Quick Start This manual steps you through a very simple example of designing. and monitoring a TIBCO BusinessWorks process. TIBCO Administrator is the monitoring and managing interface for new-generation TIBCO products such as TIBCO BusinessWorks. • • • • • Other Documentation TIBCO BusinessWorks is bundled with other products. the following documents are part of the TIBCO BusinessWorks documentation set: • TIBCO BusinessWorks Concepts Read this manual before reading any other manual in the documentation set. TIBCO Adapter product documentation • • TIBCO BusinessWorks Process Design Guide . TIBCO Designer includes online help for each palette. You will therefore find the documentation for those products useful: • TIBCO Designer documentation. This document also contains lists of known issues and closes issues for this release.xviii | Preface Related Documentation You may find the following documentation resources useful. TIBCO BusinessWorks Release Notes Read the release notes for a list of new and changed features. deploying. TIBCO BusinessWorks Documentation In addition to this manual. TIBCO BusinessWorks Error Codes This manual describes errors returned by TIBCO BusinessWorks. TIBCO BusinessWorks Installation Read this manual for information on installing one or more components of TIBCO BusinessWorks and setting up a TIBCO BusinessWorks domain. TIBCO Designer is an easy to use graphical user interface for design-time configuration of TIBCO applications. TIBCO Administrator documentation.

If you do not have a username. visit this site: http://www.tibco.com/services/support/default. please contact TIBCO Support Services as follows. visit this site: http://support.com Entry to this site requires a username and password. • For an overview of TIBCO Support Services.jsp • If you already have a valid maintenance or support contract. TIBCO BusinessWorks Process Design Guide .tibco. you can request one.How to Contact TIBCO Customer Support xix | How to Contact TIBCO Customer Support For comments or problems with this manual or the software it addresses. and information about getting started with TIBCO Product Support.

xx | Preface TIBCO BusinessWorks Process Design Guide .

page 18 TIBCO BusinessWorks Process Design Guide . Topics • • • • • • • Welcome to TIBCO Designer. you learn about TIBCO Designer basics. In this chapter. This chapter and the next give an introduction to TIBCO Designer that is product independent. page 3 TIBCO Designer Administration.|1 Chapter 1 Getting Started With TIBCO Designer TIBCO Designer is an easy to use graphical user interface for creating ActiveEnterprise integration projects. page 6 Customizing the Display. page 6 TIBCO Designer Interface Overview. page 7 TIBCO Designer Administration. you learn about creating and managing projects and working with global variables. In the next chapter. page 13 Documentation. You drag and drop components into a project and then specify configuration information for each component. page 2 Starting TIBCO Designer. Product-specific information is available in the product-specific manuals.

and run integration projects. Depending on the product you installed. you can. TIBCO BusinessWorks Workflow uses TIBCO Designer for configuration of FormFlows processes and for preparing Enterprise Archive files. measure their efficiency. TIBCO Designer is used for adapter configuration. extensible.2 | Chapter 1 Getting Started With TIBCO Designer Welcome to TIBCO Designer TIBCO Designer allows you to easily create integration projects for your enterprise computing environment. which are discussed in the TIBCO Designer Palette Reference.. deploy. Adapters allow you to configure the interface between an external system. You can prepare an adapter configuration for custom adapters using the Adapter Resources and Adapter Schemas palettes. Adapters are available as separate products. • • • This chapter describes starting TIBCO Designer and explains the basic navigation model. TIBCO BusinessWorks Process Design Guide . The product facilitates complete visibility into business activities. and optimize them over time. such as an SAP R/3 applications or a database. TIBCO BusinessWorks also includes an engine that executes the process. use TIBCO Designer to create TIBCO BusinessWorks process definitions or create or modify adapter configurations. Custom adapters are created using the TIBCO Adapter SDK. and a web-based GUI for monitoring and managing run-time components. TIBCO Designer is available as a GUI (Graphical User Interface) to different TIBCO products and is used by those products for configuration. • TIBCO BusinessWorks is a scalable. TIBCO Designer is the graphical user interface (GUI) for defining business processes. and easy to use integration platform that allows you to develop. TIBCO BusinessWorks Workflow gives companies the ability to coordinate business activities. along with the ability to collaborate on the modeling and modification of the rules and flows that define business those activities. for example. and the TIBCO ActiveEnterprise environment.

See Startup Options on page 3. Select one of the Startup Options. UNIX 1. 2. TIBCO BusinessWorks). the startup panel is displayed: TIBCO BusinessWorks Process Design Guide . Navigate to the <tibco_core_home>/designer/<version>/bin directory. Starting the Program Start TIBCO Designer using the steps for the platform you are using. you may be able to access TIBCO Designer via the Start menu option for that product (e. See Startup Options on page 3./designer 3. Select one of the Startup Options.g. 2. Windows 1. Click Start>Programs>TIBCO>Designer_version If you have installed TIBCO Designer palettes for another TIBCO product. Type . Startup Options When you launch TIBCO Designer.Starting TIBCO Designer 3 | Starting TIBCO Designer The following sections describe how to start TIBCO Designer and explain the options available once TIBCO Designer starts.

An empty project includes the TIBCO Designer default palettes and their resources. Table 1 Startup panel Project options Option New empty project Description Opens a new empty project in TIBCO BusinessWorks. By default when you open a new project. Startup panel Administration options. TIBCO Designer prompts you immediately where you wish to save it. TIBCO BusinessWorks Process Design Guide . If you do not want to see this dialog each time you create a new project. You may provide the location or click the Cancel button. Table 2. describes the options available when you select the Administration tab.4 | Chapter 1 Getting Started With TIBCO Designer Figure 1 TIBCO Designer startup panel Table 1 describes the startup options. choose Edit>Preferences>General and unselect Show save dialog for new project.

for example. It can contain folders.Starting TIBCO Designer 5 | Table 1 Startup panel Project options Option New project from template Description Opens a predefined project template. Leaving the panel on screen can be useful for project maintenance. After that. Note: You need to specify this path only once. and partially configured resources. See Deleting Projects on page 28. See Opening and Reopening Projects on page 25. Web Services configuration. If unchecked. a password. A project template is a pre-built project. configured resources. Open existing project Reopen project Delete project Help Opens an existing project. May prompt for information. If checked. Allows you to choose from a list of recently saved projects. See Saving a Project as a Template on page 24 for information on creating project templates. Using a template makes it possible to leverage an existing configuration when creating new projects. the startup panel is only displayed during startup and closed after you’ve made your selection. Displays TIBCO Designer documentation. TIBCO Designer remembers the location even if you uninstall the current version and install a new version. You may be prompted for your browser if you are using TIBCO Designer for the first time on a machine. A project template can be preconfigured to include all the resources you may need for a certain type of project such as. Allows you to delete a project. Resources are the components of each project (see Resources on page 10). Exit Show this panel only on startup Exits TIBCO Designer. Information on browser locations on some operating systems is included in the prompt screen. this panel reappears when no other TIBCO Designer windows are open. TIBCO BusinessWorks Process Design Guide .

Because . you must convert to a multi-file project before you can open a project from TIBCO Designer. TIBCO BusinessWorks Process Design Guide . When you select the Administration tab. You can also use the startup panel to perform some TIBCO Designer administrative tasks.6 | Chapter 1 Getting Started With TIBCO Designer TIBCO Designer Administration When you start TIBCO Designer. the startup panel allows you to open projects (see Startup Options on page 3).dat file you wish to convert and the folder for the multi-file project.dat files are a legacy format. the panel presents the choices shown in Figure 2: Figure 2 Startup panel Administration options Table 2 Startup panel Administration options Option Convert DAT to files Description Displays a dialog that lets you specify the .

dat file.dat file.jar files will be loaded. This section describes the TIBCO Designer main window and explains what you see in each of its panels. • • • • TIBCO Designer Interface Overview The TIBCO Designer interface allows you to perform various functions. Maximum Heap Size—Maximum JVM heap size. Palette Path—Location from which TIBCO Designer loads palettes. If they specify directories then all .class. You have these options: • Extended Class Path—classpath to be used by TIBCO Designer. the log that is sent to the Console becomes more detailed. The order in which they are loaded depends on the file system. .zip and . Currently -d (debug) is supported. Displays the Preferences dialog. Command Line Arguments—Allows command line arguments to be passed to Designer. Users can specify file names or directories.TIBCO Designer Interface Overview 7 | Table 2 Startup panel Administration options Option Convert files to DAT Configure preferences Configure runtime Description Displays a dialog that lets you choose a project directory and a . When you specify both. TIBCO BusinessWorks Process Design Guide . TIBCO Designer converts the multi-file project in the directory to the . If you specify -d. Allows you to configure the TIBCO Designer runtime environment. See TIBCO Designer User’s Guide for more information. User Directory—Default location for the application to store files.

See Customizing the Display on page 13. Tabs in the leftmost area allow you to change what is displayed in the panel. When you select an item in the design panel or the configuration panel. Figure 3 The TIBCO Designer window Menu bar Toolbar Tabs Design panel Project panel Palette panel Configuration panel The TIBCO Designer window has these components: • • • Menu bar and Menus. which are (starting in the top left corner and continuing clockwise): — Project panel (can display the project tree or the project’s global variables) — Design panel — Configuration panel — Palette panel You can rearrange the panels and what they display. See Customizing the Display on page 13 for more information.8 | Chapter 1 Getting Started With TIBCO Designer Main Window Figure 3 illustrates the TIBCO Designer window. the project panel and palettes can be combined to share one set of tabs. For example. the panel is highlighted. See TIBCO Designer User’s Guide. • Four panels. TIBCO BusinessWorks Process Design Guide . Toolbar icons. See TIBCO Designer User’s Guide. This helps you see at one glance where the focus is.

Figure 4 illustrates an example project. click the Global Variables tab of the project panel. This includes services (producers and consumers of information). the project panel displays the project tree. for example. Multiple TIBCO products were used to create the integration project — it contains two TIBCO BusinessWorks process definitions (ProcessOrder and ProcessSoap) and a Siebel adapter (SBLAccount). the project panel allows you to view the Project Display or Global Variables Display. When used in conjunction with other project. any business logic that may be applied to that information. This includes the top-level (root) folder and the hierarchy of resources. in conjunction with the TIBCO BusinessWorks tester. and deployment information. TIBCO BusinessWorks Process Design Guide .TIBCO Designer Interface Overview 9 | The following sections explain the contents of each panel. See Global Variables on page 94 for more information. To display them. By default. The hierarchy of folders and resources corresponds to the hierarchy of folders and files in the project folder. the panel may be used for other purposes. Figure 4 Project tree in the project panel ProcessNewComputer project Global Variables Display Global variables are associated with each project. Project Display With the Project tab selected. Project Panel A project contains resources that implement the enterprise integration. ProcessNewComputer. in the project panel.

thus sharing their work. each adapter configuration) corresponds to a file in the hierarchy of files in the project directory. TIBCO BusinessWorks Process Design Guide . or an FTP activity. This design allows developers to use a source control system and to check out only the top-level resources they are working with from a source control system. For example. Resources can be complex and contain other resources.10 | Chapter 1 Getting Started With TIBCO Designer Figure 5 Global variables in project panel Resources Resources are the components of a project. an adapter service. Each top-level resource (for example. A simple TIBCO Designer resource corresponds to an object in a TIBCO application. much like a folder can contain other folders on your computer's file system. an adapter configuration may contain multiple folders with multiple publisher or subscriber service resources. a process definition. such as an adapter configuration.

Right-click on the resource and choose What Is This? from the popup menu for more information on configuring the resource. or that it has a misleading extension. Palette Panel Palettes organize resources and allow you to add them to your project. This can mean. For example. for example. these files will become visible and treated as unknown resources. it displays it as a special icon. TIBCO Designer contains a small number of native palettes. In addition. that the palette for that resource is not installed. If TIBCO Designer cannot determine the type of a resource. You select resources in the palette panel and drag and drop them into the design panel to add them to your project. If you open a Designer project that was under source control without the revision control system. TIBCO BusinessWorks Process Design Guide . the current selection in the project tree determines which palettes are displayed in the palette panel. source control systems may hide files from the user. Which palettes are displayed depends on: • • • the installed TIBCO products the resource selected in the project tree your preferences (see Customizing the Display on page 13) Current Selection and Palette Panel Display When the default view is set as your view preference. that the file is not really part of your project. each TIBCO application you install adds one or more palettes during installation.TIBCO Designer Interface Overview 11 | Most resources have context-sensitive help available for the configuration of that resource.

You can click the question mark (?) in the top right corner of the configuration panel for online help on the current selection. For example. the contents of the selected resource are shown in the design panel. Design Panel The design panel displays the current resource selected in the project panel. For resources that contain other resources. The tabs organize the configuration options for the resource. Drag any service resource into the design panel to add that resource to that adapter.12 | Chapter 1 Getting Started With TIBCO Designer Figure 6 Palette panel changed depending on current selection Top-level folder selected Adapter Services folder selected For example: • • Select the top-level project folder to see a palette for each adapter and some other palettes for general resources. See Customizing the Display on page 13 for more information about how TIBCO Designer functions in palette mode. The type and the purpose of the selected resource determine the contents of the configuration panel. if you select a folder. its contents is displayed. Usually there are one or more tabs in the configuration panel that allow you to access the various configuration options. Configuration Panel The configuration panel allows you to specify various configuration options for each resource. Select the Adapter Services folder of an adapter in the project tree to see a palette of service resources. TIBCO BusinessWorks Process Design Guide . You can change your view preferences to change what’s displayed in the palette panel.

This section gives an overview of the most frequently used display preferences. If you decide you do not want to add the configuration information. TIBCO BusinessWorks Process Design Guide . Customizing the Display You can customize how TIBCO Designer displays panels and palettes. you must click the Apply button for each tab. select Edit > Preferences and click Restore Default Settings. even if that user completely uninstalls the product and installs a different version. but not both in the left panel. Choosing Panel Layout If you prefer to view either the project tree or the palette panel. even if you do not save your project. click Reset before you apply any changes to return to the previous values for each field in the tab. you can set TIBCO Designer to display the three-panel view shown in Figure 7.Customizing the Display 13 | After you have added the configuration information. To return to the default settings. Display preferences are maintained for each user. Display preferences and other preferences are saved when you exit TIBCO Designer.

The next diagram shows the results of this action. 2. Choose Edit>Preferences>View. Under Layout.14 | Chapter 1 Getting Started With TIBCO Designer Figure 7 The three-panel view Project panel Design panel Configuration panel To choose the three-panel view: 1. To navigate to palettes in this view. select the appropriate icon and click OK. Figure 8 Three-panel view with palettes selected Select Palettes TIBCO BusinessWorks Process Design Guide . click the Palettes tab on the left (see Figure 8).

In that case. resources are displayed directly in the panel. each resource is shown in the palette it belongs to. and only currently usable resources are displayed.Customizing the Display 15 | Additional layout options are available when you choose Edit > Preferences > View. and each palette shows all resources. unusable resources are grayed out. TIBCO BusinessWorks Process Design Guide . • • In palette mode. In non-palette mode. Figure 9 Layout options Choosing Palette Mode or Non-palette Mode TIBCO Designer allows you to change the palette panel display to use palette mode or non-palette mode. Figure 10 illustrates the palette panel in palette mode and non-palette mode.

non-palette mode Palette mode All resources display in each palette Non-palette mode Only currently usable resources display Close box To switch palette modes: • Choose Palettes>Options>Switch Palette Modes or • Click the Switch Palette Modes button located in the tool bar. TIBCO BusinessWorks Process Design Guide .16 | Chapter 1 Getting Started With TIBCO Designer Figure 10 Palette mode vs.

Drag resources from the project tree or from the design panel into the user palette. Specify the name of the palette. Creating User Palettes To add a user palette. Choose Palettes > My Palettes > New Palette. follow these steps: 1.Customizing the Display 17 | While in palette mode. If Close markers are not visible. Working With User Palettes User palettes allow you to save a collection of resources to a predefined location and either share it with other users or use it yourself at a later time. To restore the palette panel to its location in the main window. You can also access this menu command from the right-button menu of any palette in the palette panel. To redisplay a closed palette. the palette is saved to the location specified by the User Palette Directory General Preference. you can close individual palettes using the Close marker (X) on the right. For example. TIBCO BusinessWorks Process Design Guide . if you closed the Adapter Resources palette. close the separate window in which the palette panel is displayed. 3. choose Palettes. 2. choose Palettes > General > Adapter Resources to redisplay it. Displaying Palettes in a Separate Window You can display the palette panel in a separate window by choosing Palettes > Options > Show Palettes in New Window. choose Palettes > Options> Show Close Boxes. then select the palette either from the top-level menu or from the submenu. When you later save your project.

Choose Palettes > My Palettes > Reload Palettes. — Right click on most resources and choose the What Is This? menu item to view specific help for that resource. Make sure the palette is loaded. When you save your project. the custom palette is then saved to the location specified by the User Palette Directory General Preference.18 | Chapter 1 Getting Started With TIBCO Designer 4. Choose Palettes > My Palettes > Delete Palettes. follow these steps: 1. When you invoke Designer help for the first time. you can also choose the Help button for online help. 2. From TIBCO Designer: — Use Help > Designer Help at any time to view this manual. Palette Directory Documentation Documentation for TIBCO BusinessWorks is available in several ways: • • If you are using Microsoft Windows. you can use the Start menu to access TIBCO Designer documentation. You are prompted for the palette(s) you wish to delete. Place the palette in the directory specified by the User General Preference. follow these steps: 1. Loading User Palettes To load a user palette that was previously created. — Use Help > Help For to access the product-specific documentation. which discusses how to use TIBCO BusinessWorks regardless of the application you are building. 2. If information is displayed in the Configuration panel. Deleting User Palettes To delete a user palette. you are prompted for the location of the HTML browser. Location information for many operating systems is included in the prompt. TIBCO BusinessWorks Process Design Guide . You only need to supply this location once.

page 22 Saving Projects. page 20 Creating Projects. page 29 TIBCO BusinessWorks Process Design Guide .| 19 Chapter 2 Managing Projects and Resources Projects are the key organizational principle for the configuration information you specify with TIBCO BusinessWorks. Topics • • • • • • • • Overview of Projects. page 23 Opening and Reopening Projects. page 25 Adding Resources To Your Project. This chapter explains how to manage projects and the resources inside them. page 28 Tips and Tricks for Working With Projects. page 26 Deleting Projects. page 21 Validating Projects.

If you open a second project. For TIBCO BusinessWorks. Together. For adapters. more resources may be considered part of a top-level resource. TIBCO Designer opens a new window. these resources define the configuration of your integration project. not all folders in TIBCO Designer are directories in the file system: — Folders created from a Folder resource in the General Palette (displays a multi-folder icon) become folders in the file system. TIBCO Designer creates a hierarchy of folders and files in the location you choose for the project. These folders only exist in memory in the resource that holds them. When you create a multi-file project: • There is one file per top-level resource. such as the Adapter Services folder inside an adapter configuration are logical folders. adapter resources and process definitions. TIBCO Designer removes any existing files before placing the project files into the folder. When you supply a project location. Each TIBCO Designer window contains only one project. For example. the startup panel remains available for project maintenance or for opening a different project unless you selected the Display this window only on startup check box on that window. including for example. All components of a project are located under this common project root. In the TIBCO BusinessWorks window. The actual data for these elements is stored in the file of the top-level resource. that may mean one file per activity. The project root directory identifies the project. a project is represented by the top-level (root) folder in the project panel. Adapter Services data is stored in the Adapter Configuration file. be sure no other files reside in that folder. — Other folders. • • TIBCO BusinessWorks Process Design Guide . The top-level folder is initially named Untitled and is renamed to the name of the project when you save the project for the first time. Project Structure When you save a project. However. The project root can be located anywhere in the file system and is determined when you first save the project. Directories in the file system become folders in TIBCO Designer.20 | Chapter 2 Managing Projects and Resources Overview of Projects A project is a collection of resources. When you close a project.

dat in the project root directory when you first save the project. and partially configured resources. TIBCO BusinessWorks allows you to create a new. blank project or to create a project based on an existing template. It can contain folders for organization. and description. Once the root directory is defined under the control of a version control system. standard version control system tools can be used. you can leverage your work when performing similar configurations. This file can be used for identification in place of the project root directory and can be used as the repository locator string (repoUrl). The following version control systems are supported and discussed separately: • • • File Sharing on page 216 Microsoft Visual SourceSafe on page 218 Perforce Fast Software Configuration Management System on page 221 Support for other version control systems will be provided in future releases. Creating Projects You create a new project using the startup panel when starting TIBCO BusinessWorks. TIBCO Designer opens a new window for the new project. Using a Version Control System Multi-file projects support the use of different version control systems because they consist of separate files for each versionable component. This file is used to store properties such as display name. Project Templates A project template is a pre-built project. configured resources. Using a template. TIBCO Rendezvous encoding. TIBCO BusinessWorks Process Design Guide . You can use a project template as the foundation for other projects similar in nature. You can also choose Project > New Project from the TIBCO Designer menu bar with TIBCO Designer already open. In that case.Creating Projects 21 | • TIBCO Designer creates a file named vcrepo.

TIBCO BusinessWorks Process Design Guide . choose the Validate icon. TIBCO Designer includes reference-checking and other validation facilities that allow you to make sure a project is internally consistent. Many resources have other resource-specific validation behavior. During validation. Validating Projects After you have created a project. • When you create a new project. Before you save a project. each resource always checks for broken references. do one of the following: • • Choose Project > Validate Project for deployment.22 | Chapter 2 Managing Projects and Resources • New Empty Project — A new project contains a single AESchemas folder that will be used for adapter schema resources. See Validating Projects on page 22 for some additional information on the behavior of resources included with TIBCO Designer by default. This is essential if you intend to run the project. you can later load that template and customize it to create a new project. you add resources to it and supply configuration information for your resources. See Saving Projects on page 23 for a discussion of the information you must supply. it is critical that you validate it. you are by default prompted immediately to save it. Click the Validate Project icon. See Project Structure on page 20 for more information. Project from Template — When you save a project as a template (Project > Save As Template). do one of the following: • • Select the resource to be validated. To validate all resources in a project. then choose Resources > Validate Resource from the menu bar. To validate resource. etc. See Project Templates on page 21. hand it to another user. With the resource selected.

By default. Saving Projects To save a project. Warning: Designer will remove any files in this directory when you save the project. TIBCO Designer prompts whether you wish to perform reference checking each time you perform an activity that might result in a broken reference (move. TIBCO Designer will help keep these references up to date. and so forth). You can change the default behavior using the Edit>Preferences >References tab. rename. You can use the validation commands to find broken references.Saving Projects 23 | Note that TIBCO Designer handles references as strings. 2. In the dialog that is displayed. — Click the Save icon. TIBCO BusinessWorks Process Design Guide . for example. however. do one of the following: — Choose Project>Save. make sure the Multi-File selected and provide the following information: Project Directory Project tab is Directory that will contain the project files. possible to have "broken" references. It is. when you move a resource to a different location. follow these steps: 1. — Choose Project>Save As and specify the storage directory. if you delete a resource and ignore the warnings displayed by TIBCO Designer. In the main window. for example. Click Browse to select the directory.

Provide the appropriate information. 2. You have two choices: • ISO8859-1 (Latin-1)—Should be used for projects that deal only with English and other Western European languages that belong to the ISO Latin-1 character set. Click OK. follow these steps: 1. Multi-User System Allows you to use a multi-user system such as file sharing. this encoding will be superseded by the encoding setting of the TIBCO Administration Server. or Visual SourceSafe. If this encoding is used for languages that do not belong to the Latin-1 character set (such as Japanese. and so on). This includes most languages. Arabic. data loss may result. Choose Project>Save As Template. Project Settings Once you have saved a project to a repository. Perforce. which is the same as discussed in Saving Projects on page 23. Saving a Project as a Template To save a project as a template. UTF-8—The preferred encoding for projects dealing with languages that do not belong to the Latin-1 character set. The communication transport could be either TIBCO Rendezvous or TIBCO Enterprise for JMS. • Note: After deployment. 3.24 | Chapter 2 Managing Projects and Resources Message Encoding Character Encoding used for the communication between TIBCO product components in this project at design time (debug mode). you can select the Project Settings tab to: TIBCO BusinessWorks Process Design Guide . except for English and western European languages. or if the project is running as a legacy local file-based project. See Working with a Revision Control System on page 213 for more information.

You can then open the multi-file project from TIBCO Designer. You can reopen a project you opened recently in two ways: TIBCO BusinessWorks Process Design Guide . Opening and Reopening Projects You can open a project in two ways: • • From the startup panel when you launch TIBCO BusinessWorks. This should be used for projects that deal only with English and other western European languages that belong to ISO Latin-1 character set.Opening and Reopening Projects 25 | • • View information about the project. choose DAT to Files. and so on). Arabic. If this encoding is used for languages not belonging to the Latin-1 character set (such as Japanese. In the Startup panel. it may result in data loss in the data communication among TIBCO components. After deployment. These include almost all the languages except for English and western European languages. Supply the name of the project directory when prompted. This is only used in design mode. Working with a Revision Control System. If you are opening a project under a version control system. See Appendix A. In that case. You have two choices: — ISO8859-1 (Latin-1). 2. this encoding setting is superseded by the encoding settings of TIBCO Administration Server. TIBCO Designer will create a new window for your project. If you need to open a . you must convert it first: 1.dat project. The preferred encoding for projects dealing with languages not belonging to the Latin-1 character set. — UTF-8. Choose Project>Open from the TIBCO BusinessWorks main window if Designer is already open. or when the project is running as a legacy local file-based project. The information displayed depends on how the project was saved. View and change the project’s messaging encoding for the data communication among the components in this project. you need to provide the appropriate information.

follow these steps: 1. To add a resource to your project. Select a resource in the palette and drag and release it in the design panel. The configuration panel allows you to specify configuration information for the resource. If the palettes are not visible in your palette panel. Select the palette in which the resource can be found. TIBCO BusinessWorks Process Design Guide . Choose Project>Reopen from the TIBCO BusinessWorks main window if Designer is already open. 2. then drag and drop it into the design panel. you first select it in the palette panel. For example. Figure 11 illustrates adding a resource to a project. TIBCO Designer will create a new window for your project Adding Resources To Your Project Once you have created or opened a project. To add a resource. The resource instance is displayed in the design panel and also added to your project tree. you can add resources to your project.26 | Chapter 2 Managing Projects and Resources • • From the startup panel when you launch TIBCO BusinessWorks. you find an adapter configuration resource in the palette named after the adapter. click the Switch Palette Modes icon. In that case.

If you try to add a resource that cannot be added to the current resource. TIBCO BusinessWorks Process Design Guide .Adding Resources To Your Project 27 | Figure 11 Adding a resource to a project Drag into design panel You can also add resources in other ways: • • In the palette panel. If Adding a Resource Results in an Error Whether adding a resource is possible depends on what is currently displayed in the design panel. choose Add Resource from the right-button menu and choose the appropriate submenu. select the resource and choose Add This To The Project from the right-button menu. In the design panel. an error results.

To delete a project. choose the Administration tab. start it. In the startup panel. In the panel that appears: a. 2.28 | Chapter 2 Managing Projects and Resources For example. you cannot add the adapter instance. Deleting Projects You do not delete projects from the TIBCO Designer main window but from the startup panel. close all windows. If any other resource is displayed. Specify the project directory b. You cannot delete projects based on XML Canon from TIBCO Designer. The startup panel is displayed unless Show this panel only on startup has been checked. Specify a version control system if the project was used in conjunction with a version control system. You must also be sure to specify a user that has appropriate privileges for deleting the project. any user with access to a project can delete the project. To access the startup panel: • • If TIBCO Designer isn’t running. if the root folder is displayed in the design panel. you must use a WebDAV client. you can add an adapter instance. follow these steps: 1. TIBCO BusinessWorks Process Design Guide . 3. However. Usually. some custom palettes do not conform to this rule. If TIBCO Designer is running. Click Delete Project. — For other version control systems you must make sure that both the (local) project directory and the directory you specify for the version control system are correct. To delete such a project. all resources that cannot be dragged into the design panel should be greyed out (palette mode) or not visible (non-palette mode). — For File Sharing.

and so forth). For simplicity. • Consider using global variable groups. scalar. that an excessive amount of global variables (over 500) can lead to problems. class. place schema files under /AESchemas when possible. ALso. Use an ASCII name for the project when saving the project from TIBCO Designer. you do so at your own risk. you must place schema files into /AESchemas if you wish to edit your project using TIBCO Designer. See Global Variables on page 94 for more information. • • TIBCO BusinessWorks Process Design Guide . • Use ASCII project names.Tips and Tricks for Working With Projects 29 | Tips and Tricks for Working With Projects This section contains additional information on using multi-file projects. Use Global Variable groups to allow multiple developers to work on global variables simultaneously. however. union. Each group has its own file in the multi-file project. Avoid naming collision. Note that while editing schema files is not prohibited. Note. Place schema in the AESchemas folder. If you edit your project file in an XML editor and define schema outside the /AESchemas folder. The project root folder name corresponds to the project name. Do not place a multi-file project and a single-file project into the same directory. and a project name must use ASCII. the schema are placed in a directory called __NON__DEFAULT__SCHEMA__FOLDER__ in /tibco/public/<type> where type is the kind of object (that is.

30 | Chapter 2 Managing Projects and Resources TIBCO BusinessWorks Process Design Guide .

page 36 Transitions. page 34 Process Definitions. Topics • • • • • • • • • Business Process Modeling. page 38 Shared Configuration Resources. page 39 Developing Process Definitions. page 38 Subprocesses. page 32 Overview of Processes. This chapter describes how to create business processes in TIBCO BusinessWorks. page 40 TIBCO BusinessWorks Process Design Guide .| 31 Chapter 3 Processes TIBCO BusinessWorks allows you to graphically model your business processes and execute them automatically. page 37 Groups. page 35 Activities.

32 | Chapter 3 Processes Business Process Modeling Most businesses choose the best application or environment for processing each component of their core business. the flow of information and processing between each application is what drives the day-to-day operations of the business. accurate and up-to-date reporting information is required from all systems. For example. The tracking system relies on order information and shipping information. Figure 12 illustrates an example enterprise computing environment with various systems running in different environments. Also. the order-entry application receives and processes orders based on availability information taken from the inventory system. Figure 12 An example enterprise computing environment Inventory Order Entry Shipping Manual Data Transfer Reporting Tracking TIBCO BusinessWorks Process Design Guide . In a typical enterprise.

sometimes known as a workflow. THEN IF credit check approved. THEN PROCESS ORDER ELSE HOLD ORDER ELSE DENY ORDER ELSE RESTOCK INVENTORY REPORT ORDER STATUS Inventory WHEN qty < 5 of prod_id 798 RESTOCK INVENTORY PROCESS INVENTORY CHECK REPORT INVENTORY STATUS Shipping WHEN orderIDStatus == complete SHIP ORDER REPORT SHIPPED ORDER STATUS Tracking CHECK ORDER STATUS CHECK INVENTORY ITEM STATUS Reporting GET SHIPPED ORDER REPORT GET INVENTORY REPORT GET REVENUE REPORT GET UNUSED INVENTORY REPORT The business process flow describes an integrated enterprise that contains order-entry. inventory. Tying together different systems from different vendors that run in different environments is a labor-intensive and error-prone process that usually takes months of planning and implementation. Figure 13 illustrates a business process flow. because the task of creating the custom business logic is so complex. THEN IF priority order. businesses often rely on manual.Business Process Modeling 33 | Many companies implement the business rules that tie the systems together using custom-written code or by manual processes. and reporting systems. Each of these systems have rules for processing incoming data and more rules for passing data between the systems. such as the REPORT SHIPPED ORDER STATUS process in the shipping system. That tool should also allow you to automate your business processes for the greatest efficiency. paper-based processes instead of automating the process for greater efficiency. Figure 13 A business process flow of an example enterprise Order Entry IF available. TIBCO BusinessWorks Process Design Guide . These rules are characterized by business processes. TIBCO BusinessWorks Solves Enterprise Integration Problems An ideal solution for handling business process automation would be a tool that can handle the different environments and applications and allow you to create programmatic business rules easily. shipping. These business rules in themselves can involve complex processing and automating these processes is crucial to lowering the total cost of operating the complete enterprise environment. that describes the business rules between the various systems in an enterprise. tracking. Also.

Overview of Processes A process definition is the graphical representation of your business process. TIBCO BusinessWorks Process Design Guide . A process engine creates instances of process definitions. Once the business rules have been specified. enterprise-wide computing environment and ultimately lower the cost of deploying and maintaining the system. This allows you to reduce the time to implement an integrated. These process instances automate your business processes by executing the business process described by the process definition. You develop and test process definitions using TIBCO Designer. Figure 14 illustrates the relationship between process definitions. and process instances.34 | Chapter 3 Processes TIBCO BusinessWorks allows you to model business processes with a graphical tool. BusinessWorks can help you specify the business logic and automate the processing of the interaction between the systems in your enterprise. BusinessWorks can execute the business processes. allowing you to easily automate the critical functions of your business. You can use the BusinessWorks process definition palette to diagram complex business logic easily. a process engine. The process definition is executed by a TIBCO BusinessWorks process engine.

For more information about deploying a project. Selecting the process definition in the project panel changes the palette panel and the design panel to allow you to create your business process model. Figure 15 illustrates a newly created process definition. The design panel displays the business process model. You create process definitions by dragging and dropping a Process Definition resource from the Process palette to the design panel. The palette panel contains a set of activity palettes for use in the process definition. see the TIBCO Administrator User’s Guide. Process Definitions A process definition is a graphical representation of your business process model. Newly created process definitions contain a Start activity and an End activity. The remainder of this manual describes how to create the process definitions that eventually become running process instances.Process Definitions 35 | Figure 14 A process engine creating process instances Machine A TIBCO Designer Project Process Definition A TIBCO BusinessWorks Process Engine Process Instance A-1 Process Instance A-2 Process Definition B Process Instance B-1 Process Instance B-2 Process Instance B-3 Process engines are started using TIBCO Administrator after you deploy your project. TIBCO BusinessWorks Process Design Guide .

See Developing Process Definitions on page 40 for a description of how to develop your process definitions. Activities are generally operations that interface to external systems. Activities are available on the various palettes in TIBCO Designer. When the process definition is executed. TIBCO BusinessWorks Process Design Guide . but activities can also perform internal processing. it is known as a process instance.36 | Chapter 3 Processes Figure 15 A newly created process definition The process definition describes the business process. Each palette has a set of activities that can be performed for that palette. For example. the Adapter palette has activities that can publish messages to a specified adapter or invoke an operation by way of an adapter. Activities Activities are the individual units of work in a process definition. There is also an FTP palette that can invoke the PUT and GET commands on an FTP server. Process definitions consist of these components: • • • • • Activities Transitions Groups Shared Configuration Resources Subprocesses The following sections describe these components.

on page 65 describes transitions and conditions. TIBCO BusinessWorks Process Design Guide . For example. Chapter 5. The arrows are unidirectional. A transition can optionally specify a condition. on page 43 describes activities and their use in process diagrams. Control flow in a process definition must proceed sequentially beginning with the Start activity (or a process starter) and ending with the End activity. the Mail palette has a Receive Mail activity. A process definition can begin with a Start activity.Transitions 37 | Activities are available to communicate with a variety of systems. Having multiple branches in a process definition does not imply that each branch is processed concurrently. Chapter 4. These activities. Transitions Transitions describe the flow of processing in a process definition. The condition determines if the transition is taken when an activity completes processing. also known as process starters. but some palettes contain activities that can start a process. Each activity in a process definition must have a transition to it. See TIBCO Administrator User’s Guide for more information about configuring the TIBCO BusinessWorks process engine. Process execution is controlled by the process engine. you can have several branches of activity processing in your diagram. There is also a general-purpose Java code activity that allows you to write and execute standard Java code to perform custom processing in your process definition. all transitions whose conditions are met are taken. or the activity is not executed when the process executes. You can have transitions from one activity to many other activities. A transition is represented by an arrow between two activities. begin a process when the specified event occurs. If this is placed in a process definition. Transitions describe control flow of the process definition. not the concurrency of execution of activities. and you cannot draw a transition to a previously executed activity. After an activity completes. Transitions and Conditions. Activities. it replaces the Start activity and a process instance is started when a mail message is received. Therefore.

Basically. This allows you to have a set of activities with only one error-handling transition. Shared Configuration Resources Shared configuration resources are specifications that are shared among activities. depending upon whether the transaction commits or rolls back. but they are used when specifying the Configuration tab of some activities. WSDL files.. • • Chapter 6. These are resources. such as database connections. To create sets of activities that are to be repeated. The main uses of groups are the following: • To create a set of activities that have a common error transition.38 | Chapter 3 Processes Groups Groups are used to specify related sets of activities. To create sets of activities that participate in a transaction.. this is similar to a try. Grouping Activities. on page 71 describes groups and how to use them in a process definition. TIBCO BusinessWorks Process Design Guide . Activities in the group that can take part in a transaction are processed together. or if an error occurs. instead of trying to individually catch errors on each activity. or rolled back. and connections to other servers. until a condition is true. You can repeat the activities once for each item in a list. Shared configuration resources are created outside of process definitions.catch block in Java. schema definitions. TIBCO BusinessWorks Palette Reference describes shared configuration resources.

the subprocess is spawned into a new process instance. Figure 16 illustrates a main process calling a subprocess. When you call a process definition. Normally. Specify the input. or you can dynamically determine which process to call when the process instance executes. You can create several smaller process definitions instead of one monolithic process definition. TIBCO BusinessWorks Process Design Guide . and error schemas of a process. and optionally allows you to spawn the subprocess into another process instance. To create and call a subprocess. Place a Call Process activity (located on the General Activities palette) in the process definition. 4. That is. The Call Process activity allows you to map input values into the called process. follow this procedure: 1. and any error schemas of the subprocess on the Start and End activities in the subprocess. If you select the checkbox in the Spawn field of the configuration tab of the Call Process activity. You can call specific processes. Create a process definition for the subprocess. See TIBCO BusinessWorks Palette Reference for more information about dynamically calling subprocesses. they must begin with the Start activity. and the output of the subprocess is available to all subsequent activities in the process. the parent process cannot access the called process’ output. You can then call each process definition from another process definition. 2. Subprocesses cannot have process starters. a subprocess executes in the same process instance as the calling process. not any activity that receives an event from an outside source. Create a process definition that will call the subprocess. 3. when necessary. See Start Activity on page 60 and End Activity on page 62 for more information about specifying the input. When a subprocess spawns a new process instance. output. output.Subprocesses 39 | Subprocesses Business processes are often very complex and it is difficult to diagram the complete process in one process definition. Using subprocesses helps to make more readable process diagrams and you can reuse subprocesses across many process definitions. See Developing Process Definitions on page 40 for more information about creating process definitions. the called process is known as a subprocess.

Developing Process Definitions Figure 17 describes the general procedure for developing process definitions.40 | Chapter 3 Processes Figure 16 A main process calling a subprocess Main Process Pass customer ID to CreditCheck subprocess. The End activity defines the outcome of the credit check as the output for the process. Subprocess Customer ID is defined as input on Start activity. The subprocess returns whether the customer has sufficient credit. TIBCO BusinessWorks Process Design Guide .

TIBCO BusinessWorks Process Design Guide . See Chapter 4. This causes a blank business process to appear in the design panel. Activities. if you are going to connect to a database. Select one of the process definitions you created in Step 1 in the project panel. password. These activities are known as event sources or process starters. JDBC URL and other information about the connection. 5. you should drag and drop a JDBC Connection into the design panel. 2. Drag these event sources from their palettes into the design panel. 3. and drag and drop it into the design panel. Configure the process starter activities. The business process has a Start and an End activity by default. For example. on page 43 for more information about activities. 4. Select the activities that start the business process. See TIBCO BusinessWorks Palette Reference for more details about each of the shared resources. You can then use this connection in many process tasks that require a connection to a database. if you wish to start a process when an HTTP request is received. Name each process definition and give the process a description. Create one or more process definitions by dragging Process Definition resources from the process palette to the design panel. See the documentation for the activity you are configuring for more information about the fields on each of the tabs for the activity. This describes the username.Developing Process Definitions 41 | Figure 17 Developing process definitions Create Shared Configuration Resources Create Process Definition Add Process Starter Add Activities Create Transitions Between Activities Specify Each Activity's Input Test/Debug/ Redesign The following is a more detailed description of how to develop process definitions: 1. select the HTTP activity palette. For example. locate the HTTP Receiver process starter activity. These items are located in the Shared Configuration palette. Create any Shared Configuration resources you will require for your process definition.

7. 8. In testing mode. Mapping and Transforming Data. on page 65 for more information about specifying transitions. use the test mode tool to enter testing mode. Perform mapping and transformation of data for each activity’s input. Test and debug your process definition until it operates as expected. TIBCO BusinessWorks Process Design Guide . Drag and drop more activities to define the business process. a TIBCO BusinessWorks engine is started to perform the processing described in the process definition. See Chapter 14. See Chapter 5. on page 199 for more information about testing process definitions. Transitions and Conditions. 9.42 | Chapter 3 Processes 6. Once the process definition is complete. on page 105 for more information about mapping and transforming data. Testing Process Definitions. Click the transition button on the tool bar to draw transitions between activities. See Chapter 8.

page 62 TIBCO BusinessWorks Process Design Guide . page 58 Start Activity. This chapter describes activities and how to use them in a process definition. page 49 Editor. page 45 Configuration.| 43 Chapter 4 Activities Activities perform the work in a process definition. page 50 Input. Topics • • • • • • • • • • • Activity Overview. page 56 Output. page 44 Activity Icons. page 58 Process Starters. page 60 End Activity. page 47 Advanced. page 48 Event.

Activities are generally operations that interface to external systems. The following are examples of palettes and some of the activities the palettes contain: • File — Create File — Remove File — Write File — Read File • FTP — FTP Put — FTP Get • JDBC — JDBC Query — JDBC Call Procedure — JDBC Update • Mail — Send Mail TIBCO BusinessWorks Process Design Guide . Activities are available on the various palettes in TIBCO Designer. Receives a message from the specified adapter and starts a process. Replies to a message sent by an adapter. the following activities are included in the ActiveEnterprise Adapter palette: Table 3 Example activities Activity Name Publish to Adapter Adapter Subscriber Respond to Adapter Request Function Sends a message to the specified adapter. but activities can also perform internal processing. Each palette has a set of activities that can be performed for that palette.44 | Chapter 4 Activities Activity Overview Activities are the individual units of work in a process definition. For example.

the schema becomes available on the Input. TIBCO BusinessWorks Process Design Guide . For example. Input — The output data from all activities that precede this activity in the process definition is available for mapping to this activity’s input schema. and the user must specify their own schema. Table 4 describes the various elements in activity icons. See Start Activity on page 60 and End Activity on page 62 for more information about these activities. Activity Icons Each activity is represented by an icon in the palette and design panels. the activity palettes are available to drag and drop activities into the process definition. Once specified. See the activity palette chapter for more information about the specific activity you wish to use.Activity Icons 45 | When you are in a process definition in TIBCO Designer. Output — The activity’s data is output to activities that follow in the process definition. Each activity usually has two or more of the following tabs for specifying the characteristics of the activity: • • • Configuration — Used for general configuration of the activity. this tab specifies the timeout for the incoming event and a condition to determine whether the incoming event is the correct one for the specific process instance. There are some common elements of activity icons that represent the type of activity and the direction of data between the activity and the process. Editor — A data schema for the activity. Advanced — Any advanced configuration parameters are specified here. There is a chapter for each available activity palette. There are two activities that are included in a process definition by default: the Start activity and the End activity. These icons represent the function of the activity. Output or both tabs of the activity. Event — For activities that wait for incoming events. This is used when the input or output data is not known by the activity. such as HTTP requests or incoming TIBCO Rendezvous messages. this tab specifies the adapter service to use for an Adapter activity. • • • The sections that follow describe each tab used to specify an activity.

the information is flowing from the process to the adapter (the adapter is represented by the purple and blue sphere). also known as "Event activities" cause the process to suspend until the incoming event is received. See Process Starters on page 58 for more information about process starters. See Event on page 49 for more information about Event activities. as opposed to performing an operation (see the description of single arrows below). A green circle with an arrow inside (similar to a "Play" button on a media player) indicates the activity is a process starter.46 | Chapter 4 Activities Table 4 Activity icon elements Element Example Description Arrows indicate the direction of information between the process and the external system. These activities. TIBCO BusinessWorks Process Design Guide . These activities start new processes based on the receipt of an event from the external system. In the example. A yellow square with two parallel lines inside (similar to a "Pause" button on a media player) indicates the activity waits for an incoming event from the external system. Multiple arrows indicate either sending or receiving data.

In the Adapter Request-Response Server activity example. In the Invoke an Adapter Request-Response activity example. For example. such as whether the type of data being sent is text or binary or whether the FTP server resides outside of a firewall.Configuration 47 | Table 4 Activity icon elements Element Example Description A single arrow going into or out of the external system indicates that the activity is performing a request. In the Respond to Adapter Request activity example. The direction of the arrow indicates whether the activity is receiving a request. the activity starts a process based on the receipt of a request from an adapter. sending a response. or sending a request and receiving a response. the activity is sending a response to a previously received adapter request. This is different from simply receiving a message or data (indicated by multiple arrows) because the activity is performing or responding to a remote operation call. an FTP activity would contain specifications for the FTP session. Configuration The configuration tab contains the general specifications for the activity. or performing a request and receiving a response. Required fields on the configuration tab are displayed in bold so that it is easy to see the minimum required information for configuration of an activity. sending a response. TIBCO BusinessWorks Process Design Guide . the activity is sending a request to an adapter and expects to get a response from the adapter.

See the chapter for the palette you are interested in TIBCO BusinessWorks Palette Reference for more information about the Advanced tab of the activities in that palette. See the chapter for the palette you are interested in TIBCO BusinessWorks Palette Reference for more information about the Configuration tab of the activities in that palette. all activities allow you to specify a name for the activity and provide a short description on the Configuration tab. Any other items on the configuration tab are the required configuration elements you must specify to make the activity work. In general. Advanced The Advanced tab is available on some activities for specifying additional configuration options.48 | Chapter 4 Activities The following illustrates the configuration tab. TIBCO BusinessWorks Process Design Guide .

This expression is specified in XPath. If zero is specified. Event Timeout (msec) TIBCO BusinessWorks Process Design Guide . An Event tab has the following fields: Field Candidate Event Key Description Expression used to evaluate whether the incoming message is appropriate for this process. See Chapter 9. on page 147 for more information about XPath expressions. the message waits indefinitely. These activities cause the process instance to suspend until the incoming event is received. an error is logged and the event is discarded. XPath.Event 49 | Event The Event tab is available on activities that expect an incoming event. The amount of time a message will wait (in milliseconds) if it is received before this task is reached in the process. and only data from the incoming event is available for use in this XPath expression. If the event timeout expires. If no value is specified in this field. The following illustrates the Event tab. These are activities that wait for an incoming event in a process. the event is discarded immediately. unless this has already been reached.

The data schema may also be for a more specialized use. This tab is useful when the data does not have a well-known structure. the Input Editor tab of the Publish Rendezvous Message activity allows you to define the schema for the message you wish to publish. Either a JMS queue or topic message. A TIBCO Rendezvous message. such as for defining the output headers of an incoming HTTP request. The name of the Editor tab differs depending upon what the schema is used for. The specified file to change. Waits For . An HTTP request. Table 5 Activities with Event tabs Palette ActiveEnterprise Adapter Event Activities Wait for Adapter Message Wait for Adapter Request File General Activities HTTP JMS Wait for File Change Wait Wait for HTTP Request Wait for JMS Queue Message Wait for JMS Topic Message Manual Work Rendezvous Wait For Completion Wait for Rendezvous Message A manual task to complete. The associated Notifiy activity to execute. For example. Editor The Editor tab is used to specify a data schema for input or output of an activity. See the chapter for the palette you are interested in for more information about tasks that have Event tabs.50 | Chapter 4 Activities Table 5 describes the available activities with Event tabs.. TIBCO BusinessWorks Process Design Guide . An adapter message or request..

Name TIBCO BusinessWorks Process Design Guide . Field Content Description Defines the content of the element. The following illustrates the Schema tab. Once defined. The name of the element. the Schema tab is labeled Input Editor indicating this defines the schema for the activity’s input. or you can define a group of data elements on this tab. See Table 6 for more information about the content type.Editor 51 | You can use a simple datatype. The data in the schema then becomes available to other activities in the process definition. use the buttons above the schema tree to add. the schema appears on the appropriate tabs of the activity. You can also reference XML schema or ActiveEnterprise classes stored in the project. Then use the fields of the dialog to specify the datatype of each item. The other fields that apear depend upon which content type is selected. or move data items. In this example. To define a schema on this tab. delete.

Type in a stored XML schema you wish to reference. Optional (?) — the data item is optional. This is like a structure in a programming language. Repeating. Table 6 describes the potential content types for data elements. Zero or More (*) — The data item is a list that has zero or more elements. and it can contain other complex elements. One or More (+) — The data item is a list that has one or more items. Other Fields for This Content Type Name Cardinality TIBCO BusinessWorks Process Design Guide . Data items can be specified as one of the following: • • • • Required — the data item is required and must be supplied when the process is called. Can be any of the following: • • XML Type Reference — must locate the stored XML schema definition. Schema Name Type Name Stored XML schema that contains the element or type you wish to reference. Repeating.52 | Chapter 4 Activities Field Cardinality Description The qualification for the data item. Any of the datatypes described in Table 7. Table 6 Content types for schema elements Content Type Complex Element Description An element that contains other elements. Type The type of data. The complext element can contain zero or more elements of other types.

An attribute with a specified datatype. and so on). The datatype of this element can be one of the sub-elements defined. A choice of elements. The datatype of this element can be all of the datatypes of the sub-elements defined. Attribute of Type Sequence A sequence of elements. See TIBCO Designer documentation for more information about XML schema. See TIBCO Designer documentation for more information about XML schema. integer. integer. and so on). you can reference an XML type. you can reference an XML type. A reference to an XML group in a stored XML schema.Editor 53 | Table 6 Content types for schema elements Content Type Element of Type Description An element with a specified datatype. You can specify a scalar datatype (string. Each item in the sequence is a structure of the sub-elements of this element. or specify the TIBCO ActiveEnterprise Any dataype. or specify the TIBCO ActiveEnterprise Any dataype. You can specify a scalar datatype (string. Choice Cardinality All Cardinality XML Group Reference Cardinality Schema Model Group TIBCO BusinessWorks Process Design Guide . Other Fields for This Content Type Name Cardinality Type Other fields depending upon the datatype selected Cardinality Schema Element Name Cardinality Type Other fields depending upon the datatype selected Cardinality XML Element Reference A reference to an element in a stored XML schema.

Other Fields for This Content Type Cardinality Validation Table 7 describes the datatypes available for data. You can use the Coercions button to supply a reference to the XML Element for this item when it appears in the input or process data. Table 7 Icons for schema datatypes Icon Description String or character value.54 | Chapter 4 Activities Table 6 Content types for schema elements Content Type Any Element Description A reference to any XML Element. You can specify the type of string as one of the following: • • • • • • • • • • • • • • String Normailzed String Token Language Name NC-Name Q-Name Name Token Name Tokens ID ID ref ID refs Entity Entites TIBCO BusinessWorks Process Design Guide .

Boolean value. This can be any of the following datatypes: • • • • • • • • • Time Date Date & Time Duration Day Month Year Year & Month Month & Day TIBCO BusinessWorks Process Design Guide . double. You can specify the size of the schema item as float.Editor 55 | Table 7 Icons for schema datatypes Icon Description Integer value. or decimal. Date or Time. You can specify the size of the integer as one of the following: • • • • • • • • • • • • Byte Short Int Long Unsigned Byte Unsigned Int Unsigned Long Integer Positive Integer Negative Integer Non-positive Integer Non-negative Integer Floating point number.

Represents a schema element with the TIBCO ActiveEnterprise datatype any. Complex element. You can use the Coercions button to supply a reference to the XML Element for this element. Specifies that the schema element can be one of a specified set of datatypes. Any Element. Represents a schema element that can be a reference to any XML Element. Sequence. The Activity Input area lists the current activity’s required and optional input data. This element can be specified as any other datatype or a reference to an XML Type or AE Class. Any Type. Signifies that the contained sub-elements are repeated in an ordered sequence.56 | Chapter 4 Activities Table 7 Icons for schema datatypes Icon Description Base 64 or hexidecimal value. TIBCO BusinessWorks Process Design Guide . Choice. Input The Input tab allows you to map and transform output data from the previous activities in the process (including the event that starts the process) to input data for the activity. An HTTP Uniform Resource Identifier. Container for other datatypes. You can use the Coercions button to supply a datatype for this element. XML element or group reference. The following illustrates the input tab. The Process Data area contains the output from all of the activities that appear prior to the activity in the process definition.

TIBCO BusinessWorks Process Design Guide . See Chapter 8. you click on the desired item in the available schema in the Process Data panel and drag the item to the desired item in the Activity Input panel. you can click on the schema item in the Activity Input panel and type the constant or expression into the field. to create a mapping. Mapping and Transforming Data.Input 57 | Mapping and Transforming Activity Input Data You can create mappings between the available output from previous activities and the current activity’s input. If you wish to type in a constant or expression. There are also several icons above the Activity Input area. In general. You can also specify constants (strings enclosed in quotes or numbers) for any input values. on page 105 for more information about using the Input tab to create mappings between process data and the activity’s input. or you can specify conditions on the mappings. Table 10 on page 109 describes the icons and their function.

58 | Chapter 4 Output Activities The output tab displays the activity output schema. This kind of activity is known as a process starter. in the File palette. When a process starter is placed into a process definition. it replaces the default Start activity. You can only have one process starter in a process definition. there is an activity named File Poller. Table 8 describes the available process starters. This activity detects changes in a specified file and starts a process when the change occurs. and becomes the first activity in the process. This name appears in subsequent activities input tabs. You will receive a warning if you attempt to add more than one process starter to a process definition. The activity output data is displayed for informational purposes only and cannot be modified or altered. TIBCO BusinessWorks Process Design Guide . For example. Process Starters Some activities are used to start a process when an event occurs. The following illustrates the output tab.

. Either a JMS queue or topic message is received. or deleted. See TIBCO Administrator User’s Guide for more information about deployment and specifying where process starters run. you may wish to place all processes with a Receive Mail process starter on the same machine as the mail server so that the processes can poll the mail server more efficiently. Table 8 Process starters Palette ActiveEnterprise Adapter Process Starter Adapter Subscriber Adapter Request-Response Server File Poller Timer Starts a process when. you can place processes with different process starters on different machines. Receive Notification HTTP JMS HTTP Receiver JMS Queue Receiver JMS Topic Subscriber Mail Rendezvous SOAP Receive Mail Rendezvous Subscriber SOAP Event Source TIBCO BusinessWorks Process Design Guide . An HTTP request is received.. For example. A SOAP web services request is received. changed. File General Activities The specified file is created. Mail for the specified user is received by the mail server. A TIBCO Rendezvous message is received.Process Starters 59 | When you deploy your project. The specified time interval occurs. A corresponding Notify activity has executed. You can start processes for one-time events or schedule processes to start on recurring time intervals. A message or a request from an adapter is received.

on page 147 for more information about XPath expressions. XPath. The Start activity has the following tabs: • • Configuration Output Editor TIBCO BusinessWorks Process Design Guide . Custom Id This field can contain an XPath expression that specifies a custom ID for the process instance. and it is also available in the $_processContext process variable. on page 183 for more information about controlling the execution order of process instances. See Chapter 9. The Misc tab contains the following fields: Field Sequencing Key Description This field can contain an XPath expression that specifies which processes should run in order. and the Start activity is used to define the input expected by the process.60 | Chapter 4 Activities Misc Tab All process starters have a Misc tab that allows you to configure features common to all process starters. A process can be called from another process. This ID is displayed in the View Service dialog of TIBCO Administrator. See Chapter 12. Start Activity The Start activity is the first activity in a process definition (process starters replace the Start activity when they are used in a process definition). See Chapter 7. Process instances whose sequencing key evaluates to the same value will be executed sequentially in the order in which the process instance was created. Working With Variables. on page 93 for more information about process variables. See Chapter 9. XPath. Process Instance Execution. on page 147 for more information about XPath expressions.

You can define your own datatype on this tab.Start Activity 61 | • Output See Subprocesses on page 39 for more information about calling a process from another process. Field Name Description Description The name to appear as the label for the activity in the process definition. See Editor on page 50 for a description of how to define a schema. Any process that calls this process definition must supply the data specified on the Output Editor tab. TIBCO BusinessWorks Process Design Guide . Configuration The configuration tab has the following fields. This data then becomes available to other activities in the process definition. Output The output for the activity is defined by the specified data elements on the Output Editor tab. the data specified on the Output Editor tab becomes the output schema of the Start activity. Output Editor The Output Editor tab defines the data that the process is expecting as input. Short description of the activity. and you can reference XML schema or ActiveEnterprise classes stored in the project. Once defined.

Any process that calls this process definition will receive this data when the process call completes. You can define your own datatype on this tab. The End activity has the following tabs: • • • • Configuration Input Editor Input Error Schemas See Subprocesses on page 39 for more information about calling a process from another process. You can map data from the activities in the process to an output schema specified on the End process. Once defined.62 | Chapter 4 Activities End Activity The End activity is the last activity in a process definition. you may wish to have the called process process definition output data to the calling process. When a process definition is called from another process. Configuration The configuration tab has the following fields. Input Editor The Input Editor tab defines the data that the process will output. and this becomes the output of the process when the process completes. and you can reference XML schema or ActiveEnterprise classes stored in the project. Short description of the activity. TIBCO BusinessWorks Process Design Guide . You can then map data from other activities in the process to the End activity’s input. Field Name Description Description The name to appear as the label for the activity in the process definition. See Editor on page 50 for a description of how to define a schema. the data specified on the Input Editor tab becomes the input schema of the End activity. This becomes the output of the process.

TIBCO BusinessWorks Process Design Guide . and you can reference XML schema or ActiveEnterprise classes stored in the project. See Editor on page 50 for a description of how to define a schema.End Activity 63 | Input The input for the activity is defined by the specified data elements on the Input Editor tab. on page 159 for more information on error handling. You can define your own datatype on this tab. See Chapter 10. Error Schemas The Error Schemas tab defines schemas to contain data for errors thrown by the process definition. You can define multiple schemas. each for use in specific error cases. Error Handling.

64 | Chapter 4 Activities TIBCO BusinessWorks Process Design Guide .

page 66 Conditions. page 68 TIBCO BusinessWorks Process Design Guide .| 65 Chapter 5 Transitions and Conditions Transitions and conditions control the flow of activities in a process diagram. Topics • • Transitions. This chapter explains how to create transitions and specify conditions on those transitions.

After an activity or group completes processing. Figure 19 illustrates an invalid transition. You can have transitions from one activity to many other activities. See TIBCO Administrator User’s Guide for more information about configuring the TIBCO BusinessWorks process engine. If you wish to perform looping. TIBCO BusinessWorks Process Design Guide . Grouping Activities. The arrows are unidirectional. use groups to specify multiple executions of grouped activities (see Chapter 6. not the concurrency of execution of activities. you can have several branches of activity processing in your diagram. all transitions whose conditions are met are taken.66 | Chapter 5 Transitions and Conditions Transitions Transitions describe the flow of processing. Therefore. Each activity in a process definition must have a transition to it. A transition is represented by an arrow between two activities or groups of activities in a process definition. Figure 18 illustrates examples of valid transitions in a process. or the activity is not executed when the process executes. Transitions describe control flow of the process definition. Having multiple branches in a process definition does not imply that each branch is processed concurrently. Process execution is controlled by the process engine. on page 71 for more information on groups). and you cannot draw a transition to a previously executed activity. Control flow in a process definition must proceed sequentially beginning with the starting activity and ending with the End activity.

follow this procedure: TIBCO BusinessWorks Process Design Guide . you may specify whether the transition is taken always.Transitions 67 | Figure 18 Valid transitions One path from Start to End Two transitions from the Start activity form multiple paths If you have multiple branches in a complex process definition. you may find the Null activity in the General Activities palette useful for joining the multiple branches into a single execution path. Creating a Transition To create a transition. See Conditions on page 68 for more information. only if no other transitions are taken. See TIBCO BusinessWorks Palette Reference for more information about the Null activity. or when a custom-specified condition based on process data values is true. only when an error is encountered. When a transition is created. Figure 19 An invalid transition You cannot transition to a previously executed activity A transition is taken depending upon the condition specified on the transition.

You can choose any of the following line types for your transition: — Default (straight line) — Straight — Multiple Bends — One Bend — Curved — S-Shaped Conditions Conditions are specified on transitions to determine whether to take the transition to the next activity or not. 4. Optionally. 3. First create or open a process definition that contains at least two activities. Once the transition is created. Drag the mouse until the cursor is positioned over the activity that you would like to transition to. 2. When a transition is created. See Conditions on page 68 for more information about specifying conditions. 5. 7.68 | Chapter 5 Transitions and Conditions 1. you are presented with the transition dialog. Position the cursor over the first activity. TIBCO BusinessWorks Process Design Guide . 6. choose the line type and color for the transition. The condition dialog allows you to specify when this transition is taken. Click and hold the mouse button. Figure 20 illustrates the transition dialog. the condition dialog is presented. Release the mouse button. Click on the Create Transition icon on the TIBCO Designer toolbar.

if the activity completes successfully. XPath. on page 147 for more information about specifying XPath conditions and using the XPath formula builder. You can type in an XPath condition. line type. and the condition you create evaluates to true. Condition Type Success Description Take this transition unconditionally. but only if no other transitions are taken. This is useful when multiple transitions with conditions are drawn to other activities. description. See Chapter 9. Success with condition Specify a custom condition using XPath. If the activity completes successfully. TIBCO BusinessWorks Process Design Guide . That is. always transition to the activity the transition points to.Conditions 69 | Figure 20 The transition dialog The transition dialog allows you to specify a label. This is the default condition for transitions. You can also specify a condition type for the transition. and you can use the XPath formula builder to drag and drop XPath expressions and data into the condition. Success if no matching condition Take this transition when the activity completes successfully. and background color for the transition. The following table describes each condition type. the transition is taken to the activity it points to. This condition type can be used to handle any cases not handled by the conditions on the other transitions.

it is displayed on the transition line in the process definition if a label is not specified in the Label field. When a transition is created. the default condition type is Success. If a condition other than Success is specified. on page 159 for more information on error handling in process definitions.70 | Chapter 5 Transitions and Conditions Condition Type Error Description Take this transition if there is an error during processing of the activity. See Chapter 10. There can be only one Error and one Success if no matching condition transition out of each activity. Error Handling. TIBCO BusinessWorks Process Design Guide .

page 84 Repeat On Error Until True Loop.| 71 Chapter 6 Grouping Activities This chapter describes groups and how to use them for transactions. page 82 Repeat Until True Loop. page 79 Overview of Loops. error-handling. page 88 TIBCO BusinessWorks Process Design Guide . page 86 Critical Section Groups. and looping. page 80 Iterate Loop. page 72 No Action Groups. Topics • • • • • • • • Overview of Groups. page 88 Critical Section Groups.

72 | Chapter 6 Grouping Activities Overview of Groups Groups are used to specify related sets of activities. To group a set of activities. or if an error occurs. TIBCO BusinessWorks Process Design Guide . 3. Choose View>Create a Group from the menu. See Overview of Loops on page 80 for more information about loops. The main uses of groups are the following: • To create a set of activities that have a common error transition — similar to a try.. Choose the Select tool (the arrow pointer in the tool bar). You can repeat the activities once for each item in a list. In the design panel. To specify that the first activity that completes should determine which transition(s) to take to continue processing. draw a box around the desired activities. 4. See Pick First Groups on page 90 for more information about this type of group. See Chapter 11.. To create sets of activities that are to be repeated. Activities in the group that can take part in a transaction are processed together. groups can be maximized to display all activities in the group or minimized to show only a small icon for the whole group. until a condition is true. perform the following procedure: 1. 2. This allows you to have a set of activities with only one error-handling transition. • • • • Activities can be grouped or ungrouped. The group configuration appears in the configuration panel. Maximized groups can also be resized. depending upon whether the transaction commits or rolls back. or click the Create a group icon.catch block in Java. on page 167 for more information about transactions. Transactions. Also. See Critical Section Groups on page 88 for more information about critical sections. instead of trying to individually catch errors on each activity. To create a critical section that synchronizes process definitions. To create sets of activities that participate in a transaction. or rolled back. This allows you to wait for one or more incoming events and continue processing based on what incoming event was received first. This allows you to collapse and expand groups in a process definition to better display the relevant portions of the process you wish to view. See No Action Groups on page 79 for more information.

click the down arrow in the upper right-hand corner of the group or double click anywhere in the group to minimize the group. For groups that are currently minimized. perform the following procedure: 1. 3. 2.Overview of Groups 73 | 5. For groups that are currently maximized. Select the group in the design panel. To ungroup a set of grouped activities. 6. 7. or click the Undo the group button. The end of the group is the red end square on the right side of the group box. The start of the group is the green start arrow on the left side of the group box. double click the group icon to maximize the group. 2. TIBCO BusinessWorks Process Design Guide . Figure 21 illustrates minimizing and maximizing a group. perform the following procedure: 1. Choose View>Remove a Group from the menu. See Table 9 for more information about the fields of the group configuration tab. Specify the type of group to create and any other configuration parameters required for the group. Draw a transition from the last activity to execute in the group to the end of the group. Choose the Select tool (the arrow pointer in the tool bar). To minimize or maximize the display of a group. Draw a transition from the start of the group to the first activity to execute in the group.

if it is not already maximized. Maximize the group. TIBCO BusinessWorks Process Design Guide . any loop indexes for loops contained in loops are reset when the parent loop begins a new iteration. Click and drag the desired anchor point on any side or on the corners until the group is the desired size. activity output in the group is reset so that activities in subsequent iterations of the group will not have access to output data from previous iterations.74 | Chapter 6 Grouping Activities Figure 21 Minimizing and maximizing groups Click the down arrow or double click anywhere in a group to minimize a group that is currently maximized Double click a group to maximize a group that is currently minimized To resize a maximized group. 3. When a group has completed executing. 2. output from the activities in the group is available to subsequent activities in the process definition. only output from the last execution of the activity is available. Choose the Select tool (the arrow pointer in the toolbar) and select the group in the process definition. If the group is used for a loop (iterate. repeat until true. perform the following procedure: 1. In the case of loop groups. Activity Output and Groups Each activity in the group can access the output of previously executed activities inside or outside the group. and so on). Also.

• • TIBCO BusinessWorks Process Design Guide . Pick First — See Pick First Groups on page 90 for more information. Group Configuration Tab Table 9 describes the fields in the Configuration tab for groups. Repeat Until True Loop — See Repeat Until True Loop on page 84 for more information Repeat On Error Until True Loop — See Repeat On Error Until True Loop on page 86 for more information. you can optionally accumulate the output of each execution of one activity in the group into a list. For Iterate and Repeat Until True loops. Short description of the group. • • • • • None — See No Action Groups on page 79 for more information. Iterate Loop — See Iterate Loop on page 82 for more information.Group Configuration Tab 75 | If you wish to store data from each successive iteration of a loop. Transactions. you can create a process variable and use the Assign activity in the loop to store or alter data for each iteration. Table 9 Group Configuration tab Field Name Description Group Action Description The name to appear as the label for the group in the process definition. Transaction Groups — See Chapter 11. This list becomes the group’s output and the list is available to subsequent activities in the process definition. The type of group. Groups can be of the following types. on page 167 for more information. Critical Section — See Critical Section Groups on page 88 for more information.

Specifies that you wish to accumulate the output of each execution of one of the activities in the group into a process variable. See Index Variable on page 81 for more information. Therefore.76 | Chapter 6 Grouping Activities Table 9 Group Configuration tab Field 2. This variable will be used to store the current iteration number of the loop. If you uncheck this field. Accumulate Output TIBCO BusinessWorks Process Design Guide . the correct XPath expression for that process variable is automatically entered into this field. See Accumulate Output on page 81 for more information. Variable List A process variable containing the list you wish to use as the source of the iterations. In 2. activity output in loop groups behaves as described in Activity Output and Groups on page 74. Checking this field indicates that you would like activity output in a group to be handled using the TIBCO BusinessWorks 2. Use the button to choose from a list of available process variables for this field. activity output was not reset at the start of every iteration of a loop.x semantics. See Iteration Element on page 83 for more information on this field. Iteration Element A name to use for the process variable containing the current iteration element of the data supplied in the Variable List field.x Compatibility Mode Description This field is only available for loop groups in process definitions that were migrated from TIBCO BusinessWorks 2. activities in a loop could potentially see activity output from previous iterations of the loop.x. Once a process variable is chosen. The index starts at one and increments by one with each execution of the loop.x. Group Action: Iterate Index Name The index variable for the loop. The group iterates once for each item in the list.

If the condition evaluates to false. the loop stops. Conditions The condition that specifies when the loop should stop. See Index Variable on page 81 for more information. The activity in a group for which you wish to accumulate output for each execution of the loop. Accumulate Output Specifies that you wish to accumulate the output of each execution of one of the activities in the group into a process variable. the loop repeats. Output Name Group Action: Repeat-Until-True Index Name The index variable for the loop. You may select only one activity in the group. The activities in the group are executed once. The process variable to store the successive output of the selected activity in the Output Activity field. You may select only one activity in the group. The loop continues to repeat until the condition evaluates to true. The index starts at one and increments by one with each execution of the loop. on page 147 for more information. This variable will be used to store the current iteration number of the loop. The condition is specified as an XPath condition and the XPath formula builder is available to help to create the condition. then the condition is checked. See Accumulate Output on page 81 for more information. Output Activity Output Name TIBCO BusinessWorks Process Design Guide .Group Configuration Tab 77 | Table 9 Group Configuration tab Field Output Activity Description The activity in a group for which you wish to accumulate output for each execution of the loop. if the condition evaluates to true. XPath. See Chapter 9. The name of the process variable to store the successive output of the selected activity in the Output Activity field.

This variable will be used to store the current iteration number of the loop. TIBCO BusinessWorks Process Design Guide . the loop stops. The loop continues to repeat if unhandled errors are encountered. XPath. Conditions The condition that specifies when the loop should stop. The index starts at one and increments by one with each execution of the loop.78 | Chapter 6 Grouping Activities Table 9 Group Configuration tab Field Description Group Action: Repeat-On-Error-Until-True Index Name The index variable for the loop. See Chapter 9. Suspend (If Still Error) Suspends the process if the error still occurs when the specified condition is true. See Index Variable on page 81 for more information. If the condition evaluates to false. The activities in the group are executed once. See Suspend If Still Error Option on page 87 for more information about this field. the condition is checked. If an error occurs during the processing of the activities. the loop repeats. The condition is specified as an XPath condition and the XPath formula builder is available to help to create the condition. if the condition evaluates to true. on page 147 for more information. and that error does not have an associated error transition. until the specified condition evaluates to true.

• Single Group — specifies that all process instances in the same process engine for the current process definition will be synchronized on the current group.catch block in Java. This behavior is similar to a try. Multiple Group — specifies that all process instances for the current process definition and any other process definition with a critical section group specifying the same lock resource will be synchronized. you only need one error transition instead of an error transition for each activity. This option requires the Lock resource to be specified in the Lock Object field. If you do not wish for the activities in the group to repeat.. TIBCO BusinessWorks Process Design Guide . with a common set of transitions into and out of the group. • Lock Object The Lock shared configuration resource that synchronizes critical section groups across process definitions and potentially across process engines. No Action Groups You can group a set of related activities. you should select the Multiple Group option.No Action Groups 79 | Table 9 Group Configuration tab Field Description Group Action: Critical Section Scope Defines the scope of the critical section group. No action groups are primarily useful for specifying a single error transition out of the group so that if an unhandled error occurs in the group.. specify the group action to be None. If you are synchronizing across multiple process engines.

or you can iterate if an error is encountered while processing. An FTP Get activity retrieves a file from an FTP server. 4. The contents of the file are used to create an HTTP request to a web server. In the event of an error. a TIBCO Rendezvous message is published so that an administrative application can be notified of the error. The process performs the following operations: 1.80 | Chapter 6 Grouping Activities The following process definition illustrates a no action group that has one error transition out of the group to process any unhandled errors that occur when the grouped activities execute. See Accumulate Output on page 81 for more information about accumulating the output of each iteration of a loop. A Write File activity writes the retrieved file so that its contents are available at a later time. you can iterate until a given condition is true. If all activities in the group succeed. 3. You can iterate based on the items in an array stored in the process data. 2. TIBCO BusinessWorks Process Design Guide . The following are the types of loops that are available: • • • Iterate Loop Repeat Until True Loop Repeat On Error Until True Loop Iterate and repeat until true loops allow you to accumulate the output of a single activity in the loop for each execution of the loop. This allows you to retrieve output from each execution of the activity in the loop. Overview of Loops Loops allow you to execute a series of activities more than once. an email message is sent.

Because you can only select one activity in the Accumulate Output field. For example. you may want to accumulate a list of customer names from repeated executions of a JDBC Database Query task. and each time the loop is executed. One approach is to create a process variable to hold the data and use the Assign activity to assign values from each iteration of the loop to the process variable. After the loop exits. if you choose to accumulate the output of the same activity used in the condition of a Repeat Until True loop. You can access this variable like any other process data by referencing it with a dollar sign ($) in front of it. Because you can accumulate output from only one activity in a group. and you want to specify a condition that the loop should execute three times (for a repeat until true loop). the selected activity’s output is placed into a list. The Mapper TIBCO BusinessWorks Process Design Guide . For example. you can select one of the activities in the group. the condition would be $i=3. you must use a different approach. you can accumulate the output of one of the activities in a group by checking the Accumulate Output field. you can use a Java Code activity to concatenate the data into the output parameters for the Java Code activity. Accumulate Output For iteration and repeat until true loops. The iteration count starts at one the first time the loop is executed. If you check this field. Alternatively. You can then choose the Java Code activity as the Output Activity to accumulate for each iteration of the loop. if the index variable is i. you should design your group so that only one activity in the group holds the data to accumulate for each iteration. The list of accumulated output for that activity is stored in a variable whose name is specified in the Output Name field. this variable can be accessed in the same way other process data can be accessed by other activities. the index of the contained loop resets at the beginning of each iteration of the parent loop. to accumulate ouptut from several activities. In this case. For nested loops. and the count increases by one for each iteration of the loop.Overview of Loops 81 | Index Variable The index variable holds the current number of times a loop has executed. Therefore. The output for the selected activity is accumulated each time the activity is executed. the activity is executed and the output is added to the list before the condition is checked. or you may wish to accumulate the sum of the amounts for line items in an order. you may wish to use a Mapper activity in the loop to accumulate the output.

Iterate Loop An Iterate loop repeats the series of grouped activities once for every item in an existing sequence or list. The process performs the following operations: 1. 2. The group iterates once for every customer record returned by the QueryCustomer activity. The list can be items of any datatype. The WriteCustomerList activity writes the name and address of each customer to a file. WriteCustomerList. TIBCO BusinessWorks Process Design Guide . you can place a Mapper activity outside of the loop to strip out the unwanted value from the output list after the loop exits. 3.82 | Chapter 6 Grouping Activities activity is placed after the activity used for the condition of the loop so that the loop exits before the value is accumulated. appending to the file as each record is written. Alternatively. The process then reads the file that was written so that its data is available to the process. A JDBC Query activity is used to query a database and populate a list of customer records. The following is an example of an iterate loop. The customer records are then passed to a group containing one activity. and transitions to the ReadCustomerList activity once the last record is processed. then transitions to a Send Mail activity to send the contents of the customer list by way of email. 4.

You can use a simple expression containing a complete list as in the example above. we specified curent-record as the name for the current element. the expression in the Variable List field would be the following: $QueryCustomer/Customer/Record[position() > 10] See Chapter 9. When you specify a value for this field. on page 147 for more information on creating XPath expressions. This causes the following to appear in the process data tree: TIBCO BusinessWorks Process Design Guide . For example. a process variable with the specified name appears in the Process Data tree in the Input tab. For example. if you wish to skip over the first 10 records returned. This allows you to easily map the value of the current iteration element instead of using predicates on the process variable used for iteration. the repeating element $QueryCustomer/Customer/Record is used to determine the number of iterations to perform. or your expression can be more complex and only process certain items in the list. One iteration is performed for every element contained in the repeating element. Iteration Element The Iteration Element field on the Configuration tab allows you to supply a name for a process variable containing the current iteration element. XPath. The Variable List field is an XPath expression. in the Iterate group above.Iterate Loop 83 | The following is the configuration for this example: In this example.

The following is an example of a Repeat Until True loop. TIBCO BusinessWorks traverses the $QueryCustomer/Customer/Record element to retrieve the current element each time the loop iterates. The larger number of elements contained in the $QueryCustomer/Customer/Record repeating element. Repeat Until True Loop The Repeat Until True loop repeats the series of grouped activities until the given condition evaluates as true. the condition is checked. If you use $QueryCustomer/Customer/Record[i] in an input mapping. The activities are always executed once before checking if the condition is true.84 | Chapter 6 Grouping Activities Notice that both $QueryCustomer/Customer and $current-record contain the element Record. the current element being processed. By using the $current-record/Record element instead. and the loop exits when the condition evaluates as true. After executing the series of activities. you save processes time in proportion to how many times the iteration loop repeats. The process performs the following operations: TIBCO BusinessWorks Process Design Guide . the greater the performance improvement you will notice by using $current-record/Record instead of $QueryCustomer/Customer/Record[i]. $current-record/Record is a copy of the $QueryCustomer/Customer/Record[i] element.

A Send Mail activity that uses the customer information retrieved from the database to send an email to the customer notifying the customer of new product offerings. The condition evaluates the value of CustomerID/ID_num. c. A JDBC Query activity that takes each ID and queries a database for the record matching the ID. When all valid IDs have been output. A Java Code activity that outputs all the valid customer IDs. The Customer ID activity outputs -1 when there are no more customers.Repeat Until True Loop 85 | 1. so the condition examines the value and when it is -1. The following is the configuration for this example Repeat Until True loop: TIBCO BusinessWorks Process Design Guide . the activity will output -1 to indicate no more records can be queried. the loop stops executing and transitions to the WriteCustomerList activity so that the customer list will be stored in a file. the loop can exit. 2. When the condition of the loop evaluates to true. The group consists of: a. A group of activities executes until the customer records have all been queried. the output of the QueryCustomer activity is placed into a variable named customerList. For each iteration of the loop. b.

If there are no unhandled errors. to avoid an infinite loop if the error occurs repeatedly. If an error occurs for which there is no error transition. For example. the loop terminates. The process performs the following operations: 1. In this case. you may wish to execute a series of activities and retry the execution in the event of an unhandled error. if the condition is false. However. TIBCO BusinessWorks Process Design Guide .86 | Chapter 6 Grouping Activities Repeat On Error Until True Loop The Repeat On Error Until True loop allows you to repeat a series of activities when an unhandled error occurs. 2. The following illustrates a repeat on error until true loop. the loop terminates. specify a repeat on error until true loop with a condition that terminates the execution after five tries. the condition of the loop is evaluated — if the condition is true. The activities in the group are executed once. The contents of the file are written so the data is available at a later time. An FTP Get activity retrieves a file from an FTP server. you wish to retry the execution only five times. 3. the loop repeats until there is no error occurs or the condition is true. The contents of the file are sent by email.

The resulting behavior in this example is that the group of activities executes and loops until either a successful completion of all activities. the process instance suspends if the error still exists when the condition of the loop is true. If an error is encountered. the execution resumes before the Repeat On Error Until True loop. This option allows the administrator to correct the problem causing the error. When a process instance resumes execution. For example. and the deployment configuration allows you to specify an action to perform if the process is suspended. When this option is checked. Therefore. TIBCO BusinessWorks Process Design Guide . the loop terminates if the condition evaluates to true. After the problem is corrected. and if an error occurs. or until the group is executed five times. the fifth iteration of the loop). a machine may be down. and all process variables are reset to their values before the loop was executed the first time. the process instance resumes execution as if the Repeat On Error Until True loop had never executed.Repeat On Error Until True Loop 87 | The following is the configuration for this example loop: The condition is specified as $i = 5. the loop condition is checked as it normally would be. The process instance executes the loop. or an adapter service may not have been started on the machine. the administrator can resume the process execution. The suspended process is displayed by TIBCO Administrator. which means that when the index variable is equal to five (that is. The loop is entered again. the loop exits. The condition is only evaluated upon encountering an unhandled error in the group. Suspend If Still Error Option Repeat On Error Until True loops have the Suspend If Still Error option.

Single Group If you wish to synchronize process instances for a single process definition in a single process engine. However. or you can synchronize process instances for multiple process definitions. see TIBCO Administrator User’s Guide. the process instance continues to be suspended. Only one process instance at any given time will execute the activities contained in the Critical Section group. 2. TIBCO BusinessWorks Process Design Guide . or you can synchronize process instances across multiple process engines. Specify Single Group for the Scope field. Synchronization Options Critical section groups can be used to synchronize all process instances for a particular process definition in a single process engine. 3. For more information about deployment configuration and specifying actions to perform if processes are suspended. other situations may occur where you wish to ensure that only one process instance is executing a set of activities at a time. as well as information about how to view suspended processes and resume or kill them. Critical Section groups are particularly useful for controlling concurrent access to shared variables (see Synchronizing Access to Shared Variables on page 103 for more information). Create a group around the activities you wish to synchronize. Any concurrently running process instances that contain a corresponding critical section group wait until the process instance that is currently executing the critical section group completes. perform the following: 1.88 | Chapter 6 Grouping Activities If the error persists. The administrator can decide whether to resume or kill the process if the error cannot be fixed. Critical Section Groups Critical section groups are used to synchronize process instances so that only one process instance executes the grouped activities at any given time. Specify Critical Section for the Group Action field.

Use the Browse button in the Lock Object field to locate the Lock shared configuration resource you created in Step 1. To perform the synchronization across multiple process engines. Create a Lock shared configuration resource and specify a name for the resource. Deadlocks can occur if you do not specify the Lock resources in the same order in nested Critical Section groups for all process definitions. 2. such as Request/Reply activities. That is. the process engines must be configured to use a database for storage. 3. and only use activities that execute very quickly. Specify Multiple Groups for the Scope field. • • TIBCO BusinessWorks Process Design Guide . 7. 4. Specify Critical Section for the Group Action Field. ensure that Lock shared configuration resources are used in the same order in all process definitions. When the process instances are executed by the same process engine. locking is performed in memory. Create a group around the activities you wish to synchronize. Avoid nesting Critical Section groups. 5. or if you wish to synchronize process instances across multiple process engines. Usage Guidelines Because Critical Section groups cause many process instances to wait for one process instance to execute the activities in the group. there may be performance implications when using these groups. put only a very few activities in a Critical Section group. If you must use nesting. and a database transaction is performed to ensure that only one process instance is executing the critical section group at any given time. perform the following: 1.Critical Section Groups 89 | Multiple Groups If you wish to synchronize process instances for multiple process definitions. Perform steps 3 to 6 for any process definitions you wish to synchronize. Wait For activities. Make sure you specify the same Lock shared configuration object for all Critical Section groups. Do not include any activities that wait for incoming events or have long durations. check the Multi-Engine field of the Lock resource. or activities that require a long time to execute. you should use the following guidelines when creating critical section groups: • Keep the duration of a Critical Section group as short as possible. In general. Sleep activities. 6. When the process instances are executed across multiple engines.

For example. The group then waits for either the return message from PollInventory. Whichever system returns the information first is used to fill the order. a check is made to see if the order can be filled from stocked inventory or from returned merchandise. If neither system returns the information about available inventory. as part of an order-entry system. The first activity to complete determines the next transition taken. when an order is placed. You can use a global variable to ensure that the Multi-Engine field is set to the same value for both resources. TIBCO BusinessWorks Process Design Guide . the order times out and cancels. the transition to the ProcessOrder activity is taken. If either PollInventory or PollReturnedStock complete first. both the Lock and the Shared Variable shared configuration resources should have the Multi-Engine field checked. Pick First Groups Pick first groups allow process execution to wait for one or more events. The following illustrates an example sub-process that uses the Pick First group to implement the business logic described above. or the Timeout activity. If the Timeout activity completes first. The first event that completes determines which transition to take to continue processing. the transition to the CancelOrder activity is taken. The process is called and then a transition is taken to the Pick First group. the return message from PollReturnedStock.90 | Chapter 6 Grouping Activities • When using Critical Section groups to retrieve or assign a value to a shared variable across multiple process engines.

and activities that have the pause symbol can have valid transitions from the start of the Pick First group. the activity is highlighted in green. the activity is highlighted in red.. draw transition lines from the start of the group to the desired activities. if the transition from the start of the group is drawn to an invalid activity. Only request/reply. If the transition is valid. activities.Pick First Groups 91 | To specify the events that you would like to wait for. Wait for . TIBCO BusinessWorks Process Design Guide ..

92 | Chapter 6 Grouping Activities TIBCO BusinessWorks Process Design Guide .

Topics • • • • Overview of Variables.| 93 Chapter 7 Working With Variables This chapter describes the various types of variables available in TIBCO BusinessWorks and how to use these variables in your process definitions. page 98 Shared Variables. page 94 Process Variables. page 101 TIBCO BusinessWorks Process Design Guide . page 94 Global Variables.

You can also override values for predefined variables. • TIBCO BusinessWorks Process Design Guide . and other information. There are several ways in which they can be used: • Define a variable using TIBCO Designer. • • The following sections describe the types of variables available in your project in greater detail. Process Variables — these variables allow you to access various data in your project. then override the value for individual applications at deployment time using TIBCO Administrator. Because multiple process instances can access the same variable. each with their own purpose and usage. publication service or TIBCO BusinessWorks process) at deployment time using TIBCO Administrator. you can also synchronize access across processes when setting or retrieving the shared variable. Global Variables Global variables provide an easy way to set defaults for use throughout your project. project name.94 | Chapter 7 Working With Variables Overview of Variables There are several types of variables in TIBCO BusinessWorks. there are predefined process variables containing the process ID. Shared Variables — these variables allow you to specify data for use across multiple process instances. unless the GUI does not allow you to make them settable later. The values you specify are then used at runtime. unless the GUI does not allow you to make them settable later. You can also specify different values for each deployment of your project. Predefine a variable using TIBCO Designer. You can also override values for predefined variables. then override the value for individual services (for example. TIBCO BusinessWorks provides the following types of variables: • Global Variables — these variables allow you to specify constants that can be used throughout the project. For example. The constants can be specified and changed while designing and testing your project. You can also create user-defined process variables for containing process-specific data.

Global Variables 95 | For example. Some fields in the configuration panel. Global Variable groups are used for grouping variables. TIBCO BusinessWorks Process Design Guide . click the left-most icon. follow these steps: 1. you can globally set it to a different value. you can click the abc icon to add variables to the group. With the group icon selected. They are especially useful if multiple developers share a project using a version control system. To use the simple global variables editor. Specify the name of the group. TIBCO Designer provides a simple. select the Global Variables tab. In the project panel. in-place editor for global variables or an advanced global variables editor (see Advanced Variables Editor on page 96). select that region and triple-click the variable. You now have these choices: — To assign or change a variable value. If you wish to change the TIBCO Rendezvous daemon for the adapter. The project panel is updated to display all currently defined global variables. You can then use the variable in different sessions in an adapter. you could assign the value 7474 to the predefined global variable RvDaemon. allow you to drag and drop global variables into the field. such as user name and password fields. then press Enter. Advanced Editor Delete Add Global Variable Add Global Variable Group — To add a new global variable group. Press Enter when you’re done. The variable expands so you can change either the variable name or the variable value.

When the project is deployed and the configured components run. Supply the variable name and. 2. In that case. enter the variable name surrounded by %% on both sides. — Right-button a global variable for a menu that allows you to edit or delete it.96 | Chapter 7 Working With Variables — To add a global variable. TIBCO BusinessWorks Process Design Guide . The Adapter Archive resource allows you to specifically force inclusion of selected service-level variables if there are problems with inclusion. Service level variables are only included in the service archive if the service uses the variable. In the illustration below. You may add definitions of any variables you need to the predefined variables. RvServiceTest would be replaced with 7800. TIBCO Designer provides anumber of default global variables. Advanced Variables Editor The Advanced Variables Editor is useful in the following cases: • • • When you need to make multiple modifications to substitution variables When you wish to mark variables as settable from TIBCO Administrator at runtime on a per-deployment basis (or not) When you wish to mark variables as settable on a per-service basis (or not). You can also drag from the Global Variable tree in the display into a text field in the configuration panel. optionally. the value. A new global variable item is added to the bottom of the list. the variable RvServiceTest is used as the service. TIBCO BusinessWorks replaces all occurrences of the global variable name with the global variable value. you must also have marked the variable as settable at the service level. When you want to use the global variable in the fields of a resource. click the abc icon. For example. Press Enter when you’re done. TIBCO BusinessWorks includes all service-level variables regardless of usage. See TIBCO Designer User’s Guide for information.

To do this. In the project panel.clientVar. In the Advanced Editor. For example. Click OK to exit the editor and save the new or modified variables. or add a constraint or description (by clicking on the associated column) — For each variable. — Change the datatype of the variable (by clicking on the type column). add the following argument to the command line when starting the process engine: -tibco. See the TIBCO Administrator User’s Guide for additional information. you can: — Triple-click an item to edit it. To use the Advanced Variables Editor. specify the following as a command line argument when starting the process engine: -tibco. then click the Open Advanced Editor (pen) icon. you can click the Deployment or Service check box to make that variable settable from TIBCO Administrator for each deployment or for each service. select the Global Variables tab. including the path to the variable if it is contained in a folder. follow these steps: 1. 3. Changing Global Variable Values at Runtime You can change the value of a global variable when you deploy your project in TIBCO Administrator. — Click the Add — Click the Add Variables Group a Variable icon to add a group of variables. if you have a global variable named item1 contained in a folder named myGroup and you wish to set its value to 500. value is the value you wish to set the variable to. icon to add a variable. You can also specify values for global variables when starting a process engine on the command line.clientVar. 2.<variablePathAndName> <value> where variablePathAndName is the name of the variable you wish to set.myGroup/item1 500 TIBCO BusinessWorks Process Design Guide . See the section on modifying runtime variables in the TIBCO Administrator User’s Guide for more information on using TIBCO Administrator.Global Variables 97 | A variable that is settable on a per-service basis can be set for each adapter service or TIBCO BusinessWorks top-level process.

only global variables with well-formed XML names (for example. This allows you to use process data to supply input values for an activity. See Global Variables on page 94 for more information about global variables. There are four types of process variables: • • • • Activity Output Predefined Process Variables Error Process Variables User-Defined Process Variables Activity Output Some activities produce output. the project name. Process variables are displayed in the Process Data panel of each activity’s Input tab. $_processContext contains general information about the process. Activities can use output from previously executed activities by mapping data from the process variable to the activity’s input. and so on. Predefined Process Variables There are two process variables that are available to all activities that accept input: $_globalVariables and $_processContext. See Input on page 56 for more information about the Input tab and mapping process data to an activity’s input. An activity’s output is placed into a process variable with the same name as the activity (with a dollar sign placed in front of the name to indicate it is a process variable). names containing a % are not well-formed) appear in the $_globalVariables process variable. TIBCO BusinessWorks Process Design Guide . Activities have access to any data that is output from previously executed activities in the process definition. Only global variables that have the Deployment option checked (on the advanced editor dialog) are visible in the $_globalVariables process variable.98 | Chapter 7 Working With Variables Process Variables Process variables are data structures available to the activities in the process. such as the process ID. $_globalVariables contains the list of global variables defined on the Global Variables tab of the project. Also. Each process variable name starts with a dollar sign ($).

Only user-defined process variables can be modified. use the Assign activity. the data pertaining to the error is placed into process variables. The $_error process variable contains general error information. Figure 23 illustrates assigning a value to a user-defined process variable. on page 159 for more information about handling errors and error process variables. See Chapter 10. You create a process variable in the same way you create data schemas for activities. In the event of an error. TIBCO BusinessWorks Process Design Guide . Figure 22 Creating a process variable To assign a value to a user-defined process variable. User-Defined Process Variables You can define your own process variables and assign values to them in your process definition. the activity’s error variable is populated with the appropriate error schema. Error Handling.Process Variables 99 | Error Process Variables When an error occurs in a process. Assign allows you to specify which process variable you wish to modify. then you create its schema in the middle panel. Figure 22 illustrates creating a process variable. See Editor on page 50 for more information about creating data schemas. Activities can also have error process variables named $_error_<activityName>. You add a process variable and give it a name in the left-most panel. You can then specify a new value for the process variable in the Input tab of the Assign activity. Process variables are defined on the Process Variables tab of the Process Definition resource.

Memory saving mode allows memory used by a process variable to be released when the value of the variable is no longer needed. See Appendix B. Memory saving mode can reduce the memory used by actively running process instances. If no activities refer to the variable. use the Assign activity to reset the value of a process variable. memory saving mode is disabled. and make sure to supply the correct values for all elements in the process variable. the entire contents of the process variable is replaced by the specified new contents. that element no longer contains a value at run time.<processname> property to true. Memory Usage of Process Variables All process variables in a running process instance are stored in memory and therefore consume system resources. but you can enable memory saving mode for specific process instances by setting the EnableMemorySavingMode. as each activity is executed. Custom Engine Properties. You can enable memory saving mode for all process instances by setting the EnableMemorySavingMode. That is. the list of process variables is evaluated to determine if subsequent activities in the process refer to the variable. When using memory saving mode. Therefore. as well as potentially improve the performance of checkpoints. the memory used by the variable is released.* property to true. See TIBCO BusinessWorks Palette Reference for more information about the Assign activity. By default. if you do not supply a value for an element in a process variable.100 | Chapter 7 Working With Variables Figure 23 Assigning a value to a user-defined process variable When you use the Assign activity. on page 237 for more information about setting properties. TIBCO BusinessWorks Process Design Guide .

For example. but its scope is limited to the current job. This type of shared variable is useful if you wish to pass data across process instances or if you wish to make a common set of information available to all process instances. if a called process has the Spawn configuration field checked. You can use the Get Shared Variable and Set Shared Variable activities to access the data instead of mapping data to a called processes input or output schemas. Job Shared Variable A Job Shared Variable resource is similar to a Shared Variable. There are two types of shared variables: • • Shared Variable Job Shared Variable Shared Variable A Shared Variable resource allows you to share data across process instances. A copy of the variable is created for each new process instance.Shared Variables 101 | Shared Variables A shared variable is a shared configuration resource in the General Activities palette. Configuring Shared Variables You configure a shared variable by providing the following: • • • a name for the variable the schema of the data contained in the variable optionally. All process instances can read and update the data stored in a shared variable. a new process instance is created and the process instance receives a new copy of the Job Shared Variable. New process instances receive a copy of the Job Shared Variable. You can create a shared variable to hold the approval codes and create one process definition for setting the codes. This type of shared variable is useful for passing data to and from sub-processes without creating an input or output schema for the called process. so data cannot be shared across process instances. you may have a set of approval codes for incoming orders that change daily for security purposes. an initial value for the variable TIBCO BusinessWorks Process Design Guide . You can then retrieve the shared variable in all processes that require the current approval codes. Therefore.

When you choose None. its current state is written to the process engine storage location (either the file system or a database depending upon how the process engine was deployed). However. When you choose Build Value. Therefore. but the state of these variables is saved by a checkpoint. You can choose either None (no initial value). When you choose Select Value. Setting the Initial Value of the Variable While configuring the shared variable. no initial value is set and the variable value must be set in a process definition before it can be retrieved. whether the variable is persistent and whether the variable should be available across process engines Setting the Schema of the Shared Variable The Schema tab allows you to specify a complex schema for shared variable data. The current state of the shared variable is only updated in the process engine persistent storage when the value of the variable changes. Sharing the Variable Across Multiple Process Engines If you wish to make the value of a Shared Variable resource available to process instances across multiple process engines. This field is not available on Job Shared Variable resources. if a process engine crashes. you can check the Persistent field on the Configuration tab. To preserve the current state of a Shared Variable resource.102 | Chapter 7 Working With Variables • for Shared Variable resources. Select Value. the current state of the shared variable may be lost. you can choose a stored XML Instance resource containing data that matches the specified schema. When a shared variable is persistent. it is not necessary to store these variables in a separate location in the process engine storage. TIBCO BusinessWorks Process Design Guide . See Editor on page 50 for more information about specifying data schema. or Build Value. Making the Variable Persistent The current value of the shared variable is stored in memory for efficient access by process instances. an Edit button appears that allows you to bring up a dialog to construct the initial value of the variable. The Persistent field is not available on Job Shared Variable resources. you can check the Multi-Engine field on the Configuration tab. you can specify an initial value for the variable on the Initial Value tab.

Shared Variables 103 | If you choose this option. the current value of the variable is not stored in memory. This would result in an unpredictable value for the variable. a process instance could update the value of a variable while another process instance is attempting to read the value. You can assign a value to the shared variable by using the Set Shared Variable activity. the Lock shared configuration object and critical section group allow you to synchronize access to Shared Variable resources. You should use critical section groups to contain the Set Shared Variable and Get Shared Variable activities. Both retrieving the current value of the variable and assigning a new value to the variable requires I/O to the process engine database storage. See TIBCO Administrator User’s Guide for more information on specifying load balancing groups and specifying a database for process engine storage during deployment. This provides access to the variable’s current value in subsequent activities in the process definition. Both of these activities can be found in the General Activities palette. Assigning and Retrieving the Variable’s Value You can retrieve the current value of a shared variable by using the Get Shared Variable activity. Because multiple process engines access the shared variable. You can also configure the Set Shared Variable activity to include the current value of the variable as output for the activity. a database must be used to store process engine data. Without a mechanism for locking. Also. TIBCO BusinessWorks Process Design Guide . Before you retrieve the value of a shared variable. only engines that are in the same deployment and part of the same load-balancing group can share variables.This ensures that only one process instance attempts to assign a value to the variable and ensures that no process assigns a value to the variable when the current process attempts to read the value. See Critical Section Groups on page 88 for more information about using the critical section group. Synchronizing Access to Shared Variables Because multiple process instances can potentially access and assign values to Shared Variable resources. you must either set an initial value in the variable’s configuration or use the Set Shared Variable activity to set the variable value.

104 | Chapter 7 Working With Variables TIBCO BusinessWorks Process Design Guide .

page 119 Examples of Mappings. page 124 XSLT Statements. page 115 Repairing Incorrect Mappings. page 114 Data Validation. Menus. page 117 Shortcuts. Topics • • • • • • • • Overview of Mapping and Transformation.| 105 Chapter 8 Mapping and Transforming Data This chapter describes mapping data from a process to a specific activity’s input and how to transform the data using the activity’s Input tab. page 141 TIBCO BusinessWorks Process Design Guide . page 108 Specifying Constants. and Icons. page 106 Buttons.

You cannot modify the process data on an activity’s input tab. On the Input tab. Figure 24 illustrates an activity’s Input tab. Figure 24 An activity’s input tab Process Data Panel The process data is the list of available data in the process definition at the point where the activity is located. All activities also have access to global variables. The process data and activity input are represented as schema trees. you can see the available process data and the activity’s expected input. and information about the current process context. process variables.106 | Chapter 8 Mapping and Transforming Data Overview of Mapping and Transformation The Input tab of an activity allows you to supply the data that an activity expects as input. An activity has access to all output data from any activity that has been previously executed in the process definition. but you can use the data to supply input to the activity. TIBCO BusinessWorks Process Design Guide .

there are some complex scenarios that require multiple steps. When you perform mapping. Most options in the Mapping Wizard dialog are straightforward. the activity’s input elements are displayed as hints. You may also wish to refer to XSLT Statements on page 141 for a reference of XSLT statements when deciding which XSLT statement can be used to achieve the result you desire. the Mapping Wizard dialog allows you to select which kind of mapping you wish to perform. you do not need detailed knowledge of XSLT to specify an activity’s input. The XSLT is displayed in your text document. For more complex mappings. However. Required elements must have a mapping or formula specified. TIBCO BusinessWorks Process Design Guide .Overview of Mapping and Transformation 107 | Activity Input Panel The activity’s input is an Extensible Stylesheet Language Transformation (XSLT) template that specifies how process data should be transformed to provide the expected input. Many of these situations are described in the section Examples of Mappings on page 124. you can right-click on any item in the input schema and choose Copy from the popup menu. XPath. The XPath Formula Builder allows you to easily create XPath formulas. on page 147. You can paste XSLT into your activity input or use the XSLT File shared configuration resource and the Transform XML activity. see Chapter 9. You can also use your own XSLT templates to perform transformations instead of using the techniques described in this chapter. Each element can be required or optional. See Statements. Once a mapping or formula is specified. and Errors on page 108 for more information about hints and statements. Normally. a hint becomes an XSLT statement. Then open a blank text document and choose Paste. Mapping and Transforming Process Data to Activity Input When an activity is first dragged from a palette to the design panel. For more advanced use of XPath. However. then drag and drop that item into the desired schema element you wish to map in the Activity Input panel. See TIBCO BusinessWorks Palette Reference for more information and examples of using XSLT to perform mapping. if you are familiar with XSLT and you wish to see the actual code. There are also a variety of third-party books and resources about XSLT and XPath. Hints. simple mappings appear in the formula area next to the input element after you release the mouse button. These hints show you the data the activity expects as input. You can specify XPath formulas to transform an element if you need to perform more complex processing. You map data by selecting an item in the Process Data panel.

if the input schema for the activity changes. You can also drag the hint to the left past the dividing line between the panels and the hint becomes a blank statement. See Repairing Incorrect Mappings on page 117 for more information about using the Mapper Check and Repair button to fix statements in the activity’s input. you must fix the error before executing this process definition. Hints. and any input elements that do not have a statement are displayed as hints. the existing statements are examined. All required input elements must have statements specified. See Repairing Incorrect Mappings on page 117 for more information about fixing errors. Any statement or hint that has an error is displayed in red. the input element becomes a statement. TIBCO BusinessWorks Process Design Guide . A hint is only displayed in red if it is a required input element. Therefore. There is also a popup menu when you right-click on elements in each panel. Menus.108 | Chapter 8 Mapping and Transforming Data Statements. Hints are reminders that you can specify a statement for the input element. or if you use the Mapper Check and Repair button to automatically fix errors. The Mapper Check and Repair button can help you automatically fix some errors. and Errors When you display the Input tab for an activity. Once you specify a mapping or a formula for a hint. Once you specify a statement in the Activity Input panel and apply the change to the activity. popup menus. If a statement is red. These statements are saved as part of the activity in the repository. it becomes part of the XSLT template used to create the activity’s input data. and icons. but they are not stored as part of the XSLT template for the activity’s input. Buttons. your statements may no longer be valid. Statements are only deleted if you manually delete them using the delete button. Toolbar and Right-Click Menu on the Input Tab The Process Data panel and the Activity Input panel have several buttons for performing various functions. Hints are displayed in italics with a light blue background. This section describes the various graphical elements of the Input tab. Table 10 describes the buttons and right-click menu items available in the panels of the Input tab. and Icons The Input tab contains several toolbar buttons.

Deletes the selected element. a choice element can be coerced into one of the possible datatypes for the element. and Icons 109 | Table 10 Input tab toolbar buttons Button Right-Click Menu Description Process Data Area Coercions. Expands the elements in the Activity Input area to display elements that are mapped to the currently selected element or its sub-elements. TIBCO BusinessWorks Process Design Guide . The element can be later pasted.Buttons. Copies the selected element. Moves the selected element down in the activity input tree. Expand This menu item has two sub-menus: Content and All. Moves the selected element up in the activity input tree. Allows you to specify a type for Process Data elements that are not a specific datatype. Expand>Content expands the current element so that all elements that are currently used in a mapping are visible. or an element of datatype any can be coerced into a specific datatype. Show Connected Delete Copy Activity Input Area Shows/hides the mapping formulas for the input elements. Type Documentation. Move Out Move Out. Move Up. Promotes the selected element to the next highest level in the activity input tree. For example. Move Down. Expand>All expands all sub-elements of the currently selected element. Allows you to specify or view documentation for schema elements. Menus.

Adds a statement for a child element to the currently selected element. Add Child. Invokes the XPath formula builder. Edit Statement. Verifies the XSLT template you have created in the Activity Input panel against the activity’s expected input.110 | Chapter 8 Mapping and Transforming Data Table 10 Input tab toolbar buttons Button Right-Click Menu Move In Description Moves the currently selected element into a new statement. TIBCO BusinessWorks attempts to fix simple problems such as adding missing activity input items that are expected. Delete Delete All Insert. Deletes the selected element and all of its child elements. Mapper Check and Repair. This displays the Move Into New Statement dialog that allows you to choose the statement you wish to move the element into. See XSLT Statements on page 141 for more information about XSLT statements. A list of errors and warnings appear and you can choose which items you wish to fix. Allows you to modify an XSLT statement for the element. See XSLT Statements on page 141 for more information about XSLT statements. Edit XPath Formula Builder. XPath. See Repairing Incorrect Mappings on page 117 for more information. on page 147 for more information about XPath and the XPath formula builder. such as Choice or If. The right-click menu item Statement provides a shortcut for multi-line statements. See Chapter 9. Inserts a new element or XSLT statement in the activity input schema on the same level of the hierarchy as the currently selected element. You can add one element or XSLT statement at a time with this button. See XSLT Statements on page 141 for more information about XPath statements. You can use this editor to create an XPath statement for this input element. TIBCO BusinessWorks Process Design Guide . See the description of the Statement menu item below for more information.

Table 11 Icons for schema items Icon Description Complex element that is a container for other datatypes. Errors. and All. You can use the Type Documentation button to obtain any available documentation on any node in the Process Data or Activity Input schema trees. Rolls back the last operation performed. Pastes the last element that was copied or cut. Expand>All expands all sub-elements of the currently selected element. Expands the elements in the Process Data area to display elements that are mapped to the currently selected element or its sub-elements. Expand>Errors expands the currently element so that all sub-elements that have an error in their expression are visible. This is also called a branch in the schema tree. The element can be later pasted to a new location.Buttons. Menus. Show Connected Statement Undo Redo Cut Copy Paste Icons for Schema Element Datatypes Schema elements also have a set of associated icons to indicate their type. Copies the selected element. TIBCO BusinessWorks Process Design Guide . Performs the last operation that was undone with the Undo menu item. This menu item contains shortcuts that allow you to easily add the desired XSLT statement(s) with one menu item instead of adding the statement(s) with the Insert button. See Right-Click Menu on page 119 for a description of the sub-items of this menu. and Icons 111 | Table 10 Input tab toolbar buttons Button Right-Click Menu Expand Description This menu item has three sub-menus: Content. Table 11 describes the icons used for schema items. Expand>Content expands the current element so that all sub-elements that have a mapping or expression are visible. Deletes the selected element.

112 | Chapter 8 Mapping and Transforming Data Table 11 Icons for schema items Icon Description Simple string or character value. Data in this schema element can be any datatype. This can be any of the following datatypes: • • • • • • • • • Time Date Date & Time Duration Day Month Year Month & Year Day & Month Simple binary (base 64) or hex binary value. Simple decimal (floating point) number. TIBCO BusinessWorks Process Design Guide . Represents a schema item that can be any datatype. Qualifier Icons Schema elements can have additional icons that specify qualifications. Simple integer value. The qualifier icons have different meanings depending upon where they appear. Simple boolean value. in an XSLT statement. Simple Date or Time. Choice. Specifies that the actual schema element can be one of a specified set of datatypes. the question mark signifies the statement is "collapsed" and an implicit "if" statement is set. but not displayed in the Activity Input area. For example. a question mark icon signifies an element is optional in the Process Data schema or in a hint in the Activity Input. However.

Buttons. This occurs when you map an optional element from the process data to an optional element in the Activity Input schema or if you specify Surround element with if test on the Content tab of the Edit Statement dialog. A plus sign indicates the item repeats one or more times. and Icons 113 | Table 12 describes the additional qualifiers that appear next to the name of schema items. Table 12 Additional icons for hints Qualifier Process Data or Hint No qualifier indicates the element is required. TIBCO BusinessWorks Process Design Guide . You can set an element explicitly to null by clicking the Edit Statement button for the element. Statement N/A An implicit "if" statement is set for this statement. N/A N/A A null sign indicates the item is explicitly set to null. then checking the Set Explicit Nil field on the Content tab of the Edit Statement dialog. An asterisk indicates the item repeats zero or more times. A null sign indicates the item may be set to null. A question mark indicates an optional Item. Menus.

Date and Datetime Strings in Constants In constant expressions used in activity input bindings. 2002 in a timezone that is 8 hours.112-08:00" is 55 minutes. To specify a string. TIBCO BusinessWorks Process Design Guide . When TIBCO BusinessWorks generates datetime strings (for example in the process debugger display for process data). the value is interpreted in the timezone of the machine that is performing the parsing. enclose the string in quotes. UTC time is always used. on page 147. XPath. type the number into the schema element’s mapping field. see Chapter 9. The following illustrates specifying the string "USA" for the Country item and 94304 for the PostalCode item of an input schema. so you are encouraged to always use timezones. If no timezone field is present. To specify a number. Constants can be strings or numeric values. datetime values are read in according to the ISO 8601 standard. The output for the example above is: 2002-02-10T14:55:31. For example. the value: "2002-02-10T14:55:31. as described in the XML Schema specification. 31 seconds and 112 milliseconds after 2pm on February 10th. 0 minutes behind UTC.112Z which is the equivalent time in the UTC timezone. To learn more about complex XPath expressions that use functions and search predicates. Constants can also be used in functions and search predicates. you can specify a constant.114 | Chapter 8 Mapping and Transforming Data Specifying Constants For each element in the activity input schema tree. This can lead to complications if you are processing data from different timezones.

0 and Xpath 2. if you pass an XML document to a Parse XML activity. See XML Schema Part2: Datatypes specification at http://www.w3.0 Functions and Operators specification at http://www. See Xquery 1. Datatype validation listed with the prefix xsd: is defined in the namespace http://www. the content of the document is checked to ensure that elements in the document are actually of the specified datatypes.org/2001/XMLSchema.Data Validation 115 | Data Validation Data passed as input to an activity or from an event received by a process starter is validated to ensure that it conforms to its specified datatype. Table 13 describes the validation behavior. Table 13 Datatype validation Data Type Built-In Primitive Types boolean decimal float double string duration yearMonthDuration dayTimeDuration dateTime time date xsd:boolean xsd:decimal xsd:float xsd:double xsd:string xsd:duration xdt:yearMonthDuration xdt:dayTimeDuration xsd:dateTime xsd:time xsd:date Validation TIBCO BusinessWorks Process Design Guide .org/2003/11/xpath-datatypes.org/TR/2004/PER-xmlschema-2-20040318/ for more information on the proper representation of these datatypes.org/TR/2003/WD-xpath-functions-20031112/ for more information on the proper representation of these datatypes. For example.w3.w3.w3. Datatype validation listed with the prefix xdt: is defined in the namespace http://www.

116 | Chapter 8 Mapping and Transforming Data Table 13 Datatype validation Data Type gYearMonth gYear gMonthDay gDay gMonth hexBinary base64Binary anyURI QName NOTATION untypedAtomic Validation xsd:gYearMonth xsd:gYear xsd:gMonthDay xsd:gDay xsd:gMonth xsd:hexBinary xsd:base64Binary xsd:anyURI xsd:QName xsd:NOTATION xdt:untypedAtomic Built-In Derived (Atomic) Types integer nonPositiveInteger negativeInteger long int short byte nonNegativeInteger unsignedLong unsignedInt unsignedShort unsignedByte positiveInteger xsd:integer xsd:nonPositiveInteger xsd:negativeInteger xsd:long xsd:int xsd:short xsd:byte xsd:nonNegativeInteger xsd:unsignedLong xsd:unsignedInt xsd:unsignedShort xsd:unsignedByte xsd:positiveInteger TIBCO BusinessWorks Process Design Guide .

• • • a required element has no statement. To help find potential problems in your mappings. For example. and therefore must be specified the activity’s input schema has changed and existing statements may no longer be valid the XPath formula for an element may contain an error You should correct any errors before attempting to test or deploy your process definition.Repairing Incorrect Mappings 117 | Table 13 Datatype validation Data Type normalizedString token language Name NCName ID IDREF ENTITY NMTOKEN Validation xsd:normalizedString xsd:token xsd:language xsd:Name xsd:NCName xsd:ID xsd:IDREF xsd:ENTITY xsd:NMTOKEN Repairing Incorrect Mappings Any incorrect statements are displayed in red in the Activity Input panel. click the Mapper Check and Repair button. TIBCO BusinessWorks Process Design Guide . Errors can occur for a number of reasons. This button displays a dialog with all potential problems in the specified mappings. You can select the Fix checkbox for potential errors. and TIBCO BusinessWorks will attempt to fix the problem.

Alternatively. 3. Figure 25 illustrates an activity input schema for the External Command activity. Delete the root element of the activity’s input by selecting it and clicking the Delete button. If you want to return to the original expected activity input and remove all of the currently specified mappings. 4. 2. The Mapper Check and Repair dialog displays these problems with the Fix checkbox checked. Figure 25 Mapper check and repair dialog Some potential problems in the Mapper Check or Repair dialog cannot be fixed easily. You must repair these items manually. you can simply select the root input element and press the delete key on your keyboard as a shortcut for the procedure above. When you click OK. TIBCO BusinessWorks Process Design Guide .118 | Chapter 8 Mapping and Transforming Data For example. Click the Mapper Check and Repair button. and therefore there is no checkbox in the Fix column for these items. Click OK. the corrective action to fix the problem is not clear. For example. You can select or clear the Fix checkbox for each item. A new element named foo has been added to the schema and the expected element token has been removed. any items that are marked for fixing are repaired. if an element expects a string and you supply a complex type. perform the following: 1. Select the Fix checkbox for all items. and therefore TIBCO BusinessWorks cannot automatically fix the problem. depending upon whether you wish to fix the problem or leave the problem until a later time.

Insert. there are some situations where you wish to convert a hint into a statement without performing any mapping. a popup menu appears. Surround with If — a shortcut for adding an if statement and placing the currently select element as the sub-element of the if. These buttons.Shortcuts 119 | After deleting all mappings and schema items and then repairing the input schema. This section describes shortcuts for manipulating XSLT statements. Right-Click Menu When you select an element in the Activity Input schema and right-click. and Edit Statement buttons on the Input tab toolbar are ways to manually manipulate XSLT statements in the Activity Input area. Also. the activity’s input reverts to the state when the activity is first dragged into the design panel. Figure 26 illustrates dragging an element to the left. Surround with For-Each — a shortcut for moving the current element into a For-Each statement. Surround with For-Each-Group — a shortcut for moving the current element into a For-Each-Group statement and adding a Group-By grouping statement. The duplicate is added below the currently selected element. TIBCO BusinessWorks Process Design Guide . • Surround with Choice — a shortcut for adding a choice statement and its associated conditions or otherwise statements around the currently selected element. Shortcuts The Move In. however. only add or modify one statement at a time. Duplicate — a shortcut for creating a duplicate of the currently selected element (including any mappings or XPath formulas for the element). The Statement menu item contains several sub-items that are useful shortcuts for creating XSLT statements. Add Child. • • • • Dragging to the Left Dragging an element in the Activity Input schema to the left past the divider between the two areas of the Input tab changes a hint into an XSLT statement.

you can paste it into a text editing tool to view or modify the code. You can also paste arbitrary XSLT code into the Activity Input area using the right-click menu or the Control-V keys. dragging to the left brings up a dialog that allows you to specify the type for the element. You can choose any element in the Activity Input area and select Copy from the right-click menu or press the Control-C keys to copy the XSLT statement for the element. the ID element is a hint. TIBCO BusinessWorks Process Design Guide .120 | Chapter 8 Mapping and Transforming Data Figure 26 Dragging to the left to change a hint to a statement Before dragging. Cutting and Pasting The Activity Input area is an XSLT template for specifying the activity’s input schema. This shortcut is useful in the following situations: • • • When you have a complex element with no sub elements and no content. Dragging the ID element past the divider turns the hint into a statement. dragging to the left brings up the Mapping Wizard and allows you to choose a type for the element. Pasting XSLT code from the copy buffer places the code above the currently selected element in the Activity Input area. When you have an element of type Any. Once the XSLT is copied. When you have a choice element.

Required to Required Specifies that the statement should always include the required activity input element and its value should be obtained from the required process data element that the element is mapped to. the optional element is omitted from the activity’s input. when elements are optional or nillable. Optional to Nillable Specifies that the statement should test if the optional process data element exists. the activity input element should be created and set to the value of the process data element. include the optional element in the activity’s input. the value of the process data element is assigned to the required activity input element. When you drag the process data element to the activity input element. Optional to Optional Specifies that the statement should test if the process data element is present. then an example is given that illustrates these mappings and shows the XSLT code that is generated automatically when these mappings are performed. This section describes the result of mapping different types of elements. TIBCO BusinessWorks Process Design Guide . Nillable to Nillable Specifies that both the process data and activity input elements can be nil. the value of the activity input element is set to the value of the process data element. If the process data element is not present. and if so. Therefore. more complex tests are necessary.Shortcuts 121 | Automatic Testing When you map process data elements to activity input elements. The value of the activity input element is set explicitly to nil if that is the value of the process data element. If the process data element does not exist. In the simplest case of mapping a required element in the process data schema to a required activity input element. If the element exists. the element is omitted from the activity input schema. However. the necessary tests are automatically placed into the activity input XSLT template. The types of mappings are described. the behavior of the mapping depends upon the types of elements you are mapping.

and Nillable Elements Figure 27 illustrates the different types of mappings when elements are required. the optional element is omitted from the activity input. Optional. and if so. then omit the optional element from the activity input schema.122 | Chapter 8 Mapping and Transforming Data Nillable to Optional Specifies that the statement should test if the process data element has a value specified.0" encoding="UTF-8"?> <xsl:template xmlns:xsi="http://www. the optional element in the activity input should be set to the value of the process data element. then include the optional activity input element in the input schema. Below is the XSLT template illustrated by the mappings in Figure 27. The Discount element illustrates mapping an optional element to an optional element. The Pickup element illustrates mapping an optional element to a nillable element.w3. set the value of the activity input element explicitly to nil. <?xml version="1. and nillable elements In the example above. Item and Amount illustrate mapping required elements to other required elements. The OnSale element illustrates mapping a nillable element to an optional element. You can see from the XSLT code that certain mappings are automatically surrounded by tests to create the appropriate input schema. The CustomerAddr and ShipTo elements illustrate mapping an optional and nillable element to an optional and nillable element. Otherwise.org/2001/XMLSchema-instance" TIBCO BusinessWorks Process Design Guide . Optional & Nillable to Optional & Nillable Specifies that if the optional process data element exists. or nillable. optional. if the process data element is nil. If the process data element is nil. optional. Example of Mapping Required. If the process data element is not present. set the value of the activity input element to the value of the process data element. Figure 27 Examples of mapping required. If the process data element is not nil.

com/xmlns/ae2xsd/2002/05/ae/Order"> <Order> <Item> <xsl:value-of select="$RetrieveOrder/IncomingOrder/Order/Item"/> </Item> <Amount> <xsl:value-of select="$RetrieveOrder/IncomingOrder/Order/Amount"/> </Amount> <xsl:if test="$RetrieveOrder/IncomingOrder/Order/OnSale/@xsi:nil!= (&quot.1&quot.tibco.org/2001/XMLSchema" xmlns:pfx="http://www.w3.Shortcuts 123 | xmlns:pd="http://xmlns.true&quot..com/bw/process/2003" xmlns:xsl="http://www.org/1999/XSL/Transform" xmlns:xsd="http://www.tibco.&quot.)"> <OnSale> <xsl:value-of select="$RetrieveOrder/IncomingOrder/Order/OnSale"/> </OnSale> </xsl:if> <xsl:if test="$RetrieveOrder/IncomingOrder/Order/Discount"> <Discount> <xsl:value-of select="$RetrieveOrder/IncomingOrder/Order/Discount"/> </Discount> </xsl:if> <pfx:ShipTo> <Pickup> <xsl:choose> <xsl:when test= "exists($RetrieveOrder/IncomingOrder/Order/Pickup)"> <xsl:value-of select= "$RetrieveOrder/IncomingOrder/Order/Pickup"/> </xsl:when> <xsl:otherwise> <xsl:attribute name="xsi:nil">true</xsl:attribute> </xsl:otherwise> </xsl:choose> </Pickup> <xsl:if test="$RetrieveOrder/IncomingOrder/Order/StoreLocation"> <StoreLocation> <xsl:value-of select= "$RetrieveOrder/IncomingOrder/Order/StoreLocation"/> </StoreLocation> </xsl:if> <xsl:if test="$RetrieveOrder/IncomingOrder/Order/CustomerAddr"> <ShipTo> <xsl:copy-of select= "$RetrieveOrder/IncomingOrder/Order/CustomerAddr/@xsi:nil"/> <xsl:value-of select= "$RetrieveOrder/IncomingOrder/Order/CustomerAddr"/> </ShipTo> </xsl:if> </pfx:ShipTo> </Order> </xsl:template> TIBCO BusinessWorks Process Design Guide .w3.

it appears as [<< Filter >>] to indicate that you must supply the filter expression. perform the following: 1. In the Activity Input area. To set an input element explicitly to nil. The examples in this section illustrate the simplest procedures to obtain the desired results. 3. 2. One of the most common uses of XPath is to filter a list for specific elements. Select the input element you wish to set to nil. you may wish to select a specific order from a list of orders where the item ordered is itemID #34129. you do not have to follow the same procedures outlined in this section to achieve the correct set of statements. XPath. For example. you may wish to set an element explicitly to nil. when a search predicate is required. However. See Chapter 9. This section describes some complicated mapping scenarios and how to achieve the desired mappings using the tools available. Setting an Element Explicitly to Nil In some situations. Click the Edit Statement button on the Input tab toolbar. There are many methods to insert or modify XSLT statements in the Activity Input schema. on page 147 for more information on how to use XPath. numbers. Using XPath TIBCO BusinessWorks uses XPath (XML Path Language) to specify and process elements of the Activity Input schema. dates. To do this.124 | Chapter 8 Mapping and Transforming Data Examples of Mappings Some mappings require several steps to achieve the desired results. and booleans. Click the Content tab of the Edit Statement dialog. One situation is when you wish to insert a row into a database table and you wish to supply a NULL for one of the columns. XPath expressions have search predicates for performing filtering. You can use any valid XPath expression in the XSLT statements in the Activity Input area. You can also use XPath to perform basic manipulation and comparison of strings. the XPath expression might be: $RetrieveOrders/Order[itemID=34129]. TIBCO BusinessWorks Process Design Guide .

Examples of Mappings 125 | 4. Check the checkbox in the Set Explicit Nil field. The element’s formula becomes blank and uneditable (because nil is the value of the element) and the explicit nil qualifier icon appears next to the statement . TIBCO BusinessWorks Process Design Guide .

merged mailing list containing all customers in one format. The following procedure describes how to map multiple elements into a single repeating element. each having a different format for the address.126 | Chapter 8 Mapping and Transforming Data Merging Input from Multiple Sources You may have multiple elements in the Process Data that you wish to map to one repeating element in the Activity Input. you may have multiple formats for customer records and you wish to create a single. TIBCO BusinessWorks Process Design Guide . Multiple types of customers are retrieved. the schemas are the following: You wish to combine customers into a single repeating structure to create a mailing list. In this example. For example.

but the two copies in the Activity Input area make it simpler to perform two different mappings. 2. right-click.Examples of Mappings 127 | 1. you need two copies of the repeating element. map $Retrieve-Customer-Type1/Customer to MergeMailingList/CustomerList/Customer. For example. The resulting output contains only one repeating customer element. and select Statement > Duplicate from the popup menu. TIBCO BusinessWorks Process Design Guide . Because you are creating two different formulas for mapping. one for each format. Map one of the elements from the Process Data to the first copy of the repeating element in the activity input. Select the repeating element in the Activity Input area.

128 | Chapter 8 Mapping and Transforming Data The Mapping Wizard dialog appears and presents choices for what you would like to accomplish. Map the other element from the Process Data to the second copy of the repeating element in the activity input. map $Retrieve-Customer-Type2/Record to MergeMailingList/CustomerList/Customer. For example. The mapping wizard asks if you wish to automatically map items with the same names. TIBCO BusinessWorks Process Design Guide . choose the For Each option and click Next. Choose the For Each option and click Next. 3. In the Mapping Wizard dialog. Click Finish to accept the default mappings.

In the XPath Formula Builder. TIBCO BusinessWorks Process Design Guide . drag a concat() function into the XPath Formula field. 4.Examples of Mappings 129 | The mapping wizard presents you with an option to automatically map elements with the same name. This function is used to concatenate the three elements in the Record element in the process data area to one Address element in the activity’s input. Click Finish to accept the default mappings. Select the Address element and click the XPath Formula Builder icon in the Input tab toolbar.

130 | Chapter 8 Mapping and Transforming Data Click the Data tab. Then. TIBCO BusinessWorks Process Design Guide . Click Apply. then drag the $current()/Address/street element into the << string1 >> placeholder in the concat() function. Drag the $current()/Address/zip element into the position of the third string in the concat() function. add a comma to the end of the function to include a third string to concatenate. Drag the $current()/Address/state element into the << string2 >> placeholder in the concat() function. then click Close to dismiss the XPath Formula Builder dialog. 5.

Each item in the repeating element Requests lists an order.. you may have list of all orders that have been completed. The same customer can have mutliple orders in this list. For example. This results in the following mapping: Converting a List Into a Grouped List You may need to convert a flat list of items into a more structured list. that element is Orders.Examples of Mappings 131 | 6. each item in the list is a customer ID. 1.. In this example. from the pop-up menu. The resulting schema is a repeating list of Orders. in turn. You may want to organize that list so that you can group the orders placed by each customer. This scenario typically occurs when you retrieve records from a relational database and the records must be structured differently. The following procedure describes how to map the flat list of orders into a list grouped by customer ID. the schemas are the following: Flat list of orders placed by all customers. Each customer ID will. Choose the repeating element in the Activity Input schema that holds the grouped data. This is a shortcut to create a For-Each-Group statement with TIBCO BusinessWorks Process Design Guide . contain a list of orders. In this example. Right-click on this element and choose Statement > Surround with For-Each-Group.

and the current-group() function allows you to access the items in the Requests repeating element that correspond to the group that is currently being processed. In this example. customerID is the grouping element. Drag the repeating element from the Process Data area to the For-Each-Group statement. Adding the Grouping statement creates the $=current-group() element in the Process Data area. TIBCO BusinessWorks Process Design Guide .132 | Chapter 8 Mapping and Transforming Data the Orders element as a child element and a Grouping statement to contain the element you wish to group-by. 2. Drag the element you wish to group by from the Process Data area to the Grouping statement in the Activity Input area. 3. The Grouping statement creates the list grouped by the desired element.

In this case. 5. This creates an item in the Order list for each item in the current customer ID group that is being processed. The default choice in the mapping wizard for this mapping is to create a For-Each. quantity would map to Quantity automatically. Choose this option in the mapping wizard. Map the remaining element from the current-group() element into the desired element in the For-Each group.Examples of Mappings 133 | 4. TIBCO BusinessWorks Process Design Guide . Map the current-group() element in the Process Data area to the repeating element Order under the Customer element in the Activity Input area. The mapping wizard asks if you wish to map items with the same name in the current group and the orders group. and Item must be mapped to ItemName.

Merging Two Corresponding Lists You may need to merge two lists that have corresponding items. TIBCO BusinessWorks Process Design Guide . In this example. Map the customerID element in the Requests element into the Customer element in the Activity Input area. For example. you may have a list of student IDs and a list of grades. the schemas are the following: The resulting merged list will contain a both student ID and grade in a single repeating element. each grade corresponds to the student ID in the same position in the student ID list. The following procedure describes how to merge the two repeating elements containing corresponding data into one repeating element. Two repeating lists contain corresponding student IDs and grades.134 | Chapter 8 Mapping and Transforming Data 6.

Drag the second repeating element into the For-Each statement. In this example. Click Finish in the Mapping Wizard dialog to create the For-Each statement. TIBCO BusinessWorks Process Design Guide . the $RetrieveStudentIDs/Students/Record is the first repeating element. 2. This brings up the mapping wizard with the default choice of creating a For-Each statement. Map the first repeating element from the Process Data area into the Grades repeating element in the Activity Input area.Examples of Mappings 135 | 1.

Choose the Merge parallel repeating structure option and click Next. The two variables also appear in the Activity Input area with the correct XPath statement to produce the desired result. The two variables appear in the Process Data area once you have completed this step.136 | Chapter 8 Mapping and Transforming Data 3. One variable is to hold the position number of the current item being processed. The mapping wizard prompts you to name these two variables. 4. TIBCO BusinessWorks Process Design Guide . and the other variable is to hold the item in the second list that corresponds to the position of the item in the first list. or choose your own names for these variables. Merging two parallel repeating structures requires two variables. The $=[index=] element contains the XPath formula position() to set the element with the current position number of the list item being processed. Click Finish to proceed. The $=[item=] element contains a statement to retrieve the item in the second repeating element that corresponds to the position of the item in the first list that is currently being processed. Create the variables with the default names supplied by the mapping wizard. The Mapping Wizard dialog appears asking you to chose an option.

and you can coerce the element into a specific type. 6. TIBCO BusinessWorks Process Design Guide . In these situations. The schema is for a generic incoming message that can have any type of body. Map the $=item/Grade element to the Grade element in the Activity Input area. however. In the example. the any element is coerced into an Order type so that it can be mapped to a choice element. The Coercions button in the Input tab toolbar allows you to create and manage your coercions. Map the ID element to the StudentID element in the Activity input. The following example illustrates a schema with an element defined as the "any element" datatype. Coercions In some situations.Examples of Mappings 137 | 5. the datatype of a Process Data element may be undefined. you may know the datatype of the element.

138 | Chapter 8 Mapping and Transforming Data In this example. There are many ways of accomplishing the same result as this example. the schemas are the following: The incoming message can have a body of type any element. If you are creating a coercion for an element that is not currently selected. use the XPath field to specify the location of the element. Click the Element radio button to specify that you are specifying a schema element. Click the Coercions button in the Input tab toolbar. The Coercions dialog allows you to manage all of your coercions for an activity in one dialog. In the Coercions dialog. TIBCO BusinessWorks Process Design Guide . not just the currently selected element. click the Insert button (+) to add a coercion for the currently selected element. Select the element of type any element in the Process Data schema. 1. The following procedure describes how to coerce the Body element of the incoming message into a specific datatype and map it to a choice element. The activity input is expecting either an Order or a CreditLimitIncrease for the incoming message. You can create. or delete coercions for any element in the Process Data schema using this dialog. This example attempts to illustrate the simplest method to achieve the desired result. modify.

The following would be the resulting schema where the element of the datatype any element has been replaced with the Order schema. In the Select a Resource. select the schema that you would like to specify Click OK to coerce the element into the datatype of the selected schema element..Examples of Mappings 139 | 2. map the coerced Order element to the choice element in the Activity Input area. Click the Browse Resources button next to the Schema field to browse a list of schemas that can be used. TIBCO BusinessWorks Process Design Guide . Map the Name element to the Name element in the Activity Input area.. 3. dialog. Then.

TheMmapping Wizard then asks if you wish to automatically map elements with the same name.140 | Chapter 8 Mapping and Transforming Data The Mapping Wizard dialog appears and asks if you wish to create an Order or a CreditLimitIncrease element. Click Finish to accept the default mappings. TIBCO BusinessWorks Process Design Guide . Select Order and click Next. Click Next to continue. Even though there is only one element in the Process Data schema (the Message element is not repeating). The Mapping Wizard then asks you to create a For Each. a For Each is used because this construct allows you to map the individual items of the Order element.

like so: <ns:attribute namespace="mns" name="lastName"/> "Smith" </ns:attribute> TIBCO BusinessWorks Process Design Guide . Attribute Allows you to specify an attribute. XSLT Equivalent The following is an attribute named "lastname". For example. and optionally the namespace for the attribute. you can specify the value of the last name attribute to be a constant. You can add or edit these statements by clicking the Edit Statement button or these statements can be added automatically by selecting them from the dialogs that appear when you drag and drop elements from the Process Data tree to the Activity Input tree. XSLT Statements The following sections describe the XSLT statements you can add to your Activity Input.XSLT Statements 141 | 4. you can optionally specify the kind of value the attribute will have and whether the attribute should be surrounded by an if statement. <ns:attribute namespace="mns" name="lastName"/> When attributes are created. The following is the completed mapping. You can also specify the type of value for the attribute.

You can optionally specify an otherwise condition for processing all elements that do not meet any of the specified when conditions. no children of the node are copied. Specify the condition in the when element as an XPath expression.w3. XSLT Equivalent <ns0:copy xmlns:ns0="http://www. XSLT Equivalent The following determines if the node set for FilesTransferred contains any files..142 | Chapter 8 Choose Mapping and Transforming Data Provides a way to select transformation to perform based on an expression. and if so. If the node set is empty (no files were transferred).w3. a different action is performed.org/1999/XSL/Transform"> <ns0:when test="$FTP-Put/FTPPutOutputFile/FileTransferred" > < something here .and -->. XSLT Equivalent <!-. performs an action. TIBCO BusinessWorks Process Design Guide . Comments are delimited by <!-. Only the node is copied.> </ns0:otherwise> </ns0:choose> Comment Places a comment in the XSLT template. This is useful if you wish to copy an element to a new element with a different name.org/1999/XSL/Transform" select="$Query/resultSet"/> Copy-Contents-Of Copies the selected node’s contents.. > </ns:0when> <ns0:otherwise> < something here .. <ns0:choose xmlns:ns0="http://www.comment here --> Copy Copies the selected node to the current node in the input tree..

This is useful if you wish to process each item of a repeating element once. XLST Equivalent <ns0:copy-of xmlns:ns0="http://www. XSLT Equivalent <elementName>value</elementName> For-Each Performs the specified statements once for each item in the selected node. including the node’s children. Both the copied node and the destination node must have the same name and structure. <ns:for-each select="$FTP-Put/FTPPutOutputFile/FileTransferred"> <fileName> <ns:value-of select="$FTP-Put/FTPPutOutputFile/FileTransferred/Name"/> </fileName> </ns:for-each> TIBCO BusinessWorks Process Design Guide . XSLT Equivalent The following iterates over the list of files transferred from an FTP Put activity and outputs an element with the name of each file for each file transferred.w3.XSLT Statements 143 | XSLT Equivalent <ns:element namespace="foo" name="bar"> <ns:copy-of select="null/@*"/> <ns:copy-of select="null/node()"/> </ns:element> Copy-Of Creates a copy of the selected node.org/1999/XSL/Transform" select=""/> Element Creates an element with the specified name.

XSLT Equivalent The following if statement surrounds an attribute for processing order items. Comment elements have the following syntax: <ns0:comment xmlns:ns0="http://www. All items except the last order item are retrieved from the output of the GetOrderInformation activity. The last order item is not output. the statements in the if are output.144 | Chapter 8 Mapping and Transforming Data For-Each-Group Groups the items in a list by a specified element.org/1999/XSL/Transform" test="not(position()=last())"> <ns:attribute name="OrderItem"> <ns:value-of select= "$GetOrderInformation/OrderInformation/OrderDetails/OrderItem"/> TIBCO BusinessWorks Process Design Guide .w3. This comment will be generated into the activity’s output. If the test attribute evaluates to true.w3.w3.w3.org/1999/XSL/Transform"/> Generate PI Places a processing instruction into the XSLT template. otherwise they are not output.org/1999/XSL/Transform" select=""/> Generate Comment Places a comment element into the XSLT template. See Converting a List Into a Grouped List on page 131 for an example of using the For-Each-Group statement. <ns:if xmlns:ns="http://www. This statement requires a Grouping statement to specify which element to group-by.org/1999/XSL/Transform" name=""/> If An if statement is used to surround other statements in an XSLT template to perform conditional processing. XSLT Equivalent <ns0:processing-instruction xmlns:ns0="http://www. XSLT Equivalent <ns0:for-each-group xmlns:ns0="http://www.

Therefore. If this mapping appears in a loop. You can map the results of the computation to several activity input items instead of recreating the computation for each item. This is normally done implicitly by specifying the formula for an activity input item. XSLT Equivalent <ns0:variable xmlns:ns0="http://www.org/1999/XSL/Transform" select=""/> Variable Adds a local variable for use in the current mapping. Variables can also improve performance of mappings for large data structures. and you map each of the sub-elements to a corresponding input item. the retrieval of the current process variable occurs 40 times per iteration of the loop. the variable (in the Process Data area) can be mapped to any activity input item. if you have a process variable with 40 sub-elements. it appears in the Activity Input and Process Data areas. Adding a variable is also useful if you perform the same computation repeatedly. Adding a variable is useful when you wish to join two repeating elements into a single list. For example. in this case 40 times. With a variable. XSLT Equivalent <ns:value-of xmlns:ns="http://www. then map the combined list to an activity input item. the data is retrieved only once and used for all mappings containing the variable.w3. When you add a local variable.w3. You can supply any XPath expression to the new variable in the Activity Input area (either through mapping or through the XPath Formula Builder). create a local variable to hold process variables with a large number of elements and use the local variable in XPath expressions instead of the process variable. to improve performance. Once the variable’s contents have been supplied.org/1999/XSL/Transform" name="var" select="$RetrieveResults/resultSet"/> TIBCO BusinessWorks Process Design Guide . but you may insert this statement explicitly. TIBCO BusinessWorks must retrieve the current process variable for each XPath expression. You can specify the name of the variable and whether you wish the variable to have a select attribute.XSLT Statements 145 | </ns:attribute> </ns:if> Value-Of Specifies a value-of statement.

146 | Chapter 8 Mapping and Transforming Data TIBCO BusinessWorks Process Design Guide .

This section covers the basics of XPath and its use in TIBCO BusinessWorks. page 153 Date and Time Functions.org). page 155 TIBCO BusinessWorks Process Design Guide . TIBCO BusinessWorks uses XPath as the language for defining conditions and transformations.| 147 Chapter 9 XPath XPath (XML Path Language) is an expression language developed by the World Wide Web Consortium (W3C) for addressing parts of XML documents.w3. numbers. refer to the XPath specification (which can be obtained from www. For a complete description of XPath. page 148 The XPath Formula Builder. and booleans. page 151 String Representations of Datatypes. XPath also has basic manipulation functions for strings. Topics • • • • XPath Basics.

The data can be simple (strings. XPath is used to specify which schema element you would like to refer to. Regardless of where the data comes from or its format. they can be lists that store more than one element of the given type. Addressing Schema Elements All process data and activity input are represented as an XML schema. and so on). booleans. refer to the XPath specification (which can be obtained from www. but you may wish to learn more about XPath when building complex expressions. either simple elements or other complex elements. you need only be familiar with the basic XPath concepts.148 | Chapter 9 XPath XPath Basics TIBCO BusinessWorks uses XPath (XML Path Language) to specify and process elements of data schema. Complex elements are structures that contain other schema elements. For a complete description of XPath. Both simple and complex elements can also repeat. and booleans.w3. For example. or it can be a complex element. TIBCO BusinessWorks represents the data as a schema tree.org). numbers. To use XPath in TIBCO BusinessWorks. the following schema may be available for an activity’s input: TIBCO BusinessWorks Process Design Guide . You can also use XPath to perform basic manipulation and comparison of strings. That is. numbers. These data schema are either process variables or input schema for an activity.

If you have an evaluation context. each a root node in the process data area: GetCustomerInformation. then you can reference the sub-items of ShipName without specifying the entire path. you can specify the relative path to other elements in the tree. The namespace is automatically added to elements that require this when creating mappings on the Input tab of an activity or when dragging and dropping data in the XPath formula builder. or a particular starting node in a schema tree. like a file or directory structure./RequiredDate. you start with the root node and then use slashes (/) to indicate a path to the desired data element. for example. For example. Namespaces Some schema elements must be prefixed with their namespace. Evaluation Context XPath also has a method for referencing relative paths from a particular node. and GetOrderId.XPath Basics 149 | The process data area of the example input tab illustrates the output schema of the activities in the process. you would use the following syntax: $GetOrderInformation/ShipName/Street The path starts with a dollar sign to indicate it begins with a root node. GetCustomerInformation has a set of simple values and GetOrderInformation has simple data and other complex data.. then continues with node names using slashes. If you wish to reference $GetOrderInformation/RequiredDate. To reference a particular data item in any of these schema. the relative path would be . if your evaluation context is $GetOrderInformation/ShipName. The path is relative to the evaluation context — RequiredDate is one level higher in the schema tree than the elements of ShipName. TIBCO BusinessWorks Process Design Guide . GetOrderInformation. For example. until the desired location is named. There are three output schema. Each of these schema has its own associated structure. if you wish to specify the Street attribute in the ShipName complex element that is in the GetOrderInformation node.

you would specify the following: $GetOrderInformation/OrderDetails/OrderItem[ProductId="3A54"] You can also use functions and expressions in the search predicate. you would specify the following: $GetOrderInformation/OrderDetails/OrderItem[1] The [1] specifies the first element of a repeating item.returns the street --} TIBCO BusinessWorks Process Design Guide . You can also build custom Java functions and make them available in XPath by using the Java Custom Function shared resource. If you wish to select only the first item in the repeating element. to select the element whose ProductId is equal to "3A54". The search predicate is used to locate a specific element of a repeating schema item. Sub-items can also be examined and used in a search predicate.150 | Chapter 9 XPath Search Predicates An XPath expression can have a search predicate. the $GetOrderInformation/OrderDetails/OrderItem item is a repeating element. the following XPath expression returns true if the $Order/Item/OnSale element is set to nil: $Order/Item/OnSale/@xsi:nil="true" Comments You can add comments to XPath expressions using the XPath 2. For example. For example. See the description of the Java Custom Function shared configuration resource in TIBCO BusinessWorks Palette Reference for more information about creating custom functions and making them available in XPath. For example. Testing For Nil Some elements can be explicitly set to nil. the following XPath expression contains a comment: $GetOrderInformation/ShipName/Street {-.<comment here> --} For example. For example. You can test an element to determine if it is set to nil or not.0 syntax for comments. The syntax is: {-. you would specify the following: $GetOrderInformation/OrderDetails/OrderItem[position()>1] See the online documentation available in the XPath formula builder for a list of the available operators and functions in XPath. if you wish to find all elements after the first.

there are placeholders for each parameter of the function. automatically become valid XPath location paths for the desired item. Table 14 XPath formula builder elements Element Data tab Description Displays the process data schema tree. The schema elements. such as when creating transformations on the Input tab of an activity. Figure 28 The XPath formula builder Table 14 describes the different areas of the XPath formula builder. All elements in this tree are available to drag and drop into the XPath Formula field. The XPath formula builder allows you to drag and drop schema elements and XPath functions to create XPath expressions.The XPath Formula Builder 151 | The XPath Formula Builder The XPath formula builder can be used where XPath expressions are allowed. Figure 28 illustrates using the XPath formula builder to drag and drop schema elements into function placeholders. when dragged into the XPath Formula field. TIBCO BusinessWorks Process Design Guide . You can drag and drop schema elements over the parameter placeholders to replace each placeholder. If a function is dragged into the XPath formula window.

These are categorized into groups and each constant can be dragged from the constants list into the XPath Formula field. into XPath formulas. placeholders are displayed for the function’s parameters. and so on. These are categorized into groups and each function can be dragged from the function list into the XPath Formula field. Displays the XPath formula you wish to create. Constants tab Displays the constants available for use in XPath expressions. When the function is placed into the XPath formula.152 | Chapter 9 XPath Table 14 XPath formula builder elements Element Functions tab Description Displays the available XPath functions. Constants are also defined for commonly used items. the documentation panel gives a brief description of the function and one or more examples. Constants are useful for inserting special characters. For more information about XPath functions. Evaluation Context field XPath Formula field TIBCO BusinessWorks Process Design Guide . symbols. Documentation panel Describes each selected function. such as date formats. You can drag and drop schema elements from the Data tab into the function’s placeholders. See Evaluation Context on page 149 for more information about the evaluation context. As you click on a function in the Function tab. If there are any errors in the expression. Displays the evaluation context of the expression field that the editor was invoked from. such as tabs. they are listed there as well. You can drag and drop items from the Data tab or the Functions tab to create the formula. see the description of the function that is displayed when it is selected in the XPath formula builder. The result of evaluating the function is displayed in the "Expression Evaluates To" panel.

Also. For example. The function concatenates the data elements $GetCustomerInformation/Street and $GetCustomerInformation/City and places a space between the two elements. Figure 29 illustrates using the XPath formula builder to create a valid function.0 standard for representing all numeric datatypes. TIBCO BusinessWorks follows the XPath 1. If there are errors in the formula. Figure 29 Creating an XPath formula String Representations of Datatypes When data must be represented in the input or output of an activity. TIBCO BusinessWorks follows the XML Schema canonical format for all other datatypes. they are displayed here. writing the output of an activity to a file requires that numeric data be serialized into string form. the data is represented as a string. supplying a floating point number to an XPath function in the Input tab of an activity often involves typing the number as a string into the input element.String Representations of Datatypes 153 | Table 14 XPath formula builder elements Element Expression Evaluates To Panel Description Displays the result of evaluating the formula shown in the XPath Formula field. TIBCO BusinessWorks Process Design Guide .

The XPath function true() is also represented as true.0 standards as a set of normalized components (xs:date. Both zero and negative zero are represented as 0. and so on) with an optional time zone offset. Positive and negative infinity are represented as Infinity and -Infinity. The XPath function false() is also represented as false. Other Java activities (Java Method.234E05’)" is represented as 123400). Dates output by the Java Code activity contain the time zone. Either a date is stored as the number of milliseconds since January 1. Mapper. Boolean The boolean datatype is used to indicate a true or false state. and so on) do not use the time zone. or the date is implemented according to the XPath 2. and so on) use the first implementaton. Activities that are associated with XML (for example. Parse XML. and xs:double. Conversion between these representations may result in a loss of information either because of the difference in time zone representation or the precision of the seconds. Scientific notation is never used to represent a floating point number as a string (for example. xs:float. Java Method. Therefore mapping a date output by a Java Code activity to the input of any other Java activity will result in the loss of the time zone information. xs:boolean(’false’) and xs:boolean(’0’) are represented by false. if there are only zeros following the decimal point (for example. TIBCO BusinessWorks Process Design Guide . "xs:float(’1.000" is represented as 1). Java to XML.23456789’)" is represented as 1. Not a number is represented as NaN. Data is truncated if the number of digits exceeds the maximum precision for the datatype (for example. 1970. and double numbers are compressed to an integer when represented. xs:dateTime. Activities that are associated with Java (for example. xs:time. Date Datatypes Activities in TIBCO BusinessWorks implement dates in one of two ways. xs:boolean(’true’) and xs:boolean(’1’) are represented by true. "1. xs:decimal.154 | Chapter 9 XPath The following sections describe the string representations of datatypes.2345679). "xs:double(’1. All decimal. float.0 or XQuery 1. The second implementation supports arbitrary precision of the seconds component. Numeric Datatypes Numeric datatypes include all types derived from xs:integer. and so on) use the second implementation. Java Code.

unquoted alphabetic characters from A to Z and a to z represent the components of the date or time string.SimpleDateFormat Java class. <<dateTime>>) format-date(<<format>>. Example AD y year Two ys return two-digit year. 2003. 08 w W D d Week in year Week in month Day in year Day in month 48 3 254 28 TIBCO BusinessWorks Process Design Guide . You can include non-pattern alphabetic characters in the string by quoting the text with single quotes. Aug. <<string>>) parse-time(<<format>>. use ’’. <<time>>) parse-dateTime(<<format>>. <<string>>) The format parameter of these functions is based on the format patterns available for the java. <<string>>) parse-date(<<format>>. 03 M Month in year Three or more Ms return text name. Table 15 Formatting characters in date or time strings Letter G Description Era Four or more Gs return the full name of the era.Date and Time Functions 155 | Date and Time Functions There are some functions in the XPath formula builder that allow you to parse or format strings that represent dates and times. Table 15 describes the alphabetic characters and their associated presentation in a date or time string. These functions are: • • • • • • format-dateTime(<<format>>. <<date>>) format-time(<<format>>. In the format parameter. August. To include a single quote.text.

h. For formatting functions. the number of letters in the format pattern represents the minimum number of digits. unless they are needed to determine the boundaries of adjacent fields.156 | Chapter 9 XPath Table 15 Formatting characters in date or time strings Letter F E Description Day of week in month Day in week Four or more Es return the full name of the weekday. TIBCO BusinessWorks Process Design Guide . and m). when the date or time has fewer digits than the number of characters in the format pattern. w. RFC 822 four-digit time zone format Reserved 23 1 11 1 59 48 456 GMT-8:00 -8:00 — Z all other letters For any format pattern letter that returns a numeric value (for example. Fri a AM/PM marker Four or more as return the full name. if the date or time has fewer digits than the number of pattern letters. the output is padded with zeros. AM H k K h m s S z Hour in day (0-23) Hour in day (1-24) Hour in AM/PM (0-11) Hour in AM/PM (1-12) Minute in hour Second in minute Millisecond Time zone represented as a GMT offset. the extra characters are ignored. Example 3 Friday. For parsing functions.

GMT-8:00 0:08 PM 010704120856-700 TIBCO BusinessWorks Process Design Guide .Date and Time Functions 157 | Table 16 illustrates some example date and time format patterns and the resulting string. ’03 9 o’clock AM. Table 16 Example date and time format patterns Date/Time Pattern "yyy.3. ’’yy" "hh ’o’’clock’ a. MMM d. Mar 11.dd G ’at’ HH:mm:ss" "EEE. zzzz" "K:mm a" "yyMMddHHmmssZ" Result 2003.11 AD at 09:43:56 Tue.MM.

158 | Chapter 9 XPath TIBCO BusinessWorks Process Design Guide .

You may wish to add procedures to your process definitions for handling any expected or unexpected errors. page 164 TIBCO BusinessWorks Process Design Guide . activities can encounter errors. page 160 The Error Process Variables. Topics • • • • Overview of Error Handling. This chapter describes error handling in process definitions.| 159 Chapter 10 Error Handling When executing business processes. page 162 Process Error Schemas. page 160 Error Propagation.

TIBCO BusinessWorks Process Design Guide . This allows you to create error-handling procedures for dealing with potential runtime errors in your process definitions. error data is available to activities that execute after the error transition. Figure 30 A simple error-handling procedure Error handling can also involve significantly more complex processing. You can specify that one transition out of an activity is to be taken in the case of an error. If an error is encountered (for example. For example. You then specify activities you wish to execute in the event of an error. There are two types of process variables that contain error data. the process ends. and then the process ends. The Error Process Variables When an error transition is taken. the $_error process variable and the activity error variables. For example. The error transition is used to specify the activities to execute in case of an error. the following illustrates a simple process that begins with an HTTP request and updates a database based on the incoming request. the database is down). an error may occur during a Send Mail activity if the specified mail host does not exist.160 | Chapter 10 Error Handling Overview of Error Handling Errors can occur during activity processing. You can use the data in these process variables to perform the desired processing. Activity error variables are named $_error_<activityName>. The following sections describe the two kinds of error process variables. an email is sent to a system administrator. Figure 30 illustrates this simple error-handling procedure. and all activities that have an error transition are available in the Process Data panel after an error transition is taken. If the update is successful. The following sections describe error handling in more detail. depending upon what error occurred.

When you create an error-handling procedure. Typically. TIBCO BusinessWorks Process Design Guide . you may find the data in the $_error process variable useful. Refer to the description of each activity for more information about the Error Output tab. $_error_<activityName> Process Variables Each activity has one or more predefined error schemas. The schema of the $_error variable is the following: The contents of each schema item are dependent upon the activity that throws the error.The Error Process Variables 161 | $_error Process Variable The $_error process variable contains general information about the process in which the error occurred. You can use a coercion to change the Data element into the specific type for the activity. The Data schema item contains activity-specific error information. TIBCO BusinessWorks Palette Reference describes the error schemas on the Error Output tab of all activities and lists possible causes for each error type. The error schemas are displayed on the activity’s Error Output tab. and these are represented as a choice element in the error output schema. there are two or three types of exceptions an activity can encounter. For example. You can map data from this process variable into Input items for activities in your error-handling procedure. the following illustrates the error output schema of the Create File activity: This activity can encounter the FileAlreadyExistsException or the FileIOException.

The name of the process variable is dependent upon the activity’s specified name. you can use the Generate Error activity to create an unhandled error. The Generate Error activity does not permit any transitions to another activity. The error code should remain constant from release to release. The following illustrates the Process Data panel that is available after the activity named MyCreateFile encounters an error: You can use XPath expressions to determine which error occurred and handle the error accordingly. then that node is not empty. You can obtain the error by examining the $_error_<activityName> process variable in subsequent activities after an error transition. TIBCO BusinessWorks Process Design Guide . Unhandled errors occur where there is no error transition that specifies the activities to execute in the case of an error. in the above error schema. Also. if the FileAlreadyExistsException error occurs.162 | Chapter 10 Error Handling When an error is encountered. but the text of the message may change. The following expression can be used to determine if the FileAlreadyExistsException occurred: boolean($_error_MyCreateFile/ActivityErrors/ ns2:FileAlreadyExistsException) You can use the msgCode element to determine the kind of error that occurred. For example. TIBCO BusinessWorks Error Codes lists all error codes that activities can return. You should use the error code instead of the error message text to detect and handle errors. Error Propagation Called processes and groups propagate any unhandled errors to the parent process. so any error created by the Generate Error activity is propagated to the parent process. the $_error_<activityName> process variable is created and populated with the error data.

The Generate Error activity is used to propagate an error outside of the transaction group to the parent process. See Process Error Schemas on page 164 for more information about process error schemas. then the error transition out of the group is taken to the Send Mail activity. The error process variables contain the error information for the activity where the error occurred. If the iterate group experiences an error.Error Propagation 163 | The following sections describe propagation of errors for groups and called processes. The transition to the Send Mail activity is taken if there is either an error when committing the transaction or if the Generate Error activity is executed (because of an error in the iterate group). then inserts the records into a database table. A second group surrounds the iterate group to enclose all updates in a transaction. Figure 31 illustrates a process definition that waits for new text files. TIBCO BusinessWorks Process Design Guide . Figure 31 Propagating errors from a group The process definition uses two group activities. If any of the updates fail. The Generate Error activity can use any error schemas defined on the process to propagate a specific schema to the parent process. If the transaction fails. the WriteLogEntry activity is executed. the error transition is taken out of the transaction group to the SendMail activity. parses the files into an XML schema. an error transition out of the group is taken to the WriteLogEntry activity. If the transaction succeeds. The first group is an iterate group that performs one update for each record. Group Error Propagation Unhandled errors halt the execution of a group and the error transition out of the group is taken. the process ends.

If the order processing is successful. The error process variables contain the error information for the activity where the error occurred. If the GetCreditLimit or ProcessOrder processes encounter an error. a process can define an error schema and use the Generate Error activity to propagate specific data to the parent process. Process Error Schemas The error process variables contain the default data returned in the event of an error. TIBCO BusinessWorks Process Design Guide . You can define specific error schemas to hold error data when errors are propagated from a group or a called process. If the credit limit check succeeds. Any unhandled errors encountered when executing the called process cause the called process to halt execution and return the error to the parent process. a response is sent back to the customer stating there was an error in the order and the process definition terminates. the called process can encounter errors. a response is sent back to the customer stating the order is complete and the process definition terminates. Figure 32 illustrates a process definition that waits for an incoming HTTP request that contains an order. Also. See Process Error Schemas on page 164 for more information about process error schemas. Figure 32 Propagating errors from a called process The GetCreditLimit process is called to check the credit limit of the customer that places the order. Each process can define a number of error schemas by creating these schemas on the Error Schema tab of the process definition’s End Activity.164 | Chapter 10 Error Handling Called Process Error Propagation When a process definition calls another process definition. the ProcessOrder process is called.

Figure 33 The Error Schemas tab Error schemas are used by the Generate Error activity. However.Process Error Schemas 165 | Error schemas are created like any other schema (see Editor on page 50). The Select Error Schema field contains a drop-down list of error schemas defined for the process. Figure 34 The Generate Error Configuration tab If . TIBCO BusinessWorks Process Design Guide . Figure 33 illustrates the Error Schemas tab with two error schemas. Figure 34 illustrates the Configuration tab of the Generate Error activity.Default . the specified error schema is propagated to the parent process. the Error Schema tab of the End activity allows you to create more than one error schema.is chosen for the error schema. only the $_error process variable contains the propagated error data. The middle portion allows you to modify the selected schema. The right panel of the tab allows you to modify each schema item. When the Generate Error activity is executed. The left panel of the tab allows you to create or delete schemas.

the Generate Error propagates the specified error schema to the parent process in the $_error_<activity-name> process variable. You can use XPath to determine which schema is actually contained in the element.166 | Chapter 10 Error Handling If a process error schema is chosen. Figure 35 illustrates the process data available to the SendErrorInOrder activity. the schema appears in the Input tab for the Generate Error activity and you can map data to the specified error schema. the SendErrorInOrder activity has access to the error schema supplied by any GenerateError activity in the GetCreditLimitProcess. InvalidCustomer and NotEnoughCredit. the <activity-name> portion of the process variable is the name of the Call Process activity. See TIBCO BusinessWorks Palette Reference for more information about the Generate Error activity. TIBCO BusinessWorks Process Design Guide . This process specifies two error schemas. the <activity-name> portion is the name of the Generate Error activity in the group. If the Generate Error occurs in a called process. Figure 35 Example of process data for error schemas The available error schemas for the GetCreditLimit process are presented as a schema item of type Choice. In the example described in Called Process Error Propagation on page 164. If the Generate Error occurred in a group. The process variable is derived from the activity where the Generate Error occurred. This item will contain either the InvalidCustomer or the NotEnoughCredit error schema. At run time. and then map the data in the schema accordingly.

page 172 Summary of Transactions. page 180 TIBCO BusinessWorks Process Design Guide . page 170 XATransaction. page 169 Java Transaction API (JTA) UserTransaction. Topics • • • • • Overview of Transactions. Transactions ensure that all participants in the transaction either complete or are rolled back together. This chapter describes how to incorporate transactions into your process definitions. page 168 JDBC.| 167 Chapter 11 Transactions TIBCO BusinessWorks allows you to group some activities into a transaction group.

however. the configuration of the activity. Transactions allow you to group multiple activities into an atomic execution unit. Types of Transactions TIBCO BusinessWorks offers a variety of types of transactions that can be used in different situations. The Write File activity. For more information about creating groups. you use a group to surround the activities in the transaction. see Grouping Activities on page 71. All the JDBC Update activities either complete or roll back at the end of the transaction. The activities that can participate in the transaction are determined by the transaction type. TIBCO BusinessWorks Process Design Guide .168 | Chapter 11 Transactions Overview of Transactions In TIBCO BusinessWorks a transaction is a logical unit of work. does not participate in the transaction and executes whether the transaction commits or fails. For example. When you create a transaction group. For example. and the type of the activity. To create a transaction. The following sections describe each of these types of transactions and the situations in which they are used in more detail. you must specify the type of transaction. You can use the type of transaction that suits the needs of your integration project. TIBCO BusinessWorks supports the following types of transactions: • • • JDBC Java Transaction API (JTA) UserTransaction XA Transaction A transaction group can have only one transaction type. Not all TIBCO BusinessWorks activities can participate in a transaction. only JDBC activities whose JDBC Connection type is "JDBC" can participate in a JDBC transaction. you may have three JDBC Update activities and one Write File activity in a transaction group. All activities that can participate in a transaction must either complete successfully or be undone or rolled back together. Only the following types of activities have transactional capabilities: • • • JDBC activities JMS activities EJB activities Although only the activities above can be part of a transaction. any activity can be contained in a transaction group.

Also. all JDBC activities using the same JDBC connection in the transaction group commit. If any errors occur while processing the activities in the group. the transaction is rolled back and an error is returned (you should have an error transition out of the group to handle this situation). If the transaction commits. If you have more than one JDBC Connection in the transaction group. A.JDBC 169 | JDBC The JDBC transaction allows multiple JDBC activities that access the same database connection to participate in a transaction. all JDBC activities using the same JDBC connection in the transaction group roll back. but C uses JDBC Connection Y. only activities that use the same JDBC Connection are guaranteed to commit or rollback together when the transaction completes. in the JDBC Connection resource(s) used by JDBC and Checkpoint activities in the group. the updates for activities A and B are part of one transaction and the update for activity C is part of a different transaction. even errors in non-JDBC activities. use the XA transaction type. each set of activities that uses a JDBC Connection is considered a separate transaction. Configuring JDBC Transactions To configure a JDBC transaction. Only JDBC activities that use the same JDBC Connection participate in this transaction type. For example. but other activities can be part of the transaction group. B. and C. A and B use JDBC Connection X. select JDBC Transaction as the transaction type of the group. TIBCO BusinessWorks Process Design Guide . In this case. See the description of the JDBC palette in TIBCO BusinessWorks Palette Reference for more information about using JDBC activities. However. you have three JDBC Updates in a transaction group. To create a distributed transaction across multiple databases. Individual JDBC activities can override the default transaction behavior and commit separately. It is possible to use more than one JDBC Connection in the same transaction group. The transaction group commits automatically if all activities in the group complete and a non-error transition is taken out of the transaction group. Multiple JDBC Connections In Transaction Groups All activities that use the same JDBC Connection shared configuration resource are part of the same transaction. If the transaction rolls back. select JDBC in the Connection Type field.

the transaction is rolled back and an error is returned. request/reply operations cannot participate in a JTA transaction. If the application server does not permit an operation.sun. However. even errors in activities that do not participate in the transaction. If the transaction commits. JTA specifies standard Java interfaces between a transaction manager and the parties involved in a distributed transaction system: the resource manager. no exception is raised and the operations that are not supported by the application server are performed independent of the transaction. Sun Microsystems developed and maintains the API. For example. and EJB activities to participate in transactions. You should create an error transition out of the group to handle this situation. The transaction group commits automatically if all activities in the group complete and a non-error transition is taken out of the transaction group.com/products/jta/ for more information about the API. the application server.170 | Chapter 11 Transactions Java Transaction API (JTA) UserTransaction The Java Transaction API (JTA) UserTransaction type allows JDBC.transaction. If any errors occur while processing the activities in the group. TIBCO BusinessWorks Process Design Guide . Refer to your application server documentation for more information about supported operations. JMS. TIBCO BusinessWorks still allows you to configure the operations in the transaction.UserTransaction. and the application. For activities that use the JMS transport. See http://java. Using this type of transaction requires an installed and configured application server that implements the JTA interface javax. If the transaction rolls back. Configuring JTA UserTransaction Transactions To configure a JTA UserTransaction. all eligible activities in the transaction group roll back. select JTA UserTransaction as the transaction type of the group. all eligible activities in the transaction group commit. the following transaction servers implement the JTA transaction interface: • • • BEA WebLogic Application Server IBM Websphere Application Server JBoss Application Server Not all application servers permit JMS and JDBC operations to participate in the JTA transaction.

See TIBCO BusinessWorks Palette Reference for more information about this resource. EJB. If the process engine crashes after the checkpoint. restarted process instances can use the duplicate key to determine if the transaction has already committed. When this field is checked. The deployment configuration must specify a database for storing process engine information and the JDBC Connection used must specify JNDI as the connection type for this checkpoint to participate in the transaction. When the Include Checkpoints field is checked. an implicit checkpoint is performed after the last activity in the group completes successfully and before the transaction is committed. The JNDI configuration for JMS.Java Transaction API (JTA) UserTransaction 171 | JDBC Connections used by JDBC activities in the transaction group must be configured to use JNDI as the connection type and specify the data source in the application server. See Detecting Duplicate Process Instances on page 184 for more information about specifying duplicate keys. Include Checkpoint Checkpoint Duplicate Key TIBCO BusinessWorks Process Design Guide . you can specify a duplicate key in this field to perform duplicate checking. The JTA UserTransaction transaction group has the following fields on the transaction group’s Configuration tab: Field Transaction Manager Description A JTA UserTransaction shared configuration resource. or JDBC activities must specify the appropriate connection and JNDI Context information for the application server. Activities that use the JMS transport must be configured to use the XA connection factory in the application server. This is useful if the checkpoint included in the transaction is the first checkpoint in the process definition.

Also. select XA Transaction as the transaction type of the group. The transaction group commits automatically if all activities in the group complete and a non-error transition is taken out of the transaction group.5.3 (this transaction manager does not support transaction recovery) The XA Transaction type allows JDBC activities. the transaction is rolled back and an error is returned. If any errors occur while processing the activities in the group. If the transaction commits. Also. request/reply operations cannot participate in an XA transaction. the path to the files needed to run the transaction manager must be placed in the TIBCO BusinessWorks classpath in the bwengine. Because of this. If the transaction rolls back.Transaction.transaction. The following XA-compliant transaction managers have been tested with TIBCO BusinessWorks: • • Arjuna Transaction Service 3.tra and designer. and JMS activities to participate in transactions.172 | Chapter 11 Transactions XATransaction The XA Transaction type allows you to specify an XA-compliant transaction manager provided by a third party that supports the interfaces javax.tra files. The third-party transaction manager is executed in the same Java VM as TIBCO BusinessWorks. TIBCO BusinessWorks Process Design Guide .TransactionManager and javax. EJB activities cannot participate in an XA Transaction group. You should have an error transition out of the group to handle this situation. checkpoints can participate in an XA Transaction. even errors in activities that do not participate in the transaction. JMS activities must be configured to use the XA connection factory. if your process engine is configured to use a database for storage of process engine data. all eligible activities in the transaction group commit. For JMS activities. all eligible activities in the transaction group roll back.transaction. Transactions across multiple databases are also supported. Configuring XA Transactions To configure an XA Transaction. JDBC Connections used by JDBC activities in the transaction group must be configured to use XA as the connection type.3 Java Open Transaction Manager (JOTM) 1.

The deployment configuration must specify a database for storing process engine information and the JDBC Connection used must specify XA as the connection type for this checkpoint to participate in the transaction. See TIBCO BusinessWorks Palette Reference for more information about this resource. such as JMS Queue Receiver. this is done by using a Confirm activity. This message is part of the transaction. Note: Transactional acknowledge mode is not supported for Wait for JMS Topic Message activities. This field allows you to specify the resource for which you would like to send an acknowledgement message. or JMS Topic Subscriber expect acknowledge messages to be sent to the server.XATransaction 173 | The XA Transaction group has the following fields on the transaction group’s Configuration tab: Field Transaction Manager Description An XA Transaction shared configuration resource. an implicit checkpoint is performed after the last activity in the group completes successfully and before the transaction is committed. Wait for JMS Queue Message. Include Checkpoint When this field is checked. Normally. These resources can also specify an acknowledge mode of "Transactional" that specifies their acknowledgement should be part of a transaction. if the transaction completes successfully. Include In Transaction TIBCO BusinessWorks Process Design Guide . There is no need for a Confirm activity for the resources specified in this field. Certain resources.

objectweb. the following JOTM directory must be included in classpath properties in the designer. To each of these properties.org. no changes are required to the JOTM environment to interact with TIBCO BusinessWorks. There are several JOTM logger properties with the prefix. Configuring Third-Party Transaction Managers When using a third-party transaction manager with TIBCO BusinessWorks. To accomplish this. However. you must configure the transaction manager and TIBCO BusinessWorks to work together properly. The logging details for JOTM is specified in the TIBCO BusinessWorks log4j property file (<BW_HOME>\5. you can specify a duplicate key in this field to perform duplicate checking. Java Open Transaction Manager (JOTM) For Java Open Transaction Manager (JOTM).logger. 1.3\lib 2.5. By default. This section details the requirements for configuring the supported transaction managers. This is useful if the checkpoint included in the transaction is the first checkpoint in the process definition. See Logging for Third-Party Components on page 190 for more information about the TIBCO BusinessWorks log4j file.jotm.2\lib\log4j.174 | Chapter 11 Transactions Field Checkpoint Duplicate Key Description When the Include Checkpoints field is checked. The classpath for TIBCO Designer and TIBCO BusinessWorks must be modified to include the JOTM jar files.tra and bwengine.properties). If the process engine crashes after the checkpoint. you must modify the TIBCO BusinessWorks log4j property file. TIBCO BusinessWorks Process Design Guide . To send JOTM log messages to a separate file.3\config <JOTM_HOME>\jotm-1. restarted process instances can use the duplicate key to determine if the transaction has already occurred. See Detecting Duplicate Process Instances on page 184 for more information about specifying duplicate keys.tra files: <JOTM_HOME>\jotm-1. the log4j property file is configured to send JOTM log messages to the TIBCO BusinessWorks log file (BWLogFileAppender). log4j. add jotm_log_file.5. TIBCO BusinessWorks must be configured as follows to interact with JOTM.

transaction.transaction.ats.jta. one that is local (com.2\etc\arjunajts-properties. ATS provides two transaction manager implementations. To change the object store's location. Open the ATS properties file (<ATS_HOME>\ats-3.jts.arjunacore.Transaction ManagerImple) and one that is based on the distributed JTA implementation (com.TransactionManager Imple).arjunacore. By default the ATS properties file may be configured to enable both the local transaction recovery (<property name="com. local transaction recovery is used.internal. both the ATS environment and the TIBCO BusinessWorks environment must be modified.jtaTMImplementation and com.arjuna.internal.ats.arjuna.arjuna.jta.internal.jta. TIBCO BusinessWorks only supports the local implementations.jta. When using TIBCO BusinessWorks.arjuna.recoveryExtension6" value="com. TIBCO BusinessWorks uses the local transaction recovery. the ATS ObjectStore is created in the current working directory of the application. In TIBCO BusinessWorks. 3.internal.internal.ats.XARecove ryModule"/>) and distributed transaction recovery (<property name="com.XATransaction 175 | Arjuna Transaction Service For the Arjuna Transaction Service (ATS).arjuna.xml) and make sure that the properties com.arjuna.jta. set the value for the following property in the ATS properties file to your directory’s location: TIBCO BusinessWorks Process Design Guide .XARecoveryModul e"/>).recoveryExtension5" value="com. The following configuration changes must be performed in the ATS properties file: 1.arjuna.recovery.jta.jtaUTImplementation" value="com.arjuna.Transact ionManagerImple"/> <property name="com. one for local transaction recovery and one for distributed transaction recovery.ats.jtaTMImplementation" value="com.recovery. It is recommended that you change the location where the ATS ObjectStore is created.recovery.ats.arjuna.recovery.arjuna.jts.ats.ats. therefore the distributed transaction recovery property must be commented out or removed from the ATS properties file.transaction. By default.ats.transaction.jta. ATS must be configured to use the local implementations.jta.arjuna.ats. this will be the working directory or the directory where the TIBCO BusinessWorks process engine is started.internal. For TIBCO BusinessWorks to work correctly.arjunacore.jta.jtaUTImplementation are set to the following values: <property name="com.ats.ats.jta.arjuna.ats.arjuna. ATS provides two recovery modules for XA resources.UserTran sactionImple"/> 2.arjuna.arjunacore.

3\etc <ATS_HOME>\ats-3. Refer to the JOTM documentation for more information.3\lib <ATS_HOME>\ats-3. This section details transaction recovery in the supported transaction managers.objectstore. ats_log_file. you must modify the TIBCO BusinessWorks log4j property file. TIBCO BusinessWorks Process Design Guide . To send ATS log messages to a separate file. The logging details for ATS is specified in the TIBCO BusinessWorks log4j property file (<BW_HOME>\5. tibco_bw_log.com.2\lib\log4j.properties). tibco_bw_log.3\lib\ext 2.arjuna. See Logging for Third-Party Components on page 190 for more information about the TIBCO BusinessWorks log4j file. the log4j property file is configured to send ATS log messages to the TIBCO BusinessWorks log file (BWLogFileAppender). Remove the comment from the line containing #log4j.tra and bwengine.176 | Chapter 11 Transactions <property name="com.arjuna=WARN. the following directories must be included in classpath properties in the designer.ats.tra files: <ATS_HOME>\ats-3.logger. To accomplish this. Comment out the line containing: log4j.objectStoreDir" value="your directory location" /> The following configuration changes must be made to TIBCO BusinessWorks to interact with ATS: 1.logger. Java Open Transaction Manager (JOTM) Transaction recovery is not supported by Java Open Transaction Manager (JOTM). By default. The classpath for TIBCO Designer and TIBCO BusinessWorks must be modified to include the ATS property file and jar files.arjuna=WARN.arjuna. Transaction Recovery XA Transactions can be recovered in the event of a failure.com.

jar <TRA_HOME>lib\TIBCOxml.jar <TPCL_HOME>jdbc\TIdb2. When running the recovery manager in a separate Java VM. and no additional configuration is necessary. regardless of the status of TIBCO BusinessWorks.jar <TPCL_HOME>jdbc\TIsqlserver.jar <BW_HOME>lib\engine.jar <TPCL_HOME>jdbc\TIsybase. the ATS ObjectStore may contain the serialized TIBCO BusinessWorks Java classes.bat: <BW_HOME>lib\palettes\plugins. Do not allow more than one Arjuna Transaction Recovery Manager to refer to the same ATS ObjectStore.jar <TRA_HOME>lib\TIBCrypt.jar (when using an Oracle database) • The ATS property file for the recovery manager must refer to the same ATS ObjectStore that is configured for TIBCO BusinessWorks (see Configuring Third-Party Transaction Managers on page 174 for a description of configuring the ATS object store). the recovery manager requires references to the TIBCO BusinessWorks .jar <TPCL_HOME>jdbc\TIoracle. the transaction recovery manager is disabled if TIBCO BusinessWorks is stopped or if the Java VM crashes. Therefore.jar <TRA_HOME>lib\TIBCOrt.jar files.jar <ORACLE_LIB>\ojdbc14. See the ATS documentation for more information about starting the Arjuna Transaction Recovery Manager in a separate Java VM. Therefore. The following libraries must be included in <ARJUNATS_HOME>\bin\setup-env. both the Arjuna Transaction Manager and the Arjuna Transaction Recovery Manager are started in the same Java VM as TIBCO BusinessWorks.jar <J2EE_LIB>\jms. That is. and then start another recovery • TIBCO BusinessWorks Process Design Guide . and transaction recovery only occurs when TIBCO BusinessWorks is restarted.jar <TPCL_HOME>jdbc\TIbase. do not start one recovery manager in the same Java VM as TIBCO BusinessWorks.jar files to de-serialize the classes. After a failure. when starting the recovery manager in a separate Java VM.jar <TRA_HOME>lib\TIBCOjms. the transaction recovery manager is started when TIBCO BusinessWorks is started. Running the Arjuna Transaction Recovery Manager in a separate Java VM allows transaction recovery to occur independently.jar <TPCL_HOME>jdbc\TIutil.XATransaction 177 | Arjuna Transaction Service By default. In this configuration however. verify the following: • The classpath for the Arjuna Transaction Recovery Manager must contain the location of the TIBCO BusinessWorks .

check that this user has the correct permissions on relevant data dictionary tables and views for the XA system.jta. Check that the database user which the recovery manager's connection is using is the same as the one the business logic is using.xa. See the ATS documentation for more information.logging.xaRecovery got XA exception javax.178 | Chapter 11 Transactions manager in a different Java VM when both recovery managers are pointing to the same ATS ObjectStore.XAException: [tibcosoftwareinc][Oracle JDBC Driver][Oracle]ORA-00942: table or view does not exist.transaction. Also. the following exception is logged by the ATS recovery manager after invoking the method "getConnection" of the XAConnectionRecovery object: "2004-08-24 17:20:56.ats. When using the Oracle database.jta.xarecovery1] XARecoveryModule.ats.[com.recovery.internal. • Recovery may not be possible if the ATS ObjectStore is modified or destroyed.arjuna.loggerI18N . XAException. Refer to the Arjuna Transaction Service documentation for more information about transaction recovery.XAER_RMERR" This may be caused either by a missing table or by a lack of permissions.929 [Thread-5] WARN com.arjuna. TIBCO BusinessWorks Process Design Guide .

Nesting JTA transactions in JTA transactions is not allowed. thus "nesting" transactions. An exception is thrown at the start of the nested transaction. XA Nesting JDBC transactions in an XA transaction is allowed. but each transaction is independent. but each transaction is independent. each transaction commits or rolls back separately. Nesting XA transactions in JDBC transactions is allowed.Nested Transactions 179 | Nested Transactions It is possible to place a transaction group in another transaction group. but each transaction commits or rolls back separately. Nesting XA transactions in JTA transactions is allowed. but each transaction is independent. but each transaction commits or rolls back separately. JTA TIBCO BusinessWorks Process Design Guide . Nesting JTA transactions in JDBC transactions is allowed. Table 17 describes the effect of creating a transaction group in another transaction group. The outcome of the parent transaction does not affect the nested transaction. but each transaction is independent. Table 17 Effects of nesting transaction groups Transaction type JDBC JDBC Nesting JDBC transactions in other JDBC transactions is allowed. but each transaction is independent. JTA Nesting JDBC transactions in a JTA transaction is allowed. but each transaction commits or rolls back separately. XA Nesting XA transactions in XA transactions is allowed. Nesting JTA transactions in XA transactions is allowed. That is.

and the JDBC Connection is configured to use the XA connection type. Table 18 JDBC transaction type Activity Type JDBC activities JMS activities EJB activities Participate in JDBC Transaction Type? Yes No No Table 19 summarizes the XA transaction type. TIBCO BusinessWorks Process Design Guide . when a database is used to store checkpoint data.180 | Chapter 11 Transactions Summary of Transactions The following tables summarize the support of each type of activity in each type of transaction. the acknowledge message for Wait for JMS Topic Message activities cannot be part of the transaction. However. Request/Reply operations (such as JMS Topic Requestor and JMS Queue Requestor) are not permitted in transactions. Yes. Table 18 summarizes the JDBC transaction type. when JMS is configured to use an XA connection No a. Table 19 XA transaction type Activity Type Checkpoint (specified by the Include Checkpoint field of the transaction group) JDBC activities JMS activitiesa EJB activities Participate in XA Transaction Type? Yes.. activities cannot be part of an XA Transaction group. when the JDBC Connection is configured to use the XA connection type. but their acknowledge message can participate in the transaction. Process starters and Wait For.. if the resource is configured to use the Transactional acknowledge mode and the resource is listed in the Include in Transaction field of the transaction group. Yes.

when the JDBC Connection is configured to use the JNDI connection type. Yes. and the JDBC Connection is configured to use the JNDI connection type. when database used to store checkpoint data. when using TIBCO Enterprise Messaging Service. Request/Reply operations (such as JMS Topic Requestor and JMS Queue Requestor) are not permitted in transactions)..Summary of Transactions 181 | Table 20 summarizes the JTA UserTransaction type. Yes.. Table 20 JTA UserTransaction type Activity Type Checkpoint (specified by the Include Checkpoint field of the transaction group) Participate in JTA Transaction Type With the Following Application Server? BEA Yes. activities cannot be part of a JTA UserTransaction group. Process starters and Wait For. EJB activities Yes Yes Yes IBM Not supported JBoss Not supported JDBC activities Not supported Not supported JMS activitiesa Not supported Not supported a. No. TIBCO BusinessWorks Process Design Guide . when using BEA JMS server.

182 | Chapter 11 Transactions TIBCO BusinessWorks Process Design Guide .

page 187 TIBCO BusinessWorks Process Design Guide .| 183 Chapter 12 Process Instance Execution This chapter details aspects of process execution that you can control with configuration fields in the process definition. page 184 Sequencing Process Instances. Topics • • Detecting Duplicate Process Instances.

4. The process engine checks the current list of duplicateKey values for a matching value. For example. If you are running fault tolerant process engines (that is. The following describes the procedure for duplicate detection by the process engine: 1. 2. the orderID value is unique for all new orders. the process engine stores the value and completes the Checkpoint activity. Duplicate detection is performed when a process instance executes its first Checkpoint activity. b. Therefore. Using the algorithm described above. the process engine terminates the process and throws a DuplicateException. or if all process engines run on the same machine. Once a process engine stores a duplicateKey value and performs the Checkpoint for a process instance. An incoming message is received and a process instance is created. This value should be some unique key contained in the event data that starts the process. You must specify a value for the duplicateKey element in the Checkpoint activity input schema. a. TIBCO BusinessWorks Process Design Guide . Activities in the process instance are executed until the first Checkpoint activity is reached. 3. Duplicate detection can only be done across multiple engines on different machines if a database is used to store process engine data. only one process engine is running at a particular time).184 | Chapter 12 Process Instance Execution Detecting Duplicate Process Instances Duplicate messages should be detected and discarded to avoid processing the same event more than once. The Checkpoint activity has a value specified for the duplicateKey input element. If another process instance has already stored the given duplicateKey value. no other Checkpoint activities in the process instance can be used to store a different duplicateKey value. you should take care in choosing the value of duplicateKey and ensure that it will be unique across all process instances. process engines can guarantee that no newly created or recovered process instances will execute if they have the same duplicateKey value. See TIBCO Administrator User’s Guide for more information on specifying process engine storage. you can use a file system for process engine storage. If no process instance has stored the given duplicateKey value.

an order is received. you can either place the Checkpoint before the QueryInventory activity (because it is a database query and no actual change occurs) or after the activity but before either the Send Mail or ProcessOrder activities. or the order is processed.Detecting Duplicate Process Instances 185 | When to Perform Checkpoints When detecting duplicate messages. For example. In this example. In the example in the previous section. consider the following process definition. Specifying the Duplicate Key Duplicate detection is only as efficient as the duplicateKey that is specified. inventory is checked. and then either an email is sent to the inventory manager if the inventory is not sufficient. In this process definition. You should try to pick a value that is unique for every message. The following illustrates the example process definition with the Checkpoint activity properly placed. TIBCO BusinessWorks Process Design Guide . you may select the JMSMessageID header property for JMS messages. it is important to place the Checkpoint activity before any activities that you do not want to execute more than once. For example. so that would be a good choice for the value of the duplicateKey. It is a better choice to put the Checkpoint activity between the process starter and the QueryInventory activities. orderID is unique for each incoming order.

when a duplicate message is detected. the process instance terminates and duplicate messages are effectively ignored. The duplicateKey is specified in the Checkpoint Duplicate Detection Key field of the transaction group. In this case. Transactions and Duplicate Detection Transaction groups using certain transaction types can allow Checkpoint activities to be performed as part of the transaction. then the transition is taken to the end of the process definition. TIBCO BusinessWorks Process Design Guide .186 | Chapter 12 Process Instance Execution The following illustrates specifying orderID from the example above as the duplicateKey value in the Checkpoint activity. the duplicate message is confirmed so that it is no longer redelivered. the Checkpoint activity fails with the DuplicateException. In this example. Handling Duplicate Messages When a duplicate is detected. the checkpoint performed for the transaction may be the first checkpoint in the process definition. You can place an error transition from the Checkpoint activity to a series of activities to handle the duplicate message. The following illustrates an error transition added to the example process. you can specify the duplicateKey as part of the transaction group configuration. If this is the case. If no error transition is specified.

pollPeriod. on page 237 for more information about setting process engine properties. you can specify that all process instances should be executed sequentially in the order they were created. but only process instances with the same value for the sequencing key are executed sequentially. Any positive integer greater than 0 indicates the number of minutes to keep stored duplicateKeys. Custom Engine Properties. This method is not as flexible as using the Sequencing Key field on a process starter. See Appendix B. Process instances with different sequencing key values can be executed concurrently.engine. 0 indicates to store duplicateKey values indefinitely. if you purchase a pre-built project from a third party).minutes — specifies how long (in minutes) to keep stored duplicateKey values.dupKey. • bw. Process instances with sequencing keys that evaluate to the same value are executed in the order they were started. Using the administrator settings is only recommended when you cannot change the process definitions in the project before deployment (for example.dupKey. TIBCO BusinessWorks also allows you to control process execution administratively by setting properties in the deployment configuration of the project. TIBCO Administrator allows you to control the maximum number of process instances in memory as well as the maximum number of concurrently executing process instances. TIBCO BusinessWorks allows you to specify a sequencing key on process starters that determines which process instances to execute sequentially.dupKey. bw. -1 indicates the duplicateKey values are deleted when the job completes. TIBCO BusinessWorks Process Design Guide . false indicates duplicateKeys when specified are ignored. The default is 30 minutes.timeout. Process instances can have sequencing keys that evaluate to different values. Using these settings. Sequencing Process Instances Process instances can be executed in the order they were created.Sequencing Process Instances 187 | Process Engine Properties for Duplicate Detection The following process engine properties control duplicate key detection. true (the default) indicates the process engine will check for identical duplicateKey values.enabled — specifies whether duplicate detection is performed.engine.minutes • • — specifies the number of minutes to wait before polling for expired duplicateKey values.engine. bw.

If the number of rows is less than 5000. place "OrderEntry" in the Sequencing Key field. For more information on using TIBCO Administrator to set deployment configuration parameters. the process archives the data to another database and removes all rows from the table. you wish to sequentially execute all orders that are accepted by this process definition . For example. The process is a monitoring application that examines data in a database and performs the appropriate action. The orders are placed using a web client and the TIBCO BusinessWorks process definition uses an HTTP Receiver process starter to accept the incoming orders. Figure 37 illustrates the example process definition. see TIBCO Administrator User’s Guide. the results of the query are processed and stored in a separate table. To accomplish this. Figure 36 illustrates the example process definition. the Timer process starter is used to start a process every five minutes.188 | Chapter 12 Process Instance Execution This chapter details examples of using the Sequencing Key field on the Misc tab of process starters to control the order of process execution. all new orders are executed in the order they are received. For example. TIBCO BusinessWorks Process Design Guide . an order-entry system must process incoming orders in the order in which they are received. specify a constant in the Sequencing Key field of the Misc tab of the AcceptOrder HTTP Receiver process starter. the value of the XPath expression is identical for each incoming order. Figure 36 Example order-entry system In this example. Because you placed a constant in the field. Therefore. if the number of rows returned by a query is greater than 5000. Example 1: Processing Orders As They Are Received In this example. Example 2: Periodic Processing In this example.

At the end of the day. You must ensure that the data returned by the query is processed before the next query executes. TIBCO BusinessWorks Process Design Guide . but the data in the table changes much more frequently. so process instances created at the end of each day can execute concurrently with the first process instance created the next day. and there are no changes to the table during this time. This ensures that process instances created each day are completed sequentially in the order they are created. Figure 38 Example of handling incoming messages In this example. you must execute each process instance sequentially before executing the next process instance. To configure sequential processing in this scenario. System backups occur at midnight each night. Messages from different clients are permitted to be processed concurrently. This ensures that all messages from a specific client are processed in the order they are received.Sequencing Process Instances 189 | Figure 37 Example of periodic processing In this example. Each JMS client authenticates to the JMS server with a different user ID. process instances are created every five minutes. Example 3: Handling Client Messages In this example. but all messages received from the same client must be processed in the order they are received. a JMS application sends messages to TIBCO BusinessWorks for processing. you can use the XPath expression pfx:TimerOutputSchema/Day_Of_Month in the Sequencing Key field of the Misc tab of the Timer process starter. no updates are occurring to the table. Therefore. you can use the expression pfx:ActivityOutput/JMSProperties/pfx:JMSXUserID in the Sequencing Key field of the Misc tab of the JMS Topic Subscriber process starter.

tra file to point to the location of your own log4j. if you wish to configure logging for your environment. the Apache Tomcat server is used to accept incoming HTTP or SOAP requests or the Arjuna Transaction Service can be used as a transaction manager.properties file per Java VM. If you wish to use properties from a different log4j.properties file has comments describing property usage. The supplied log4j. This allows you to return to the original configuration if your changes result in errors.org/log4j/docs/.properties file. Many third-party components can use the standard log4j logging services. There can be only one log4j. you can either add the properties to bw/<relNum>/lib/log4j.properties or you can alter the bwengine. TIBCO BusinessWorks Process Design Guide . You can alter the properties in this file. TIBCO BusinessWorks provides the bw/<relNum>/lib/log4j. see http://logging. For more information about log4j. The properties defined in bw/<relNum>/lib/log4j.190 | Chapter 12 Process Instance Execution Logging for Third-Party Components TIBCO BusinessWorks can use a variety of third-party components. For example.properties file to allow you to configure logging services for third-party components.properties file before altering it. you must include all of the required properties from the file supplied with TIBCO BusinessWorks in your file. Do not remove any required properties from this file. If you use your own log4j. It is a good idea to create a backup copy of the log4j.properties file.properties are required by the components used by TIBCO BusinessWorks.apache.properties file.

The General Activities palette contains the Wait and Notify activities and the Receive Notification process starter for implementing inter-process communication. page 194 Database Storage for Wait/Notify/Receive Notification Information. Topics • • • • • Overview of Inter-Process Communication. page 195 Examples of Inter-Process Communication. page 193 Coordinating Inter-Process Communication. This chapter describes inter-process communication and provides examples of its use. page 192 Data for Inter-Process Communication.| 191 Chapter 13 Inter-Process Communication Executing process instances can communicate and can pass data between each other. page 195 TIBCO BusinessWorks Process Design Guide .

You may need process instances to communicate if you wish to synchronize process execution or if your processes must execute in a specific order. These activities are similar to semaphores in programming. The Notify activity cannot be used to determine when a corresponding Receive Notification or Wait has received the information. or Wait activities if they are to be used to communicate with each other. Wait. When a Notify activity executes its information is stored until a matching Receive Notification or Wait activity accepts the information. Determine the key that correlates processes with Notify activities with the corresponding processes with Receive Notification process starters or Wait activities.192 | Chapter 13 Inter-Process Communication Overview of Inter-Process Communication TIBCO BusinessWorks allows two executing process instances to communicate. 3. TIBCO BusinessWorks Process Design Guide . The schema supplied to the Notify Configuration resource can be empty. the Receive Notification process starter creates a new process instance when another process executes the corresponding Notify activity. Alternatively. The data sent between the activities is defined by a Notify Configuration shared configuration resource. and Notify activities. if you do not wish data to be sent between processes. 2. The key is supplied to the Notify activity. In general. The Notify activity only sends information to the Receive Notification process starter or Wait activity that specifies the same Notify Configuration resource. See TIBCO BusinessWorks Palette Reference for more information about the configuration requirements for each of these activities. the Notify Configuration resources must be the same for the Notify. and any Wait activity that matches that key is executed when the Notify occurs. using inter-process communication consists of these steps: 1. Create process definitions that use the Receive Notification. Define the data that must be passed between the processes by creating a Notify Configuration shared configuration resource. These activities are located in the General Activities palette. The Notify activity executes immediately and transitions to the next activity. Receive Notification. A process containing a Wait activity waits for another process to execute a corresponding Notify activity. TIBCO BusinessWorks provides the Wait and Notify activities and the Receive Notification process starter to handle inter-process communication. A string-based key is used to coordinate between Wait/Notify/Receive Notification activities to determine when a Notify activity corresponds to a Wait or Receive Notification. However.

The following sections describe these steps in more details. This allows you to use the data passed by the process with the Notify activity in subsequent activities after the Receive Notification or Wait activities. The schema for the data is defined in the same way as any other schema is defined. The same Notify Configuration resource is used to configure the Notify activity as well as the Wait activity and the Receive Notification process starter. However. This allows you to map process variables to the Notify activity’s input. the Notify Configuration schema used by the Notify/Receive Notification/Wait activities can be empty. If your process engines are on different machines. If you wish only to signal the waiting process to continue but not exchange data.Data for Inter-Process Communication 193 | 4. Data for Inter-Process Communication The Notify Configuration shared configuration resource defines the data that the Notify activity passes to the corresponding Wait activity or Receive Notification process starter. See Editor on page 50 for more information on specifying schemas. the same Notify Configuration resource must be specified by corresponding Notify and Receive Notification or Wait activities. TIBCO BusinessWorks Process Design Guide . The Notify activity then passes its data to its corresponding Wait or Receive Notification. Wait/Notify information is stored in a database so that process engines on different machines can share information. The schema in the Notify activity’s configuration appears in the Notify activity’s input schema. a database must be used to store process instance information. The Wait activity and Receive Notification process starter have output that matches the Notify Configuration specified on their Configuration tab. See Examples of Inter-Process Communication on page 195 for more specific examples of when inter-process communication is useful. Only activities with the same Notify Configuration resource can communicate with each other.

194

| Chapter 13

Inter-Process Communication

Coordinating Inter-Process Communication
When configuring Receive Notification, Wait, and Notify activities, you must specify a key to coordinate which activities correspond to each other. You can also specify a timeout for how long to keep the information about Wait and Notify activities before it is removed from storage. The following sections describe configuring the key and timeouts for inter-process communication.

Specifying the Key
To configure Receive Notification, Wait, and Notify activities, you must specify a key that correlates Notify activities with Receive Notification or Wait activities. The key is a string that corresponding activities specify to determine when a Receive Notification or Wait activity should accept data from a Notify activity. The key is similar to event keys used in activities that wait for incoming events (described in Event on page 49). The key is a string, but you can use any XPath expression that evaluates to a string when the process instance executes. XPath expressions can be used to specify the key for Wait and Notify activities. The Receive Notification process starter can specify a global variable or a fixed string for its key. Each Notify activity corresponds to exactly one Receive Notification or Wait activity. That is, as a Notify activity executes, the first Receive Notification or Wait activity that matches the Notify’s key can then execute. You can execute many Notify activities with the same key. You can create one-to-one correspondence between Wait and Notify activities so that exactly one process’ Notify activity corresponds to one other process’ Receive Notification or Wait activity. Or, you can create many-to-one relationships so that many Notify activities’ keys can correspond to the Receive Notification or Wait in one process. A Notify, however, always only corresponds to only one Receive Notification or Wait activity. Therefore, once a Notify executes, the corresponding Receive Notification or Wait activity continues processing. See Examples of Inter-Process Communication on page 195 for examples of specifying keys for Wait/Receive Notification/Notify activities.

Timeouts for Notify and Wait
Notify and Wait activities have associated timeouts. Timeouts specify how long information for the Notify and Wait is kept before it is removed from storage.

TIBCO BusinessWorks Process Design Guide

Database Storage for Wait/Notify/Receive Notification Information 195

|

The Notify activity executes immediately and transitions to the next activity in the process definition. However, the timeout value for the Notify activity specifies how long the notification information should be kept. If no corresponding Wait activity executes before the specified timeout, the information is removed. Once notification information is removed from storage, it cannot be accepted by the corresponding Wait activity. The Wait activity causes process execution to pause until a corresponding Notify activity with a matching key executes. The Notify activity can execute before the corresponding Wait activity and its information is then waiting in storage. If the Notify has not executed, the process instance containing the Wait suspends until the Notify occurs or the Wait activity’s specified timeout is reached. The Receive Notification process starter does not have a timeout because it creates a process instance only when a corresponding Notify activity executes.

Database Storage for Wait/Notify/Receive Notification Information
If your process engines are located on different machines, a database is required to store process instance state for inter-process communication. When process engines reside on different machines, they must share information about pending Wait/Receive Notification/Notify activities. A database allows process engines to share process instance state information across machines in a domain. Your deployment configuration must specify a database for process engine storage if you expect process instances on different machines to have corresponding Wait/Receive Notification/Notify activities. See TIBCO Administrator User’s Guide for more information on specifying a database for process engine storage when configuring your deployment.

Examples of Inter-Process Communication
The following sections describe situations where inter-process communication may be necessary.

TIBCO BusinessWorks Process Design Guide

196

| Chapter 13

Inter-Process Communication

Enforcing Order for Process Execution
If you wish process instances to execute in a certain order, you can use Wait and Notify activities to accomplish this. This requires using some portion of the incoming event to determine the order. For example, an application may assign a priority number to incoming orders. This may be important when accepting requests for a limited resource, for example, airplane seats or available space in a university class. The orders must be processed in order of priority to ensure that orders with the highest priority number have access to the resource first. Figure 39 illustrates an example process definition that orders incoming events. Figure 39 Ordering incoming events

In this process definition, new requests are submitted through a web interface. A new process is started for each request, and a priority number (an ordered sequence) is given with each request. The order with priority number 1 is submitted, and processed immediately. When the first order is completed, a Notify is sent with its key set to 1. All other orders transition to the Wait activity. These orders are suspended until a Notify activity is executed whose key is equal to their priority number minus one (that is, the order with the next highest priority number). Using this technique, orders are processed in the order of their priority, regardless of when the order is submitted. All orders create a process instance and then immediately suspend until the notification is sent from the order with the next highest priority.

Multiple Types of Incoming Events Resume a Running Process
Some processes require a "Wait for ..." event (for example, Wait for Adapter Message) to continue processing. This occurs when the process requires an external application to send an additional request. For example, a new order arrives, and because the total is over $100,000, it requires approval before processing. You may notify a group of approval managers by email, then any of the approval managers can respond by email or through a web interface for approval. Figure 40 illustrates this set of process definitions.

TIBCO BusinessWorks Process Design Guide

Examples of Inter-Process Communication 197

|

Figure 40 Multiple event sources to continue a process
Orders can be approved by mail or by web. Whichever Notify occurs first is accepted by the Wait

Incoming Order process handles orders less than $100,000 immediately. Orders greater than $100,000 require approval by a person.

The Wait/Notify activities use the OrderID as the key to determine the order that corresponds to the notification. In this case, it is possible for more Notify activities to execute than Wait activities. You must configure the Notify activities to have an appropriate timeout so that the notify information is removed if it is not used by the associated Wait activity.

Scalability With Incoming Events
You may distribute incoming events across multiple process engines. This allows for greater scalability because the load of incoming events is distributed. However, if you have a "Wait for ..." activity, such as Wait for Rendezvous Message that uses reliable delivery, in your process definition, the incoming event is received by all process instances across the multiple process engines. This can potentially affect the performance because of greater network traffic, depending upon how many process instances are running.

TIBCO BusinessWorks Process Design Guide

198

| Chapter 13

Inter-Process Communication

Ideally, you should create some mechanism so that incoming events are handled outside of the process definition and then routed to only the correct process definition. The Wait and Notify activities can accomplish this. You would replace your "Wait for ..." activity with a Wait activity. Then, create a new process definition that contains a process starter to handle the incoming event. Use the Notify activity to send the data from the incoming event to the correct process instance with the corresponding Wait activity.

Specific Protocol Requirements
Some business processes use protocols with specific requirements that make inter-process communication necessary. For example, you may have a process that starts when a TIBCO Rendezvous Certified Message (RVCM) arrives. Your process may also require a Wait for Rendezvous Message listening on the same subject as the process starter. This specific configuration is difficult to implement because incoming messages create new processes and also are sent to the waiting activities in the process. In the example above, the business requirements necessitate working around the requirements of the RVCM protocol. To accomplish this, you may be able to change your business requirements, or you can use the Wait and Notify activities to create two process definitions. The first process definition accepts all new messages and determines, based on message content, whether the message should start a new process or be passed to an activity in the process waiting for the message. The process executes a Notify activity for the new message, but the key of the Notify is different depending upon whether a new process must start or if the message is to be sent to an executing process. The second process definition starts with a Receive Notification process starter and has a Wait activity in place of the Wait for Rendezvous Message activity. This configuration allows the first process to receive all incoming messages, parse them to determine the appropriate action, and then pass each message to the appropriate process.

TIBCO BusinessWorks Process Design Guide

| 199
Chapter 14

Testing Process Definitions

This chapter describes the testing mode available for stepping through your process definitions and examining process data.

Topics
• • • • • • • Overview of Testing, page 200 Breakpoints, page 201 The Test Panel, page 202 Process Instances During Testing, page 203 Stepping Through a Process, page 205 Colors in Test Mode, page 206 Test Mode Buttons and Menus, page 207

TIBCO BusinessWorks Process Design Guide

If the process begins with a Start activity and the Start activity has a schema defined. so you may want to use a development system for testing purposes. but might be difficult depending upon the volume of the workload of the system. See Stepping Through a Process on page 205 for more information. Entering the testing environment starts a TIBCO BusinessWorks engine. changes to your process definitions are not reflected in the running process instances. Click the Tester tab on the left of the project panel. Select the process definition you wish to test in the project panel. 5.200 | Chapter 14 Testing Process Definitions Overview of Testing TIBCO BusinessWorks provides a testing environment for stepping through your process models and determining the sources of errors. The project panel becomes the test panel. Also. From the test panel you can start process instances or load more process definitions. Testing a process definition typically involves these steps: 1. This is not possible in a production environment. 3. 6. Use the toolbar buttons (Pause Testing. TIBCO BusinessWorks Process Design Guide . and so on) in the test panel to either continue through the process instance or to stop the current process instance. you can supply input data to the process before executing it. Step to Next Activity. Return to design mode before changing process definitions. You can select one of the running process instances to display in the design panel. In general. Testing a deployed project is possible. testing should be done during the design and development phase of a project. The current state of the process data is displayed on the Process Data tab of each activity. 2. Once in testing mode. See Breakpoints on page 201 for more information. testing usually involves setting breakpoints in the process model to stop the running process instances at desired points. and the currently executing activity is highlighted as the process instance runs. 4. Set breakpoints in the process definition at points where you wish to stop a running process and examine its state. The engine starts process instances based on the process definitions stored in your project. See Process Instances During Testing on page 203 for more information about process instances in the test panel. Examine the data of the process by selecting any of the activities in the process.

A breakpoint before the activity appears to the top left of the activity. You must use the Set Breakpoint dialog if you wish to specify a condition for the breakpoint. TIBCO BusinessWorks Process Design Guide . The dialog allows you to select where to place a breakpoint relative to any of the activities in the current process definition. Figure 41 Set BreakPoints dialog You can choose to select all of the activities by clicking the Select All button. When a breakpoint is set on an activity. a red hexagon (a stop sign) appears next to the task’s icon to indicate the task has a breakpoint. You can also set or clear breakpoints on individual activities by right-clicking on the activity and choosing Set/Clear BreakPoint Before/After from the popup menu. You can also specify that each breakpoint should only occur based on a given condition. just like conditions for items in an activity’s input. Conditions are specified in XPath. Using the popup menu on the activity only sets the specified breakpoint. click the Set Breakpoint button and the Set Breakpoint dialog appears. Figure 42 illustrates a process diagram that has breakpoints set before and after two activities.Breakpoints 201 | Breakpoints Breakpoints allow you to suspend a running process instance at a specified point so that you can examine the process data. The only exceptions to this are that you cannot set a breakpoint before the starting activity or after the End activity. You can clear all set breakpoints by clicking the Clear All button. Breakpoints persist after you close your project — the breakpoints you set should appear in the process definition once the project is reopened. A breakpoint after the activity appears to the top right of the activity. You can set breakpoints before or after an activity executes. To set a breakpoint. Figure 41 illustrates an example of the Set Breakpoint dialog.

The project panel then becomes the test panel. The test panel displays process instances created during testing. Figure 44 illustrates the test panel. Figure 43 Process instance stopped at a breakpoint The Test Panel You can begin testing a process definition by selecting it in the project panel. Figure 44 The test panel TIBCO BusinessWorks Process Design Guide .202 | Chapter 14 Testing Process Definitions Figure 42 Setting a breakpoint When a process instance is stopped at a breakpoint. the breakpoint icon becomes a stop sign inside a yellow triangle to indicate where the process instance has stopped. Figure 43 illustrates the example process definition when the process instance is stopped at the breakpoint before the ReadFile activity. then clicking the Tester tab to the left of the project panel.

You can also specify a database to use for storage of process engine information. TIBCO BusinessWorks Process Design Guide . one process instance is created to execute the process definition. This is useful if you wish to specify a property file containing custom engine properties.Process Instances During Testing 203 | The Start Testing Viewed Process button allows you to start process instances for one or more process defintions. Creating Process Instances If the loaded process begins with a Start activity. See Process Instances During Testing on page 203 for more information about process instances in the test panel. you can supply input to the process starter by clicking on the Supply Input Data to Starter button on the TIBCO Designer toolbar. Process Instances During Testing The Start Testing Viewed Process button allows you to create a process instance for the currently viewed process definition and all of its dependent subprocesses. You can select process instances in the test panel and display the process definition. Loading Processes to Test Once the Start Testing Viewed Process button is clicked. You can select the process definitions you wish to load into the test engine in this dialog. The Test Engine Database field specifies the JDBC Connection resource to the database you wish to use. the Select Processes to Load dialog appears. See Setting Custom Engine Properties for the Testing Environment on page 238 for more information about specifying custom properties in a test engine. If the loaded process begins with a Start activity that requires input. The Advanced button on this dialog allows you to specify any arguments to use when starting the test engine. This button is not available for processes that do not require input data on the Start activity. The test panel has several toolbar buttons for manipulating process instances. You can also select other process definitions to load as well. See Test Mode Buttons and Menus on page 207 for a complete description of the buttons in the test panel. Processing continues until the End activity is reached.

and each process instance is listed in the test panel. Select a process definition in the test panel. (completed job). its description is changed to (failed). Each incoming event causes a process instance to be created. Adapter Subscriber). If a process instance fails to complete. Figure 45 illustrates process instances and their labels in the test panel. completed. You can also select and right-click on a process definition name in the test panel to bring up a popup menu. You can select any process instance in the test panel and view it in the design panel. the process engine waits for an incoming event before creating a process instance. Figure 45 Multiple process instances in the test panel TIBCO BusinessWorks Process Design Guide . its End activity is reached). This menu contains the item Create a Job that performs the same function as the button on the test panel toolbar. When a job is selected in the test panel. When a process instance is running. its description is (running) in the test panel. You can view any running. or failed job. its process definition is displayed in the design panel and its description changes from (running). Once a process instance completes its processing (that is. You can create new process instances of any loaded process using the Create a Job button in the test panel. its description is changed to (completed job) in the test panel. You can start/stop/step through each process instance individually.204 | Chapter 14 Testing Process Definitions If the loaded process begins with a process starter (for example. or (failed) to (viewed job). Working With Process Instances Each process instance is independent in the test panel. then click the Create a Job button. A new process instance for that process definition is created.

If there is a breakpoint before the subprocess completes. step into or out of a subprocess. or you can choose another activity later in the process definition and execute from the current point to that later activity. See Test Mode Buttons and Menus on page 207 for more information about the toolbar icons and menu items that allow you to step through a process. if you are currently in a subprocess and you choose the Step Out of a Subprocess menu item or toolbar icon. TIBCO BusinessWorks Process Design Guide . You must exit test mode and re-enter test mode for changes to take effect. Stepping Through a Process When you set a breakpoint in a process definition. activities are executed as you pass them. processing halts at that breakpoint. all transitions that evaluate to true are taken. and you must choose Step Out of Subprocess again to continue processing. Once the breakpoint halts processing. breakpoints are still honored. If there are multiple paths in a process definition. the process executes all activities up to the activity with the breakpoint. Stepping through the process allows you to examine the executing process instance at your own pace. You can step to the next activity. you can step through the process using the toolbar icons or menu items. You can browse or change any process definition or any activity’s configuration while testing. You can delete any completed or failed process instances from the test panel by selecting the process instances and clicking the Delete a Completed Job button . When stepping through a process definition. For example. execution continues until the next breakpoint occurs or processing of the subprocess completes.Stepping Through a Process 205 | You can stop the execution of a process instance by selecting it and clicking the Stop the Current Job button in the test panel. but only one path is chosen to be highlighted as the next activity when you choose Step to Next Activity. no matter which menu item or toolbar icon you choose. The currently highlighted activity is executed after you choose your next step. but changes will not take effect during the current testing session. When you choose to step through a process.

The activity has not yet executed. The transition has been evaluated. This could be either because the activity has a breakpoint set or because the Step to Next Activity or Run To This Resource menu item was used. Table 21 Colors in test mode Color/Element Black transition arrow Green transition arrow Description The transition has not yet been evaluated.206 | Chapter 14 Testing Process Definitions Colors in Test Mode When you test a process definition. Any Call Process activity that calls a process in which an error occurs is also red. The activity encountered an error while processing. and its condition evaluates to true. the elements of the process change colors depending upon what is occurring in the executing process instance. This can occur if you have multiple paths in your process definition and the focus is not on the current path. but it is the next activity to execute when the process instance continues. and its condition evaluates to false. Therefore the transition is not taken. Yellow activity The activity is currently executing. Red transition arrow Red activity Bright yellow activity TIBCO BusinessWorks Process Design Guide . but the focus is not on the activity. Table 21 describes the colors of each element in a process definition and their significance. The transition has been evaluated. The process definition is paused at this activity. Therefor the transition has been taken to the next activity.

Table 22 describes these buttons and menu items. You can use this dialog to save the input data you supply to disk. Add Input Data TIBCO BusinessWorks Process Design Guide . Breakpoints stop the process instance and allow you to examine process data before the process continues. there is no toolbar icon. Displays the process definition with which you began this testing session. This brings up a dialog for creating an input schema. Information icon displayed when a process engine has been started for testing process definitions.Test Mode Buttons and Menus 207 | Test Mode Buttons and Menus There are buttons and icons on the TIBCO Designer toolbar used when testing process definitions. There is also a View > Test Options menu that performs the same actions as the toolbar buttons. Table 22 Toolbar icons for testing Button/ Icon View > Test Options Menu Item Set Breakpoints Description Brings up the Set Breakpoint dialog that allows you to specify which activities should have breakpoints. Go To Started Process This item is available only on the View>Test menu. This icon is enabled only for process definitions that begin with a Start activity that requires an input schema. Allows you to specify data for the process starter’s input schema.

Resume Resumes any process instances that are paused or stopped at a breakpoint. The moving ball shows the current execution path. The test panel also has several buttons for manipulating the process instances during testing.208 | Chapter 14 Testing Process Definitions Table 22 Toolbar icons for testing Button/ Icon View > Test Options Menu Item Moving Ball Options Description This item is available only on the View>Test menu. Table 23 describes these buttons and menu items. The Tools > Tester menu has menu items that perform the equivalent actions as these buttons. The process definitions are loaded into a process engine. Brings up a dialog that allows you to set whether the moving ball is displayed. Once in testing mode. Table 23 Test panel icons Button/ Icon Tools > Tester Menu Item Start Description Allows you to load the viewed process and select any other proceses you wish to to load. TIBCO BusinessWorks Process Design Guide . All dependend subprocesses for any loaded processes are also loaded. There is no toolbar icon. Return to design mode by using the Stop Testing icon if you want to add/remove/change process definitions. your process definition cannot be changed. You can also set the speed of the moving ball.

Test Mode Buttons and Menus 209 | Table 23 Test panel icons Button/ Icon Tools > Tester Menu Item Stop Description Kills the current engine and exits testing mode. Once a Call Process activity is reached. Note: In some situations. Step Out After stepping into a subprocess. click this icon to step ahead in the process definition and execute the next activity. When a process instance is paused on an activity. Step Over Step Into TIBCO BusinessWorks Process Design Guide . if the current activity is FTP Put and you are attempting to place a very large file on the remote server. the process engine stops only after the FTP command has completed. For example. Resume the process instance with the Resume icon. Pause Temporarily suspends the process instance. This icon is only available when you are in a subprocess. You must click the Start icon to start another engine if you wish to resume testing. All process instances are removed from the test panel. failed. This icon is only available when Call Process is the next activity to be processed. or a timeout has been reached. this button may not stop the process immediately because TIBCO BusinessWorks might be waiting for the current operation to be completed. this toolbar icon can be used to return to the process that called the subprocess. this icon allows you to display the process definition of the called process and step through it.

There are also menu items on the popup menus for each activity in a process definition. These are the popup menu items for activities that are used in testing: Set Breakpoint Before. and Run To This Resource. This is useful if you wish to examine the data of the process instance.210 | Chapter 14 Testing Process Definitions Table 23 Test panel icons Button/ Icon Tools > Tester Menu Item Show Current Job Location Description When a process instance is paused at a breakpoint or any other point. Focus returns to the highlighted activity in a process where the process instance is paused. but you do not want to continue running the process. You can also select and right click a process definition name in the test panel to bring up a popup menu. Stop Current Job Stops the currently executing process instance. This icon and menu item allow you to return focus to the process definition for the currently running process instance. This menu has the item Create a Job that performs the same function as the button in the test panel. but does not exit test mode. Set Breakpoint After. Clear Breakpoint Before. you can change focus to display or edit other resources in your project. You can only delete completed jobs. Creates a new process instance for the selected process definition. You can access these menu items by right clicking on the activity. Deletes the selected jobs marked as (completed job) from the test panel. TIBCO BusinessWorks Process Design Guide . Clear Breakpoint After. The Set/Clear Breakpoint Before/After menu items sets or clears the specified breakpoint on the selected activity.

Test Mode Buttons and Menus 211

|

The Run To This Resource menu item executes the running process instance up to the selected activity. For example, if a process instance is halted on a breakpoint, selecting an activity later in the process definition and choosing the Run To This Resource menu item resumes processing of the process instance and executes all activities between the breakpoint and the selected activity. The process instance pauses when it reaches the activity where you selected the Run To This Resource menu item.

TIBCO BusinessWorks Process Design Guide

212

| Chapter 14

Testing Process Definitions

TIBCO BusinessWorks Process Design Guide

| 213
Appendix A

Working with a Revision Control System

This appendix gives detailed instructions for working with each supported revision control system (RCS). For background information, see the documentation for the revision control system.

Topics
• • • • • • Overview, page 214 File Sharing, page 216 Microsoft Visual SourceSafe, page 218 Perforce Fast Software Configuration Management System, page 221 XML Canon, page 224 Tips and Tricks for Using Version Control Systems, page 234

TIBCO BusinessWorks Process Design Guide

214

| Appendix A

Working with a Revision Control System

Overview
TIBCO Designer allows multiple developers to work on the same project. Developers can use file sharing/locking or a revision control system to ensure that the same resource is not changed by two developers at the same time. If you wish to use file sharing/locking or a revision control system, you must use a multi-file project. Different users can then add resources to the project and lock the parts of the project they are working on. TIBCO Designer creates a file that can be shared and locked for each top-level resource, such as an adapter configuration or a process definition. It does not create a file for each resource. As a result, for example, you can lock an adapter configuration but cannot lock individual adapter services. TIBCO Designer also creates folders for folders you create in your project. You can lock each folder as needed. The following revision control options are available: • • • File Sharing — Allows you to place the project in a central location, then lock and unlock resources as needed. See File Sharing on page 216. Microsoft Visual SourceSafe — Allows multiple users to take advantage of the Visual SourceSafe features. See Microsoft Visual SourceSafe on page 218. Perforce — Allows multiple users to take advantage of the Perforce software revision control system. See Perforce Fast Software Configuration Management System on page 221. XML Canon — Allows multiple users to take advantage TIBCO XML Canon. See XML Canon on page 224.

You interact with the revision control system directly from TIBCO Designer. TIBCO Designer also allows you to check who owns the lock for each locked resource. Designer may not always have all of the information necessary to distinguish some situations correctly. For example, TIBCO Designer sometimes is unable to distinguish a deleted file from the RCS that should be deleted in your personal copy of the project from a file you added to your copy of the project and want to add to the RCS. In such cases, use the RCS client directly to fix these situations.

TIBCO BusinessWorks Process Design Guide

Overview 215

|

Icons Used by RCS Projects
To illustrate the state of the resource in a project under revision control, TIBCO Designer uses icons on top of each resource in the project panel. A lock icon indicates that the resource was checked into the revision control system. Other users may be making changes. You need to check out the resource to safely make changes. A yellow square icon indicates that the RCS does not know about this resource or its state. If the resource is new, you have to add it to the RCS. If it has been checked in before, it has to be checked in again. A red square indicates, on systems that support that functionality, that another user has locked the resource. Note that is functionality is not supported for all RC systems. If no special icon is displayed, the resource has been checked out and is in the same state as the corresponding RCS resource.

Deleting RCS Projects
You delete a project that uses a revision control system as follows: 1. In the Startup panel, click the Delete project button (just as for other projects). 2. In the Delete project.
Project

dialog that appears, supply the information about the

— For projects that use File Sharing, use either the None or File Sharing Revision Control System and any user name, supply the project location. — For Visual SourceSafe and Perforce you must make sure that the project listed in the Project Directory field corresponds to the project checked into RCS. 3. Click OK. The project is deleted. For Visual SourceSafe and Perforce, it is deleted in both the local and the check-in location.

TIBCO BusinessWorks Process Design Guide

216

| Appendix A

Working with a Revision Control System

File Sharing
This section discusses using File Sharing as a Revision Control System in the following sections: • • • • Preparing for File Sharing on Microsoft Windows on page 216 Preparing for File Sharing on UNIX on page 216 Using File Sharing on page 216 Deleting RCS Projects on page 215

Preparing for File Sharing on Microsoft Windows
The project is located on a shared drive accessible by all TIBCO developers. Make sure all TIBCO developers have read and write access to that drive.

Preparing for File Sharing on UNIX
The project must be located on a mounted drive accessible by all TIBCO developers. You then go through these steps: 1. Create a Unix group for the TIBCO developers (for instance "tibdev"). 2. Create a Unix account for each developer. Each account must have its Primary Group ID set to the group "tibdev". 3. For each account, the umask must be set to 002 to ensure the entire group has write permission on resources (folder and file) in Designer projects. Set the umask in the .login or .profile file, as follows:
$ umask 002

Using File Sharing
Allowing multiple users to use file sharing for a project involves these tasks: Task A Create the Project 1. Open TIBCO Designer and open the project (which could be a new empty project). 2. Choose Project > Save > Multi-File Project.

TIBCO BusinessWorks Process Design Guide

File Sharing 217

|

3. In the dialog that appears: d. Supply the root directory for the project (which will become the project name). This directory should be on a drive that can be accessed by all developers that work on the project. e. Choose File Sharing from the pop-up. f. Supply your username. This username will be seen by other users as the owner if you lock files in the project.

Task B User A Acquires Resource and Makes Changes The creator of the project or another user can now acquire the lock for the project and, for example, add two folders. Here are the steps: 1. User A selects the project root folder. 2. User A chooses Multi-User > Acquire Resource. That command is also available from the resource’s right-button menu or from the Project menu. 3. User A drags two Folder resources into the design panel and names each for the user who will work with it. 4. User A selects the folder for the second user (User B) and chooses Release Resource from the right-button menu. The folder now appears locked in the TIBCO Designer project panel.
Lock Acquired by User A Lock Released by User A

5. User A opens the UserA folder and adds two resources to it, then selects each resource and chooses Add Resource to RCS from the right-button menu. User A can make changes to the UserA folder (but not to the UserB folder). 6. User A saves the project. Task C User B Opens Project, Acquires Resource, and Makes Changes A second user can open the same project and make changes to all folders not currently locked by another user. For this example: 1. User B opens the project (all project elements are locked). 2. User B selects the User B folder and chooses Acquire Resource from the right-button menu. The lock for this folder was released by User A.
TIBCO BusinessWorks Process Design Guide

Install a Microsoft Visual SourceSafe 6.0 Client on each machine from which you wish to use TIBCO Designer in conjunction with a Visual SourceSafe database. The ReadMess. follow these steps: 1. Visual SourceSafe Setup To set up your system to work in conjunction with the TIBCO Designer Visual SourceSafe component. TIBCO BusinessWorks Process Design Guide . Only the Client Programs component is necessary on the machine where TIBCO Designer runs. User B cannot acquire the lock for the project root folder or for User A Folder because both are locked by User A. set the ssdir environment variable to the location of the Visual SourceSafe database. User B can now make changes to User B folder as desired. then includes reference documentation to the Version Control dialog in the following sections: • • Visual SourceSafe Setup on page 218 Using Microsoft Visual SourceSafe on page 219 Microsoft Visual SourceSafe is not supported under UNIX.218 | Appendix A Working with a Revision Control System 3.htm file included with your client explains how to do this on the command line: set ssdir=\\server\share\vss Where \\server\share\vss is the folder where the Srcsafe. and save the project when she is done. To make the Visual SourceSafe database available.ini file in the VSS database is located. 2. Microsoft Visual SourceSafe This section first discusses prerequisites and looks at a usage scenario.

VSS Command—Click Browse to point to the SS. Include the root directory and other directories. your SourceSafe client cannot find the database where the shared project is located. In the dialog that appears. Ask your VSS administrator.EXE executable on your machine. which is the command-line executable for VSS that is used by TIBCO Designer. Note that you must use SS.Microsoft Visual SourceSafe 219 | You can also set this variable permanently using the control panel. — — — Figure 46 Save Project Options for Microsoft VSS TIBCO BusinessWorks Process Design Guide . 2. Using Microsoft Visual SourceSafe Step 1: User A Starts TIBCO Designer and Creates a VSS Project To create a VSS project. as in the example below. VSS Project Name—Name of the project in the VSS database. Ask your VSS administrator.EXE. as specified during the VSS client installation. User A follows these steps: 1. specify the following information: — — — Project Directory—Location Multi-User System—Visual of the project on the local drive. SourceSafe User Name—Name of the current user. The user must have been granted access to VSS during the VSS client installation. If you do not set this variable. Password—Password for the current user. User A opens TIBCO Designer and chooses New Empty Project.

each resource can be checked out by each user that has access to VSS. After User A has supplied a label for this version. User A adds resources to the project and configures them. 2. 4. they may be checked out when you check out the top-level resource. After all changes have been made. User A saves the project. If a resource has never been added to RCS. each resource must first be added to the RCS using the Add Resource to RCS menu. check-in and synchronization is always all or nothing TIBCO BusinessWorks Process Design Guide . Whether this happens depends on the directory structure TIBCO Designer creates. 1. you must add. If you check out a resource that contains other resources. User B opens the project from TIBCO Designer. then chooses Acquire-Check Out Resource from the right-button menu of the resource.220 | Appendix A Working with a Revision Control System Step 2: User A Makes Changes to Project and Checks In the Project User A can now make changes to the project and check them in as follows: 1. User B can choose Multi-User > Check In Changes. is displayed. User B selects a resource to be checked out in the project tree. the check-in console. then chooses Multi-User > Add Resource to RCS. All resources are now locked and can be checked out by other users as needed. If User B adds new resource. 3. which shows the check-in information. you check in the resource. User B chooses Multi-User > Project > Synchronize Project to make sure all resources are loaded. While you can add and checkout recursively. If you make additional changes. Step 3: User B Checks Out Resources and Makes Changes After User A has checked the whole project into VSS for the first time. 2. Using the TIBCO Designer GUI. using the Visual SouceSafe as the Revision Control system and providing a username and password. User B can now make changes to the checked-out resource.

Be sure that you have the appropriate permissions to access. and modify the files you wish to work with under Perforce. TIBCO Designer does not include or install this software. Prerequisites Before attempting to use Perforce you must ensure the following procedures have been taken. TIBCO BusinessWorks Process Design Guide . create. • • The Perforce server port must be defined. developers can access the Perforce Server through a variety of Perforce clients (Windows GUI. Only the client is necessary on the machine where TIBCO Designer runs. Setup a password for your Perforce account. select User > Set Password for UserName. Web. • • Select the client you use to use or define a new client with any name. even for large or distributed sites. Perforce can be deployed quickly and easily. Assigning user name and passwords may be done by the Perforce administrator at your site. store. — The Perforce server must be installed and running. delete. — The Perforce client must be installed on your machine. You may need to define a password for all the Perforce ports you access normally. • Install the Perforce software. Every Perforce port has a unique password.Perforce Fast Software Configuration Management System 221 | Perforce Fast Software Configuration Management System Perforce has comprehensive software configuration management capabilities built around a scalable client/server architecture. and requires minimal administration. To do this in Microsoft Windows. You can define a new client in the Perforce clientSpecs >New menu. Requiring only TCP/IP. or Command-Line). Perforce is supported on a large number of operating systems.

Perforce Client—This is the same as Client entered in Perforce Client Specification. Use this option to test the validity of the information you are using to access Perforce. Timeout (seconds)—Amount of time available to connect with the Perforce server before a timeout occurs. — — — — — — User Name—Name Password—Password for the current user. User A opens TIBCO Designer and chooses New Empty Project. — Multi-User System—Perforce— This selection also enables the Test Configuration option. such as Japanese. ISO8859-1—Default value. location where the project is placed by Perforce when you synchronize. Server—The port on which you access the Perforce server. 2. User A specifies the following information: — — Project Directory—Location of the project on the local drive. See TIBCO Adapter Concepts for a discussion of how TIBCO adapters support Unicode. that is. This is a project-wide preference. In the dialog that appears. Use this option if you ONLY intend to use TIBCO Rendezvous for English and Western European data. UTF-8— Select this option if you want to use TIBCO Rendezvous activities for processing non-Western European data. Browse to point to the P4. If you set your default client in the Perforce native UI you don't need to fill in the user/server type fields when you access Perforce from Designer TIBCO BusinessWorks Process Design Guide . Encoding—This field is used to determine the wire encoding that TIBCO Rendezvous should use for sending and receiving data in this project. User A follows these steps: 1.222 | Appendix A Working with a Revision Control System Using Perforce Step 1: User A Starts TIBCO Designer to Create a Perforce Project To create a Perforce project. of the current user.EXE executable on Perforce Command—Click your machine. as specified during the Perforce client installation. This is the same as Owner entered in Perforce Client Specification.

you check in the resource. you must add. then chooses Multi-User > Add Resource to RCS. 2. If you make additional changes. User A adds resources to the project and configures them. TIBCO BusinessWorks Process Design Guide . If a resource has never been added to RCS.Perforce Fast Software Configuration Management System 223 | Figure 47 Save Project Options for Perforce Version Control System Step 2: User A Makes Changes to Project and Checks In the Project User A can now make changes to the project and check them in as follows: 1. Using the TIBCO Designer GUI. which shows the check-in information. the check-in console. each resource can be checked out by each user that has access to Perforce. Step 3: User B Checks Out Resources and Makes Changes After User A has checked the whole project into Perforce for the first time. User A saves the project. is displayed. After User A has supplied a label for this version. All resources are now locked and can be checked out by other users as needed.

and management. Whether this happens depends on the directory structure TIBCO Designer creates. After all changes have been made. collaboration. User B chooses Multi-User > Project > Synchronize Project to make sure all resources are loaded. You can add or check in resources recursively. protecting the development process from duplicate or conflicting efforts. XML Canon XML Canon/Developer (XCD) is a comprehensive development platform that allows organizations to store their XML assets (e. XML Canon uses permissons to control access to the stored files. User B can choose Multi-User > Check In Changes. XML schemas. then chooses Acquire-Check Out Resource from the right-button menu of the resource. User B can now make changes to the checked-out resource. 2. User B opens the project from TIBCO Designer.224 | Appendix A Working with a Revision Control System 1. using the Perforce as the Revision Control system and providing a username and password. DTDs. User B selects a resource to be checked out in the project tree. adjuncts. each resource must first be added to the RCS using the Add Resource to RCS menu. TIBCO BusinessWorks Process Design Guide . 4. 3. instance documents. If User B adds new resource. XML Canon is an entire persistence system that has some RCS capability but not a multi-file project per se. and stylesheets) in a central repository that facilitates adaptability. XML Canon also provides version control. and other required information. repurposement.g. If you check out a resource that contains other resources. they may be checked out when you check out the top-level resource.

Prerequisites To use XML Canon as the version control system for TIBCO Designer. accessible via XML Canon's web interface. you must have: • • the address of the XML Canon server and the port number on which it is running. see the XML Canon Developer documentation available as online help with the product and also via the TIBCO documentation library. Checking In and Acquiring Resources This section provides the typical steps involved in interacting with the XML Canon repository. • • • • • • Custom Property Association—apply custom metadata to documents or individual components. Namespace Management—browse through a listing of target namespaces and see how a given namespace is used in schema and instance documents. Document and Component-Level Searching—query for document and components through a wide array of filters. an XML Canon user name and password with the permissions required to work in the XML Canon category in which the shared project is stored. beginning with the initial association of the TIBCO Designer project with an XML Canon category. TIBCO BusinessWorks Process Design Guide . The remainder of this section describes the process for specifying XML Canon as the repository for a project. the typical steps for interacting with XML Canon. and some tips and tricks that will facilitate the effective use of XML Canon. Document/Component Relationship Tracking—track the relationship between documents and their components and determine where schemas or individual components (XML Schema elements or types or WSDL message components. for example) are used in the project. such as your XML Schemas. WSDL files and process definitions. For more information on XML Canon. are provided for the XML-based files in your project. XML Document Differencing—track changes between revisions.XML Canon 225 | Features The following features. SchemaDOC™—generate a graphical inventory and detailed description of an XML Schema’s or DTD’s components in a user-friendly HTML format.

To specify XML Canon as the version control system for a given project. the proxy server you specified is taken into account. Password—password associated with the user name. which will serve as your top-level project folder. TIBCO BusinessWorks Process Design Guide . the Save Project dialog appears automatically by default. as depicted in Figure 49. you will be presented with all of the top-level categories. • • User name—an XML Canon user name. Not all proxy servers support the WebDAV extensions to HTTP that XML Canon uses. The Browse for Project Folder will appear.226 | Appendix A Working with a Revision Control System Step 1: Specifying XML Canon as the version control system for a given project This step is performed once for a given project. Enter the URL for the XML Canon server and click Connect. Make sure the proxy server supports required additional functionality. Each project should be associated with a unique XML Canon category. click Browse. As a result.When you open a new empty project. it is essential that you specify the proxy server before you click Browse. Upon successful authentication. Figure 48 XML Canon tab If you do not know the location of an empty category. Figure 48 depicts the XML Canon tab filled in with the required information. • XML Canon category—the URL (http://hostName:portNumber/categoryName) of an empty XML Canon category. If you click the Browse button for the XML Canon category field. which requires you to specify these fields: • Proxy server—You may access XML Canon via a proxy server that does not require authentication. Select the XML Canon tab. select Project > Save As to display the Save Project window. You will be prompted to enter your XML Canon user name and password.

and password have been specified on the XML Canon tab.The specified XML Canon category will now be used to store the project. The XML Canon Check In dialog is shown in TIBCO BusinessWorks Process Design Guide . When you have selected the category in which to store the project. user name. click Select Folder. click OK. Some XML Canon users may not have the ability to create a new category. When a URL. modified. The XML Canon Check In dialog appears. or deleted since the project was last checked-in.XML Canon 227 | Figure 49 Browse for an XML Canon category Double-click a category (or use the Open button) to view its child categories. listing the folders and files that have been added. moved. Step 2: Check in the project The folders and resources existing in the project prior to Step 1 can be checked into XML Canon by way of the Check In Changes option of the Multi-User menu. New categories can be created using the new folder icon. see your XML Canon administrator. See Step 2: Check in the project to learn how to make the existing resources in the project accessible to all XML Canon users with the permissions to work in the category. If you are unable to create a new category.

TIBCO BusinessWorks Process Design Guide . Check-in options are controlled with the following buttons: Button Close Undo Check in selected Check in all Description Closes the window without checking in any files. Checks in the changes associated with the selected files or folders.228 | Appendix A Working with a Revision Control System Figure 50 XML Canon Check In Dialog Global variable settings will appear in the dialog as "defaultVars". Reverts the selected folders or resources to their status prior to the last acquire-check out. Checks in all of the changes.

. a "production" document cannot be modified without taking it out of "production"). your XML Canon user profile may not have the appropriate permission settings. This can happen for two reasons. By default you may specify a comment. and a stage. Figure 51 depicts a project checked into XML Canon. a revision label. or The administrator has specified "custom properties" that are required. Depending on how the server is configured. To set all properties. See your XML Canon administrator. TIBCO BusinessWorks Process Design Guide . you: • • Select a file in the "Check In" dialog. it may not be possible to save changes to XML Canon unless you have specified extended properties.XML Canon 229 | Button Properties Description XML Canon augments standard WebDAV functionality by allowing you to specify additional properties when a document is saved. then click "Properties.". and the document may not be saved unless those properties are specified. Items for which the user has already specified custom properties are shown in bold in the dialog.. indicating that the files are not acquired and cannot be edited. you may also specify those custom properties. • Checked-in items become marked by a lock icon in the project panel. If the XML Canon Administrator has configured your server to use custom properties. • The "stage" that the document is currently in does not allow a transition to itself (for example. or Double-click an item. If you are unable to check in changes. Figure 51 A project checked into XML Canon.

To acquire a resource 1. TIBCO BusinessWorks Process Design Guide . Global variables are acquired through the Acquire-Check out Global Variable Group option of the right-button menu or the Acquire-Check out Global Variable Group icon appearing at the bottom of the global variable display. Select the resource in the project tree 2. Once a resource is acquired by a user. it cannot be modified by other users. Specify (or browse for) the XML Canon category in which the project is stored 3. the message shown in Figure 52 will appear. but cannot make changes to it. To open a project stored on XML Canon 1. Upon successful authentication. its resources can be acquired (checked out) by other users with access to the XML Canon server and with permission to work in the category associated with the project. Select the XML Canon tab from the Open Project dialog. Use the global variables display to acquire global variables. you should synchronize the project (Multi-User>Synchronize Project). Synchronize often to ensure that your project tree reflects any resources you have added outside of TIBCO Designer (through a WebDAV folder or the XML Canon interface. Select Acquire-Check out Resource from the right button menu or the Multi-User menu. the project will be opened. (Other users can view the resource.) If you attempt to acquire a resource that is under the control of another user. Supply a user name and password. indicating that you may edit the file. for example) as well as any changes made by other users. its lock icon will disappear. Upon opening a project shared through XML Canon. When a resource is acquired. Folders and resources marked by a lock icon are read-only until acquired. 2.230 | Appendix A Working with a Revision Control System Step 3: Acquiring folders or resources and making changes Once a project has been associated with XML Canon (see Step 1) and checked-in for the first time (see Step 2).

Viewing Revision Control Information The revision control system (RCS) information for a particular resource can be viewed by selecting the View RCS Info for Resource option from the right-button menu or the Multi-User menu. Select the modified folder or resource in the project panel and select the Release-Revert Resource option. following the same procedure outlined in Step 2. TIBCO BusinessWorks Process Design Guide . DTD. available via the right-button menu and the Multi-User menu. and WSDL resources only. This applies to XML Schema. The information available is described in Table 24. Table 24 Revision control system information Field Analyzed state Description This indicates if the resource was analyzed for document and component level relationships. Reverting Changes There are two options for returning a folder or resource to its status prior to your acquisition: • • Select the change(s) in the Check In Changes Dialog and click Undo Changes.XML Canon 231 | Figure 52 Acquire failed Step 4: Checking in (or reverting) the changes made to an acquired resource Changes made to acquired resources can be checked into XML Canon.

The size of the resource in bytes.232 | Appendix A Working with a Revision Control System Table 24 Revision control system information Field Comment Creation date Display name Document flavor Document id Document size Governing namespace Description Displays any comments added when checking the resource into XML Canon. The date the resource was created. The name of the resource. The resource type. in XML Schema. the value of the 'targetNamespace' attribute. The default namespace of the resource. The XML Canon internal id of the user making the last modification. Namespace that the document governs. A revision label added when checking the resource into XML Canon. The number of times the resource has been checked into XML Canon. for example. Last modified Last modified by Last modified by id Lock token Locked by Mime type Resource type Revision name Revision number Root namespace Stage id Stage name TIBCO BusinessWorks Process Design Guide . The XML Canon internal stage id for the resource. The user who has acquired the resource. The time and date of the last modification. Globally unique identifier for the resource being acquired (locked on the server). The XML Canon stage of the resource. The XML Canon internal id for the resource. The WebDAV resource type. The name of the user making the last modification. The Multipurpose Internet Mail Extension.

(For example. the other change will also be checked in. For XML Schemas. • • Synchronize (Multi-User > Synchronize Project) often to ensure your project reflects the changes made by other users. Because XML Canon automatically treats all of the project’s resources as part of the Revision Control System. custom properties can be specified for individual components as well. Tips and Tricks The following tips will help you use XML Canon effectively as a version control system. a new child folder cannot be checked in until its parent folder is checked in. Any conflicts discovered during the synchronization process will be listed along with instructions for resolving the conflict.XML Canon 233 | Table 24 Revision control system information Field Supported lock Description The WebDAV locks allowed on the resource. its resources and sub-folders are not checked-out. You cannot check in any changes until synchronization conflicts are resolved. the Add Resource to RCS option of the right-button menu Multi-User menus is not applicable when working with XML Canon. Acquisitions are not recursive. To delete a project. keep in mind that some changes are dependent upon other changes.) If you check in a single change (using the Check in selected button) with a dependency on another change. DTDs and WSDL files. You can apply custom metadata to the resources through the DAV tab of the user’s XML Canon home page. When checking in changes. A folder must be acquired if you want to: • • • • TIBCO BusinessWorks Process Design Guide . use a WebDAV client. When you acquire a folder. Deleting XML Canon Projects XML Canon-based projects cannot be deleted in TIBCO Designer.

and rename resources in that folder. Do not keep the root folder locked. If you do. rename the folder (or one of its resources or sub-folders) b. delete. Do not lock folders unless you have to. • • • • • Access Rights on Resources The following two tables illustrate the access rights on unlocked resources when the parent folder is or is not locked. and sometimes you can add resources to folders even if someone else has checked out that folder. it can still cause problems. TIBCO BusinessWorks Process Design Guide . If you do. delete the folder Tips and Tricks for Using Version Control Systems The following techniques will help you use your version control system (File Sharing or Visual SourceSafe) effectively: • Check in and synchronize on a regular basis.234 | Appendix A Working with a Revision Control System a. Do not keep the AESchemas folder locked. Structure your project so each user owns a folder and works in it. In the table: • Locked means either checked out by someone else or not checked out. When several users work in the same folder. only the folder owner can add. if two people attempt to add a resource with the same name. Sometimes a check-out is recursive (optional or forced). other users cannot add resources in it (not even their own folder). The information displayed by TIBCO Designer may not be completely accurate if there are a large number of differences between the project in TIBCO Designer and the project in VSS. edit the folder’s description d. See Table 25 and Table 26 below. for example. Structure your project so that each user owns a folder in the AESchemas area. Even though the capability of adding to a locked folder is there. other users cannot add resources in it (not even their own folder inside AESchemas). move the folder c.

you are able to modify the resource but not rename it. Table 26 Actions on locked resources Action on Resource Folder is Locked Folder is not Locked Add N Y Delete N N Modify N N Rename N N Move N N Copy Y Y Link Y Y TIBCO BusinessWorks Process Design Guide . copying. copy. and linking to another location. and linking to another location. and link refer to moving. copy. and link refer to moving. copying. In the table: • • Locked means either checked out by someone else or not checked out.Tips and Tricks for Using Version Control Systems 235 | • Move. Move. The following table illustrates the access rights on locked resources. Table 25 Actions on resources that are not locked Action on Resource Folder is Locked Folder is not Locked Add N Y Delete N Y Modify Y Y Rename N Y Move N Y Copy Y Y Link Y Y Note that when the folder is locked.

236 | Appendix A Working with a Revision Control System TIBCO BusinessWorks Process Design Guide .

This appendix describes the custom properties that can be altered.| 237 Appendix B Custom Engine Properties TIBCO BusinessWorks process engines can be configured using custom properties in configuration files. page 240 Available Custom Engine Properties. page 238 Setting Custom Engine Properties in Deployed Projects. page 238 Setting Custom Engine Properties for the Testing Environment. Topics • • • • Overview of Custom Engine Properties. page 241 TIBCO BusinessWorks Process Design Guide .

Trace. You can place comments in the configuration files by placing a hash (#) as the first character in a comment line. Properties are set by specifying their name and value in the configuration files. For example. you must create a properties file and specify its location.Role. Setting Custom Engine Properties for the Testing Environment TIBCO Designer runs a process engine when you test process definitions using the Tester tab.error = false Some properties can be set for specific process definitions or activities. The following sections describe how to set custom engine properties and list the custom properties that you can set.* is the property to control tracing for all roles. equal sign. For example. the following line sets the property Trace. custom properties are available for enabling/disabling and setting the level of tracing for the engine. Properties that have variable portions can use the wildcard character (*) to indicate the property should be set to the specified value for all potential names. Property names and values can be separated by either a space ( ). \ . you must escape these characters in the property value by using a \ (for example. \=. an equal sign (=).Role.error to false. you can specify custom properties in the engine’s configuration files to configure the process engine to suit your needs. For example. To set custom properties for the process engine that TIBCO Designer runs. If a property value contains a space. Custom properties are also available for configuring the maximum and minimum number of connections for the HTTP server that handles incoming HTTP requests for TIBCO BusinessWorks.Role. or colon. TIBCO BusinessWorks Process Design Guide . However. or \:). or a colon (:). This prevents any trace messages for the role named error from being written to the log file or console. Trace.238 | Appendix B Custom Engine Properties Overview of Custom Engine Properties The TIBCO BusinessWorks process engine is responsible for running instances of your process definitions. Perform the following procedure to set custom engine properties for the testing environment. and the property name can be variable. The default configuration settings of the engine are sufficient for most users.

tra. For example. On the Select Processes to Load dialog. followed by the location of your properties.testEngine. TIBCO BusinessWorks Process Design Guide . 3. -p c:/tibco/properties.tra file to point to a properties file. In the Test Engine User Args field. To alter the designer. Create your properties file and place it in the desired location. For example. Click the Start Testing Viewed Process button to start the test engine (see Process Instances During Testing on page 203 for more information about the process engine during testing). java. on MS Windows machines. Add properties to your file. you can alter the designer. Notice the backslashes in the file path are escaped because backslash is a reserved character in properties files. create a file named properties.property. this file is usually located at c:\tibco\designer\<release_number>\bin\designer. Add the following line to designer. For example. 6. enter the -p argument.cfg. Create a properties file containing the custom properties you wish to set in the process engine that runs in the testing environment.Args -p c:\\tibco\\properties. 3.cfg The line above illustrates a properties file placed in the c:\tibco directory of a MS Windows machine.cfg file. 2. Edit the designer.User.tra file to specify the location of your properties file.Setting Custom Engine Properties for the Testing Environment 239 | 1.tra to inform TIBCO Designer of the location of the properties file you created in step #1. This file is located in the bin subdirectory of the TIBCO Designer installation directory. click the Advanced button. Start TIBCO Designer and open the project you wish to test. where <release_number> is the release number of the currently installed TIBCO Designer. 5. 4.cfg If you always use the same properties file. perform the following: 1. 2.tra file.

Be sure to re-save EAR files in TIBCO Designer and re-load them into any deployment configurations created in TIBCO Administrator after changing the bwengine.xml file. For example.xml file.*</option> <default>false</default> <description>Controls tracing of all roles.* property in deployment configurations. on MS Windows machines. See TIBCO Administrator User’s Guide for more information about creating and managing deployment configurations. TIBCO BusinessWorks Process Design Guide . you would add the following to the bwengine.xml file has a <properties> element that defines all of the properties you would like to have available in deployed process engine. TIBCO BusinessWorks provides a file for specifying any custom properties you wish to set in deployed engines.xml file: <property> <name>Trace All Roles</name> <option>Trace.Role. it is available in Enterprise Archive Files that are created by TIBCO Designer and will be displayed in the Advanced tab of the deployment configuration in TIBCO Administrator. this file would by default be located in c:\tibco\bw\<release_number>\lib\com\tibco\deployment\bwengine.xml where <release_number> is the release number of the currently installed TIBCO Designer.</description> </property> Once the property is defined in the bwengine. The bwengine. to include the Trace.240 | Appendix B Custom Engine Properties Setting Custom Engine Properties in Deployed Projects TIBCO Administrator is responsible for deploying process engines in a production environment. You can alter the value of any property on the Advanced tab of the deployment configuration and that value will be used in the deployed project. The bwengine. Each property is contained in a <property> element with the following structure: <property> <name>Name to display in TIBCO Administrator</name> <option>name of property</option> <default>default value</default> <description>short description of property</description> </property> For example.xml file is located in the lib\com\tibco\deployment subdirectory of the TIBCO BusinessWorks installation directory.Role.

Most properties are boolean and can be set to a value of true or false to enable or disable them. true (the default) indicates the process engine will check for identical duplicateKey values.pollPeriod. bw. Engine Properties This section describes properties that control the behavior of the process engine.dupKey.engine. The default is 30 minutes. See Detecting Duplicate Process Instances on page 184 for more information about duplicate detection. EnableMemorySavingMode. By default. bw.engine.minutes This property specifies how long (in minutes) to keep stored duplicateKeys. See Detecting Duplicate Process Instances on page 184 for more information about duplicate detection.engine. You can enable memory saving mode for all process instances by setting the EnableMemorySavingMode. 0 indicates to store duplicateKey values indefinately. Any positive integer greater than 0 indicates the number of minutes to keep stored duplicateKeys. See Detecting Duplicate Process Instances on page 184 for more information about duplicate detection. TIBCO BusinessWorks Process Design Guide .<processName> property to true.dupKey. but you can enable garbage collection on specific process instances by setting the EnableMemorySavingMode. false indicates duplicateKeys when specified are ignored. When a property has a non-boolean value.dupKey.enabled This property controls whether duplicate detection is performed. -1 indicates the duplicateKey values are deleted when the job completes.<processName> Memory saving mode can reduce the memory used by actively running process instances as well as potentially improve the performance of checkpoints. its syntax is explained in the property description.timeout. bw.* property to true. memory saving mode is disabled.Available Custom Engine Properties 241 | Available Custom Engine Properties The following sections describe the custom properties that you can set.minutes Specifies the number of minutes to wait before polling for expired duplicateKey values.

but if your process definitions contain a large number of activities and especially if they contain a large number of activities in iteration loops. However. These properties are not intended to be used with process engines started by TIBCO Designer for testing process definitions. you may benefit from setting this property to a higher value. Therefore. Engine. See the description of the Checkpoint activity in TIBCO BusinessWorks Palette Reference for more information. and if the engine encounters errors during startup. Engine. process engines have a TIBCO Hawk microagent as well.ShutdownOnStartupError controls this behavior. The properties in this section should be set only on deployed engines. Set this property to false if you encounter this situation. The default value of this parameter is 20. the value of the property is false. You can specify that the process engine should shutdown if any errors are encountered during startup so that checkpointed jobs are not lost in the event of an error. checkpointed process instances are restarted when the engine restarts.ShutdownOnStartupError By default. Engine.StandAlone Under some situations. By default. the restarted process instances continue to be processed and may eventually be lost depending upon the type of error at startup. but when a process instance keeps the tread too long.242 | Appendix B Custom Engine Properties See Memory Usage of Process Variables on page 100 for more information. this may cause less concurrency for executing process instances (and therefore inefficient use of CPU). a unique constraint violation is thrown when using a database as the data manager for process engines. it is difficult to determine the correct value for this property. The default value is sufficient for most situations. Frequent thread switching can cause engine performance degradation. TIBCO Hawk Properties TIBCO Administrator is the preferred monitoring and management tool for TIBCO BusinessWorks.StepCount This property controls the max number of execution steps (unless inside a transaction) for a job before an engine thread switch occurs. The custom engine property named Engine. TIBCO BusinessWorks Process Design Guide . but setting it to true shuts the engine down if errors are encountered when the engine starts.

Hawk. TIBCO Hawk cannot be used when this value is used. Enables only Engine Command activity.Available Custom Engine Properties 243 | See Appendix C.Network Specifies the network parameter for the TIBCO Rendezvous transport of your TIBCO Hawk configuration. See the TIBCO Rendezvous documentation for more information about the syntax of the service parameter of TIBCO Rendezvous transports. Hawk. By default this is set to "".Service Specifies the service parameter for the TIBCO Rendezvous transport of your TIBCO Hawk configuration. TIBCO BusinessWorks Process Design Guide . local false Hawk. By default this is set to tcp:host:7474. allows the Engine Command activity to be used. on page 255 for more information about using TIBCO Hawk to monitor and manage TIBCO BusinessWorks. See the TIBCO Rendezvous documentation for more information about the syntax of the network parameter of TIBCO Rendezvous transports.Daemon Specifies the daemon parameter for the TIBCO Rendezvous transport of your TIBCO Hawk configuration. By default this is set to 7474. Disabled both TIBCO Hawk and Engine Command activity usage. The following table describes the valid values for this property: Value true Description Enables both TIBCO Hawk and Engine Command activity usage. Also. See the TIBCO Rendezvous documentation for more information about the syntax of the daemon parameter of TIBCO Rendezvous transports. TIBCO Hawk MicroAgent Methods.Enabled Controls whether or not TIBCO Hawk can be used to monitor and manage the process engine. Hawk.

or Debug) are sent to the console. controls whether or not messages for the specified system role (Error. by activities.* to true enables those actions for all process definitions.<systemRoleName>. to the console. Trace. Setting this property to false disables the actions. The property value specified in a call to setInsrumentProperties takes effect immediately.Term or Trace. Warn.<processName> Some of the TIBCO Hawk instrumentation methods require runtime actions that impose performance and memory overhead. you can configure system role tracing (Error.Term Trace. Info. or you can configure tracing for user-defined roles. or published as TIBCO Rendezvous messages.Role. For roles. Trace. Trace Properties Trace properties control which trace messages are sent and where they are sent to. or by process definitions.Role. The Write to Log activity allows you to specify a user-defined role for the message to write.<systemRoleName>. use Trace. Messages can be sent to the log file.Term to control console output for all user-defined roles.Term controls whether or not messages for the specified user-defined role are sent to the console. The actions that can be enabled or disabled are: • • Collection of activity statistics for the GetActivity microagent method Calls to OnProcessActivity and OnProcessStatusChanged microagent methods Setting the engine property Instrumentation. Warn. The instrumentation properties can be set at runtime by calling the TIBCO Hawk setInstrumentProperties method. Setting the property Instrumentation.*.Role. Tracing is controlled either by roles. These actions can be enabled or disabled on a per-process definition basis at any time by setting this property.244 | Appendix B Custom Engine Properties Instrumentation.Term TIBCO BusinessWorks Process Design Guide .<userRoleName>.<processName> to true enables those actions for a specified process definition. Specifying Location of Trace Messages The following properties control where trace messages are sent.<userRoleName>. Info. Debug).

Role.Log controls whether or not messages for the specified system role (Error. use Trace.Role.Log or Trace.*. — Maximum size of a log file before entries are directed to the next log file in the sequence. A number is appended to each new log file created up to the specified maximum number of log files.<systemRoleName>.Role.Available Custom Engine Properties 245 | Trace. The following engine properties allow you to configure rolling log files: • • Trace.Log to control log output for all user-defined roles. Once the maximum number of log files is reached. • Trace. Trace.Log. Specifying Rolling Log Files for UserRole You can specify that entries for the role named UserRole are sent to a set of rolling log files. or Debug) are sent to the log file. By default. Trace.<systemRoleName>.File — Filename for the log files.<userRoleName>.Publish.UserRole. Warn.<systemRoleName>.Subject Trace.<systemRoleName>.UserRole. Trace.Service Trace.Publish.Role.Publish. the messages are sent on TIBCO BusinessWorks default transport. or Debug) are published as a TIBCO Rendezvous message.<systemRoleName>.Publish controls whether or not messages for the specified system role (Error. You can specify a different transport for published trace messages with the following properties: • • • • Trace.<systemRoleName>.MaxSize TIBCO BusinessWorks Process Design Guide .<userRoleName>. Entries will be written to the first log file until it reaches its maximum size.Publish Trace.Log.<systemRoleName>.Log. and so on.Log Trace. you specify the location of the log files. entries are then directed back to the first log file again.Role.Publish.Dir — Location for the set of rolling log files.Role.Role.Daemon See the TIBCO Rendezvous documentation for the correct syntax for specifying transport parameters. Info. Warn. To accomplish this. and the maximum size of each log file. and then entries are then directed to the second log file until it reaches its maximum size. Info.UserRole. the number of log files.Log controls whether or not messages for the specified user-defined role are sent to the log file.<systemRoleName>. log file name.Role.Network Trace.

Role.* to enable or disable all user-defined roles. Trace. Tracing by Role The following properties enable or disable all tracing for user-defined and system roles. Trace.Role. Tracing by Resource The following properties enable or disable tracing for activities and process starters.* enables or disables the specified system role (Error. or Debug). and Info.Task.246 | Appendix B Custom Engine Properties • Trace.Role.Role. Specify Trace. Specifying a wildcard for the activity name indicates you would like to control trace messages for all activities in the specified process definition.<userRoleName> enables or disables the specified user-defined role.<processStarterName> Controls whether or not trace messages for a given process starter are output. Info. TIBCO Rendezvous Advisory Messages TIBCO Rendezvous advisory messages can be written to the TIBCO BusinessWorks log file. Trace. The following properties control whether TIBCO Rendezvous advisory messages are sent to the log file: TIBCO BusinessWorks Process Design Guide . Trace.UserRole. There are three types of advisory messages: Error.<activityName> Controls whether or not trace messages for a given activity in a process definition are output.Task.* to control trace messages for all process starters. Warn.<processDefinition>.JC. Trace. Specifying a wildcard for the process definition name indicates you would like to control trace messages for all activities with a given name.<systemRoleName>.JC. Trace.Maximum — Maximum number of log files to create. specify Trace.* Controls whether or not trace messages for all activities are output.Log. Warn.<userRoleName> or Trace. Entries are directed back to the first log file when the maximum number of log files have been created.* Enables or disables the specified role. Error advisories are logged by default.<systemRoleName>.

RV. setting the properties to false disables the advisory messages. The default maximum number of threads is 75. it may result in extra resources allocated that are never used. The default minimum number of threads is 10. bw. The value of this property controls the size of the thread pool. bw.plugin.Info Setting these properties to true enables the associated advisory messages. bw.http. belonging to the thread pool associated with the activity.Advisory. The number of threads in the pool determines the maximum number of concurrent requests a request/response activity can execute. you may wish to alter the configuration of the HTTP server that receives incoming HTTP requests for TIBCO BusinessWorks.plugin. The HTTP server will not create more than the number of threads specified by this parameter. The default value of this property is 10. The thread pool is created when the engine starts.RV.http.maxProcessors This property specifies the maximum number of threads available for incoming HTTP requests.server.RV. If you set the value too high.plugin. Each request is executed in a separate thread.Available Custom Engine Properties 247 | • • • Trace.server. HTTP Properties In some situations.Advisory. TIBCO BusinessWorks Process Design Guide . Send HTTP Request or SOAP Request Reply) is associated with a unique thread pool. The HTTP server creates the number of threads specified by this parameter when it starts up.Warn Trace. therefore be careful to set the value of this property to a reasonable number for your system.Advisory. This section lists the properties for configuring the HTTP server.client.ResponseThreadPool Each Request/Response activity that uses the HTTP protocol (for example.minProcessors This property specifies the minimum number of threads available for incoming HTTP requests.Error Trace.http.

client.http.client. a pool of connections is created for each HTTP server that Send HTTP Request activities connect to.client. The total number of connections in the pool is limited by the bw.http.plugin.usePersistentConnectionManager property is set to true.http. See the description of the Send HTTP Request activity in TIBCO BusinessWorks Palette Reference for more information.plugin. This property specifies the maximum number of persistent connections to each remote HTTP server. TIBCO BusinessWorks Process Design Guide .plugin.http.maxTotalConnections property.maxConnectionsPerHost The value of this property is ignored unless the bw. bw.maxConnectionsPerHost property. The number of connections for each host is limited by the bw.client. See the description of the Send HTTP Request activity in TIBCO BusinessWorks Palette Reference for more information. This property specifies the maximum number of persistent connections to create for all HTTP servers.plugin. See the description of the Send HTTP Request activity in TIBCO BusinessWorks Palette Reference for more information. Not all HTTP servers support persistent connections.http.usePersistentConnectionManager property is set to true. When this property is set to true.plugin.http.client. The default value for this property is 200. bw.248 | Appendix B Custom Engine Properties bw.plugin.client.http.client. The default value of this property is false. Refer to your HTTP server documentation for more information about support for persistent connections.plugin.maxTotalConnections The value of this property is ignored unless the bw.usePersistentConnectionManager This property specifies that a pool of HTTP connections to each HTTP server should be created so that connections can be reused by Send HTTP Request activities. The default value for this property is 20.

usePersistentConnectionManager property is set to true. This parameter specifies the time (in minutes) to allow database connections to remain idle before closing them. a connection can become stale. If the JDBC driver does not support connection timeouts. The default timeout for database connections is 5 minutes.plugin. Config. The value of this parameter can be either a host name or IP address.Available Custom Engine Properties 249 | bw.server. but it does improve reliability. bw.plugin. Checking for stale connections adds significant processing overhead. See the description of the Send HTTP Request activity in TIBCO BusinessWorks Palette Reference for more information. JDBC Properties This section describes custom engine properties that can be set for resources in the JDBC palette. the value of this field is ignored.engine.SetLoginTimeout Time (in seconds) to wait for a successful database connection. bw.plugin.deferClientAuthentication Defers client authentication and outputs the client’s security context when the client connects to the server using HTTPS.checkForStaleConnections The value of this property is ignored unless the bw. The value of this property overrides any value set for connection timeouts in the Configuration tab of the JDBC Connection resource.JDBC. bw.http.dbConnection.server. Only JDBC drivers that support connection timeouts can use this property. a persistent connection is checked to determine if it is stale before it is used by a Send HTTP Request activity. The default value for this property is false.plugin. When using persistent connections.http.idleTimeout Normally.defaultHost Specifies the name of the default host to use when the machine has multiple domains or IP addresses. connections in the database connection pool close after a period of time when they are idle.https.client.http.client. TIBCO BusinessWorks Process Design Guide .Connection. Most JDBC drivers should support connection timeouts. but you can set this property to the amount of time you would like to keep database connections open. When this property is set to true.

For example. if the polling interval is every 10 seconds. there will be only one retry. bw. then the Receive Mail process starter will attempt to receive the message for two minutes. and the retry count is set to 12.receiverRetryCount When a mail sender is in the process of sending a message. Setting this property to true allows the process engine to start and the JMS process starters will wait until the JMS sever is up before starting.jms. the JMS process starters cannot connect to the JMS server. bw. TIBCO BusinessWorks Process Design Guide .mail. The Receive Mail process starter attempts to receive the message during subsequent polls of the mail server. This typically occurs when sending large messages. if the polling interval is set to 30 seconds. there will be up to six retries. Mail Properties This section describes custom engine properties that can be set for the resources in the Mail palette.plugin. This property allows you to specify the number of times the Receive Mail process starter will attempt to receive the same message. the mail server may expose the message to the Receive Mail process starter. but indicate later that the message is unavailable. If the polling interval is set to 4 minutes.recoverOnStartupError When a process engine attempts to startup and the JMS server that JMS activities connect to is not up.250 | Appendix B Custom Engine Properties JMS Properties This section describes custom engine properties that can be set for resources in the JMS palette. The amount of time allotted for retries will be the value of this property multiplied by the polling interval. The number of retries within that three-minute limit depends upon the value of the polling interval. For example. By default. the process starter will attempt to receive the message for three minutes.plugin.

plugin. This property is set to false by default.2. Other activities pass an explicit null for null references. Therefore.plugin. the Java Code activity omits the value in its output. relying on the behavior of previous releases is not recommended for new projects. bw. the activity does attempt to encode the value supplied in this element.0. other activities did not behave in this way.client. This section lists properties that are included for backwards compatibility with projects created in previous versions. TIBCO BusinessWorks Process Design Guide . This causes a String value used as a null place holder when another activity attempts to read the null in its input. These properties are not intended for long-term use. bw. This caused files to be unusable when a file was taken from a MS Windows machine and put onto a VMS machine.stripLineFeedInPut to true to obtain the behavior of previous releases.http.urlEncodeQueryString As of release 5. functional behavior of TIBCO BusinessWorks changes.ftp. you can set the bw.explicitNull To indicate a null reference. The FTP Put activity no longer strips the \n.Available Custom Engine Properties 251 | Properties for Backwards Compatibility From time to time. While properties in this section can be used to revert to behavior of previous releases. This change may cause backward compatibility issues if you rely on the activity to perform the URL-encoding of the QueryString. If you rely on the behavior of previous releases.javaCode.plugin. the activity used URL encoding for the Query specified in the QueryString element. Prior to release 5. However. Therefore. It is now the user's responsibility to properly URL-encode the query specified in the QueryString. but setting it to true reverts to the behavior of previous releases. Functionality changes are usually introduced to improve the product or to correct erroneous behavior. and if you rely on this behavior in existing projects.plugin. there are properties that allow you to revert to the behavior of previous releases.2. bw. the QueryString input element of the Send HTTP Request activity is not automatically URL encoded.ftp.2.stripLineFeedInPut Prior to release 5. The properties in this section are intended to allow backward compatibility of legacy projects until the project can be corrected to accommodate the new behavior. use of these properties is not recommended for most circumstances. the FTP Put activity stripped the \n when \r\n was used for a new line in a file.0.

xml. If you wish to migrate a project without fixing this problem. an explicit null is set for a null reference.javaCode. the XPath function create-dateTime() returned a value that included a time zone. TIBCO BusinessWorks Process Design Guide .2 and 5.timezone In Release 2. there will be validation errors for any unspecified input elements for stored procedure parameters. com.5 to emit xsi:type attributes.252 | Appendix B Custom Engine Properties To preserve backward compatibility. you can do so by setting this property to true.useJavaMonth In previous releases.xpath. the JDBC Call Procedure activity created input elements that were optional for stored procedure parameters.1.2. These migrated projects cannot be executed until the errors are resolved (by using the Mapper Check and Repair button on the Input tab). the Timer process starter used the Java convention (0-11) for month numbers in its output. However. When this property is set to true.plugin.tibco.0.x).1.tibco. however.InputOptional In releases prior to 5.3.create-dateTime.0. the month is returned as a number between 1 and 12.explicitNull to true to cause the Java Code activity to behave in the same way as other activities. If you wish to maintain backward compatibility and not emit these attributes. Setting this property to false (the default value) omits the time zone from the function output (the same behavior as 5.x). Config. you can set the bw. If you rely on the behavior of previous releases. you must set this property to true. This property is set to false by default.0.no_xsi_type SOAP activities were enhanced in release 2.plugin. the expected convention for month numbers is 1-12.plugin.JDBC.CallProcedure. com.timer. When migrating a project from a previous release.x.2. This property controls whether the time zone is included in the output of the create-dateTime() function.has. the Java Code activity still behaves the same. In release 5.1. maintaining the behavior of the previous releases. bw. you can set this property to true to maintain compatibility with previous releases. the function was changed to omit the time zone. Setting this property to true causes the time zone to be included in the function output (the same behavior as 2.soap. In Release 5. Optional parameters have never been supported by this activity (see the Known Issues list under the JDBC Palette heading in TIBCO BusinessWorks Release Notes).

0. There was no mechanism to escape the specified delimiter character. TIBCO BusinessWorks Process Design Guide . ignore. The BOM is now stripped when it is encountered.ae.6.OutputUseNil Prior to release 5. Prior to release 2. java.4. This BOM is not necessary for UTF-8.property. the output element corresponding to that table value was not placed into the output schema for a JDBC Call Procedure activity. the File Reader activity’s output includes the BOM at the beginning of the data read from the file. This can result in mappings (optional to optional) that do not copy the xsi:nil attributes at runtime to the output elements. this property controls whether elements that are nil are contained in the output.schema.delimiters. Windows adds a Byte Order Mark (BOM) to the beginning of the file. Now fields can be surrounded in double quotes. delimiter-separated data was not treated in a standard way. In most cases.quotes Prior to Release 2. If you wish to retain the functionality of previous releases.DiscardUTF8BOM When a file is saved on a Windows platform using UTF-8 encoding.0. set the value of this property to true. To maintain the behavior of previous releases.CallProcedure.1. you can set this property to false.JDBC. CA". there was no way to have a field contain a comma as in "Fresno. if the output element was optional. if a value returned from a database table was null. if you chose a comma as the delimiter. For example. there was no way to have a field span multiple lines or include leading and trailing spaces. To disable this functionality. You may need to set this property to true if your process definition is expecting a file that contains the BOM. Set the property to false to achieve the behavior of previous releases. The element is now placed into the output schema and has "xsi:nil = true" to indicate the element is null.Available Custom Engine Properties 253 | Config.under. You should surround elements that can be nil with an if statement to determine whether to output the element.2.com. See the description of the Data Format shared configuration resource in TIBCO BusinessWorks Palette Reference for more information about the new semantics for parsing input text. when using the activities in the Parse palette.property. you will not need to set this property. java. and subsequently validation errors. Also. but it is valid.tibco.makeNillable Certain TIBCO ActiveEnterprise-based schema elements do not display as nillable in the Input mapping tab.

This is generally a better way to map this structure and ensures if the element in the source data has the xsi:nil attribute. Selecting the input mapping with an error and clicking the Mapper Check and repair button will display yellow warnings: “The input and this element are both nillable. it will be copied to the target element. the default setting for this property is true. In Release 5. If it is preferable to have empty elements emitted in this case. the Mapper Check and repair button can be used to update the mappings to copy xsi:nil attributes.254 | Appendix B Custom Engine Properties Setting this property to true causes mappings that meet the criteria to show warnings. which may cause new warnings to appear in existing projects. TIBCO BusinessWorks Process Design Guide .2. then the property can be set to false. Any new mapping done by drag-and-drop with the property set to true will have the “Optional and nillable” style mapping. set to copy-nil”. Typically. instead of the “optional to optional” style. Clicking OK changes the mappings to add the copy-of for the nil attribute (“Optional and nillable to optional and nillable”).1 and subsequent releases.

This appendix describes the microagent methods available for the TIBCO BusinessWorks process engine. However. page 256 TIBCO Hawk Microagent Methods.| 255 Appendix C TIBCO Hawk MicroAgent Methods TIBCO Administrator is the preferred monitoring and management application for TIBCO BusinessWorks. the process engine is instrumented with a TIBCO Hawk microagent that can be used to perform most administrative functions. Topics • • Enabling TIBCO Hawk. page 256 TIBCO BusinessWorks Process Design Guide .

Enabled property to true. You can enable instrumentation for a specific process definition with the Instrumentation. None TIBCO BusinessWorks Process Design Guide . Because of the performance implications. See Appendix B. GetExecInfo Description: Method Arguments: Retrieves the process engine execution information. If you are using non-default transport parameters for TIBCO Hawk. Enabling instrumentation can lead to significant performance degradation. on page 237 for more information about setting properties for process engines. certain instrumentation is disabled by default. To enable instrumentation for all processes. Hawk.Network. you must also set the Hawk. You should only enable instrumentation for brief periods while testing performance. TIBCO Hawk Microagent Methods This section describes the TIBCO Hawk microagent methods for the TIBCO BusinessWorks process engine.Daemon properties to the values for the transport you are using.256 | Appendix C TIBCO Hawk MicroAgent Methods Enabling TIBCO Hawk Before using the TIBCO Hawk with TIBCO BusinessWorks.<processName> property. Custom Engine Properties.Service. you must enable the TIBCO Hawk microagent in the process engine. This can only be set for deployed process engines. set the Hawk. To do this. Some microagent methods require memory and processor overhead for gathering statistics or for getting information on the current state of the process. Process engines in the test environment are not normally monitored and administered. and Hawk.* property. therefore TIBCO Hawk is not recommended for use in the testing environment. use the Instrumentation.

TIBCO Hawk Microagent Methods 257 | Output: The following table describes the output of this microagent method: Column Name Staus Description Engine status. TIBCO BusinessWorks Process Design Guide . Can be one of the following: • • • • Uptime Threads Version ACTIVE SUSPENDED STANDBY STOPPING Elapsed time (in milliseconds) since the process engine was started. Name of the process starter for the process. GetProcessDefinitions Description: Method Arguments: Output: Retrieves information about executing process definitions. Number of worker threads used by the process engine. Version of the process engine. Number of process instances created for this process definition. Number of times process instances have been suspended. None The following table describes the output of this microagent method: Column Name Name Starter Created Suspended Swapped Description Name of the process definition. Number of times process instances have been swapped to disk.

Elapsed clock time (in milliseconds) of the most recently completed process instance. Elapsed clock time (in milliseconds) of the process instance that has completed in the shortest amount of elapsed time. Number of process instances that have been successfully completed. Total execution time (in milliseconds) for all successfully completed process instances. Execution time (in milliseconds) of the process instance that has completed in the longest amount of execution time.258 | Appendix C TIBCO Hawk MicroAgent Methods Column Name Queued Aborted Completed Checkpointed TotalExecution AverageExecution TotalElapsed AverageElapsed MinElapsed Description Number of times process instances have been queued for execution. MaxElapsed MinExecution MaxExecution MostRecentExecutionTime MostRecentElapsedTime TIBCO BusinessWorks Process Design Guide . Number of times process instances have executed a checkpoint. Number of times process instances have been aborted. Total elapsed time (in milliseconds) for all successfully completed process instances. Execution time (in milliseconds) of the process instance that has completed in the shortest amount of execution time. Execution time (in milliseconds) of the most recently completed process instance. Average execution time (in milliseconds) for all successfully completed process instances. Elapsed clock time (in milliseconds) of the process instance that has completed in the longest amount of elapsed time. Average elapsed clock time (in milliseconds) for all successfully completed process instances.

com. The following table describes the arguments of this microagent method: Argument Name ProcessDefinition Description Name of the process definition.tibco. GetProcesses Description: Retrieves information about active process instances. If arguments are specified. Method Arguments: TIBCO BusinessWorks Process Design Guide . GetStaticActivityInfo Description: Retrieves design time activity information for all activities in a given process definition. for the type of the activity. Name of the process definition used by the process instance. Method Arguments: Output: The following table describes the output of this microagent method: Column Name Name Type Description Name of the activity as specified in TIBCO Designer.CallProcessActivity. The following table describes the arguments of this microagent method: Argument Name Id Name Description ID for the process instance.TIBCO Hawk Microagent Methods 259 | Column Name TimeSinceLastUpdate CountSinceReset Description Time (in milliseconds) since the statistics have been updated. For example.core. information for process instances that match the specified arguments is returned. Number of process instances that have completed since the last reset of the statistics.pe. A Java class name.

Name of the process starter that started this process instance. Name of the currently executing activity in the process instance. Custom ID for the process instance. Minimum time (in milliseconds) in elapsed clock time since the process instance started. All process instances started after the specified time will be retrieved. Name of the process definition for the sub-process. Name of the process definition used by the process instance. MinimumDuration MainProcessName Output: The following table describes the output of this microagent method: Column Name Id Name TrackingId CustomId Status StartTime Duration MainProcessName CurrentActivityName StarterName SubProcessName Description ID for the process instance. Tracking ID for the process instance. Status of the process. All process instances that have elapsed times greater than the specified minimum duration will be retrieved.260 | Appendix C TIBCO Hawk MicroAgent Methods Argument Name EarliestStartTime Description Earliest time (in milliseconds) at which the process instance started. Name of the main process definition. Time when the process instance started. Name of the main process definition. Elapsed clock time (in milliseconds) since the process instance started. TIBCO BusinessWorks Process Design Guide .

Name of the class that implements the activity. Name of the activity. Number of times the activity has been executed.. Total number of executions of the activity that have returned an error. not just the execution time for the call process activity itself. This includes waiting time for Sleep. The activity information is cumulative. DEAD. activities. Status code returned by most recent execution of this activity. Total clock time (in milliseconds) used by all executions of this activity. or ERROR. Call Process.TIBCO Hawk Microagent Methods 261 | GetActivities Description: Retrieves information about the activities that have been executed for a given process definition since the engine was started. Method Arguments: The following table describes the arguments of this microagent method: Argument Name ProcessDefinition Description Name of the process definition. and Wait For.. activities. This does not include waiting time for Sleep. Total clock time (in milliseconds) used by all executions of this activity. This can be either OK. A single activity name represents all executions of that activity. ExecutionTime ErrorCount LastReturnCode TIBCO BusinessWorks Process Design Guide ... and Wait For. The ExecutionTime computation for the Call Process Activity includes the sum of the execution times for all activities in the called process. Call Process. Output: The following table describes the output of this microagent method: Column Name ProcessDefName Name ActivityClass ExecutionCount ElapsedTime Description Name of the process definition. The min/max fields can be reset with the ResetActivityStats method.

Execution time (in milliseconds) of the activity execution that has completed in the longest amount of execution time. A comma-separated list of names of process definitions called by this activity. Execution time (in milliseconds) of the activity execution that has completed in the shortest amount of execution time. A single process starter name represents all executions of that process starter. Time (in milliseconds) since the statistics have been updated. Execution time (in milliseconds) of the most recently completed activity execution. Number of activity executions that have completed since the last reset of the statistics. Elapsed clock time (in milliseconds) of the most recently completed activity execution.262 | Appendix C TIBCO Hawk MicroAgent Methods Column Name Tracing MinElapsedTime Description True if tracing is enabled for this activity. false if tracing is disabled. TIBCO BusinessWorks Process Design Guide . Elapsed clock time (in milliseconds) of the activity execution that has completed in the shortest amount of elapsed time. The information is cumulative. MaxElapsedTime MinExecutionTime MaxExecutionTime MostRecentElapsedTime MostRecentExecutionTime TimeSinceLastUpdate CalledProcessDefs ExecutionCountSinceReset GetProcessStarters Description: Retrieves information about either active or inactive process starters. Elapsed clock time (in milliseconds) of the activity execution that has completed in the longest amount of elapsed time.

false if tracing is disabled. Output: The following table describes the output of this microagent method: Column Name ProcessDef Name Status Created CreationRate Running Completed StartTime Duration CheckpointedStart Tracing Description Name of the process definition. Name of the process starter. Number of process instances per hour created by this process starter. The status can be INACTIVE. TIBCO BusinessWorks Process Design Guide . ACTIVE.TIBCO Hawk Microagent Methods 263 | Method Arguments: The following table describes the arguments of this microagent method: Argument Name ActiveOrInactive Description Specify Active to retrieve information about process starters with the ACTIVE or READY status. Specify Inactive to retrieve information about process starters with the INACTIVE status. Number of process instances that have completed. True if tracing is enabled for this process starter. True if the process was restarted from a checkpoint. or READY. Number of process instances currently executing. Elapsed clock time since the process starter was started. Number of process instances created by this process starter. Time (in milliseconds) at which the process starter was started. Status of the process starter.

Tracking ID for the process instance. TrackingId ProcessDef State SuspendAll Description: Suspends all process starters and/or processes. exceptions for all process instances are returned. Process stack at exception. then the calling activity’s process stack plus a '>' separator character will be pre-pended to the normal information to produce the process stack of the activity issuing the exception. If the activity is in a called sub-process. Output: The following table describes the output of this microagent method: Column Name Seq Id Message StackTrace ExceptionClass ProcessStack Description Sequence number of the exception. Exception message. TIBCO BusinessWorks Process Design Guide . Exception stack trace. This displays the [ProcessName/GroupName/ActivityName] of the activity issuing the exception. If not specified. or if 0 is specified. ID for the process instance. with the most recent exception first. The following table describes the arguments of this microagent method: Argument Name Id Description ID for the process instance.264 | Appendix C TIBCO Hawk MicroAgent Methods GetProcessesExceptions Description: Method Arguments: Retrieves error information reported by the specified process. Name of the process definition. State of the process. Exception class name.

Output: None ResumeAll Description: Method Arguments: Resumes all process starters and/or processes. Can be one of the following: • • • ProcessDefinition AllProcessStarters — suspends all process starters. Can be one of the following: • • • ProcessDefinition AllProcessStarters — resumes all process starters. AllProcesses — suspends all processes. TIBCO BusinessWorks Process Design Guide . The following table describes the arguments of this microagent method: Argument Name Action Description Specifies what to resume. — resumes AllProcessStartersAndProcesses all processes and process starters. AllProcesses — resumes all processes.TIBCO Hawk Microagent Methods 265 | Method Arguments: The following table describes the arguments of this microagent method: Argument Name Action Description Specifies what to suspend. The name of the process definition. All process instances are stopped immediately and are permanently removed from the engine. AllProcessStartersAndProcesses — suspends all processes and process starters. The name of the process definition. Output: None KillAllProcesses Description: Kills all process instances.

266 | Appendix C TIBCO Hawk MicroAgent Methods Method Arguments: The following table describes the arguments of this microagent method: Argument Name ProcessDefinition Description The name of the process definition. Output: The following table describes the output of this microagent method: Column Name Status Description Status of the process instance after executing this operation. If unspecified. You can retrieve the process ID for a process instance by using the GetProcesses method. TIBCO BusinessWorks Process Design Guide . Output: None SuspendProcess Description: Method Arguments: Suspends the specified process instance. The following table describes the arguments of this microagent method: Argument Name ProcessNameOrId Description The name or process ID of the process instance you wish to resume. this action applies to all process definition. The following table describes the arguments of this microagent method: Argument Name ProcessNameOrId Description The name or process ID of the process instance you wish to suspend. Only process instances for the specified process definition are killed. ResumeProcess Description: Method Arguments: Resumes the specified process instance. You can retrieve the process ID for a process instance by using the GetProcesses method.

Method Arguments: Output: None SuspendProcessStarter Description: Method Arguments: Suspends the specified process starter.TIBCO Hawk Microagent Methods 267 | Output: The following table describes the output of this microagent method: Column Name Status Description Status of the process instance after executing this operation. TIBCO BusinessWorks Process Design Guide . Output: The following table describes the output of this microagent method: Column Name Status Description Status of the process starter after executing this operation. You can retrieve the process ID for a process instance by using the GetProcesses method. The process instance is stopped immediately and permanently removed from the engine. The following table describes the arguments of this microagent method: Argument Name ProcessNameOrId Description The name or process ID of the process instance you wish to kill. KillProcess Description: Kills the specified process instance. The following table describes the arguments of this microagent method: Argument Name ProcessDefinition Description Name of the process definition whose process starter you wish to suspend.

268

| Appendix C

TIBCO Hawk MicroAgent Methods

ResumeProcessStarter
Description: Method Arguments:

Resumes the specified process starter. The following table describes the arguments of this microagent method: Argument Name ProcessDefinition Description Name of the process definition whose process starter you wish to resume.

Output:

The following table describes the output of this microagent method: Column Name Status Description Status of the process starter after executing this operation.

ListTraceProperties
Description: Method Arguments: Output:

Returns the names and current values for all engine trace properties. None The following table describes the output of this microagent method: Column Name Property Description Lists the tracing properties and their values in the form:
<TracingPropertyName>=<CurrentValue>

SetTraceProperty
Description:

Sets the specified engine tracing property to the specified value. While you can set properties with this method, ConfigureActivityTracing, ConfigureProcessStarterTracing, and ConfigureUserDefinedTracing are simpler to use for setting trace properties. See Trace Properties on page 244 for more information about tracing properties.

TIBCO BusinessWorks Process Design Guide

TIBCO Hawk Microagent Methods 269

|

Method Arguments:

The following table describes the arguments of this microagent method: Argument Name Name Value Description Name of the tracing property you wish to set.
true

if you wish to enable the property. false if you wish to disable the property.

Output:

None

ListInstrumentProperties
Description: Method Arguments: Output:

Retrieves the current settings for all Instrumentation properties. None

The following table describes the output of this microagent method: Column Name Property Description Lists the Instrumentation properties that are currently set in the form:
<ProcessDefinitionName>=<CurrentValue>

SetInstrumentProperty
Description:

Sets the Instrumentation property for the specified process definition to a given value. The OnProcessActivity and OnProcessStateChanged methods will be called for the specified processes definition names. For example, use property name "*" and value "true" to enable those asynchronous methods for all process definitions. The property name does not need to begin with "Instrumentation.", but if it does, the leading "Instrumentation." will be ignored. See Enabling TIBCO Hawk on page 256 for more information about the Instrumentation property.

TIBCO BusinessWorks Process Design Guide

270

| Appendix C

TIBCO Hawk MicroAgent Methods

Method Arguments:

The following table describes the arguments of this microagent method: Argument Name Name Description Name of the process definition for which you wish to alter the Instrumentation property. Specify * for this argument if you wish to enable or disable instrumentation for all process definitions.
true

Value

if you wish to enable instrumentation for the given process definition. false if you wish to disable instrumentation for the given process definition.

Output:

None

ListAllRoles
Description:

Returns a list of all roles, along with the current state (enabled or disabled) of each role. None

Method Arguments: Output:

The following table describes the output of this microagent method: Column Name Role Enabled Description Name of the role. True if the role is enabled, false if the role is disabled.

ListUserDefinedRoles
Description:

Returns a list of user-defined roles, along with the current state (enabled or disabled) of each role. None

Method Arguments:

TIBCO BusinessWorks Process Design Guide

TIBCO Hawk Microagent Methods 271

|

Output:

The following table describes the output of this microagent method: Column Name Role Enabled Description Name of the role. True if the role is enabled, false if the role is disabled.

GetProcessCount
Description: Method Arguments: Output:

Returns the total number of running process instances. None

The following table describes the output of this microagent method: Column Name TotalRunningProcesses Description Total number of currently executing process instances.

GetMemoryUsage
Description: Method Arguments: Output:

Retrieves information about the process engine’s memory usage. None

The following table describes the output of this microagent method: Column Name TotalBytes FreeBytes UsedBytes PercentUsed Description Total number of bytes allocated to the process engine. Total number of bytes that are not currently in use. Total number of bytes that are currently in use. Percentage of total bytes that are in use.

TIBCO BusinessWorks Process Design Guide

272

| Appendix C

TIBCO Hawk MicroAgent Methods

stopApplicationInstance
Description:

Shuts down the process engine immediately. All checkpoint files are preserved and the engine's operating system process exits. None None

Method Arguments: Output:

DelayedStopApplicationInstance
Description:

Instructs all process starters to stop further job creation but stay active. The engine shuts down after all process instances have completed or the specified maximum delay has been reached. After shutdown, any remaining checkpoint files are preserved and the engine's operating system process exits. The following table describes the arguments of this microagent method: Argument Name MaxDelay WaitForCheckpoints Description Specifies the amount of time (in seconds) to wait before shutting down the process engine. When true is specified, the engine waits for any checkpointed process instances to complete before shutting down.

Method Arguments:

Output:

None

GetStatus
Description: Method Arguments: Output:

Retrieves basic status information about the engine. None The following table describes the output of this microagent method: Column Name InstanceID Description Name of this instance of the process engine.

TIBCO BusinessWorks Process Design Guide

TIBCO Hawk Microagent Methods 273

|

Column Name AdapterName Uptime NewErrors TotalErrors ProcessID Host

Description Name of the application. Number of seconds since this process engine was started. Total number of errors encountered since the last time this method was called. Total number of errors encountered since the process engine was started. Operating system process ID of the process engine. Name of the host machine on which the process engine is running.

OnProcessStatusChanged
Description:

This method is called when a process is suspended or resumed, and it is only called when instrumentation on. None

Method Arguments: Output:

The following table describes the output of this microagent method: Column Name ProcessId When Active TrackingID ProcessDef Description ID of the process instance. Date and time when the status of the process instance changed. Status of the process instance. True when the process instance is active, false when it is inactive. Tracking ID for the process instance. Process definition name.

TIBCO BusinessWorks Process Design Guide

Can be UNINITIALIZED. and it is only called when instrumentation is on.AMI. Name of the activity.274 | Appendix C TIBCO Hawk MicroAgent Methods OnProcessActivity Description: This method is called when a process executes an activity. INITIALIZING. This is set by the engine property Hawk. Application Name — TIBCO Hawk display name of the process engine. he following table describes the arguments of this microagent method: Argument Name Name Description Name of the property to return. None The following table describes the output of this microagent method: Column Name ProcessId ProcessDef ActivityName TrackID Description ID of the process instance. Method Arguments: Output: getHostInformation Description: Returns the value of the specified property on the host machine on which the process engine is running. STOPPING.DisplayName. RUNNING. Process definition name. or STOPPED Method Arguments: • TIBCO BusinessWorks Process Design Guide . ID of the execution track in which the activity was executed. Leave this argument blank to return all properties. Application State — state of the process engine. The following are the properties that can be returned: • • Application Instance — is the name of the project that is running in the process engine.

The class name is the Java implementation class' name. tracing is enabled for all activities. Value of the property. If false. If true. tracing will be disabled for all process starters. If true. If ActivityClass is specified. The following table describes the arguments of this microagent method: Argument Name EnableAllActivities EnableAllStarters Description If true. tracing will be disabled for all user-defined roles. this argument is optional. ConfigureAllTracing Description: Method Arguments: Controls tracing for all activities and process starters. If false. tracing is enabled for all process starters. If false. Activities can be specified by process definition and activity name or by class name.TIBCO Hawk Microagent Methods 275 | Output: The following table describes the output of this microagent method: Column Name Name Value Description Name of the property returned. Method Arguments: TIBCO BusinessWorks Process Design Guide . tracing will be disabled for all activities. Specifying * signifies all process definitions. The following table describes the arguments of this microagent method: Argument Name ProcessDefinition Description Name of the process definition for which you wish to configure tracing. EnableAllUserRoles Output: None ConfigureActivityTracing Description: Enables or disables tracing for specified activity. tracing is enabled for all user-defined roles.

If ActivityClass is specified. Process starters can be specified by name or class name. This argument is optional if you specify the ProcessStarter argument. This argument is optional if you specify the ProcessDefinition and Activity arguments. If StarterClass is specified. Method Arguments: StarterClass Enable Output: None TIBCO BusinessWorks Process Design Guide .276 | Appendix C TIBCO Hawk MicroAgent Methods Argument Name Activity Description Name of the activity for which you wish to configure tracing. Java implementation class name of the activity for which you wish to configure tracing. Java implementation class name of the process starter for which you wish to configure tracing. Specify true if you wish to enable tracing. The following table describes the arguments of this microagent method: Argument Name ProcessStarter Description Name of the process starter for which you wish to configure tracing. false if you wish to disable tracing. this argument is optional. The class name is the Java implementation class' name. ActivityClass Enable Output: None ConfigureProcessStarterTracing Description: Enables or disables tracing for specified process starter. Specifying * signifies all activities. Specifying * signifies all process starters. this argument is optional. Specify true if you wish to enable tracing. false if you wish to disable tracing.

Enable Output: None ConfigureRole Description: Method Arguments: Enables or disables tracing for the specified role. The following table describes the arguments of this microagent method: Argument Name Role Description Name of the user-defined role for which you wish to configure tracing. false if you wish to disable tracing. Specifying * signifies all user-defined roles. None Method Arguments: TIBCO BusinessWorks Process Design Guide . Specify true if you wish to enable tracing. Specifying * signifies all roles. Specify true if you wish to enable tracing. Output: None IsAllTracingEnabled Description: Reports whether tracing is enabled or disabled for all activities and process starters. If tracing is enabled for all activities and/or process starters by specifying a tracing parameter individually for each one. false if you wish to disable tracing.TIBCO Hawk Microagent Methods 277 | ConfigureUserDefinedTracing Description: Method Arguments: Enables or disables tracing for the specified user-defined role. The following table describes the arguments of this microagent method: Argument Name Role Enable Description Name of the role for which you wish to configure tracing. this method will return false. True is returned when tracing is enabled using a wildcard (*).

Name of the activity for which you wish to determine tracing status. IsActivityTracingEnabled Description: Reports whether tracing is enabled or disabled for the specified activity. If tracing is enabled for all process starters by way of a wildcard (*). TIBCO BusinessWorks Process Design Guide . Method Arguments: Output: The following table describes the arguments of this microagent method: Column Name Enabled Description true false if tracing is enabled for the specified activity. false when tracing is disabled for all process starters. this method returns false because tracing is not enabled for the activity specifically. ProcessStarterTracingEnabled true when tracing is enabled for all process starters.278 | Appendix C TIBCO Hawk MicroAgent Methods Output: The following table describes the output of this microagent method: Column Name ActivityTracingEnabled Description true when tracing is enabled for all activities. if tracing is disabled. The following table describes the arguments of this microagent method: Argument Name ProcessDefinition Activity Description Name of the process definition for which you wish to determine tracing status. false when tracing is disabled for all activities. IsProcessStarterTracingEnabled Description: Reports whether tracing is enabled or disabled for the specified process starter. this method returns false because tracing is not enabled for the process starter specifically. If tracing is enabled for all activities by way of a wildcard (*).

This method is for internal use only and should not be invoked. this method returns false because tracing is not enabled for the role specifically. if tracing is disabled.TIBCO Hawk Microagent Methods 279 | Method Arguments: The following table describes the arguments of this microagent method: Argument Name ProcessStarter Description Name of the process starter for which you wish to determine tracing status. Output: The following table describes the arguments of this microagent method: Column Name Enabled Description true if tracing is enabled for the specified process starter. Method Arguments: Output: The following table describes the arguments of this microagent method: Column Name Enabled Description true false if tracing is enabled for the specified role. ResetActivityStats Description: Resets the min and max time calculations for each activity in the specified process definition. If tracing is enabled for all roles by way of a wildcard (*). The following table describes the arguments of this microagent method: Argument Name Role Description Name of the role for which you wish to determine tracing status. IsRoleEnabled Description: Reports whether tracing is enabled or disabled for the specified role. TIBCO BusinessWorks Process Design Guide . false if tracing is disabled.

maximum. TIBCO BusinessWorks Process Design Guide . Method Arguments: Output: None. Output: None ResetProcessDefinitionStats Description: Resets the minimum. OnProcessAdded Description: This method is called whenever a process instance is added. None Method Arguments: Output: The following table describes the arguments of this microagent method: Column Name ProcessId Description Process ID of the process instance that was added. and it is only called if instrumentation is on. OnProcessRemoved Description: This method is called whenever a process instance is removed. and it is only called if instrumentation is on. See GetProcessDefinitions on page 257 for more information about process instance statistics. and average time statistics gathered for process instances.280 | Appendix C TIBCO Hawk MicroAgent Methods Method Arguments: The following table describes the arguments of this microagent method: Argument Name ProcessDefinition Description Name of the process definition. The following table describes the argument of this microagent method: Argument Name ProcessDefinition Description Name of the process definition whose statistics you wish to reset.

_onUnsolicitedMsg Description: Subscribing to this method returns any unsolicited notifications that are sent from the managed application corresponding to this microagent.TIBCO Hawk Microagent Methods 281 | Method Arguments: Output: None The following table describes the arguments of this microagent method: Column Name ProcessId Description Process ID of the process instance that was added. Invoking this method returns the last such message that was received (if any). None Method Arguments: TIBCO BusinessWorks Process Design Guide .

282 | Appendix C TIBCO Hawk MicroAgent Methods TIBCO BusinessWorks Process Design Guide .

200 breakpoints 201 icons 207 B breakpoints 201 icon when set 202 business processes 32 E edit custom palette 17 End activity 62 process error schemas 164 enforcing order of execution 196 enterprise computing 32 error handling 159 error propagation 162 no-action groups 79 overview 160 process error schemas 164 repeat on error until true group 86 errors 108 errors in mappings 108 evaluation context 149 TIBCO BusinessWorks Process Design Guide C Call Process activity 39 category mode 15 changing current selection 11 clearing breakpoints 201 colors used when testing process definitions 206 conditions 68 constants in XPath 114 creating . 193 database storage inter-process communication 195 debugging 199. adapter resources adding 26 addressing schema elements 148 groups 72 process definitions 40 transitions 67 creating custom palettes 17 creating projects 21 current selection 11 custom palettes 17 customer support xix D data sent across process instances 192.| 283 Index Symbols $_error process variable 160 A activities 36. 44 creating groups 72 End 62 Input tab icons 108 Start 60 stepping through when testing 205 ungrouping 73 adding adapter resources.

194 G Generate Error activity error propagation 162 process error schemas 164 groups 38. 72 creating 72 error propagation 163 loops 80 accumulate output 81 index variable 81 no action 79 ungroupping 73 L loops 80 accumulate output 81 index variable 81 iterate 82 repeat on error until true 86 repeat until true 84 M H handling errors 159 hints 108 main window 8 mapping addressing schema elements 148 Input tab icons 108 XPath operators and functions 153 mappings 108 multiple events resuming a running process instance 196 I icons test mode 207 incoming events key 49 scalability 197 timeout 49 index variable 81 Input tab icons 108 inter-process communication 191 database storage 195 examples 195 overview 192 timeout 194 iterate loop 82 TIBCO BusinessWorks Process Design Guide N no action groups 79 Notify activity 192 Notify Configuration shared configuration 193 O opening projects 25 .284 | Index examples inter-process communication 195 K key incoming event 49 used for inter-process communication 192.

Index 285 | P palette mode 15 palettes 11 closing 17 custom 17 preferences 15 process definitions 35 breakpoints 201 breakpoints for testing 201 conditions 68 creating 40 creating transitions 67 debugging 199. 200 grouping activities 72 handling errors 159 index variable in loops 81 new 36 process error schemas 164 process starters 58 propagating errors 162 scalability and incoming events 197 stepping through to test 205 subprocesses 39 test window 202 testing 200 ungroupping activities 73 process engines in operation 35 process instances communicating 192 enforcing order of execution 196 multiple events resumnig 196 when testing 203 process modeling 32 process starters 58 process variables $_error 160 processes 34 project templates 21 projects 9 adding adapter resources 26 opening 25 saving 23 propagation of errors 162 R Receive Notification activity 192 repeat on error until true loop 86 repeat until true loop 84 resources 10 unknown 11 S saving project as template 24 saving projects 23 scalability incoming events 197 schema elements 106 addressing 148 schemas process error schemas 164 search predicates in XPath expressions 150 semaphores 192 setting a breakpoint 202 setting breakpoints 201 setting which palettes display 17 shared configuration 38 specifying constants in XPath expressions 114 Start activity 60 subprocesses 39 starting process instances 58 starting TIBCO Designer 3 startup options 3 subprocesses 39 Call Process activity 39 error propagation 164 illustrated 40 support. contacting xix T technical support xix templates TIBCO BusinessWorks Process Design Guide .

66 conditions 68 creating 67 specifying constants 114 XSLT statements 108 U ungrouping 73 unknown resource 11 W Wait activity 192 waiting for incoming events 49 X XPath 147 basics 148 conditions 68 editor 151 evaluation context 149 example 153 operators and functions 153 search predicates 150 TIBCO BusinessWorks Process Design Guide .286 | Index project 21 project templates 24 test mode 199 testing process definitions 199. 200 breakpoint locations 201 colors in test mode 206 menus and toolbar icons 207 overview 200 process instances 203 stepping through activities 205 test window 202 TIBCO Designer roadmap 7 timeout incoming events 49 inter-process communication 194 transitions 37.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->