JBoss jBPM - Workflow in Java

jBPM jPDL User Guide

3.2.3


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
Downloadables Overview
jPDL 3
jPDL Process Designer
The JBoss jBPM project directory
Source code CVS access
Anonymous CVS access
Developer CVS access
3. Tutorial
Hello World example
Database example
Context example: process variables
Task assignment example
Custom action example
4. Graph Oriented Programming
Introduction
Domain specific languages
Features of graph based languages
Graph Oriented Programming
The graph structure
An execution
A process language
Actions
Synchronous execution
Code example
Extensionding Graph Oriented Programming
Process variables
Concurrent executions
Process composition
Asynchronous continuations
Persistence and Transactions
Services and environment
Considerations
Runtime data isolation
GOP compared to other techniques
GOP compared to petri nets
Application domains
Business Process Management (BPM)
Service orchestration
Embedding graph based languages
Market
The ultimate process language
Fragmentation
Other implementation techniques
5. Deployment
jBPM libraries
Java runtime environment
Third party libraries
Web application
Enterprise archive
The jPDL Runtime and Suite
The runtime
The suite
Configuring the logs in the suite server
Debugging a process in the suite
6. 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
jBPM debug logs in JBoss
Logging of optimistic concurrency exceptions
Object factory
7. 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
Known Issues
Combining your hibernate classes
Customizing the jBPM hibernate mapping files
Second level cache
8. 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
9. Java EE Application Server Facilities
Enterprise Beans
jBPM Enterprise Configuration
Hibernate Enterprise Configuration
Client Components
10. 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
11. Context
Accessing variables
Variable lifetime
Variable persistence
Variables scopes
Variables overloading
Variables overriding
Task instance variable scope
Transient variables
Customizing variable persistence
12. 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
13. Document management
14. Scheduler
Timers
Scheduler deployment
15. Asynchronous continuations
The concept
An example
The job executor
jBPM's built-in asynchronous messaging
JMS for async architectures
Future directions
16. Business calendar
Duedate
Duration
Base date
Examples
Calendar configuration
17. 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
18. Web Services Support
Invoke jPDL Web Services
Deployment
Testing the deployment
19. Logging
Creation of logs
Log configurations
Log retrieval
Database warehousing
20. Business Process Simulation
21. jBPM Process Definition Language (JPDL)
The process archive
Deploying a process archive
Process versioning
Changing deployed process definitions
Migrating process instances
Process conversion
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
22. Security
Todos
Authentication
Authorization
23. TDD for workflow
Introducing TDD for workflow
XML sources
Parsing a process archive
Parsing an xml file
Parsing an xml String
Testing sub processes
24. Pluggable architecture

List of Figures

1.1. Overview of the jPDL components
3.1. The hello world process graph
4.1. Positioning of graph based languages
4.2. Node and Transition classes
4.3. The Execution class
4.4. The Transition take method
4.5. The Node execute method
4.6. The Execution event method
4.7. An example process language
4.8. An example process
4.9. A new execution
4.10. An execution in the 'doubleCheck' wait state
4.11. Actions that are normally hidden from the graphical view
4.12. Concurrent paths of execution
4.13. Asynchonous continuation
4.14. Traditional BPM approach
4.15. Improved BPM approach
4.16. Service
4.17. The BPM product continuum.
4.18. Two dimensions of fragmentation.
7.1. The transformations and different forms
7.2. The persistence related classes
8.1. The PostgreSQL pgAdmin III tool after creating the JbpmDB database
8.2. Adding the JDBC driver to the driver manager
8.3. Create the connection to the jBPM database
8.4. The MySQL Administrator
8.5.
8.6. Load the database creation script
8.7. Running the database creation script
8.8. The MySQL Administrator after creating the jbpm database under MySQL
8.9. Loading the database create scripts for MySQL
8.10. Loading the database create scripts for MySQL
8.11. The JBoss jBPM JMX Console
8.12. The HSQLDB MBean
8.13. The HSQLDB Database Manager
10.1. The auction process graph
10.2. A database update action
10.3. The update erp example process snippet
10.4. The graph execution related methods
12.1. The assignment model class diagram
12.2. The task controllers
12.3. The identity model class diagram
14.1. Scheduler components overview
14.2. Scheduler classes overview
15.1. Example 1: Process without asynchronous continuation
15.2. Example 2: A process with asynchronous continuations
15.3. POJO command executor transactions
19.1. The jBPM logging information class diagram
23.1. The auction test process
24.1. The pluggable architecture

List of Tables

5.1.
5.2.
5.3.
5.4. jPDL runtime directories
5.5. jPDL suite extra directories
9.1. Command service bean environment
9.2. Command/Job listener bean environment
9.3. Timer entity/service bean environment
21.1.
21.2.
21.3.
21.4.
21.5.
21.6.
21.7.
21.8.
21.9.
21.10.
21.11.
21.12.
21.13.
21.14.
21.15.
21.16.
21.17.
21.18.
21.19.
21.20.
21.21.
21.22.
21.23.
21.24.
21.25.
21.26.
21.27.
21.28.
21.29.