Download - Oracle Workflow

Transcript
Page 1: Oracle Workflow

1Version 1.0

Oracle Workflow

Page 2: Oracle Workflow

2Version 1.0

Agenda

Overview Workflow Builder

– Workflow Components

– Create Workflow Process

– Item Type - “Standard” Workflow Architecture Workflow Directory Services Workflow Monitor Workflow Item attributes Business Event System Workflow development Approaches Workflow Technical Architecture

Page 3: Oracle Workflow

3Version 1.0

Objectives

Know what is Oracle workflow Know how business processes are modelled with workflow

builder Know how workflow processes can be monitored Know architecture of Oracle workflow

Page 4: Oracle Workflow

4Version 1.0

Overview

Oracle Workflow is a Business Process Management tool. It is used for modeling, automating & monitoring Business

processes, during which documents, information or tasks are passed from one participant to another for action, according to a set of procedural rules. Here is a sample workflow process diagram..

Page 5: Oracle Workflow

5Version 1.0

Overview (Contd.).

Oracle Workflow accomplishes these important business requirements:

1. Models Business Process with Rules :– Oracle Workflow lets you model sophisticated business processes with

loop, branch, parallel flows and then decompose into subflows.

– Oracle Workflow can decide which path to take based on the result of a stored PL/SQL procedure.

2. Routes Information for necessary Action :– Routes information through Oracle Apps for action or notification.

– The attachments include self-service Web page and Application forms.

3. Delivers Electronic Notifications :– Delivers electronic notifications to any Oracle Applications user.

– Delivers electronic notifications to any e-mail or Internet user.

4. Integrating Systems– Oracle Workflow lets you set up subscriptions to business events which

can launch workflows.

– You can communicate events among systems within your own enterprise and with external systems as well to achieve complex system integration scenarios.

Page 6: Oracle Workflow

6Version 1.0

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.

Page 7: Oracle Workflow

7Version 1.0

Workflow Components

Data Store: A database connection or flat file that holds a workflow process definition.

Item Type: A specific business document or transaction eg. Purchase order can be an item type. All the workflow components mentioned below are grouped together as an Item type.

Item Type Attribute: A feature of the item type which stores information that can be globally referenced by any activity in a process. Also referred to as an item attribute.

Process Activity: A series of actions that need to be performed to accomplish a business goal. A process is represented by a workflow diagram. A process can include function activities, notification activities, event activities, and other subprocesses.

Event Activity: A business event modeled as an activity so that it can be included in a workflow process.

Notification Activity: A unit of work that requires human intervention. A notification activity sends a message to a performer.

Function Activity: An automated unit of work, usually defined as a PL/SQL stored procedure. A function activity can also run an external function. In the standalone version of Oracle Workflow, a function activity can also run a Java program on the middle tier.

Message: The information sent by a notification activity. The message may request the performer to do some work or may simply provide information.

Page 8: Oracle Workflow

8Version 1.0

Workflow Components (Contd.).

Lookup Type: A list of values that can be referenced by any activity in a workflow process. The values in the list are called lookup codes.

Transition: The relationship that defines the completion of one activity and the activation of another activity within a process. In a process diagram, a transition is represented as an arrow between two activities.

Item: A specific business document or transaction. For example, purchase order can be an item type while a purchase order identified by a particular ID number is an item of that item type.

Process Instance: A unique item being managed by a process.

Page 9: Oracle Workflow

9Version 1.0

Workflow Components (Contd.).

Process:

Function:

PL/SQL codereturns Result

Notification:

MessageFYI

Result Type =Lookup Type

Event:

Event Message (No Result)

ResponseRequired

ReceiveRaiseSend

‘Send’Attributes

‘Send’ and‘Respond’Attributes

RESULTResp 1Resp 2…

}

Result TResult F}

Result YResult N}

}F T

N

Y

Result A

Result B

Page 10: Oracle Workflow

10Version 1.0

Create Workflow Process

Version 1.0

Page 11: Oracle Workflow

11Version 1.0

Create Item Type

Open or create a data store in Navigator window. Right click and create an item type.

Assign an eight character internal name in upper case without colons or spaces.

Specify a persistence type of temporary or permanent. If temporary, then provide the no. of days after which its audit trail will be purged, once the workflow item instance is completed.

If any workflow item type has more than one runnable processes, the selector function identifies the specific process the workflow Engine should execute when a workflow is initiated for this item type.

Select the Access tab page to set the access and customization levels for this item type.

Page 12: Oracle Workflow

12Version 1.0

Create Item Attribute

Create an item attribute , assign it an internal name which must be uppercase, maximum 8 characters. this is not updatable and should not have colons or spaces.

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

Page 13: Oracle Workflow

13Version 1.0

Create Lookup Type

A lookup type is a static list of values. These lists can be referenced as Result type by function and notification activities. A message attribute can reference a lookup type as a means of providing a list of possible responses to the performer of a notification.

We can create an “Approval” lookup type, which will have 2 lookup codes viz: Approved & Rejected.

Page 14: Oracle Workflow

14Version 1.0

Create Lookup Code

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.

Right click on the lookup type and choose New lookup code to create a “APPROVED” lookup code.

Page 15: Oracle Workflow

15Version 1.0

Create Message

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, which is defined in Notification node.

The subject can include message attributes that get token replaced with runtime values.

To include a message attribute, use an ampersand (&) followed by the message attribute’s internal name.

You can enter plain text or html formatted message in the body.

Page 16: Oracle Workflow

16Version 1.0

Create Message Result and Attributes

Specify a display name and description for Message Result.

Select a lookup type from the poplist field. The lookup type you select should be identical to the lookup type specified for the notification activity’s result type.

Enter message attribute internal name.

Specify ’Send’ or ’Respond’ in the Source field to indicate whether this attribute should send information or prompt a recipient for a response.

The Display Name appears as the response prompt, If this is a ’Respond’ message attribute.

Page 17: Oracle Workflow

17Version 1.0

Create Notification Activity

The message sent by a notification activity can simply convey information or it can require a response.

If the message requires a response, then create “Send” message attributes that provide enough information for the recipient to respond, and also create “Respond” message attributes that prompt a response.

If you plan to assign this notification to a role consisting of multiple users and you want to send an individual copy of this notification to each user in the role, then check Expand Roles. If you uncheck Expand Roles, then only one copy of the notification is delivered to the role as a whole.

If you provide a PL/SQL procedure as Function, then it lets you add processing logic to the notification activity and also known as a post-notification function.

Page 18: Oracle Workflow

18Version 1.0

Create Function Activity

The PL/SQL procedure for a function activity can return some result that determines the next transition the Workflow Engine takes.

That result should be defined as a code in a lookup type.

Page 19: Oracle Workflow

19Version 1.0

Create Event Activity

An event activity can either receive, raise, or send a business event from the Business Event System. An event activity does not have a result, but you can branch on the contents of an event message using comparison activities provided in the Standard item type.

Page 20: Oracle Workflow

20Version 1.0

Create Process Activity

You can drag and drop activities from the navigator tree into the process window or create activities directly in the process window by right-click and choosing the option.

You define transitions between activities by drawing arrows from one node to the next by clicking the right mouse button and drawing it to the next activity while keeping it pressed.

Notification, function, event, and process activities make up the nodes of a process.

Page 21: Oracle Workflow

21Version 1.0

Workflow Technical Architecture

Version 1.0

Page 22: Oracle Workflow

22Version 1.0

Master Table List

WF_PROCESS_ACTIVITIES

WF_ACTIVITIES

WF_ACTIVITY_ATTRIBUTES

WF_ITEM_TYPES

WF_ITEM_ATTRIBUTES

WF_MESSAGES

WF_MESSAGE_ATTRIBUTES

WF_ROUTING_RULES

WF_ROUTING_RULE_ATTRIBUTES

Page 23: Oracle Workflow

23Version 1.0

Transaction Table List

WF_ACTIVITY_ATTR_VALUES

WF_ACTIVITY_TRANSITIONS

WF_ITEM_ACTIVITY_STATUSES

WF_ITEM_ACTIVITY_STATUSES_H

WF_ITEMS

WF_ITEM_ATTRIBUTE_VALUES

WF_NOTIFICATION_ATTRIBUTES

Page 24: Oracle Workflow

24Version 1.0

Views used in Workflow

Workflow uses views for effective querying of data. These views are de-normalized so as to provide a faster access to data over networks.

Some of the important views are:WF_ITEMS_VWF_ITEM_ACTIVITY_STATUSES_VWF_NOTIFICATIONS_VIEWSWF_ROLESWF_USERSWF_USER_ROLES

Page 25: Oracle Workflow

25Version 1.0

API’s used in Workflow

Various PL/SQL APIs exist for the working of Oracle Workflow.

WF_ENGINE

WF_CORE

WF_PURGE

WF_MONITOR

WF_QUEUE

WF_NOTIFICATIONS

These APIs can be used to create WF processes, send notifications, purge etc. These can essentially be used by the developer while developing any WF components (either customizing or creating new WF item types).

Page 26: Oracle Workflow

26Version 1.0

Workflow Transitions

Page 27: Oracle Workflow

27Version 1.0

Workflow Transitions

Activity-Each activity is a node, a logical step that contributes toward the completion of a process.

Transitions-Transitions appear as arrows in your diagram and represent the completion of one activity and the activation of another.

Different Types of Transitions:-a. Self-looping Transitions

b. <Default> Transitions

c. <Any> Transitions

Page 28: Oracle Workflow

28Version 1.0

Self-looping Transitions

Activity loopsback to itselfon Timeout

Page 29: Oracle Workflow

29Version 1.0

<Default> Transitions

The Workflow Engine follows a <Default> transition if no other transition matching the completion result exists.

Page 30: Oracle Workflow

30Version 1.0

<Any> Transitions

No

Ye s

Ap p ro ve

R e je c t

<Any>

Do c um e ntAp p ro ve d

Do c um e ntR e je c te d

E nd (R e je c t)

E nd (Ap p ro ve )

R e vie wDo c um e nt

S ta rt

Lo g R e vie w

The Workflow Engine follows an <Any> transition regardless of what completion result the activity returns. This allows you to include a generic activity in the process that the Workflow Engine executes in parallel with the result–specific activity.

Page 31: Oracle Workflow

31Version 1.0

Workflow Item Type - Standard

Version 1.0

Page 32: Oracle Workflow

32Version 1.0

Item Type - Standard

The seeded item type “Standard” includes function and notification activities provided by Oracle Workflow that can be included in your process diagrams. These activities include: And/Or : In a process diagram where multiple

branches transition to a single node, use this logic can be to progress further.

Compare Date/Number/Text : Use this to compare an item attribute with a constant value or another attribute.

Wait : You can wait until a time period after this activity is encountered or until a specific date or until a day of the week/month.

Block : The Block activity lets you pause a process until some external program or manual step completes and makes a call to the CompleteActivity Workflow Engine API.

Launch Process : This lets you launch another workflow process from the current process.

Noop : Use this activity in the workflow process, where you want to place a node without performing an action.

Page 33: Oracle Workflow

33Version 1.0

Item Type – Standard (Contd.).

Loop Counter : Use this to limit the no. of times workflow engine transitions through a particular path.

Start/End : These activities mark the start or end of a process and does not perform any action.

Vote Yes/No :This activity lets you send a notification to a group of users in a role and tally the Yes/No responses from those users. The results of the tally determine the activity that the process transitions to next.

Continue Flow/Wait for Flow : One activity lets you pause a process and the other signals the halted process to continue. To use these activities, you place one activity in the master process and the other in each detail process.

Assign : Lets you assign a value to an item attribute.

Page 34: Oracle Workflow

34Version 1.0

Workflow Directory Services

Page 35: Oracle Workflow

35Version 1.0

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.Create Roles:

Adhoc roles can be created using User Management Responsibility or through PL/SQL in database. If you use PL/SQL to create roles make sure you give all user names and role names in UPPER case to avoid some problems

· Script to Create a Adhoc Role

· Script to Add user to existing Adhoc Role

· Script to Remove user from existing Adhoc Role

· Using Adhoc roles in workflow notifications

· Adhoc Roles Tables

Page 36: Oracle Workflow

36Version 1.0

Script to Create a Adhoc Role

DECLARE lv_role varchar2(100) := 'DEMO_ROLE'; lv_role_desc varchar2(100) := 'DEMO_ROLE';

BEGIN wf_directory.CreateAdHocRole(lv_role, lv_role_desc, NULL, NULL, 'Role Demo for erpschool users', 'MAILHTML', 'NAME1 NAME2', --USER NAME SHOULD BE IN CAPS NULL, NULL, 'ACTIVE', NULL);

dbms_output.put_line('Created Role' ||' '||lv_role); End; /

Page 37: Oracle Workflow

37Version 1.0

Script to Add user to already existing Adhoc Role

DECLARE v_role_name varchar2(100); v_user_name varchar2(100);

BEGIN v_role_name := 'DEMO_ROLE'; v_user_name := 'NAME3'; WF_DIRECTORY.AddUsersToAdHocRole(v_role_name,

v_user_name); --USER NAMES SHOULD BE in CAPS END;

Page 38: Oracle Workflow

38Version 1.0

Script to Remove user from existing Adhoc Role

DECLARE v_role_name varchar2(100); v_user_name varchar2(100); BEGIN v_role_name := 'ERPSCHOOLS_DEMO_ROLE'; v_user_name := 'NAME3';

WF_DIRECTORY.RemoveUsersFromAdHocRole(v_role_name, v_user_name); --USER NAMES in CAPS

END;

Page 39: Oracle Workflow

39Version 1.0

Using Adhoc roles in workflow notifications

Navigation: File > Load Roles from Database

Select roles you want to use and then click OK.

Open the notification properties and then navigate to node tab, select performer as the role you just created and loaded from database.

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

WF_LOCAL_ROLESWF_USER_ROLE_ASSIGNMENTS

Page 40: Oracle Workflow

40Version 1.0

Oracle Workflow Monitor

Page 41: Oracle Workflow

41Version 1.0

Oracle Workflow Monitor

•Workflow administrators and users can view the progress of a work item in a workflowprocess by connecting to the Workflow Monitor using a standard Web browse.•The Self-Service Monitor in Oracle Applications lets you view and administerworkflows that you own. You can use the monitor to review the notifications sent bya workflow, check the progress of the workflow by viewing the status diagram, andexamine participant responses to notifications sent by the workflow.

Page 42: Oracle Workflow

42Version 1.0

Oracle Workflow Monitor

•The Workflow Monitor displays an annotated view of the process diagram for a particular instance of a workflow process •Users can get a graphical depiction of their work item status. •The Workflow Monitor also displays a separate status summary for the work item, the process, and each activity in the process.

Page 43: Oracle Workflow

43Version 1.0

Oracle Workflow Architecture

Page 44: Oracle Workflow

44Version 1.0

Workflow Architecture

Oracle ServerApplication

ServerEnd-User

Client

WorkflowDevelopment

Client

WebNotification

Worklist

WebMonitor

WebAnalysis

Tools

MailApplications

OracleHTTPServer

NotificationSystem

BusinessEvent

System

WorkflowEngine

DirectoryServices

Users Roles

AdvancedQueuing

Oracle WorkflowEnabled Application

WorkflowBuilder

WorkflowDefinitions

Loader

WorkflowDefinition

Files

NotificationMailer

WorkflowXML

Loader

Page 45: Oracle Workflow

45Version 1.0

Workflow Architecture (Contd.).

Oracle Workflow Architecture– Workflow Development Client

• The development client is a PC running on Windows. This platform is used to create and modify Oracle Workflow process definitions using Workflow Builder.

• Workflow Definitions Loader lets you transfer process definitions between a database and a flat file. This allows to source-control the processes as flat file.

• Workflow XML Loader lets you transfer XML definitions for Business Event System objects between a database and a flat file.

– Oracle Server• The Oracle Server platform is the Oracle RDBMS. This platform hosts the

business applications such as the Workflow Engine, Business Event System, Notification System, and directory services.

– Application Server• The application server is the environment outside of the RDBMS. This

environment includes ancillary services such as the Oracle9i Application Server (Oracle9iAS) as the web server, and the Notification Mailer.

– End-User Client• The end-user client is the PC that an end user uses to perform daily tasks.

This client includes browser support for reviewing and responding to notifications in the Notification Worklist, the Oracle Workflow Monitor and e-mail applications.

Page 46: Oracle Workflow

46Version 1.0

Workflow Item Attributes

Page 47: Oracle Workflow

47Version 1.0

Attribute Data Types

You can assign the following data types to attributes:– Text

– Number

– Date

– Lookup

– Role

– Attribute

– URL

– Form

– Document

– Event

Page 48: Oracle Workflow

48Version 1.0

URL Attributes

•URL Attributes : 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. •The value of a URL attribute can be a text string or can be token substituted. •A URL value is specified in the format: http://<location>

Page 49: Oracle Workflow

49Version 1.0

URL Attributes

Click the attachment icon to launch an attached URLin the Web browser

•The Notification Details web page supports message attributes of type URL. These attributes appear in a notification message body as a hypertext link or below the message as an attachment icon. When you open your notification, you can click the link or attachment icon to display the URL according to the frame target specified for the attribute.

Page 50: Oracle Workflow

50Version 1.0

Form Attributes

•Form Attribute Values : The value for an attribute of type form must be the internal function name of an Oracle E-Business Suite form function, together with any optional form parameters. •The default value for the form attribute must be entered using the following format:•function_name:parameter1=value1 parameter2=value2 ...parameterN=valueN•The value of a form parameter can be a text string enclosed in quotes (“ “) or can be token substituted with another predefined item type attribute in either of the following ways:

•parameterN = “&item_type_attribute”•parameterN = “Value &item_type_attribute”, where &item_type_attribute represents the rest of the value

Page 51: Oracle Workflow

51Version 1.0

Form Attributes

Click the form icon to launch an attached

Oracle E-Business Suite form

•Form Attributes : The Notification Details web page supports message attributes of type form. •These attributes appear in a notification message as a form icon.•When you open your notification, you can click the attached form icon to drill down to the referenced form.•Form attributes cannot be attached to e-mail notifications. To view form attachments, you must view the notification in the Notification Details web page.

Page 52: Oracle Workflow

52Version 1.0

Document Attributes

•Document attribute: The value for a document attribute should be a PL/SQL document ie. a document representing data from the database as a character string, generated from a PL/SQL procedure.

A PL/SQL document value is specified in the format: PLSQL:<procedure>/<document_identifier>

Page 53: Oracle Workflow

53Version 1.0

Document Attributes

Click the attachment icon to open an attached document

The Notification Details web page supports message attributes of type document. These attributes appear in a notification message as an inline link or as an attachment icon. When you open your notification, you can click a link or an attachment icon to open the referenced document.

Page 54: Oracle Workflow

54Version 1.0

Business Event System

Page 55: Oracle Workflow

55Version 1.0

An Event is a business activity that takes place in your system viz:

A Purchase Order is approved A Sales Order is Booked

When an event occurs, you may want to do some processing by means of calling a Workflow or by executing some PL/SQL Function. Such a workflow or a PL/SQL is called subscription.

eg: Booking an Order is an event and Sending an Acknowledgement to the Customer is a subscription.

Business Event System

Page 56: Oracle Workflow

56Version 1.0

Create Event and Subscription

Page 57: Oracle Workflow

57Version 1.0

Name the pl/sql function which we are attaching to the event. You may even attach a workflow type and process to the event.

Page 58: Oracle Workflow

58Version 1.0

Raise Business Event

Raise the Business event using wf_event.RAISE function from anonymous block or from a trigger when a Business transaction happens. As per the event subscription the pl/sql function will be executed or the workflow process will be executed.

– wf_event.RAISE(p_event_name => x_event_name

,p_event_key => x_event_key ,p_parameters => x_event_parameter_list );

Page 59: Oracle Workflow

59Version 1.0

Workflow Development Approaches

Page 60: Oracle Workflow

60Version 1.0

Workflow Approaches

Two approaches for creating work flow: -

Bottom Up Approach1.

Top Down Approach2.

Page 61: Oracle Workflow

61Version 1.0

Bottom Up Approach

1. Define the item type of the process.

2. Define the item type attributes for the process.

3. Define lookup types and lookup codes.

4. Define messages.

5. Define message attributes.

6. Define the activities in the process as Function, Notification or Process.

7. Diagram the relationship of the activities.

Page 62: Oracle Workflow

62Version 1.0

Top Down Approach

1. Use the Quick Start Wizard to create the process framework.

2. Define activities without underlying dependencies.

3. Diagram the relationship of the activities.

4. Define item type attributes for the process.

5. Define lookup types and lookup codes.

6. Define messages.

7. Define message attributes.

8. Update processes, functions, and notifications with underlying components.

Page 63: Oracle Workflow

63Version 1.0

References

1. Oracle Applications Documentation library - Oracle workflow Developer's Guide, http://download-uk.oracle.com/docs/cd/B25516_08/current/html/docset.html