You are on page 1of 106

Oracle Workflow Basics

27-Jan-2008

Telecom3/ Motorola

vivekanandan.ms@tcs.com

17 March 2009 TCS Internal


Agenda

Overview of Oracle Workflow


Oracle Workflow Availability
Oracle Workflow Architecture
Workflow process components
Defining Functions for Oracle Workflow
Defining Procedures for Oracle Workflow
Workflow engine APIs
Defining a Workflow process diagram
Workflow Access Protection
Workflow Status Monitor
Workflow Notifications
Workflow Users and Roles
Example

TCS Internal 17 March 2009 2


Overview of Oracle workflow

Oracle Workflow delivers a complete workflow management system that supports business
process based integration. Its technology enables modeling, automation, and continuous
improvement of business processes, routing information of any type according to user-
defined business rules.

Oracle Workflow automates and streamlines business processes both within and beyond
the enterprise, supporting traditional applications based workflow as well as e-business
integration workflow.

Workflow processes can be used to,


validate self-service transactions
approve standard business documents
step through daily transaction flows
integrate with trading partner systems

TCS Internal 17 March 2009 3


Overview of Oracle workflow
Routing information

Right information to the right people

Provides each person with all the information they need to take action.

Defining and modifying business

Define and continuously improve the business processes using the drag and drop process
designer.

Adapt your processes as your business changes

Focuses on managing the business process, not the individual transactions.

Delivering Electronic notifications

Lets people receive notifications of items awaiting their attention via e-mail and act based on their
e-mail responses.

TCS Internal 17 March 2009 4


Oracle Workflow Types
Traditional Workflows

These type of workflows are launched from a business application through APIs hard-coded
within the application.

These processes model the business rules in the individual local application and are made up of
activities executed by the workflow engine only in that application's system.

Event Based workflows

Business is integrated with the external system.

Supports business-to-business data exchange .

Based on the Business Event System

TCS Internal 17 March 2009 5


Oracle Workflow Availability
Oracle Workflow is available in two versions:

Standalone

With the Oracle Database (both Standard Edition and Enterprise Edition)

With the Oracle Application Server

With the Oracle Collaboration Suite

Embedded in Oracle E-Business Suite

Self-service applications.

Professional applications

Used in Enterprise resource planning (ERP), Customer Relationship Management (CRM), Human
Resource Management Systems (HRMS).

TCS Internal 17 March 2009 6


Oracle Workflow Architecture

TCS Internal 17 March 2009 7


Workflow Development client
Oracle Workflow Builder

Oracle workflow Builder is a graphical tool that lets you create, view, or modify a business process
with simple drag and drop operations.

Using the workflow Builder, you can create and modify all workflow objects, including activities,
item types, and messages.

The workflow definition files can either directly be saved to the database or can be saved as a flat
file.

Oracle workflow builder consists of two parts:

Navigator tree

Process Diagram

TCS Internal 17 March 2009 8


Workflow Development client
Workflow Definitions Loader

It is a utility program that moves workflow definitions between database and corresponding flat file
representations.

It can be used to move workflow definitions from a development to a production database, or to


apply upgrades to existing definitions.

In addition to being a standalone server program, the workflow definitions Loader is also
integrated into Oracle workflow Builder, allowing you to open and save workflow definitions in both
a database and file.

TCS Internal 17 March 2009 9


Oracle Server
Workflow Engine

The workflow engine is a set of tables and PL/SQL stored procedures that manages the execution
of a workflow process and tracks work in process.

Manages the state of activities for each process instance

Calls the Notification System to send notification messages

Executes function activities automatically

Supports results-based branches, parallel branches, loops, and sub-processes

Maintains a history of completed activities.

Detects error conditions and executes error processes.

TCS Internal 17 March 2009 10


Oracle Server
Business Event System

The Business Event System is an application service that uses the Oracle Advanced Queuing
(AQ) infrastructure to communicate business events between systems.

Workflow with the business event system can act as a system integration messaging hub that
relays business event messages among systems

The Business Event System consists of the Event Manager, which lets you register subscriptions
to significant events, and event activities, which let you model business events within workflow
processes

When a local event occurs, the subscribing code is executed in the same transaction as the code
that raised the event.

Subscription processing can include executing custom code on the event information, sending
event information to a workflow process, and sending event information to other queues or
systems.

TCS Internal 17 March 2009 11


Oracle Server
Notification System

Routes notifications to a role, which can be a single user or group of users

Enables users to receive and respond to notifications using an e-mail application or web browser
of choice.

sends e-mail notifications and processes e-mail responses using the JavaMail API

allows any users with access to the internet to be included in a workflow process

TCS Internal 17 March 2009 12


Oracle Server
Directory services

The directory service for Oracle Workflow is implemented as a set of views that are mapped across the
user tables of the underlying application.

WF_USERS: Contains information on user names, display names, notification preferences and e-
mail addresses

WF_ROLES: Contains information on the roles of which users can be members

WF_USER_ROLES: Contains information on the association of users with roles

A role could be a user, an employee, a responsibility or a holder of a position in the position


hierarchy

If the workflow is embedded in Oracle Applications, then the workflow directory service views are
automatically based on a unified oracle applications environment.

TCS Internal 17 March 2009 13


Application Server
Application Server

The application server is the environment outside of the RDBMS.

This environment includes ancillary services such as the Oracle Application Server (OracleAS) as
the web server, and notification mailers

Notification Mailer

A notification mailer performs e-mail send and response processing for the Oracle Workflow
Notification System, using the JavaMail API.

Oracle Workflow Manager can be used to manage the notification mailers.

TCS Internal 17 March 2009 14


End-User Client
End-User Client

The end-user client is the workstation or PC that an end user uses to perform daily tasks.

This client includes browser support for reviewing and responding to notifications in the Worklist,
the Workflow Monitor, and other Workflow web pages, as well as mail applications for reviewing
and responding to notifications by e-mail.

It also includes the Workflow Manager component accessed through Oracle Applications
Manager (OAM) for the version of Oracle Workflow embedded in Oracle E-Business Suite.

TCS Internal 17 March 2009 15


Workflow process components

TCS Internal 17 March 2009 16


Item Type
Item Types

An item type is a classification of the components that make up a workflow process.

Any component that is created for a process, such as a function activity or a message, with a
particular item type must be associated with an Item Type.

Item Type Attributes

An item type attribute is a property associated with a given item type.

It acts as a global variable that can be referenced or updated by any activity within a process.

You must define an item type before you can define the item attributes associated with it.

TCS Internal 17 March 2009 17


Item Type Attributes
Display Name

The name of an object within the workflow, which is visible to the user.

Internal Name

The internal name of an object is the name that will always be referred to within the workflow.

This must be unique within the item types.

TCS Internal 17 March 2009 18


Item Type Attributes
Persistence Type

Oracle workflow allows the developer to determine how long the status audit trail of the workflow
should be maintained (i,e) how long each workflow should remain in the database after they
complete before they become eligible for purging. Types,

Permanent

Will remain for ever in the database.

This can be removed by using the WF_PURGE.totalperm() API and specifying the item type

Temporary

Remain ineligible for purging until n complete days have passed.

Synchronous

Do not persist the workflow in the database, so no run-time data is stored.

No database transaction.

TCS Internal 17 March 2009 19


Item Type Selector/Callback Functions

An item type can have more than one runnable process activity associated with it.

PL/SQL selector functions are used to determine which process activity to run in a particular
situation.

A selector function can be extended to be a general callback function so that item type context
information can be reset as needed if the SQL session is interrupted.

Enter the selector function in the following format:


<package_name>.<procedure_name>

TCS Internal 17 March 2009 20


Item Type Properties

TCS Internal 17 March 2009 21


Item Type Properties

TCS Internal 17 March 2009 22


Item Type Properties

TCS Internal 17 March 2009 23


Attribute Data Types
You can assign the following data types to attributes:

Text

Number

Date

Lookup

Role

Attribute

URL

Form

Document

Event

TCS Internal 17 March 2009 24


Defining Item Type Attributes

Item type attributes are defined in the Oracle


Workflow Builder navigator tree beneath a given
item type.

TCS Internal 17 March 2009 25


Defining Lookup Types
Lookup Types

A lookup type is a static list of values.

These lists can be referenced by activities and by item type, message, or activity attributes. For
example:

An activity can reference a lookup type for its possible result values

A message attribute can reference a lookup type to provide a list of possible responses to the
performer of a notification.

Defining Lookup Codes

Lookup codes represent the actual values in a lookup type.

The lookup codes for a lookup type are defined in the navigator tree beneath the lookup type.

TCS Internal 17 March 2009 26


Defining Lookup Types

TCS Internal 17 March 2009 27


Defining Lookup Types

TCS Internal 17 March 2009 28


Defining Lookup Types

TCS Internal 17 March 2009 29


Form Attribute Type
Form Attribute Type

The attribute value is an Oracle Applications internal form function name and its optional form
function parameters.

This attribute type is not relevant for the standalone version of Oracle Workflow.

If you include a form-type attribute in a notification message as a message attribute, the


notification, when viewed from the Notification Details Web page, displays an attached form icon
that lets users drill down to the referenced form

TCS Internal 17 March 2009 30


Form Attribute Type

TCS Internal 17 March 2009 31


Document Attributes
Document Attributes

Attributes of type document can represent data from the database in various formats, generated
from a PL/SQL procedure.

PL/SQL document: Represents data as a character string

PL/SQL CLOB document: Represents data as a character large object (CLOB)

PL/SQL BLOB document: Represents data as a


binary large object (BLOB)

These attributes can appear in a notification message as an inline link (PL/SQL and PL/SQL CLOB
documents only) or as an attachment icon (PL/SQL, PL/SQL CLOB, and PL/SQL BLOB
documents).

When users view their notifications, they can click a link or an attachment icon to open the
referenced document.

TCS Internal 17 March 2009 32


Document Attributes

TCS Internal 17 March 2009 33


URL Attributes
URL Attributes

An attribute of type URL references a Universal Resource Locator (URL) to a network location
such as a web page.

When you create an item attribute of type URL, specify a frame target for the attribute.

If you reference this item attribute as the default value of a message attribute in a message, the
URL frame opens according to what you specified as the frame target.

These attributes appear in a notification message body as an inline hypertext link or below the
message as an attachment icon.

TCS Internal 17 March 2009 34


URL Attributes

TCS Internal 17 March 2009 35


Defining Functions for Oracle Workflow

TCS Internal 17 March 2009 36


Defining Oracle Workflow

TCS Internal 17 March 2009 37


Defining Oracle Workflow Item Type

TCS Internal 17 March 2009 38


Defining Oracle Workflow Item Type

TCS Internal 17 March 2009 39


Defining Oracle Workflow Item Type

TCS Internal 17 March 2009 40


Defining Oracle Workflow Item Type

TCS Internal 17 March 2009 41


Defining Oracle Workflow Item Type

TCS Internal 17 March 2009 42


Defining Oracle Workflow Attribute Type

TCS Internal 17 March 2009 43


Defining Oracle Workflow Functions

TCS Internal 17 March 2009 44


Defining Oracle Workflow Functions

TCS Internal 17 March 2009 45


Defining Oracle Workflow Functions

TCS Internal 17 March 2009 46


Defining Oracle Workflow Functions

TCS Internal 17 March 2009 47


Defining Oracle Workflow Functions

TCS Internal 17 March 2009 48


Defining Oracle Workflow Functions

TCS Internal 17 March 2009 49


Defining Oracle Workflow Functions

TCS Internal 17 March 2009 50


Defining Oracle Workflow Functions

TCS Internal 17 March 2009 51


Defining Oracle Workflow Functions

TCS Internal 17 March 2009 52


Defining Oracle Workflow Notifications

TCS Internal 17 March 2009 53


Defining Oracle Workflow Messages

TCS Internal 17 March 2009 54


Defining Oracle Workflow Messages

TCS Internal 17 March 2009 55


Defining Oracle Workflow Messages

TCS Internal 17 March 2009 56


Defining Oracle Workflow Notifications

TCS Internal 17 March 2009 57


Defining Oracle Workflow Process

TCS Internal 17 March 2009 58


Supported Process Constructs
Looping

Results-based branching

Parallel flows

Rendezvous

Voting

Timeouts

Escalation

Automatic forwarding

Sub-processes (unlimited hierarchy)

TCS Internal 17 March 2009 59


Defining Procedures for Oracle Workflow

TCS Internal 17 March 2009 60


Standard API for PL/SQL Procedures Called by Function
Activities

All PL/SQL stored procedures that are called by function or notification activities in an Oracle
Workflow process should follow this standard API format so that the Workflow Engine can properly
execute the activity.

The Workflow Engine traps errors produced by function activities by setting a savepoint before
each function activity. If an activity produces an unhandled exception, the engine performs a
rollback to the savepoint, and sets the activity to the ERROR status. For this reason, you should
never commit within the PL/SQL procedure of a function activity.

TCS Internal 17 March 2009 61


Standard API for PL/SQL Procedures Called by Function
Activities
Itemtype

The internal name for the item type. Item types are defined in the Oracle Workflow Builder.

Itemkey

A string that represents a primary key generated by the workflow-enabled application for the
item type. The string uniquely identifies the item within an item type.

Actid

The ID number of the activity from which this procedure is called.

TCS Internal 17 March 2009 62


Standard API for PL/SQL Procedures Called by Function
Activities
funcmode

The execution mode of the activity. If the activity is a function activity, the mode can be RUN,
CANCEL, SKIP, or RETRY.

If the activity is a notification activity, with a post-notification function, then the mode can be
RESPOND, FORWARD, TRANSFER, QUESTION, ANSWER, VALIDATE, TIMEOUT, or
RUN

resultout

If a result type is specified in the Activities properties page for the activity in the Oracle Workflow
Builder, this parameter represents the expected result that is returned when the procedure
completes.

COMPLETE:<result_code>

WAITING

DEFERRED:<date>

NOTIFIED:<notification_id>:<assigned_user>

ERROR:<error_code>

TCS Internal 17 March 2009 63


Standard API for PL/SQL Procedures Called by Function
Activities
procedure <procedure name>
(itemtype in varchar2,
itemkey in varchar2,
actid in number,
funcmode in varchar2,
resultout out varchar2) is

<local declarations>

Begin

if ( funcmode = RUN ) then


<your RUN executable statements>
resultout := COMPLETE:<result>;
return;
end if;

if ( funcmode = CANCEL ) then


<your CANCEL executable statements>
resultout := COMPLETE;
return;
end if;

TCS Internal 17 March 2009 64


WORKFLOW ENGINE APIs

TCS Internal 17 March 2009 65


Workflow Engine APIs
To start or run a workflow process

WF_ENGINE.CreateProcess creates a new runtime process for a work item.

WF_ENGINE.StartProcess begins execution of the specified process.

WF_ENGINE.LaunchProcess launches a specified process by creating the new runtime process


and beginning its execution.

WF_ENGINE.SetItemOwner sets the owner of an existing item.

WF_ENGINE.SetItemUserKey sets a user-friendly identifier for an item.

WF_ENGINE.GetItemUserKey returns the user-friendly identifier assigned to an item.

WF_ENGINE.SetItemParent defines the parent/child relationship for master/detail processes.

TCS Internal 17 March 2009 66


To communicate attribute information
To set the value of an item type attribute in a process

WF_ENGINE.SetItemAttrText,

WF_ENGINE.SetItemAttrNumber

To obtain the values of an item type attribute in a process

WF_ENGINE.GetItemAttrText,

WF_ENGINE.GetItemAttrNumber,

To adds a new item attribute to the runtime process

WF_ENGINE.AddItemAttr.

WF_ENGINE.AddItemAttrTextArray

To return the value of an activity attribute in a process

WF_ENGINE.GetActivityAttrText,

WF_ENGINE.GetActivityAttrNumber,

TCS Internal 17 March 2009 67


To communicate State Changes
To communicate state changes to the Workflow Engine

WF_ENGINE.CompleteActivity notifies the engine that the specified activity has been completed
for the item, identifying the activity by the activity node label name.

WF_ENGINE.BeginActivity determines if the specified activity can currently be performed and


raises an exception if it cannot.

WF_ENGINE.AssignActivity assigns an activity to another performer.

WF_ENGINE.AbortProcess aborts process execution and cancels outstanding notifications.

WF_ENGINE.SuspendProcess suspends process execution so that users cannot transition items


to new activities.

WF_ENGINE.ResumeProcess returns a suspended process to normal execution status.

WF_ENGINE.ItemStatus returns the status and results for the root process of the specified item
instance.

TCS Internal 17 March 2009 68


Oracle Workflow Compilation

TCS Internal 17 March 2009 69


Oracle Workflow Compilation

TCS Internal 17 March 2009 70


Oracle Workflow Compilation

TCS Internal 17 March 2009 71


Oracle Workflow - Example

TCS Internal 17 March 2009 72


Oracle Workflow - Example
Example Workflow Code

Package Spec

Package Body

Training workflow

Initiate workflow

TCS Internal 17 March 2009 73


Oracle Workflow - Example

TCS Internal 17 March 2009 74


Workflow Access Protection

TCS Internal 17 March 2009 75


Oracle Workflow Access Protection concepts

Oracle Workflow uses a feature called access protection to control modification of workflow
definitions.

As a workflow developer, you can use access protection to allow or discourage customers of
your workflows from modifying your seed data workflow definitions.

As a customer of predefined workflows provided by Oracle, you can use access protection to
preserve valid customizations you have made to a predefined workflow during a workflow
definition upgrade.

TCS Internal 17 March 2009 76


Oracle Workflow Access Protection concepts

All workflow objects except lookup codes, function attributes, and message attributes contain an
Access tab in their property pages. Lookup codes, function attributes, and message attributes
inherit their access settings from their parent lookup type, function, or message, respectively.

The Access tab lets you define whether:

o Future customizations to the object are preserved during a workflow definition upgrade.

o The object can be edited by users operating at a higher access level.

TCS Internal 17 March 2009 77


Oracle workflow Access Levels

Each user of Oracle Workflow Builder operates the system at a certain access level.

The access levels are defined as follows:

0-9: Reserved for Oracle Workflow

10-19: Reserved for Oracle Application Object Library

20-99: Reserved for Oracle E-Business Suite

100-999: Reserved for customer organizations

1000: Public

TCS Internal 17 March 2009 78


Protection Levels

If you protect an object against customization, you effectively assign the object a protection level
equal to your current access level.

Objects protected against customizations are considered seed data.

Only users operating at an access level equal to or lower than the protection level of the object
can modify the object.

Users operating at an access level greater than the protection level of the object will see a small
lock on the icon for the object in the navigator tree, indicating that the object is read-only.

TCS Internal 17 March 2009 79


Customization Levels

If you set an object to be customizable, its protection level is set to 1000.

The customization level of an object is set to the access level of the initial user who customizes
the object.

A customized object is locked from further modification except from users with access levels
equal to the customization level of the object.

The customization level is relevant only with respect to unprotected workflow objects.

If an object is protected at a certain level, it shouldnt be modified at all except by an access level
equal to or less than the protected level of the object.

You can change your access level in the About Oracle Workflow Builder dialog box available

from the Help menu. Enter an integer value in the Access Level field and click OK.

TCS Internal 17 March 2009 80


Customization Levels

TCS Internal 17 March 2009 81


Setting Protection and Customization Levels
Select the Access tab for an object in Oracle Workflow Builder to display the Access property page.

The indicator bar provides a visual range of access levels that can edit the object.

The Levels region shows the customization, access, and protection levels of the object based on the settings in
the Options region.

Use the Options region to set the protection and customization levels of an object.

Preserve Customizations

Lock at this Access Level

The indicator bar provides a visual range of access levels that can edit the object-

Black vertical line: Current access level

White range: Cannot edit the object

Solid green: Can edit the object

Cross-hatch green: Usually cannot modify the object because it has been customized, but can now do
so because Oracle Workflow Builder is set to Upload mode so that customized objects can be modified

TCS Internal 17 March 2009 82


Setting Protection and Customization Levels
The Levels region shows the Customization, Access, and Protection levels of the object based on
how you set the check boxes in the Options region.

Use the Options region to set the protection and customization levels of an object.

Preserve Customizations: Prevents customized objects from being overwritten during a workflow
definition upgrade

Lock at this Access Level: Protects the object at the current access level and does

not allow the object to be customized by higher access levels

Oracle E-Business Suite customers should select both the Preserve Customizations and Lock at
this Access Level check boxes to protect your workflow objects during upgrades.

TCS Internal 17 March 2009 83


Oracle Workflow Access Protection concepts

TCS Internal 17 March 2009 84


Example of Access Protection
Assume you have an access level of 100.

Selected Options Resulting Level Edit Range


Customization = 0
None Access = 100 0-1000
Protection = 1000
Customization = 100
Preserve
Access = 100 100-1000
Customizations
Protection = 1000
Customization = 0
Lock at this
Access = 100 0-100
Access Level
Protection = 100
Customization = 100
Both Access = 100 100
Protection = 100

TCS Internal 17 March 2009 85


Preserving Customizations
To ensure that your customizations are preserved during an upgrade of Oracle Workflow:

Check your access level before you make your modifications to the predefined workflow process.

Oracle E-Business Suite: 100

Standalone Oracle Workflow: 100 or higher

Set the appropriate options in the Access property page for any object that you modify.

Oracle E-Business Suite: Select both the Preserve Customizations and Lock at this
Access Level options.

Standalone Oracle Workflow: Select the Preserve Customizations option. Optionally


select the Lock at this Access Level option.

During an Oracle Workflow seed data upgrade, the Workflow Definitions Loader is
always run in Upgrade mode at an access level less than 100. As a result, the upgrade
will not overwrite any object with a customization level of 100 or higher

TCS Internal 17 March 2009 86


Workflow Access Protection

TCS Internal 17 March 2009 87


Workflow Status Monitor

TCS Internal 17 March 2009 88


Status Monitor

Navigation

TCS Internal 17 March 2009 89


Status Monitor

Navigation

TCS Internal 17 March 2009 90


Status Monitor

TCS Internal 17 March 2009 91


Status Monitor

TCS Internal 17 March 2009 92


Status Monitor

TCS Internal 17 March 2009 93


Status Monitor

TCS Internal 17 March 2009 94


Status Monitor

TCS Internal 17 March 2009 95


Status Monitor

TCS Internal 17 March 2009 96


Status Monitor

TCS Internal 17 March 2009 97


Status Monitor

TCS Internal 17 March 2009 98


Workflow Notifications

TCS Internal 17 March 2009 99


Workflow Notifications

The Oracle Workflow Worklist Web pages let you view and respond to your notifications.

You can receive individual e-mail notifications

An e-mail notification contains all the details of the notification, including instructions on how to
respond to the notification.

TCS Internal 17 March 2009 100


Different types of notifications used in oracle workflows

TCS Internal 17 March 2009 101


Workflow Notifications Performer

A message is what a notification activity sends to a role in a workflow process. A message can
prompt a user for a reply or an action to take that determines what the next activity in the process
should be. The recipient of a workflow message is called the performer.

The Performer performs action on the workflow notification (i.e) Approve/ Reject etc.

When the workflow engine reaches a notification activity, it issues a Send() API call to the
Notification System to send the message to an assigned performer

The performer is a workflow user with a defined Role. The access for a particular workflow activity
is restricted using the roles.

TCS Internal 17 March 2009 102


Workflow Roles
Oracle Workflow roles are stored in the database, in the Oracle Workflow directory service.

The workflow Roles are referenced in the Workflow Process

One example of how roles are referenced in a workflow process is when you include a notification
activity in a process as a node. You must assign that node to a performer. The performer can be a
designated role or an item type attribute that dynamically returns a role.

To assign a performer to a role, you must initially load the roles from your Oracle Workflow
database into your Oracle Workflow Builder session.

Oracle Workflow allows you to create new ad hoc users and roles within a workflow process, to
add to your directory service. To do so, you define a function activity that makes a server-side call
to the appropriate WF_DIRECTORY API and include that function activity in your process
diagram.

TCS Internal 17 March 2009 103


Assigning node to a performer

TCS Internal 17 March 2009 104


Defining Workflow Roles
Directory Service API s

The following APIs can be called by an application program or a workflow function in the runtime phase
to retrieve information about existing users and roles, as well as create and manage new ad hoc users
and roles in the directory service. These APIs are defined in a PL/SQL package called
WF_DIRECTORY .

CreateAdHocUser GetRoleUsers
CreateAdHocRole GetUserRoles
AddUsersToAdHocRole IsPerformer
RemoveUsersFromAdHocRole UserActive
SetAdHocUserStatus GetUserName
SetAdHocRoleStatus GetRoleName
SetAdHocUserAttr GetRoleDisplayName
SetAdHocRoleAttr

TCS Internal 17 March 2009 105


Oracle Workflow Basics

Thank You

TCS Internal 17 March 2009 106

You might also like