BPM Workflow Migration
BPM Workflow Migration
BPM Workflow Migration
Oracle Workflow
INTRODUCTION
Oracle has always regarded process management as an important discipline to
pursue. More than a decade ago, Oracle released Oracle Workflow, a tool used to
manage traditional workflow chores and connect information flows between
human workers and computer applications. It was essentially a database application
and used a client tool, the Workflow Builder, a graphical modeling tool that lets
users create, view, or modify business processes using drag and drop operations.
This workflow product was later on also embedded in the Oracle E-Business Suite
of applications for managing its workflows. Since then, the demands on process
management have increased, and standards for process modeling and execution
have emerged. Oracle is advising its customers using the Oracle Workflow version
that is unattached to Oracle E-Business Suite also known as Standalone Workflow
to consider migrating to the Oracle Business Process Management (BPM) Suite, the
next generation of process technology from Oracle. The Oracle BPM Suite
provides an integrated environment for developing, administering, and using
business applications centered on business processes.
Oracle BPM simplifies achieving process management success with a complete
solution for all types of processes by providing a unified process foundation, user-
centric design, and social BPM interaction. It enables collaboration among process
developers and process analysts while maintaining concurrency throughout the
process lifecycle. For process modeling and implementation, process analysts can
design business process models using Oracle BPM Studio, a tool installed as a plug-
in to Oracle JDeveloper. This is akin to the Workflow Builder modeling tool.
Oracle BPM Studio supports Business Process Management Notation (BPMN) 2.0,
a standard in modeling business processes. Moreover, BPM achieves persona-based
modeling by also supporting a lightweight web browser-based interface that is
designed mainly for business analysts more focused on process model and business
logic. The Oracle BPM execution component provides a run-time environment for
executing business processes in native BPMN notation. It also fulfills interactions
with Human Workflow for processes requiring human actions and Business Rules
for processes involving dynamic decision-making. In other words, BPMN provides
a modeling notation for capturing business processes and interactions, and through
a combination of graphical and supporting elements, allows a model to be
populated with sufficient information to generate executable runtime processes.
each other
Figure 4: Sequence Flow BPMN Connection Object in Oracle BPM
A Process describes a sequence or flow of activities in an organization with the
objective of carrying out work. A Process is depicted as a graph of Flow Elements,
which are a set of Activities, Events, Gateways, and Sequence Flow. The sequence
flow represents the order in which Tasks are carried out.
To learn more about BPMN, please visit the website at http://www.bpmn.org.
The Sales Quote example project is a real-world example of a business process
using Oracle BPM features.
BUSINESS RULES
MIGRATION OUTLINE
Process Migration
Step 1. Classify Workflow Process: The first step in the migration should
be to understand your Oracle Workflow Processes and classify them
with the goal of identifying the right target technology. Oracle
Workflow Processes may fall in the following categories:
• Process Navigator Flows: These should either be converted into
ADF Task Flows for cases which warrant a modular approach for
defining control flows or to Activity Guides in BPM Suite when
the flow is a large-scale, long-running, multiuser process that
to not convert these to BPMN but rather raise an event, and use
Mediator to invoke the needed activities on event receipt. If you
choose, you can use BPMN as well.
• XML Transaction Flows: If you are using Oracle Workflow to
model XML Transactions, you may want to simply use the
transformation capabilities of Oracle Mediator. If you choose,
you can use BPMN as well.
• Business Processes: Generally speaking these are the
orchestration of system services and human tasks including
approvals. This category should be migrated to BPMN as
described in this document.
• Identify Business Services: Identify all the PL/SQL procedures
and functions you are calling from Workflow. You should be able
to call these directly from BPMN using either the DB adapter or
Applications adapter, if the interaction is based on Oracle E-
Business Suite. However, if you are accessing or setting item type
from within your PL/SQL code you will need to change them as
described in section Data Access below. In addition, all workflow
Data Migration
Due to the differences in the Oracle Workflow process and migrated BPMN
process, it is not recommended to attempt migrating run time data from Workflow
Tables to BPMN Runtime Tables. The value of the run time historical data is
primarily for analytic purposes; therefore, instead plan on migrating runtime data to
the appropriate analytic warehouse schema.
CONCEPTS MAPPING
Control Flow
Like in Oracle Workflow, BPMN provides different structures to control the flow
of a process. These structures enable decisions as to which path a process instance
takes based on different conditions. These structures are flow objects in the form
of gateways which enable you to fork the flow of a process, timer events which
define a path based on time conditions, message events based on the occurrence of
a certain event, errors, and loop markers amongst others. Provided below is a brief
description for each of these constructs:
Loops
In Oracle Workflow, loops are designed as a loop counter activity. A Loop Counter
activity may be used to control the allowed number of iterations.
Transitions / Branching
In Oracle Workflow, multiple transitions may be drawn from a node based on its
result lookup as well as Any, Default, and Timeout. Parallel branching is implicitly
defined if more than one transition is enabled (Any in parallel with Result based
transition).
In BPMN, sequence flows connect the flow objects within a process, and
determine the path a process token follows through the process. Sequence flows
can be conditional or unconditional. Conditional sequence flows can be used to
control the flow of a process based on defined conditions or expressions. Parallel
paths in a process can be configured using parallel gateways which allow splitting
up the process into two or more paths and when it is needed that all the paths be
followed simultaneously.
Timeout Transitions
Figure 14: Notification Timeout defined within User Task in Oracle BPM
Oracle Workflow allows defining the processing that should occur in case of an
error by specifying an error handling process when a workflow process is being
built.
Similarly, within BPMN, error events enable you to define how a process handles
an abnormal situation. You can use error events to define different process flows
for each of the errors that may occur in a business process. See section on Error
Handling below.
Message Events
PO_PKG.UpdateStatus(l_po_number,
l_po_status);
resultout :=
'COMPLETE:<result>';
return;
end if;
end;
Figure 15: Data access in OWF within PL/SQL using WF_ENGINE API
Error Handling
Error handling in Oracle Workflow is specified in an Error process. Oracle
Workflow does not allow errors to be returned to callers. Instead, it lets developers
define an error handling process assigned to a process, function, or event activity.
Exception Handling in BPM Suite can be done either by explicitly modeling
business exceptions and associated process paths using BPMN constructs such as
“catch” and “throw” events or by using policy-driven declarative exception
handling. An exception handling policy, called the Fault Policy, contains one or
more policies that define exceptions to be caught and the actions to be taken when
such exceptions occur. The exception handling framework provides a choice of
various actions such as retry, abort, and human intervention via Oracle Enterprise
Manager, and custom actions created using Java. The policies are stored completely
separated from the process, thus allowing nonintrusive exception handling. This
policy-based exception handling strategy is typically well suited for system level
exceptions, while business exceptions including situations where compensation
logic may be needed are usually better handled via BPMN-based patterns and
applied where the exception is raised from.
CONSTRUCTS MAPPING
Overview
The following section provides a description of how Oracle Workflow constructs
map to BPMN constructs:
Workflow function activities calling PL/SQL code that does not make any
references to workflow engine APIs may be mapped to a BPMN service task as
follows:
Step 1. Within the SOA Composite Editor, drag and drop either the DB adapter
or the Applications adapter to the Partner Links section on the BPEL canvas
Step 2. Follow the wizard to configure the adapter
Step 3. Within Oracle BPM Studio, create a Service Task to make a call out to the
activity associated with the DB or Applications adapter.
However, if the PL/SQL code uses WF_ENGINE APIs it may make the most
sense to re-implement the activity logic in BPMN.
Custom Java classes will first need to be exposed as web services within Oracle
JDeveloper, before wrapping them as a service task to be invoked by BPMN.
Another point to take into account is the transaction boundaries of the activity. The
Workflow Engine traps errors produced by function activities by setting a save
point before each function activity. By virtue of best practice, there are generally no
commits within the PL/SQL procedure of a function activity. If an activity
produces an unhandled exception, the engine performs a rollback to the save point,
and sets the activity to the ERROR status. On the other hand, a service task is
contained within its own transaction. When an error occurs within the service, no
rollbacks happen. Instead, errors need to be explicitly caught, and compensatory
logic needs to be modeled in to undo service actions where necessary.
Sub-processes
Similar to Oracle Workflow, sub processes in BPMN are used to organize
processes so that they are clearer and easier to read. Sub processes are contained as
part of the parent sub process. Sub processes behave like activities, and have
incoming and outgoing sequence flows. They also contain data associations that
define the data objects used within the sub process. Therefore, your Oracle
Workflow sub processes will map to BPMN sub processes. However, unlike Oracle
Workflow, which does not support using a sub process activity multiple times
within a process hierarchy, sub processes within your BPMN process can be
configured to repeat numerous times within the context of a process flow.
Note: There is an overhead involved in invoking a process similar to unnecessary
use of sub process within Oracle Workflow; therefore, you will need to balance
maintainability/reuse with performance.
Raise Event
In Oracle Workflow, a Raise event activity retrieves information about the event
and raises the event to the Business Event System, which will then execute
subscriptions to the event. The Throw Message Intermediate event in BPMN can
be similarly used to send a message to another process. Alternatively, the Throw
Signal Intermediate event is used to publish or broadcast a signal. Subsequently,
processes configured to listen to the signal react to the broadcast.
Receive Event
The Receive event activity in Oracle Workflow maps to Receive task in BPMN.
The Receive task can be used to trigger the start of a process. Alternatively, a
Receive task can be placed within the process, so that it is only enabled to receive
events after the process transitions to that activity, much like the behavior in Oracle
Workflow.
Send Event
The Send Task in BPMN is used to send a message to another participant (or
process). Once this message is sent, the task is complete and running of the process
continues to the next task in the process flow. Any information that needs to be
passed on to the event must be passed as data associations.
Standard Activities
And Activity
The Oracle Workflow ‘And’ activity should be modeled with BPMN Parallel
Gateway Split and Merge constructs. Note that the Split and Merge constructs
specify the forking as well as synchronization points, unlike the And activity which
simply specifies the synchronization point.
The Split and Merge constructs execute multiple branches concurrently and merge
on completion. The merge waits for all of the individual incoming sequence flows
to complete before proceeding with the onward flow.
In BPM, a Workflow ‘Or’ activity should be modeled using a Parallel and Complex
Gateway configuration. The Parallel Gateway enables all forking branches to
execute concurrently, and the Complex Gateway can be implemented to abort
remaining flows with the arrival of the first sequence flow to reach the Complex
Gateway.
The Message Catch intermediate event enables a process to receive a message from
another process or service. A BPMN process can invoke an asynchronous
operation and must wait for a callback operation before it can continue with its
flow. In this way, the Message Catch Event can be used to delay a process until a
condition a met, such as the completion of another process similar to a Block
activity in Oracle Workflow.
Comparison Activity
Wait Activity
In BPMN, Timer Events can be used to add delays to the process flow by adding
intermediate Timer Catch events. When the timer event is reached, the process
waits the time specified in the timer event before moving to the next activity in the
process. The Timer catch event can be configured to wait until a specific date or to
wait for a certain period. In both cases you can choose to use a fixed value or to use
an expression that specifies the corresponding date or interval.
Oracle Workflow provides a Defer Thread activity as well as activity cost based
deferring of activities to perform heavy processing in the background. BPMN has
first class support for long running processes and does not require an explicit defer
activity. To achieve the functionality of Deferring, message or signal events can be
used to invoke asynchronous services and processes. The calling BPMN process is
The Launch Process Activity in Oracle Workflow maps to the Call Activity in
BPM. The Call Activity can invoke a process from another process (Also see Sub
processes above).
NOOP Activity
The NOOP activity in Oracle Workflow can be modeled using the None Start, End
or Intermediate events.
While there does not exist a BPMN construct that a loop counter activity can
directly map to, the same can be achieved using a sub-process for the looping
activities and overlaying that with a Loop Marker which enables defining number of
times to loop through using an absolute number or XPath expression. Also see
modeling of loops described above.
To facilitate role resolution, role information is typically associated with a user task
rather than an activity. Roles are assigned to horizontal swim lanes that show
graphically the roles responsible for completing user tasks within a process.
Notification Activity
The Notification task within Oracle BPM uses a predefined service to perform
different types of notification. The users or groups who will receive notifications
generated by the notification task can be derived from simple data objects or by
using expressions.
Group voting is one of the declarative routing patterns supported by the human
workflow component of Oracle BPM. This pattern routes work to a group of
people in parallel and can be configured to proceed when the outcome is
determinate instead of waiting for all responses.
In BPMN, no equivalent activity exists. Instead, for all monitoring activities, the
centralized Enterprise Manager Console can be accessed.
Transitions
The above picture shows conditional branching to three branches; with the third
one being the fall back default (otherwise) path.
Timeout Transition
Within Workflow, Timeout transitions are defined from Notification activities to
some other activity to force the process to perform the other activity if the
notification activity times out. Notification activities are created using the SOA
Human Task editor in a BPM suite installation. The Human Task can be assigned
to a User Task activity within a BPMN process. Further, a deadline can be
configured for this activity by using an interrupting Timer Catch event that leads to
another point of the process when the activity reaches its deadline. Deadlines can
Lookups
Lookups are used in Oracle Workflow to do activity result based transitions. In
BPMN, transitions are instead modeled using XPath condition expressions as
discussed above. Therefore, lookups are not needed in BPMN. You can use
process variables to store the results of activities, which may be any XML
document and not just lookups.
As mentioned above, BPM PS4FP allows the import of Oracle Workflow graphical
models into Oracle BPM Studio. This provides a jump-start for process analysts
involved in the exercise of migration of Oracle Workflow to BPMN who can now
continue modeling in BPMN rather than starting from scratch. It also provides a
basis for developers to continue with subsequent implementation. It should be
noted that only the process diagram is imported. None of the associated
implementation is imported. It should also be noted that it may be better to make
changes to the model to take advantage of features of BPM and BPMN. Certain
aspects that need attention are:
• Item attributes are not imported. These need to be assessed and equivalent
data objects be created.
• PL/SQL APIs or functions need rethinking in their implementation of
service tasks specially in their internal references to Oracle Workflow
engine APIs and attributes
• Error events need to be explicitly modeled in the imported diagram.
• While the import itself creates a one-to-one mapping for each construct,
use the mapping summary table below to re-model certain activities to
produce a valid BPM diagram.
The table below provides a summary of how the constructs from Oracle Workflow
map to BPMN. Once imported, within BPM Studio, the construct in the column
Oracle Corporation
World Headquarters
500 Oracle Parkway
Redwood Shores, CA 94065
U.S.A.
Worldwide Inquiries:
Phone: +1.650.506.7000
Fax: +1.650.506.7200
oracle.com
Copyright © 2006, Oracle. All rights reserved.
This document is provided for information purposes only and the
contents hereof are subject to change without notice.
This document is not warranted to be error-free, nor subject to any
other warranties or conditions, whether expressed orally or implied
in law, including implied warranties and conditions of merchantability
or fitness for a particular purpose. We specifically disclaim any
liability with respect to this document and no contractual obligations
are formed either directly or indirectly by this document. This document
may not be reproduced or transmitted in any form or by any means,
electronic or mechanical, for any purpose, without our prior written permission.
Oracle, JD Edwards, PeopleSoft, and Siebel are registered trademarks of Oracle
Corporation and/or its affiliates. Other names may be trademarks
of their respective owners.