JBoss jBPM - Workflow in Java

jBPM jPDL User Guide

3.2.3


Table of Contents

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 JBoss jBPM identity component
1.7. The JBoss jBPM Job Executor
2. Getting started
2.1. Downloadables Overview
2.1.1. jPDL 3
2.1.2. jPDL Process Designer
2.2. The JBoss jBPM project directory
2.3. Source code CVS access
2.3.1. Anonymous CVS access
2.3.2. Developer CVS access
3. Tutorial
3.1. Hello World example
3.2. Database example
3.3. Context example: process variables
3.4. Task assignment example
3.5. Custom action example
4. Graph Oriented Programming
4.1. Introduction
4.1.1. Domain specific languages
4.1.2. Features of graph based languages
4.1.2.1. Support for wait states
4.1.2.2. Graphical representation
4.2. Graph Oriented Programming
4.2.1. The graph structure
4.2.2. An execution
4.2.3. A process language
4.2.4. Actions
4.2.5. Synchronous execution
4.2.6. Code example
4.3. Extensionding Graph Oriented Programming
4.3.1. Process variables
4.3.2. Concurrent executions
4.3.3. Process composition
4.3.4. Asynchronous continuations
4.3.5. Persistence and Transactions
4.3.6. Services and environment
4.4. Considerations
4.4.1. Runtime data isolation
4.4.2. GOP compared to other techniques
4.4.3. GOP compared to petri nets
4.5. Application domains
4.5.1. Business Process Management (BPM)
4.5.1.1. Different aspects of BPM
4.5.1.2. Goals of BPM systems
4.5.2. Service orchestration
4.6. Embedding graph based languages
4.7. Market
4.7.1. The ultimate process language
4.7.2. Fragmentation
4.7.3. Other implementation techniques
5. Deployment
5.1. jBPM libraries
5.2. Java runtime environment
5.3. Third party libraries
5.4. Web application
5.5. Enterprise archive
5.6. The jPDL Runtime and Suite
5.6.1. The runtime
5.6.2. The suite
5.6.3. Configuring the logs in the suite server
5.6.4. Debugging a process in the suite
6. Configuration
6.1. Customizing factories
6.2. Configuration properties
6.3. Other configuration files
6.3.1. Hibernate cfg xml file
6.3.2. Hibernate queries configuration file
6.3.3. Node types configuration file
6.3.4. Action types configuration file
6.3.5. Business calendar configuration file
6.3.6. Variable mapping configuration file
6.3.7. Converter configuration file
6.3.8. Default modules configuration file
6.3.9. Process archive parsers configuration file
6.4. jBPM debug logs in JBoss
6.5. Logging of optimistic concurrency exceptions
6.6. Object factory
7. Persistence
7.1. The persistence API
7.1.1. Relation to the configuration framework
7.1.2. Convenience methods on JbpmContext
7.1.3. Managed transactions
7.1.4. Injecting the hibernate session
7.1.5. Injecting resources programmatically
7.1.6. Advanced API usage
7.2. Configuring the persistence service
7.2.1. The DbPersistenceServiceFactory
7.2.2. The hibernate session factory
7.2.3. Configuring a c3po connection pool
7.2.4. Configuring a ehcache cache provider
7.3. Hibernate transactions
7.4. JTA transactions
7.5. Customizing queries
7.6. Database compatibility
7.6.1. Isolation level of the JDBC connection
7.6.2. Changing the jBPM DB
7.6.3. The jBPM DB schema
7.6.4. Known Issues
7.6.4.1. Sybase Issues
7.7. Combining your hibernate classes
7.8. Customizing the jBPM hibernate mapping files
7.9. Second level cache
8. The jBPM Database
8.1. Switching the Database Backend
8.1.1. Isolation level
8.1.2. Installing the PostgreSQL Database Manager
8.1.3. Installing the MySQL Database Manager
8.1.4. Creating the JBoss jBPM Database with your new PostGreSQL or MySQL
8.1.4.1. Creating the JBoss jBPM Database with PostGreSQL
8.1.4.2. Creating the JBoss jBPM Database with your new MySQL
8.1.5. Last Steps
8.1.6. Update the JBoss jBPM Server Configuration
8.2. Database upgrades
8.3. Starting hsqldb manager on JBoss
9. Java EE Application Server Facilities
9.1. Enterprise Beans
9.2. jBPM Enterprise Configuration
9.3. Hibernate Enterprise Configuration
9.4. Client Components
10. Process Modelling
10.1. Overview
10.2. Process graph
10.3. Nodes
10.3.1. Node responsibilities
10.3.2. Nodetype task-node
10.3.3. Nodetype state
10.3.4. Nodetype decision
10.3.5. Nodetype fork
10.3.6. Nodetype join
10.3.7. Nodetype node
10.4. Transitions
10.5. Actions
10.5.1. Action configuration
10.5.2. Action references
10.5.3. Events
10.5.4. Event propagation
10.5.5. Script
10.5.6. Custom events
10.6. Superstates
10.6.1. Superstate transitions
10.6.2. Superstate events
10.6.3. Hierarchical names
10.7. Exception handling
10.8. Process composition
10.9. Custom node behaviour
10.10. Graph execution
10.11. Transaction demarcation
11. Context
11.1. Accessing variables
11.2. Variable lifetime
11.3. Variable persistence
11.4. Variables scopes
11.4.1. Variables overloading
11.4.2. Variables overriding
11.4.3. Task instance variable scope
11.5. Transient variables
11.6. Customizing variable persistence
12. Task management
12.1. Tasks
12.2. Task instances
12.2.1. Task instance lifecycle
12.2.2. Task instances and graph execution
12.3. Assignment
12.3.1. Assignment interfaces
12.3.2. The assignment data model
12.3.3. The personal task list
12.3.4. The group task list
12.4. Task instance variables
12.5. Task controllers
12.6. Swimlanes
12.7. Swimlane in start task
12.8. Task events
12.9. Task timers
12.10. Customizing task instances
12.11. The identity component
12.11.1. The identity model
12.11.2. Assignment expressions
12.11.2.1. First terms
12.11.2.2. Next terms
12.11.3. Removing the identity component
13. Document management
14. Scheduler
14.1. Timers
14.2. Scheduler deployment
15. Asynchronous continuations
15.1. The concept
15.2. An example
15.3. The job executor
15.4. jBPM's built-in asynchronous messaging
15.5. JMS for async architectures
15.6. Future directions
16. Business calendar
16.1. Duedate
16.1.1. Duration
16.1.2. Base date
16.1.3. Examples
16.2. Calendar configuration
17. Email support
17.1. Mail in jPDL
17.1.1. Mail action
17.1.2. Mail node
17.1.3. Task assign mails
17.1.4. Task reminder mails
17.2. Expressions in mails
17.3. Specifying mail recipients
17.3.1. Multiple recipients
17.3.2. Sending Mails to a BCC target
17.3.3. Address resolving
17.4. Mail templates
17.5. Mail server configuration
17.6. From address configuration
17.7. Customizing mail support
17.8. Mail server
18. Web Services Support
18.1. Invoke jPDL Web Services
18.1.1. Deployment
18.1.2. Testing the deployment
19. Logging
19.1. Creation of logs
19.2. Log configurations
19.3. Log retrieval
19.4. Database warehousing
20. Business Process Simulation
21. jBPM Process Definition Language (JPDL)
21.1. The process archive
21.1.1. Deploying a process archive
21.1.2. Process versioning
21.1.3. Changing deployed process definitions
21.1.4. Migrating process instances
21.1.5. Process conversion
21.2. Delegation
21.2.1. The jBPM class loader
21.2.2. The process class loader
21.2.3. Configuration of delegations
21.2.3.1. config-type field
21.2.3.2. config-type bean
21.2.3.3. config-type constructor
21.2.3.4. config-type configuration-property
21.3. Expressions
21.4. jPDL xml schema
21.4.1. Validation
21.4.2. process-definition
21.4.3. node
21.4.4. common node elements
21.4.5. start-state
21.4.6. end-state
21.4.7. state
21.4.8. task-node
21.4.9. process-state
21.4.10. super-state
21.4.11. fork
21.4.12. join
21.4.13. decision
21.4.14. event
21.4.15. transition
21.4.16. action
21.4.17. script
21.4.18. expression
21.4.19. variable
21.4.20. handler
21.4.21. timer
21.4.22. create-timer
21.4.23. cancel-timer
21.4.24. task
21.4.25. swimlane
21.4.26. assignment
21.4.27. controller
21.4.28. sub-process
21.4.29. condition
21.4.30. exception-handler
22. Security
22.1. Todos
22.2. Authentication
22.3. Authorization
23. TDD for workflow
23.1. Introducing TDD for workflow
23.2. XML sources
23.2.1. Parsing a process archive
23.2.2. Parsing an xml file
23.2.3. Parsing an xml String
23.3. Testing sub processes
24. Pluggable architecture