Before you start
A business works with an entity around which the business is based—this is a common business requirement in any industry. For example, an item is an entity in the retail industry. An item's details are most likely composed of multiple subsets. In the retail field these subsets might include core details, vendor details, and stock keeping unit (SKU) details. While creating, editing, or working with an item, you need to track the state of completion of these different subsets. These subsets might also be acted on simultaneously by multiple users. Ultimately, maintaining and tracking these different states (complete or incomplete) of the subsets is important.
If this is translated into a technical requirement, it means you need to do
concurrent maintenance of the state for each subset of an item. Also, a Query
interface needs to be provided, which can produce various results, such as the
state of a given subset for an item, different subsets in a certain state for an
item, and items with a subset in a certain state. You can't use a state machine
implementation here, because it can only tell you the current state a subset is
in, and such complex queries can't be supported. In this article, find out how
this complex state management can be achieved by using a BPEL parallel path
pattern, the BPEL custom properties, and the BusinessFlowManager APIs for
building queries.
- Learn about the BPEL parallel path pattern.
- Use BPEL custom properties.
- Run queries on BPEL process instances.
- Implement concurrent multistate maintenance, supporting queries on the states.
This tutorial is for Service-Oriented Architecture (SOA) developers and architects who develop SOA solutions. To follow along with this tutorial, you should have prior experience developing solutions on IBM WebSphere® Integration Developer and deployment experience on IBM WebSphere Process Server.
To run the examples in this tutorial, you need a WebSphere Integration Developer with WebSphere Process Server test environment on a machine with at least 2GB of RAM.


