|
Contents
|
|
|
| |
|
Introduction
|
|
About This Guide
|
|
Assumptions
|
|
Conventions Used in This Guide
|
|
Viewing Documentation Online
|
| |
Chapter 1
|
Introduction to Process Builder
|
|
About Processes and Process Builder
|
|
What is a Process?
|
|
What is Process Builder?
|
|
Who Should Use Process Builder?
|
|
What is a Process Instance?
|
|
About Applications
|
|
Sample Applications
|
|
Creating an Application
|
|
Deploying an Application
|
|
Starting Process Builder
|
|
The preferences.ini File
|
|
Specifying a cluster
|
|
Specifying a corporate directory
|
|
Adding or Changing Local Application Folders
|
|
Starting Process Builder on Windows NT
|
|
Starting Process Builder on Solaris
|
|
Using Process Builder
|
|
Process Builder Applications
|
|
Application Tree View
|
|
Process Map
|
|
Map Palette
|
|
Activities Tab
|
|
Documentation Tab
|
|
Messages Window
|
|
Main Toolbar
|
|
Menu Commands
|
|
Application
|
|
Edit
|
|
Insert
|
|
Format
|
|
Window
|
|
Help
|
|
HTML Page Editor Toolbar
|
| |
Chapter 2
|
Planning an Application
|
|
Planning Overview
|
|
Planning the Process Map
|
|
Entry Points
|
|
User Activities
|
|
Automated Activities
|
|
Custom Activities
|
|
Subprocesses
|
|
Decision Points
|
|
Parallel Processing
|
|
Exit Points
|
|
Transitions
|
|
Notifications
|
|
Exceptions
|
|
Planning Assignments
|
|
Planning Groups and Roles
|
|
Planning for Monitoring
|
|
Planning Delegations
|
|
Determining the Data Requirements
|
|
File Attachments
|
|
Planning Forms
|
|
Planning Access to Forms
|
|
Planning Custom Scripts
|
|
Planning Searches
|
|
Planning Deployment
|
| |
Chapter 3
|
Creating an Application
|
|
Application Creation Overview
|
|
Getting Information from the Administrator
|
|
Creating a New Application
|
|
The New Application Dialog Box
|
|
Setting Application Properties
|
|
The Application Properties Dialog Box
|
|
Using Sample Applications
|
|
Applications and the Corporate Directory
|
|
Setting Your Corporate Directory
|
|
Deleting an Application
|
| |
Chapter 4
|
Designing a Process Map
|
|
Drawing the Process Map
|
|
Saving a Process Map to a File
|
|
Adding Items with the Palette
|
|
Deleting Items
|
|
Entry Points
|
|
User Activities
|
|
Setting Activity Expirations
|
|
Setting Activity Assignments
|
|
Using Parallel Approval
|
|
Parallel Approval Completion Script
|
|
Automated Activities
|
|
Subprocesses
|
|
Connecting the Parent and Child Process
|
|
Custom Activities
|
|
Using a Custom Activity
|
|
Custom Activity Inspector Window
|
|
Inspector Window After Setting a Custom Activity
|
|
Adding a Custom Palette
|
|
Exception Manager
|
|
Default Exception Manager
|
|
Creating an Exception Manager
|
|
Exception Manager Properties
|
|
Decision Points
|
|
Split-Join (Parallel Processing)
|
|
Properties of a Parallel Process
|
|
Adding a Parallel Process
|
|
Notifications
|
|
Notification Properties
|
|
Built-in Email Notification Scripts
|
|
Exit Points
|
|
Transitions
|
|
Types of Transitions
|
|
Adding a Transition
|
|
Transition Properties
|
|
Setting the Property for a Virtual Transition
|
|
Setting the Property for a Conditional Transition
|
|
Example Using a True/False Field
|
| |
Chapter 5
|
Defining Groups and Roles
|
|
Groups and Roles Overview
|
|
Default Groups and Roles
|
|
Creating Groups and Roles
|
|
The Create a New Role or Group Dialog Box
|
|
Types of Groups and Roles
|
|
Adding a New Group or Role
|
|
The Application Group Dialog Box
|
|
The Corporate Group Dialog Box
|
|
The Dynamic Group Dialog Box
|
|
The Field Role Dialog Box
|
|
Prioritizing Groups and Roles
|
|
Deleting Groups and Roles
|
| |
Chapter 6
|
Defining Data Fields
|
|
Data Field Overview
|
|
Creating a Data Field
|
|
The Create a New Data Field Dialog Box
|
|
Creating a Custom Data Field
|
|
Creating a Predefined Data Field
|
|
Adding a Data Field
|
|
Setting Field Properties
|
|
Custom Data Fields with Predefined Class IDs
|
|
CheckBox
|
|
Computed
|
|
Date
|
|
DateTime
|
|
Digital Signature
|
|
File Attachment
|
|
Usage Tips for File Attachments
|
|
File Attachment Properties
|
|
Java Applet
|
|
Java Bean
|
|
Password
|
|
Radio Buttons
|
|
Select List
|
|
TextArea
|
|
TextField
|
|
URL
|
|
UserPicker Widget
|
|
Custom Data Fields with Your Own Class ID
|
|
Predefined Data Fields
|
|
Address
|
|
Name
|
|
Telephone
|
|
Deleting Data Fields
|
|
Setting Up the Content Store
|
|
The Content Store Inspector Window
|
|
Troubleshooting the Content Store
|
| |
Chapter 7
|
Designing Forms
|
|
Planning Forms
|
|
Creating Forms
|
|
Modifying Forms
|
|
Using Process Builder's Form Editor
|
|
Using an External Editor
|
|
Using the HTML Page Editor Toolbar
|
|
Using the Edit, Insert and Format Menus
|
|
Edit
|
|
Insert HTML Element
|
|
Format
|
|
Using Right-Mouse-Button Menu Commands
|
|
Changing Field Properties for a Form
|
|
Hints for Setting Field Properties
|
|
Accessing the Data Dictionary
|
|
Using Scripts to Validate User Input
|
|
Adding a Banner to Forms
|
|
Setting Access to Forms
|
|
Forms for Assignees
|
|
Forms for Monitoring the Process
|
|
Forms for the Administrator
|
|
Setting Access to an Entry Point
|
| |
Chapter 8
|
Using Scripts
|
|
Overview of Scripts
|
|
Kinds of Scripts
|
|
When to Use Scripts
|
|
About Writing Scripts
|
|
Predefined Scripts
|
|
Assignment Scripts
|
|
Completion Scripts
|
|
Email Notification Scripts
|
|
defaultNotificationHeader()
|
|
defaultNotificationSubject()
|
|
emailByDN(DN)
|
|
emailById(userId)
|
|
emailOfAssignees()
|
|
emailOfCreator()
|
|
emailOfRole(role)
|
|
Initialization and Shutdown Scripts
|
|
Creating Scripts
|
|
The Script Editor Window
|
|
Setting a Script as a Template
|
|
Using Client-side Scripts
|
| |
Chapter 9
|
Setting Up Searching
|
|
Types of Searching
|
|
Global Searching
|
|
Application-Specific Searching
|
|
Enabling Searching
|
|
Allowing a Group to Search
|
|
Setting Up Forms
|
|
Allowing Searching for Fields
|
| |
Chapter 10
|
Deploying an Application
|
|
Before You Deploy
|
|
Set up and Configure PAE
|
|
Deploy Subprocesses First
|
|
Save the Process Map, If Desired
|
|
Fix Application Errors
|
|
Steps for Deploying an Application
|
|
The Deploy Application Dialog Box
|
|
Revising a Deployed Application
|
|
Summary of Allowed Revisions
|
|
Changes to Activities and Transitions
|
|
Changes to Data Elements
|
|
Changes to Forms, Scripts, and Content Store
|
|
Deployed Applications Compared with Local Copies
|
|
Using a Backup of a Local Application
|
|
Saving a Local Application to Another Name
|
|
Redeploying an Application
|
| |
Chapter 11
|
The Data Sheet Application
|
|
Data Sheet Application Overview
|
|
Data Sheet Process Map
|
|
Data Sheet Walkthrough
|
|
The Data Sheet Entry Point
|
|
The Title Field
|
|
Add Art Activity
|
|
Assignment Script
|
|
Expiration Setter Script
|
|
The Forms
|
|
The Automated Activity
|
|
The Approve Pricing (Product Manager) Activity
|
|
Assignment Script
|
|
Forms
|
|
Notification
|
|
The VP Approval Decision Point
|
|
The Approve Price (VP) Activity
|
|
Assignment Script
|
|
Forms
|
|
Exit Points
|
|
Groups and Roles
|
|
Data Dictionary
|
|
Forms
|
|
Script Dictionary
|
|
The buildDS Script
|
|
The lookupCode Script
|
|
The buildDataSheet Script
|
|
The computeTitle Script
|
|
Content Store
|
|
Finished Data Sheet Example
|
|
The description.txt File
|
|
The image.gif File
|
|
The printer.html Template File
|
|
The Finished Data Sheet
|
|
Configuring the Data Sheet Application
|
|
Configuration Hints
|
|
How Users Access the Data Sheet
|
|
Process Express and Netscape Application Server
|
|
Adding an Email Attribute for a User
|
|
Using File Attachments and Content Stores
|
|
Step 1: Administer the Enterprise Server
|
|
Step 2: Edit the Access Control List
|
|
Step 3: Assign the Content Store's Style
|
|
Step 4: Set the Values for the Application's Content Store
|
| |
Chapter 12
|
The Office Setup Application
|
|
Office Setup Application Overview
|
|
Office Setup Process Map
|
|
Office Setup Walkthrough
|
|
Start Entry Point
|
|
Assign Office and Specify Computer Work Item
|
|
Basic Setup Split
|
|
Set Up Phone Work Item
|
|
Install Network Connection Work Item
|
|
Order Computer Work Item
|
|
Install Computer Work Item
|
|
Basic Setup Join
|
|
CheckSetup Work Item
|
|
Setup Complete Exit Point
|
|
The Office Setup Groups
|
|
Data Dictionary
|
|
Form Dictionary
|
|
Script Dictionary
|
|
Completion Scripts
|
|
setRequesterField
|
|
verifySetup
|
|
Toolkit Scripts
|
|
buildExitNotification
|
|
Embedded Client-Side Script
|
|
Customizing the Appearance of the Forms
|
|
Configuring the Office Setup Application
|
| |
Chapter 13
|
The Loan Management and Credit History Applications
|
|
Loan Management Application Overview
|
|
Credit History Application Overview
|
|
Loan Management Process Map
|
|
Credit History Process Map
|
|
Loan Management and Credit History Walkthrough
|
|
New Loan Request Entry Point
|
|
Verification Work Item
|
|
Check Credit History Subprocess
|
|
Check Credit History Subprocess Properties
|
|
Data Mapping
|
|
Completion Script
|
|
The Subprocess Failed Exception Manager
|
|
Credit History Application as a Subprocess
|
|
Check Authorization Work Item
|
|
LookUp Credit History Automated Activity
|
|
Canceled Exit Point
|
|
OK Exit Point
|
|
Meeting Work Item (Parent Process)
|
|
Loan Refused Exit Point
|
|
Loan Approved Exit Point
|
|
Groups and Roles
|
|
Data Dictionary
|
|
Loan Management Script Dictionary
|
|
storeCreditInformation Completion Script
|
|
CustomerId Toolkit Script
|
|
Credit History Script Dictionary
|
|
LookUpCreditHistory Automation Script
|
|
Configuring the Loan Management Application
|
|
Configuring the Credit History Application
|
| |
Chapter 14
|
The Insurance Claim Processing Application
|
|
Application Overview
|
|
Process Map
|
|
Entry Point
|
|
Activities
|
|
Custom Activities
|
|
Look Up Details
|
|
Update Log
|
|
Log Denial
|
|
Decision Point
|
|
Parallel Process
|
|
Exit Points
|
|
Notification
|
|
Application Walkthrough
|
|
The Entry Point (Enter Policy No.)
|
|
Custom Activity (Look Up Details)
|
|
Activity (Policy Details)
|
|
Activity (Re-enter Policy No.)
|
|
Activity (Enter Claim Details)
|
|
Activity (Confirmation)
|
|
Activity (Approver)
|
|
Activity (Clarification)
|
|
Activity (Inform Customer)
|
|
Parallel Activity
|
|
Activity (Send Check)
|
|
Custom Activity (Update Log)
|
|
Groups and Roles
|
|
Group and Role Priorities
|
|
Data Dictionary
|
|
Forms
|
|
Entry.html
|
|
Resubmit.html
|
|
Details.html
|
|
EnterClaim.html
|
|
Confirmation.html
|
|
Approver.html
|
|
Clarify.html
|
|
InfCustomer.html
|
|
SendCheck.html
|
|
ClaimApproved.html
|
|
ClaimDenied.html
|
|
ExpirationExit.html
|
|
Script Dictionary
|
|
Expiration Scripts
|
|
Script at Policy Details Activity
|
|
Script at Enter Claim Details Activity
|
|
Script at Confirmation
|
|
Script at Resubmit Policy No.
|
|
Completion Scripts
|
|
Completion Script at Policy Details Activity
|
|
Completion Script at Enter Claim Details Activity
|
|
Required Files
|
|
The database.xml File
|
|
The Policy.log File
|
|
The Banner Image
|
|
The Background Image
|
|
Configuring the Insurance Claim Processing Application
|
|
Custom Activity Code
|
|
The LogPerformer Activity
|
|
The LogdenialPerformer Activity
|
|
The LookupPerformer Activity
|
|
Code Walkthrough for LookupPerformer.java
|
|
Definitions and Packages
|
|
The init, perform, and destroy Methods
|
|
The GetPolicy Method
|
| |
Chapter 15
|
Advanced Techniques for Scripting
|
|
Introduction
|
|
Getting Information about the Current Process
|
|
Getting and Setting Data Field Values
|
|
Getting Data Field Values in Decision Point and Automation Script Transitions
|
|
Getting Information about Users and their Attributes
|
|
Finding Users and Accessing their Attributes
|
|
Modifying User Attributes
|
|
Verifying an Array of User DNs
|
|
Adding and Deleting Users
|
|
Accessing the Content Store
|
|
Example of Accessing a Stored Item
|
|
Storing Files in the Content Store
|
|
Logging Error and Informational Messages
|
|
Verifying Form Input
|
|
Verifying Form Input with Client-Side JavaScript
|
|
Event Handler Example
|
|
onSubmitForm Example
|
|
Verifying Form Data in Completion Scripts
|
|
Initializing and Shutting Down Applications
|
|
Debugging Hints
|
|
Undefined Items
|
|
Adding Helpful Messages to Script Failure Dialog Boxes
|
|
Displaying the Progress of a Script
|
|
Testing Expiration Setter and Handler Scripts
|
|
Sample Scripts
|
|
Assignment Script
|
|
Expiration Setter Script
|
|
Expiration Handler Script
|
|
Completion Script
|
|
Automation Script
|
| |
Chapter 16
|
Scripting with EJB Components
|
|
Calling EJB Components from JavaScript
|
|
A Sample Script
|
|
Handling Exceptions
|
|
Data Conversion Issues
|
| |
Chapter 17
|
Writing Custom Activities
|
|
Introduction
|
|
Comparison to Automated Activities
|
|
Usage Overview
|
|
Implementing ISimpleWorkPerformer
|
|
Methods of ISimpleWorkPerformer
|
|
The init( ) method
|
|
The perform( ) method
|
|
The destroy( ) method
|
|
Sample Java Class
|
|
Creating HelloWorldPerformer.java
|
|
Writing the XML Description File
|
|
File Format
|
|
WORKPERFORMER Tag
|
|
ENVIRONMENT Section
|
|
INPUT Section
|
|
OUTPUT Section
|
|
PARAMETER Tag
|
|
DESIGN Section
|
|
Sample XML Description File
|
|
Packaging a Custom Activity
|
|
Adding a Custom Activity to the Process Map
|
|
Adding a Custom Activity from a Custom Palette
|
|
Adding a Custom Activity without Using a Custom Palette
|
|
Working with a Custom Activity
|
|
Implementation Tips
|
|
Avoid Instance Data
|
|
Use Consistent Data Types
|
|
Avoid Non-default Constructors
|
|
When to Use a Custom Activity
|
| |
Chapter 18
|
Writing Custom Fields
|
|
Introduction
|
|
Why Use a Custom Field?
|
|
Functional View of a Custom Field
|
|
Steps for Creating a Custom Field
|
|
Defining Field Properties in a JSB File
|
|
JSB_DESCRIPTOR Tag
|
|
JSB_PROPERTY Tag
|
|
JSB_PROPERTY Attributes
|
|
Required Data Field Properties
|
|
Writing the Java Classes
|
|
Consider the Design Issues
|
|
Consider Your Data and Data Sources
|
|
Design a Data Manager
|
|
Design a Thread-safe Class
|
|
Use an Entity Key
|
|
Implement IPresentationElement and IDataElement
|
|
Displaying a Work Item
|
|
Initiating a Process Instance
|
|
Completing a Work Item
|
|
Accessing a Custom Field from a Script
|
|
Packaging a Custom Field
|
|
Adding a Custom Field to an Application
|
|
Method Reference
|
|
IPresentationElement Interface
|
|
display()
|
|
update()
|
|
IDataElement Interface
|
|
create()
|
|
store()
|
|
load()
|
|
archive()
|
|
BasicCustomField Class
|
|
loadDataElementProperties()
|
|
IPMElement Interface
|
|
getName()
|
|
getPrettyName()
|
| |
Appendix A
|
JavaScript API Reference
|
|
ProcessInstance
|
|
getConclusion()
|
|
getCreationDate()
|
|
getCreatorDN()
|
|
getCreatorUser()
|
|
getData (fieldName)
|
|
getEntryNodeName()
|
|
getExitNodeName()
|
|
getInstanceId ()
|
|
getPriority()
|
|
getRoleDN(roleName)
|
|
getRoleUser(roleName)
|
|
getTitle()
|
|
setData (fieldName, fieldValue)
|
|
setPriority(value)
|
|
setRoleByDN(roleName, userDN)
|
|
setRoleById(roleName, userId)
|
|
setTitle(title)
|
|
WorkItem
|
|
assignTo(assigneeDnArray)
|
|
expire()
|
|
extend(newDate)
|
|
getAssigneesDN()
|
|
getCreationDate()
|
|
getCurrentActivityCN()
|
|
getExpirationDate()
|
|
hasExpired()
|
|
isStateActive()
|
|
isStateRunning()
|
|
isStateSuspended()
|
|
moveTo(activityName)
|
|
resume()
|
|
setExpirationDate(expDate)
|
|
suspend()
|
|
ContentStore
|
|
copy(srcURL, dstURL)
|
|
download(url, file)
|
|
exists(url)
|
|
getBaseURL()
|
|
getBaseURL(path)
|
|
getBaseURL(path, instanceid)
|
|
getContent (url)
|
|
getException(result_string)
|
|
getRootURL ()
|
|
getSize(url)
|
|
getStatus(result)
|
|
getVersion()
|
|
initialize(url)
|
|
isException(exception)
|
|
list(url)
|
|
mkdir (URLString)
|
|
move (String URLString1, String URLString2)
|
|
remove(url)
|
|
rmdir(url)
|
|
store (content, url)
|
|
upload(file, url)
|
|
CorporateDirectory
|
|
addUser (userDN, attributes, objectClasses)
|
|
deleteUserByCN(userCN)
|
|
deleteUserByDN(userDN)
|
|
deleteUserById(uid)
|
|
getUserByCN(userCN)
|
|
getUserByDN (userDN)
|
|
getUserById (uid)
|
|
modifyUserByCN (userCN, attrName, attrValue, operation)
|
|
modifyUserByDN (userDN, attrName, attrValue, operation)
|
|
modifyUserById (userID)
|
|
User
|
|
getUserId()
|
|
getDN()
|
|
Logging and Error Handling Global Functions
|
|
logErrorMsg (label, context)
|
|
logHistoryMsg (label, comment)
|
|
logInfoMsg(label, context)
|
|
logSecurityMsg (label, context)
|
|
setErrorMsg (errMessage)
|
|
Assignment, Completion, and Email Scripts
|
|
checkParallelApproval (dataField, stopAction)
|
|
defaultNotificationHeader()
|
|
defaultNotificationSubject()
|
|
emailByDN(DN)
|
|
emailById(userId)
|
|
emailOfAssignees()
|
|
emailOfCreator()
|
|
emailOfRole(roleName)
|
|
randomToGroup(groupName)
|
|
toCreator()
|
|
toGroup(groupName)
|
|
toManagerOf (userId)
|
|
toManagerOfCreator()
|
|
toManagerOfRole(role)
|
|
toParallelApproval(arrayOfUserDNs, dataField)
|
|
toUserById(userId)
|
|
toUserFromField(dataField)
|
|
Miscellaneous Global Functions
|
|
checkUserDNs(arrayOfUserDNs)
|
|
ejbLookup(jndiName)
|
|
evaluateTemplate(templateName)
|
|
expireIn(val, unit)
|
|
getAction()
|
|
getApplicationName()
|
|
getApplicationPath()
|
|
getApplicationPrettyName()
|
|
getBaseForFileName (processId)
|
|
getConnector(connectorKey)
|
|
getContentStore ()
|
|
getContentStore(httpURL,user,password)
|
|
getCreatorUserId ()
|
|
getCorporateDirectory ()
|
|
__getIncludePath ()
|
|
getJndiNamingContext()
|
|
getProcessInstance ()
|
|
getSubProcessInstance ()
|
|
getWorkItem ()
|
|
__includeFile (fileName)
|
|
mapTo(fieldName)
|
|
mount(jndiName)
|
|
setConnector(connKey, connObject)
|
|
__setIncludePath (includePath)
|
|
setRedirectionURL(stringURL)
|
|
url_OnDisplayHistory()
|
|
url_OnDisplayProcessInstance()
|
|
url_OnDisplayWorkItem()
|
|
url_OnDisplayWorklist()
|
|
url_OnListApplications()
|
|
url_OnListEntryNodes()
|
|
Alphabetical Summary of JavaScript Objects
|
| |
Appendix B
|
Migrating from Previous Releases
|
|
Getting Started
|
|
Importing an Application to Process Builder
|
|
Assigning Exception Nodes
|
|
Checking for Errors
|
|
Deploying the Application
|
|
Migrating SSJS-specific Objects
|
|
Migrating Custom Fields
|
| |
Appendix C
|
Reserved Words
|
|
Glossary
|
|
Index
|
|
|