JBoss jBPM jPDL 3.2

jBPM jPDL User Guide


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. jBPM 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
6. Configuration
6.1. Configuration properties
6.2. Configuration files
6.2.1. Hibernate cfg xml file
6.2.2. Hibernate queries configuration file
6.2.3. Node types configuration file
6.2.4. Action types configuration file
6.2.5. Business calendar configuration file
6.2.6. Variable mapping configuration file
6.2.7. Converter configuration file
6.2.8. Default modules configuration file
6.2.9. Process archive parsers configuration file
6.3. 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 hibernate session factory
7.2.2. Configuring a c3po connection pool
7.2.3. Configuring a ehcache cache provider
7.2.4. The DbPersistenceServiceFactory
7.3. Hibernate transactions
7.4. JTA transactions
7.5. Customizing queries
7.6. Database compatibility
7.6.1. Changing the jBPM DB
7.6.2. The jBPM DB schema
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. Installing the PostgreSQL Database Manager
8.1.2. Installing the MySQL Database Manager
8.1.3. Creating the JBoss jBPM Database with your new PostGreSQL or MySQL
8.1.3.1. Creating the JBoss jBPM Database with PostGreSQL
8.1.3.2. Creating the JBoss jBPM Database with your new MySQL
8.1.4. Last Steps
8.1.5. Update the JBoss jBPM Server Configuration
8.2. Database upgrades
8.3. Starting hsqldb manager on JBoss
9. Process Modelling
9.1. Overview
9.2. Process graph
9.3. Nodes
9.3.1. Node responsibilities
9.3.2. Nodetype task-node
9.3.3. Nodetype state
9.3.4. Nodetype decision
9.3.5. Nodetype fork
9.3.6. Nodetype join
9.3.7. Nodetype node
9.4. Transitions
9.5. Actions
9.5.1. Action configuration
9.5.2. Action references
9.5.3. Events
9.5.4. Event propagation
9.5.5. Script
9.5.6. Custom events
9.6. Superstates
9.6.1. Superstate transitions
9.6.2. Superstate events
9.6.3. Hierarchical names
9.7. Exception handling
9.8. Process composition
9.9. Custom node behaviour
9.10. Graph execution
9.11. Transaction demarcation
10. Context
10.1. Accessing variables
10.2. Variable lifetime
10.3. Variable persistence
10.4. Variables scopes
10.4.1. Variables overloading
10.4.2. Variables overriding
10.4.3. Task instance variable scope
10.5. Transient variables
10.6. Customizing variable persistence
11. Task management
11.1. Tasks
11.2. Task instances
11.2.1. Task instance lifecycle
11.2.2. Task instances and graph execution
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.2.1. First terms
11.11.2.2. Next terms
11.11.3. Removing the identity component
12. Document management
13. Scheduler
13.1. Timers
13.2. Scheduler deployment
14. Asynchronous continuations
14.1. The concept
14.2. An example
14.3. The command executor
14.4. jBPM's built-in asynchronous messaging
14.5. JMS for async architectures
14.6. JMS for asynchronous messaging
14.7. Future directions
15. Business calendar
15.1. Duration
15.2. Calendar configuration
16. Email support
16.1. Mail in jPDL
16.1.1. Mail action
16.1.2. Mail node
16.1.3. Task assign mails
16.1.4. Task reminder mails
16.2. Expressions in mails
16.3. Specifying mail recipients
16.3.1. Multiple recipients
16.3.2. Address resolving
16.4. Mail templates
16.5. Mail server configuration
16.6. Customizing mail support
16.7. Mail server
17. Logging
17.1. Creation of logs
17.2. Log configurations
17.3. Log retrieval
17.4. Database warehousing
18. jBPM Process Definition Language (JPDL)
18.1. The process archive
18.1.1. Deploying a process archive
18.1.2. Process versioning
18.1.3. Changing deployed process definitions
18.1.4. Migrating process instances
18.1.5. Process conversion
18.2. Delegation
18.2.1. The jBPM class loader
18.2.2. The process class loader
18.2.3. Configuration of delegations
18.2.3.1. config-type field
18.2.3.2. config-type bean
18.2.3.3. config-type constructor
18.2.3.4. config-type configuration-property
18.3. Expressions
18.4. jPDL xml schema
18.4.1. Validation
18.4.2. process-definition
18.4.3. node
18.4.4. common node elements
18.4.5. start-state
18.4.6. end-state
18.4.7. state
18.4.8. task-node
18.4.9. process-state
18.4.10. super-state
18.4.11. fork
18.4.12. join
18.4.13. decision
18.4.14. event
18.4.15. transition
18.4.16. action
18.4.17. script
18.4.18. expression
18.4.19. variable
18.4.20. handler
18.4.21. timer
18.4.22. create-timer
18.4.23. cancel-timer
18.4.24. task
18.4.25. swimlane
18.4.26. assignment
18.4.27. controller
18.4.28. sub-process
18.4.29. condition
18.4.30. exception-handler
19. Security
19.1. Todos
19.2. Authentication
19.3. Authorization
20. TDD for workflow
20.1. Introducing TDD for workflow
20.2. XML sources
20.2.1. Parsing a process archive
20.2.2. Parsing an xml file
20.2.3. Parsing an xml String
20.3. Testing sub processes
21. Pluggable architecture