JBoss jBPM - Workflow in Java

jBPM jPDL User Guide

3.2.7


Table of Contents

1. Introduction
Overview
The jPDL suite
The jPDL graphical process designer
The jBPM console web application
The jBPM core library
The JBoss jBPM identity component
The JBoss jBPM Job Executor
2. Getting started
Downloading and installing jBPM
The JBoss jBPM cummunity page
3. Tutorial
Hello World example
Database example
Context example: process variables
Task assignment example
Custom action example
4. Deployment
jBPM libraries
Java runtime environment
Third party libraries
Deployment in JBoss
The jbpm directory
The enterprise bundle
Configuring the logs in the suite server
Debugging a process in the suite
5. Configuration
Customizing factories
Configuration properties
Other configuration files
Hibernate cfg xml file
Hibernate queries configuration file
Node types configuration file
Action types configuration file
Business calendar configuration file
Variable mapping configuration file
Converter configuration file
Default modules configuration file
Process archive parsers configuration file
Logging of optimistic concurrency exceptions
Object factory
6. Persistence
The persistence API
Relation to the configuration framework
Convenience methods on JbpmContext
Managed transactions
Injecting the hibernate session
Injecting resources programmatically
Advanced API usage
Configuring the persistence service
The DbPersistenceServiceFactory
The hibernate session factory
Configuring a c3po connection pool
Configuring a ehcache cache provider
Hibernate transactions
JTA transactions
Customizing queries
Database compatibility
Isolation level of the JDBC connection
Changing the jBPM DB
The jBPM DB schema
Combining your hibernate classes
Customizing the jBPM hibernate mapping files
Second level cache
7. The jBPM Database
Switching the Database Backend
Isolation level
Installing the PostgreSQL Database Manager
Installing the MySQL Database Manager
Creating the JBoss jBPM Database with your new PostGreSQL or MySQL
Last Steps
Update the JBoss jBPM Server Configuration
Database upgrades
Starting hsqldb manager on JBoss
8. Java EE Application Server Facilities
Enterprise Beans
jBPM Enterprise Configuration
Hibernate Enterprise Configuration
Client Components
9. Process Modelling
Overview
Process graph
Nodes
Node responsibilities
Nodetype task-node
Nodetype state
Nodetype decision
Nodetype fork
Nodetype join
Nodetype node
Transitions
Actions
Action configuration
Action references
Events
Event propagation
Script
Custom events
Superstates
Superstate transitions
Superstate events
Hierarchical names
Exception handling
Process composition
Custom node behaviour
Graph execution
Transaction demarcation
10. Context
Accessing variables
Variable lifetime
Variable persistence
Variables scopes
Variables overloading
Variables overriding
Task instance variable scope
Transient variables
Customizing variable persistence
11. Task management
Tasks
Task instances
Task instance lifecycle
Task instances and graph execution
Assignment
Assignment interfaces
The assignment data model
The personal task list
The group task list
Task instance variables
Task controllers
Swimlanes
Swimlane in start task
Task events
Task timers
Customizing task instances
The identity component
The identity model
Assignment expressions
Removing the identity component
12. Scheduler
Timers
Scheduler deployment
13. Asynchronous continuations
The concept
An example
The job executor
jBPM's built-in asynchronous messaging
14. Business calendar
Duedate
Duration
Base date
Examples
Calendar configuration
15. Email support
Mail in jPDL
Mail action
Mail node
Task assign mails
Task reminder mails
Expressions in mails
Specifying mail recipients
Multiple recipients
Sending Mails to a BCC target
Address resolving
Mail templates
Mail server configuration
From address configuration
Customizing mail support
Mail server
16. Logging
Creation of logs
Log configurations
Log retrieval
Database warehousing
17. jBPM Process Definition Language (JPDL)
The process archive
Deploying a process archive
Process versioning
Changing deployed process definitions
Migrating process instances
Delegation
The jBPM class loader
The process class loader
Configuration of delegations
Expressions
jPDL xml schema
Validation
process-definition
node
common node elements
start-state
end-state
state
task-node
process-state
super-state
fork
join
decision
event
transition
action
script
expression
variable
handler
timer
create-timer
cancel-timer
task
swimlane
assignment
controller
sub-process
condition
exception-handler
18. Security
Todos
Authentication
Authorization
19. TDD for workflow
Introducing TDD for workflow
XML sources
Parsing a process archive
Parsing an xml file
Parsing an xml String
Testing sub processes
20. Pluggable architecture

List of Figures

1.1. Overview of the jPDL components
3.1. The hello world process graph
6.1. The transformations and different forms
6.2. The persistence related classes
7.1. The PostgreSQL pgAdmin III tool after creating the JbpmDB database
7.2. Adding the JDBC driver to the driver manager
7.3. Create the connection to the jBPM database
7.4. The MySQL Administrator
7.5. Load the database creation script
7.6. Running the database creation script
7.7. The MySQL Administrator after creating the jbpm database under MySQL
7.8. Loading the database create scripts for MySQL
7.9. Loading the database create scripts for MySQL
7.10. The JBoss JMX Console
7.11. The HSQLDB MBean
7.12. The HSQLDB Database Manager
9.1. The auction process graph
9.2. A database update action
9.3. The update erp example process snippet
9.4. The graph execution related methods
11.1. The assignment model class diagram
11.2. The task controllers
11.3. The identity model class diagram
12.1. Scheduler components overview
13.1. Example 1: Process without asynchronous continuation
13.2. Example 2: A process with asynchronous continuations
13.3. POJO command executor transactions
16.1. The jBPM logging information class diagram
19.1. The auction test process
20.1. The pluggable architecture

List of Tables

4.1.
4.2.
4.3.
8.1. Command service bean environment
8.2. Command/Job listener bean environment
8.3. Timer entity/service bean environment
17.1.
17.2.
17.3.
17.4.
17.5.
17.6.
17.7.
17.8.
17.9.
17.10.
17.11.
17.12.
17.13.
17.14.
17.15.
17.16.
17.17.
17.18.
17.19.
17.20.
17.21.
17.22.
17.23.
17.24.
17.25.
17.26.
17.27.
17.28.
17.29.