JBoss.orgCommunity Documentation

jBPM Reference Guide

Guide to using and developing with jBPM 3

Abstract

This is the User Guide for jBPM 3. jBPM is a flexible Business Process Management (BPM) Suite that bridges the gap between non-technical business users and developers by offering both BPM and workflow features.


1. Introduction
1.1. Overview
1.2. The jPDL Suite
1.3. The jPDL Graphical Process Designer
1.4. The jBPM Console Web Application
1.5. The jBPM Core Library
1.6. The Identity Component
1.7. The JBoss jBPM Job Executor
1.8. Conclusion
2. Getting started
2.1. Downloading and installing jBPM
2.2. The JBoss jBPM cummunity page
3. Tutorial
3.1. "Hello World" Example
3.2. Database Example
3.3. Contextual Example: Process Variables
3.4. Task Assignment Example
3.5. Example of a Custom Action
4. Deployment
4.1. jBPM libraries
4.2. Java runtime environment
4.3. Third party libraries
4.4. Deployment in JBoss
4.4.1. The jbpm directory
4.4.2. The enterprise bundle
4.4.3. Configuring the logs in the suite server
4.4.4. Debugging a process in the suite
5. Configuration
5.1. Customizing Factories
5.2. Configuration Properties
5.3. Other Configuration Files
5.4. Logging Optimistic Concurrency Exceptions
5.5. Object Factory
6. Persistence
6.1. The Persistence Application Programming Interface
6.1.1. Relationship with the Configuration Framework
6.1.2. Convenience Methods on JbpmContext
6.2. Configuring the Persistence Service
6.2.1. The DbPersistenceServiceFactory
6.2.2. Hibernate Transactions
6.2.3. JTA Transactions
6.2.4. Customizing Queries
6.2.5. Database Compatibility
7. The jBPM Database
7.1. Switching the Database Backend
7.1.1. Isolation level
7.1.2. Installing the PostgreSQL Database Manager
7.1.3. Installing the MySQL Database Manager
7.1.4. Creating the JBoss jBPM Database with your new PostgreSQL or MySQL
7.1.5. Last Steps
7.1.6. Update the JBoss jBPM Server Configuration
7.2. Database upgrades
7.3. Starting hsqldb manager on JBoss
8. Java EE Application Server Facilities
8.1. Enterprise Beans
8.2. jBPM Enterprise Configuration
8.3. Hibernate Enterprise Configuration
8.4. Client Components
8.5. Conclusion
9. Process Modeling
9.1. Some Helpful Definitions
9.2. Process Graph
9.3. Nodes
9.3.1. Node Responsibilities
9.3.2. Node Type: Task Node
9.3.3. Node Type: State
9.3.4. Node Type: Decision
9.3.5. Node Type: Fork
9.3.6. Node Type: Join
9.3.7. Node Type: Node
9.4. Transitions
9.5. Actions
9.5.1. Action References
9.5.2. Events
9.5.3. Passing On Events
9.5.4. Scripts
9.5.5. Custom Events
9.6. Super-States
9.6.1. Super-State Transitions
9.6.2. Super-State Events
9.6.3. Hierarchical Names
9.7. Exception Handling
9.8. Process Composition
9.9. Custom Node Behavior
9.10. Graph Execution
9.11. Transaction Demarcation
10. The Context
10.1. Accessing Process Variables
10.2. Lifes of Variables
10.3. Variable Persistence
10.4. Variable Scopes
10.4.1. Variable Overloading
10.4.2. Variable Over-Riding
10.4.3. Task Instance Variable Scope
10.5. Transient Variables
11. Task Management
11.1. Tasks
11.2. Task Instances
11.2.1. Task Instance Life-Cycle
11.2.2. Task Instances and Graph Executions
11.3. Assignment
11.3.1. Assignment Interfaces
11.3.2. The Assignment Data Model
11.3.3. The Personal Task List
11.3.4. The Group Task List
11.4. Task Instance Variables
11.5. Task Controllers
11.6. Swimlanes
11.7. Swimlane in Start Task
11.8. Task Events
11.9. Task Timers
11.10. Customizing Task Instances
11.11. The Identity Component
11.11.1. The identity model
11.11.2. Assignment expressions
11.11.3. Removing the identity component
12. Scheduler
12.1. Timers
12.2. Scheduler Deployment
13. Asynchronous Continuations
13.1. The Concept
13.2. An Example
13.3. The Job Executor
13.4. jBPM's built-in asynchronous messaging
14. Business Calendar
14.1. Due Date
14.1.1. Duration
14.1.2. Base Date
14.1.3. Due Date Examples
14.2. Calendar Configuration
14.3. Examples
15. Email Support
15.1. Mail in JPDL
15.1.1. Mail Action
15.1.2. Mail Node
15.1.3. "Task Assigned" Email
15.1.4. "Task Reminder" Email
15.2. Expressions in Mail
15.3. Specifying Email Recipients
15.3.1. Multiple Recipients
15.3.2. Sending Email to a BCC Address
15.3.3. Address Resolving
15.4. Email Templates
15.5. Mail Server Configuration
15.6. Email Authentication
15.6.1. Email authentication configuration
15.6.2. Email authentication logic
15.7. "From" Address Configuration
15.8. Customizing Email Support
16. Logging
16.1. Log Creation
16.2. Log Configurations
16.3. Log Retrieval
17. jBPM Process Definition Language
17.1. Process Archive
17.1.1. Deploying a Process Archive
17.1.2. Process Versioning
17.1.3. Changing Deployed Process Definitions
17.1.4. Migrating Process Instances
17.2. Delegation
17.2.1. jBPM Class Loader
17.2.2. Process Class Loader
17.2.3. Configuring Delegations
17.3. Expressions
17.4. jPDL XML Schema
17.4.1. Validation
17.4.2. process-definition
17.4.3. node
17.4.4. common node elements
17.4.5. start-state
17.4.6. end-state
17.4.7. state
17.4.8. task-node
17.4.9. process-state
17.4.10. super-state
17.4.11. fork
17.4.12. join
17.4.13. decision
17.4.14. mail
17.4.15. event
17.4.16. transition
17.4.17. action
17.4.18. script
17.4.19. expression
17.4.20. variable
17.4.21. handler
17.4.22. timer
17.4.23. create-timer
17.4.24. cancel-timer
17.4.25. task
17.4.26. mail
17.4.27. swimlane
17.4.28. assignment
17.4.29. controller
17.4.30. sub-process
17.4.31. condition
17.4.32. exception-handler
18. Security
18.1. Todos
18.2. Authentication
18.3. Authorization
19. Test Driven Development for Workflow
19.1. Introducing Test Driven Development for Workflow
19.2. XML Sources
19.2.1. Parsing a Process Archive
19.2.2. Parsing an XML File
19.2.3. Parsing an XML String
19.3. Testing sub processes
20. Pluggable architecture
A. GNU Lesser General Public License version 3
B. Revision History