Oracler Workflow Guide

RELEASE 2.6.2 VOLUME 1

March 2002

Oracle Workflow Guide Volume 1, Release 2.6.2 The part number for this volume is A95276–03 . To reorder this book, please use the set part number, A95265–03 . Copyright E 1996, 2002 Oracle Corporation. All rights reserved.

Primary Authors: Siu Chang, Clara Jaeckel Major Contributors: George Buzsaki, John Cordes, Mark Craig, Kevin Hudson, George Kellner, David Lam, Jin Liu, Kenneth Ma, Steve Mayze, Tim Roveda, Robin Seiden, Sheryl Sheh, Susan Stratton
The Programs (which include both the software and documentation) contain proprietary information of Oracle Corporation; they are provided under a license agreement containing restrictions on use and disclosure and are also protected by copyright, patent and other intellectual and industrial property laws. Reverse engineering, disassembly or decompilation of the Programs, except to the extent required to obtain interoperability with other independently created software or as specified by law, is prohibited. The information contained in this document is subject to change without notice. If you find any problems in the documentation, please report them to us in writing. Oracle Corporation does not warrant that this document is error–free. Except as may be expressly permitted in your license agreement for these Programs, no part of these Programs may be reproduced or transmitted in any form or by any means, electronic or mechanical, for any purpose, without the express written permission of Oracle Corporation. If the Programs are delivered to the US Government or anyone licensing or using the Programs on behalf of the US Government, the following notice is applicable: RESTRICTED RIGHTS NOTICE Programs delivered subject to the DOD FAR Supplement are ”commercial computer software” and use, duplication and disclosure of the Programs including documentation, shall be subject to the licensing restrictions set forth in the applicable Oracle license agreement. Otherwise, Programs delivered subject to the Federal Acquisition Regulations are ”restricted computer software” and use, duplication and disclosure of the Programs shall be subject to the restrictions in FAR 52.227–19, Commercial Computer Software – Restricted Rights (June, 1987). Oracle Corporation, 500 Oracle Parkway, Redwood City, CA 94065. The Programs are not intended for use in any nuclear, aviation, mass transit, medical, or other inherently dangerous applications. It shall be licensee’s responsibility to take all appropriate fail–safe, back up, redundancy and other measures to ensure the safe use of such applications if the Programs are used for such purposes, and Oracle disclaims liability for any damages caused by such use of the Programs. Oracle is a registered trademark, and Express, JInitiator, Oracle8, Oracle8i, Oracle9i, OracleMetaLink, Oracle Press, Oracle Store, PL/SQL, and SQL*Plus are trademarks or registered trademarks of Oracle Corporation. Other names may be trademarks of their respective owners.

Contents

VOLUME 1Volume 1 . . . . . . . . . . . . . . . . . . . . . . . . . .

i

Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Audience for This Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . How To Use This Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Documentation Accessibility . . . . . . . . . . . . . . . . . . . . . . . . . . . Other Information Sources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Online Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Related User’s Guides . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Guides Related to All Products . . . . . . . . . . . . . . . . . . . . . . . . . User Guides Related to This Product . . . . . . . . . . . . . . . . . . . . Installation and System Administration . . . . . . . . . . . . . . . . . Other Implementation Documentation . . . . . . . . . . . . . . . . . . Training and Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Do Not Use Database Tools to Modify Oracle Applications Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . About Oracle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Your Feedback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

xix xx xx xxi xxii xxii xxiii xxiii xxiv xxv xxvi xxviii xxix xxix xxx

Chapter 1

Overview of Oracle Workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . Introduction to Oracle Workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . Major Features and Definitions . . . . . . . . . . . . . . . . . . . . . . . . . Workflow Processes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1–1 1–2 1–3 1–6

Contents

iii

Chapter 2

Setting Up Oracle Workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Oracle Workflow Hardware and Software Requirements . . . . . . Overview of Setting Up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Overview of Required Setup Steps for the Standalone Version of Oracle Workflow . . . . . . . . . . . . . . . . . Overview of Required Setup Steps for the Version of Oracle Workflow Embedded in Oracle Applications . . . . . . Optional Setup Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Other Workflow Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Identifying the Version of Your Oracle Workflow Server . . . Setup Flowchart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Setup Checklist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Setup Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Overview of Oracle Workflow Access Protection . . . . . . . . . . . . . Setting Up a Default Access Level . . . . . . . . . . . . . . . . . . . . . . Using the Workflow Definitions Loader . . . . . . . . . . . . . . . . . . . . . Using the Workflow XML Loader . . . . . . . . . . . . . . . . . . . . . . . . . .

2–1 2–2 2–6 2–6 2–7 2–7 2–8 2–9 2 – 10 2 – 11 2 – 12 2 – 101 2 – 105 2 – 107 2 – 112

Chapter 3

Defining a Workflow Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Overview of Oracle Workflow Builder . . . . . . . . . . . . . . . . . . . . . . The Navigator Tree Structure . . . . . . . . . . . . . . . . . . . . . . . . . . Viewing the Navigator Tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . Creating Process Definitions in Oracle Workflow Builder . . . . . . Opening and Saving Item Types . . . . . . . . . . . . . . . . . . . . . . . . Quick Start Wizard Overview . . . . . . . . . . . . . . . . . . . . . . . . . . Using Oracle Workflow Builder with Different Server Versions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Item Type Definition Web Page . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3–1 3–2 3–3 3–4 3–7 3 – 12 3 – 18 3 – 21 3 – 24

Chapter 4

Defining Workflow Process Components . . . . . . . . . . . . . . . . . . Workflow Process Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . Item Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Allowing Access to an Object . . . . . . . . . . . . . . . . . . . . . . . . . . Lookup Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Activities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Voting Activity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Deleting Objects in Oracle Workflow Builder . . . . . . . . . . . . . . . . Modifying Objects in Oracle Workflow Builder . . . . . . . . . . . . . . Workflow Objects That Support Versioning . . . . . . . . . . . . . .

4–1 4–2 4–2 4 – 17 4 – 19 4 – 23 4 – 42 4 – 61 4 – 68 4 – 69 4 – 70

iv Oracle Workflow Guide

Workflow Objects That Do Not Support Versioning . . . . . . . 4 – 71

Chapter 5

Defining a Workflow Process Diagram . . . . . . . . . . . . . . . . . . . . Process Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Modifying Fonts in Oracle Workflow Builder . . . . . . . . . . . . Creating a Shortcut Icon for a Workflow Process . . . . . . . . . . Roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5–1 5–2 5 – 21 5 – 22 5 – 24

Chapter 6

Predefined Workflow Activities . . . . . . . . . . . . . . . . . . . . . . . . . . . Standard Activities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . And/Or Activities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Comparison Activities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Compare Execution Time Activity . . . . . . . . . . . . . . . . . . . . . . Wait Activity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Block Activity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Defer Thread Activity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Launch Process Activity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Noop Activity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Loop Counter Activity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Start Activity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . End Activity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Role Resolution Activity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Notify Activity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Vote Yes/No Activity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Master/Detail Coordination Activities . . . . . . . . . . . . . . . . . . Wait for Flow Activity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Continue Flow Activity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Assign Activity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Get Monitor URL Activity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Get Event Property Activity . . . . . . . . . . . . . . . . . . . . . . . . . . . Set Event Property Activity . . . . . . . . . . . . . . . . . . . . . . . . . . . . Compare Event Property Activity . . . . . . . . . . . . . . . . . . . . . . XML Get Tag Value Activity . . . . . . . . . . . . . . . . . . . . . . . . . . . XML Compare Tag Value Activities . . . . . . . . . . . . . . . . . . . . . XML Transform Activity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Concurrent Manager Standard Activities . . . . . . . . . . . . . . . . . . . . Execute Concurrent Program Activity . . . . . . . . . . . . . . . . . . . Submit Concurrent Program Activity . . . . . . . . . . . . . . . . . . . Wait for Concurrent Program Activity . . . . . . . . . . . . . . . . . . . Default Error Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6–1 6–2 6–2 6–3 6–3 6–4 6–5 6–6 6–6 6–7 6–7 6–8 6–8 6–9 6–9 6 – 10 6 – 11 6 – 12 6 – 12 6 – 14 6 – 14 6 – 15 6 – 15 6 – 16 6 – 18 6 – 19 6 – 20 6 – 22 6 – 22 6 – 23 6 – 24 6 – 26

Contents

v

System: Error Item Type and Item Attributes . . . . . . . . . . . . . Default Error Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Retry–only Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Default Event Error Process . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6 – 27 6 – 28 6 – 32 6 – 34

Chapter 7

Defining Procedures and Functions for Oracle Workflow . . . . Defining Procedures and Functions for Oracle Workflow . . . . . . Standard API for PL/SQL Procedures Called by Function Activities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Standard API for Java Procedures Called by Function Activities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Standard API for an Item Type Selector or Callback Function . . Standard APIs for ”PL/SQL” and ”PL/SQL CLOB” Documents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ”PL/SQL” Documents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ”PL/SQL CLOB” Documents . . . . . . . . . . . . . . . . . . . . . . . . . . Standard API for an Event Data Generate Function . . . . . . . . . . . Standard APIs for a Queue Handler . . . . . . . . . . . . . . . . . . . . . . . . Enqueue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Dequeue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Standard API for an Event Subscription Rule Function . . . . . . . .

7–1 7–2 7–3 7–8 7 – 13 7 – 17 7 – 17 7 – 19 7 – 21 7 – 23 7 – 23 7 – 24 7 – 25

Chapter 8

Oracle Workflow APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Oracle Workflow Procedures and Functions . . . . . . . . . . . . . . . . . Overview of the Workflow Engine . . . . . . . . . . . . . . . . . . . . . . . . . Oracle Workflow Java Interface . . . . . . . . . . . . . . . . . . . . . . . . Additional Workflow Engine Features . . . . . . . . . . . . . . . . . . Workflow Engine APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CreateProcess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SetItemUserKey . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetItemUserKey . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetActivityLabel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SetItemOwner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . StartProcess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LaunchProcess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SuspendProcess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ResumeProcess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AbortProcess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CreateForkProcess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . StartForkProcess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8–1 8–2 8–3 8–5 8–8 8 – 19 8 – 21 8 – 23 8 – 24 8 – 25 8 – 26 8 – 28 8 – 30 8 – 32 8 – 34 8 – 36 8 – 38 8 – 40

vi Oracle Workflow Guide

Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AddItemAttribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AddItemAttributeArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SetItemAttribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SetItemAttrDocument . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SetItemAttributeArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . getItemTypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetItemAttribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetItemAttrDocument . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetItemAttrClob . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . getItemAttributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetItemAttrInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetActivityAttrInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetActivityAttribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetActivityAttrClob . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BeginActivity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CompleteActivity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CompleteActivityInternalName . . . . . . . . . . . . . . . . . . . . . . . . AssignActivity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Event . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . HandleError . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SetItemParent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ItemStatus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . getProcessStatus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Workflow Function APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . loadItemAttributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . loadActivityAttributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . getActivityAttr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . getItemAttr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . setItemAttrValue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . execute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Workflow Attribute APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . WFAttribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . getName . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . getValue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . getType . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . getFormat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . getValueType . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . toString . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . compareTo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Workflow Core APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8 – 41 8 – 43 8 – 46 8 – 48 8 – 51 8 – 53 8 – 56 8 – 57 8 – 59 8 – 60 8 – 61 8 – 62 8 – 63 8 – 64 8 – 66 8 – 67 8 – 69 8 – 72 8 – 74 8 – 75 8 – 77 8 – 79 8 – 80 8 – 81 8 – 82 8 – 83 8 – 84 8 – 85 8 – 87 8 – 88 8 – 89 8 – 90 8 – 92 8 – 93 8 – 94 8 – 95 8 – 96 8 – 97 8 – 98 8 – 99 8 – 100 8 – 101

Contents

vii

CLEAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GET_ERROR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TOKEN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RAISE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CONTEXT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TRANSLATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Workflow Purge APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Items . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Activities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Notifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Total . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TotalPERM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AdHocDirectory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Purge Obsolete Workflow Runtime Data Concurrent Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Workflow Directory Service APIs . . . . . . . . . . . . . . . . . . . . . . . . . . GetRoleUsers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetUserRoles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetRoleInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetRoleInfo2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IsPerformer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . UserActive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetUserName . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetRoleName . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetRoleDisplayName . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SetAdHocUserStatus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SetAdHocRoleStatus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CreateAdHocUser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CreateAdHocRole . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AddUsersToAdHocRole . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SetAdHocUserExpiration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SetAdHocRoleExpiration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SetAdHocUserAttr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SetAdHocRoleAttr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RemoveUsersFromAdHocRole . . . . . . . . . . . . . . . . . . . . . . . . . Workflow LDAP APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Synch_changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Synch_all . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Schedule_changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Workflow Preferences API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . get_pref . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Workflow Monitor APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8 – 102 8 – 103 8 – 104 8 – 105 8 – 108 8 – 110 8 – 111 8 – 113 8 – 114 8 – 115 8 – 116 8 – 117 8 – 118 8 – 119 8 – 121 8 – 123 8 – 124 8 – 125 8 – 126 8 – 127 8 – 128 8 – 129 8 – 130 8 – 131 8 – 132 8 – 133 8 – 134 8 – 136 8 – 138 8 – 139 8 – 140 8 – 141 8 – 142 8 – 143 8 – 144 8 – 145 8 – 146 8 – 147 8 – 148 8 – 148 8 – 149

viii Oracle Workflow Guide

GetAccessKey . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetDiagramURL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetEnvelopeURL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetAdvancedEnvelopeURL . . . . . . . . . . . . . . . . . . . . . . . . . . . Oracle Workflow Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . WF_ITEM_ACTIVITY_STATUSES_V . . . . . . . . . . . . . . . . . . . WF_NOTIFICATION_ATTR_RESP_V . . . . . . . . . . . . . . . . . . . WF_RUNNABLE_PROCESSES_V . . . . . . . . . . . . . . . . . . . . . . WF_ITEMS_V . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Workflow Queue APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . EnqueueInbound . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DequeueOutbound . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DequeueEventDetail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PurgeEvent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PurgeItemType . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ProcessInboundQueue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetMessageHandle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DequeueException . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DeferredQueue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . InboundQueue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OutboundQueue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ClearMsgStack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CreateMsg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . WriteMsg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SetMsgAttr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SetMsgResult . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Document Management APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . get_launch_document_url . . . . . . . . . . . . . . . . . . . . . . . . . . . . . get_launch_attach_url . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . get_open_dm_display_window . . . . . . . . . . . . . . . . . . . . . . . . get_open_dm_attach_window . . . . . . . . . . . . . . . . . . . . . . . . . set_document_id_html . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Overview of the Oracle Workflow Notification System . . . . . . . . Notification Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Notification APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Send . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Custom Callback Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SendGroup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Forward . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Transfer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cancel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8 – 150 8 – 151 8 – 153 8 – 155 8 – 157 8 – 157 8 – 159 8 – 160 8 – 161 8 – 162 8 – 165 8 – 167 8 – 170 8 – 172 8 – 173 8 – 174 8 – 175 8 – 176 8 – 177 8 – 178 8 – 179 8 – 180 8 – 181 8 – 182 8 – 183 8 – 184 8 – 185 8 – 186 8 – 187 8 – 188 8 – 189 8 – 190 8 – 192 8 – 192 8 – 197 8 – 199 8 – 200 8 – 203 8 – 205 8 – 207 8 – 209

Contents

ix

CancelGroup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Respond . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Responder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VoteCount . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OpenNotificationsExist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Close . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AddAttr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SetAttribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetAttrInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetText . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetShortText . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetAttribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetAttrDoc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetSubject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetBody . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetShortBody . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TestContext . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AccessCheck . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . WorkCount . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . getNotifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . getNotificationAttributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . WriteToClob . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Overview of the Oracle Workflow Business Event System . . . . . Business Event System Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . Agent Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . getName . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . getSystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . setName . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . setSystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Parameter Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . getName . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . getValue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . setName . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . setValue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Parameter List Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Event Message Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Initialize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . getPriority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . getSendDate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . getReceiveDate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . getCorrelationID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8 – 210 8 – 211 8 – 212 8 – 213 8 – 214 8 – 215 8 – 216 8 – 217 8 – 219 8 – 220 8 – 221 8 – 222 8 – 223 8 – 225 8 – 226 8 – 227 8 – 228 8 – 229 8 – 230 8 – 231 8 – 232 8 – 233 8 – 234 8 – 235 8 – 236 8 – 237 8 – 237 8 – 237 8 – 238 8 – 238 8 – 239 8 – 239 8 – 239 8 – 240 8 – 240 8 – 241 8 – 242 8 – 245 8 – 245 8 – 245 8 – 246 8 – 246

x Oracle Workflow Guide

getParameterList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . getEventName . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . getEventKey . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . getEventData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . getFromAgent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . getToAgent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . getErrorSubscription . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . getErrorMessage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . getErrorStack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . setPriority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . setSendDate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . setReceiveDate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . setCorrelationID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . setParameterList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . setEventName . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . setEventKey . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . setEventData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . setFromAgent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . setToAgent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . setErrorSubscription . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . setErrorMessage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . setErrorStack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AddParameterToList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetValueForParameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Example for Using Abstract Datatypes . . . . . . . . . . . . . . . . . . Mapping Between WF_EVENT_T and OMBAQ_TEXT_MSG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Event APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Raise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Send . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . NewAgent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Enqueue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Listen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Workflow Agent Listener Concurrent Program . . . . . . . . . . . SetErrorInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SetDispatchMode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AddParameterToList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AddParameterToListPos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GetValueForParameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8 – 246 8 – 246 8 – 247 8 – 247 8 – 247 8 – 247 8 – 247 8 – 248 8 – 248 8 – 248 8 – 248 8 – 249 8 – 249 8 – 249 8 – 250 8 – 250 8 – 250 8 – 251 8 – 251 8 – 251 8 – 251 8 – 252 8 – 252 8 – 253 8 – 253 8 – 253 8 – 255 8 – 257 8 – 260 8 – 261 8 – 265 8 – 267 8 – 268 8 – 269 8 – 270 8 – 272 8 – 273 8 – 274 8 – 275 8 – 276 8 – 277

Contents

xi

GetValueForParameterPos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Event Subscription Rule Function APIs . . . . . . . . . . . . . . . . . . . . . Default_Rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Warning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Success . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Workflow_Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Error_Rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SetParametersIntoParameterList . . . . . . . . . . . . . . . . . . . . . . . . Event Function APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SubscriptionParameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AddCorrelation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Generate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Receive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Business Event System Replication APIs . . . . . . . . . . . . . . . . . . . . WF_EVENTS Document Type Definition . . . . . . . . . . . . . . . . WF_EVENTS_PKG.Generate . . . . . . . . . . . . . . . . . . . . . . . . . . WF_EVENTS_PKG.Receive . . . . . . . . . . . . . . . . . . . . . . . . . . . . WF_EVENT_GROUPS Document Type Definition . . . . . . . . WF_EVENT_GROUPS_PKG.Generate . . . . . . . . . . . . . . . . . . WF_EVENT_GROUPS_PKG.Receive . . . . . . . . . . . . . . . . . . . WF_SYSTEMS Document Type Definition . . . . . . . . . . . . . . . WF_SYSTEMS_PKG.Generate . . . . . . . . . . . . . . . . . . . . . . . . . . WF_SYSTEMS_PKG.Receive . . . . . . . . . . . . . . . . . . . . . . . . . . . WF_AGENTS Document Type Definition . . . . . . . . . . . . . . . . WF_AGENTS_PKG.Generate . . . . . . . . . . . . . . . . . . . . . . . . . . WF_AGENTS_PKG.Receive . . . . . . . . . . . . . . . . . . . . . . . . . . . WF_EVENT_SUBSCRIPTIONS Document Type Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . WF_EVENT_SUBSCRIPTIONS_PKG.Generate . . . . . . . . . . . WF_EVENT_SUBSCRIPTIONS_PKG.Receive . . . . . . . . . . . . Index

8 – 278 8 – 279 8 – 281 8 – 283 8 – 284 8 – 285 8 – 286 8 – 287 8 – 288 8 – 289 8 – 290 8 – 291 8 – 293 8 – 294 8 – 296 8 – 298 8 – 300 8 – 302 8 – 303 8 – 304 8 – 305 8 – 306 8 – 307 8 – 308 8 – 309 8 – 310 8 – 311 8 – 312 8 – 313 8 – 314 8 – 315 8 – 316

xii Oracle Workflow Guide

VOLUME 2Volume 2 . . . . . . . . . . . . . . . . . . . . . . . . . .

i

Chapter 9

Oracle Workflow Home Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 – 1 Accessing the Oracle Workflow Home Page . . . . . . . . . . . . . . . . . 9 – 2 Setting User Preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 – 6

Chapter 10

Viewing Notifications and Processing Responses . . . . . . . . . . . Overview of Notification Handling . . . . . . . . . . . . . . . . . . . . . . . . . Reviewing Notifications via Electronic Mail . . . . . . . . . . . . . . Viewing Notifications from a Web Browser . . . . . . . . . . . . . . Reviewing a Summary of Your Notifications via Electronic Mail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Defining Rules for Automatic Notification Processing . . . . .

10 – 1 10 – 2 10 – 2 10 – 12 10 – 24 10 – 25

Chapter 11

Monitoring Workflow Processes . . . . . . . . . . . . . . . . . . . . . . . . . . Overview of Workflow Monitoring . . . . . . . . . . . . . . . . . . . . . . . . . Workflow Monitor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Workflow Monitor Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11 – 1 11 – 2 11 – 2 11 – 7

Chapter 12

Testing a Workflow Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 – 1 Testing Workflow Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 – 2

Chapter 13

Managing Business Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Managing Business Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Agents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Event Subscriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Setting Up Message Propagation . . . . . . . . . . . . . . . . . . . . . . . Raising Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Signing Up Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Synchronizing Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Reviewing Local Queues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Workflow Agent Ping/Acknowledge . . . . . . . . . . . . . . . . . . . . . . . The Workflow Agent Ping/Acknowledge Item Type . . . . . . Summary of the Master Ping Process . . . . . . . . . . . . . . . . . . . . Master Ping Process Activities . . . . . . . . . . . . . . . . . . . . . . . . . Summary of the Detail Ping Process . . . . . . . . . . . . . . . . . . . .

13 – 1 13 – 2 13 – 4 13 – 17 13 – 22 13 – 34 13 – 53 13 – 65 13 – 67 13 – 70 13 – 72 13 – 77 13 – 78 13 – 79 13 – 80 13 – 81

Contents

xiii

Detail Ping Process Activities . . . . . . . . . . . . . . . . . . . . . . . . . . 13 – 82

Chapter 14

Predefined Workflow Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Predefined Workflow Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Event Definition Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Event Group Definition Events . . . . . . . . . . . . . . . . . . . . . . . . . System Definition Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Agent Definition Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Event Subscription Definition Events . . . . . . . . . . . . . . . . . . . Synchronize Event Systems Event . . . . . . . . . . . . . . . . . . . . . . Seed Event Group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ping Agent Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . System Signup Event . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Any Event . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Unexpected Event . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . User Entry Has Changed Event . . . . . . . . . . . . . . . . . . . . . . . . Workflow Send Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . The Workflow Send Protocol Item Type . . . . . . . . . . . . . . . . . Summary of the Workflow Event Protocol Process . . . . . . . . Workflow Event Protocol Process Activities . . . . . . . . . . . . . . Workflow Send Protocol Events . . . . . . . . . . . . . . . . . . . . . . . .

14 – 1 14 – 2 14 – 2 14 – 3 14 – 4 14 – 4 14 – 5 14 – 5 14 – 6 14 – 8 14 – 9 14 – 10 14 – 12 14 – 15 14 – 17 14 – 18 14 – 20 14 – 21 14 – 24

Chapter 15

Demonstration Workflow Processes . . . . . . . . . . . . . . . . . . . . . . . Sample Workflow Processes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Displaying the Process Diagram of a Sample Workflow . . . . Requisition Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Installing the Requisition Data Model . . . . . . . . . . . . . . . . . . . Initiating the Requisition Workflow . . . . . . . . . . . . . . . . . . . . . The Requisition Item Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Summary of the Requisition Approval Process . . . . . . . . . . . Requisition Process Activities . . . . . . . . . . . . . . . . . . . . . . . . . . Summary of the Notify Approver Subprocess . . . . . . . . . . . . Notify Approver Subprocess Activities . . . . . . . . . . . . . . . . . . Sample StartProcess Function . . . . . . . . . . . . . . . . . . . . . . . . . . Example Function Activities . . . . . . . . . . . . . . . . . . . . . . . . . . . Example: Select Approver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Example: Verify Authority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Example Notification Activity . . . . . . . . . . . . . . . . . . . . . . . . . . Example: Notify Requisition Approval Required . . . . . . . . . Product Survey Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

15 – 1 15 – 2 15 – 3 15 – 5 15 – 6 15 – 8 15 – 12 15 – 13 15 – 15 15 – 19 15 – 21 15 – 23 15 – 26 15 – 26 15 – 29 15 – 31 15 – 31 15 – 34

xiv Oracle Workflow Guide

Installing the Product Survey Data Model . . . . . . . . . . . . . . . Initiating the Product Survey Workflow . . . . . . . . . . . . . . . . . The Product Survey Item Type . . . . . . . . . . . . . . . . . . . . . . . . . Summary of the Survey – Single Process . . . . . . . . . . . . . . . . . Survey – Single Process Activities . . . . . . . . . . . . . . . . . . . . . . Summary of the Survey – Master/Detail Process . . . . . . . . . Survey – Master/Detail Process Activities . . . . . . . . . . . . . . . Summary of the Detail Survey Process . . . . . . . . . . . . . . . . . . Detail Survey Process Activities . . . . . . . . . . . . . . . . . . . . . . . . Document Review Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . The Document Management Item Type . . . . . . . . . . . . . . . . . . Summary of the Document Review Process . . . . . . . . . . . . . . Document Review Process Activities . . . . . . . . . . . . . . . . . . . . Error Check Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . The Periodic Alert Item Type . . . . . . . . . . . . . . . . . . . . . . . . . . . Summary of the Error Check Process . . . . . . . . . . . . . . . . . . . . Error Check Process Activities . . . . . . . . . . . . . . . . . . . . . . . . . Summary of the User Defined Alert Action Process . . . . . . . User Defined Alert Action Process Activities . . . . . . . . . . . . . Event System Demonstration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Installing the Event System Demonstration Data Model . . . Initiating the Event System Demonstration Workflow . . . . . The Event System Demonstration Item Type . . . . . . . . . . . . . Summary of the Buyer: Top Level PO Process . . . . . . . . . . . . Buyer: Top Level PO Process Activities . . . . . . . . . . . . . . . . . . Summary of the Buyer: Send PO to Supplier Subprocess . . . Buyer: Send PO to Supplier Subprocess Activities . . . . . . . . Summary of the Buyer: Receive Supplier PO Acknowledgement Subprocess . . . . . . . . . . . . . . . . . . . . . . . . . Buyer: Receive Supplier PO Acknowledgement Subprocess Activities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Summary of the Buyer: Advanced Shipment Notice Subprocess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Buyer: Advanced Shipment Notice Subprocess Activities . . Summary of the Buyer: Receive Supplier Invoicing Subprocess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Buyer: Receive Supplier Invoicing Subprocess Activities . . . Summary of the Supplier: Top Level Order Process . . . . . . . Supplier: Top Level Order Process Activities . . . . . . . . . . . . . Summary of the Supplier: Get Order Details Subprocess . . . Supplier: Get Order Details Subprocess Activities . . . . . . . . . Summary of the Supplier: Credit Check Subprocess . . . . . . .

15 – 35 15 – 36 15 – 38 15 – 39 15 – 41 15 – 42 15 – 44 15 – 46 15 – 47 15 – 49 15 – 49 15 – 50 15 – 52 15 – 54 15 – 54 15 – 56 15 – 57 15 – 60 15 – 61 15 – 63 15 – 64 15 – 66 15 – 71 15 – 73 15 – 75 15 – 78 15 – 78 15 – 80 15 – 81 15 – 83 15 – 84 15 – 85 15 – 86 15 – 87 15 – 88 15 – 91 15 – 92 15 – 94

Contents

xv

Supplier: Credit Check Subprocess Activities . . . . . . . . . . . . . Summary of the Supplier: Stock Check Subprocess . . . . . . . . Supplier: Stock Check Subprocess Activities . . . . . . . . . . . . . Summary of the Supplier: Advanced Shipment Notice Subprocess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Supplier: Advanced Shipment Notice Subprocess Activities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Summary of the Supplier: Send Supplier Invoice Subprocess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Supplier: Send Supplier Invoice Subprocess Activities . . . . . B2B Purchase Order Event . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B2B Purchase Order Acknowledgement Event . . . . . . . . . . . B2B Advanced Shipment Notice Event . . . . . . . . . . . . . . . . . . B2B Invoice Event . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

15 – 95 15 – 96 15 – 97 15 – 98 15 – 99 15 – 100 15 – 101 15 – 102 15 – 105 15 – 106 15 – 107

Chapter 16

Workflow Administration Scripts . . . . . . . . . . . . . . . . . . . . . . . . . Miscellaneous SQL Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FNDWFLST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FNDWFPR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . WFNLADD.sql . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Wfagtlst.sql . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Wfbkg.sql . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Wfbkgchk.sql . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Wfchact.sql . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Wfchacta.sql . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Wfchita.sql . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Wfchitt.sql . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Wfchluc.sql . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Wfchlut.sql . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Wfchmsg.sql . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Wfchmsga.sql . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Wfdirchk.sql . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Wfevtenq.sql . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Wfjvstop.sql . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Wfmqupd.sql . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Wfnlena.sql . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Wfntfsh.sql . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Wfprot.sql . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Wfqclean.sql . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Wfrefchk.sql . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Wfretry.sql . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Wfrmall.sql . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

16 – 1 16 – 2 16 – 4 16 – 5 16 – 5 16 – 6 16 – 6 16 – 7 16 – 7 16 – 7 16 – 8 16 – 8 16 – 8 16 – 9 16 – 9 16 – 9 16 – 10 16 – 10 16 – 11 16 – 12 16 – 12 16 – 12 16 – 12 16 – 13 16 – 13 16 – 13 16 – 14

xvi Oracle Workflow Guide

Wfrmita.sql . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Wfrmitms.sql . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Wfrmitt.sql . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Wfrmtype.sql . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Wfrun.sql . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Wfstat.sql . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Wfstatus.sql . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Wfstdchk.sql . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Wfver.sql . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Wfverchk.sql . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Wfverupd.sql . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

16 – 14 16 – 15 16 – 15 16 – 15 16 – 15 16 – 16 16 – 16 16 – 16 16 – 16 16 – 17 16 – 17

Appendix A

Oracle Workflow Builder Menus and Toolbars . . . . . . . . . . . . . A – 1 Oracle Workflow Builder Menus . . . . . . . . . . . . . . . . . . . . . . . . . . . A – 2 Oracle Workflow Builder Toolbars . . . . . . . . . . . . . . . . . . . . . . . . . A – 7

Appendix B

Oracle Workflow Implementation in Other Oracle Products . Predefined Workflows Embedded in Oracle E–Business Suite . . Oracle Workflow Business Event System Implementation in Oracle E–Business Suite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Oracle Workflow Implementation in the Oracle9i Platform . . . . Oracle Support Policy for Predefined Workflows, Events, and Subscriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Customization Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Resolving Customization Issues . . . . . . . . . . . . . . . . . . . . . . . . What Is NOT Supported . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . What Is Supported . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

B–1 B–2 B – 16 B – 18 B – 20 B – 20 B – 21 B – 21 B – 21

Appendix C

Oracle Workflow Performance Concepts . . . . . . . . . . . . . . . . . . . Oracle Workflow Performance Concepts . . . . . . . . . . . . . . . . . . . . Designing Workflow Processes for Performance . . . . . . . . . . Managing Runtime Data for Performance . . . . . . . . . . . . . . . Glossary Index

C–1 C–2 C–2 C–8

Contents

xvii

xviii Oracle Workflow Guide

Preface

Preface

xix

Audience for This Guide
Welcome to the Oracle Workflow Guide. This guide assumes you have a working knowledge of the following: • The principles and customary practices of your business area. • Oracle Workflow If you have never used Oracle Workflow, Oracle suggests you attend one or more of the Oracle Workflow training classes available through Oracle University. See Other Information Sources for more information about Oracle Applications product information. The Oracle Workflow Guide also assumes you have a basic understanding of operating system concepts and familiarity with Oracle database server, PL/SQL, and Oracle9i Application Server technology. If you have not yet been introduced to any of these systems, Oracle suggests you attend one or more of the training classes available through Oracle University.

How To Use This Guide
This guide contains the information you need to understand and use Oracle Workflow. • Chapter 1 provides an overview of Oracle Workflow. • Chapter 2 describes how to implement Oracle Workflow for your site. • Chapter 3 describes how to begin defining a workflow process. • Chapter 4 describes how to define the components necessary to build a workflow process. • Chapter 5 describes how to draw and define a workflow process diagram. • Chapter 6 describes the standard activities provided with Oracle Workflow. • Chapter 7 describes the standard APIs for the PL/SQL and Java functions that can be called by Oracle Workflow. • Chapter 8 provides detailed information about Oracle Workflow’s APIs.

xx

Oracle Workflow Guide

• Chapter 9 describes the Oracle Workflow home page, where users and administrators can centrally access all the web–based features of Oracle Workflow. • Chapter 10 discusses how a user can view and act on a workflow notification. • Chapter 11 describes how to use the Workflow Monitor to administer or view the status of a workflow process. • Chapter 12 describes how to launch a workflow process for testing purposes. • Chapter 13 describes how to manage business events. • Chapter 14 describes the standard events provided with Oracle Workflow. • Chapter 15 describes the demonstration workflow processes included with Oracle Workflow. • Chapter 16 describes the miscellaneous administrative SQL scripts included with Oracle Workflow. • Appendix A describes the Oracle Workflow Builder menus and toolbar. • Appendix B lists the predefined workflow processes that are included with the Oracle Applications–embedded version of Oracle Workflow, the Oracle Applications features that leverage the Business Event System, and the Oracle9i platform features that leverage Oracle Workflow. This appendix also includes the Oracle Workflow support policy. • Appendix C describes concepts and techniques that you can use for performance gain when running Oracle Workflow. At the end of this guide, we include a glossary of Oracle Workflow terms.

Documentation Accessibility
Our goal is to make Oracle products, services, and supporting documentation accessible, with good usability, to the disabled community. To that end, our documentation includes features that make information available to users of assistive technology. This documentation is available in HTML format, and contains markup to facilitate access by the disabled community. Standards will continue to evolve over time, and Oracle Corporation is actively engaged with other market–leading technology vendors to address technical

Preface

xxi

com/accessibility/. this document describes the new features. Oracle Corporation neither evaluates nor makes any representations regarding the accessibility of these Web sites. The new features section also includes information about any features that were not yet available when this guide was printed. and support services. Online Documentation If you are using the version of Oracle Workflow embedded in Oracle Applications. For additional information. a Windows screen reader. training. The conventions for writing code require that closing braces should appear on an otherwise empty line.obstacles so that our documentation can be accessible to all of our customers. use only the Release 11i versions of those guides. For example. • Online Help – The new features section in the HTML help describes new features in 11i. may not always correctly read the code examples in this document. note that all Oracle Applications documentation is available online (HTML or PDF). JAWS may not always read a line of text that consists solely of a bracket or brace.oracle. This information is updated for each new release of Oracle Workflow. Accessibility of Links to External Web Sites in Documentation This documentation may contain links to Web sites of other companies or organizations that Oracle Corporation does not own or control. If this guide refers you to other Oracle Applications documentation. xxii Oracle Workflow Guide . visit the Oracle Accessibility Program Web site at http://www. however. if your administrator has installed software from a mini–pack or an upgrade. including online documentation. to increase your knowledge and understanding of Oracle Workflow. Accessibility of Code Examples in Documentation JAWS. Online help patches are available on OracleMetaLink. Other Information Sources You can choose from many sources of information.

you can purchase them from the Oracle Store at http://oraclestore. If you require printed guides. run reports.• 11i Features Matrix – This document lists new features available by patch and identifies any associated new documentation. The Windows Help is available from the Oracle Workflow Builder Help menu. as well as running and reviewing reports and concurrent processes. This guide also includes information on setting user profiles. or by using a Web browser with a URL that your system administrator provides. query. Guides Related to All Products Oracle Applications User’s Guide This guide explains how to enter data. and portions of the guide are available in Windows Help format as well. If you are using the standalone version of Oracle Workflow. Portions of this guide are also available online in Windows Help format. You can read the guides online by choosing Library from the expandable menu on your HTML help window. note that this guide is available online in HTML format.com. and navigate using the graphical user interface (GUI) available with this release of Oracle Workflow (and any other Oracle Applications products). The Windows Help is available from the Oracle Workflow Builder Help menu. if you are using the version of Oracle Workflow embedded in Oracle Applications. Related User’s Guides Oracle Workflow is used by other Oracle Applications products to provide embedded workflows. The new features matrix document is available on OracleMetaLink. Therefore. The HTML documentation is available from a URL provided by your system administrator or from the help icon in the Oracle Workflow web pages. • Readme File – Refer to the readme file for patches that you have installed to learn about new documentation or documentation patches that you can download. Preface xxiii .oracle. you may want to refer to other user’s guides when you set up and use Oracle Workflow to learn more about the embedded workflows. by reading from the Oracle Applications Document Library CD included in your media pack.

expenditures. xxiv Oracle Workflow Guide . Oracle Projects User Guide This guide provides information about entering and managing projects. costing. and multi–company accounting and consolidation. invoices. and billing. Implementing Oracle Self–Service Human Resources (SSHR) This guide provides information about setting up the self–service human resources management functions for managers and employees. Oracle Business Intelligence System Implementation Guide This guide provides information about implementing Oracle Business Intelligence (BIS) in your environment. Oracle Receivables User Guide This guide provides information about entering and managing customers. budgeting. User Guides Related to This Product Oracle General Ledger User Guide This guide provides information about journal entry. and transactions. budgets. and payments. Oracle Purchasing User’s Guide This guide provides information about entering and managing purchase orders and requisitions.You can access this user’s guide online by choosing ”Getting Started with Oracle Applications” from any Oracle Applications help file. collections. Managers and employees can then use an intranet and Web browser to have easy and intuitive access to personal and career management functionality Oracle Payables User Guide This guide provides information about entering and managing suppliers. receipts.

Discoverer workbooks. Installing Oracle Applications This guide provides instructions for managing the installation of Oracle Applications products. Upgrading Oracle Applications Refer to this guide if you are upgrading your Oracle Applications Release 10. This guide also introduces the concepts behind Applications–wide features such as Business Intelligence (BIS). You should use this guide in conjunction with individual product user’s guides and implementation guides. technology stack. which minimizes the time to install Oracle Applications. It provides a useful first book to read before an installation of Oracle Applications. and terminology for Oracle Applications Release 11i. architecture.7 or Release 11. Installation and System Administration Oracle Applications Concepts This guide provides an introduction to the concepts. and the Performance Management Framework. features. Oracle XML Gateway User’s Guide This guide explains how to implement the production and consumption of valid. In Release 11i. the Oracle8 technology stack. This guide describes the upgrade process and lists database and product–specific Preface xxv .0 products to Release 11i. and the Oracle8i Server technology stack by automating many of the required steps.BIS 11i User Guide Online Help This guide is provided as online help only from the BIS application and includes information about intelligence reports. and Self–Service Web Applications. This guide contains instructions for using Oracle Rapid Install and lists the tasks you need to perform to finish your installation. much of the installation process is handled using Oracle Rapid Install. languages and character sets. well–formed XML messages between Oracle Applications and trading partners. Oracle Financials Open Interface Reference This guide is a compilation of all open interface descriptions in all Oracle Financial Applications user’s guides.

SmartClient. Oracle Applications System Administrator’s Guide This guide provides planning and reference information for the Oracle Applications System Administrator. such as AutoUpgrade. Oracle Alert User’s Guide This guide explains how to define periodic and event alerts to monitor the status of your Oracle Applications data.upgrade tasks. AutoPatch. License Manager. It also provides information to help you build your custom Oracle Forms Developer 6i forms so that they integrate with Oracle Applications. This guide also provides information on maintaining the Oracle applications file system and database. and other information that you need to run the AD utilities. Oracle Applications Developer’s Guide This guide contains the coding standards followed by the Oracle Applications development staff. AD Controller. xxvi Oracle Workflow Guide . and others. to upgrade to Release 11i. You must be either at Release 10. It describes the Oracle Application Object Library components needed to implement the Oracle Applications user interface described in the Oracle Applications User Interface Standards for Forms–Based Products. Other Implementation Documentation Oracle Applications Product Update Notes Use this guide as a reference for upgrading an installation of Oracle Applications.0 and Release 11i. screenshots.0. or character mode) or Release 11. and changes made to database objects. It provides a history of the changes to individual Oracle Applications products between Release 11. profile options. and manage concurrent processing. enhancements. It contains how–to steps. You cannot upgrade to Release 11i directly from releases prior to 10. Maintaining Oracle Applications Use this guide to help you run the various AD utilities. and seed data for this interval. It includes new features.7. customize menus and online help. AD Relink. It contains information on how to define security. AD Administration.7 (NCA.

reports. setup and reference information for the Oracle Workflow implementation team. This manual also provides information on creating custom reports on flexfields data. This information helps you convert data from your existing applications.Multiple Reporting Currencies in Oracle Applications If you use the Multiple Reporting Currencies feature to record transactions in more than one currency. Oracle eTechnical Reference Manuals Each eTechnical Reference Manual (eTRM) contains database diagrams and a detailed description of database tables. This manual details additional steps and setup considerations for implementing Oracle Workflow with this feature. Preface xxvii . Oracle Applications User Interface Standards for Forms–Based Products This guide contains the user interface (UI) standards followed by the Oracle Applications development staff. Multiple Organizations in Oracle Applications This guide describes how to set up and use Oracle Workflow with Oracle Applications’ Multiple Organization support feature. It describes the UI for the Oracle Applications products and how to apply this UI to the design of an application built by using Oracle Forms. use this manual before implementing Oracle Workflow. as well as for users responsible for the ongoing maintenance of Oracle Applications product data. and programs for a specific Oracle Applications product. forms. integrate Oracle Applications data with non–Oracle applications. Oracle Applications Flexfields Guide This guide provides flexfields planning. so you can define and support different organization structures when running a single installation of Oracle Workflow. Oracle Manufacturing APIs and Open Interfaces Manual This manual contains up–to–date information about integrating with other Oracle Manufacturing applications and with your other systems. and write custom reports for Oracle Applications products. Oracle eTRM is available on OracleMetaLink.

and data as examples in a customized training session delivered at your own facility. Training and Support Training Oracle offers a complete set of training courses to help you and your staff master Oracle Workflow and reach full productivity quickly. you may want to use your organization structure. You have a choice of educational environments.This documentation includes APIs and open interfaces found in Oracle Manufacturing. and your hardware and software environment. our team of experienced professionals provides the help and information you need to keep Oracle Workflow working for you. For example. Support From on–site support to central support. and Oracle’s large staff of consultants and support specialists with expertise in your business area. Oracle University’s online education utility. terminology. These courses are organized into functional learning paths. Oracle Applications Message Reference Manual This manual describes all Oracle Applications messages. You can attend courses offered by Oracle University at any one of our many Education Centers. In addition. This manual is available in HTML format on the documentation CD–ROM for Release 11i. This documentation includes APIs and open interfaces found in Oracle Order Management Suite. managing an Oracle database server. Oracle training professionals can tailor standard courses or develop custom courses to meet your needs. This team includes your Technical Representative and Account Manager. you can arrange for our trainers to teach at your facility. Oracle Order Management Suite APIs and Open Interfaces Manual This manual contains up–to–date information about integrating with other Oracle Manufacturing applications and with your other systems. so you take only those courses appropriate to your job or area of responsibility. xxviii Oracle Workflow Guide . or you can use Oracle Learning Network (OLN).

change. minicomputers.Do Not Use Database Tools to Modify Oracle Applications Data Oracle STRONGLY RECOMMENDS that you never use SQL*Plus. you may change a row in one table without making corresponding changes in related tables. If your tables get out of synchronization with each other. supply chain management. unified computing and information resource. Oracle products are available for mainframes. manufacturing. database triggers. and office automation. But when you modify Oracle Applications data using anything other than Oracle Applications. and customer relationship management. and even different database management systems. decision support. When you use Oracle Applications to modify your data. Oracle Applications also keeps track of who changes information. Because Oracle Applications tables are interrelated. personal computers. allowing organizations to integrate different computers. If you enter information into database tables using database tools. or any other tool to modify Oracle Applications data unless otherwise instructed. different networks. human resources. Oracle provides powerful tools you can use to create. retrieve. You also lose the ability to track who has changed your information because SQL*Plus and other database tools do not keep a record of changes. as well as Oracle Applications. store. into a single. applications development. you risk destroying the integrity of your data and you lose the ability to audit changes to your data. any change you make using Oracle Applications can update many tables at once. Preface xxix . an integrated suite of more than 160 software modules for financial management. network computers and personal digital assistants. But if you use Oracle tools such as SQL*Plus to modify Oracle Applications data. Oracle Data Browser. different operating systems. you may store invalid information. you risk retrieving erroneous information and you risk unpredictable results throughout Oracle Applications. Oracle Applications automatically checks that your changes are valid. project systems. About Oracle Oracle Corporation develops and markets an integrated line of software products for database management. and maintain information in an Oracle database.

com. Mail your comments to the following address or call us directly at (650) 506–7000. CA 94065 U. and the world’s second largest software company.A. Your Feedback Thank you for using Oracle Workflow and this guide. Oracle Applications Documentation Manager Oracle Corporation 500 Oracle Parkway Redwood Shores. tools. in over 145 countries around the world. xxx Oracle Workflow Guide . and applications products.S. At the end of this guide is a Reader’s Comment Form you can use to explain what you like or dislike about Oracle Workflow or this guide. along with related consulting. and support services. Oracle offers its database. education. Oracle values your comments and feedback. Or.Oracle is the world’s leading supplier of software for information management. send electronic mail to appsdoc_us@oracle.

which communicates business events between systems. • The Business Event System. which implements process definitions at runtime. a graphical tool that lets you create business process definitions. • Workflow Monitor. which allows you to track your workflow process using a web browser. which sends notifications to and processes responses from users in a workflow. These features include: • Oracle Workflow Builder. • The Notifications System. T Overview of Oracle Workflow 1–1 .CHAPTER 1 Overview of Oracle Workflow his chapter introduces you to the concept of a workflow process and to the major features of Oracle Workflow. • The Workflow Engine.

Oracle Workflow lets you model sophisticated business processes. Unlike workflow systems that simply route documents from one user to another with some approval steps.Introduction to Oracle Workflow Business processes today involve getting many types of information to multiple people according to rules that are constantly changing. the language of the Oracle database server. you can use the full power of PL/SQL. Defining and Modifying Business Rules Oracle Workflow lets you define and continuously improve your business processes using a drag–and–drop process designer. and act based on their e–mail responses. You can define processes that loop. You can even view your list of things to do. See: Major Features and Definitions: page 1 – 3. including necessary supporting information. and take action using a standard Web browser. and more. Oracle Workflow can route supporting information to each decision maker in a business process. Oracle Workflow lets people receive notifications of items awaiting their attention via e–mail. Oracle Workflow lets you automate and continuously improve business processes. See: Workflow Processes: page 1 – 6. how do you get the right information to the right people? Oracle Workflow lets you provide each person with all the information they need to take action. and in so many different forms. 1–2 Oracle Workflow Guide . routing information of any type according to business rules you can easily change to people both inside and outside your enterprise. to express any business rule that affects a workflow process. Because Oracle Workflow can decide which path to take based on the result of a stored procedure. branch into parallel flows and then rendezvous. decompose into subflows. Delivering Electronic Notifications Oracle Workflow extends the reach of business process automation throughout the enterprise and beyond to include any e–mail or Internet user. Routing Information With so much information available.

you can operate Oracle Workflow Builder from a desktop PC or from a disconnected laptop PC.Integrating Systems Oracle Workflow lets you set up subscriptions to business events which can launch workflows or enable messages to be propagated from one system to another when business events occur. item types. Workflow Engine The Workflow Engine embedded in the Oracle database server monitors workflow states and coordinates the routing of activities for a process. and then runs them. And. remove. including activities. See: Workflow Processes: page 1 – 6. and messages. view. Major Features and Definitions Oracle Workflow Builder Oracle Workflow Builder lets you create. or change workflow activities. are signaled to the engine via a PL/SQL API or a Java API. Business Event System The Business Event System is an application service that uses the Oracle Advanced Queuing (AQ) infrastructure to communicate business events Overview of Oracle Workflow 1–3 . branching. You can communicate events among systems within your own enterprise and with external systems as well. or set up new prerequisite relationships among activities. you can create and modify all workflow objects. and subflows. the engine determines which activities are eligible to run. You can model business processes that include complex routing and processing rules to handle events powerfully and flexibly. parallel flows. expanding activities within the workflow as needed to greater levels of detail. In this way. including looping. At any time you can add. The Workflow Engine supports sophisticated workflow rules. you can implement point–to–point messaging integration or use Oracle Workflow as a messaging hub for more complex system integration scenarios. Using the Workflow Builder. Changes in workflow state. such as the completion of workflow activities. You can easily work with a summary–level model of your workflow. Based on flexibly–defined workflow rules. or modify a business process with simple drag and drop operations.

1–4 Oracle Workflow Guide . Electronic notifications are routed to a role. which let you model business events within workflow processes. In addition to being a standalone server program. such as approvals for requisitions or sales orders. the subscribing code is executed in the same transaction as the code that raised the event. The Business Event System consists of the Event Manager. Electronic Notifications Oracle Workflow lets you include users in your workflows to handle activities that cannot be automated. which can be an individual user or a group of users. and event activities. Complete Programmatic Extensibility Oracle Workflow lets you include your own PL/SQL procedures or external functions as activities in your workflows. which lets you register subscriptions to significant events. Any user associated with that role can act on the notification. sending event information to a workflow process. The information may be embedded in the message body or attached as a separate document. Without modifying your application code. or to apply upgrades to existing definitions. allowing you to open and save workflow definitions in both a database and file. Workflow Definitions Loader The Workflow Definitions Loader is a utility program that moves workflow definitions between database and corresponding flat file representations.between systems. the Workflow Definitions Loader is also integrated into Oracle Workflow Builder. and sending event information to other queues or systems. you can have your own program run whenever the Workflow Engine detects that your program’s prerequisites are satisfied. Subscription processing can include executing custom code on the event information. Oracle Workflow interprets each notification activity response to decide how to move on to the next workflow activity. When a local event occurs. Each notification includes a message that contains all the information a user needs to make a decision. You can use it to move workflow definitions from a development to a production database.

Internet–Enabled Workflow Any user with access to a standard Web browser can be included in a workflow. Also. Web users can access a Notification Web page to see their outstanding work items. please refer to the Oracle Applications Manager online help. Oracle Applications Manager is a tool that provides administrative and diagnostic capabilities for concurrent processing. The Workflow Monitor displays an annotated view of the process diagram for a particular instance of a workflow process.Electronic Mail Integration Electronic mail (e–mail) users can receive notifications of outstanding work items and can respond to those notifications using their e–mail application of choice. you can use the standalone Oracle Workflow Manager component available through Oracle Enterprise Manager as an additional administration tool for Oracle Workflow. If you are using the version of Oracle Workflow embedded in Oracle Applications and you have implemented Oracle Applications Manager. please refer to the Oracle Workflow Manager online help. then navigate to additional pages to see more details or provide a response. if you are using the standalone version of Oracle Workflow available with Oracle9i Release 2. For more information. and other functionality in Oracle Applications. you can also use the Oracle Workflow Manager component of Oracle Applications Manager as an additional administration tool for Oracle Workflow. Oracle Workflow. and each activity in the process. The Workflow Monitor also displays a separate status summary for the work item. Monitoring and Administration Workflow administrators and users can view the progress of a work item in a workflow process by connecting to the Workflow Monitor using a standard Web browser that supports Java. For more information. Overview of Oracle Workflow 1–5 . so that users can get a graphical depiction of their work item status. the process. An e–mail notification can include an attachment that provides another means of responding to the notification.

through a specific workflow process definition. The Workflow Engine takes over by driving the relevant work item defined by the application. a notification to a user or role that may optionally request a response. An activity in a process definition can be an automated function defined by a PL/SQL stored procedure or an external function. A workflow process is initiated when an application calls a set of Oracle Workflow Engine APIs. The rules.Workflow Processes Oracle Workflow manages business processes according to rules that you define. the Workflow Engine performs automated steps and invokes appropriate agents when external processing is required. or a subflow that itself is made up of a more granular set of activities. According to the workflow process definition. 1–6 Oracle Workflow Guide . include the activities that occur in the process and the relationship between those activities. a business event. which we call a workflow process definition. The following diagram depicts a simplified workflow process definition that routes a requisition to a manager or set of managers for approval.

Overview of Oracle Workflow 1–7 . including: • Select Approver—to select. who should approve the requisition.We refer to the whole drawing as a process or process diagram. • Verify Authority—to verify that a selected approver has the spending authority to approve the requisition. This process contains several workflow activities implemented as PL/SQL stored procedures. and the arrows represent the transitions between the activities. The icons represent activities. new items are created for the process when a user creates and submits a requisition in the appropriate application. according to your business rules. In the above example.

1–8 Oracle Workflow Guide .

T Setting Up Oracle Workflow 2–1 .CHAPTER 2 Setting Up Oracle Workflow his chapter describes the requirements for Oracle Workflow and provides the steps necessary to set up Oracle Workflow at your site.

1 or higher for Oracle9i).Oracle Workflow Hardware and Software Requirements The components of Oracle Workflow require the following hardware and software configurations: • Oracle Workflow Builder is installed using Oracle Universal Installer and requires the installation of Oracle Net Services (version 8. or Windows NT 4.6 or higher for Oracle8i. and Required Support Files. Without some form of remote access and control software. or Microcom’s Carbon Copy. The preferred software is Symantec’s Norton pcANYWHERE.6 or higher for Oracle8i. Warning: Please follow the necessary security precautions against viruses and unauthorized access when installing any software that allows remote access. 64 Mb recommended 2–2 Oracle Workflow Guide .0 or higher – At least 60 Mb of available disk space to install Oracle Workflow Builder. or version 9. – At least 32 Mb of memory. Oracle Worldwide Customer Support will not be able to dial in to your site to diagnose problems.0.1. Oracle Net Services.1. or version 9.0.1 or higher for Oracle9i) and Required Support Files (version 8. – Dual speed. – Remote access and control software to be used by Customer Support for dial–in access through a modem to your PC. ISO 9660 format CD–ROM available as a logical drive – Microsoft Windows 95. At least one PC at your site should be configured with a modem. You should install Oracle Workflow Builder on an IBM. nor will they be able to supply patches directly to your client PC. Windows 98. Windows 2000. Compaq or 100% compatible personal computer with the following: – A 486 processor or better – Clock speed of 66 Mhz or greater (90 Mhz or greater is recommended) – Network card – SVGA color monitor – Modem configured with dial–in access for use by Oracle Worldwide Customer Support.

.

the following additional hardware and software configurations are required: – ISO 9660 format CD–ROM available as a logical drive – Microsoft Windows NT 4. Attention: Oracle Net Services require and only support the use of Microsoft’s TCP/IP drivers.6 or higher. or version 9.1 or higher for Oracle9i – SQL*Plus version 8.1 or higher. installed on a supported server machine – At least 40 Mb of available disk space for Oracle Workflow Server once it is installed in your Oracle Home – At least 128 Mb of memory. or version 9.1 or higher for Oracle9i If you are installing Oracle Workflow Server on Microsoft Windows NT.0 or higher • The Oracle Workflow Server requires the following: . or Oracle9i Enterprise or Standard Edition database version 9.0.1 or higher for Oracle8i.0.0. along with the Oracle Objects and JServer Options.1. – Oracle8i Enterprise or Standard Edition database version 8. 256 Mb recommended – Oracle Net Services version 8.1.6 or higher for Oracle8i.

Consequently. For example: – You cannot create any additional queues in Oracle8i Standard Edition beyond the default queues provided by Oracle Workflow. Attention: While the version of Oracle Workflow offered to Oracle8i Standard Edition customers is exactly the same as the version offered to Oracle8i Enterprise Edition customers. – Oracle Advanced Queuing propagation in Oracle8i Standard Edition does not support propagating messages outside the local database. you should choose Oracle8i Enterprise Edition. you should choose Oracle8i Enterprise Edition. it is important to note that Oracle Workflow leverages Oracle8i functionality. If you require messages to be propagated to other systems. Setting Up Oracle Workflow 2–3 . If you require additional queues. using an Oracle8i Standard Edition database limits some of the features available for use by the Oracle Workflow Business Event System.

Exactly the same functionality is available with Oracle Workflow in an Oracle9i Standard Edition database as in an Oracle9i Enterprise Edition database. however. Oracle Workflow can also send mail to other e–mail applications as long as you install the appropriate UNIX gateway product to communicate with your e–mail application of choice. . • The e–mail notifications component contains a Notification Mailer program that can send mail through UNIX Sendmail or a Windows NT MAPI–compliant mail application. these restrictions no longer apply.In Oracle9i.

the Oracle Workflow MAPI Mailer is not certified on any Microsoft Windows platforms where this Microsoft Outlook E–mail Security Update or above has been applied.com/support/kb/articles/ Q262/7/01.7 or higher and with Oracle9i Database version 9. Workflow Monitor.) As a result.1 or higher.8 or higher and Abstract Windowing Toolkit (AWT). The Oracle HTTP Server and mod_plsql components are included with Oracle8i Database version 8.0. • To send and respond to e–mail notifications with HTML attachments. The Oracle Workflow MAPI Mailer is not certified on Windows XP.7x. 2–4 Oracle Workflow Guide . To view the Workflow Monitor you need a Web browser that supports Java Development Kit (JDK). 2000 desupports the MAPI Commmon Messaging Calls (CMC) interface used by the Oracle Workflow MAPI Mailer.1. your e–mail application should support HTML attachments and you should have a Web browser application that supports JavaScript and Frames to view the attachment. (See: OL2000: Developer Information About the Outlook E–mail Security Update. To view notifications you need a Web browser application that supports JavaScript and Frames.1 or higher.0x or 5. or Microsoft Internet Explorer version 5. • The Web notifications. Workflow customers running on NT/2000 are certified to install the UNIX version of the Oracle Workflow Notification Mailer (on UNIX) and connect to a Workflow Server database running on NT/2000.76 or a higher version of 4. Attention: The Microsoft Outlook E–mail Security Update that was released on June 7.0. http://support.microsoft.ASP. Version 1. and Event Manager components require Oracle HTTP Server and mod_plsql to be installed on a server machine.5x. as well as with Oracle9i Application Server version 1.1. such as Netscape Communicator version 4.

x version. or a higher 1. • To extract the HTML help for the standalone version of Oracle Workflow.1.0. you must have Java Runtime Environment (JRE) version 1.0.1. you must have Oracle Internet Directory Release 2 (9. and you must have Oracle9iAS Single Sign–On Server Release 2 (9.8. Setting Up Oracle Workflow 2–5 .• To run external Java function activities and to use the Workflow XML Loader. you need an unzip utility.0.2) installed and have mod_osso installed with Oracle HTTP Server.2) installed.2) and Oracle9iAS Portal Release 2 (9. • To implement Oracle Internet Directory integration. installed. To implement Single Sign–On integration. you must implement Oracle Internet Directory integration.

a row that maps to a row found in its non–translated base table for each installed language. See: Creating the WF_LANGUAGES View: page 2 – 38. Create a view called WF_LANGUAGES that identifies the languages defined in your Oracle database server installation. Set up the default Oracle Workflow user preferences for your entire enterprise using the Global Preferences web page. 2–6 Oracle Workflow Guide . 2. Oracle Workflow uses this view to create in its translation tables.Overview of Setting Up After you install Oracle Workflow. Overview of Required Setup Steps for the Standalone Version of Oracle Workflow 1. The Global Preferences web page also lets you define your workflow administrator role and your Workflow web agent. 4. See: Setting Global User Preferences: page 2 – 14. Oracle Workflow provides example directory services views that you can modify and reload. You can specify the cost threshold level of your primary and background engines to determine the activities an engine processes and the activities an engine defers. See: Setting Up Background Workflow Engines: page 2 – 43. The Notification System uses these views to send notifications to the performers specified in your activities. See: Setting the WF_RESOURCES Environment Variable: page 2 – 42. Map Oracle Workflow’s directory service to the users and roles currently defined in your organization’s directory repository by constructing views based on those database tables. Set up background Workflow Engines to control the load and throughput of the primary Workflow Engine on your system. Define an environment variable called WF_RESOURCES if your Workflow server is installed on a UNIX platform. 3. See: Setting Up an Oracle Workflow Directory Service: page 2 – 21. 5. you implement it for your site by setting up the preferences and components appropriate for your enterprise. Your roles can be either individual users or a group of users.

. Attention: Although your Oracle Workflow installation automatically sets up the following for you. See: Setting Up Background Workflow Engines: page 2 – 43. 3. See: Setting the Socket Listener Profile Options: page 2 – 40. You can specify the cost threshold level of your primary and background engines to determine the activities an engine processes and the activities an engine defers. Set up background Workflow Engines to control the load and throughput of the primary Workflow Engine on your system.Overview of Required Setup Steps for the Version of Oracle Workflow Embedded in Oracle Applications 1. The Global Preferences web page also lets you define your workflow administrator role and your Workflow web agent. Set up the default Oracle Workflow user preferences for your entire enterprise using the Global Preferences web page. Set the system profile options called Socket Listener Activated and Socket Listener Port. See: Setting Global User Preferences: page 2 – 14. you may want to refer to their appropriate sections for additional background information: – Directory services: page 2 – 21 – WF_LANGUAGES view: page 2 – 38 – Path to the language–dependent resources file: page 2 – 42 2.

Setting Up Oracle Workflow 2–7 . 2. Optional Setup Steps 1. See: Synchronizing Workflow Directory Services with Oracle Internet Directory: page 2 – 30. If you are using the standalone version of Oracle Workflow with Oracle9i Database Server Release 2 or Oracle9i Application Server (Oracle9iAS) Release 2 or higher. WF_ITEM_ACTIVITY_STATUSES_H. you can also use OID integration to implement single sign–on integration. and WF_ITEMS tables for performance gain. You can partition the WF_ITEM_ACTIVITY_STATUSES. you can synchronize the user information in your Workflow directory service with Oracle Internet Directory (OID). See: Partitioning Workflow Tables: page 2 – 12. WF_ITEM_ATTRIBUTE_VALUES. if you have installed Oracle9iAS Release 2 or higher. Additionally.

You can also use the Workflow Definitions Loader to load workflow process definitions from flat files to the database without using Oracle Workflow Builder. You can modify the templates for your electronic mail notifications. See: Setting Up the Java Function Activity Agent: page 2 – 86. Set up the Java Function Activity Agent if you are using the standalone version of Oracle Workflow and you want to run external Java function activities. See: Implementing the Notification Mailer: page 2 – 48. 4. See: Using the Workflow Definitions Loader: page 2 – 107. See: Setting Up the WF_EVENT_OMB_QH Queue Handler: page 2 – 100. See: Adding Custom Icons to Oracle Workflow: page 2 – 85. 7. you can use the Workflow XML Loader to load XML definitions for Business Event System objects 2–8 Oracle Workflow Guide . Use custom symbols for each activity you define. See: Customizing the Logo on Oracle Workflow’s Web Pages: page 2 – 84. See: Setting Up the Business Event System: page 2 – 96. Set up the WF_EVENT_OMB_QH queue handler if you are using the Business Event System with Oracle8i and you want to use Oracle Message Broker to propagate event messages between systems. Customize the company logo that appears in Oracle Workflow’s web pages. 5. You can include additional icons to your Oracle Workflow Icons subdirectory to customize the diagrammatic representation of your workflow processes. Other Workflow Features Before deploying Oracle Workflow and custom process definitions to other branches of your enterprise. See: Modifying Your Message Templates: page 2 – 69. See: Overview of Oracle Workflow Access Protection: page 2 – 101. If you are using the Business Event System.3. 6. 9. 8. you can protect your data from further modification by determining the level of access your users have to the data. Set up the Business Event System if you want to communicate business events between systems using event subscription processing and Workflow process event activities. Set up the Notification Mailer program if you want to allow your users to receive notifications by e–mail.

6 against an Oracle Workflow 2.3 database. you can connect to your Workflow server account using SQLPLUS and run a script called wfver.0. Oracle Workflow Builder. In addition. all Oracle Workflow modules. Setting Up Oracle Workflow 2–9 . such as the Workflow Definitions Loader. This version compatibility check helps to prevent problems such as running Oracle Workflow Builder 2. Identifying the Version of Your Oracle Workflow Server If you ever need to determine the version of the Oracle Workflow server you are running. and the Workflow Monitor. See: wfver. automatically verify that the module is compatible with the version of the Oracle Workflow server that it is operating against. Notification Mailer.between a database and a flat file.sql: page 16 – 16. See: Using the Workflow XML Loader: page 2 – 112.sql.

Some of the steps are required and some are optional.Setup Flowchart The following flowchart shows the Oracle Workflow setup steps. You need to perform optional steps only if you plan to use the related feature or complete certain business functions. 2 – 10 Oracle Workflow Guide .

A reference to whether the step is pertinent to the standalone or embedded version of Oracle Workflow or both and whether the step is optional or required is provided.Setup Checklist The following table lists Oracle Workflow setup steps. Step No. Step 1 Step 2 Step 3 Step 4 Step 5 Step 6 Step 7 Step 8 Step 9 Step 10 Step 11 Step 12 Step 13 Step 14 Step 15 Required Optional Required Required Optional Required Required Required Required Optional Optional Optional Optional Optional Optional Optional Step Partitioning Workflow Tables: page 2 – 12 Setting Global User Preferences: page 2 – 14 Setting Up an Oracle Workflow Directory Service: page 2 – 21 Synchronizing Workflow Directory Services with Oracle Internet Directory: page 2 – 30 Creating the WF_LANGUAGES View: page 2 – 38 Setting the Socket Listener Profile Options: page 2 – 40 Setting the WF_RESOURCES Environment Variable: page 2 – 42 Setting Up Background Workflow Engines: page 2 – 43 Implementing the Notification Mailer: page 2 – 48 Modifying Your Message Templates: page 2 – 69 Customizing the Logo on Oracle Workflow’s Web Pages: page 2 – 84 Adding Custom Icons to Oracle Workflow: page 2 – 85 Setting Up the Java Function Activity Agent: page 2 – 86 Setting Up the Business Event System: page 2 – 96 Setting Up the WF_EVENT_OMB_QH Queue Handler: page 2 – 100 Standalone/ Embedded/ Both Both Both Standalone Standalone Standalone Embedded Standalone Both Both Both Both Both Standalone Both Both Setting Up Oracle Workflow 2 – 11 .

SQL queries and DML statements do not need to be modified in order to access partitioned tables. However. For the version of Oracle Workflow embedded in Oracle Applications. You can optionally run a script to partition certain Workflow tables that store runtime status data. partitioning can simplify the manageability of large database objects. partitioning is entirely transparent to applications. In this way.Setup Steps Step 1 Partitioning Workflow Tables Partitioning addresses key issues in supporting very large tables and indexes by letting you decompose them into smaller and more manageable pieces called partitions. 2 – 12 Oracle Workflow Guide . once partitions are defined.sql. The script partitions four Workflow tables and recreates the associated indexes. The following table shows the Workflow tables and indexes on which the script runs. Table Index WF_ITEM_ACTIVITY_STATUSES WF_ITEM_ACTIVITY_STATUSES_PK WF_ITEM_ACTIVITY_STATUSES_N1 WF_ITEM_ACTIVITY_STATUSES_N2 WF_ITEM_ACTIVITY_STATUSES_H WF_ITEM_ACTIVITY_STATUSES_H_N1 WF_ITEM_ACTIVITY_STATUSES_H_N2 WF_ITEM_ATTRIBUTE_VALUES WF_ITEMS WF_ITEM_ATTRIBUTE_VALUES_PK WF_ITEMS_PK WF_ITEMS_N1 WF_ITEMS_N2 WF_ITEMS_N3 Table 2 – 1 (Page 1 of 1) Before running the partitioning script. the script is called wfupartb. you should back up these four tables so that you can restore them in case the script fails. Also. DDL statements can access and manipulate individual partitions rather than entire tables or indexes. This step is highly recommended for performance gain. for the standalone version of Oracle Workflow. the script is called wfupart.sql.

such as after a fresh installation of Oracle Workflow. Additionally. The amount of time needed depends on the amount of data in the tables. the script requires more time than it does when the tables are empty. you should allow sufficient time for the script to run. in the same tablespace where the underlying tables are located. the script requires slightly more diskspace than the underlying tables. such as after an upgrade from a previous release. When the tables already contain existing data. sufficient free space is required for the index tablespace. . During the creation of the partitioned tables. you must have sufficient free space on the table and index tablespaces. Similarly. run the script as early as possible in your setup process.To run the script. To minimize the time required.

sql script is located in the wf/admin/sql subdirectory in your Oracle Home. then you must set the TWO_TASK variable before you begin. Context: You need to perform this step only once. Use the script as follows: sqlplus <wf_user>/<wf_passwd> @wfupart <wf_user> <wf_passwd> For example: sqlplus owf_mgr/owf_mgr @wfupart owf_mgr owf_mgr If the partitioning script fails. Since the script’s operations are DDL operations running in nologging mode. the wfupart. Attention: If you are running the partitioning script through Oracle Net Services. See Also Partitioning for Performance: page C – 8 Setting Up Oracle Workflow 2 – 13 . rollback is not possible. For Oracle Workflow embedded in Oracle Applications. you must perform any necessary cleanup manually.sql script is located in the admin/sql subdirectory under $FND_TOP. Use the script as follows: sqlplus <apps_user>/<apps_passwd> @wfupartb <fnd_user> <fnd_passwd> <apps_user> <apps_passwd> For example: sqlplus apps/apps @wfupartb applsys apps apps apps For standalone Oracle Workflow. the wfupartb.

. An individual user can override a default user preference at any time by changing the value of the user preference in the User Preferences web page.Step 2 Setting Global User Preferences You can control how you interact with Oracle Workflow by specifying user preferences that you can set from the User Preferences web page. you also have access to the Global Preferences web page. but only a workflow administrator has access to the Global Preferences page. which you can use to globally set default user preference values for the entire enterprise. As a workflow administrator. Both web pages are accessible from the Oracle Workflow Home page.

See: Setting Up an Oracle Workflow Directory Service: page 2 – 21. See: Setting User Preferences: page 9 – 6. you can connect directly to the Global Preferences web page: <webagent>/wf_pref. and Notification_Preference columns to the Oracle Workflow preferences table. If you map to some other preference source or set a hard–coded value to these columns.home Alternatively.edit?edit_defaults=Y <webagent> represents the base URL of the web agent you configured for Oracle Workflow in your Web server. Attention: The Language. Territory. Context: You need to perform this step only once. Use a web browser to connect to the Oracle Workflow home page. then choose the Global Preferences link: <webagent>/wfa_html. and Notification preference settings in the Global Preferences and User Preferences web pages are valid only if your directory service views map the Language. . " To Set Global User Preferences 1. any changes you make to the preferences via the preferences web pages are ignored. Territory.

so if you have not yet logged on as a valid user in the current web session. Attention: These are secured pages. 2 – 14 Oracle Workflow Guide . you will be prompted to do so before the page appears.

Setting Up Oracle Workflow 2 – 15 .2. The Global Preferences web page displays a summary of your current global preferences. Choose Update to modify these preferences.

without accessing the Global Workflow Preferences page. If you want all users and roles to have workflow administrator privileges. use the list of values to select the role to which you want to assign workflow administrator privileges. which provides full access to Oracle Workflow’s administration features. See: Setting Up an Oracle Workflow Directory Service: page 2 – 21.3. In addition. any user in the administration role can view any other user’s notifications and access the Event Manager web pages. Note: To find out which role currently has workflow administrator privileges. you can use the following command: 2 – 16 Oracle Workflow Guide . In the Workflow Administrator field. such as in a development environment. enter an asterisk (*) in the Workflow Administrator field. Any user associated with this role can run the Oracle Workflow Find Processes web page.

• For the standalone version of Oracle Workflow. For example. then any Oracle Applications user with that responsibility will have workflow administrator privileges. Setting Up Oracle Workflow 2 – 17 . the default setting after installation is an asterisk (*). enter the base URL of the Oracle web agent you defined for Oracle Workflow in Oracle HTTP Server. • For the version of Oracle Workflow embedded in Oracle Applications. Caution: The list of values fields that are implemented in many of Oracle Workflow’s web pages will not function properly unless you specify the base URL of your Oracle Workflow web agent in this field. If you set the Workflow Administrator preference to the role name of a responsibility. display_name from wf_roles where display_name like ’%Admin%’. the default setting after installation is SYSADMIN. to find the role names for various administrator responsibilities in Oracle Applications. You must log in as the SYSADMIN user to access the Global Workflow Preferences page and specify the preferences you want. use the following command: select name. In the Workflow Web Agent field. you should change the Workflow Administrator preference from the default setting to the role that you want to have administrator privileges. You can query the WF_ROLES view to find the role name for a responsibility. Note: The SYSADMIN role is different than the role associated with the System Administrator responsibility in Oracle Applications. If you want to assign workflow administrator privileges to this or any other Oracle Applications responsibility.select text from wf_resources where name = ’WF_ADMIN_ROLE’. 4. After installing Oracle Workflow. You can log in as any user to access the Global Workflow Preferences page and specify the preferences you want. you must set the Workflow Administrator preference to the internal name of the Workflow role associated with that responsibility.

The base URL should look like this if you are using Oracle HTTP Server as your Web server: http://<server.com:portID> represents the server and TCP/IP port number on which your web listener accepts requests and <DAD_name> represents the name of the DAD you configured for the Oracle Workflow database schema.com:portID>/pls/<DAD_name> <server. See your Oracle HTTP Server documentation for more information. .

• Enabled—Subscriptions are executed on all events. You can find the class ID and version number for the version of JInitiator you have installed in the jinit–version. available on MetaLink. and version number.1). 7. For more information. use the list of values to select the Business Event System status that you want to assign to the local system. Note: The Local System setting is specific to this installation of Oracle Workflow and is not included when Business Event System data is replicated to other systems. download location. This information is required for Oracle Workflow to launch Oracle Applications forms linked to notifications and to display the Workflow Monitor. If you are using the version of Oracle Workflow embedded in Oracle Applications. In the System Status field. The Local System field displays the system name for the database where this installation of Oracle Workflow is located. See: Setting the Socket Listener Profile Options: page 2 – 40. 2 – 18 Oracle Workflow Guide . Attention: If you are using the version of Oracle Workflow embedded in Oracle Applications. The Business Event System treats this system as the local system and all others as external systems.txt file (<drive>:\Program Files\Oracle\jinit<version>\doc\ jinit–version.1) and Upgrading Oracle JInitiator with Oracle Applications 11i (Note 124606.txt). you should also edit the APPS_WEB_AGENT profile option. 6. refer to Complete Guide to JInitiator for Oracle’s E–Business Suite (Note 162488. See: Systems: page 13 – 17. The download location is the location where you have staged the JInitiator executable for download to users’ client machines. enter the Jinitiator plugin class ID. Oracle Workflow automatically creates the system definition for this database in the Event Manager during installation. 5.

specify the directories for the change log and the user records. you can change the setting to the status you want for event processing.• Local Only—Subscriptions are executed only on events raised on the local system. For example: cn=changelog • LDAP User Base Directory—The LDAP node under which user records can be found. After you finish setting up the Business Event System. If you are implementing OID synchronization. 8. • LDAP Changelog Base Directory—The LDAP node under which change logs are located. • Disabled—No subscriptions are executed on any events. Note: The System Status setting is specific to this installation of Oracle Workflow and is not included when Business Event System data is replicated to other systems. specify the LDAP user account used to connect to the LDAP server. cn=OracleSchemaVersion 11. The password is stored in encrypted form. • LDAP Port—The port on the host. This user name is required to bind to the LDAP directory. In the Language and Territory fields. If you are implementing OID synchronization. 9. use the list of values to select the NLS_LANGUAGE and NLS_TERRITORY combination that Setting Up Oracle Workflow 2 – 19 . For example: cn=orcladmin • LDAP Password—The LDAP password. specify the Lightweight Directory Access Protocol (LDAP) server information for the LDAP directory to which you want to connect. Note: Oracle Workflow sets the system status to Enabled by default. • LDAP User Name—The LDAP user. • LDAP Host—The host on which the LDAP directory resides. 10. • External Only—Subscriptions are executed only on events received from external systems. If you are implementing Oracle Internet Directory (OID) synchronization. This LDAP user account must have write privileges. For example: cn=Base.

workflow web agent. An example of an Oracle8i–compliant date format is DD–Mon–RRRR. Users must view the notifications and take action from the Notifications web page. In the Date Format field. 2 – 20 Oracle Workflow Guide . This functionality is reserved for future use. Click OK once you are satisfied with your changes. Leave the Document Home Node field blank. 15. use the list of values to select a notification preference: • HTML mail—Send notifications as HTML e–mail. Users must read their mail using an HTML e–mail viewer. In the ’Send me electronic mail notifications’ field. document home node. If you do not specify a date format. If you specify a time format along with your date format. specify an Oracle8i–compliant date format that defines the default date format for the workflow database sessions of all users. 14. Note: These global language. even if you do not include a time format with your date format. • Plain text mail—Send notifications as plain text e–mail. • Do not send me mail—Do not send the notifications as e–mail. then the date format defaults to DD–MON–YYYY. 12. you will see two time elements following your date. • Plain text mail with HTML attachments—Send notifications as plain text e–mail but include the HTML–formatted version of the notifications as attachments. then in those situations when Oracle Workflow displays a time element. territory. local system. Users must use the Notifications web page to take action on individual notifications. and notification preferences are saved to the Oracle Workflow Preferences table for a special user name called –WF_DEFAULTS–. Note: Oracle Workflow may include a time element when relevant for certain displayed dates. • Plain text summary mail—Send a summary of all notifications as plain text e–mail.defines the default language–dependent behavior and territory–dependent formatting of your users’ notification sessions. 13. and LDAP information is saved to the Workflow Resources table. The workflow administrator role.

WF_ROLES. . and WF_LOCAL_USER_ROLES that contain columns similar to those defined in the WF_USERS. WF_LOCAL_ROLES. Oracle Workflow provides three local tables called WF_LOCAL_USERS. and WF_USER_ROLES views. respectively. You determine the directory repository you want Oracle Workflow to reference for users and roles information by creating three views based on the database tables that make up that repository. See: Workflow Directory Service APIs: page 8 – 121.Step 3 Setting Up an Oracle Workflow Directory Service Oracle Workflow offers you flexibility in defining who your workflow users and roles are. The views are: • WF_USERS • WF_ROLES • WF_USER_ROLES In addition. You can use these tables to store users and roles not included in your existing directory repository by calling the appropriate Directory Service PL/SQL API.

you must map your directory service views only to the WF_LOCAL tables to enable synchronization of Workflow user information with OID. Context: You need to perform this step only once. Note: If you are using the standalone version of Oracle Workflow. Attention: You should avoid selecting from DUAL to incorporate additional users and roles into the directory service views as this allows you to violate the unique constraint on certain columns of the views and reduces performance with unnecessary joins between the ’select from DUAL’ statements. In this case. you can integrate your Workflow directory service with Oracle Internet Directory (OID) as your directory repository. See: Integrating Oracle Workflow Directory Services with Local Workflow Users: page 2 – 28 and Synchronizing Workflow Directory Services with Oracle Internet Directory: page 2 – 30. and you have installed Oracle9i Release 2 or higher or Oracle9iAS Release 2 or higher. See: Predefined Directory Services: page 2 – 26 See: Ad Hoc Users and Roles: page 5 – 24 Setting Up Oracle Workflow 2 – 21 .

Create this view. . For example.WF_USERS The WF_USERS view should reference information about all the individuals in your organization who may receive workflow notifications. an internal name for a user can be mbeech or 009. where 009 represents the user’s employee ID. making sure it contains the following columns: • Name—The internal name of the user as referenced by the Workflow Engine and Notification System.

For example. Finally. • Display_Name—The display name of the user. Attention: The Name column must be sourced from a column that is less than 30 characters long and is all uppercase. a value of SUMMARY allows users to get periodic e–mail summaries of their open notifications. An example of a display name can be ’Beech. respectively. Note: A notification preference of MAILTEXT. Instead. A value of MAILTEXT. • Description—An optional description of the user. ”PER_PEOPLE:009” represents a user whose employee ID is 009 and is stored in the personnel table called PER_PEOPLE. they have to query the notification from the Notification Web page. or MAILATTH also allows users to query their notifications from the Notifications Web page. HTML–formatted e–mail or by plain text e–mail with HTML attachments. MAILHTML.or MAILATTH allows users to receive and respond to notifications by plain text e–mail. MAILHTML. Note: You can map the Notification_Preference column over the Oracle Workflow preferences table using the statement below. See: Overview of Notification Handling: page 10 – 2 and Notification Preferences: page 2 – 49. If your source table does not have a column that meets these criteria. define the Name column to be <orig_system>:<orig_system_id> so that Oracle Workflow can reference the original base table where users are stored and a unique user in that table. However. • Notification_Preference—Indicate how this user prefers to receive notifications. The benefit of this is that you can then globally set the default notification preference for all users in your enterprise using the Global Preferences web page and let individual users 2 – 22 Oracle Workflow Guide . A value of QUERY allows users to query notifications from the Notifications Web page. DO NOT use string functions to force these restrictions. to respond to the individual notifications. Matthew’.

The benefit of this is that you can then globally set the default Language for all users in your enterprise using the Global Preferences web page and let individual users override that default value by changing their Language in the User Preferences web page. Note: You can map the Language column over the Oracle Workflow preferences table using the statement below. ’MAILHTML’) • Language—The value of the database NLS_LANGUAGE initialization parameter that specifies the default language–dependent behavior of the user’s notification session.’LANGUAGE’). See: Global Preferences: page 2 – 14 and User Preferences: page 9 – 6. NVL(wf_pref.NLS_LANGUAGE) . User Preferences: page 9 – 6 and get_pref: page 8 – 148.get_pref(USR. Refer to your Oracle Database user’s guide or installation manual for the list of supported language conventions. Individual users may override that default value by changing their language in the User Preferences web page.USER_NAME.get_pref(USR. NVL(wf_pref. See: Global Preferences: page 2 – 14. See: Global Preferences: page 2 – 14. by specifying a language in the Global Preferences web page. User Preferences: page 9 – 6 and get_pref: page 8 – 148.USER_NAME. FNDL. Note: You can globally set the language for all the users in your enterprise.’MAILTYPE’).override that default value by changing their notification preference in the User Preferences web page.

Attention: Make sure that the e–mail templates used by the Notification Mailer to send notifications have been translated by Oracle to the language you wish to set.wft under the subdirectory $ORACLE_HOME/wf/res/<lang>. • Territory—The value of the database NLS_TERRITORY initialization parameter that specifies the default territory–dependant formatting used in the user’s notification session. Refer to your Oracle Database user’s guide or installation manual for the list of supported territory conventions. You can check the appropriate language subdirectory to verify if the templates have been translated to the language you wish to set. Setting Up Oracle Workflow 2 – 23 . The e–mail templates are delivered in a file called wfmail. See: Modifying Your Message Templates: page 2 – 69.

Orig_System can be defined as PER.’TERRITORY’).Note: You can map the Territory column over the Oracle Workflow preferences table using the statement below.USER_NAME. FNDL. Create this view. permanently unavailable (INACTIVE). • Orig_System_ID—The primary key that identifies the user in this repository system. These statuses are also stored in the lookup type called WFSTD_AVAILABILITY_STATUS. For example. NVL(wf_pref. if this view is based on the personnel data stored in a Human Resource Management System. Those columns that are preceded by an asterisk (*) are similar to the matching column described for the WF_USERS view: . making sure it contains the following columns pertaining to the roles in your repository. WF_ROLES The WF_ROLES view should reference information about all the roles in your organization who may receive workflow notifications. • Orig_System—A code that you assign to the directory repository that this view is based on. See: Global Preferences: page 2 – 14. • Fax—A Fax number for the user. • Status—The availability of the user to participate in a workflow process. User Preferences: page 9 – 6 and get_pref: page 8 – 148. unavailable for an extended period (EXTLEAVE). and temporarily unavailable (TMPLEAVE). • Expiration_Date—The date at which the user is no longer valid in the directory service.get_pref(USR. Orig_System_ID can be defined as the value stored in a column called PERSON_ID in a Human Resources database table called PER_PEOPLE.NLS_TERRITORY) • Email_Address—A valid electronic mail address for this user or a mail distribution list defined by your electronic mail system. The possible statuses are: active (ACTIVE). The benefit of this is that you can then globally set the default Territory for all users in your enterprise using the Global Preferences web page and let individual users override that default value by changing their Territory in the User Preferences web page. For example.

2 – 24 Oracle Workflow Guide Attention: We require that you also define each user identified by WF_USERS as a role. .

making sure it contains the following columns: Setting Up Oracle Workflow 2 – 25 . define the Name column to be <orig_system>:<orig_system_id> so that Oracle Workflow can reference the original base table where roles are stored and a unique role in that table. and the user is also a member of a multi–user role. The Name column must be sourced from a column that is less than or equal to 30 characters long and is all uppercase. • *Display_Name • *Description • *Notification_Preference • *Language • *Territory • Email_Address—if the e–mail address is null for a given role. When a notification is assigned to the multi–user role. Create this view. • *Fax • *Orig_System • *Orig_System_ID • *Status • *Expiration_Date WF_USER_ROLES The WF_USER_ROLES view is an intersection of the users and roles in WF_USERS and WF_ROLES. as opposed to a summary message that includes that notification in it. Instead. DO NOT use string functions to force these restrictions. the role information will override the user information when the Notification System delivers a notification to the role. For example. For example. whose notification preference is ’MAILHTML’. ”PER_POSITION:009” represents a position whose ID is 009 and is stored in the personnel table called PER_POSITION. suppose a user has a notification preference of ’SUMMARY’. the Notification Mailer sends an individual e–mail to each user within the role. If your source table does not have a column that meets these criteria.Note: If a user is a member of a role and the user information is different from the role information. • Name—The internal name of the role. the user will receive a single notification message addressed to the role.

• Role_Orig_System_ID—The primary key that identifies the role in the role directory repository as listed in the view WF_ROLES. . • Role_Orig_System—A code that you assign to the role directory repository as listed in the view WF_ROLES. • User_Orig_System_ID—The primary key that identifies the user in the user directory repository as listed in the view WF_USERS. • Role_Name—The internal name of the role as listed in the view WF_ROLES.• User_Name—The internal name of the user as listed in the view WF_USERS. • User_Orig_System—A code that you assign to the user directory repository as listed in the view WF_USERS.

therefore you should not join to them directly. make sure you initially enter the usernames in your database in uppercase only. you can choose to implement one of the following two directory services or create your own: • A directory services with native Oracle users. Warning: Avoid making a join to a view that contains a union as this results in poor database performance. Forcing the usernames to uppercase in your view definition results in poor performance when accessing these views. The Oracle database server is unable to preserve the indexes in that view when you make such a join. If you are using the version of Oracle Workflow embedded in Oracle Applications you automatically: • Integrate your Oracle Workflow directory service with a unified Oracle Applications environment. • A directory services with local workflow users. use the appropriate directory services API. If you need to retrieve data from any of the three directory services views. 2 – 26 Oracle Workflow Guide . If you are using the standalone version Oracle Workflow. Predefined Directory Services Oracle Workflow provides scripts for you to implement any one of three directory service environments. See: Workflow Directory Services APIs: page 8 – 121. The workflow directory services views you create will most likely contain unions. Attention: To take advantage of unique indexes when querying users.

You can customize any of these directory services environments further by editing and rerunning their scripts against your Workflow Server. .

See: Wfdirchk. Oracle Application Object Library tables. and the WF_LOCAL tables. The script is located on your server in the Oracle Workflow admin/sql subdirectory for the standalone version of Oracle Workflow.sql: page 16 – 10. the script is called wfdirhrv.sql to validate your directory service data model. Attention: If you create your own directory service or edit any of the predefined directory services listed above. and WF_USER_ROLES views that map to this unified environment. You base your views on the tables DBA_USERS.sql and is located on your server in the admin/sql subdirectory under $FND_TOP. Setting Up Oracle Workflow 2 – 27 . WF_LOCAL_USERS. you automatically install this script to create the unified environment. if you should need to edit and rerun this script for whatever reason. However. Oracle Workflow provides a sql script that defines the WF_USERS. various Oracle Applications tables.sql script in the Oracle Workflow sql subdirectory on your server. " Integrating Oracle Workflow Directory Services with a Unified Oracle Applications Environment If you are using the version of Oracle Workflow embedded in Oracle Applications. your Oracle Workflow directory service views are automatically based on a unified Oracle Applications environment. the default notification preference for all workflow users and roles in the unified environment is set to ’MAILHTML’. The unified environment maps over Oracle Human Resources tables. WF_ROLES. Use the wfdirouv. and WF_LOCAL_ROLES. you should run the script wfdirchk. " Integrating Oracle Workflow Directory Services with Native Oracle Users If you plan to use the standalone version of Oracle Workflow. you can map your directory service to the native users and roles in the Oracle RDBMS. Aside from the users and roles stored in WF_LOCAL_USERS and WF_LOCAL_ROLES. or in the sql subdirectory under $FND_TOP for the version of Oracle Workflow embedded in Oracle Applications. When you install Oracle Applications. DBA_ROLES. This script is automatically run by the Oracle Universal Installer when you install the standalone version of Oracle Workflow. Oracle Workflow provides a script you can use to setup the views.

You can customize the views in this script to incorporate the users and roles from your custom directory repository. This script creates three views. The WF_USER_ROLES view consists of the names and originating system information of both users and roles in WF_USERS and WF_ROLES. if the usernames and e–mail account names match. all roles defined in the WF_LOCAL_ROLES table.You can customize and rerun this script if necessary. The WF_ROLES view includes all users in the WF_USERS view. " Integrating Oracle Workflow Directory Services with Local Workflow Users If you plan to use the standalone version of Oracle Workflow and the users and roles of your directory repository are not stored in any existing database tables. Note: The wfdirouv. The default notification preference for each DBA role is MAILHTML. The WF_USERS view creates a workflow user for each DBA user and any users stored in WF_LOCAL_USERS. the originating system is ORACLE and the originating system ID is the ROLE column in DBA_ROLES. . where role_name begins with WF. For each DBA user. For each DBA role. Oracle Workflow provides a script you can use to set up the views.com’. such as ’@oracle. The default notification preference for each DBA user is MAILHTML. and the originating system ID is the USERNAME column in DBA_USERS. to the usernames in the WF_USERS view definition. and all roles in DBA_ROLES.sql script sets each native Oracle user’s e–mail address to the user’s respective username. Use the wfdircsv. the originating system is called ORACLE.sql script in the Oracle Workflow sql subdirectory on your server. As a minimal setup step.sql script to either link your native Oracle users to an existing mail directory store through the WF_ROLES view definition. you should edit the wfdirouv. The script creates three views. the columns that you change are EMAIL_ADDRESS in WF_USERS and EMAIL_ADDRESS in WF_ROLES. or. Typically. then simply add the domain for your organization. you can enter your users and roles information in the WF_LOCAL tables and map your directory service to these tables.

2 – 28 Oracle Workflow Guide Attention: If you want to implement Oracle Internet Directory (OID) integration for the standalone version of Oracle .

you must run the wfdircsv. you must not customize the script to incorporate any other tables.sql script to ensure that your directory service views are mapped only to the WF_LOCAL tables. The WF_ROLES view includes all users in WF_LOCAL_USERS and all roles defined in WF_LOCAL_ROLES. After implementing OID integration. and the originating system ID is 0. The originating system is WF_LOCAL_ROLES and the originating system ID is 0.) In this case. The originating system in the WF_USERS view is called WF_LOCAL_USERS. The WF_USER_ROLES view consists of the names and originating system information of both users and roles in WF_USERS and WF_ROLES. not Workflow roles. you maintain your user information only through OID. See: Synchronizing Workflow Directory Services with Oracle Internet Directory: page 2 – 30. (Only users are maintained through OID.Workflow. Setting Up Oracle Workflow 2 – 29 . because only the WF_LOCAL_USERS table will be synchronized with OID.

LDAP was conceived as an internet–ready. • Synchronize with other external user directories that are synchronized with OID. which makes it particularly attractive for internet–based. and availability of Oracle9i. thin client applications. Context: You need to perform this step only once. Oracle Internet Directory Oracle Internet Directory is a general purpose directory service that enables fast retrieval and centralized management of information about dispersed users and network resources. if you have installed Oracle9iAS Release 2 or higher. It is a common language that LDAP clients and servers use to communicate. Synchronization with OID enables Oracle Workflow to do the following: • Assign ownership of work items and send notifications to users defined in OID. you can synchronize the user information in your Workflow directory service with Oracle Internet Directory (OID) using Lightweight Directory Access Protocol (LDAP).Step 4 Synchronizing Workflow Directory Services with Oracle Internet Directory If you are using the standalone version of Oracle Workflow. LDAP is a standard. The advantages of OID include: 2 – 30 Oracle Workflow Guide . This integration is recommended because it enables you to manage and publish user information in a central location which various systems can reference. scalability. robustness. lightweight implementation of the International Standardization Organization (ISO) X. It combines Lightweight Directory Access Protocol (LDAP) Version 3 with the high performance. extensible directory access protocol.500 standard for directory services. a user who is logged into any participating Oracle9iAS component is automatically authenticated when accessing any other participating component and does not need to log in again. With single sign–on. • Participate in single sign–on through LDAP external authentication with Oracle Portal and Oracle9iAS Single Sign–On Server. It requires a minimal amount of networking software on the client side. and you have installed Oracle9i Release 2 or higher or Oracle9iAS Release 2 or higher.

multimaster replication between directory servers: If one server in a replication community becomes unavailable. it supports full. • High availability – Oracle Internet Directory is designed to meet the needs of a variety of important applications. and authenticates them by using LDAP mechanisms. Oracle Internet Directory also provides data management tools. Additionally. • Security – Oracle Internet Directory offers comprehensive and flexible access control. then a user can access the data from another server. An administrator can grant or restrict access to a specific directory object or to an entire directory subtree. Setting Up Oracle Workflow 2 – 31 . enabling support for terabytes of directory information. Information about changes made to directory data on a server is stored in special tables on the Oracle9i database. running with large datastores and heavy loads. the Oracle9i database. and certificate–based using Secure Socket Layer (SSL) Version 3 for authenticated access and data privacy. a robust replication mechanism. Oracle9iAS Single Sign–On uses Oracle Internet Directory to store user entries. In addition. Moreover. for manipulating large volumes of LDAP data. It maps users for any partner application to user entries in OID entries. password–based. such technologies as multithreaded LDAP servers and database connection pooling allow it to support thousands of concurrent clients with subsecond search response times. can recover from system failures quickly. These are replicated throughout the directory environment by Oracle9i Replication. Because directory information is stored securely in the Oracle9i database. such as Oracle Directory Manager and a variety of command–line tools. including third–party LDAP directories. Oracle Internet Directory implements three levels of user authentication: anonymous. • Synchronization with other directories – Oracle Internet Directory includes the Oracle Directory Integration platform that enables you to synchronize with other enterprise repositories. it is protected by Oracle’s backup capabilities. For example. Oracle Internet Directory also takes advantage of all the availability features of Oracle9i.• Scalability – Oracle Internet Directory exploits the strengths of Oracle9i.

an Oracle module that enables single sign–on. allowing users to log in to multiple Web–based applications by entering a user name and password only once. A partner application delegates its authentication to the Login Server. With mod_osso. because user names and passwords can be stored and maintained outside of any particular application and shared across the enterprise • Convenient login experience. users can log into it using the single sign–on mechanism. If a partner application is registered with the Login Server. When a user first tries to access a secured Workflow web page. Oracle Workflow participates in single sign–on by using mod_osso to authenticate access to its secured web pages. Partner applications support a single sign–on mechanism that enables them to accept a user’s username and password as validated by the Login Server. 2 – 32 Oracle Workflow Guide . Oracle HTTP Server becomes a partner application of the Login Server. the Workflow security package WFA_SEC checks the CGI environment variable REMOTE_USER for user information.See Also Oracle Internet Directory Administrator’s Guide Oracle9iAS Single Sign–On Oracle9iAS Single Sign–On is a component of Oracle9i Application Server that provides a framework for secure single sign–on. Oracle9iAS Single Sign–On provides the following benefits: • Ease of administration and reduced administrative costs. If you implement Oracle Internet Directory/Single Sign–On integration. the user will be prompted to log in before the page appears. The Login Server authenticates users and passes their identities to the partner applications that are integrated with it. If the user is not already logged in to Oracle Workflow or another Oracle9iAS Single Sign–On participating application. users are less likely to use simple. easy–to–remember passwords or write them down The core of the Oracle9iAS Single Sign–On technology is the Login Server. because users do not need to maintain a separate username and password for each application they access • Increased security. because when the password is only required once. Oracle Workflow uses Oracle HTTP Server as its Web server.

the user again seeks access to the same or to a different partner application. specifically Oracle Internet Directory. Acting as an Oracle9iAS Single Sign–On partner application. For more information. by using a URL with an encrypted parameter containing the user’s identity. the Login Server presents the user with a login page. The Login Server performs the following steps: • Prompts the user for the user name and password. If there is no login cookie. Oracle HTTP Server internally calls to mod_osso. To set the variable REMOTE_USER. • Identifies the user. see your installation documentation. • Authenticates the user by means of the user name and password. • Sets a partner application cookie so that subsequent user access does not require a redirect to the Login Server. if no application cookie is present. mod_osso. • Stores an encrypted login cookie on the authenticated client. Setting Up Oracle Workflow 2 – 33 . determining what. if any. • Establishes its own session management (for example. the Login Server obtains the information from the login cookie that is already on the client browser. mod_osso transparently redirects the user to the Login Server to obtain authentication credentials. the Login Server does not prompt the user for a username and password. during the same session. Instead. • Presents the requested application page to the user. access privileges to grant to the user). using external repository authentication that relies on an LDAP–compliant directory. The Login Server binds to OID and then looks up the user credentials stored in the directory. if no login cookie is present. • Transparently redirects the user to the partner application. If.Note: The WFA_SEC package must be loaded as a post–install step if you choose to implement Oracle Internet Directory/Single Sign–On integration. The login cookie provides the Login Server with the user’s identity and indicates that authentication has already been performed. Oracle HTTP Server with mod_osso then performs the following steps: • Decrypts the parameter.

For the standalone version of Oracle Workflow. ensure that the Database Access Descriptor for Oracle Workflow is protected in the mod_osso configuration file. Note: OID integration includes only individual users. For the standalone version of Oracle Workflow. 2 – 34 Oracle Workflow Guide . the user must also log out of the Login Server session. Ensure that the following PL/SQL packages required for LDAP synchronization are loaded in your database: • DBMS_LDAP—This package contains the functions and procedures which can be used to access data from LDAP servers. See: Workflow LDAP APIs: page 8 – 144. either at the end of a time interval specified by the administrator. Otherwise. Note: To log out of a partner application and log in as another user. • WFA_SEC—This package contains Workflow security functions and procedures. the authentication request returns the partner application to the logged in state of the previous user. For single sign–on integration. or when the user exits the browser. Workflow roles are not maintained through OID. " To Synchronize Workflow Directory Services with OID 1. These APIs are defined in a PL/SQL package called WF_LDAP. The login cookie expires with the session. not user groups. 2.To guard against eavesdropping. The login cookie is never written to disk. the Login Server can send the login cookie to the client browser over an encrypted SSL channel. installation of these packages is completed as part of the post–installation steps after you install the Oracle Workflow server. See Also Oracle9iAS Single Sign–On Administration Guide Oracle9iAS Single Sign–On Application Developer’s Guide Oracle Internet Directory Synchronization Oracle Workflow provides APIs to synchronize the user information in your Workflow directory service with OID.

if (res) then 5. If necessary. 6. and raises the oracle. See: To Set Global User Preferences: page 2 – 14. Run the wfdircsv. The predefined subscription to this event that you enabled loads the user information into the WF_LOCAL_USERS table.Synch_all( ) API. you should use this function only once during setup.public. res := wf_ldap. based on the LDAP directory information specified in the Global Workflow Preferences.wf.change event with the rule function WF_SSO.user. Ensure that the following global Workflow preferences are set to the appropriate information for your OID installation.public.user. To begin the synchronization. Enable the predefined subscription to the oracle. • LDAP Host • LDAP Port • LDAP User Name • LDAP Password • LDAP Changelog Base Directory • LDAP User Base Directory 4. Because Synch_all( ) retrieves information for all users stored in OID.synch_all().user_change.change event. Setting Up Oracle Workflow 2 – 35 . you can also run Synch_all( ) as required for recovery or cleanup. begin wf_log_pkg. See: User Entry Has Changed Event: page 14 – 15 and To Update or Delete an Event Subscription: page 13 – 52.wf.WF_DEBUG_FLAG := TRUE. however.mod_osso configuration is completed as part of the post–installation steps after you install the Oracle Workflow server. See: Integrating Oracle Workflow Directory Services with Local Workflow Users: page 2 – 28. run the WF_LDAP.apps.sql script to map your directory service views only to the WF_LOCAL tables. Use the following commands to run Synch_all( ): declare res boolean := FALSE. 3.apps. This function retrieves all the existing user information from OID.

Schedule_changes( ) to retrieve changed user information from OID. wf_ldap. use WF_LDAP. the function retrieves the user information from OID and raises the oracle. This procedure submits a database job using the DBMS_JOB utility to run WF_LDAP. end. The predefined subscription to this event that you enabled loads the changed user information into the WF_LOCAL_USERS table. The function connects to OID based on the LDAP directory information specified in the Global Workflow Preferences. To continue updating user information periodically. else dbms_output. / 7. is ten minutes. including creation.WF_DEBUG_FLAG := TRUE. Note: You must terminate the running of any WF_LDAP APIs before changing your LDAP setup.Synch_changes( ) repeatedly at an interval that you specify. end.Synch_changes( ) to perform a single update. to run the API at an interval of ten minutes.change event. create a SQL file with the following commands: declare begin wf_log_pkg.10).put_line(’succeeded’). It is recommended that you update the user information every ten minutes.0.schedule_changes(0.put_line(’failed ’).Schedule_changes( ).Synch_changes( ) or WF_LDAP.dbms_output.user.apps. such as by migrating to a different LDAP server. / Then run SQL*Plus and load your new script to the database.public.Synch_changes( ) identifies LDAP user changes in OID. modification.Schedule_changes( ). 2 – 36 Oracle Workflow Guide . end if. You can use WF_LDAP. by querying the LDAP change log records. Subsequently. WF_LDAP. The default interval. which is also the recommended frequency to check for updates.wf. and deletion. You can use either WF_LDAP. If there is a change. For example. You can create a script to run WF_LDAP. you must maintain the synchronization between your Workflow directory service and OID by retrieving and loading only changed OID user information.

.

Consequently. You must not create ad hoc users in the WF_LOCAL_USERS table. You can still use ad hoc roles. or SetAdHocUserAttr( ) APIs in the WF_DIRECTORY package. See Also Setting Global User Preferences: page 2 – 14 Workflow LDAP APIs: page 8 – 144 User Entry Has Changed Event: page 14 – 15 Managing Job Queues. Attention: If you implement OID integration. because you risk discrepancies in your user information and unpredictable results if you use any tool other than OID to maintain users after integrating with OID. however. SetAdHocUserExpiration( ). if you implement OID integration. SetAdHocUserStatus( ). since Workflow roles are not maintained through OID. you must maintain your users only through OID. you must not use the CreateAdHocUser( ). Oracle Administrator’s Guide Workflow Directory Service APIs: page 8 – 121 Setting Up Oracle Workflow 2 – 37 .

a row for each language that maps to a row found in its non–translated base table.Step 5 Creating the WF_LANGUAGES View The field values in the property pages of Oracle Workflow Builder and the workflow notifications delivered to your users can be translated to the languages defined in your Oracle installation. Run the script WFNLADD. 4. • NLS_Language—The value of the Oracle NLS_LANGUAGE initialization parameter that specifies the default language–dependent behavior of a session.sql: page 16 – 5. See: wfnlena. A sample WF_LANGUAGES view is included in the script of each of the predefined directory services that Oracle Workflow provides. Oracle Workflow uses this view to create in its translatable tables. 2 – 38 Oracle Workflow Guide . 5.sql: page 16 – 12. Context: You need to perform this step only once.sql to enable the language of interest. • NLS_Codeset—The character set for the language. • NLS_Territory—The value of the Oracle NLS_TERRITORY initialization parameter that specifies the default territory–dependant date and numeric formatting of a session. 2. However. See: WFNLADD.sql to create rows for the enabled language in each workflow object translation table. Install Oracle Workflow. Run the script wfnlena. Set the NLS_LANG environment variable for the new language. The WF_LANGUAGES view must include the following columns: • Code—The language code. you must create a view called WF_LANGUAGES that identifies the languages defined in your Oracle installation. Create the WF_LANGUAGES view in your workflow server. See: Oracle Database National Language Support Guide " To display user defined objects in Oracle Workflow Builder in other languages (for standalone version only) 1. • Display_Name—The display name of the language. 3. in order for this to be possible. • Installed_Flag—Flag to indicate if the language is installed and available for use.

7. Load the translated . making sure that the current NLS_LANG setting is correct. you can specify the default language that your users’ web sessions display by setting the Language parameter in the Global User Preferences web page. Individual users can override the default language by setting the Language parameter in the User Preferences web page. while the Workflow Resource Generator accepts a language parameter. you can set your users and roles’ default language setting to that language in the Global Preferences web page. Create a translated version of your workflow process definition and save it as a flat file (. 2. Double click on NLS_LANG. See: Modifying Your Message Templates: page 2 – 69. If the e–mail templates are available for the language you wish to display.For example. " To display e–mail notifications in other languages 1. Determine if Oracle has translated the e–mail notification templates to the language you wish to set by checking for a file called wfmail.wft file.wft in the appropriate language subdirectory $ORACLE_HOME/wf/res/<lang>. run the regedit32 command and locate the NLS_LANG setting under the HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE hierarchy.wft file to your workflow database. See: Setting Global User Preferences: page 2 – 14 and Setting User Preferences: page 9 – 6. Setting Up Oracle Workflow 2 – 39 .territory_characterset’ For Windows NT. as a workflow administrator. 6. the Workflow Definitions Loader uses the language specified in the . in UNIX. the Workflow Resource Generator defaults to the current setting of NLS_LANG. See: Setting Global User Preferences: page 2 – 14. use the command: setenv NLS_LANG = ’language. " To display an Oracle Workflow web session in other languages (for standalone version only) H If you have multiple languages installed for Oracle Workflow. If you do not specify a language parameter. then set the variable to the new value and save your edit. Note: To determine the language to load.wft).

If the notification details display an attached form icon. users can choose that icon to launch an Oracle Applications form. if users have set different ports. By using different socket listener ports. In addition.1.msg for the Java plugin: WF_CLASSID <Class ID for Jinitiator> (Required if you are using Microsoft Internet Explorer. two different users logged into Oracle Applications on the same machine can both launch attached forms at the same time without interference from each other.27. users can select a notification link to display the contents of a notification in the Notification Details page. However.Step 6 Setting the Socket Listener Profile Options The Notification Details web page can display an attached form icon to support form attributes in a notification message. Oracle Workflow launches the forms for each user at the specified port. Before Oracle Workflow can launch the form from the Notification Details page. Oracle Applications users can launch the Oracle Workflow Notification Worklist from their Oracle Applications menus. See: To Set Global User Preferences: page 2 – 14.) WF_PLUGIN_VERSION <Plugin version> (Such as 1.) WF_PLUGIN_DOWNLOAD <Plugin location> (Such as http://<server>/OA_JAVA/. This profile option can be set to different ports for different users. Oracle Workflow launches attached forms at the default port set for the site. From the Worklist. To accomplish this. the Workflow Administrator needs to specify the following token values in $FND_TOP/resource/<language>/wfcfg. If the socket listener port is not set at user level.msg into the WF_RESOURCES table.7.) Run the Workflow Resource Generator to load the contents of wfcfg. 2 – 40 Oracle Workflow Guide . it must check for appropriate context information with Oracle Applications. You can also set these three values in the Global Preferences page. You must also set the Socket Listener Port profile option to the port at which Oracle Workflow should launch attached forms. the socket listener on the form side must be active. You can activate the Oracle Applications socket listener by setting the Socket Listener Activated profile option to Yes using the System Profile Values Window.

Setting Up Oracle Workflow 2 – 41 .Context: You need to perform this step only once. See: Overview of Setting User Profiles: Oracle Applications System Administrator’s Guide See: To run the Workflow Resource Generator: page 8 – 105.

you must set an environment variable called WF_RESOURCES to point to the language–dependent Oracle Workflow resource file (wf<language>.res).Step 7 Setting the WF_RESOURCES Environment Variable If you are using the standalone version of Oracle Workflow and your Workflow server is installed on a UNIX platform. The resource file generally resides under the res subdirectory of your Oracle Workflow server directory structure. .

You do not need to set this environment variable if your Workflow server is installed on the Windows NT platform. 2 – 42 Oracle Workflow Guide . Attention: Do not enclose environment variable values in double quotes (” ”) as this is not supported. You also do not need to set this environment variable if you are using the version of Oracle Workflow embedded in Oracle Applications.res. the path of the language–dependent Oracle Workflow resource file is $FND_TOP/$APPLRSC/wf<language>. For Oracle Applications.res file. Context: You need to perform this step only once. The Workflow server installation on Windows NT automatically sets a WF_RESOURCES environment variable that identifies the path of the wf<language>.

but cannot progress any further. a process could become stuck in the following situations: • A thread within a process leads to an activity that is not defined as an End activity but has no other activity modeled after it. but the pivot activity of the loop has the On Revisit property set to Ignore. For example. Setting Up Oracle Workflow 2 – 43 . Additionally. and no other activity is active. The Workflow Engine then resumes by trying to execute a <Timeout> transition activity. which may occur on some other parallel branch of the process. and then sets the notification activity to a status of ’NOTIFIED’ until the performer completes the notification activity. Meanwhile. In these cases. it calls the Notification System to send the notification to the appropriate performer. a background engine set up to handle timed out activities periodically checks for ’NOTIFIED’ activities and whether these activities have time out values specified. an activity can require a large amount of processing resource or time to complete. For instance. a background engine must be set up to handle stuck processes. the process cannot continue. When the Workflow Engine comes across a notification activity that requires a response. and no default transition is modeled after that activity. A process is identified as stuck when it has a status of ACTIVE. The main Workflow Engine can then continue to the next available activity. The background engine sets the status of a stuck process to ERROR:#STUCK and executes the error process defined for it.Step 8 Setting Up Background Workflow Engines When the Workflow Engine initiates and performs a process. if the function for a function activity returns an unexpected result value. In some cases. A background engine must also be set up to handle timed out notification activities. the background engine marks that activity as timed out and calls the Workflow Engine. If a ’NOTIFIED’ activity does have a time out value. the costly activity is deferred by the Workflow Engine and run later by a background engine. • A process with only one thread loops back. and the current date and time exceeds that time out value. • An activity returns a result for which no eligible transition exists. Oracle Workflow lets you manage the load on the Workflow Engine by setting up supplemental engines to run these costly activities as background tasks. You can define and start up as many background engines as you like to check for deferred and timed out activities. it completes all necessary activities before continuing to the next eligible activity.

See: Activity Cost: page 4 – 47 See: Timeout Transitions: page 5 – 3 See: Deferring Activities: page C – 7 " To Start a Background Engine If you are using the standalone version of Oracle Workflow. you can start a background engine by submitting the Background Process concurrent program using the Submit Requests form. Generally. you can use Oracle Workflow Manager to submit and manage the Workflow Background 2 – 44 Oracle Workflow Guide . Context: You need to perform this step only once. normally not more often than once a day. and one that can handle stuck processes. You can use the procedures in the DBMS_JOB package to schedule and manage the background engine as a database job. See: To Schedule Background Engines: page 2 – 45 Note: If you are using the version of Oracle Workflow embedded in Oracle Applications and you have implemented Oracle Applications Manager. you should run a separate background engine to check for stuck processes at less frequent intervals than the background engine that you run for deferred activities. Run the background engine to check for stuck processes when the load on the system is low. At a minimum.Background engines can be restricted to handle activities associated with specific item types. and within specific cost ranges. Generally. Oracle Administrator’s Guide. If you are using the version of Oracle Workflow embedded in Oracle Applications. then use the WF_ENGINE. or scheduling the Background Process concurrent program to resubmit periodically (for the version of Oracle Workflow embedded in Oracle Applications). Sample scripts that repeatedly run the background engine are provided with the standalone version of Oracle Workflow. Ensure that you have at least one background engine that can check for timed out activities. one that can process deferred activities. you should set the background engine up to run periodically by either using a script to restart the background engine periodically (for the standalone version of Oracle Workflow). See: Background: page 8 – 41 and Managing Job Queues. A background engine runs until it completes all eligible activities at the time it was initiated.BACKGROUND() API to start up a background engine. you need to set up one background engine that can handle both timed out and deferred activities as well as stuck processes.

Then in the Session Control window. To Schedule Background Engines If you are using the version of Oracle Workflow embedded in Oracle Applications.Process concurrent program. Oracle Applications User’s Guide. Use the Submit Requests window in Oracle Applications to submit the Workflow Background Process. If you are using the standalone version of Oracle Workflow available with Oracle9i Release 2. Submit the Workflow Background Process concurrent program as a request. you can submit the background engine procedure as a concurrent program to schedule different background engines to run at different times. At a minimum. 2. and save your work. " To Run a Workflow Background Process as a Concurrent Program 1. you can use the standalone Oracle Workflow Manager component available through Oracle Enterprise Manager to submit and manage Workflow background engine database jobs. Oracle Applications System Administrator’s Guide. you can use the Concurrent Programs window in the System Administrator responsibility to specify the rollback segment that you want. enter the rollback segment you want in the Rollback Segment field. See: Submitting a Request. For more information. See: Concurrent Programs Window. This rollback segment will be used instead of the default and will be used up until the first commit. For more information. Note: If you require a larger rollback segment for the Workflow Background Process than the default. and one that can handle stuck processes. you need to set up one background engine that can handle both timed out and deferred activities as well as stuck processes. enter values for the following parameters: Setting Up Oracle Workflow 2 – 45 . Navigate to the Submit Requests form. one that can process deferred activities. and choose the Session Control button. 3. Note: Make sure you have a least one background engine that can check for timed out activities. In the Parameters window. Query the Workflow Background Process concurrent program (FNDWFBG) in the Concurrent Programs window. please refer to the Oracle Workflow Manager online help. please refer to the Oracle Applications Manager online help.

Specify the maximum cost that an activity can have for this background engine to execute it. and one that can handle stuck processes. Process Timeout Process Stuck Note: Make sure you have a least one background engine that can check for timed out activities. Choose OK to close the Parameters window. Setting this parameter to ’Yes’ allows the engine to check for stuck processes.Item Type Specify an item type to restrict this engine to activities associated with that item type. The default values for these arguments are 0 and 100 so that the background engine runs activities regardless of cost. 2 – 46 Oracle Workflow Guide . Specify the minimum cost that an activity must have for this background engine to execute it. If you do not specify an item type. Specify whether this background engine checks for stuck processes. 5. in hundredths of a second. Setting this parameter to ’Yes’ allows the engine to check for deferred activities. the engine processes any deferred activity regardless of its item type. When you finish modifying the run options to define the schedule for the background engine. Minimum Threshold Maximum Threshold Process Deferred Specify whether this background engine checks for deferred activities. By using Minimum Threshold and Maximum Threshold you can create multiple background engines to handle very specific types of activities. At a minimum. Specify whether this background engine checks for activities that have timed out. in hundredths of a second. 4. one that can process deferred activities. Setting this parameter to ’Yes’ allows the engine to check for timed out activities. you need to set up one background engine that can handle both timed out and deferred activities as well as stuck processes. choose Submit to submit the request.

You should reset the threshold value afterwards in SQLPLUS or in the next function activity so that other activities are processed as expected. You can do this by altering the Workflow Engine threshold in the PL/SQL stored procedure for a function activity.See Also See: Overview of Concurrent Programs and Requests. The background engine then only processes activities with costs within your specifications. Setting Up Oracle Workflow 2 – 47 . Activities with a cost higher than 50 are deferred for background engines to process.THRESHOLD := n. you may want to force the engine to defer an activity although the activity’s cost is less than fifty. The engine threshold is set in an externalized constant called THRESHOLD. The Workflow Engine threshold is set to 50 as a default. Include the following line in your PL/SQL procedure to set the WF Engine threshold to a different value: WF_ENGINE. Oracle Applications System Administrator’s Guide " To Set Engine Thresholds To set the thresholds of background engines. In some cases. specify the minthreshold and maxthreshold arguments when starting the engine.

Step 9 Implementing the Notification Mailer The Notification Mailer is a program that performs e–mail send and response processing for the Oracle Workflow Notification System. The generated e–mail message also includes any custom site information. the due date. The Notification Mailer polls the database for messages that have to be sent. • Switches its database session to the role’s preferred language and territory as defined by the directory service. and performs the following action for each message: • Resolves the recipient role to a single e–mail address. however. Once you set up the Notification Mailer to run. This agent appears in the Check Setup page and the Event System Local Queues page of the Event Manager. 2 – 48 Oracle Workflow Guide . enabling you to use these pages to check the number of notification messages on the Notification Mailer queue. dequeues these messages from the SMTP advanced queue. The e–mail notifications are based on standard templates defined in Oracle Workflow Builder. See: Modifying Your Message Templates: page 2 – 69. The templates describe the syntax the reply should follow and list the information needed to confirm the notification. it continually polls the database for messages to send and checks its response mail account for responses to process. as well as from the Notifications Worklist web page. You do not have to do anything else unless you have a need to shut it down and restart it again with different parameters. The Notification Mailer also processes responses by interpreting the text of messages mailed to its response mail account and calling the appropriate notification response function to complete the notification. Checking the Business Event System Setup: page 13 – 53. See: Standard Agents: page 13 – 25. The WF_SMTP_O_1_QUEUE agent is not used by the Business Event System. and any information necessary to process the response. • Generates the message and any optional attachments using the appropriate message template. Note: A standard agent named WF_SMTP_O_1_QUEUE is defined for the Notification Mailer SMTP queue in the Event Manager. and Reviewing Local Queues: page 13 – 72. You need to perform this step only if you wish to have your workflow users receive their notifications via e–mail. • Sends the message via UNIX Sendmail or any MAPI–compliant mail application on Windows NT. which itself can be a mail list.

.

Setting Up Oracle Workflow 2 – 49 . If you are using the standalone version of Oracle Workflow. See: Plain Text E–mail: page 2 – 50. Attention: The Notification Mailer will shut itself down if a database failure is encountered or if the PL/SQL package state for the session is invalid due to dropping or replacing of package definitions. If the notification message has ’Content–Attached’ message attributes. you can restart the Notification Mailer manually or run a shell script that restarts the Notification Mailer if it ever exits with a failure. If you are using the version of Oracle Workflow embedded in Oracle Applications. This means that the Notification Mailer can exchange messages with workflow users containing languages with different character sets and multi–media encoded content. others can display HTML formatting. • HTML mail (MAILHTML)—The notification message appears as HTML–formatted text. Five notification preferences are available: • Plain text mail (MAILTEXT)—The notification message appears as plain text. with no attachments. with at least one other attachment that is a link to the notification in the Notifications web page. the functionality of a user’s mail reader determines what the user’s notification preference should be. See: Reviewing Notifications via Electronic Mail: page 10 – 2 Full MIME Support Oracle Workflow fully supports MIME (Multi–purpose Internet Mail Extensions) encoded messages. See: HTML–Formatted E–mail: page 2 – 51. See: To Run a Perpetual Shell Script for the Notification Mailer: page 2 – 67. you can use the concurrent manager to restart the Notification Mailer program manually or schedule it to restart periodically. while still others can only display HTML formatting in an attachment. these attributes appear as additional attachments to the message. See: Setting User Preferences: page 9 – 6. Notification Preferences Oracle Workflow allows you to determine how you view notifications by setting a notification preference in the User Preferences web page. Some mail readers can only display plain text. Context: You need to perform this step only once. Often times.

.

change your notification preference to ’Plain text mail with HTML attachments’ (MAILATTH). you must access the notifications from the Notifications web page. • Plain text summary mail (SUMMARY)—The message is a plain text summary of all open notifications. • Do not send me mail (QUERY)—The Notification Mailer does not send you e–mail notifications. If the notification message has ’Content–Attached’ message attributes. See: Plain Text E–mail with an HTML Attachment: page 2 – 53. • Plain text mail with HTML attachments (MAILATTH)—The notification message appears as plain text. . but your mail reader is not able to interpret HTML formatting in the mail message body. Attention: If you wish to view notifications with HTML formatting. with at least two other attachments. To respond to the individual notifications in the summary. these attributes appear as additional attachments to the message. and the other is a link to the notification in the Notifications web page. Instead you must query and respond to your notifications from the Notifications web page. The MAILATTH preference delivers an HTML–formatted version of the notification as an attachment to the plain text notification. One attachment is an HTML–formatted version of the message.

The Notification Mailer uses the Text Body defined for the message in the Oracle Workflow Builder message property page to generate the plain text e–mail. the notification is flagged as such in the Workflow Notification table. it generates a plain text e–mail notification from the information in the table and sends it to the performer role. It token replaces all attribute values referenced in the message body with plain text values. even if you set your notification preference to send you mail. Attention: You can always query and respond to your notifications from the Notifications web page. When the Notification Mailer polls the Notification table and identifies that flag. See: Reviewing Notifications via Electronic Mail: page 10 – 2 See: Viewing Notifications from a Web Browser: page 10 – 12 See: Reviewing a Summary of Your Notifications via Electronic Mail: page 10 – 24 Plain Text E–mail If the performer of a notification has a notification preference of plain text mail (MAILTEXT). For example: 2 – 50 Oracle Workflow Guide .

followed by a colon and the URL: <URL_Attribute_Display_Name>:<URL> .• PL/SQL and PL/SQL CLOB document attributes are token replaced with a plain text version of a PL/SQL document. • URL attributes are token replaced with the display name of the URL attribute.

For example: • PL/SQL and PL/SQL CLOB document attributes are token replaced with HTML text or plain text between <pre>.. A recipient of a plain text e–mail notification responds by manually replying to the notification and entering response values following the instructions provided in the notification. HTML–Formatted E–mail If the performer of a notification has a notification preference of HTML mail (MAILHTML). the notification is flagged as such in the Workflow Notification table. it uses the Text Body to generate the HTML mail.</pre> HTML tags. See: Viewing Notifications from a Web Browser: page 10 – 12. See: To Respond to a Plain Text E–mail Notification Using Templated Response: page 10 – 4 and To Respond to a Plain Text E–mail Notification Using Direct Response: page 10 – 6. When the Notification Mailer polls the Notification table and identifies that flag. you should display your notifications in the Notifications Worklist web page. Attention: Message attributes that have Attach Content checked in their Attributes property page. The Notification Mailer uses the HTML Body defined for the message in the Message Body property page to generate the HTML e–mail. The Notification Mailer token replaces all message attributes referenced in the message body with HTML–formatted values. The performer role should use an e–mail reader that can interpret and display HTML content within a message body. are attached as plain text to their parent notification. If no HTML Body is defined. Note: If your e–mail reader cannot interpret HTML formatting in a message body. Note that this may render some attachments unreadable if the attachment includes special formatting or your plain text e–mail reader does not recognize attachments. Setting Up Oracle Workflow 2 – 51 .. you should set your notification preference to plain text mail with HTML Attachments (MAILATTH). it generates an HTML–formatted e–mail notification from the information in the table and sends it to the performer role. To view these attachments.

The Notification Mailer does not have any special handling of image.msg source file specifying the new file names as the text values for the WF_URL_NOTIFICATION and WF_URLLIST_ATTACHMENT resource tokens. Similarly. you must first create a .html” and ”Notification References. Note: If the SEND_ACCESS_KEY parameter in the Notification Mailer configuration file is set to N. If you want to specify different file names for these attachments. The attachment is called Notification Detail Link. Note: Message attributes that have Attach Content checked in their Attributes property page. the fully generated PL/SQL document is fetched and attached to the message. This attachment includes a link to each URL attribute for the message that has Attach Content checked. The default file names are ”Notification Detail Link. When you select such an anchor.• URL attributes are token replaced with HTML anchors. Then use the Workflow Resource Generator program to generate a new 2 – 52 Oracle Workflow Guide . video. – If the message attribute is a PL/SQL or PL/SQL CLOB document attribute. and you are not already logged in. or by the token name if no text value is defined. or audio URL content.html”. When you select this attachment. the file name of the Notification References attachment is determined by the text value for the WF_URLLIST_ATTACHMENT resource token. Note: The file name of the Notification Detail Link attachment is determined by the text value for the WF_URL_NOTIFICATION resource token. You can respond directly to your notification from this web page. your e–mail reader opens a browser window that displays your notification in the Notification Details web page. respectively. an attachment called Notification References is appended to the message. An HTML–formatted notification always includes at least one attachment. bypassing the need to process your response through the Notification Mailer. your e–mail reader takes you to the target URL page. For example: – If the message attribute is a URL attribute. or by the token name if no text value is defined. are appended as HTML–formatted attachments to their parent message. you will be prompted to log in when you select the Notification Detail Link before you can access the Notification Details web page. You can navigate to a URL by choosing its link.

See: To Run the Workflow Resource Generator: page 8 – 105 and Setting the WF_RESOURCES Environment Variable: page 2 – 42.res) from the source file and to upload the new seed data from the source file to the database table WF_RESOURCES. an attachment called Notification References is appended to the message. are appended as HTML–formatted attachments. it generates a plain text e–mail notification with HTML attachments from the information in the table and sends it to the performer role. For example: – If the message attribute is a URL attribute. you can respond to your HTML–formatted notification by clicking on a link that represents the response in the HTML message body. Note: Message attributes that have Attach Content checked in their Attributes property page. The Notification Mailer generates the content of the HTML attachment from the HTML Body defined for the message. The Notification Mailer uses the Text Body defined for the message in the Message Body property page to generate the plain text body of the e–mail. The Notification Mailer token replaces all message attributes referenced in the plain text message body with plain text values and token replaces all message attributes referenced in the attached HTML message with HTML–formatted values. Plain Text E–mail with an HTML Attachment If the performer of a notification has a notification preference of plain text mail with HTML attachments (MAILATTH). The performer role should use an e–mail reader that supports HTML attachments. When the Notification Mailer polls the Notification table and identifies that flag. Alternatively. The response link generates a plain text e–mail response that includes a response template modified with the predefined response value that you select. See: To Respond to an HTML E–mail Notification: page 10 – 9. then the HTML attachment will also appear in line in the message body. See: Sending Plain Text E–mail: page 2 – 50 and Sending HTML–Formatted E–mail: page 2 – 51. it uses the Text Body to generate the HTML mail. the notification is flagged as such in the Workflow Notification table.Oracle Workflow resource file (wf<language>. It also generates an HTML version of the notification message and sends it as an attachment called HTML Message Body to the plain text e–mail. If no HTML Body is defined. If your e–mail reader supports HTML–formatting in the message body. This attachment includes a link to each URL attribute for Setting Up Oracle Workflow 2 – 53 .

Note: The file name of the HTML Message Body attachment is determined by the text value for the WF_HTML_MESSAGE resource token. You can respond directly to your notification from this web page. The default file 2 – 54 Oracle Workflow Guide . Similarly. or by the token name if no text value is defined. The first attachment is HTML Message Body and the other is Notification Detail Link. The response link generates a plain text e–mail response that includes a response template updated with the predefined response value you select. Note: If the SEND_ACCESS_KEY parameter in the Notification Mailer configuration file is set to N. and you are not already logged in. Alternatively. When you select Notification Detail Link. the file name of the Notification Detail Link attachment is determined by the text value for the WF_URL_NOTIFICATION resource token. See: To Respond to a Plain Text E–mail Notification with an HTML Attachment: page 10 – 11. a recipient of this type of notification can respond in one of two other ways: • Manually reply to the notification and enter response values following the instructions provided in the notification. bypassing the need to process your response through the Notification Mailer. See: To Respond to a Plain Text E–mail Notification Using Templated Response: page 10 – 4 and To Respond to a Plain Text E–mail Notification Using Direct Response: page 10 – 6. and the file name of the Notification References attachment is determined by the text value for the WF_URLLIST_ATTACHMENT resource token.the message that has Attach Content checked. or by the token name if no text value is defined. your e–mail reader opens a browser window that displays your notification in the Notification Details web page. you will be prompted to log in when you select the Notification Detail Link before you can access the Notification Details web page. the fully generated PL/SQL document is fetched and attached to the message. and click on the HTML link that represents the response. – If the message attribute is a PL/SQL or PL/SQL CLOB document attribute. You can navigate to a URL by choosing its link. • Select the HTML Message Body attachment to display the HTML–formatted version of the e–mail message. or by the token name if no text value is defined. The notifications received by a user whose notification preference is ’Plain text with HTML attachments’ always contain at least two attachments.

Replace <config_file> with the full path and Setting Up Oracle Workflow 2 – 55 . WF_URL_NOTIFICATION. Starting the Notification Mailer You can install and set up the Notification Mailer to run against UNIX Sendmail or a MAPI–compliant mail application on Windows NT.msg source file specifying the new file names as the text values for the WF_HTML_MESSAGE. However. If you want to specify different file names for these attachments. The Notification Mailer resides on your server in the $ORACLE_HOME/bin subdirectory.names are ”HTML Message Body.res) from the source file and to upload the new seed data from the source file to the database table WF_RESOURCES. Then use the Workflow Resource Generator program to generate a new Oracle Workflow resource file (wf<language>. and WF_URLLIST_ATTACHMENT resource tokens. See: To Run the Workflow Resource Generator: page 8 – 105 and Setting the WF_RESOURCES Environment Variable: page 2 – 42.<xxx> –f <config_file> Replace <xxx> with snd to use the UNIX Sendmail version of the Notification Mailer. ”Notification Detail Link. before doing so. respectively. and ”Notification References. Users can receive e–mail notifications using any e–mail reader that is MAPI–compliant running on Windows NT or that UNIX Sendmail can provide a gateway to.html”. please refer to the Oracle Workflow Manager online help. You must also define three folders or files in your mail account to use response processing.html”. you can use the standalone Oracle Workflow Manager component available through Oracle Enterprise Manager to monitor the throughput of the Notification Mailer.html”. " To Start the Notification Mailer for UNIX Sendmail For the Standalone Version of Oracle Workflow: 1. you must set up a least one mail account dedicated to the Notification Mailer in one of these mail applications. use the following command syntax: wfmail. Note: If you are using the standalone version of Oracle Workflow available with Oracle9i Release 2. For more information. you must first create a . To run the Notification Mailer.

using the format parameter=value. The configuration file contains the parameters you want to run with the Notification Mailer. 6. For the Version of Oracle Workflow Embedded in Oracle Applications: 1. please refer to the Oracle Applications Manager online help. you can use Oracle Workflow Manager to configure and run the Notification Mailer.. you can specify a configuration file. See: Overview of Concurrent Programs and Requests. For more information.. Oracle Applications System Administrator’s Guide. 5. 2. you can specify the parameters for the Notification Mailer as arguments on the command line rather than in a configuration file.. Alternatively. To run the concurrent program from the Submit Requests form. Note: Your system administrator needs to add this concurrent program to a request security group for the responsibility that you want to run this program from. Or. When you finish modifying the print and run options for this request. navigate to the Submit Requests form. 2 – 56 Oracle Workflow Guide . You can run the Notification Mailer concurrent program from the Submit Requests form or from the command line. Choose OK to close the Parameters window. 4.name of the configuration file that contains the parameters you want to run with the Notification Mailer. 3.<xxx> <arg1> <arg2> .. Replace <arg1> <arg2> .. See: Submitting a Request. 2. by typing the following command: wfmail.<xxx> –f <config_file> <arg1> <arg2> . with any number of optional parameters and values. In the Parameters window. but override certain parameter values in the configuration file by specifying command line values: wfmail. Submit the Notification Mailer concurrent program as a request. The Notification Mailer program is registered as a concurrent program. Oracle Applications User’s Guide. choose Submit to submit the request.. enter the path and filename of a configuration file. Note: If you are using the version of Oracle Workflow embedded in Oracle Applications and you have implemented Oracle Applications Manager.

Setting Up Oracle Workflow 2 – 57 .exe –f <config_file> 2.. you can specify a configuration file. Or. but override certain parameter values in the configuration file by specifying command line values: wfmlr. Install the Notification Mailer for MAPI–compliant mail applications on your Windows NT PC using Oracle Universal Installer. Note: You can also double–click on the Oracle Workflow Notification Mailer icon in the Oracle – <SID NAME> program group to start the program..ext or <native path> " To Start the Notification Mailer for MAPI–Compliant Mail Applications 1. but you must first edit the properties of the icon to include the above command as its target.exe <arg1> <arg2> ...7./]file. 3. you can also run the Notification Mailer concurrent program from the command line.exe –f <config_file> <arg1> <arg2> .. Alternatively. A file specification for config_file can be: @<application_short_name>:[<dir>/.. you can type the following command: wfmlr. if you want to specify the parameters for the Notification Mailer as arguments on the command line rather than in a configuration file. Rather than use the Submit Requests form. The Notification Mailer program resides in <drive>:\<ORACLE_HOME>\bin. Enter: WFMAIL apps/pwd 0 Y FILE config_file Replace apps/pwd with username and password to the APPS schema. replace config_file with the file specification of the configuration file that contains the parameters you want to run with the Notification Mailer. Start the Notification Mailer program by entering the following command in an MS–DOS prompt window: <drive>:\<ORACLE_HOME>\bin\wfmlr. Replace <config_file> with the full path and name of the configuration file that contains the parameters you want to run with the Notification Mailer.

. username/password@connect_string (or alias).. the file resides in your Oracle Workflow server directory structure. List each parameter name on the left side of the equal sign (=) and specify a value for each parameter on the right. you can use Oracle Workflow Manager to configure and run the Notification Mailer. The content of the configuration file is formatted as follows: #Description PARAMETER1=<value1> #Description PARAMETER2=<value2> . the file resides in the resource subdirectory under $FND_TOP on your server. 3. Oracle Workflow provides an example configuration file..Replace <arg1> <arg2> . with the required and optional parameters and values.. 2. " To Create a Configuration File for the Notification Mailer 1. . For more information. Any text preceded by # is not interpreted and can be used for including comments. Note: If you are using the version of Oracle Workflow embedded in Oracle Applications and you have implemented Oracle Applications Manager. The file also resides on your PC in the <drive>:\<ORACLE_HOME>\wf\data subdirectory. called wfmail. For the version of Oracle Workflow embedded in Oracle Applications. If you are using the standalone version of Oracle Workflow. using the format parameter=value.cfg. using the format. The parameters are as follows: • CONNECT—(Required) The information to connect to the database account where the Oracle Workflow server is installed. under the subdirectory res. please refer to the Oracle Applications Manager online help.

2 – 58 Oracle Workflow Guide . In this case. Attention: The CONNECT parameter is not required if you submit the Notification Mailer as a concurrent program from the version of Oracle Workflow embedded in Oracle Applications. the concurrent manager passes in the database connection information for the Notification Mailer to use.

For Sendmail.• ACCOUNT—(Required) The information to connect to the mail account that the program uses to send notification messages. the account information is the mail account profile name and mail account password. Note that this should correspond to the account from which you start the Notification Mailer. the account information would be the full file path of the mail spool file where incoming messages are stored. For MAPI–compliant mail programs. applmgr3. . in this example. such as /var/mail/applmgr3.

.

Attention: If you are using the version of Oracle Workflow embedded in Oracle Applications. The node name is included with the outgoing notification ID. you could assign the node name wf2 to the Notification Mailer for the next instance you set up. you must also specify the full path of the Sendmail executable directory in your PATH environment variable. then the Account parameter must be set to the account from which you start the Concurrent Manager. The default is Oracle Workflow. The default name is wf. Attention: If you want to start the Sendmail version of the Notification Mailer. and each Notification Mailer must use a separate e–mail account to process responses. For example. . • FROM—The value that appears in the From: field of the message header when a notification message is delivered to a user. you must define a unique node name for each Notification Mailer configuration file to ensure that the Notification Mailer for each instance uses a different TMP file for processing. If you have multiple workflow databases on one server. • NODE—(Required) The node identifier name. Note: You can only run one Notification Mailer per instance. and want to start the Sendmail version of the Notification Mailer concurrent program. if you already have a Notification Mailer on the server with the node name wf.

The MAPI–compliant version of the Notification Mailer uses the display value that is set up for the mail account specified in the ACCOUNT parameter. Attention: The FROM parameter is only used to set the From: field value by the UNIX Sendmail version of the Notification Mailer. • SUMMARYONLY—(Required) Indicate whether this Notification Mailer processes only notifications assigned to users/roles with a notification preference of ’SUMMARY’ or Setting Up Oracle Workflow 2 – 59 .

For Oracle Workflow running in the standalone environment. Valid values are Y or N. Specify Y or y to send plain text notifications requiring a direct response to users with these preferences. since the summary includes all open notifications. If you set SUMMARYONLY=Y. We recommend you run the summary Notification Mailer once a day. this simply involves scheduling the Notification Mailer concurrent program in the Submit Request form. ’MAILATTH’. users must reply using a template of response prompts and enter their response values between the quotes following each prompt. . See: Reviewing Notifications via Electronic Mail: page 10 – 2. one where SUMMARYONLY=Y and one where SUMMARYONLY=N if any of your workflow users or roles have a notification preference of ’MAILTEXT’. The default is N.whether it only processes notifications for users/roles with a notification preference of ’MAILTEXT’. then the Notification Mailer will shut itself down after it polls the database and delivers any appropriate notification summaries. to schedule the Notification Mailer. For the direct response method. For the templated response method. this would involve creating an operating system script. ’MAILATTH’. The default is N. users must enter their response values directly as the first lines of a reply. or ’SUMMARY’. You should set up at least two Notification Mailers. or ’MAILHTML’. such as a cron job in UNIX. • DIRECT_RESPONSE—Specify N or n to send plain text notifications requiring a templated response to users with a notification preference of ’MAILTEXT’ or ’MAILATTH’. See: Setting Up Users and Roles from a Directory Repository: 2 – 21. ’MAILHTML’. For the version of Oracle Workflow embedded in Oracle Applications. You must therefore schedule the Notification Mailer to run at the frequency you want notification summaries to be delivered.

Instead. if you do not need to use the Workflow Open Mail for Outlook Express template. Attention: If you include the HTML_MAIL_TEMPLATE parameter in your configuration file. the Notification Mailer will ignore the DIRECT_RESPONSE parameter when sending messages to users with a notification preference of ’MAILATTH’. which uses the templated response method. all users with this notification preference will receive the plain text message body defined for the Workflow Open Mail for Outlook Express template. Consequently. you should comment out the 2 – 60 Oracle Workflow Guide .

all FYI notifications will remain open in the Notifications Worklist until users manually close these notifications. If the value is N. Setting Up Oracle Workflow 2 – 61 . The value must be an integer greater than or equal to zero. Valid values include Y or N. If the value is Y. suppose a notification is sent to a distribution list mail alias that does not have a USER/ROLE relationship in the Oracle Workflow directory service. The default is 30.HTML_MAIL_TEMPLATE parameter to let the DIRECT_RESPONSE parameter take effect. which is an individual user’s e–mail address. the Notification Mailer never checks the ”From:” e–mail address of the notification response and always allows the response to be processed. after sending the notifications by electronic mail. the Notification Mailer will check if the ”From:” e–mail address of the notification response exactly matches the e–mail address of the recorded recipient role (or the e–mail address of a user in that role). The default is Y. the Notification Mailer treats the response as a valid response. If the two e–mail addresses do not match exactly. If any user from the distribution list responds to the notification. will never match the distribution list mail alias. the Notification Mailer will always treat their notification response as unsolicited mail. meaning the notification was simply forwarded using the e–mail Forward command. meaning the notification was not forwarded or was forwarded according to a valid routing rule. Warning: Note that there are limitations when you set ALLOW_FORWARDED_RESPONSE to N. such as FYI (For Your Information) notifications. The default is Y. because the ”From:” e–mail address. the Notification Mailer does not process the response and treats it as unsolicited mail. • IDLE—The number of seconds to wait before checking for messages to send. If the value is N. • ALLOW_FORWARDED_RESPONSE—Indicate whether to allow a user to respond to an e–mail notification that has been forwarded from another role. For example. Valid values include Y or N. • AUTOCLOSE_FYI—Indicate whether this Notification Mailer automatically closes notifications that do not require a response. If the two e–mail addresses match exactly.

You must remove the shutdown file to restart the Notification Mailer again. then place the shutdown file in the $FND_TOP/$APPLLOG directory. . then the Notification Mailer shuts down. If the file exists. if the e–mail account that processes responses is different from the e–mail account that sends outgoing notifications. • SHUTDOWN—The name of a file that cues the Notification Mailer to shut down. For the concurrent program version of the Notification Mailer. For the version of Oracle Workflow embedded in Oracle Applications. If you have not set the $APPLCSF environment variable. The default filename is shutdown. Valid values include Y or N. • FAILCOMMAND—The command to run if the Notification Mailer encounters a fatal error. • REPLYTO—(Required) A default e–mail address to reply to. the Notification Mailer’s current working directory is the directory from which you start the Notification Mailer. For the standalone version of Oracle Workflow. • TEST_ADDRESS—Indicate a test e–mail address to direct all outgoing e–mail notifications. The Notification Mailer always looks for the shutdown file in its current working directory before looking for notifications to process. A valid value would be a filename. This parameter is valid only for the standalone version of the Notification Mailer. the current working directory is the $APPLCSF/$APPLLOG directory. The default is N. • DEBUG—Indicate whether to print debugging information in the log. The test address overrides each recipient’s e–mail address so that you can test a workflow process without having to change each recipient’s e–mail address to access the test notifications. the activity output goes to the concurrent manager log file. This lets you safely shut down the Notification Mailer without killing the process.• LOG—The name of a log file to record activity.

Attention: The REPLYTO parameter is only used to set the reply–to address by the UNIX Sendmail version of the Notification Mailer. • HTMLAGENT—The base URL that identifies the HTML Web Agent that handles HTML notification responses. The MAPI–compliant version of the Notification Mailer uses the display value that is set up for the mail account specified in the ACCOUNT parameter. The default URL is derived from the Workflow 2 – 62 Oracle Workflow Guide . This URL is required to support e–mail notifications with HTML attachments.

• PROCESS—The name of the mail folder or full path name of the mail file to put processed notification messages. • UNPROCESS—The name of the mail folder or the full path name of the mail file to put unprocessed notification messages. or otherwise invalid messages. undeliverable. Since different mail systems vary in how they identify bounced. the DISCARD value must always be the full path name of a mail file. Note: For the UNIX Sendmail version of the Notification Mailer. A ’–’ preceding the name causes the Notification Mailer to truncate the folder or file on startup. The default is –discard. • TAGFILE—The full path and name of a tag file.Web Agent specified in the Global Preferences web page. the PROCESS value must always be the full path name of a mail file. • DISCARD—The name of the mail folder or full path name of the mail file to put discarded messages. A ’–’ preceding the name causes the Notification Mailer to truncate the folder or file on startup. you can use a tag file to specify how your mail system identifies those stray messages and how you want the Notification Mailer to handle those messages should it come across them. See: Setting Global User Preferences: page 2 – 14. Unusual messages include bounced or returned messages. mass mailing lists. the UNPROCESS value must always be the full path name of a mail file. and so on. The default is processed. but you can override this default by entering a different value for this parameter. The default is unprocessed. Note: For the UNIX Sendmail version of the Notification Mailer. auto–reply messages such as those sent by vacation daemons. A ’–’ preceding the name causes the Notification Mailer to truncate the folder or file on startup. The tag file lists strings of text found in unusual messages and the status you want to assign to a message response if it contains any of those strings. Note: For the UNIX Sendmail version of the Notification Mailer. .

If the Notification Mailer receives a message response that does not contain a notification ID. Attention: Only a message response that contains a notification ID is checked by the tag file. it moves the message response to the discard folder and sends a ’Warning’ message to the sender that it Setting Up Oracle Workflow 2 – 63 .

The notification’s status is still OPEN and its mail status is still SENT.received unsolicited mail. and sends an ’Invalid’ message but does not alter the notification’s status or mail status. if the returned response value is not a valid value in the assigned lookup (result) type. – ERROR—moves the message to the discard folder and initiates an error process. so that it continues to wait for a valid reply. if one is defined. See: Workflow Invalid Mail Message: page 2 – 79. The Notification Mailer handles a message assigned one of these status values as follows: – IGNORE—moves the message to the discard folder and continues waiting for a valid reply to the open notification. The format used in the tag file is Status ”Matching string” where Status can be the value: ERROR. – UNAVAIL (or any other user defined tag)—moves the message to the discard folder and continues waiting for a reply to the notification since the notification’s status is still OPEN. but its mail status and activity status are updated to ERROR. Ideally. The notification’s status is still OPEN. as no further processing occurs with this notification. but its mail status is updated to UNAVAIL. . In this case. IGNORE. Subject: line. See: Workflow Warning Mail Message: page 2 – 82. the workflow administrator corrects the problem and resends the notification by updating its mail status to MAIL. or body of the message. This status is purely informative. or UNAVAIL and ”Matching string” is the text to look for in the From: line. The Notification Mailer can also assign an INVALID status to a message response. it moves the message to the discard folder.

If you do not identify bounced and auto–reply messages. Attention: It is important that you uniquely identify bounced messages and auto–replies from normal responses in the tag file. 2 – 64 Oracle Workflow Guide . In both cases a perpetual loop would occur where the Notification Mailer keeps sending out an ’Invalid’ message and the ’Invalid’ message bounces back or is auto–replied. the Notification Mailer can mistake these as invalid responses. send an ’Invalid’ message and continue to wait for a reply.

you can include the following line in your tag file: ERROR ”–– Unsent message follows ––” .As an example. if you want to mark all message responses that contain the string ”–– Unsent message follows ––” in the subject or body of the message as an error.

If the value is Y. Valid values include Y or N. That is. the Notification Mailer will reset all FAILED notifications to a mail status of MAIL on startup and then attempt to process these notifications as usual. If the value is Y. the Notification Mailer will convert the message to the codeset listed in the WF_LANGUAGES table for the language and territory specified in the recipient’s Workflow user preferences. The default is N. The default is N. the Notification Mailer will use the codeset seeded in WF_LANGUAGES for the language AMERICAN and territory AMERICA. it gets tagged with the status of the first string it matches in the file. the Notification Mailer will use the codeset associated with the first entry it encounters for the user’s preferred language. the file resides in your Oracle Workflow server directory structure in the subdirectory res. If neither a language nor a territory is specified in the user preferences. Attention: If a message response matches more than one string in the tag file. • RESET_FAILED—Indicate whether this Notification Mailer should reset all notifications with a mail status of FAILED to a mail status of MAIL when the Notification Mailer is started. Oracle Workflow provides an example tag file called wfmail. For the version of Oracle Workflow embedded in Oracle Applications. Due to this behavior.tag. the Notification Mailer performs a top to bottom comparison against the tag file. • HTML_MAIL_TEMPLATE—Specify OPEN_MAIL_OUTLOOK to use the Workflow Open Mail for Outlook Express message as the Setting Up Oracle Workflow 2 – 65 . See: Setting User Preferences: page 9 – 6. If no preferred territory is specified. the file resides on your server in the resource subdirectory under $FND_TOP. • RESET_NLS—Indicate whether the Notification Mailer should convert the NLS codeset for a notification message according to the notification recipient’s preferences before composing the message. Valid values include Y or N. followed by the UNAVAIL and then IGNORE tags. For the standalone version of Oracle Workflow. you should prioritize your strings listing the ERROR tags first.

You can select this message template if you use an e–mail application such as Microsoft Outlook Express as your e–mail client. you can comment out this parameter in your configuration file and let the Notification Mailer use these templates by default. for users with a notification preference of ’MAILHTML ’or ’MAILATTH’. in order to include a link to the Notification Details web page which lets users respond to the notification there. This template is provided to accommodate e–mail applications that cannot process the response links included in the Workflow Open Mail (Templated) and Workflow Open Mail (Direct) templates. . If you want to use the normal Workflow Open Mail (Templated) and Workflow Open Mail (Direct) templates.template for e–mail notifications that require a response.

Specify N to exclude the access key from the Notification Detail Link. The default is Y. all users with this notification preference will receive the plain text message body defined for the Workflow Open Mail for Outlook Express template. whether they are currently logged in or not. which uses the templated response method. Attention: If you include the HTML_MAIL_TEMPLATE parameter in your configuration file. the Notification Mailer will ignore the DIRECT_RESPONSE parameter when sending messages to users with a notification preference of ’MAILATTH’. you should comment out the HTML_MAIL_TEMPLATE parameter to let the DIRECT_RESPONSE parameter take effect. The access key allows users to access the Notification Details web page directly by clicking the Notification Detail Link. • SEND_ACCESS_KEY—Specify Y to include an access key in the Notification Detail Link attachment that is sent with HTML e–mail notifications and with plain text e–mail notifications with HTML attachments. However. if you do not need to use the Workflow Open Mail for Outlook Express template. they are prompted to log in. Instead. See: Defining Rules for Automatic Notification Processing: page 10 – 25 2 – 66 Oracle Workflow Guide . Note: The HTML_MAIL_TEMPLATE parameter does not apply to users with a notification preference of ’MAILTEXT’. Consequently. before they can access the Notification Details web page. if users are not already logged in. they cannot access any other notifications except the notification with which the attachment was sent. When users click the link without the access key. if they have not already done so.

Note: Use a similar technique to restart the Window NT Notification Mailer. you need to set up a perpetual shell script that restarts the Notification Mailer if it shuts down due to failure. but for the wrong node. 2. The script is called wfmail." To Run a Perpetual Shell Script for the Notification Mailer 1.csh and it is located in the Oracle Home bin subdirectory on your server. The Notification Mailer then opens the unprocessed folder to process each response. it reads the message. Oracle Workflow provides a sample shell script to restart the UNIX Sendmail Notification Mailer. If a message exists. For each message. The shell script passes all command line arguments directly to the Notification Mailer executable. and processed messages. • If the message is a notification. • Checks for messages. The Notification Mailer does the following to check for response messages: • Logs into the response mail account. Setting Up Oracle Workflow 2 – 67 . it: • Retrieves the notification ID. unprocessed. • If the message is a notification for the current node. • If the message is not a notification. If you are running the standalone version of Oracle Workflow. Enter the following command at your operating script prompt to run the shell script: wfmail. The three folders or files serve to hold discarded. checking for the notification ID and node identifier. it moves it to the discard folder. Response Processing You must create three folders or files in your response mail account before starting the Notification Mailer to process responses. it does not move the message so that the Notification Mailer for the correct node can read it later. it moves the message to the unprocessed folder.csh –f <config_file> Replace <config_file> with the full path name of the configuration file that contains the parameters you want to run with the Notification Mailer.

it moves it to the discard folder. it reroutes it or updates the notification’s status and stops any further processing depending on the specifications of the tag file. If the message bounced. it calls a Respond function to complete the notification response and saves the change to the database. The Notification Mailer then truncates the discard and processed folders. • Moves the message for the completed notification to the processed folder and closes the unprocessed folder. If the responses are valid. it verifies the response values with the definition of the message’s response attributes in the database. – If the notification exists. 2 – 68 Oracle Workflow Guide . If a response is invalid. it moves it to the discard folder. but is closed or canceled. – If the notification exists and is open.• Checks to see if the message bounced by referring to a specified tag file. • Checks the Oracle Workflow database for this notification. if a ’–’ precedes the discard and process parameters specified in the configuration file. if any. – If the notification does not exist. and logs out of the mail and database accounts. it sends an Workflow Invalid Mail message to the recipient role.

rather they act as templates for any e–mail messages the Notification system sends. The messages of the System: Mailer item type are not true messages. any comments from the forwarder. the Notification system uses the Workflow Open Mail (Templated) message as a template for e–mail notifications that require a response. The response instructions in the HTML–formatted message body describe how to reply using the automatically generated response template. System: Mailer messages determine the basic format of an e–mail notification. The System: Mailer item type has attributes that represent every part of the notification message. Note: To select the templated response method. It also includes the following information about a message: message priority. This message is used for notifications sent to performers with a notification preference of MAILTEXT or MAILATTH. Context: You need to perform this step only once. date that a response is due. Workflow Open Mail (Templated) Message If you select the templated response method. This message is used for notifications sent to performers with a notification preference of MAILHTML. The notification template includes generic instructions on how to respond to a notification. See: To Create a Configuration File for the Notification Mailer: page 2 – 58. set DIRECT_RESPONSE=N in the configuration file for the Notification Mailer.Step 10 Modifying Your Message Templates Use the System: Mailer item type in Oracle Workflow Builder to configure the templates that Oracle Workflow uses to send e–mail notifications. You can reorganize the layout of these attributes in each template to customize the e–mail messages sent by the Notification system. if the notification is forwarded from another user. Warning: Do not add new attributes or delete existing attributes from the message templates in the System: Mailer item type. and is also attached to notifications sent to performers with a notification preference of MAILATTH. and any comments from the sender of the message or. The response instructions in the plain text message body describe how to reply manually using the templated response method. or whether and where to include details such as the message due date and priority. Setting Up Oracle Workflow 2 – 69 . including what header information to include.

The content of the HTML tag that a recipient would click on to access the Notification Details page to respond to a notification. MAILTO CLICK_HERE_ RESPONSE You can customize the boilerplate text that appears in the body of the Workflow Open Mail (Templated) message. The date by which a response is required. This attribute is not currently used. The boilerplate text for a plain text message body is as follows: Oracle Workflow Notification &COMMENT ____________Start of Response Template____________ Response Template for &NOTIFICATION To submit your response. the performer. Comments added by the sender or the forwarder. This attribute is used only for HTML e–mail notifications.The Workflow Open Mail (Templated) message has the following message attributes. The role the notification is sent to. specified in the notification activity. reply to this message. The priority of the notification message. The text of the body defined in the message. where attributes preceded by an ampersand (&) are token substituted with runtime values when the notification is sent. The content of the HTML tag that a recipient would click on to respond to a notification. The values are drawn from the message definition associated with a notification activity. START_DATE TO SUBJECT BODY COMMENT PRIORITY DUE_DATE NOTIFICATION RESPONSE The date the message is sent. including this response template with your reply. The subject line defined in the message. Required notification code used to identify the information in the notification. Copy and paste from 2 – 70 Oracle Workflow Guide . The user response section as defined by the Respond message attributes in the actual notification message definition.

if the notification is forwarded from another user. &RESPONSE ____________End of Response Template_____________ Notification Details: &BODY Due Date: &DUE_DATE The boilerplate text for a HTML–formatted message body is as follows: <HTML> <HEAD> <TITLE> Oracle Workflow Notification </TITLE> </HEAD> <BODY BGCOLOR=”#FFFFFF” > <P><B><FONT SIZE=+1>&COMMENT</FONT> </B> <P>&BODY <P><B>Please click on one of the following choices to automatically generate an E–mail response. See: To Create a Configuration File for the Notification Mailer: page 2 – 58. Note: To select the direct response method. Before sending the E–mail response to close this notification. date that a response is due. Insert your response value between the quotes following each response prompt. It also includes the following information about a message: message priority. ensure all response prompts include a desired response value within quotes. Setting Up Oracle Workflow 2 – 71 .this message if necessary to obtain an editable copy of the template. any comments from the forwarder. and any comments from the sender of the message or.</B> <P>&MAILTO </BODY> </HTML> Workflow Open Mail (Direct) Message If you select the direct response method. The notification template includes generic instructions on how to respond to a notification. set DIRECT_RESPONSE=Y in the configuration file for the Notification Mailer. the Notification system uses the Workflow Open Mail (Direct) message as a template for e–mail notifications that require a response.

The Workflow Open Mail (Direct) message has the following message attributes. The date by which a response is required. The values are drawn from the message definition associated with a notification activity. The user response section as defined by the Respond message attributes in the actual notification message definition. This message is used for notifications sent to performers with a notification preference of MAILHTML. The content of the HTML tag that a recipient would click on to respond to a notification. and is also attached to notifications sent to performers with a notification preference of MAILATTH. The text of the body defined in the message. The subject line defined in the message. The priority of the notification message. START_DATE TO SUBJECT BODY COMMENT PRIORITY DUE_DATE NOTIFICATION RESPONSE The date the message is sent.The response instructions in the plain text message body describe how to reply using the direct response method. regardless of which response method you select in the DIRECT_RESPONSE parameter. This message is used for notifications sent to performers with a notification preference of MAILTEXT or MAILATTH. The role the notification is sent to. This attribute is not currently used. the performer. The content of the HTML tag that a recipient would click on to access the Notification Details page to respond to a notification. Required notification code used to identify the information in the notification. Note: Responses that are generated automatically from an HTML–formatted notification or attachment always use a response template. Comments added by the sender or the forwarder. MAILTO CLICK_HERE_ RESPONSE 2 – 72 Oracle Workflow Guide . This attribute is used only for HTML e–mail notifications. specified in the notification activity. The response instructions in the HTML–formatted message body describe how to reply using the automatically generated response template.

reply to this message.</B> <P>&MAILTO </BODY> </HTML> Setting Up Oracle Workflow 2 – 73 . The boilerplate text for a plain text message body is as follows: Oracle Workflow Notification &COMMENT ____________________________________________________ Response Instructions for &NOTIFICATION To submit your response. Instructions below detail exactly what should be placed on each line of your reply. The first lines of your reply must be your responses to the notification questions.You can customize the boilerplate text that appears in the body of the Workflow Open Mail (Direct) message. Before sending the E–mail response to close this notification. ensure all response prompts include a desired response value within quotes. where attributes preceded by an ampersand (&) are token substituted with runtime values when the notification is sent. including this note with your reply. &RESPONSE ____________________________________________________ Notification Details: &BODY Due Date: &DUE_DATE The boilerplate text for a HTML–formatted message body is as follows: <HTML> <HEAD> <TITLE> Oracle Workflow Notification </TITLE> </HEAD> <BODY BGCOLOR=”#FFFFFF” > <P><B><FONT SIZE=+1>&COMMENT</FONT> </B> <P>&BODY <P><B>Please click on one of the following choices to automatically generate an E–mail response.

See: To Create a Configuration File for the Notification Mailer: page 2 – 58. you should select the Workflow Open Mail for Outlook Express message as a template for e–mail notifications that require a response.Workflow Open Mail for Outlook Express Message If you use an e–mail application such as Microsoft Outlook Express as your e–mail client. This message includes a link to the Notification Details web page to let users respond to the notification there. set HTML_MAIL_TEMPLATE=OPEN_MAIL_OUTLOOK in the configuration file for the Notification Mailer. Note: To select the Workflow Open Mail for Outlook Express message as the message template for users with a notification preference of MAILHTML or MAILATTH. . This template is provided to accommodate e–mail applications that cannot process the response links included in the Workflow Open Mail (Templated) and Workflow Open Mail (Direct) templates. for users with a notification preference of MAILHTML or MAILATTH.

Note: When users choose the ”Click here to respond” link. if you do not need to use the Workflow Open Mail for Outlook Express template. which uses the templated response method. it automatically attempts to establish a web session with the web server. 2 – 74 Oracle Workflow Guide . See: Reviewing Notifications via Electronic Mail: page 10 – 2. you should comment out the HTML_MAIL_TEMPLATE parameter to let the DIRECT_RESPONSE parameter take effect. all users with this notification preference will receive the plain text message body defined for the Workflow Open Mail for Outlook Express template. and is also attached to notifications sent to performers with a notification preference of MAILATTH. Users must be able to connect to the web server to use this link to respond to a notification. Consequently. The HTML–formatted message body includes a link called ”Click here to respond” which lets users access the notification in the Notification Details web page to respond to the notification. Attention: If you include the HTML_MAIL_TEMPLATE parameter in your configuration file. Instead. the Notification Mailer will ignore the DIRECT_RESPONSE parameter when sending messages to users with a notification preference of ’MAILATTH’. This message is used for notifications sent to performers with a notification preference of MAILHTML. The response instructions in the plain text message body describe how to reply manually using the templated response method. This message is used for notifications sent to performers with a notification preference of MAILATTH.

The content of the HTML tag that a recipient would click on to access the Notification Details page to respond to a notification. This attribute is not currently used. MAILTO CLICK_HERE_ RESPONSE You can customize the boilerplate text that appears in the body of the Workflow Open Mail for Outlook Express message.The Workflow Open Mail for Outlook Express message has the following message attributes. The boilerplate text for a plain text message body is as follows: Oracle Workflow Notification &COMMENT ____________Start of Response Template____________ Response Template for &NOTIFICATION To submit your response. The text of the body defined in the message. reply to this message including this response template in your reply. The content of the HTML tag that a recipient would click on to respond to a notification. The role the notification is sent to. Setting Up Oracle Workflow 2 – 75 . Required notification code used to identify the information in the notification. where attributes preceded by an ampersand (&) are token substituted with runtime values when the notification is sent. START_DATE TO SUBJECT BODY COMMENT PRIORITY DUE_DATE NOTIFICATION RESPONSE The date the message is sent. Insert your response value between the quotes following each response prompt. The user response section as defined by the Respond message attributes in the actual notification message definition. The values are drawn from the message definition associated with a notification activity. specified in the notification activity. The priority of the notification message. The date by which a response is required. The subject line defined in the message. the performer. This attribute is used only for HTML e–mail notifications. Comments added by the sender or the forwarder.

specified in the notification activity.&RESPONSE ____________End of Response Template_____________ Notification Details: &BODY Due Date: &DUE_DATE The boilerplate text for a HTML–formatted message body is as follows: <HTML> <HEAD> <TITLE> Oracle Workflow Notification </TITLE> </HEAD> <BODY BGCOLOR=”#FFFFFF” > <P><B><FONT SIZE=+1>&COMMENT</FONT> </B> <P>&BODY <P>&CLICK_HERE_RESPONSE </BODY> </HTML> Workflow Open FYI Mail Message The Notification system uses the Workflow Open FYI Mail message as a template for all e–mail notifications that do not require a response. The date by which a response is required. Comments added by the sender or the forwarder. The values are drawn from the message definition associated with a notification activity. The Workflow Open FYI Mail message has the following message attributes. The role the notification is sent to. the template also includes any comments from the sender or forwarder of the message. START_DATE TO SUBJECT BODY COMMENT PRIORITY DUE_DATE The date the message is sent. The template indicates that the notification is for your information (FYI) and does not require a response. In addition to the message. the performer. The subject line defined in the message. The priority of the notification message. The text of the body defined in the message. 2 – 76 Oracle Workflow Guide .

You can customize the text that appears in the body of the Workflow URL Attachment template. URLLIST The list of URLs to be included in the attachment. The boilerplate text for the plain text message body is as follows: Oracle Workflow Notification (FYI) &COMMENT ––––––––––––––––––––––––––––––––––––––––––– &BODY The boilerplate text for the HTML–formatted message body is as follows: <HTML><HEAD></HEAD> <BODY BGCOLOR=”#FFFFFF”><b>Oracle Workflow Notification (FYI)</b> <br>&COMMENT <hr> <P>&BODY </BODY> </HTML> Workflow URL Attachment Message The Notification system uses the Workflow URL Attachment message as a template to create the Notification References attachment for HTML–formatted notification messages that include URL attributes with Attach Content checked. where attributes preceded by an ampersand (&) are token substituted with runtime values when the notification is sent. The Workflow URL Attachment message has the following message attribute. The value is drawn from the message definition associated with a notification activity.NOTIFICATION Required notification code used to identify the information in the notification. The template includes a list with links to each URL. where an attribute preceded by an ampersand (&) is token substituted with a runtime value when the notification is sent. You can customize the text that appears in the body of the Workflow Open FYI Mail template. The boilerplate text for the HTML–formatted message body is as follows: <HTML> <HEAD> <TITLE> Oracle Workflow Notification References </TITLE> </HEAD> <BODY BGCOLOR=”#FFFFFF” > Setting Up Oracle Workflow 2 – 77 .

The subject line of the original message. The text of the original message. That notification is now 2 – 78 Oracle Workflow Guide . and no longer requires your response. It has the following message attributes. The date by which a response is required. the performer. with values that are drawn from the message definition associated with the canceled notification activity: START_DATE TO SUBJECT BODY COMMENT PRIORITY DUE_DATE NOTIFICATION The date the original message was sent. The boilerplate text for the plain text message body is as follows: You earlier received the notification shown below. The role the notification is sent to. Comments added by the sender or the forwarder. The priority of the notification message.<P><B><FONT SIZE=+1>Notification References</FONT> </B> <HR WIDTH=”100%”> <BR> &URLLIST <BR> <HR WIDTH=”100%”> <BR>&nbsp. You may simply delete it along with this message. That notification is now canceled. –––––––––––––––––––––––––––––––––––––––––––– &BODY The boilerplate text for the HTML–formatted message body is as follows: <html><Head></Head><body>You earlier received the notification shown below. specified in the notification activity. Required notification code used to identify the information in the notification. </BODY> </HTML> Workflow Canceled Mail Message The Workflow Canceled Mail message informs the recipient that a previously sent notification is canceled.

The message describes how to respond to the notification correctly. MAIL_ERROR_ MESSAGE MAIL_ERROR_ STACK CLICK_HERE_ RESPONSE The boilerplate text for the plain text message body is as follows: Setting Up Oracle Workflow 2 – 79 . An error stack of arguments that the mail program generates if an error occurs upon processing the response. Required notification code used to identify the information in the notification. An error message that the mail program generates if an error occurs upon processing the response. The text of the original message. The content of the HTML tag that a recipient would click on to access the Notification Details page to respond to a notification. specified by the notification activity. the performer. The date by which a response is required. The message attributes are as follows: START_DATE TO SUBJECT BODY COMMENT PRIORITY DUE_DATE NOTIFICATION RESPONSE The date the original message was sent. simply delete it along with this message. Comments added by the sender or the forwarder.canceled. The priority of the notification message. <hr> &BODY </body></html> You may Workflow Invalid Mail Message The Workflow Invalid Mail message gets sent to a user when a user responds incorrectly to a notification. This attribute is not currently used. You can provide this information to your support representative if the problem cannot be resolved with a corrected response. The user response section as defined by the Respond message attributes in the original message definition. and no longer requires your response. The subject line of the original message. The role the notification is sent to.

You should enter one line for each response required by the notification. &RESPONSE ––––––––––––––––––––––––––––––––––––––––––– Notification Details: &BODY Due Date: &DUE_DATE The boilerplate text for the HTML–formatted message body is as follows: <html><Head></Head><body>WARNING: Your previous response to this message was invalid (see error message below). any additional lines will be ignored. Please resubmit your response.Oracle Workflow Notification &COMMENT WARNING: Your previous response to this message was invalid (see error message below). Instructions below detail exactly what should be placed on each line of your reply. You must supply a value or a blank line for each question asked. You may leave a line blank to accept the default value for that specific response. including this original with your reply. reply to this message. This note contains a special ’NID’ string that is required to process the response. Error Message: &MAIL_ERROR_MESSAGE Error Stack: &MAIL_ERROR_STACK –––––––––––––––––––––––––––––––––––––––––––––––––– Response Instructions for &NOTIFICATION To submit your response. The first lines of your reply must be your responses to the notification questions. Please resubmit your response. <P>Error Message: &MAIL_ERROR_MESSAGE <BR>Error Stack: &MAIL_ERROR_STACK <HR><P><B><FONT SIZE=+1>&COMMENT</FONT> </B> <P>&BODY <P><B>Please click on one of the following choices to 2 – 80 Oracle Workflow Guide .

<hr> Setting Up Oracle Workflow 2 – 81 . and no longer requires your response. specified in the notification activity. You may simply delete it along with this message. ensure all response prompts include a desired response value within quotes. It has the following message attributes. and no longer requires your response.</B> <P>&MAILTO </BODY> </HTML> Workflow Closed Mail Message The Workflow Closed Mail message informs the recipient that a previously sent notification is now closed. Comments added by the sender or the forwarder. The text of the original message. Required notification code used to identify the information in the notification. You may simply delete it along with this message. The role the notification is sent to. Before sending the E–mail response to close this notification. –––––––––––––––––––––––––––––––––––––––––––– &BODY The boilerplate text for the HTML–formatted message body is as follows: <html><Head></Head><body>You earlier received the notification shown below. with values that are drawn from the message definition associated with the closed notification activity: START_DATE TO SUBJECT BODY COMMENT PRIORITY DUE_DATE NOTIFICATION The date the original message was sent. the performer. The subject line of the original message. That notification is now closed.automatically generate an E–mail response. The boilerplate text for the plain text message body is as follows: You earlier received the notification shown below. That notification is now closed. The date by which a response is required. The priority of the notification message.

the performer. The boilerplate text for the plain text message body is as follows: Summary of Notifications for ’&USER_NAME’ (Please use the Notifications web page to see details or respond.) –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– &SUMMARY The boilerplate text for the HTML–formatted message body is as follows: <HTML><HEAD></HEAD><BODY> <P><FONT size=+1>Summary of Notifications for ’&USER_NAME’</FONT> <BR><i>Please use the Notifications web page to see details or respond. with values that are drawn from the message definition associated with the open notification activity: SUMMARY USER_NAME SYSDATE Summary report. The Workflow Summary Mail message summarizes all currently open notifications for a given user/role. It has the following message attributes.&BODY </body></html> Workflow Summary Mail Message The Notification system uses the Workflow Summary Mail message as a template to send a summary of workflow notifications to users and roles that have their notification preference set to ’SUMMARY’ in the Oracle Workflow directory service.</i> <HR> &SUMMARY </BODY> </HTML> Workflow Warning Mail Message The Notification system uses the Workflow Warning Mail message as a template to send a message to a user if it receives unsolicited mail from 2 – 82 Oracle Workflow Guide . The user/role the notification summary is sent to. The current date.

The address of the user that sent the unsolicited mail. If you are responding to a notification. please do not send mail to this account. please do not send mail to this account. please use the response template that was included with your notification. please use the auto–generated reply created when responding to the original message. If you are not responding to a notification. The message you sent did not appear to be in response to a notification. Take care to include the ’NID’ line of the template in your reply. with values that are drawn from the unsolicited mail: UBODY USUBJECT UFROM The text of the unsolicited mail message body.that user. The boilerplate text for the plain text message body is as follows: Messages sent to this account are processed automatically by the Oracle Workflow Notification Mailer. The text of the unsolicited mail subject line.</b> <hr> <P>From: &UFROM <BR>Subject: &USUBJECT <P>&UBODY </body></html> Setting Up Oracle Workflow 2 – 83 . –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– From: &UFROM Subject: &USUBJECT &UBODY The boilerplate text for the HTML–formatted message body is as follows: <html><head></head><body> <b>Messages sent to this account are processed automatically by the Oracle Workflow Notification Mailer. It has the following message attributes. The message you sent did not appear to be in response to a notification. If you are responding to a notification. This contains the ’NID’ line which is necessary for identification. If you are not responding to a notification.

you can customize the company logo that appears on Oracle Workflow’s web pages. Move the file to the physical directory that your web server’s /OA_MEDIA/ virtual directory points to. Refer to your web server documentation for additional information. 1. the mapping of /OA_MEDIA/ is completed as part of the Oracle Applications installation and setup steps.gif if you are using Oracle Workflow embedded in Oracle Applications or WFLOGO. you must have Oracle HTTP Server installed. Context: You need to perform this step only once. Once your web server is installed and set up.1.Step 11 Customizing the Logo on Oracle Workflow’s Web Pages To use Oracle Workflow’s web pages and the Workflow Monitor at your site. Copy or rename your company logo file (in . Version 1. Use a web browser that supports JavaScript to connect to the Notification Web page or a web browser that supports Java Development Kit (JDK). Note: If you are using the standalone version of Oracle Workflow. " To Customize Oracle Workflow’s Web Pages You can customize the company logo that appears in the upper right corner of Oracle Workflow’s web pages.gif if you are using the standalone version of Oracle Workflow. 2 – 84 Oracle Workflow Guide .8 or higher and Abstract Windowing Toolkit (AWT) to connect to the Workflow Monitor. 2. Note: If you are using Oracle Workflow embedded in Oracle Applications.gif format) to FNDLOGOS. the mapping of /OA_MEDIA/ is completed after you install the Oracle Workflow server and you set up the Workflow Monitor.

so that the Workflow Monitor can access them: Note: If you are using Oracle Workflow embedded in Oracle Applications.Step 12 Adding Custom Icons to Oracle Workflow Oracle Workflow Builder looks for icons in the Icon subdirectory of the Oracle Workflow area on your PC.ico) to gif format (. Context: You need to perform this step only once. • Copy the .ico suffix. Note: If you are using the standalone version of Oracle Workflow. you must do the following: • Convert the custom icon files (. Setting Up Oracle Workflow 2 – 85 . If you want the custom icons that you include in your Oracle Workflow Builder process definition to appear in the Workflow Monitor when you view the process. The Icon subdirectory is defined in the registry of Oracle Workflow Builder. the mapping of /OA_MEDIA/ is completed after you install the Oracle Workflow server and you set up the Workflow Monitor. You can add any icon files to this area as long as they are Windows icon files with the . Workflow provides a variety of icons that you can use with your activities and processes.gif files to the physical directory that your web server’s /OA_MEDIA/ virtual directory points to. the mapping of /OA_MEDIA/ is completed as part of the Oracle Applications installation and setup steps.gif). The Oracle Workflow area is typically the Wf subdirectory within your ORACLE_HOME directory structure.

Starting the Java Function Activity Agent If you are using the standalone version of Oracle Workflow. installed. you must have Java Runtime Environment (JRE) Version 1. Note: The Java Runtime Environment is available for download from http://www.1. and which options you want to specify. To run the Java Function Activity Agent. See: Standard Activities: page 6 – 2. Context: You need to perform this step only once. You use different commands to start the agent depending on whether you are running it from a script or manually. See: Workflow Queue APIs: page 8 – 162. This functionality is currently only available for the standalone version of Oracle Workflow. 2 – 86 Oracle Workflow Guide . You can also start the agent manually.8.javasoft. You can also define your own external Java function activities. you must set up the Java Function Activity Agent.Step 13 Setting Up the Java Function Activity Agent To execute external Java function activities. You can also optionally specify the character set and the JDBC driver type that you want to use. See: Setting Up Background Engines: page 2 – 43. When you start the Java Function Activity Agent. The Java Function Activity Agent dequeues the messages related to external Java activities from the ’Outbound’ queue for external function processing. calls the appropriate Java functions. After a Java function completes. To Create a Function Activity: page 4 – 50. and places the results on the ’Inbound’ queue for external function processing. you must specify the database connection details. Some standard Workflow activities are external Java function activities and require the Java Function Activity Agent. Note: These ’Outbound’ and ’Inbound’ queues are separate from the queues used for the Business Event System. and Standard API for Java Procedures Called by Function Activities: page 7 – 8. or a higher 1.1. which platform you are running it on.x version. you can run scripts provided by Oracle Workflow to start the Java Function Activity agent. you must run a background engine to process the ’Inbound’ queue and complete the function activity.com.

You can use commands with different syntax to run the scripts.Starting the Java Function Activity Agent From a Script If you are using the standalone version of Oracle Workflow. the connect string should be the database name as specified in its TNSNAMES entry. however.csh script on UNIX. you can use the following command to run the wfjvlsnr. You can also use the following command to run the wfjvlsnr.csh Script on UNIX For example. if you want to use the default JDBC OCI8 driver: wfjvlsnr. • <connect_string>—The connect string for the database. If you do not specify a character set. you must edit the scripts to include the path to the JAR files containing your custom Java classes.csh ”<user_name> <password> <connect_string> [<JDBC_driver>]” [<character_set>] Replace the parameters in the command as follows: Setting Up Oracle Workflow 2 – 87 . if you want to specify the JDBC driver type to use: wfjvlsnr.csh script on UNIX. Running the wfjvlsnr. you can run scripts called wfjvlsnr. depending on your platform and the options you want to specify. <password>—The password for your Oracle Workflow database account. Since this command uses the default JDBC OCI8 driver. The custom class files should reside on the same platform where the Java Function Activity Agent is run.bat to start the Java Function Activity Agent on UNIX or on Windows NT. Oracle Workflow uses UTF8 by default. If you define your own external Java function activities. respectively.csh <user_name>/<password>@<connect_string> [<character_set>] Replace the parameters in the command as follows: • • <user_name>—The user name of your Oracle Workflow database account.csh or wfjvlsnr. These scripts are located on your server in the Oracle Workflow admin subdirectory. The Java Function Activity Agent does not need to reside on the same tier as the database. • <character_set>—The character set to use for the database session.

the connect string should be the database name as specified in its TNSNAMES entry. Oracle Workflow uses the JDBC OCI8 driver by default. port number. – For a JDBC OCI8 driver. Running the wfjvlsnr. • <connect_string>—The connect string for the database. <password>—The password for your Oracle Workflow database account. Note: The connection details. the connect string should include the host name. password. protocol. must be enclosed in double quotes to separate them from the character set parameter. the connect string should include an Oracle Net name–value pair with the host name.• • <user_name>—The user name of your Oracle Workflow database account. Oracle Workflow uses UTF8 by default.bat script. and JDBC driver type.bat <user_name>/<password>@<connect_string> [<character_set>] Replace the parameters in the command as follows: 2 – 88 Oracle Workflow Guide . and SID in the following format: (description=(address=(host=<host_name>)(protocol= <protocol>)(port=<port_number>))(connect_data=(sid= <database_SID>))) • <JDBC_driver>—The JDBC driver type you want to use to connect to the database. including the user name. • <character_set>—The character set to use for the database session.bat Script on Windows NT On Windows NT. port number. The format of the connect string depends on the JDBC driver type. you can use the following command to run the wfjvlsnr. For the first type. connect string. If you do not specify a character set. you can use two different types of connect string. The JDBC driver type can be either oci8 or thin. If you do not specify a character set. in the following format: <database_name> – For a JDBC THIN driver. if you want to use the default JDBC OCI8 driver: wfjvlsnr. and database system identifier (SID) in the following format: <host_name>:<port_number>:<database_SID> For the second type.

• <connect_string>—The connect string for the database. and SID in the following format: (description=(address=(host=<host_name>)(protocol= <protocol>)(port=<port_number>))(connect_data=(sid= <database_SID>))) Setting Up Oracle Workflow 2 – 89 . – For a JDBC OCI8 driver. • <connect_string>—The connect string for the database.bat ”<user_name> <password> <connect_string> [<JDBC_driver>]” [<character_set>] Replace the parameters in the command as follows: • • <user_name>—The user name of your Oracle Workflow database account. Since this command uses the default JDBC OCI8 driver. the connect string should be the database name as specified in its TNSNAMES entry. Oracle Workflow uses UTF8 by default. the connect string should include an Oracle Net name–value pair with the host name. • <character_set>—The character set to use for the database session. you can use two different types of connect string.• • <user_name>—The user name of your Oracle Workflow database account. If you do not specify a character set. The format of the connect string depends on the JDBC driver type. You can also use the following command to run the wfjvlsnr. <password>—The password for your Oracle Workflow database account. protocol. port number. the connect string should be the database name as specified in its TNSNAMES entry. if you want to specify the JDBC driver type to use: wfjvlsnr. port number. the connect string should include the host name. in the following format: <database_name> – For a JDBC THIN driver.bat script on Windows NT. For the first type. and database system identifier (SID) in the following format: <host_name>:<port_number>:<database_SID> For the second type. <password>—The password for your Oracle Workflow database account.

apps. this file is named share–<version>. • The Swing JAR file—Optional additional utilities. In the version of Oracle Workflow embedded in Oracle Applications. In the version of Oracle Workflow embedded in Oracle Applications. The JDBC driver type can be either oci8 or thin. • The Ewt JAR file—Utilities referenced by the Workflow Java APIs.jar. this file is named swingall–<version>.jar—The Java Function Activity Agent. the user name and password of your Oracle Workflow database account.jar. including the user name. such as ewt–3_3_18.wf. Oracle Workflow uses the JDBC OCI8 driver by default. In the standalone version of Oracle Workflow with Oracle9i. The CLASSPATH must point to the Java Runtime Environment.jar.• <JDBC_driver>—The JDBC driver type you want to use to connect to the database. connect string. Note: The connection details. • <character_set>—The character set to use for the database session. • The Share JAR file—Utilities referenced by the Workflow Java APIs. such as swingall–1_1_1. must be enclosed in double quotes to separate them from the character set parameter. this file is named fndbalishare. and the following Workflow JAR files: • wfjava. or whichever version is current. the Oracle JDBC implementation. If you do not specify a character set. In the standalone version of Oracle Workflow with Oracle9i. or whichever version is current. In the standalone version of Oracle Workflow with Oracle9i. this file is named ewt–<version>. run JRE against oracle. In the version of Oracle 2 – 90 Oracle Workflow Guide .jar. and the database connect string.jar. • wfapi. and JDBC driver type.WFFALsnr. or whichever version is current. Oracle Workflow uses UTF8 by default. password. If you do not specify a character set. the Oracle XML parser.jar.jar—Workflow Java APIs.jar. the directory containing the Workflow JAR files. such as share–1_1_9. Starting the Java Function Activity Agent Manually To start the Java Function Activity Agent manually.fnd.jar. this file is named fndewt. You can also optionally specify the character set and the JDBC driver type that you want to use. specifying your CLASSPATH.

If you do not specify a character set. Note: In the standalone version of Oracle Workflow with Oracle9i. Setting Up Oracle Workflow 2 – 91 . you can optionally use the –DCHARSET option to specify the character set that you want to use. <user_name>—The user name of your Oracle Workflow database account. Starting the Java Function Activity Agent on UNIX For example.WFFALsnr <user_name>/<password>@<connect_string> In this command. the Workflow JAR files are located in the <ORACLE_HOME>/jlib directory.apps.jar:$<Workflow_JAR_file_directory>/ wfapi. The custom class files should reside on the same platform where the Java Function Activity Agent is run.zip: $<Workflow_JAR_file_directory>/<Share_JAR_file>: $<Workflow_JAR_file_directory>/<Ewt_JAR_file>: $<Workflow_JAR_file_directory>/<Swing_JAR_file>:” [–DCHARSET=<character_set>] oracle. depending on your platform and the options you want to specify. Replace the parameters in the command as follows: • • <character_set>—The character set to use for the database session.Workflow embedded in Oracle Applications. this file is named fndswing.jar:$<Workflow_JAR_file_directory>: $<Workflow_JAR_file_directory>/wfjava. you can use the following command to start the Java Function Activity Agent on UNIX.jar:$<ORACLE_HOME>/jdbc/lib/classes111. you must also include the JAR files containing your custom Java classes in the CLASSPATH. In the version of Oracle Workflow embedded in Oracle Applications.jar:$<ORACLE_HOME>/wf/ xml/java/lib/xmlparserv2. If you define your own external Java function activities.fnd.jar. The Java Function Activity Agent does not need to reside on the same tier as the database. the Workflow JAR files are located in the <ORACLE_HOME>/wf/java/oracle/apps/fnd/wf/jar/ directory. You can use commands with different syntax to start the Java Function Activity Agent manually. however.wf. Oracle Workflow uses UTF8 by default. if you want to use the default JDBC OCI8 driver: jre –classpath ”$<JREPATH>/rt.

• <connect_string>—The connect string for the database.jar:$<ORACLE_HOME>/wf/ xml/java/lib/xmlparserv2.jar:$<ORACLE_HOME>/jdbc/lib/classes111. If you do not specify a character set. Oracle Workflow uses UTF8 by default. and database system 2 – 92 Oracle Workflow Guide . You can also use the following command to start the Java Function Activity Agent on UNIX. <user_name>—The user name of your Oracle Workflow database account.fnd. you can optionally use the –DCHARSET option to specify the character set that you want to use.• <password>—The password for your Oracle Workflow database account.WFFALsnr <user_name> <password> <connect_string> [<JDBC_driver>] In this command.wf. you can use two different types of connect string. <password>—The password for your Oracle Workflow database account. the connect string should be the database name as specified in its TNSNAMES entry. in the following format: <database_name> – For a JDBC THIN driver.jar:$<Workflow_JAR_file_directory>/ wfapi. The format of the connect string depends on the JDBC driver type. For the first type.apps. the connect string should be the database name as specified in its TNSNAMES entry. Replace the parameters in the command as follows: • • • <character_set>—The character set to use for the database session. the connect string should include the host name. – For a JDBC OCI8 driver. • <connect_string>—The connect string for the database. Since this command uses the default JDBC OCI8 driver.jar:$<Workflow_JAR_file_directory>: $<Workflow_JAR_file_directory>/wfjava. if you want to specify the JDBC driver type to use: jre –classpath ”$<JREPATH>/rt. port number.zip: $<Workflow_JAR_file_directory>/<Share_JAR_file>: $<Workflow_JAR_file_directory>/<Ewt_JAR_file>: $<Workflow_JAR_file_directory>/<Swing_JAR_file>:” [–DCHARSET=<character_set>] oracle.

the connect string should include an Oracle Net name–value pair with the host name. Oracle Workflow uses the JDBC OCI8 driver by default. Starting the Java Function Activity Agent on Windows NT On Windows NT.<JREPATH>\rt.<ORACLE_HOME>\jdbc\lib\classes111. If you do not specify a character set.” –nojit [–DCHARSET=<character_set>] oracle. port number.wf.zip.WFFALsnr <user_name>/<password>@<connect_string> In this command. protocol. <Workflow_JAR_file_directory>\wfjava.jar.identifier (SID) in the following format: <host_name>:<port_number>:<database_SID> For the second type. Since this command uses the default JDBC OCI8 driver.<ORACLE_HOME>\wf\ xml\java\lib\xmlparserv2. <password>—The password for your Oracle Workflow database account.<Workflow_JAR_file_directory>\ wfapi. The JDBC driver type can be either oci8 or thin. if you want to use the default JDBC OCI8 driver: jre –classpath ”. If you do not specify a character set. and SID in the following format: (description=(address=(host=<host_name>)(protocol= <protocol>)(port=<port_number>))(connect_data=(sid= <database_SID>))) • <JDBC_driver>—The JDBC driver type you want to use to connect to the database.jar. <Workflow_JAR_file_directory>\<Share_JAR_file>.jar. • <connect_string>—The connect string for the database. Replace the parameters in the command as follows: • • • <character_set>—The character set to use for the database session.fnd. you can optionally use the –DCHARSET option to specify the character set that you want to use. the connect Setting Up Oracle Workflow 2 – 93 . <user_name>—The user name of your Oracle Workflow database account.apps.jar. <Workflow_JAR_file_directory>\<Ewt_JAR_file>. <Workflow_JAR_file_directory>\<Swing_JAR_file>. Oracle Workflow uses UTF8 by default.<Workflow_JAR_file_directory>. you can use the following command to start the Java Function Activity Agent.

jar.jar. You can also use the following command to start the Java Function Activity Agent on Windows NT. in the following format: <database_name> – For a JDBC THIN driver.WFFALsnr <user_name> <password> <connect_string> [<JDBC_driver>] In this command. • <connect_string>—The connect string for the database. the connect string should include the host name. <user_name>—The user name of your Oracle Workflow database account. If you do not specify a character set. For the first type. and database system identifier (SID) in the following format: <host_name>:<port_number>:<database_SID> For the second type. <Workflow_JAR_file_directory>\<Ewt_JAR_file>. <Workflow_JAR_file_directory>\<Share_JAR_file>. The format of the connect string depends on the JDBC driver type.<ORACLE_HOME>\wf\ xml\java\lib\xmlparserv2. protocol.” –nojit [–DCHARSET=<character_set>] oracle. you can use two different types of connect string. the connect string should include an Oracle Net name–value pair with the host name.<JREPATH>\rt.fnd.zip. port number. Replace the parameters in the command as follows: • • • <character_set>—The character set to use for the database session.<ORACLE_HOME>\jdbc\lib\classes111. <Workflow_JAR_file_directory>\wfjava. the connect string should be the database name as specified in its TNSNAMES entry.jar. Oracle Workflow uses UTF8 by default.jar. <password>—The password for your Oracle Workflow database account.<Workflow_JAR_file_directory>.string should be the database name as specified in its TNSNAMES entry. if you want to specify the JDBC driver type to use: jre –classpath ”. – For a JDBC OCI8 driver. you can optionally use the –DCHARSET option to specify the character set that you want to use. <Workflow_JAR_file_directory>\<Swing_JAR_file>.wf.apps. 2 – 94 Oracle Workflow Guide .<Workflow_JAR_file_directory>\ wfapi.

Oracle Workflow uses the JDBC OCI8 driver by default. This script places a stop message on the ’Outbound’ queue. The JDBC driver type can be either oci8 or thin. the Java Function Activity Agent runs as a perpetual job. located in the admin/sql subdirectory on your Oracle Workflow server. Stopping the Java Function Activity Agent Normally. If you do not specify a character set. you can stop the agent by running a script called wfjvstop.sql script once for each Java Function Activity Agent.port number.sql: page 16 – 11. However. Setting Up Oracle Workflow 2 – 95 . See: wfjvstop. you must run the wfjvstop. Note: If you are running more than one Java Function Activity Agent simultaneously.sql. and SID in the following format: (description=(address=(host=<host_name>)(protocol= <protocol>)(port=<port_number>))(connect_data=(sid= <database_SID>))) • <JDBC_driver>—The JDBC driver type you want to use to connect to the database.

perform the following steps: 1.us. queue tables. See: Setting Up Queues: page 2 – 97 and Scheduling Listeners for Local Inbound Agents: page 13 – 56. create database links to those external systems. See: DBA Management Pack. Oracle DBA Studio allows workflow administrators to quickly and easily create and administer database links. you must create database links from your local system to the remote systems. set up your queues. or use Oracle DBA Studio in the Oracle Enterprise Manager to perform these steps.Step 14 Setting Up the Business Event System The Business Event System is an application service delivered with Oracle Workflow that uses Oracle Advanced Queuing (AQ) to communicate business events between systems. Creating Database Links To propagate event messages between systems. Oracle Enterprise Manager Administrator’s Guide. If you want to communicate business events between the local system and external systems. Context: You need to perform this step only once. and queue propagation without requiring knowledge of the SQL DDL commands. 2 – 96 Oracle Workflow Guide .com CONNECT TO wfuser IDENTIFIED BY welcome USING ’wf817’.oracle. 3. 2. You can use the following syntax to create a database link: CREATE DATABASE LINK <database link name> CONNECT TO <user> IDENTIFIED BY <password> USING ’<connect string>’. You should fully qualify the database link name with the domain name. You can either create database links and set up queues manually. Schedule a listener to monitor the standard WF_ERROR queue to enable error handling for the Business Event System. See: Overview of the Oracle Workflow Business Event System: page 8 – 235 and Managing Business Events: page 13 – 2. You need to perform this step only if you want to use event processing. To set up the Business Event System. For example: CREATE DATABASE LINK wf817. If you want to use custom queues for propagating events. queues.

the database link uses the username and password of the user who is connected to the database. Setting Up Oracle Workflow 2 – 97 . To verify the names of your database links. These queues all use the standard WF_EVENT_T structure as their payload type. and you want to use the same username and password to access both systems. use the following syntax: SELECT db_link FROM all_db_links You can also use the Check Setup web page to verify that your database links are set up.If you have multiple installations of Oracle Workflow on both the local database and the remote database. CREATE DATABASE LINK <database link name> CONNECT TO USING ’<connect string>’. four standard queues are created automatically for the four standard Workflow agents. Oracle SQL Reference Setting Up Queues The Business Event System uses Oracle Advanced Queuing (AQ) to communicate event messages between systems. specify the parameter PUBLIC. CREATE PUBLIC DATABASE LINK <database link name> CONNECT TO <user> IDENTIFIED BY <password> USING ’<connect string>’. See Also CREATE DATABASE LINK. In this case. The following table lists the standard queues. See: Checking the Business Event System Setup: page 13 – 53. When you install Oracle Workflow. you can omit the <user> IDENTIFIED BY <password> clause. You must associate a queue with each agent you define in the Event Manager. If you want to create a public database link available to all users. See: Standard Agents: page 13 – 25 and Event Message Structure: page 8 – 242.

You can change the retention time if necessary using the PL/SQL procedure DBMS_AQADM. 2 – 98 Oracle Workflow Guide . and start the queue. If you define a queue with a different payload type.Create_Queue_Table. you must create the queue table. respectively. • To create a queue table. multiple_consumers => TRUE compatible => ’8. See: Scheduling Listeners for Local Inbound Agents: page 13 – 56 and Scheduling Propagations for Local Outbound Agents: page 13 – 56. For queues that you want use the standard Workflow format. Use the following syntax: DBMS_AQADM.1’). These queues can use the standard queue handler provided with Oracle Workflow. schedule a listener for WF_IN and propagations for WF_OUT as well. you must create a queue handler to translate between the standard Workflow format and the format required by the queue. use the PL/SQL procedure DBMS_AQADM. However. You must not change any other part of the setup of these queues.Queue Table Queue Name Description WF_IN WF_OUT WF_DEFERRED WF_ERROR WF_IN WF_OUT WF_DEFERRED WF_ERROR Default inbound queue Default outbound queue Default queue for deferred subscription processing Default queue for error handling Table 2 – 2 (Page 1 of 1) The default retention time set for consumed messages on the standard Workflow queues is seven days. WF_EVENT_QH. You can also set up your own queues for event message propagation. To set up a queue. if you want to use WF_IN and WF_OUT for event message propagation. See: Standard APIs for a Queue Handler: page 7 – 23. create the queue. sort_list => ’PRIORITY. Also. specify the queue payload type as WF_EVENT_T. queue_payload_type => ’<queue payload type>’.Alter_Queue. you must schedule listeners for WF_DEFERRED and WF_ERROR to enable deferred subscription processing and error handling for the Business Event System.Create_Queue_Table ( queue_table => ’<queue table name>’.ENQ_TIME’.

Grant_Queue_Privilege. Note: If you want other database users to enqueue messages onto or dequeue messages from your queue.Start_Queue ( queue_name => ’<queue name>’). use the PL/SQL procedure DBMS_AQADM. You can use the Check Setup web page to verify that your queues are set up properly. See Also Administrative Interface. which allows you to select USER_DATA. as well as a sample script called wfevqued. Oracle Supplied PL/SQL Packages Reference Setting Up Oracle Workflow 2 – 99 . if you want to be able to select the event message payload from your Workflow queues. • To create a queue.1.Start_Queue. You may want to specify a tablespace if you expect a queue to be very large. queue_table => ’<queue table name>’). • To start a queue. you must grant those users the appropriate privileges using the PL/SQL procedure DBMS_AQADM. Oracle Workflow provides a sample script called wfevquec. These scripts are located on your server in the Oracle Workflow sql subdirectory for the standalone version of Oracle Workflow.1. See: Checking the Business Event System Setup: page 13 – 53. or in the sql subdirectory under $FND_TOP for the version of Oracle Workflow embedded in Oracle Applications.Create_Queue ( queue_name => ’<queue name>’. Use the following syntax: DBMS_AQADM. use the PL/SQL procedure DBMS_AQADM. Use the following syntax: DBMS_AQADM.7 or higher. Note: SQL*Plus version 8.You can also use the storage_clause parameter to specify the tablespace where you want to create the queue table.sql which you can modify to drop queues. You must have SQL*Plus version 8.sql which you can modify to set up your queues.6 does not allow you to select the USER_DATA column from queue tables.Create_Queue. Oracle Application Developer’s Guide – Advanced Queuing DBMS_AQADM.

This script is located in the wf/sql subdirectory in your Oracle Home. Run the script wfquhndos. See Also Standard APIs for a Queue Handler: page 7 – 23 Event Message Structure: page 8 – 242 Mapping Between WF_EVENT_T and OMBAQ_TEXT_MSG: page 8 – 257 2 – 100 Oracle Workflow Guide . and the structure required by OMB queues. Context: You need to perform this step only once.Step 15 Setting Up the WF_EVENT_OMB_QH Queue Handler You need to perform this step only if you are using the Business Event System with Oracle8i and you want to use Oracle Message Broker (OMB) to propagate event messages between systems. See: Agents: page 13 – 22.pls to create the PL/SQL body for the WF_EVENT_OMB_QH package. Use OMB to create the AQ queues that you want to use for event message propagation. For example. in place of Oracle Message Broker. you can assign this queue handler to Business Event System agents that use propagation protocols you have implemented through OMB. You should create at least one inbound and one outbound queue. After you set up WF_EVENT_OMB_QH.pls to create the PL/SQL spec for the WF_EVENT_OMB_QH package. 3. create queues called WF_OMB_IN and WF_OMB_OUT. This script is located in the wf/sql subdirectory in your Oracle Home. WF_EVENT_T. The queues should be single–consumer queues created in your Oracle Workflow schema. you can use the Messaging Gateway and Internet access features of Oracle Advanced Queuing to propagate event messages. Note: You do not need to perform this step if you are using Oracle9i. Run the script wfquhndob. The WF_EVENT_OMB_QH queue handler translates between the standard Workflow event message structure. 2. " To Set Up WF_EVENT_OMB_QH 1. OMBAQ_TEXT_MSG. In Oracle9i.

• Workflow object definitions protected against customization because they represent standards that may also be upgraded in the future by the provider. The development team at your organization’s headquarters may create a custom workflow process definition that references activities from the Standard item type. customization. a ’seed data provider’ is any organization that creates ’seed data’ for other organizations (’seed data consumers’) to use in defining and customizing a workflow process.Overview of Oracle Workflow Access Protection Access protection is a feature that prevents workflow seed data created by a ’seed data provider’ from being modified by a ’seed data consumer’. Access protection lets seed data providers protect certain data as ’read–only’. as seed data providers. This makes the headquarters team a consumer of the Standard item type seed data. The combination of protection. while preserving any customizations made to customizable seed data. may want to do the following: • Identify certain workflow objects in its custom workflow definition as corporate standards that the regional teams should adhere to and not modify. In Oracle Workflow. seed data refers to either of the following: • Workflow object definitions that can and should be customized to meet a certain consumer’s needs. Here. • Designate certain objects in its deployed process as customizable for the regional offices to alter to their offices’ needs. the Oracle Workflow development team is a provider of seed data called the Standard item type. Also during a seed data upgrade. The Standard item type contains standard activities that can be dropped into any custom workflow process. Oracle Workflow assigns a protection and customization level to every workflow object definition stored in the database and requires every user of Oracle Workflow to operate at a certain access level. The headquarters team. while allowing other data to be customized. For example. access protection lets the seed data provider overwrite any existing protected seed data with new versions of that seed data. The headquarters team can satisfy both requirement using the access protection feature in Oracle Workflow. and access levels make up the access protection feature and determines whether a user can Setting Up Oracle Workflow 2 – 101 . Now suppose the headquarters team wants to deploy the custom workflow definition that it created to teams at other regional offices.

modify a given workflow object. The level in all three cases, is a numeric value ranging from 0 to 1000 that indicates the relationship between different organizations as providers and consumers of seed data. The following range of levels are presumed by Oracle Workflow: 0–9 10–19 20–99 100–999 Oracle Workflow Oracle Application Object Library Oracle Applications development Customer organization. You can determine how you want this range to be interpreted. For example, 100 can represent headquarters, while 101 can represent a regional office, and so on. Public

1000 Access Level

Each user of Oracle Workflow operates the system at a certain access level according to the range of levels listed above. A ”user of Oracle Workflow” in this case, represents someone who is operating Oracle Workflow Builder, or the Workflow Definitions Loader program, which loads workflow process definitions from a file into a database. As a seed data provider, you should always operate Oracle Workflow Builder at the same consistent access level because the level you work at affects the protection level of the seed data you create. You can view your access level as follows: • In Oracle Workflow Builder, select About Workflow from the Help menu. • If you are going to run the Workflow Definitions Loader program to download workflow process definitions from the database to a file, check the value for the environment variable WF_ACCESS_LEVEL on your workflow server. See: Using the Workflow Definitions Loader: page 2 – 107. Note: The Workflow Definitions Loader program references the access level stored in the environment variable called WF_ACCESS_LEVEL, which you must define when you install Oracle Workflow on your server. If you do not define this environment variable, the Workflow Definitions Loader simply assumes a default access level of 100. Note: When you install the version of Oracle Workflow embedded in Oracle Applications, you need to define this

2 – 102

Oracle Workflow Guide

variable in an environment file. The default environment file is APPLSYS.env. If you do not define this environment variable, the Workflow Definitions Loader simply assumes a default access level of 100. Refer to your Oracle Applications installation manual for more information about environment files. Protection Level Whenever you create a workflow object in Oracle Workflow Builder, you have the option of protecting the object at a certain level. An object’s protection level controls whether other users can modify the object based on their access levels. To change the protection level of an object, display the Access tab of the object’s property page. The protection level that you set for an object is dependent on your current access level. You can control access to an object in one of four ways: • Allow access to everyone—By default, all users are allowed access to an object if both ”Preserve Customizations’ and ’Lock at this Access Level’ are unchecked in the Access tab, that is the protection level is equal to 1000. • Limit access to users with access levels equal to your own or higher—If you check ’Preserve Customizations’ in the Options region of the Access tab, you designate the object as being customizable by anyone with an access level equal to or higher than your current access level. You should only mark objects as customizable if you are sure that you will not be providing upgraded versions of this object in the future that would overwrite other user’s customizations to it. • Limit access to users with access levels equal to your own or lower—If you check ’Lock at this Access Level’, you protect the object and ensure that the object may only be modified by users with an access level equal to or lower than your current access level. Users operating at a higher access level will see a small lock on the workflow object’s icon, indicating that the object can be used but not modified. Protect any objects that you want to define as standard components that will not change unless you provide a global upgrade. For this reason, it is important that you always operate at the same consistent access level. • Limit access to users with access levels equal to your own—If you check both ’Lock at this Level’ and ’Preserve Customizations’ you ensure that the object cannot be modified

Setting Up Oracle Workflow

2 – 103

by anyone other than users operating at your current access level. The following table shows which access levels can access an object under different settings of the ’Preserve Customizations’ and ’Lock at this Access Level’ options.

Preserve Customizations Cleared Checked

Lock at this Access Level Cleared Cleared

Access Level applied to Object

Object may be updated by any access level. Object may only be updated by users with access levels equal to or higher than your current access level. Object may only be updated by users with access levels equal to or lower than your current access level. Object cannot be updated by any access level except for your current access level.

Cleared

Checked

Checked Table 2 – 3 (Page 1 of 1)

Checked

Attention: If you have installed the beta version of Microsoft’s Internet Explorer on your PC, which automatically installs an early version of a file called comctl32.dll, you may not see the lock icons appear on the locked objects in Oracle Workflow Builder. To correct this problem, install the production version of Microsoft’s Internet Explorer to replace comctl32.dll with the latest copy.

The protection and access levels in Oracle Workflow are present to remind you that certain workflow objects should not be modified or should only be modified by someone accessing the tool at an authorized access level. It is not intended as a means of securing or source controlling your workflow objects.

Attention: Most workflow objects provided by Oracle Workflow have a protection level of 0, which means the objects can only be modified by the Oracle Workflow team, operating at an access level of 0. If you attempt to alter your access level to 0 and modify the data anyway, your customizations will not be supported, especially if Oracle Workflow provides an upgrade to the seed data that may overwrite the modifications you make to the originally protected data.

2 – 104

Oracle Workflow Guide

Customization Level Every workflow object, in addition to having a protection level, also records a customization level equal to your access level when you modify the object and save it to a database or file. For example, if a workflow object is customizable (protection level is 1000), and you customize it at an access level of 100, you now mark the object as having a customization level of 100. The customization level indicates that the object can only be further modified by someone operating at an access level equal to or higher than the customization level. So in this example, you can only customize the object further if your access level is 100 or higher. If you are operating at an access level lower than an object’s customization level, you will see a small lock on that workflow object’s icon, indicating that the object can be used but not modified. This ensures that a customizable object that has been customized never gets overwritten during a seed data upgrade because the upgrade always occurs with the Workflow Definitions Loader operating at an access level below the customized object’s customization level.

Setting Up a Default Access Level
When you install Oracle Workflow Builder on a Microsoft Windows 95, Windows 98, Windows 2000, or Windows NT PC, Oracle Universal Installer assigns a default access level that is global to the PC and the operating system you are installing on. After installing Oracle Workflow Builder, you can have individual users on the PC change their access level to a new setting which overrides the default access level set for the PC. If a user does not define an access level, Oracle Workflow Builder assumes the value of the default access level for the PC. The access levels are stored in the Microsoft Windows registry. If you are deploying Oracle Workflow Builder and workflow seed data to users in other parts of your organization, and you wish to discourage those users from modifying the seed data that you provide, you can have them operate Oracle Workflow Builder at an access level that is higher than the data’s protection level. For example if you, as a seed data provider, are operating at an access level of 100 and the seed data you create is protected at a level of 100, then you should require the access level for your users or seed data consumers to be 101 or higher. You can set a user’s access level in Oracle Workflow Builder by having them choose About Oracle Workflow Builder... from the Help menu. In the About Oracle Workflow Builder window, change the Access Level

Setting Up Oracle Workflow

2 – 105

field to a number higher than your seed data protection level, then choose OK. You can also set the access level directly in the Microsoft Windows registry by using a registry editor such as regedit to edit the decimal value under HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\Workflow\Level. For the Workflow Definitions Loader program, you set the default access level that the program operates at for downloading process definitions to a file, by defining an environment variable called WF_ACCESS_LEVEL and setting its value using the appropriate operating system command. Caution: Although you can modify your access level, Oracle Workflow does not support any customizations to seed data originally protected at a level 99 or lower. We STRONGLY RECOMMEND that you not change your access level to an unauthorized level for modifying protected data.

2 – 106

Oracle Workflow Guide

Using the Workflow Definitions Loader
Rather than use the File Save or File Open menu options in Oracle Workflow Builder, you can also run a program called Workflow Definitions Loader to save or load process definitions from a database or flat file. When you upgrade your database, use the Workflow Definitions Loader to preserve and back up your process definitions to a flat file. When the database upgrade is complete, use the Loader program again to upload the definitions back into your database. You can also use the Loader program to upgrade your database with a newer version of a process definition or to transfer process definitions to other databases. When you upload or upgrade a process definition, the Workflow Definitions Loader automatically validates the process definition to ensure that it conforms to specific process design rules. It performs the same validation as the Oracle Workflow Builder Verify feature. See: To Validate a Process Definition: page 5 – 21.

Attention: When you upload or upgrade a workflow definition onto an existing definition in a database, it is possible that an object in the upload/upgrade definition has a Display Name that is already in use by a different object in the target database. If this occurs, the Workflow Definition Loader automatically resolves the display name conflict by adding a ’@’ character to the beginning of conflicting display names in the target database. The upload/upgrade definition is then applied as is and a warning message is generated. Note: You can use the Workflow Definitions Loader Release 2.6.1 to upload and download process definitions from all versions of the Oracle Workflow Server embedded in Oracle Applications Release 11i, as well as Release 2.6.1, base Release 2.6, and Release 2.5 of the standalone version of the Oracle Workflow Server. However, when you use the Workflow Definitions Loader to upload process definitions to an earlier Oracle Workflow Server version, those processes cannot include any new features introduced in later releases. For more details about which features you must not use with earlier versions, see: Using Oracle Workflow Builder with Different Server Versions: page 3 – 21.

Setting Up Oracle Workflow

2 – 107

"

To run the Workflow Definitions Loader for the standalone version of Oracle Workflow 1. The Workflow Definitions Loader program is located on your server in the bin subdirectory of the Oracle Home directory structure. Run the program from your operating system prompt as follows (replacing <username/password@database> with the username, password and Oracle Net connect string or alias to your database): • To apply a seed data upgrade to a database from an input file, type:
wfload <username/password@database> <input_file>

2.

By using the default upgrade behavior, the Workflow Definitions Loader assumes the access level of the file’s creator (seed data provider) and overwrites any objects protected at a level equal to or above the upgrade file’s access level. During an upgrade, the Loader program preserves any customizations made to customizable seed data in the database. <input_file> represents the name and full path of the upgrade file you are loading. • To upload process definitions from an input file to a database, type:
wfload –u <username/password@database> <input_file>

The upload mode is useful to someone who is developing a workflow process. It allows the developer to save definitions to the database without concern that accidental customizations to existing objects might prevent the upload of some process definition elements. The Workflow Definitions Loader uses the access level specified in the input file. <input_file> represents the name and full path of the input file you want to upload from. • To force an upload of the process definitions from an input file to a database regardless of an object’s protection level, type:
wfload –f <username/password@database> <input_file> <input_file> represents the name and full path of the input file you want to upload from. When using the force option, you should be certain that the process definition in the file is correct as it overwrites the entire process stored in the database. The force option is useful for fixing data integrity problems in a database with a known, reliable file backup. The force option is

2 – 108

Oracle Workflow Guide

also useful for loading .wft files from Oracle Workflow Release 1.0 or 1.0.1, which reflect an older data model. Note: When using the force option to load a .wft file from Oracle Workflow Release 1.0 or 1.0.1 into a database, you must also complete a manual step once the .wft file is loaded. You must associate the lookup types that you load with an item type. To do this, in the Navigator window of Oracle Workflow Builder, drag the lookup types from the independent Lookup Types branch to a Lookup Types branch associated with an item type. • To download the process definition of one or more item types from a database to an output file, type:
wfload [–d <date>] <username/password@database> <output_file> <item_type1> <item_type2> ...<item_typeN> <output_file> represents the name and full path of the output file you want to write to, and <item_typeN> represents the internal name of each item type you want to download. You can also replace <item_typeN> with ’*’ to represent all item types (make sure you enclose the asterisk in single quotes). If you specify the –d option with a date (omitting the square brackets), you can download the process definition that was effective at that date. The date must be supplied in the following format: YYYY/MM/DD HH24:MI:SS.

Your output file should have the extension .wft. When you download a process definition, the Loader program sets the output file’s access level to be the value stored in the WF_ACCESS_LEVEL environment variable.
"

To run the Workflow Definitions Loader for the version of Oracle Workflow embedded in Oracle Applications 1. Navigate to the Submit Requests form in Oracle Applications to submit the Workflow Definitions Loader concurrent program. When you install and set up Oracle Applications and Oracle Workflow, your system administrator needs to add this concurrent program to a request security group for the responsibility that you want to run this program from. See: Overview of Concurrent Programs and Requests, Oracle Applications System Administrator’s Guide. Submit the Workflow Definitions Loader concurrent program as a request. See: Submitting a Request, Oracle Applications User’s Guide.

2.

Setting Up Oracle Workflow

2 – 109

3.

In the Parameters window, enter values for the following parameters: Specify ”Download” to download a process definition from the database to a flat file. Specify ”Upgrade” to apply a seed data upgrade to a database from an input file. The Workflow Definitions Loader assumes the access level of the file’s creator (seed data provider) and overwrites any objects protected at a level equal to or above the upgrade file’s access level. The Loader program preserves any customizations made to customizable seed data in the database. Specify ”Upload” to load a process definition from a flat file into the database. The upload mode is useful to someone who is developing a workflow process. It allows the developer to save definitions to the database without concern that accidental customizations to existing objects might prevent the upload of some process definition elements. The Workflow Definitions Loader uses the access level defined by the input file to upload the process definitions from the file and therefore will overwrite objects in the database that are protected at a level equal to or higher than that file’s access level. Specify ”Force” to force an upload of the process definitions from an input file to a database regardless of an object’s protection level You should be certain that the process definition in the file is correct as it overwrites the entire process stored in the database. The Force mode is useful for fixing data integrity problems in a database with a known, reliable file backup.

Mode

File

Specify the full path and name of the file that you want to download a process definition to, or upgrade or upload a process definition from. If you set Mode to ”Download”, use the List button to choose the item type for the process definition you want to download.

Item Type

Note: When you submit the Workflow Definitions Loader from the Submit Requests form to download process definitions to a file, you can only specify to download one item

2 – 110

Oracle Workflow Guide

type at a time. If you wish to download multiple or all item types simultaneously, you should submit the Workflow Definitions Loader concurrent program from the command line. See Step 6 below for details. 4. 5. 6. Choose OK to close the Parameters window. When you finish modifying the print and run options for this request, choose Submit to submit the request. Rather than use the Submit Requests form, you can also run the Workflow Definitions Loader concurrent program from the command line by entering the following commands: To upgrade— To upload— To force— WFLOAD apps/pwd 0 Y UPGRADE file.wft WFLOAD apps/pwd 0 Y UPLOAD file.wft WFLOAD apps/pwd 0 Y FORCE file.wft

To download— WFLOAD apps/pwd 0 Y DOWNLOAD file.wft ITEMTYPE1 [ITEMTYPE2 ...ITEMTYPEN] Replace apps/pwd with username and password to the APPS schema, replace file.wft with the file specification of a workflow process definition file, and replace ITEMTYPE1, ITEMTYPE2, ... ITEMTYPEN with the one or more item type(s) you want to download. You can also download all item types simultaneously by replacing ITEMTYPE1 with ’*’ (make sure you enclose the asterisk in single quotes). A file specification is specified as:
@<application_short_name>:[<dir>/.../]file.ext

or
<native path>

Setting Up Oracle Workflow

2 – 111

Using the Workflow XML Loader
The Workflow XML Loader lets you upload and download XML definitions for Business Event System objects between a database and a flat file. When you download Business Event System object definitions from a database, Oracle Workflow saves the definitions as an XML file. When you upload object definitions to a database, Oracle Workflow loads the definitions from the source XML file into the Business Event System tables in the database, creating new definitions or updating existing definitions as necessary. The XML definitions for Business Event System objects are structured according to the following document type definitions (DTDs): • Events—WF_EVENTS DTD: page 8 – 302 • Event group members—WF_EVENT_GROUPS DTD: page 8 – 305 • Systems—WF_SYSTEMS DTD: page 8 – 308 • Agents—WF_AGENTS DTD: page 8 – 311 • Event subscriptions—WF_EVENT_SUBSCRIPTIONS DTD: page 8 – 314 You can download Business Event System object definitions in either normal download mode or exact download mode. • Normal download mode lets you save a generic copy of object definitions from one system that you can use to create similar definitions in other systems. In this mode, the Workflow XML Loader replaces certain system–specific data within the object definitions with tokens. Choose normal download mode, for example, when you want to save Business Event System object definitions from a development system as seed data that can be uploaded to a production system. • Exact download mode lets you save object definitions exactly as they are specified in the database. In this mode, the Workflow XML Loader does not convert any data to tokens; instead, all values, including system–specific values, are copied to the XML file. Choose exact download mode, for example, when you want to save Business Event System object definitions from one production system so that you can replicate them to another production system that communicates with the first. In normal download mode, the Workflow XML Loader uses the following tokens to replace system–specific data within Business Event System object definitions. The tokens are prefixed by #.

2 – 112

Oracle Workflow Guide

• #NEW—Replaces the global unique identifier for an agent within an agent definition, or for an event subscription within a subscription definition. • #LOCAL—Replaces the global unique identifier for the local system wherever it appears within an agent or subscription definition. • #OWNER—Replaces the name of the schema that owns a queue when the schema appears as part of the queue name and agent address within an agent definition. • #SID—Replaces the database system identifier (SID) when it appears as part of the agent address within an agent definition. • #WF_IN—Replaces the global unique identifier for the WF_IN agent on the local system when it appears as the Source Agent, Out Agent, or To Agent within an event subscription definition. • #WF_OUT—Replaces the global unique identifier for the WF_OUT agent on the local system when it appears as the Source Agent, Out Agent, or To Agent within an event subscription definition. • #WF_ERROR—Replaces the global unique identifier for the WF_ERROR agent on the local system when it appears as the Source Agent, Out Agent, or To Agent within an event subscription definition. By converting these system–specific values to tokens, the loader produces template definitions that you can use to create similar objects in other systems. When you upload object definitions that contain tokens to a database, Oracle Workflow replaces the tokens with the appropriate values for that system.

See Also
Managing Business Events: page 13 – 2
"

To Download Business Event System XML Definitions from a Database To download Business Event System object definitions from a database to a flat XML file, you can either run the Workflow XML Loader manually, or, if you are using the standalone version of Oracle Workflow, you can use a script to run the loader.

Setting Up Oracle Workflow

2 – 113

To run the Workflow XML Loader manually, run JRE against oracle.apps.fnd.wf.WFXLoad. You must specify your CLASSPATH pointing to the Java Runtime Environment, the directory containing the Workflow JAR files, the Oracle JDBC implementation, and the following Workflow JAR files: • wfjava.jar—Workflow Java utilities • wfapi.jar—Workflow Java APIs Note: If you are using the standalone version of Oracle Workflow with Oracle9i, the Workflow JAR files are located in the <ORACLE_HOME>/jlib directory. If you are using the version of Oracle Workflow embedded in Oracle Applications, the Workflow JAR files are located in the
<ORACLE_HOME>/wf/java/oracle/apps/fnd/wf/jar/

directory. For example, on UNIX, use the following command to run the Workflow XML Loader:
jre –classpath ”$<JREPATH>/rt.jar:$<Workflow_JAR_file_directory>: $<Workflow_JAR_file_directory>/wfjava.jar: $<Workflow_JAR_file_directory>/wfapi.jar: $<ORACLE_HOME>/jdbc/lib/classes111.zip:” oracle.apps.fnd.wf.WFXLoad –d[e] <user> <password> <connect_string> <protocol> <lang> <output_file> <object> <key>

On Windows NT, use the following command:
jre –classpath ”;<JREPATH>\rt.jar;<Workflow_JAR_file_directory>; <Workflow_JAR_file_directory>\wfjava.jar; <Workflow_JAR_file_directory>\wfapi.jar; <ORACLE_HOME>\jdbc\lib\classes111.zip;” oracle.apps.fnd.wf.WFXLoad –d[e] <user> <password> <connect_string> <protocol> <lang> <output_file> <object> <key>

If you are using the standalone version of Oracle Workflow, you can use sample scripts called wfxload for UNIX or wfxload.bat for Windows NT to run the Workflow XML Loader. These scripts are located on your server in the Oracle Workflow admin subdirectory. For example, on UNIX, use the following command:
wfxload –d[e] <user> <password> <connect_string> <protocol> <lang> <output_file> <object> <key>

2 – 114

Oracle Workflow Guide

On Windows NT, use the following command:
wfxload.bat –d[e] <user> <password> <connect_string> <protocol> <lang> <output_file> <object> <key>

When running the Workflow XML Loader, use either the –d option or the –de option to specify the download mode that you want. • –d —Normal download mode. The loader converts system–specific data within the object definitions to tokens prefixed with #, where appropriate. • –de —Exact download mode. The loader copies the object definitions exactly and does not convert any data to tokens. Additionally, replace the variables in the download command with your parameters as follows: • •
<user>—The

user name of your database account. password for your database account.

<password>—The

• <connect_string>—The connect string for the database. The format of the connect string depends on the JDBC driver type. – For a JDBC OCI8 driver, the connect string should be the database name as specified in its TNSNAMES entry, in the following format:
<database_name>

– For a JDBC THIN driver, you can use two different types of connect string. For the first type, the connect string should include the host name, port number, and database system identifier (SID) in the following format:
<host_name>:<port_number>:<database_SID>

For the second type, the connect string should include an Oracle Net name–value pair with the host name, protocol, port number, and SID in the following format:
(description=(address=(host=<host_name>)(protocol= <protocol>)(port=<port_number>))(connect_data=(sid= <database_SID>)))

• <protocol>—The JDBC driver type you want to use to connect to the database. The JDBC driver type can be either oci8 or thin. • <lang>—The abbreviation for the language of the XML file. This parameter is case insensitive. Use the standard language abbreviations for the Oracle database server, such as US for American or JA for Japanese. For a list of the standard language

Setting Up Oracle Workflow

2 – 115

abbreviations, see: Locale Data, Oracle National Language Support Guide. • <output_file>—The name and full path of the output file to which you want to save the definitions. • <object>—The type of object definitions you want to download. – EVENT—Event, event group member, and event subscription definitions – SYSTEMS—System definitions – AGENTS—Agent definitions – ALL—All Business Event System object definitions, including events, event group members, systems, agents, and event subscriptions Note: The Workflow XML Loader only downloads system, agent, and event subscription definitions that belong to the local system. • <key>—An optional key to restrict the definitions that are downloaded. If you specify a key, the loader retrieves definitions only for those objects whose internal names include that key. The key value is case sensitive and cannot contain any spaces. To retrieve all object definitions of the specified type, you can omit this parameter. Note: If you specify ALL for the object type, the Workflow XML Loader ignores the key and downloads all Business Event System object definitions from the system.

Attention: To use the Workflow XML Loader in download mode, you must have a version 8.1.7 or higher database. The download utility is not supported for earlier versions of Oracle8i. To replicate Business Event System objects from one system to another for earlier database versions, you should follow the steps to synchronize systems using predefined subscriptions provided with the Business Event System. See: Synchronizing Systems: page 13 – 70. You can, however, use the Workflow XML Loader in upload mode with versions of Oracle8i earlier than 8.1.7.

"

To Upload Business Event System XML Definitions to a Database To upload Business Event System object definitions from an XML file to a database, you can either run the Workflow XML Loader manually, or,

2 – 116

Oracle Workflow Guide

if you are using the standalone version of Oracle Workflow, you can use a script to run the loader. To run the Workflow XML Loader manually, run JRE against oracle.apps.fnd.wf.WFXLoad. You must specify your CLASSPATH pointing to the Java Runtime Environment, the directory containing the Workflow JAR files, the Oracle JDBC implementation, and the following Workflow JAR files: • wfjava.jar—Workflow Java utilities • wfapi.jar—Workflow Java APIs Note: If you are using the standalone version of Oracle Workflow with Oracle9i, the Workflow JAR files are located in the <ORACLE_HOME>/jlib directory. If you are using the version of Oracle Workflow embedded in Oracle Applications, the Workflow JAR files are located in the
<ORACLE_HOME>/wf/java/oracle/apps/fnd/wf/jar/

directory. For example, on UNIX, use the following command to run the Workflow XML Loader:
jre –classpath ”$<JREPATH>/rt.jar:$<Workflow_JAR_file_directory>: $<Workflow_JAR_file_directory>/wfjava.jar: $<Workflow_JAR_file_directory>/wfapi.jar: $<ORACLE_HOME>/jdbc/lib/classes111.zip:” oracle.apps.fnd.wf.WFXLoad –u <user> <password> <connect_string> <protocol> <lang> <source_file>

On Windows NT, use the following command:
jre –classpath ”;<JREPATH>\rt.jar;<Workflow_JAR_file_directory>; <Workflow_JAR_file_directory>\wfjava.jar; <Workflow_JAR_file_directory>\wfapi.jar; <ORACLE_HOME>\jdbc\lib\classes111.zip;” oracle.apps.fnd.wf.WFXLoad –u <user> <password> <connect_string> <protocol> <lang> <source_file>

If you are using the standalone version of Oracle Workflow, you can use sample scripts called wfxload for UNIX or wfxload.bat for Windows NT to run the Workflow XML Loader. These scripts are located on your server in the Oracle Workflow admin subdirectory. For example, on UNIX, use the following command:
wfxload –u <user> <password> <connect_string> <protocol> <lang> <source_file>

Setting Up Oracle Workflow

2 – 117

On Windows NT, use the following command:
wfxload.bat –u <user> <password> <connect_string> <protocol> <lang> <source_file>

When running the Workflow XML Loader, use the –u option to specify that you want to run the loader in upload mode. Additionally, replace the variables with your parameters as follows: • •
<user>—The

user name of your database account. password for your database account.

<password>—The

• <connect_string>—The connect string for the database. The format of the connect string depends on the JDBC driver type. – For a JDBC OCI8 driver, the connect string should be the database name as specified in its TNSNAMES entry, in the following format:
<database_name>

– For a JDBC THIN driver, the connect string should include the host name, port number, and database system identifier (SID) in the following format:
<host_name>:<port_number>:<database_SID>

• <protocol>—The JDBC driver type you want to use to connect to the database. The JDBC driver type can be either oci8 or thin. • <lang>—The abbreviation for the language of the XML file. This parameter is case insensitive. Use the standard language abbreviations for the Oracle database server, such as US for American or JA for Japanese. For a list of the standard language abbreviations, see: Locale Data, Oracle National Language Support Guide. • <source_file>—The name and full path of the source file from which you want to upload definitions.

2 – 118

Oracle Workflow Guide

CHAPTER 3 Defining a Workflow Process his chapter tells you how to use Oracle Workflow Builder to define a workflow process definition. T Defining a Workflow Process 3–1 .

you will not be able to access the menu from your keyboard using the Alt key. viewing.Overview of Oracle Workflow Builder Oracle Workflow Builder is a graphical tool for creating. You then assemble the activities in a process window to create a process diagram. It contains a Navigator window that you use to define the activities and components of your business process. which can be opened and edited in a text editor so that the process definition can be spoken by a screen reader for greater user accessibility. See: Creating Process Definitions in Oracle Workflow Builder: page 3 – 7. Note: If you maximize the Navigator window or any process window in Oracle Workflow Builder. 3–2 Oracle Workflow Guide . Note: A workflow process definition can also be stored as a flat file. and modifying workflow process definitions.

A notification activity sends a message to a user or role. An event activity represents a business event that the process receives. • Functions—lists the function activities associated with the current item type. See: Messages: page 4 – 23. then an item type attribute can be the requisition amount or the requisition ID. • Notifications—lists the notification activities associated with the current item type. Defining a Workflow Process 3–3 . See: Item Type Attributes: page 4 – 2. See: Activities: page 4 – 42. or process as its possible result type.The Navigator Tree Structure The Navigator window displays a navigator tree hierarchy for each data store that you open or load into Oracle Workflow Builder. • Lookup Types—lists the lookup types associated with the current item type. For example. or by a notification. A function activity represents a PL/SQL stored procedure that the Workflow Engine executes automatically. raises. See: Activities: page 4 – 42. A lookup type is a list of values that can be referenced by a message. • Messages—lists the messages that a notification activity associated with the current item type can send to a user or role. • Events—lists the event activities associated with the current item type. The message may prompt for a response or may simply provide information. See: Process Window: page 5 – 2 and Activities: page 4 – 42. • Processes—lists the process activities or workflow process definitions for the current item type. A message can have message attributes associated with it. The following six tertiary branches appear beneath each item type branch: • Attributes—lists the attributes for the current item type. if an item type is a purchase order requisition. See: Activities: page 4 – 42. A function activity can also have activity attributes associated with it. or sends. function. Within each data store there is at least one item type heading (secondary branch) that represents the grouping of a particular set of processes and its component objects. A data store (primary branch) is a database connection or flat file that holds your workflow process definition. See: Lookup Types: page 4 – 19. Item type attributes describe features of an item type. A lookup type has one or more values called lookup codes associated with it.

Sub–branches appear indented below the branches from which they are expanded. See: Navigator Toolbar: page A – 7. where you can expand branches that begin with a plus sign (+) to further sub–branches until you find your component of interest. You can use either your mouse or the arrow keys on your keyboard to expand or collapse the navigator tree. 3–4 Oracle Workflow Guide . Branches that are expanded are preceded by a minus sign (–). The Navigator window also contains a toolbar that you can use to perform actions within the Navigator window. You can expand no further when a branch displays neither a plus nor minus sign. When you double–click on Hidden Item Types. Viewing the Navigator Tree The navigator tree is organized much like the hierarchy of a file system. If the data store is a database connection and the database contains other item types that you have not loaded into Oracle Workflow Builder. The Directory Service branch lists all the directory service roles that you load from your Oracle Workflow database. a branch called Hidden Item Types appears.Note: Each data store also contains a Directory Service branch. you get a Show Item Types window that lets you load other item types into Oracle Workflow Builder. See: Roles: page 5 – 24.

Defining a Workflow Process 3–5 .

Choose Find. Specify to search for this text in the object’s Display Name or Internal Name. 3–6 Oracle Workflow Guide . Enter the text to search for in the Search Text field. You can choose Find Again from the Edit menu to repeat the search using the search criteria previously defined in the Search window. The search is case insensitive and looks for the text pattern that you specify in the field that you specify.. 5. from the Edit menu to display a Search window that lets you specify search criteria to find an object in the navigator tree. Specify the object type to restrict this search to or check All Objects to search for the text within the property pages of all objects. 4." To Find an Object in the Navigator Tree 1. 3. Choose Search. 6.. 2.

only one version of the activity is ”in effect”. It then creates an outline process diagram from which you can flesh out with more activities. It also updates the version number whenever you make changes to an existing activity. See: To Create a Process Definition from Top–Down: page 3 – 10. It saves the new version of the activity to the database without overwriting older versions of the activity. you can use either the top–down or bottom–up approach to complete the design. Once the Quick Start Wizard sets up the template.Creating Process Definitions in Oracle Workflow Builder Before using Oracle Workflow Builder. • Bottom–Up Design—If you prefer to take a more programmatic approach to your design. Versioning and Dates of Effectivity Oracle Workflow Builder assigns a version number to each new activity that you create. See: Sample Workflow Processes: page 15 – 2. then go back later to create the supporting objects for each activity. Oracle Workflow uses the version of the activity that was in effect when the process was initiated. you can first sketching out the process diagram with activities. what results dictate the different branches of the process. Oracle Workflow provides several demonstration workflow examples. See: To Create a Process Definition From Bottom–Up: page 3 – 8. If a process is running. There are several ways you can go about creating a workflow process definition: • Top–Down Design—If you prefer to approach your design from a high level. Quick Start Wizard The Quick Start Wizard helps you build a process definition from scratch using a process definition template. Note that a Defining a Workflow Process 3–7 . It does not switch versions of the activity mid–way through the process. the order of the activities. The Quick Start Wizard creates a new item type for your process. who needs to be informed and what they need to know. you should plan what your process needs to accomplish. determine what activities need to occur. prompting you for the minimum required information. you can first define each of the supporting objects of your process before attempting to create a higher level process diagram. See: To Use the Quick Start Wizard: page 3 – 18. In particular. activities also have dates of effectivity so that at any point in time. In Oracle Workflow.

you can choose OK or Cancel to return to the notification activity property page. If the modification affects existing processes. Oracle Workflow Builder also supports the concept of saving and loading process definitions according to an effective date. Some of the information you provide can be selected from a list of values. When you are done with the source property page(s) and choose OK or Cancel. To start Oracle Workflow Builder. you can choose the adjacent Edit button to display and edit the source property page(s) of the value. When you select a value from a poplist. their latest definition always apply. an Edit button appears to the right of that poplist. so a process definition always remains constant until the process instance completes. item type attributes. you can load a definition into Oracle Workflow Builder that was effective at an earlier point in time. For example. messages and lookup types. See Also Modifying Objects in Oracle Workflow Builder: page 4 – 69 Using the Edit Button in a Property Page To create an object in Oracle Workflow Builder. For these objects. you can then choose the adjacent Edit button to display the property page for that lookup type. you enter information in the object’s property page. such as item types. The Result Type poplist field lets you select the value <None> or some predefined lookup type.process itself is an activity. you should create a new object rather than edit the existing object. you return to the original property page you were working on. double–click on the Oracle Workflow Builder icon located in the Application Development folder within the Oracle – <SID NAME> program group. For example. If a poplist field yields values that are themselves defined from some other property pages in Oracle Workflow Builder. you must specify a Result Type for the activity. You can also save a definition to the database to be effective at some future time. If you are 3–8 Oracle Workflow Guide . " To Create a Process Definition From Bottom Up 1. Note that Oracle Workflow Builder does not maintain version information for objects that are considered constant. When you finish viewing or editing the property page for that lookup type. so you should always consider whether a change to any of these objects is backwards compatible. if you create a notification activity. If you select a lookup type.

0 or higher. or message attributes. Defining a Workflow Process 3–9 . After defining a lookup type and an activity. You can incorporate message attributes of type ’Send’ into a message that are token substituted at runtime to provide dynamic content. Once the Quick Start Wizard creates your new item type and new process activity. The item type classifies the work item to be managed by the process. 6. 2. You can also define message attributes of type ’Respond’ to prompt the notification recipient for a response. If you wish to create a notification activity for your process.using Windows 95 or NT 4. Lookup types can also be referenced by item type attributes. 5. you should first create the message that you want the notification activity to send. you can drag the lookup onto an activity in the navigator tree to assign that lookup as the activity’s result type. See: To Define a Message Attribute: page 4 – 34. Before defining an activity. You can drag a new message onto a notification activity in the navigator tree to assign the message to that activity. Create new lookup types. messages. You can define item type attributes to fully describe your item type and have the activities in your process refer to these attributes for information. 3. you can use the Quick Start Wizard to first create the framework for your new process definition. 4. activity attributes. See: To Create Lookup Types: page 4 – 20. you can also select the Oracle Workflow Builder icon from the appropriate program folder of the Start menu. Create new messages. Create a new item type. See: To Create a Message: page 4 – 29. A Result Type is a list of possible results that an activity can have upon completion. Choose New from the File menu to create a workspace for your new process definition. you can skip to step 4 below to begin defining the supporting objects for the new item type and process activity. See: To Create an Item Type: page 4 – 7. you should define the lookup type that represents your activity’s Result Type. See: To Use the Quick Start Wizard: page 3 – 18. Suggestion: Alternatively. You can also create message attributes for the message. See: To Define an Item Type or Activity Attribute: page 4 – 8.

The process diagram establishes the relationship of all the activities in your process. You need to define at least one process activity that represents your high level process diagram. If you are using Windows 95 or NT 4. In a database accessible by your Oracle Workflow server. You can drag activities from the navigator tree into the Process window. function activity. Use the Quick Start Wizard to create the framework for your new process definition. Create a new process activity. Specify the requested information for the new item type and new process activity. You may also use predefined standard activities associated with the Standard item type. or event activity. See: To Use the Quick Start Wizard: page 3 – 18. To start Oracle Workflow Builder. notification activity. create the PL/SQL stored procedures called by your PL/SQL function activities. See: To Save Your Work: page 3 – 15.7. Display the Process window for your process activity to diagram the activities and transitions that define your workflow process. Diagram the process. You can do this through SQL*PLUS or the Oracle Procedure Builder. 3 – 10 Oracle Workflow Guide . you can also select the Oracle Workflow Builder icon from the appropriate program folder of the Start menu. See: Activities: page 4 – 42 and Standard Activities: 6 – 2. Save your work by choosing Save or Save As from the File menu.0 or higher. double–click on the Oracle Workflow Builder icon located in the Application Development folder within the Oracle – <SID NAME> program group. 2. See Also To Modify a Process Definition: page 3 – 11 Deleting Objects in Oracle Workflow Builder: page 4 – 68 Modifying Objects in Oracle Workflow Builder: page 4 – 69 Item Type Definition Web Page: page 3 – 24 " To Create a Process Definition from Top Down 1. See: Diagramming a Process: page 5 – 5. See: Workflow APIs: page 8 – 3 and Standard API for PL/SQL Procedures Called by Function Activities: page 7 – 3. 8. 10. 9.

5. The Workflow Error window is non–modal. You can also save your work as is. 4. You may also use predefined standard activities associated with the Standard item type. Use the Copy button to copy the information to the clipboard if you want to paste it into another document for later reference. that shows a Start and an End activity node. Model your process by drawing transitions between your activities. and fix the problems later. See: Standard Activities: 6 – 2. Save your work by choosing Save or Save As from the File menu. Create your process diagram by defining new activity nodes to place between the Start and End nodes.3. so you can keep it up on your screen while you go back to your process to correct the problems that are identified. Attention: When you save your work. A Process window appears. See: To Define Nodes in a Process: page 5 – 8. . See: To Save Your Work: page 3 – 15. Oracle Workflow automatically validates the process definition for any invalid or missing information and displays what it finds in a Workflow Error verification window. If you save your work without correcting the problems. See: Diagramming a Process: page 5 – 5. the Workflow Error window will appear when you open this process definition later.

Defining a Workflow Process 3 – 11 . To start Oracle Workflow Builder. double–click on the Oracle Workflow Builder icon located in the Application Development folder within the Oracle – <SID NAME> program group. If you are using Windows 95 or NT 4.0 or higher. you can also select the Oracle Workflow Builder icon from the appropriate program folder of the Start menu. Choose Open from the File menu to open a connection to the database or file that contains the process definition you want to 2. See Also To Modify a Process Definition: page 3 – 11 Deleting Objects in Oracle Workflow Builder: page 4 – 68 Modifying Objects in Oracle Workflow Builder: page 4 – 69 Item Type Definition Web Page: page 3 – 24 " To Modify a Process Definition 1.

See Also Deleting Objects in Oracle Workflow Builder: page 4 – 68 Modifying Objects in Oracle Workflow Builder: page 4 – 69 Item Type Definition Web Page: page 3 – 24 Opening and Saving Item Types All processes are associated with an item type. functions and processes associated with that item type. 6. See: To Save Your Work: page 3 – 15. See: Diagramming a Process: page 5 – 5. item type attribute. 5. Select and expand the existing item type associated with the process definition you want to modify. 4. An item type can include one or more processes. Opening an item type automatically retrieves all the attributes. You can also load an item type into Oracle Workflow Builder from a database or flat file. notifications. . lookups. Save your work by choosing Save or Save As from the File menu. or Activities: page 4 – 42. You can save an item type to a database or to a flat file. To Create a Message: page 4 – 29. See: To Access Process Definitions in an Existing Data Store: page 3 – 13. 3. messages. See: To Create an Item Type: page 4 – 7. or activity attribute. message. To Create Lookup Types: page 4 – 20. To Define an Item Type or Activity Attribute: page 4 – 8. you actually save everything in the current data store to the file.modify. When you save your work to a flat file. message attribute. you actually save everything in the current data store that has been modified. process activity. To Define a Message Attribute: page 4 – 34. function activity. You can also modify the process diagram by displaying the Process window for your process activity. When you save your work to a database. You can modify an item type. lookup. notification activity.

3 – 12 Oracle Workflow Guide Attention: Always save a copy of your workflow process definition as a flat file and check that file into a source control system to maintain a working version of your process definition. Avoid using the process definition stored in your .

Note: To connect from Oracle Workflow Builder to a database. Defining a Workflow Process 3 – 13 . you can also select the Oracle Workflow Builder icon from the appropriate program folder from the Start menu. double–click on the Oracle Workflow Builder icon located in the Application Development folder within the Oracle – <SID NAME> program group.database as your source controlled version. To open a File: Provide the complete file path and choose OK. 2. If you are using Windows 95 or NT 4.. To start Oracle Workflow Builder. as others with access to the database can update the definition.0 or higher. from the File menu. 3. Select database or file to connect to the source containing the item type to which your process definition is associated. select Open. or use Browse to locate and open the file (extension .wft).. " To Access Process Definitions in an Existing Data Store 1. In Oracle Workflow Builder. the language of your Oracle Workflow Builder installation must match one of the available languages of the Oracle Workflow Server installation in the database.

The format that you should use to specify the date and time depends on the date and time preferences defined in the Regional Settings of your Windows Control Panel. use the APPS schema to connect to the database.Note: You can also drag and drop a . Note: When you use Browse to find and open a file. To open a Database connection: Enter the username and password for the database.wft file from the Microsoft Windows 95/98/2000/NT 4. Note: If you are using the version of Oracle Workflow embedded in Oracle Applications. 4. Enter the name of the database alias or connect string and choose OK. If you wish to retrieve a process definition that was effective at a particular point in time. 3 – 14 Oracle Workflow Guide . the current directory that you open the file from becomes the new default directory from which you open files in the future. 5. This default directory persists until you use Browse again to locate another file. you can specify a date and time in the Effective field and have Oracle Workflow Builder retrieve that data from the database.0 Explorer or Microsoft Windows NT File Manager into the navigator tree to open that file in Oracle Workflow Builder.

When you use the Save command. choose Save from the File menu to preserve your changes and make them effective immediately. If multiple item types exist in the data store. and choose << to move it into the Visible list. When you finish working. Note: You can copy item types from one store to another in any order even if the item types reference each other. See Also To Start Oracle Workflow Builder from the MS–DOS Prompt: page 3 – 17 " To Save Your Work 1. . you save all modified objects in the currently selected data store (even those that are hidden) back to that data store. 7. However. Pay attention to these errors as they may indicate that you need to also copy other item types into the new store to resolve the foreign key references.6. Choose Save from the File menu to save your work and make the changes immediately effective. the Show Item Types window appears. Select from the Hidden list. the item type(s) you want to view. you may get validation errors due to foreign key references. and copy the specific item types you want to save into the new store and save the new store. you can double–click on the Hidden Item Types branch in the navigator tree to display the Show Item Types window and select the item types you want to show. Choose OK to load these item types into the navigator tree. If at any time you want to view and modify item types that are hidden in the current data store. You can also choose Show/Hide Item Types from the File menu to display the Show Item Types window. 8. If you want to save only specific item types. See: To Save Your Work: page 3 – 15. The final process definition in the new store will be valid as long as all referenced item types are copied to the new destination store. then you must create a new data store.

If you check this check box. there is a check box called ”Allow modifications of customized objects”. Attention: Oracle Workflow Builder can save your work to the database using one of two modes. overwriting any protected objects Defining a Workflow Process 3 – 15 . In the ”About Oracle Workflow Builder” dialog box from the Help menu. Oracle Workflow Builder saves your edits in ’upload’ mode.

Oracle Workflow Builder runs in ’upgrade’ mode and will only save edits to protected objects that you have access to change and will not overwrite objects that have been previously customized.that you have access to modify. Note: If you save your work to a database with a future effective date. as well as any previously customized objects. and the date when you want your process definition to take effect in the database. continue to modify your process and later choose Save 3 – 16 Oracle Workflow Guide . then choose Save As. from the File menu. 2.. Use the Save As window to specify the file or database you want to save your process definition to. As the default. or if you want to save it to a database with an effective date other than the current system date. the check box is unchecked. These two modes match the upgrade and upload behavior of the Workflow Definitions Loader program. and then in the same Oracle Workflow Builder session. If you want to save your work to a different data store (database or flat file).. See: To Set the Access Level for an Object: page 4 – 18 and Using the Workflow Definitions Loader: page 2 – 107. See: Version/Effective Date: page 8 – 11. You can leave the Effective field blank to save and make the changes effective immediately. If you uncheck this check box.

You can either correct the information before saving your work. 3. the Workflow Error window will reappear when you reopen your process definition. Choose Close Store from the File menu to close your connection to the current database or file data store. . you automatically save the process definition to the same database using the previously specified effective date. 5. Oracle Workflow automatically validates the process definition for any invalid or missing information and displays what it finds in a Workflow Error verification window. or go ahead and save your work as is. Note that when you save your work. 4. and fix the problems later. Use the Copy button to copy the information from the Workflow Error window to the clipboard for later reference. Choose Exit from the File menu to exit Oracle Workflow Builder.from the File menu. Attention: The Close Store and Exit options from the File menu are enabled only when the Navigator window is the current window. If you save your work without correcting the problems.

wft) from the Windows Explorer to automatically open that file and start Oracle Workflow Builder. type the following command at the MS–DOS prompt.wft> represents the full path and name of the data file: wfbldr <filename. In an MS–DOS prompt window.0 or higher. To start Oracle Workflow Builder with a specific database connection. " To Start Oracle Workflow Builder from the MS–DOS Prompt: Rather than starting Oracle Workflow Builder by double–clicking on its Windows icon.wft> 2. type the following command to start Oracle Workflow Builder with a specific workflow data file. 1. where <username/password@connect> represents the database account information to connect to: wfbldr –c <username/password@connect> Note: If you run Oracle Workflow Builder in Microsoft Windows 95 or Windows NT 4. where <filename. you can also double–click on a workflow data file (. Defining a Workflow Process 3 – 17 . you can also type in a command at the MS–DOS prompt and specify the file or database to connect to.

wft –E wfdemo 4. use the APPS schema to connect to the database. It first loads a file called wftemplate. you can take the bottom–up or top–down approach to complete your workflow process definition. 3 – 18 Oracle Workflow Guide . where <item_type> represents the internal name of the item type you want to open: –E <item_type> For example: wfbldr wfdemo. 3. To start Oracle Workflow Builder and open a specified item type in a data store. " To Use the Quick Start Wizard 1. Once you initiate the Quick Start Wizard. Select Quick Start Wizard from the File menu. append the following to the appropriate command shown in Step 1 or 2.Note: If you are using the version of Oracle Workflow embedded in Oracle Applications. append the following to the appropriate command shown in Step 1 or 2.wft that is an outline of all the mandatory objects you need to build a workflow process and then displays a Process window for you to diagram your process. To start Oracle Workflow Builder and open a specified process diagram in a data store. where <item_type:process> represents the internal names of the item type and process you want to open: –E <item_type:process> For example: wfbldr wfdemo.wft –E WFDEMO:NOTIFYAPPROVER See Also Using the Workflow Definitions Loader: page 2 – 107 Creating a Shortcut to a Workflow Process: page 5 – 22 Quick Start Wizard Overview The Quick Start Wizard lets you begin designing a workflow process immediately.

All Oracle Workflow APIs. SQL scripts. .2. The Workflow Quick Start Wizard window prompts you for the following mandatory information: • New Item Type – Internal Name—Specify an all uppercase internal name with a maximum of eight characters. and PL/SQL procedures refer to the internal name when identifying an item type.

– Display Name—Enter a translatable Display Name for the item type.sql: page 16 – 8. Attention: To update the internal name of an item type once it is defined. – Days—If Persistence Type is Temporary. you must use a special SQL script called wfchitt. See: Wfchitt. Caution: Do not include colons ”:” or leading/trailing spaces in your internal name. specify the number of days from the time an item type instance completes Defining a Workflow Process 3 – 19 .sql. – Persistence Type—Specify Temporary or Permanent persistence for the status audit trail of the item type.

• New Process – Internal Name—Specify an all uppercase internal name. See: Persistence Type: page 4 – 4. .before its status audit trail can be purged.

you must use a special SQL script called wfchact. • Opens the Process window for the new process activity you defined.sql. The Process window displays a Start and an End activity. The Quick Start Wizard does the following: • Creates a new data store called ”Untitled–n” in the Navigator window. • Loads the Standard item type into the new data store so that you can include standard activities in the process you create. You can now customize your process definition in one of two ways: • Take a bottom–up design approach by first creating activities and all their supporting objects before trying to draw a workflow diagram. • Uses the information you entered in the Workflow Quick Start Wizard window to create a new item type and process activity in the data store. • Take a top–down design approach by creating activities that contain minimum information so you can draw the workflow diagram first. The Display Name also appears in the title bar of your Process window. See: To Create a Process Definition from Top–Down: page 3 – 10. 4. – Display Name—Enter a translatable Display Name for the process activity. Caution: Do not include colons ”:” or leading/trailing spaces in your internal name. 3 – 20 Oracle Workflow Guide . See: Wfchact. 3.sql: page 16 – 7. You can go back later to fill in the details of each activity and its supporting objects. Attention: To update the internal name of an activity once it is defined. See: To Create a Process Definition From Bottom–Up: page 3 – 8.

6 features.5 installed. The Oracle Workflow Builder can upload and download these process definitions to a database with Oracle Workflow Server Release 2. base Release 2.6 installed.6.6. The Oracle Workflow Builder can upload and download these process definitions to a database with Oracle Workflow Server Release 2.2 is compatible with all versions of the Oracle Workflow Server embedded in Oracle Applications Release 11i. • You can create.5 of the standalone version of the Oracle Workflow Server.1. such as Business Event System components and external Java function activities.5 features.6.6. and Release 2. as well as with Release 2. and modify workflow process definitions that include new features introduced in Release 2.2.6. if you do not want to take advantage of the Release 2.Using Oracle Workflow Builder with Different Server Versions The Oracle Workflow Builder Release 2. Release 2. view. and modify workflow processes that include only Release 2. you can create. . • Alternatively. view.

2.1. You can save these process definitions to the database and open process definitions from the database to view or modify them.6. it is only certified with the Oracle Workflow Server Release 2. Defining a Workflow Process 3 – 21 .6.6 embedded in Oracle Applications.6.2 client component that is compatible with earlier versions of the Oracle Workflow Server.2 Oracle Workflow Builder with a Release 2.6.1 Standalone Server If you are using the Oracle Workflow Builder with Oracle Workflow Server Release 2.5 Oracle Workflow Builder or with the base Release 2.6.2 or Release 2.2 is not compatible with any earlier versions of the server.6 Oracle Workflow Builder and save these process definitions to a database with Oracle Workflow Server Release 2.2 or Release 2.6. The Oracle Workflow Mailer Release 2.6 embedded in Oracle Applications. or with the standalone version of the Oracle Workflow Server Release 2.2 or Release 2.6 Embedded Server or a Release 2. you can use all currently available features in your workflow processes. or with standalone Oracle Workflow Server Release 2. Attention: The Oracle Workflow Builder is the only Release 2. You can also open existing process definitions that were created with the Release 2.6.6. Using the Release 2.6.1.6.

The process definition now includes the base Release 2. 5.6 embedded in Oracle Applications. and save the definitions to a database with base standalone Oracle Workflow Server Release 2.2 contains some later Release 2.6 components. perform the following steps: 1. If you want to save a new process definition to a database with base standalone Oracle Workflow Server Release 2.6. Continue defining your workflow process using only base Release 2. Force save the process definition to the database with base standalone Oracle Workflow Server Release 2.6. Force delete the Standard item type from your data store. 2. you can include most of the currently available features in your workflow processes.6 components.2 Oracle Workflow Builder with a Release 2.6. Create a new workflow process definition.6. 4. However. Reopen the process definition from the database.Using the Release 2. However. because this feature was added in the version of Release 2. and do not select the Event Parameter property in any of the following standard Workflow activities: • Get Event Property • Set Event Property • Compare Event Property You can open existing process definitions that were created with the base Release 2. you must not use the Event Parameter lookup code which is now available in the Event Property lookup type.6 Oracle Workflow Builder. 3. You can also create new workflow processes using only base Release 2.6 components.6 Standalone Server If you are using the Oracle Workflow Builder with the base standalone version of Oracle Workflow Server Release 2. Do not use the Event Parameter lookup code in any custom activities.6.6 version of the Standard item type. 3 – 22 Oracle Workflow Guide . the version of the Standard item type used by the Oracle Workflow Builder Release 2.6.6 components. view or modify these process definitions using only the base Release 2.

Reopen the process definition from the database. you must include only Release 2. Create your workflow process definition. 2.5 Oracle Workflow Builder.5.Using the Release 2. view or modify these process definitions using only Release 2. You can also create new workflow processes using only Release 2.5 version of the Standard item type. and save the definitions to a database with Oracle Workflow Server Release 2.5. You must not use any of the following new features introduced in Release 2. Force delete the Standard item type from your data store. perform the following steps: 1.5 features in your workflow processes. Defining a Workflow Process 3 – 23 .5.5 components.6 components. However. The process definition now includes the Release 2. 3.6. the version of the Standard item type used by the Oracle Workflow Builder Release 2. Force save the process definition to the database with Oracle Workflow Server Release 2.2 contains some Release 2.2 Oracle Workflow Builder with a Release 2.5. 4.6: • Event activities • Item attributes of type Event • External Java function activities You can open existing process definitions that were created with the Release 2.6. If you want to save a new process definition to a database with Oracle Workflow Server Release 2.5 Standalone or Embedded Server If you are using the Oracle Workflow Builder with either the standalone or the embedded version of Oracle Workflow Server Release 2.5 components.

messages.find_item_type Replace <webagent> with the base URL of the web agent configured for Oracle Workflow in your Web server. The right frame displays the details of the object you select in the navigator tree. You can also select either frame at any time and use your web browser to print all the information in that frame. notifications. so that you can review the contents easily and effectively. functions. modeled like the Oracle Workflow Builder. The left frame lists all the objects in your item type definition in an expandable navigator tree. The Item Type Definition page then appears. . Enter the following URL in your web browser: <webagent>/wf_item_definition. events. " To Query an Item Type 1. See: Setting Global User Preferences: page 2 – 14. and lookup types that are associated with a given item type.Item Type Definition Web Page The Web–based Item Type Definition page provides you with distributed access to workflow definitions stored in your Oracle Workflow database. To display an item type definition. The information is displayed in two frames. allowing you to present or do a design review of your workflow process. The page provides a detailed view of the attributes. you use the Find Item Type web page to first query for an item type. You can query for an item type based on an effective date and time. processes.

Note: You can also access the Find Item Type web page from the Oracle Workflow home page. so if you have not yet logged on as valid user in the current web session. you will be prompted to do so before the page appears. Attention: This URL accesses a secured page. 3 – 24 Oracle Workflow Guide . See: Accessing the Oracle Workflow Home Page: page 9 – 2.

3. See: Setting User Preferences: page 9 – 6. Specify the effective date and time of the item type definition you want to display using the format specified in the Date Format field of your User Preferences web page. Defining a Workflow Process 3 – 25 . 4.2. Use the Item Type poplist field to select an item type. Choose Find to display the item type in the Item Type Definition web page.

The frame on the left lists the components of an item type definition in hierarchical format similar to the navigator tree in Oracle Workflow Builder. 3 – 26 Oracle Workflow Guide . The frame on the right lists the details of each component. Click on any component link in the left hand frame to display the details of that component in the right hand frame. 2." To Review an Item Type Definition 1. The Item Type Definition web page displays two frames.

T Defining Workflow Process Components 4–1 .CHAPTER 4 Defining Workflow Process Components his chapter tells you how to use Oracle Workflow Builder to define the components necessary to compose a workflow process diagram.

such as a function activity or a message. See: To Create an Item Type: page 4 – 7. Item Type Attributes An item type attribute is a property associated with a given item type. You can define and maintain as many item type attributes as necessary for an item type. You must associate any component that you create for a process.” An activity in our example Requisition Approval process requires the value of this item type attribute to determine if a selected approver has the authority to approve a requisition of that amount. Often it makes sense to define an item type so that it describes the item being managed by your workflow process. or any information that 4–2 Oracle Workflow Guide . the ”Workflow Demonstration” item type has an item type attribute called ”Requisition Amount. You should define as an item type attribute. For example. you need to define all or some of the following types of components to make up the process: • Item Types • Lookup Types • Messages • Activities • Attributes • Roles Item Types An item type is a classification of the components that make up a workflow process. An item type attribute often provides information about an item that is necessary for the workflow process to complete. purchase order requisition can be an item type while a purchase order requisition identified by a particular ID number is an item of that item type. with a particular item type. any information that will be required by an activity in your process. It acts as a global variable that can be referenced or updated by any activity within a process. For example.Workflow Process Components Depending on the workflow process you wish to create. Applications as well as function activities can reference and set item type attributes using the Oracle Workflow Engine APIs.

• Document—The attribute value is an attached document. If you include a form–type attribute in a notification message as a message attribute. The user can complete an activity or see additional information related to the activity by accessing that URL. This attribute type is not relevant for the standalone version of Oracle Workflow. Oracle Applications Developer’s Guide. when viewed from the Notification Details web page or as an HTML–formatted e–mail. • Form—The attribute value is an Oracle Applications internal form function name and its optional form function parameters. as shown below. the notification. • URL—The attribute value is a Universal Resource Locator (URL) to a network location. You can specify the following types of documents in the default value field: Defining Workflow Process Components 4–3 . See: To Define a Message Attribute: page 4 – 34. • Lookup—The attribute value is one of the lookup code values in a specified lookup type.will need to be sent in a notification message. The type determines what values are acceptable and how the attribute is used. • Text—The attribute value is a string of text. If you reference a URL attribute in a notification message as a message attribute. See: Overview of Menus and Function Security. when viewed from the Notification Details web page. • Date—The attribute value is a date with the optional format mask you specify. displays an anchor to the URL specified by the URL attribute. displays an attached form icon that lets users drill down to the referenced form. the notification. • Number—The attribute value is a number with the optional format mask you specify. See Also Item Attributes: page C – 3 Attribute Types There are ten attribute types.

See: To Define a Document Attribute: page 4 – 14. The status audit trail for each instance of a Temporary item type is maintained for at least ’n’ days of persistence after its completion date. generated from a PL/SQL procedure. See: Roles: page 5 – 24. • Event—The attribute value is a Business Event System event message in the standard WF_EVENT_T structure. the runtime status information is maintained indefinitely until you specifically purge the information by calling the procedure WF_PURGE. you can access the event data within that event message by creating an item attribute of type URL and setting the value of the URL attribute to reference the event data. If you set Persistence to Permanent. you must also specify the number of days of persistence (’n’). If you set an item type’s Persistence to Temporary. If a message attribute of type role is included in a notification message.TotalPerm( ). the role display name is a hypertext link to the e–mail address for that role. • Role—The attribute value is the internal name of a role. you must initially load roles from the database. generated from a PL/SQL procedure. – PL/SQL CLOB document—a document representing data from the database as a character large object (CLOB). The persistence type controls how long a status audit trail is maintained for each instance of the item type. To set a default value for the attribute. Persistence Type When you define an item type. After the ’n’ days of persistence. the attribute automatically resolves to the role’s display name. Also when you view the notification from a web browser. See: SetItemAttribute: page 8 – 48.– PL/SQL document—a document representing data from the database as a character string. Note: If you store an event message in an item attribute of type event. See: WF_PURGE: page 8 – 111. you can then use any of the WF_PURGE APIs to purge the item type’s runtime status information. See: Event Message Structure: page 8 – 242. eliminating the need for you to maintain separate attributes for the role’s internal and display names. you must also specify its persistence type. 4–4 Oracle Workflow Guide . • Attribute—The attribute value is the internal name of another existing item type attribute that you want to maintain references to in a process.

define a PL/SQL function that determines which process activity to run in a particular situation. You can purge this information by changing the item type’s Persistence to Temporary and running any of the WF_PURGE APIs. Since no runtime status information is maintained. In ’TEST_CTX’ mode. See: Purge Obsolete Workflow Runtime Data: page 8 – 119. Then change the item type’s Persistence back to Synchronous. This is particularly important in the Oracle Applications scenario when you view a notification from the Notification Details web page and attempt to launch another form that is associated with the notification. See: Synchronous. Forced synchronous processes complete in a single SQL session from start to finish and never insert into or update any database tables.If you set an item type’s Persistence to Synchronous. you do not normally need to perform any purging for a process with the Synchronous persistence type. Your selector function would determine which process would be appropriate in any given situation. Oracle Workflow does maintain runtime status information for that process instance. Item Type Selector Function If your item type has or will have more than one runnable process activity associated with it. Asynchronous. and Forced Synchronous Processes: page 8 – 14. if you run the process with a unique item key in asynchronous mode for testing or debugging purposes. the selector/callback function can perform whatever logic necessary to determine whether it Defining Workflow Process Components 4–5 . The executable name for this concurrent program is ”Oracle Workflow Purge Obsolete Data” and its short name is FNDWFPR. you may also use the Purge Obsolete Workflow Runtime Data concurrent program to purge obsolete item type runtime status information. However. The process that Oracle Workflow executes may vary depending on how and where the requisition originates. you may have two different requisition approval process activities associated with the same item type. WF_PURGE: page 8 – 111. You can also extend the Selector function to be a general callback function so that item type context information can be reset as needed if the SQL session is interrupted during the execution of a process. Note: If you are using the version of Oracle Workflow embedded in Oracle Applications. Oracle Workflow expects instances of that item type to be run as forced synchronous processes with an item key of #SYNCH. Oracle Workflow calls the selector/callback function for your item type in ’TEST_CTX’ mode to test the Oracle Applications context before turning the form launch over to the Oracle Application Object Library function security system. and Purging for Performance: page C – 8. For example.

See: Standard APIs for ”PL/SQL” and ”PL/SQL CLOB” Documents: page 7 – 17. See: Attribute Types: page 4 – 3. With the explosion of digital media and the worldwide web. electronic documents of a wide variety of formats. are forcing organizations to address the management of these documents. The PL/SQL procedure must follow an Oracle Workflow standard interface. the item or message attribute’s value would be the name of the PL/SQL package and procedure used to generate the document.is appropriate to launch the form. To Define an Item Type or Activity Attribute: page 4 – 8 and To Define a Message Attribute: page 4 – 34. 4–6 Oracle Workflow Guide . The document generated by the PL/SQL procedure is simply displayed within the text of a notification. which we call PL/SQL or PL/SQL CLOB documents. You attach a document to a workflow process by referencing the document in a predefined item attribute or message attribute of type Document. For PL/SQL documents and PL/SQL CLOB documents. you can attach documents generated by a PL/SQL procedure. See: Standard API for an Item Type Selector or Callback Function: page 7 – 13. In a workflow process. The value of information in these documents can be maintained only if the documents can be managed and shared. including non–printed media. External Document Integration Documents have an enormous impact in the operations of an organization.

you must use a special SQL script called wfchitt. All Oracle Workflow APIs. 2. Caution: Do not include colons ”:” or leading/trailing spaces in your internal name. If you do not already have a data store open. Do not use this script to rename item types that are involved in running instances of processes. An Item Type property page appears. You should only use this script to correct errors in an item type’s internal name during design time. SQL scripts. See: Wfchitt.sql. and PL/SQL procedures refer to the internal name when identifying an item type. . which is a maximum of eight characters long. Then define a new item type in the navigator tree by choosing New Item Type from the Edit menu. Every item type has an all–uppercase internal name." To Create an Item Type 1. Attention: To update the internal name for an item type once it is defined. select New from the File menu to create a new data store to define this new item type.sql: page 16 – 8.

then specify the number of days Defining Workflow Process Components 4–7 . If you set the persistence type to Temporary. You can also supply a description for the item type. 3. 4. Enter a translatable Display Name that is longer and more descriptive. Specify a persistence type of Temporary or Permanent.

See: To Define an Item Type or Activity Attribute: page 4 – 8. If your item type has or will have more than one workflow process associated with it.<procedure_name>. To create an item type attribute. The selector function is a PL/SQL stored procedure that automatically identifies the specific process definition the Workflow Engine should execute when a workflow is initiated for this item type. Choose Apply to save your changes. See: Allowing Access to an Object: page 4 – 17. You can review or edit the properties of this item type at any time by double–clicking on the item type in the navigator tree or by selecting the item type and choosing Properties from the Edit menu. you may specify a selector function using the syntax <package_name>.) Select the Access tab page to set the access and customization levels for this item type. 6. 7. select an item type in the navigator tree. You can also extend the selector function to be a general callback function that resets context information each time the Workflow Engine establishes a new database session to execute activities. Choose Apply to save your changes. 8. (This functionality will be supported in a future release. 10. You use these item type attributes to pass values to and from your function. 9. See: Persistence Type: page 4 – 4. 11. notification.from the time the item instance completes before its status audit trail can be purged. A secondary branch appears in the navigator tree that represents the item type you just created. 4–8 Oracle Workflow Guide . See: Standard API for an Item Type Selector or Callback Function: page 7 – 13. See Also Using the Edit Button in a Property Page: page 3 – 8 " To Define an Item Type or Activity Attribute 1. and event activities. then choose New Attribute from the Edit menu. 5. OK to save your changes and close the property page or Cancel to cancel your changes and close the property page. Define as many item type attributes as necessary to use as global variables in your process. Select the Roles tab page to specify the roles that have access to this item type.

select an activity in the navigator tree and choose New Attribute from the Edit menu. and PL/SQL procedures refer to the internal name when identifying an attribute. Defining Workflow Process Components 4–9 . SQL scripts. An Attribute property page appears in both cases. All Oracle Workflow APIs. Provide an Internal Name in all uppercase with no leading/trailing spaces.To create an activity attribute. 2.

.

Enter an optional description. you must use special SQL scripts called wfchita. This is the name that appears in the navigator tree. Caution: Do not include colons ”:” or leading/trailing spaces in your internal name. and document data types are not relevant if you are defining an activity attribute. • Lookup—Choose a predefined Lookup Type from which to draw values. See: Wfchita. See: To Define a URL Attribute: page 4 – 12.sql: page 16 – 7. 4 – 10 Oracle Workflow Guide . • Form—This attribute is relevant only for the version of Oracle Workflow embedded in Oracle Applications. Attention: To update the internal name for an attribute once it is defined. Depending on the data type of your attribute. Enter a Display Name. • Date—Optionally supply a format mask for the date and a default value. 5. Do not use these scripts to rename attributes that are involved in running instances of processes. URL. Form. Note: The Frame Target field is applicable only for message attributes of type URL. It is not used for item type attributes or activity attributes. Oracle Applications Developer’s Guide and To Define a Form Attribute: page 4 – 13.sql. 6. provide the following default value information: • Text—Specify the maximum length of the text attribute and an optional default text string. 3.sql and wfchacta. See: Overview of Menus and Function Security. • URL—Specify an optional Universal Resource Locator (URL) to a network location in the Default Value field and specify the frame target for the URL.sql: page 16 – 8 and Wfchacta. You should only use these scripts to correct errors in an attribute’s internal name during design time. Select the data type of the attribute. Choose a lookup code from that lookup type for the default value. Specify an optional developer form function name and optional argument strings (form function parameters) in the Default Value field. • Number—Optionally provide a format mask for your number and a default value. 4.

Note: An activity attribute type of ’Text’ is compatible with any item attribute type. choose Item Attribute in the Default Value region. Activity attributes assume the access/protection level of their parent activity. If you want the default to acquire its entire value from an item type attribute. See: To Define a Document Attribute: page 4 – 14. See: Roles: page 5 – 24. • Attribute—Specify the name of an item type attribute that you want to maintain references to in a process by choosing from the list of existing item type attributes. If you are defining an item type attribute. • Event—If you are defining an item type attribute. Note: For attributes of type Lookup. The item type attribute you select must also be of the same data type as the activity attribute. For activity attributes. OK to save your changes and close the property page or Cancel to cancel your changes and close the property page. See: Allowing Access to an Object: page 4 – 17. • Role—Specify a role name. may be a text string that allows for token substitution at runtime. 10. 9. The item type attribute you select must be associated with the same item type that the activity itself is associated with. you cannot specify any default value for an event attribute. The constant. you can only specify an event item type attribute as the default value. Choose Apply to save your changes. If you are defining an activity attribute. Defining Workflow Process Components 4 – 11 . Note: The Frame Target field is not applicable for attributes of type document. the optional default value is a constant that you enter or select from a list of values. For document attributes. 8. For item type attributes. the default value must be a lookup code belonging to that lookup type. however. but all other activity attribute types must match the item attribute type exactly. the optional default value may be a constant or an item type attribute. Choose Apply to save your changes. this field is reserved for future use. then use the adjacent poplist field to choose the item type attribute. 7.• Document—Enter an optional string that identifies the document in the default value field. select the Access tab page to set the access levels allowed to modify this attribute.

You can review or edit the properties of an attribute at any time by double–clicking on the attribute in the navigator tree or by selecting the attribute and choosing Properties from the Edit menu. Any function activity attribute you define appears beneath the activity you defined it for in the navigator tree. Any item type attribute you create appears beneath the Attributes branch in the navigator tree. .11.

Specify a Universal Resource Locator (URL) to a network location in the Default Value field of the Attribute property page. See: To Define a Message Attribute: page 4 – 34 and To Token Substitute an Attribute: page 4 – 41. For example. you can also include a special token in your argument string called 4 – 12 Oracle Workflow Guide . To token substitute other message attributes in an argument string. specify the message attributes as follows: –&message_attr– 2. See Also Attention: The order that you list these attributes in the navigator tree correlate to the order in which they appear in any list of values that draw upon these attributes. Using the Edit Button in a Property Page: page 3 – 8 " To Define a URL Attribute 1. You can include argument strings in your URL that are text strings.oracle. you can include argument strings that are token substituted with other message attributes. or select an attribute and choose Move Attribute Up or Move Attribute Down from the Edit menu. respectively: http://www. The URL can be a constant or a value returned from another item attribute.com?arg1=–&msgattr1–&arg2=–&msgattr2– Note: If you are defining a message attribute of type URL. You can use the drag and drop feature of the navigator tree to reorder a set of attributes. The message attributes used for token substitution can have constant values or can reference the values returned from item type attributes. if you are defining a message attribute of type URL. the following string represents a URL with two arguments called arg1 and arg2 that are token substituted with the runtime value of message attributes msgattr1 and msgattr2. Additionally.

If your form attribute contains an argument string. " To Define a Form Attribute 1.. where &item_attr represents the internal name of the item type attribute: • argN=”&item_attr” • argN=”Value &item_attr” See: To Token Substitute an Attribute: page 4 – 41. Note: If you are defining a message attribute of type Form. The default value must be entered using the following format: function_name:arg1=value1 arg2=value2 . you should use TO_CHAR to format the string as YYYY/MM/DD+HH24:MI:SS. you need to do the correlating format translation in the function that the URL calls. If you need to pass a date and time as an argument to a URL. 4.–&#NID– which Oracle Workflow substitutes with the notification ID of the runtime notification. the argument string for the other attribute is not further token substituted. enclosed in quotes (” ”) or can be token substituted with another item type attribute in any of the following ways. using TO_DATE. Specify a developer form function name and any optional argument string (form function parameters) in the Default Value field of the form Attribute property page.argN=valueN 2. 3. you must adhere to the following restrictions: • You cannot token substitute that argument string with another item attribute of type Document. However. Choose OK when you are done. you must adhere to the following restrictions: Defining Workflow Process Components 4 – 13 . 3. The value of argN can be a text string. • You can token substitute that argument string with another Form attribute or URL attribute. If your URL attribute contains an argument string. 5. This formatting is required because in multibyte databases.. the month portion of the DD–MON–YYYY format could potentially translate to a value that is not acceptable across a URL. Similarly. you can also include a special token in your argument string called &#NID which Oracle Workflow substitutes with the notification ID of the runtime notification.

Enter a string that identifies the document in the default value field of the Attribute property page. See: Standard APIs for ”PL/SQL” and ”PL/SQL CLOB” Documents: page 7 – 17. the following string represents the PL/SQL document. po_req:2034. • You can token substitute the value of that argument string with another Form attribute or URL attribute. Replace <procedure> with the PL/SQL package and procedure name. generated from a PL/SQL procedure. the argument string for the other attribute is not further token substituted. you should use a PL/SQL CLOB document to hold the data instead. " Choose OK when you are done. generated from a PL/SQL procedure. Specify the default value of a PL/SQL CLOB document as 4 – 14 Oracle Workflow Guide . 3. Specify the default value of a PL/SQL document as plsql:<procedure>/<document_identifier>. You can identify the following types of document for a document attribute: • A PL/SQL document • A PL/SQL CLOB document 2. Note: The PL/SQL procedure must follow a standard API format.show_req. plsql:po_wf. A PL/SQL CLOB document represents data from the database as a character large object (CLOB).• You cannot token substitute the value of argN with another item attribute of type Document.show_req/po_req:2034 Note: The maximum length of the data that a PL/SQL document can contain is 32 kilobytes. Replace <document_identifier> with the PL/SQL argument string that you want to pass directly to the procedure. generated by the procedure po_wf. 4. separated by a period. If you expect your document to exceed 32 Kb. The argument string should identify the document. For example. To Define a Document Attribute 1. A PL/SQL document represents data from the database as a character string. however.

Replace <document_identifier> with the PL/SQL argument string that you want to pass directly to the procedure. you can token substitute the document identifier with other item type attributes. plsqlclob:po_wf. Replace <procedure> with the PL/SQL package and procedure name. " Choose OK when you are done. See: Standard APIs for ”PL/SQL” and ”PL/SQL CLOB” Documents: page 7 – 17. • Do not use tokens within the CLOB. to the data store or workspace you want to copy it to. If you wish to generate the document identifier for a PL/SQL or PL/SQL CLOB document dynamically. You can also use the Copy and Paste commands in the Edit menu. For example: plsql:po_wf. See: To Token Substitute an Attribute: page 4 – 41. po_req:2036. 2. The item attribute names must be in uppercase and must be separated by a colon. 5. separated by a period. holding down your select mouse button. • Ensure that the PL/SQL procedure performs any formatting you require. Select the item type to copy in the navigator tree. The contents of the CLOB are printed in the message body as they are generated by the PL/SQL procedure.show_req_clob. the following string represents the PL/SQL CLOB document. you can also include a special token in your argument string called &#NID which Oracle Workflow substitutes with the notification ID of the runtime notification. Drag the item type. 4. The argument string should identify the document. For example. Note: The PL/SQL procedure must follow a standard API format. To Copy an Item Type 1.plsqlclob:<procedure>/<document_identifier>.show_req/&ITEM_ATTR1:&ITEM_ATTR2 Note: If you are defining a message attribute of type Document. generated by the procedure po_wf. Defining Workflow Process Components 4 – 15 .show_req_clob/po_req:2036 PL/SQL CLOB documents do not support further substitution of message attribute tokens.

When you are done. otherwise the other item type will have unresolved references to the Standard item type. If you copy this item type back to the same data store. you get prompted to enter a new internal and display name for the item type in the Item Type property page. . suppose an item type references objects in the Standard item type. If you copy an item type to a data store where a previous version of the same item type already exists. you update the existing version of the item type in that target data store with the changes in the version of the item type you are copying. Since most components must also have unique internal and display names. you should first drag the Standard item type to the new data store before dragging the other item type over. choose OK. Attention: The order in which you drag two or more item types to a new store is important. For example.3. 4. This is because every item type must have a unique internal and display name. Note that when you copy an item type. you may get prompted to update those components’ internal and display names in their property pages as well. If you plan to copy that item type and the Standard item type to a new data store. you also copy all the components associated with the item type.

Note: You can also use the Copy and Paste options in the Edit menu. to the component branch you want to copy it to. Drag the attribute. If you copy an attribute to a component associated with the same item type. When you are done. holding down your select mouse button. Select the attribute to copy in the navigator tree. 2. " To Copy an Attribute 1. Enter a new unique internal name and display name for the attribute. See Also Using the Edit Button in a Property Page: page 3 – 8 4 – 16 Oracle Workflow Guide . the property page for the attribute appears. 3. choose OK.

This indicates that when you save your work. only saving edits to protected objects that you have access to change Defining Workflow Process Components 4 – 17 .Allowing Access to an Object In the Access tab page. Upload mode means that Oracle Workflow Builder can save your edits. Oracle Workflow Builder is operating in ’upgrade’ mode. while the vertical bar represents your current access level. If the ”Allow modifications of customized objects” check box in the ”About Oracle Workflow Builder” dialog box of the Help menu is: • Checked—The range of editable access levels can appear as a combination of solid green and crosshatch grey areas. but can now do so because Oracle Workflow Builder is operating in ’upload’ mode. or shaded with any combination of solid green and crosshatch grey. The levels depicted by grey crosshatches represent levels that usually cannot modify customized objects. The indicator bar can be shaded solid green. • Unchecked—The range of editable access levels appears as a solid green area. the ’Range of Editable Access Levels’ indicator bar provides a relative indication of the range of access levels that can edit the object. See: Overview of Oracle Workflow Access Protection: page 2 – 101. The shaded area represents the access levels that can edit the object. overwriting any protected objects that you have access to modify as well as any previously customized objects.

Customization = 100. by anyone. If the ”Allow modifications of customized objects” checkbox is checked. The options that you check in this region directly affect the values that appear in the Levels region. use the ’Preserve Customizations’ and ’Lock at this Access Level’ check boxes to define the access levels that can modify this object. 2.and leaving objects that have been previously customized untouched. " To Set the Access Level for an Object 1. Object may only be updated by access levels from 100–1000. These two modes match the upgrade and upload behavior of the Workflow Definitions Loader program. Preserve Customizations— Disallow customized objects from being overwritten during a workflow definition upgrade. Select the Access tab of the property page. customized objects can also be updated by access levels 0–99. This table assumes that the user setting the options has an access level of 100. See: To Set the Access Level for an Object: page 4 – 18 and Using the Workflow Definitions Loader: page 2 – 107. Table 4 – 1 (Page 1 of 2) Customization = 0. Protection = 1000 4 – 18 Oracle Workflow Guide . Access = 100. Protection = 1000 Object may be updated by any access level (0–1000). In the Options region. Selected Checkbox Resulting Levels Levels Allowed to Modify the Object NONE—Object can be updated at any time. Access = 100. The following table illustrates how the customization and protection levels of an object are affected when you check different combinations of these options. as represented by grey crosshatches in the indicator bar.

Access = 100. For example. BOTH—Object can only be updated by the access level at which the object is protected. Customization = 100. If the ”Allow modifications of customized objects” checkbox is checked. message or activity attributes. an activity can reference a lookup type for its possible result values. you associate it with an particular item type.Selected Checkbox Resulting Levels Levels Allowed to Modify the Object Lock at this Access Level—Protect the object at the current access level and do not allow the object to be customized. See: To Create Lookup Types: page 4 – 20. When you define a lookup type. your access level is in a white area of the ’Range of Editable Access Levels’ indicator bar. Lookup Types A lookup type is a static list of values. Note: An object appears with a small red lock over its icon in the navigator tree to indicate that it is a read–only if you are operating at an access level that does not have permission to edit an object. lookup types are not item type specific. Table 4 – 1 (Page 2 of 2) 3. Choose the Apply button to save your changes. Protection = 100 Object cannot be updated by any access level other than 100. that is. However. you can reference any lookup type in your current data store. while a message attribute can reference a lookup type as a means of providing a list of possible responses to the performer of a notification. as represented by grey crosshatches in the indicator bar. Defining Workflow Process Components 4 – 19 . when you create an activity or an attribute. Access = 100. Protection = 100 Object may only be updated by access levels from 0–100. customized objects can also be updated by access levels 0–99. regardless of the item type that the lookup type is associated with. These lists can be referenced by activities and by item type. Customization = 0.

Caution: Do not include colons ”:” or leading/trailing spaces in your internal name.sql: page 16 – 9. . you must use a special SQL script called wfchlut. 2. A Lookup Type property page appears. All Oracle Workflow APIs. See: Wfchlut. Do not use this script to rename lookup types that are involved in running instances of processes. Lookup types have an all–uppercase Internal Name with no leading/trailing spaces and a translatable Display Name.sql. You can supply an optional description for this lookup type. Select an item type from the navigator tree and choose New Lookup Type from the Edit menu. You should only use this script to correct errors in a lookup type’s internal name during design time." To Create Lookup Types 1. SQL scripts. and PL/SQL procedures refer to the internal name when identifying a lookup type. Attention: To update the internal name for a lookup type once it is defined.

Select the Access tab page to set the access levels allowed to modify this lookup type. Choose Apply to save your changes. 4. See: Allowing Access to an Object: page 4 – 17. OK to save your changes and close the property page or Cancel to cancel your changes and close the property page. 3. 4 – 20 Oracle Workflow Guide .

Now define the lookup codes for your lookup type.sql: page 16 – 8. A Lookup Code property page appears. You should only use this script to correct errors in a lookup code’s internal name during design time. you must use a special SQL script called wfchluc. The lookup type you just defined now appears beneath the Lookup Types branch in the navigator tree. Select a lookup type from the navigator tree and choose New Lookup Code from the Edit menu. See: To Create Lookup Codes for a Lookup Type: page 4 – 21. All Oracle Workflow APIs. Do not use this script to rename lookup codes that are involved in running instances of processes. Enter an Internal Name with no leading/trailing spaces and a Display Name for the lookup code. 2. 6. SQL scripts. " To Create Lookup Codes for a Lookup Type 1. You can also enter an optional description. Attention: To update the internal name for a lookup code once it is defined. See: Wfchluc.5. You can review or edit the properties of this lookup type at any time by double–clicking on the lookup type in the navigator tree or by selecting the lookup type and choosing Properties from the Edit menu. and PL/SQL procedures refer to the internal name when identifying a lookup code. .sql.

Defining Workflow Process Components 4 – 21 .

Choose Apply to save your changes. then the property page appears for you to enter a unique internal and display name for the new lookup type. by doing so. Note: Copying a lookup type also copies any lookup codes assigned to it. 4. or if you copy a lookup type to an item type in a different data store when the lookup type already exists in any item type in that data store. You do not have to enter new names. 4 – 22 Oracle Workflow Guide . choose OK. " To Copy a Lookup Type 1. Select the lookup type to copy in the navigator tree. 2. Note: You cannot use the Copy and Paste options to copy a lookup type to another item type in the same data store. You can also drag and drop the lookup type to the item type you want. " To Copy a Lookup Code 1. • If you copy a lookup type back to the same item type. 5. Select the lookup code to copy in the navigator tree. However. then the new lookup type is copied with the same internal and display name as the original. Use the Copy and Paste options in the Edit menu to copy and paste the lookup type to the item type you want.Caution: Do not include colons ”:” or leading/trailing spaces in your internal name. • If you copy a lookup type to an item type in a different data store. 3. OK to save your changes and close the property page or Cancel to cancel your changes and close the property page. Repeat step 1 if you wish to create additional lookup codes for a specific lookup type. you actually move the lookup type to the new item type. you can drag and drop a lookup type to another item type in the same data store. and that lookup type does not yet exist in any item type in that data store. The lookup code you just defined now appears beneath the lookup type you created it for in the navigator tree. You can review or edit the properties of this lookup code at any time by double–clicking on the lookup code in the navigator tree or by selecting the lookup code and choosing Properties from the Edit menu. When you are done.

You can drag a message onto the Notifications branch to create a new notification activity that sends that message. Defining Workflow Process Components 4 – 23 . Hold down your mouse select button as you drag the lookup code to the lookup type you want to copy it to. A message function lets you include a formatted table of message attributes or a notification history table in the message body. When you are done. You can also drag a message directly onto an existing notification activity to update the message that the activity sends. choose OK. Each message is associated with a particular item type. In addition. you can specify that the message prompts a recipient for a special response value that the Workflow Engine then uses to determine how to branch to the next eligible activity in the process. The recipient of a workflow message is called the performer. This allows the message to reference the item type’s attributes for token replacement at runtime when the message is delivered. Messages The Messages branch of the navigator tree lists all available workflow messages for the current item type. you can create message attributes that generate a response section that is unique to the message. a properties page appears for you to enter a unique internal and display name the new lookup code.2. 3. then when you release your mouse button. You can also attach message attributes that represent entire documents or URLs to a notification message. If you drag the lookup code to the same lookup type or to a lookup type where this code already exists. 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. You can create a message with context–sensitive content by including message attribute tokens in the message subject and body that reference item type attributes. A message is what a notification activity sends to a role in a workflow process. When you define a message. Note: You can also use the Copy and Paste options in the Edit menu.

To create a message that prompts for this special response. See: Send and Respond Message Attributes: page 4 – 24. you can attach the message attribute to the message when the notification is sent. Document message attributes embedded in the subject will be ignored. The source (Send or Respond) of a message attribute determines how the message attribute is used. however. you can embed the message attribute in the subject and/or body of the message for token substitution. since Document message attributes cannot be be token substituted in the subject. The value of a ’Send’ message attribute can be a constant or can be a value returned by an item type attribute of that same data type. embed Document message attributes within the body of a message for token substitution. The RESULT message attribute has a data type of Lookup and must be set to the same lookup type as the notification activity’s Result Type.Message Result When you create a message for a notification activity. This ensures that the performer of the notification can choose from a list of possible response values that matches the list of possible results that the notification activity is expecting. Message attributes are listed beneath a message in the navigator tree. Note: You should not embed a message attribute of type Document in a message’s subject. The information you enter creates a special ’Respond’ message attribute for the message that has an internal name of RESULT. In addition. complete the Result tab in the message’s property page. When you define a message attribute with a source of ’Send’. If it does. Send and Respond Message Attributes Once you create a message. 4 – 24 Oracle Workflow Guide . then the message you create needs to prompt the notification recipient for a special response that is interpreted as the result of the notification activity. The Workflow Engine uses that result to determine how it should branch to the next eligible activity in the process. you should make note of whether the notification activity has a Result Type specified. specify the internal name of the message attribute using the format &MESGATTR within the subject or body text. You can. To embed a message attribute in a message’s subject or body for token substitution. Each message attribute has a specific data type. you can define as many message attributes as necessary for that message.

To display the Reassign button. the response frame in the Notification Detail page includes the Reassign button by default. specify the value Y as a constant. you can set the requisition preparer as the From Role for the message. • If you always want to hide the Reassign button for notifications using a particular message. Then include logic in your workflow process that dynamically determines at runtime whether the button should be hidden or displayed and sets the item type attribute to Y or N. See Also To Reassign a Notification to Another User: page 10 – 22 #FROM_ROLE Attribute You can use a special message attribute with the internal name #FROM_ROLE to specify the role that is the source of a notification. Message Attributes: page C – 5 #HIDE_REASSIGN Attribute You can use a special message attribute or notification attribute with the internal name #HIDE_REASSIGN to hide the Reassign button in the Notification Detail web page. If a notification with this attribute is Defining Workflow Process Components 4 – 25 . When users view a notification from their Worklist web page.A message attribute defined with a source of ’Respond’ constitutes the response section of a message. If you want to prevent users from reassigning a notification. set the value of this attribute to Y. set the value to N. The #HIDE_REASSIGN attribute must be of type text. specify an item type attribute as the value. A ’Respond’ message attribute provides instructions that prompts a recipient for a response. respectively. • If you only want to hide the Reassign button in certain cases. you must specify the data type of the attribute. To hide the Reassign button. You can also provide an optional default value for the response. if you have a notification that informs an approver that a requisition was submitted. For example. When you define a ’Respond’ message attribute. The default value can be a constant or a value returned from an item type attribute of the same data type. you can add the #HIDE_REASSIGN attribute to control whether the Reassign button is displayed or hidden.

The From Role for each notification is displayed in the Worklist web page to give users additional information for reviewing and responding to the notifications. Depending on the parameters you provide. 4 – 26 Oracle Workflow Guide . you can also use a special message function called WF_NOTIFICATION() to add context–sensitive content to a message body. Additionally. the Find Notifications page lets you search for notifications based on the From Role.reassigned. Oracle Workflow automatically sets the From Role to the original recipient when sending the notification to the new recipient. create a message attribute with the following properties: • Internal Name—#FROM_ROLE • Display Name—From Role • Description—From Role • Type—Role • Source—Send • Default Type—Item Attribute • Default Value—The item attribute that holds the value you want to set as the From Role for the message See Also To View Notifications from the Worklist: page 10 – 17 To Find Notifications: page 10 – 15 WF_NOTIFICATION() Message Function In addition to message attribute tokens. The tables are created in a standard Oracle Workflow format. To specify the From Role for a message. the WF_NOTIFICATION() function can produce either a table of message attributes or a notification history table.

.) Note: You must not include any spaces or carriage returns in the call to WF_NOTIFICATION(). as well as a row for the initial submission of the process. The message attribute table contains a row for each message attribute listed in the WF_NOTIFICATION() call. call WF_NOTIFICATION() with the ATTRS option followed by the internal names of the message attributes. You only need to use a comma to delimit the parameters in the list. the Defining Workflow Process Components 4 – 27 . Notification History Table To include a notification history table in a message body. separated by commas.<attribute2>.<attribute1>. For example.<attribute3>. for a requisition approval notification that is sent to several approvers in turn. showing the display name and the value for each attribute.Message Attribute Table To include a table of message attributes in a message body.. Use the following format: WF_NOTIFICATION(ATTRS. call WF_NOTIFICATION() with the HISTORY option in the following format: WF_NOTIFICATION(HISTORY) The notification history table contains a row for each previous execution of the notification activity in the process..

and the recipient can enter a note there when responding to the notification. or if the WF_NOTE message attribute was not defined for the notification. as well as a row for the process owner. Note: The process owner cannot add a note for the notification history table when submitting the process. you must create a special ’Respond’ message attribute with the internal name WF_NOTE.notification history table would contain a row for each approver to whom the notification was sent. To allow a recipient to add a note for the notification history table. • Date—The notification date. beginning at zero (0) for the initial submission of the process by the process owner. Define the message attribute with the following properties: – Internal Name—WF_NOTE – Display Name—Note – Description—Note – Type—Text – Source—Respond When the WF_NOTE attribute is defined with a source of ’Respond’. The WF_NOTIFICATION() function retrieves the note text stored in the WF_NOTE attribute and displays it in the notification history table. If the recipient did not enter a note. • Who—The notification recipient or process owner. • Note—An additional note from the recipient. it appears as part of the notification response section. The notification history table includes the following columns: • Sequence—The order in which the executions of the notification activity took place. 4 – 28 Oracle Workflow Guide . then the Note column in the notification history table is left blank. • Action—The action with which the recipient responded to the notification. Only a notification recipient can add a note when responding to the notification.

2. Do not use this script to rename messages that are involved in running instances of processes. Caution: Do not include colons ”:” or leading/trailing spaces in your internal name. and choose New Message from the Edit menu. and provide a display name. and PL/SQL procedures refer to the internal name when identifying a message. Select the item type that you want to create a message for in the navigator tree. . you must use a special SQL script called wfchmsg.sql: page 16 – 9. You should only use this script to correct errors in a message’s internal name during design time. You may also enter an optional description. A Message property page appears. Provide an internal name for the message that is all uppercase with no leading/trailing spaces.sql." To Create a Message 1. SQL scripts. All Oracle Workflow APIs. See: Wfchmsg. Attention: To update the internal name for a message once it is defined.

Choose High. or Low for the default priority of the message. Normal. 3. It does not affect the processing or delivery of the message. The priority level simply informs the recipient of the urgency of the message. Note: When you assign this message to a notification activity and you incorporate the notification activity into a process Defining Workflow Process Components 4 – 29 .

4. use an ampersand (&) followed by the message attribute’s internal name. Select the Body tab to display the Body property page of the message. you can override this default message priority with a new priority that is constant or dynamically determined at runtime. See: To Define Nodes in a Process: page 5 – 6. and 67–99=Low.diagram as a node. Choose Apply to save your changes. 5. Note: In earlier versions of Oracle Workflow. 34–66=Normal. 4 – 30 Oracle Workflow Guide . To include a message attribute in the subject. Oracle Workflow now automatically converts the priority values of all message definitions defined in earlier versions as follows: 1–33 = High. 6. See: Send and Respond Message Attributes: page 4 – 24 and To Define a Message Attribute: page 4 – 34. The subject gets its default value from the display name that you entered in the Message tab. you can assign a message attribute the same name as the item type attribute it references. Suggestion: For clarity. the message priority was represented as a numeric value between 1 (high) and 99 (low). The subject can include message attributes that get token replaced with runtime values when the message is delivered. You can choose to keep the default subject or enter a new subject for the message.

You can select the ellipsis button (. Oracle Workflow uses the content you enter in the Text Body field to generate a plain text version of the notification message. Enter a plain text message body in the Text Body field..) to expand the view of the Subject and Text Body fields in another window. ..7. The plain text message can be viewed from the from an e–mail reader that displays plain text messages.

. you get an empty notification when you view your message from a plain text e–mail reader.HTM or . . 8. Attention: Oracle Workflow Builder does not verify the HTML formatting of the message body. You may enter an optional HTML–formatted message body in the HTML Body field by selecting the HTML Body tab and typing in the content. If you do include these tags.</Body> HTML tags.. Attention: Make sure you enter a plain text message body in the Text Body field. As a result. Attention: When you enter or import the HTML message body.. Oracle Workflow simply extracts the content between these tags to use as the HTML message body. you do not need to include the <Body>.) to expand the view of the Subject and HTML Body fields in another window. You can also select the ellipsis button (. If Text Body is null.HTML file. Oracle Workflow ignores any HTML tags or content prior to the <Body> tag.. or by selecting Import to import the content from a .

.

. Oracle Workflow uses the content you enter in the HTML Body field to generate an HTML–formatted version of the notification message. You can view an HTML–formatted notification message from the Notification Details web page.</pre> HTML tags. Note: If HTML Body is null.. Oracle Workflow uses the message body entered in Text Body to generate the notification message. or from an e–mail reader that displays HTML–formatted messages or HTML–formatted message attachments. . It inserts the plain text between the <pre>.

the Notification Mailer and third party e–mail applications are not able to identify the location of these files when users view the HTML version of their notifications in e–mail. Defining Workflow Process Components 4 – 31 . Attention: Oracle Workflow does not fully support references to icon and image files in the HTML message body. Although your web server may be able to resolve the location of these files for proper display in the Notification Details web page.

Oracle Workflow substitutes this token with the notification ID of the runtime notification.9. Note: You can also include a special token in the message subject or body called &#NID. If you include message attributes in the text for token substitution. Oracle Workflow token replaces the message attributes with runtime values when it delivers the notification. To embed a message attribute. Attention: The text in a message body must be less than 4000 bytes. you can use the message function WF_NOTIFICATION() to include a formatted table of message attributes or a notification history table in the text or HTML message body. Additionally. . then the final message body can increase up to 32000 bytes. enter an ”&” followed by the message attribute’s internal name. You can embed message attributes in the text or HTML body.

13. See: Message Result: page 4 – 24 4 – 32 Oracle Workflow Guide . See: Allowing Access to an Object: page 4 – 17. Choose Apply to save your changes. Select the Access tab page to set the access levels allowed to modify this message. If you want the notification message to prompt the performer for a response value and you want Oracle Workflow to interpret that response value as the result of the notification activity. (This functionality will be supported in a future release.) 12. Select the Roles tab page to specify the roles that have access to this message. 11. select the Result tab page and complete the information requested. 10. Oracle Workflow uses the information you specify in the Result tab page to create a special ’Respond’ message attribute called RESULT.

If a message has a Result defined. then its message icon in the Navigator tree has a red question mark overlay to help you distinguish it from messages that do not have a Result defined. Note: To create any other type of message attribute. To create a message attribute that references an item type attribute. OK to save your changes and close the property page or Cancel to cancel your changes and close the property page. Select a lookup type from the poplist field. 17. 16. The message you just defined now appears beneath the Message branch in the navigator tree. The lookup type you select should be identical to the lookup type specified for the notification activity’s result type. The lookup code you select appears as the default value of the RESULT message attribute.Specify a display name and description for RESULT. see: To Define a Message Attribute: page 4 – 34. You can review or edit the properties of this message at any time by double–clicking on the message in the navigator tree or by selecting the message and choosing Properties from the Edit menu. Choose Apply to save your changes. Select a lookup code in the Default Value region. 15. and Defining Workflow Process Components 4 – 33 . 14. You must now define all the message attributes that you have included in the subject and body of this message. select the referenced item type attribute in the navigator tree.

Do not use this script to rename message attributes that .sql. select a message in the navigator tree and choose New Attribute from the Edit menu. " To Define a Message Attribute 1. making sure the message attribute has the proper Source. You should only use this script to correct errors in a message attribute’s internal name during design time. All Oracle Workflow APIs. 2. See: To Define a Message Attribute: page 4 – 34. The Default Value region is automatically set to Item Attribute and references the originating item attribute. You can also create message attributes that are not based on existing item type attributes.hold down your mouse select button as you drag the item type attribute to your message. Edit the property page that appears. 18. Provide an Internal Name in all uppercase with no leading/trailing spaces. SQL scripts. To create a message attribute that does not reference an existing item type attribute. you must use a special SQL script called wfchmsga. Attention: To update the internal name for a message attribute once it is defined. and PL/SQL procedures refer to the internal name when identifying an attribute. An Attribute property page appears.

4 – 34 Oracle Workflow Guide .

See: Wfchmsga. Specify ’Send’ or ’Respond’ in the Source field to indicate whether this attribute should send information to the notification recipient or prompt a notification message recipient for a response. Attention: For ’Send’ message attributes.are involved in running instances of processes. 4. then this display name is also used as the response prompt. This is the name that appears in the navigator tree. If this is a ’Respond’ message attribute. 3. Caution: Do not include colons ”:” or leading/trailing spaces in your internal name.sql: page 16 – 9. the Display Name of the attribute appears in plain text e–mail notifications only if the attribute is of type URL to describe what the URL drills down to. respectively. Enter a Display Name. .

Choose a lookup code for the default value. use this field to elaborate on response instructions. Depending on the Type of your attribute. • Date—Optionally supply a format mask for the date and a default date value. . • URL—Specify a Universal Resource Locator (URL) to a network location in the Default Value field. Select the data type of the attribute. • Number—Optionally provide a format mask for your number and a default number value. • Lookup—Choose the name of a predefined Lookup Type from which to draw values. provide the following default information: • Text—Specify the maximum length of the text attribute. 6. If this is a ’Respond’ message attribute. See: To Define a URL Attribute: page 4 – 12. 7. 5. Enter an optional description.

.

You should advise your workflow users to view their notifications from the Notification Details web page if you plan to create messages with ’Respond’ message attributes of type URL. Attention: A single ’Respond’ message attribute of type URL replaces the Notification Details web page response frame and Defining Workflow Process Components 4 – 35 . Attention: ’Respond’ message attributes of type URL do not appear properly when you view the notification from a plain text e–mail reader.

Oracle Applications Developer’s Guide and To Define a Form Attribute: page 4 – 13. . Your custom HTML response document must include references to all your ’Respond’ message attributes. • Form—This attribute is relevant only with the version of Oracle Workflow embedded in Oracle Applications. Specify a developer form function name and any optional argument string (form function parameters) in the Default Value field. and must also include a call to the Workflow Engine CompleteActivity( ) API to inform the Workflow Engine when the notification response is complete. including the special RESULT attribute. See: Overview of Menus and Function Security.takes the notification recipient to a custom HTML page to complete the notification response. if one is defined.

.

• Document—Enter a string that identifies the document in the Default Value field. • Event—Specify an event item type attribute as the default value. you must initially load roles from the database. The attached form icon is enabled if a notification message includes a ’Send’ message attribute of type Form. See: Roles: page 5 – 24. See: Workflow Engine APIs: page 8 – 19. Also when you view the notification from a web browser. • Role—Specify a role name. This form function must be coded with a call to the Workflow Engine CompleteActivity( ) API to inform the Workflow Engine that the notification response is complete. To set a default value for the attribute. eliminating the need for you to maintain separate attributes for the role’s internal and display names. The notification recipient can click on the attached form icon to drill down to the form function defined by the message attribute. the attached form icon that appears in the notification’s Response section simply drills down directly to the designated form function. the role display name is a hypertext link to the e–mail address for that role. Attention: ’Send’ and ’Respond’ message attributes of type Form appear only when your Notifications web pages are launched from Oracle Applications. the attribute automatically resolves to the role’s display name. See: To Define a Document Attribute: page 4 – 14. 4 – 36 Oracle Workflow Guide . Attention: If a message includes a ’Respond’ message attribute of type Form. If a message attribute of type role is included in a notification message.

.

.

Note: You can attach. you see a document icon following the notification message body that displays the contents of the attached message attribute when you click on it. This value is equivalent to Same Frame if the current frame has no parent. • Full Window—the URL loads into the full. • Same Frame—the URL loads in the same frame as the element that references the URL attribute. Number. ’Respond’ message attributes of type Lookup prompt the notification recipient to select a response from a list of values. The frame target can be: • New Window—the URL loads in a new. See: Reviewing Notifications via Electronic Mail: page 10 – 2. • Parent Frameset—the URL loads into the immediate FRAMESET parent of the current frame. number. document. text value. the URL opens according to what you specify as the frame target. Attention: Do not specify a message attribute’s data type as Attribute. If you view your notification from e–mail. Attention: ’Respond’ message attributes of type Date. as well as embed (by token substitution) Document attributes in the notification message and are not limited to one or the other. original window. role (internal or display name). the presentation of the attachment will vary depending on what your e–mail notification preference setting is. If your message attribute type is URL. 8. If your message attribute is a Send attribute and is of type Document. you can check Attach Content to append an attachment called Notification References to the notification message. you can check Attach Content to attach the content of the attribute to the notification message. thus cancelling all other frames. If your message attribute is a Send attribute and is of type URL. unnamed browser window. This attachment includes a link to each URL attribute for the message Defining Workflow Process Components 4 – 37 . 9. specify a Frame Target. When you reference this message attribute in a message. Document or Role prompt the notification recipient to respond with a date. as it serves no purpose in a notification message and is also not supported by the Workflow Notification System. Text. This value is equivalent to Same Frame if the current frame has no parent. When you view your notification from the Notification web page interface. respectively. 10.

You can navigate to a URL by choosing its link. then use the poplist field to choose an item type attribute. . Choose Apply to save your changes. Any message attribute you define appears beneath the respective message you defined it for in the navigator tree. The item type attribute you select must also be of the same data type as the message attribute. Note: A message attribute type of ’Text’ is compatible with any item attribute type. 12. as well as embed (by token substitution) URL attributes in the notification message and are not limited to one or the other. The item type attribute you select must be associated with the same item type that the message itself is associated with. Note: Message attributes assume the access/protection level of their parent message.that has Attach Content checked. Note: You can attach. choose Item Attribute. 11. Respond message attribute icons in the Navigator tree have a red question mark overlay to help you distinguish them from Send message attribute icons. OK to save your changes and close the property page or Cancel to cancel your changes and close the property page. You can review or edit the properties of an attribute at any time by double–clicking on the attribute in the navigator tree or by selecting the attribute and choosing Properties from the Edit menu. but all other message attribute types must match the item attribute type exactly. If the default references its entire value directly from an item type attribute. For message attributes. the default value may be a constant or an item type attribute. 13.

You can use the drag and drop feature of the navigator tree to reorder a set of attributes. See Also Example ’Respond’ Message Attributes: page 4 – 39 Using the Edit Button in a Property Page: page 3 – 8 4 – 38 Oracle Workflow Guide . or select an attribute and choose Move Attribute Up or Move Attribute Down from the Edit menu. Attention: The order that you list ’Respond’ message attributes in the navigator tree correlate to the order in which they appear in the response section of the notification message.

the following boilerplate text is used to generate the Response template section of an e–mail notification: <Description> <Display Name>: ” ” <list of lookup codes> Defining Workflow Process Components 4 – 39 . This is the maximum approved amount. Internal Name Type Format/Lookup Type Display Name Description RESULT COMMENT REQDATE MAXAMT lookup text date number WFSTD_APPROVAL 2000 DD–MON–YYYY Action Review Comments Required Date Maximum Amount Do you approve? If there is no required date. The following table lists some sample ’Respond’ message attributes. Table 4 – 2 (Page 1 of 1) For the templated response method.Reviewing Notifications via Electronic Mail: page 10 – 2 Example ’Respond’ Message Attributes Following are examples of how the Notification System generates the Response section of an e–mail notification using a sample set of ’Respond’ message attributes that have no default values. leave this blank.

Value must be a number [in the form ”<format>”]. Value must be <format> bytes or less. Maximum Amount: ” ” For the direct response method. In addition. 4 – 40 Oracle Workflow Guide . <Sequence> is replaced with the relative sequence number of the ’Respond’ message attribute as it appears in the Navigator tree among all ’Respond’ message attributes (that is.Portion of Resulting Response Template as Shown in a Templated Response E–mail Notification Do you approve? Action: ” ” Approve Reject Review Comments: ” ” If there is no required date. <Description> <Type_Hint> <Display Name> is replaced with the Display Name of the message attribute. Required Date: ” ” This is the maximum approved amount. if the message attribute matches one of these data types: Type Lookup Date Number Text Type_Hint Value must be one of the following: <list of lookup codes> Value must be a date [in the form ”<format>”]. the presence of ’Send’ message attributes is ignored when determining the sequence). <Type_Hint> is replaced with one of the following statements. the following boilerplate text is used to generate the Response section of an e–mail notification: Enter the <Display Name> on line <Sequence>. leave this blank. <Description> is replaced with the Description of the message attribute.

Oracle Workflow orders the nested list of attributes according to the length of their internal attribute names and then begins substituting the attributes with the longest internal names first. Do you approve? Value must be one of the following: Approve Reject Enter the Review Comments on line 2. " To Token Substitute an Attribute H Oracle Workflow supports runtime token substitution of attributes. Oracle Workflow fetches the internal name of the attribute and its value. You can embed attributes within an attribute as well as embed attributes within a message subject and body. This is the maximum approved amount. If an attribute requiring token substitution is nested with another attribute. Value must be a number. When performing token substitution. Value must be a date in the form ”DD–MON–YYYY”. leave this blank. If there is no required date. specify the attribute that you want to have token substituted as &attr_name.Portion of Resulting Response Section as Shown in a Direct Response E–mail Notification Enter the Action on line 1. To embed an attribute. Value must be 2000 bytes or less. where attr_name is the internal name of the attribute. Enter the Required Date on line 3. . Enter the Maximum Amount on line 4.

" Attention: If you find that you need to nest message attributes more than two layers deep to display the necessary message body content. To Copy a Message 1. Defining Workflow Process Components 4 – 41 . you should investigate creating a PL/SQL document–type message attribute. See: External Document Integration: page 4 – 6. Select the message to copy in the navigator tree.

Make any additional modifications to the properties of the message. Note: You can also use the Copy and Paste options in the Edit menu. choose OK. When you are done. Functions. Oracle Workflow also provides an item type called System:Error that includes a standard error process and activities you can use to create a custom error process. and delete activity definitions in the navigator tree. or sends a business event. or a process. and drag an activity from the tree into a Process window to create a new usage of that activity in a process diagram. See: Standard Activities: page 6 – 2. 5. a property page appears for the new message. an event. 4. Activities An activity is a unit of work that contributes toward the accomplishment of a process. which can be included as an activity in another process to represent a sub–process. raises. 3. some of the activities perform standard functions such as comparing two values. Hold down your mouse select button as you drag the message to the item type branch you want to copy to. Enter a new internal name and display name. Each activity is depicted as an icon in a process diagram Oracle Workflow provides an item type called Standard that includes generic activities you can use in any process you define. You can assign an error process to a process 4 – 42 Oracle Workflow Guide . When you release your mouse button. You can create. edit. A function activity calls a PL/SQL stored procedure or some external program to perform an automated function. An event activity receives. 6. a function. Activities are organized beneath their respective Processes. or Events headings in the navigator tree. A process activity is a modelled workflow process. An activity can be a notification. Notifications. The message may simply provide the user with information or request the user to take some action. Note: Copying a message also copies any message attributes assigned to it. A notification activity sends a message to a workflow user.2. For example.

You define the message that the notification sends. You specify the performer of a notification activity when you include the notification activity as a node in the process. Notification Activity When the workflow engine reaches a notification activity. When you define a notification activity.activity. the error process informs Oracle Workflow how to handle the error. . the Notification System processes the response and informs the workflow engine that the notification activity is complete so that it can continue processing the next eligible activity. When a performer responds to a notification activity. You can either designate the performer to be a specific role or an item type attribute that dynamically returns the name of a role. See: To Create a Notification Activity: page 4 – 48. If an error occurs. it issues a Send( ) API call to the Notification System to send the message to an assigned performer. See: To Define Nodes: page 5 – 8 and Roles: page 5 – 24. The notification remains in a user’s notification queue until the user responds or closes the notification. you can also optionally: • Check Expand Roles to send an individual copy of the notification message to each user in the role. See: Default Error Process: page 6 – 26. The message can be an informative note or it can prompt the performer for a response.

respectively. If one user in that role responds or closes that notification. Oracle Workflow sends one copy of the notification message to the assigned performer role and that notification is visible in the notification queue of all the users in that role. When the Notification System completes execution of the Defining Workflow Process Components 4 – 43 . Attention: You should expand roles to send out a broadcast–type message that you want all users of that role to see. If you do not expand the role for a notification activity. or transfers the notification. or whether the notification times out. FORWARD. or TIMEOUT mode depending on whether the notification recipient responds to. The Workflow Engine runs the post–notification function in RESPOND. TRANSFER. forwards. • Specify a post–notification function that the Workflow Engine executes in response to an update of the notification’s state after the notification is delivered. the notification is removed from the notification queue of all other users in that role.

By both checking Expand Roles and specifying a post–notification function. you should use the same PL/SQL API required for function activities. a function activity is able to enqueue payload information into an Oracle Advanced Queuing outbound queue for some external agent to dequeue and consume. The results of the Java program are enqueued into an inbound queue that the Workflow Engine consumes and processes. the Workflow Engine then runs the post–notification function again in RUN mode. a function activity is able to enqueue payload information into an Oracle Advanced Queuing outbound queue for the Java Function Activity Agent to dequeue and consume. This functionality is 4 – 44 Oracle Workflow Guide . you can create your own custom vote tallying activity. if you wish to restrict the roles that a notification can be forwarded to. The external agent can similarly enqueue updated attributes and a completion result into an inbound queue that the Workflow Engine consumes and processes. As an external program. a function activity accepts standard arguments and can return a completion result. you can expose that parameter as an activity attribute. As a PL/SQL stored procedure. To create a post–notification function. See: Post–notification Functions: page 8 – 13 and Notification Model: page 8 – 192. If you pass a parameter for the stored procedure. See: Standard API for PL/SQL Procedures Called by Function Activities: page 7 – 3. Function Activity A function activity is defined by the PL/SQL stored procedure or external program that it calls. The activity attribute’s value can be set when you define that activity as a node in your process. See: Voting Activity: page 4 – 61.post–notification function in RESPOND mode. For example. you can specify a post–notification function that the Workflow Engine executes in FORWARD mode when the notification recipient attempts to forward the notification. As an external Java program. See: To Define Activity Attribute Values: page 5 – 17. Note that these activity attributes are available only to the current activity and are not global like item type attributes. The post–notification function would audit the role and either allow the forward to occur or reject it with an error. Function activities are typically used to perform fully automated steps in the process.

a Receive event activity can be placed within the process. which will then execute subscriptions to the event. the item type and item key for that process are included in the parameter list within the event message. creating new item type attributes if a corresponding attribute does not already exist for any parameter. and event data as specified in the node’s event details. If the event was originally raised by a Raise event activity in another workflow process. Event Activity An event activity represents a business event from the Business Event System within a workflow process. so that it is only enabled to receive events after the process transitions to that activity. An event activity can either receive. raise. • A Receive event activity can be marked as a Start activity for a process. If that activity has already received an event. event key. meaning it is always enabled to receive events. overriding any existing parent setting. In this case. See: To Define Optional Activity Details: page 4 – 59. or send a business event. The event details can be dynamically determined at runtime using item type attributes. the Workflow Engine stores the event name. and event message in item type attributes. the Workflow Engine automatically sets the specified process as the parent for the process that receives the event. sets any parameters in the event message parameter list as item type attributes for the process.currently only available for the standalone version of Oracle Workflow. You can also specify the event name as a predefined constant for the event activity node. Include event activities in workflow processes to model complex processing or routing logic for business events beyond the standard event subscription options of running a function or sending the event to a predefined agent. When the activity receives an event. and then continues the thread of execution from the event activity. as specified in the node’s event details. • A Raise event activity retrieves information about the event and raises the event to the Business Event System. The activity retrieves the event name. Alternatively. See: To Create a Function Activity: page 4 – 50. then the On Revisit flag for the activity determines whether the Workflow Engine reexecutes the activity. See: SetItemParent: page 8 – 79. See: Managing Business Events: page 13 – 2. event key. Defining Workflow Process Components 4 – 45 .

There is no restriction on the depth of this hierarchy. event key. and inbound agent. the Workflow Engine sets the event parameters as item type attributes for that process. If the event message is later received by another process. The activity also automatically sets the item type and item key for the current workflow process in the parameter list for the event message. When a process activity is contained in another process it is called a subprocess. The event details can be dynamically determined at runtime using item type attributes. In other words. See: SetItemParent: page 8 – 79. See Also Subprocesses: page C – 5 4 – 46 Oracle Workflow Guide . See: Event Message Structure: page 8 – 242. the correlation ID is automatically set to the item key of the process. the activity retrieves the names and values of any activity attributes defined for it and sets these attributes as parameters in the parameter list for the event message. If no correlation ID is initially specified in the event message. and inbound agent as predefined constants for the event activity node. Caution: Oracle Workflow does not support using a subprocess activity multiple times within a process hierarchy. If the event message is later received by another process. Then the Send event activity sends the event directly from the outbound agent to the inbound agent.Additionally. Note: A Send event activity does not raise the event to the Business Event System. outbound agent. the Workflow Engine uses that item type and item key to automatically set the process that raised the event as the parent for the process that receives the event. See: To Create an Event Activity: page 4 – 54 and To Define Event Details for an Event Node: page 5 – 12. See: To Create a Process Activity: page 4 – 57. as specified in the node’s event details. so no subscription processing is performed. activities in a process can also be processes themselves. • A Send event activity retrieves the event name. You can also specify the event name. Process Activity A process activity represents a collection of activities in a specific relationship. event message. outbound agent.

The valid range for cost is 0. you can enter an estimated cost and update it later as you accumulate more information about its performance. long running activities a high cost.00.Activity Cost Each function activity and event activity has a cost associated with it.000. Generally. The cost is a value representing the number of seconds it takes for the Workflow Engine to execute the activity.00 to 1. If you do not know how long it takes for the Workflow Engine to perform the activity. you should assign complex. .000.

it is actually converted and stored in the database as hundredths of a second. You can define your Workflow Engine to defer activities with a cost higher than a designated threshold to a background process. Defining Workflow Process Components 4 – 47 . and Deferring Activities: page C – 7. See: Setting Up Background Workflow Engines: page 2 – 43. Attention: Although the cost is entered and displayed in seconds in Oracle Workflow Builder. The engine then continues processing the next pending eligible activity that may occur in another parallel branch of the process. In normal processing. Activities with a cost higher than this are deferred to background engines. You can set the workflow engine threshold through SQL*Plus. A background engine can be customized to execute only certain types of activities. To Set Engine Thresholds: page 2 – 47. In some cases. an activity might take so long to process that background processing would be more appropriate. The default threshold for the Workflow Engine is 50 hundredths of a second. the Workflow Engine completes the execution of a single activity before continuing to a subsequent activity.

A notification activity must have an Internal Name (all uppercase and no leading/trailing spaces) and a Display Name. See: Wfchact. Attention: To update the internal name for an activity once it is defined. Do not use this script to rename activities that are involved in running instances of processes. Caution: Do not include colons ”:” or leading/trailing spaces in your internal name. You should only use this script to correct errors in an activity’s internal name during design time. Use the description to provide an explanation about this activity.sql.sql: page 16 – 7. Define your notification activity in the Activity property page that appears. 2." To Create a Notification Activity 1. which is the translatable name that appears in your process diagram. you must use a special SQL script called wfchact. . then choose New Notification from the Edit menu. Select the item type that you want to create a notification for in the navigator tree. You can also select a message in the navigator tree and drag and drop the message into the Notifications branch of the same item type to create a notification activity that sends that message.

Indicate the result type (a predefined Lookup Type) for this activity. Your workflow diagram may branch depending on the value returned 4 – 48 Oracle Workflow Guide . 3. Result types list the possible results returned by this activity.

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. FORWARD. You can use any icon. the Workflow Engine then runs the post–notification function again in RUN mode. See: Voting Activity: page 4 – 61. The Workflow Engine executes this post–notification function in RESPOND. The procedure is known as a post–notification function and lets you couple processing logic to the notification activity. Specify the procedure using the format: <package_name>. TRANSFER or TIMEOUT mode depending on whether the recipient responds to. to symbolize the action of an activity. See: Standard API for PL/SQL Procedures Called by Function Activities: page 7 – 3 and Post–Notification Functions: page 8 – 13. See: Notification Activity: page 4 – 43. 6. to this notification activity. then check Expand Roles. You can choose <None> as the result type if your activity does not return a value. See: Adding Custom Icons to Oracle Workflow: page 2 – 85. 4. When the Notification System completes execution of the post–notification function in RESPOND mode. You can also drag and drop icon files from the Windows Explorer or File Manager onto an activity in your navigator tree to assign that icon to the activity.<procedure_name>. then only one copy of the notification is delivered to the role as a whole. If you check Expand Roles and you assign a message that has a special Result. You can optionally specify a PL/SQL stored procedure in the Function field. See: To Create Lookup Types: page 4 – 20. Select the name of the message you want this notification to send.ico file. or transfers the notification or whether the notification times out. 5. as long as the icon is stored in a . Defining Workflow Process Components 4 – 49 . or if your workflow process does not depend on the value returned. Choose an icon that identifies your activity. forwards. 7. See: To Create a Message: page 4 – 29.by your completed activity. Choose Browse to view the icon files listed in the workflow icons subdirectory. If you uncheck Expand Roles. then use the Function field to specify the name of a custom PL/SQL stored procedure that tallies the responses you get back from each of the recipients of this notification.

Choose OK to save your changes and close the property pages. 12. The notification activity now appears beneath Notifications in the navigator tree. (This functionality will be supported in a future release. Choose Apply to save your changes. 9. You can review or edit the properties of this activity at any time by double–clicking on the activity in the navigator tree or by selecting the activity and choosing Properties from the Edit menu or by pressing Enter on your keyboard. then choose New Function from the Edit menu. See: To Define Optional Activity Details: page 4 – 59. Select the Roles tab page to specify the roles that have access to this notification activity. See Also Using the Edit Button in a Property Page: page 3 – 8 " To Create a Function Activity 1. Select the item type that you want to create a function for in the navigator tree. Select the Access tab page to set the access levels allowed to modify this notification.8. 4 – 50 Oracle Workflow Guide . Select the Details tab to display and modify optional Details of the activity. See: Allowing Access to an Object: page 4 – 17. 10. 13.) 11.

3. 2. A function activity must have an Internal Name (all uppercase and no leading/trailing spaces) and a Display Name. For an external function activity. For a PL/SQL function. See: Wfchact. you must use a special SQL script called wfchact. specify whether the function is a PL/SQL function. In the Type field. Enter the name of the function you want this activity to execute. which is the translatable name that appears in your process diagram. The function must be defined according to a standard API.sql.Define your function activity in the Activity property page that appears. See: Standard API for PL/SQL Procedures Called by Function Activities: page 7 – 3. The Workflow Engine enqueues an entry in the ”Outbound” queue and sets the correlation value of that entry to a value composed of the Workflow schema name and the item type in the following format: <schema_name><item_type> . You should only use this script to correct errors in an activity’s internal name during design time. or an External Java function. an External function.sql: page 16 – 7. set the function type to PL/SQL and specify the function as <package_name>.<procedure_name>. Use the description to provide an explanation about this activity. Do not use this script to rename activities that are involved in running instances of processes. Attention: To update the internal name for an activity once it is defined. set the function type to External. Caution: Do not include colons ”:” or leading/trailing spaces in your internal name.

This functionality is currently only available for the standalone version of Oracle Workflow. The queue handler must execute the action associated with the record and seed the result of the action onto the ”Inbound” queue. You must create your own queue handler to search for this type of record on the ”Outbound” queue. See: Workflow Queue APIs: page 8 – 162. For an external Java function activity. set the function type to External Java and enter the class name of your custom Java class as the function name. If the custom class is Defining Workflow Process Components 4 – 51 . The background engine then takes care of messages on the inbound queue and restarts your original workflow process. See: Deferred Processing: page 8 – 9.

and enqueues the results onto the ’Inbound’ queue.within a package. Note: These ’Outbound’ and ’Inbound’ queues are separate from the queues used for the Business Event System. 7. The background engine then takes care of messages on the inbound queue and restarts your original workflow process. The Java Function Activity Agent dequeues messages of this type.<customClass> The Java class must be defined according to a standard API. You can choose <None> as the result type if your activity does not return a value. See: Setting Up the Java Function Activity Agent: page 2 – 86 and Deferred Processing: page 8 – 9. The Workflow Engine enqueues an entry in the ’Outbound’ queue.ico file. Your workflow diagram may branch depending on the value returned by your completed activity. See: To Create Lookup Types: page 4 – 20. or if your workflow process does not depend on the value returned. You can use any icon. See: Activity Cost: page 4 – 47. to symbolize the action of an activity. Choose an icon that identifies your activity. Result types list the possible results returned by this activity. You can also drag and drop icon files from the Windows Explorer or File Manager onto an activity in your navigator tree to assign that icon to the activity. prefix the class name with the package name in the following format: <customPackage>. See: Standard API for Java Procedures Called by Function Activities: page 7 – 8. Specify the cost of this function activity. Note: To execute external Java function activities. See: Adding Custom Icons to Oracle Workflow: page 2 – 85. 6. as long as the icon is stored in a . 4 – 52 Oracle Workflow Guide . 4. Choose Browse to view the icon files listed in the workflow icons subdirectory. See: Workflow Queue APIs: page 8 – 162. you must include your JAR files in your CLASSPATH. 5. executes your Java program. Indicate the result type (a predefined Lookup Type) for this activity. Choose Apply to save your changes.

8. Select the Access tab page to set the access levels allowed to modify this function. See Also Using the Edit Button in a Property Page: page 3 – 8 Defining Workflow Process Components 4 – 53 . The function activity now appears beneath Functions in the navigator tree. 9. The Default Value region is automatically set to Item Attribute and references the originating item attribute. (This functionality will be supported in a future release. If your function requires input arguments. select the referenced item type attribute in the navigator tree. See: To Define an Item Type or Activity Attribute: page 4 – 8. When you include a function activity as a node in a process. To create a function activity attribute that references an item type attribute. 12.) 10. Select the Roles tab page to specify the roles that have access to this function activity. You can review or edit the properties of this activity at any time by double–clicking on the activity in the navigator tree or by selecting the activity and choosing Properties from the Edit menu or by pressing Enter on your keyboard. Function activity attributes behave as parameters whose values you can modify for each usage of the activity in a process. See: Allowing Access to an Object: page 4 – 17. you can expose those arguments in Oracle Workflow Builder as attributes of the function activity. 11. See: To Define Optional Activity Details: page 4 – 59. and hold down your mouse select button as you drag the item type attribute to your function activity. Select the Details tab to display and modify the optional details of the activity. See: To Define Activity Attribute Values: page 5 – 17. Function activity attributes are specific to a function activity and are not global to a process. you can assign a value to the function activity attribute that is specific to that node.

Select the item type that you want to create an event for in the navigator tree." To Create an Event Activity 1. then choose New Event from the Edit menu. An event activity must have an Internal Name (all uppercase and no leading/trailing spaces) and a Display Name. which is the translatable name that appears in your process diagram.sql: page 16 – 7. Use the description to provide an explanation about this activity. See: Wfchact. 2. you must use a special SQL script called wfchact. Caution: Do not include colons ”:” or leading/trailing spaces in your internal name. You should only use this script to correct errors in an activity’s internal name during design time. Attention: To update the internal name for an activity once it is defined. .sql. Do not use this script to rename activities that are involved in running instances of processes. Define your event activity in the Activity property page that appears.

as long as the icon is stored in a . Choose Browse to view the icon files listed in the workflow icons subdirectory. 4 – 54 Oracle Workflow Guide . Choose an icon that identifies your activity. to symbolize the action of an activity. You can use any icon. See: Adding Custom Icons to Oracle Workflow: page 2 – 85. 3.ico file.

enter the full internal event name. Enter an optional cost for the activity. • Raise—Raise an event to the Business Event System. See: To Define an Event: page 13 – 5. • To allow any event for the activity. • Receive—Receive an event from the Business Event System. Note: Depending on the event action you select. • To allow only a specified event for the activity. 5. you can use the item type attributes to specify where to store or retrieve the required event detail information for that node. • Send—Send an event directly from one Event agent to another agent without re–raising the event to the Business Event System. The item type attributes that you use for event details must be associated with the same item type that the event activity itself is associated with. See: To Define an Item Type or Activity Attribute: page 4 – 8 and To Define Event Details for an Event Node: page 5 – 12. leave the Event Filter field blank. you may need to define item type attributes for some or all of the following event details: – Event Name – Event Key – Event Message – Event Data – Out Agent – To Agent When you include the event activity as a node in a process. Note: You can only specify an individual event as the event filter. 6. For event activities with the event actions Raise or Send.You can also drag and drop icon files from the Windows Explorer or File Manager onto an activity in your navigator tree to assign that icon to the activity. 4. you can use the cost to defer long Defining Workflow Process Components 4 – 55 . The event filter cannot be an event group. If you are defining a Receive event activity. Select the Event Action for the activity. you can optionally enter an Event Filter to specify the event that the activity can receive.

you can assign a value to the event activity attribute that is specific to that node. you can define those parameters as attributes of the Raise event activity.) 10. Select the Access tab page to set the access levels allowed to modify this event. See: To Define Activity Attribute Values: page 5 – 17. the activity attributes are set as parameters in the parameter list for the event message. the Workflow Engine sets the event parameters as item type attributes for that process. When the event is raised. If the event message is later received by another process. select the referenced item type attribute in the navigator tree. 12. 8. You can modify the values of the attributes for each usage of the Raise event activity in a process. See: To Define an Item Type or Activity Attribute: page 4 – 8. You can review or edit the properties of this activity at any time by double–clicking on the activity in the navigator tree or by selecting the activity and choosing Properties from the Edit menu or by pressing Enter on your keyboard. The Default Value region is automatically set to Item Attribute and references the originating item attribute. and hold down your mouse select button as you drag the item type attribute to your event activity. 11. Event activity attributes are specific to an event activity and are not global to a process. For a Raise event activity. if the event raised by the activity requires additional parameters to be included in the event message. See: Activity Cost: page 4 – 47. Select the Roles tab page to specify the roles that have access to this function activity. If the event message is later received by another process. When you include an event activity as a node in a process. 7. the Workflow Engine uses that item type and item key to automatically set the process 4 – 56 Oracle Workflow Guide .running activities to a background engine. The event activity now appears beneath Events in the navigator tree. To create an event activity attribute that references an item type attribute. See: To Define Optional Activity Details: page 4 – 59. Note: A Raise event activity also automatically sets the item type and item key for the current workflow process in the parameter list for the event message. Select the Details tab to display and modify the optional details of the activity. 9. (This functionality will be supported in a future release. Choose Apply to save your changes. See: Allowing Access to an Object: page 4 – 17.

" To Create a Process Activity Before you can draw a workflow process diagram.that raised the event as the parent for the process that receives the event. Use the description to provide an explanation about this activity. 1. Select the item type that you want to create a process activity for in the navigator tree. See: SetItemParent: page 8 – 79. A process activity must have an Internal Name (all uppercase and no leading/trailing spaces) and a Display Name. you must first create a process activity in the navigator tree to represent the process diagram.sql. which is the translatable name that appears in your process diagram. Do not use this script to . If a process activity is closed and you want to redisplay it. 2. Attention: To update the internal name of an activity once it is defined. you must use a special SQL script called wfchact. then choose New Process from the Edit menu. select the process activity in the navigator tree and press Enter or select Properties from the mouse menu button. Define your process activity in the Activity property page that appears. You should only use this script to correct errors in an activity’s internal name during design time.

Defining Workflow Process Components 4 – 57 .

7. See: CreateProcess: page 8 – 21. 8. then uncheck Runnable. Choose Browse to view the icon files listed in the workflow icons subdirectory. OK to save your changes and close the property page or Cancel to cancel your changes and close the property page. as long as the icon is stored in a . See: To Define Optional Activity Details: page 4 – 59. See: Wfchact. 6. See: Adding Custom Icons to Oracle Workflow: page 2 – 85. You can choose <None> as the result type if you do not need to record any specific result for the completion of your process. Select the Details tab to display and modify the optional details of the activity. 9. See: Allowing Access to an Object: page 4 – 17. Select the Access tab page to set the access levels allowed to modify this process. Choose an icon that identifies your activity.ico file. 4 – 58 Oracle Workflow Guide . You can also drag and drop icon files from the Windows Explorer or File Manager onto an activity in your navigator tree to assign that icon to the activity. Caution: Oracle Workflow does not support reusing a subprocess activity multiple times within a process hierarchy. 3. 4. If you wish to use a subprocess more than once in a process. to symbolize the action of an activity.rename activities that are involved in running instances of processes. See: To Create Lookup Types: page 4 – 20. Choose Apply to save your changes. 5. Check Runnable so that the process that this activity represents can be initiated as a top–level process and run independently. If your process activity represents a subprocess that should only be executed if it is called from a higher level process.sql: page 16 – 7. Result types list the possible results returned by this process. The access you set for a process activity determines who has access to edit its process diagram. Choose Apply to save your changes. you must create a distinct copy of the subprocess for each instance needed. You can use any icon. Indicate the result type (a predefined Lookup Type) for this activity. Caution: Do not include colons ”:” or leading/trailing spaces in your internal name.

See: Default Error Process: page 6 – 26. Enter the internal name of the item type that owns the error process and then specify the internal name of the error process activity to execute. The process activity now appears beneath Processes in the navigator tree. Select the Details tab of the activity’s property page. Defining Workflow Process Components 4 – 59 . The effective date tells you when this version of the activity is available for the Workflow Engine to execute. If you are creating a process activity. You can review or edit the properties of this activity at any time by selecting the activity and choosing Properties from the Edit menu or by pressing Enter on your keyboard. Note that the error process item type does not need to be open in your current Oracle Workflow Builder session for you to define it here. See Also Using the Edit Button in a Property Page: page 3 – 8 " To Define Optional Activity Details 1. 2. you can specify an error process to execute in the event that an error occurs in the current process. If the Effective Date field is blank.10. the activity is effective immediately. 3.

If On Revisit is set to Loop. Select the activity to copy in the navigator tree. The version number identifies which revision of the activity you are examining. as in a loop. starting with the pivot activity. Note: You can also use the Copy and Paste options in the Edit menu. All your activity modifications share the same effective date when you save. The first activity in a loop is also called the pivot activity. as if they have never been executed before. 6. the Workflow Engine simply reexecutes the pivot activity and all activities that follow in the loop. you should set On Revisit to specify how you want the Workflow Engine to process the loop. the Workflow Engine executes the activity only once. See: Looping: page 8 – 10. 4. the Workflow Engine resets the completed activities in the loop by traversing through the loop in reverse order from the pivot activity. If this activity is the first activity that is revisited. in RUN mode. reexecuting each activity. For all other activities in a loop. 4 – 60 Oracle Workflow Guide . and ignores the activity for all subsequent revisits. 2.You set the effective date when you save your changes using the Save As option in the File menu. a property page will appear prompting you for a new unique internal and display name for the copied activity. Hold down your mouse select button as you drag the activity to the item type branch you want to copy it to. The engine ensures that it uses the most recent updates to an activity by using the latest effective version number of that activity. If On Revisit is set to Reset. 3. The Workflow Engine then traverses through the loop in forward order. If you copy the activity within the same item type. without resetting. " To Copy an Activity 1. Choose Apply to save your changes. If On Revisit is set to Ignore. the value of On Revisit is irrelevant. You can include special logic in each function’s CANCEL mode to undo prior operations. 5. executing each activity in CANCEL mode. Select a value for On Revisit to determine how the Workflow Engine handles this activity when it is transitioned to more than once.

Defining Workflow Process Components 4 – 61 . or notification activity also copies any attributes or message associated with it.4. then choose New Notification from the Edit menu. A voting activity is a notification activity that first sends a notification message to a group of users and then performs a PL/SQL post–notification function to tally the users’ responses (votes). 4. Create a voting message that prompts a recipient to respond with one of the values in the voting lookup type. 3. When you are done. respectively. Voting Activity You can create a voting activity that lets you send a notification to a group of users in a role and tally the responses from those users. Complete the Result tab for the message. The results of the tally determine the activity that the process transitions to next. choose OK. See: To Create Lookup Types: page 4 – 20. Specify an Internal Name (all uppercase and no leading/trailing spaces) and a Display Name. Note: Copying a function. event. Set the lookup type in the Result tab to the voting lookup type defined in Step 1. Use the description to provide an explanation about this voting activity. See: To Create a Message: page 4 – 29 Select the item type that you want to create a voting activity for in the navigator tree. Create a voting lookup type that contains the responses you want to tally in your voting activity. 2. The activity attributes you define and the following four fields in the property pages of the notification activity determine its voting behavior: • Message field • Result Type field • Expand Roles check box • Function field " Creating a Voting Activity 1.

.

See: Wfchact.sql. 6. specify a function that tallies the responses from users.sql: page 16 – 7. Choose an icon that identifies your voting activity. 10. The response choices are one of the predefined values specified in your voting lookup type. The voting message prompts the recipient for a response. This is the voting lookup type defined in Step 1.<procedure_name>. 4 – 62 Oracle Workflow Guide . 9. Specify the procedure using the format: <package_name>.VOTEFORRESULTTYPE that the Standard Vote Yes/No activity calls. The activity attributes that you define for the voting activity determine how the function tallies the responses. you must use a special SQL script called wfchact. See: Vote Yes/No Activity: page 6 – 10. 11. you can specify your own custom tallying function. 8. The Result Type that you specify for the voting activity defines the possible responses for the function to tally. 7. You should only use this script to correct errors in an activity’s internal name during design time. 5. See: To Define Optional Activity Details: page 4 – 59. Alternatively. See: Standard API for PL/SQL Procedures Called by Function Activities: page 7 – 3. See: Notification Activity: page 4 – 43. select the name of the voting message you created in Step 2. In the Message field. WF_STANDARD. Select the Details tab to display and modify the Details property page of the activity. Do not use this script to rename activities that are involved in running instances of processes. Check Expand Roles so that the Workflow Engine polls for responses from the multiple users in the role rather than just from the first user in the role that replies. Attention: To update the internal name for an activity once it is defined. but you should make sure it conforms to the standard API for function activities. You can use the PL/SQL procedure WF_STANDARD. In the Function field. The Result Type field must contain the lookup type that lists the responses that you want the voting activity to tally. Caution: Do not include colons ”:” or leading/trailing spaces in your internal name.VOTEFORRESULTTYPE is a generic tallying function. Choose Apply to save your changes.

it takes the <Default> transition. 15. the response value. If no <Default> transition exists. See: Allowing Access to an Object: page 4 – 17. the result is #TIE. In other words. whose internal name must be VOTING_OPTION. otherwise. 14.VOTEFORRESULTTYPE tallying function. Select the Access tab page to set the access levels allowed to modify this notification. If you use the WF_STANDARD. that is.VOTEFORRESULTTYPE tallying function. then the Workflow Engine takes this transition. the result is #NOMATCH. (This functionality will be supported in a future release. If no <Default> transition exists. Note: If the tallied votes do not satisfy any response percentages and there are no default responses (blank activity attributes) specified. If you use the WF_STANDARD. If a <No Match> transition from the voting activity exists. create a custom activity attribute of type Number for each possible voting response. Hence. you must also define an activity attribute called Voting Option. You can Defining Workflow Process Components 4 – 63 . otherwise. then the response that received the highest number of votes among those associated with a blank activity attribute becomes the result. then the Workflow Engine takes this transition. Remember that each possible voting response is a lookup code associated with the voting activity’s result type. then the Workflow Engine treats the response for that activity attribute as a default. If you leave an activity attribute value blank. it takes the <Default> transition. if no particular percentage is satisfied after the votes are tallied. then the result is matched if the actual tallied percentage for that response is greater than your specified percentage. then in addition to defining your set of custom activity attributes. Note: If the tallied votes satisfy more than one response percentage or if no response percentage is satisfied.) 13. it raises an error that no transition for the result is available (ERROR:#NOTRANSITION). If a <Tie> transition from the voting activity exists. but a tie occurs among the default responses. If you provide a percentage. The value of the activity attribute can either be blank or a number that represents the percentage of votes required for a particular result. Select the Roles tab page to specify the roles that have access to this notification activity. the internal name of the activity attribute must match the internal name of the lookup code. when you define your custom activity attribute. it raises an error that no transition for the result is available (ERROR:#NOTRANSITION).12.

the Workflow Engine calculates the resulting votes as a percentage of the total votes cast before the timeout occurred. • ”Tally on Every Vote”—the Workflow Engine keeps a running tally of the cumulative responses as a percentage of all the users notified. the Workflow Engine progresses along the standard timeout transition. and does not tally any votes. Response Custom Response Activity Attribute Value A B C Table 4 – 3 (Page 1 of 1) 50 50 50 4 – 64 Oracle Workflow Guide . raises an error. • ”Require All Votes”—the Workflow Engine evaluates the responses as a percentage of all users notified only after all votes are cast. Simple Majority The following table shows the custom response activity attribute value assigned to each response for a simple majority voting method. The possible values are: • ”Wait for All Votes”—the Workflow Engine waits until all votes are cast before tallying the results as a percentage of all the users notified. If a timeout condition occurs. then the responses are tallied as a percentage of the total number of votes cast. See Also Vote Yes/No Activity: page 6 – 10 Example Voting Methods 1. If a timeout condition occurs. Note that this option is meaningless if any of the custom response activity attributes have a blank value. or if none is available.also copy the Voting Option activity attribute from the Vote Yes/No standard activity. The Voting Option activity attribute specifies how the votes are tallied. If a timeout condition occurs.

the result is that no match is found (#NOMATCH). B is the result. and both B and C receive the same number of votes. Simple Majority with Multiple Defaults The following table shows the custom response activity attribute value assigned to each response for a simple majority with multiple defaults voting method. If neither response A nor B gets more than fifty percent of the votes. Response Custom Response Activity Attribute Value A B C Table 4 – 5 (Page 1 of 1) 50 blank blank If response A gets more than fifty percent of the votes. Response Custom Response Activity Attribute Value A B C Table 4 – 4 (Page 1 of 1) 50 50 blank If response A gets more than fifty percent of the votes. 2. then the result is a tie (#TIE). A is the result.The result is any response that gets more than fifty percent of the votes. Simple Majority with Default The following table shows the custom response activity attribute value assigned to each response for a simple majority with default voting method. If no response gets more than fifty percent. then C is the result. If A gets fifty percent of the votes. 3. A is the result. Defining Workflow Process Components 4 – 65 . then response B or C is the result depending on which of the two received the higher number of votes. Similarly if response B gets more than fifty percent of the votes. or less. or less. If A gets fifty percent of the votes.

Response Custom Response Activity Attribute Value A B C Table 4 – 6 (Page 1 of 1) blank blank blank The result is the response that gets the highest number of votes. 6.4. Popularity The following table shows the custom response activity attribute value assigned to each response for a popularity voting method. 4 – 66 Oracle Workflow Guide . otherwise no match is found (#NOMATCH). Jury The following table shows the custom response activity attribute value assigned to each response for a jury voting method. Response Custom Response Activity Attribute Value GUILTY NOT_GUILTY Table 4 – 8 (Page 1 of 1) 100 100 A unanimous response is required. Black Ball The following table shows the custom response activity attribute value assigned to each response for a black ball voting method. Response Custom Response Activity Attribute Value YES NO Table 4 – 7 (Page 1 of 1) 100 0 Any vote for response NO makes NO the result. 5.

See Also Vote Yes/No Activity: page 6 – 10 Defining Workflow Process Components 4 – 67 .

a Workflow Error dialog box appears. If the object you want to delete is referenced by other objects. a Workflow Error dialog box appears.Deleting Objects in Oracle Workflow Builder You can delete an object in Oracle Workflow Builder even if the object is referenced by other objects. and displays it in a validation error message when you load the process definition. Note: You can also delete an entire item type definition in Oracle Workflow Builder. 4 – 68 Oracle Workflow Guide . If you choose to delete. you can load workflow definitions with invalid foreign keys into Oracle Workflow Builder to correct. assuming the object is not protected against customizations. reporting all broken foreign key references that exist in the definition. Oracle Workflow Builder preserves the original internal name reference for any missing foreign key. As a result of this behavior. warning you about the foreign key references that will break. You can proceed to delete the object anyway or cancel the action. You can restore a broken foreign key reference in a process definition by recreating the deleted object with its original internal name under its original item type. then when you save or verify the workflow process definition.

errors may arise. 1998 and December 31. Any active work items that reference that object will continue to completion still using the same version that was in effect when the work items were initiated. 1999 or not. Changes to Oracle Workflow objects have different effects on active work items depending on whether or not the objects support versioning. whether the work items are completed before January 1. work items that are initiated between January 1. the previous definition of the object is updated and only the modified definition exists in the database.Modifying Objects in Oracle Workflow Builder Before you modify the definitions of any Workflow objects. you should ensure that your changes will not adversely affect any active work items that are based on those definitions. Any active work items that reference that object will use the modified object after the change. and end date. For a Workflow object. Note: All process definition information is versioned. the following table shows two versions of a VOTE activity that could exist simultaneously in the WF_ACTIVITIES table. begin date. distinguished only by a version number. you must take all references to the object into consideration Defining Workflow Process Components 4 – 69 . If the modified object is no longer compatible with the rest of the workflow definition used by the work item. Only new work items initiated after the change will use the new version. however. To avoid such errors. both the original version and the new version exist in the database. In the above example. 1999 will send the message New Vote Message with result options of Approve or Reject. When you modify a Workflow object that does not support versioning. Name Version Begin Date End Date Message Lookup Type Vote Vote 1 2 01–JAN–1998 01–JAN–1999 31–DEC–1998 <blank> Vote Message New Vote Message Yes/No Approval Table 4 – 9 (Page 1 of 1) When you modify a Workflow object that supports versioning. Only work items that are initiated on or after January 1. 1998 will send the message Vote Message with result options of Yes or No. For example. versioning means that either the object itself or the object that owns it supports multiple occurrences of the same object in the database.

Workflow Objects That Support Versioning The following Workflow objects support versioning: • Notifications • Functions • Events • Processes and subprocesses • Process activities (nodes) • Activity attributes • Activity attribute values • Activity transitions When you modify any of these objects in the Workflow Builder and save them to the database. you can modify any of these objects without affecting active work items that were initiated before the change. • If you update a function activity to reference a new lookup type. Note: If your situation allows. the function will be versioned. For example: • If you update a notification activity to reference a new message. 4 – 70 Oracle Workflow Guide . the notification will be versioned. Instead. the Workflow Loader does not update the existing definition of the object. As a result.when planning your changes to ensure that the changes do not cause any incompatibility. • If you update a function activity to reference a new API. This method forces the restarted work items to use the modified definitions of all Workflow objects. including those that support versioning as well as those that do not. you can avoid the risk of backward incompatibility by aborting and restarting all active work items after you make your changes. a new version of the object or owning object is created. the function will be versioned.

As a result. Note: The Workflow Builder does not support the editing of PL/SQL code. Workflow Objects That Do Not Support Versioning The following Workflow objects do not support versioning: • Item attributes • Messages • Lookups • PL/SQL code referenced by function activities When you modify any item attributes. as well as all the process activities that exist within the process. Adding a new item attribute after work items have been initiated will not affect the active work items. Oracle Workflow creates a runtime copy of each item attribute that is defined for that item type. these work items will not Defining Workflow Process Components 4 – 71 . Plan your changes carefully to ensure that the changes do not cause any backward incompatibility. the function activity will reference the updated API stored in the database. if you modify any of these objects. from a process diagram. the owning activity will be versioned. Also. the Workflow Loader updates the existing definition of the object. your changes immediately affect any active work items that reference the object. Item Attributes When a work item is initiated.• If you remove a process activity. if you modify the existing PL/SQL API for a function activity. However. The modifications in all of these examples will affect only work items that are initiated after the changes are made. The Workflow Engine refers to these runtime copies whenever an item attribute is referenced in the PL/SQL code for a function activity in the workflow process. • If you add an activity attribute to an activity. the owning process will be versioned. or node. PL/SQL code is listed as a Workflow object here solely for the purpose of explaining the consequences of changing the code referenced by a Workflow function activity. messages. or lookups in the Workflow Builder and save them to the database.

any modifications to a message body will affect notifications in active work items that were sent before the change. For example. as well as notifications that are sent after the change. The message body. without making special provisions for active work items. Note: You can. As a result.include the new item attribute unless you specifically create the attribute for them by calling the AddItemAttr() or AddItemAttributeArray APIs. the message body is referenced by the various Notification System APIs at runtime. add references to new item attributes in the API that starts a workflow process. is not copied into the notification tables. those references may cause errors in active work items that do not include the attribute. Active work items will not be affected by such changes. at runtime. however. Instead. since these work items have already passed through this code. For example. you can call the SetItemAttribute or SetItemAttributeArray APIs to populate the new item attributes at the start of the process. including the subject line and body text. the Notification System creates a notification attribute in the notification tables for every message attribute. See: PL/SQL Code: page 4 – 74. if you change the PL/SQL API for a function activity by calling a Workflow Engine API to communicate with a new item attribute. however. These modifications include: • Adding static text • Editing static text • Removing static text • Removing message attribute tokens 4 – 72 Oracle Workflow Guide . when the notification is displayed to the user. The notification attribute rows contain the variable data that will be token–replaced into the message body. the function activity will fail for active work items that do not have the new item attribute defined. You can make certain types of modifications to a message body without risking incompatibility errors. You should plan carefully when making any modifications to the existing PL/SQL code within a workflow process to ensure that you do not add references to a new item attribute without also creating the item attribute for active work items that require it. If you also add references to the new item attribute in the existing PL/SQL code within the workflow process. Messages When the Workflow Engine requests the Notification System to send a message.

you should implement the change by creating a new message rather than by modifying the existing message. However. You can attach the new message to your existing notification activity without affecting active work items. In this example. inappropriate modifications. add the token for the new attribute to the body of the new message.For example. The Notification System will not be able to resolve the reference to the new message attribute and will display the token ”&APPROVER_NAME” in the notifications instead. you should create a new message that includes the new message attribute. if you add a static sentence such as ”Please approve within five days” to a message body. However. all notifications in active work items will include the additional sentence when you access the notifications. When you save your changes. notifications that were sent before the change will not include the new message attribute Approver Name as a notification attribute. such as adding tokens for newly created message attributes. all notifications in active work items will include the new token when you access the notifications. Inappropriate modifications to lookup types may cause active work items that reference those lookup types to fail. the notification activity will be versioned. and attach the new message to your notification activity. The Notification System can display the modified message body without any errors because no further information is required to resolve the additional sentence. if you create a new message attribute such as Approver Name and you add a token for that attribute in the message body. You should plan your changes carefully to avoid errors. Lookup Types and Codes Lookup types have the following important uses in Oracle Workflow: • Determining the possible completion statuses (lookup codes) for workflow activities • Determining the possible completion statuses (lookup codes) for ’Respond’ message attributes. For example. and the incompatible token will not appear in those notifications. since notification activities support versioning. instead of modifying the original message body. may cause notifications in active work items to be displayed incorrectly. If you need to add tokens for new message attributes to a message body. Then active work items will continue to reference the old version of the notification activity. Defining Workflow Process Components 4 – 73 .

you should not attach new lookup types to existing message attributes. since activities support versioning. You can attach the new API to your existing function activity without affecting active work items. However. PL/SQL Code Although function activities support versioning. However. unless you implement versioning for your code yourself. If you need to modify an existing API and you cannot create a new API instead. users will no longer be able to choose that result code to respond to a notification. follow these guidelines for lookup types that are referenced by active work items: • Do not delete lookup types. Modifying PL/SQL code without versioning changes the business flow for active work items that reference that code. If you need to make any of the above changes. you should implement the changes by creating a new API rather than by modifying the existing API. You can attach new lookup types to existing activities without affecting active work items. Inappropriate modifications may cause these work items to fail. previous versions of the notification activity will not have branching logic modeled for the new lookup code.To avoid errors caused by backward incompatibility. the underlying PL/SQL code does not support versioning. • Do not delete lookup codes from existing lookup types. • Do not add lookup codes to existing lookup types. since Workflow messages do not support versioning. you should implement the change by creating a new lookup type rather than by modifying the existing lookup type. To prevent changes in the PL/SQL API for a function activity from affecting active work items. you should plan your changes carefully to ensure that the changes do not cause any backward incompatibility. If a user selects the new code. The following examples show some errors that can be caused by inappropriate lookup type modifications: • If you add a lookup code to a lookup type that is referenced by a ’Respond’ message attribute. the new lookup code will be available for users to select as a response to a notification. since function activities support versioning. 4 – 74 Oracle Workflow Guide . the process will enter an ’ERROR’ state. • If you delete a lookup code from a lookup type that is referenced by a ’Respond’ message attribute.

Otherwise. the function activity will fail for active work items which do not have the new item attribute defined. call AddItemAttr() or one of the AddItemAttributeArray APIs. Otherwise.GetItemAttrEvent To create copies of a new item attribute for active work items.SetItemAttrNumberArray • wf_engine.GetItemAttrDate • wf_engine. write and execute a custom upgrade script that creates and populates the new item attribute for any active work items that reference that API. the process will enter an ’ERROR’ state when that value is returned. You can place this call either in a custom upgrade script or in an exception handler. • Upgrade script – Before you modify your API. Also.SetItemAttrDate • wf_engine.SetItemAttrNumber • wf_engine. such as ’Default. you must implement the change in a new API and update the process to model branching logic for the additional return value.’ that the Workflow Engine can follow when the API returns that value. If there is no appropriate outgoing transition.SetItemAttrText • wf_engine. you should ensure that you also create the new item attribute for active work items. if you change the existing PL/SQL API for a function activity by calling a Workflow Engine API to communicate with a new item attribute.GetItemAttrNumber • wf_engine.SetItemAttrDateArray • wf_engine.For example.GetItemAttrText • wf_engine. The following example shows one way to structure an upgrade script. you should first ensure that the function activity node has an outgoing transition.SetItemAttrEvent • wf_engine. if you plan to add a lookup code to the group of values that an API can return. Defining Workflow Process Components 4 – 75 .SetItemAttrTextArray • wf_engine. Calls to any of the following APIs with newly created item attributes as parameters may cause the function activity to fail if active work items do not have the item attributes defined: • wf_engine.

add an exception handler to create and populate the attribute when the attribute does not already exist. ’<new_attribute_name>’). procedure <procedure_name>( itemtype in varchar2. • Exception handler – After the reference to the new item attribute in your modified API. wf_engine. end loop. result in out varchar2) is begin –– –– RUN mode – normal process execution –– if (funcmode = ’RUN’) then –– your run code goes here null. itemkey. The following example shows one way to structure such an exception handler. ’<Existing attribute value>’). 4 – 76 Oracle Workflow Guide . funcmode in varchar2. itemkey. Note: Active work items are identified as those items for which WF_ITEMS. ’<new_attribute_name>’. wf_engine. itemkey. ’<New attribute value>’).END_DATE is null. end.for <each active work item> begin wf_engine. begin wf_engine. itemkey in varchar2.AddItemAttr(itemtype. ’<New attribute value>’). actid in number.SetItemAttrText(itemtype. itemkey. ’<existing_attribute_name>’.SetItemAttrText(itemtype.SetItemAttrText(itemtype. ’<new_attribute_name>’.

end if. –– no result needed result := ’COMPLETE’. –– example completion result := ’COMPLETE:’.setitemattrtext(itemtype.AddItemAttr(itemtype. return. ’<new_attribute_name>’. –– if (funcmode = ’CANCEL’) then –– your cancel code goes here null. wf_engine. ’<New attribute value>’). itemkey.error_name = ’WFENG_ITEM_ATTR’) then wf_engine. –– –– Other execution modes may be created in the future. exception when others then Your –– activity will indicate that it does not implement a mode Defining Workflow Process Components 4 – 77 . –– by returning null –– result := ’’. else raise. end. –– for example when a process is reset to an earlier point –– due to a loop back. end if. itemkey. end if. ’<new_attribute_name>’).exception when others then if (wf_core. –– –– CANCEL mode – activity ’compensation’ –– –– This is in the event that the activity must be undone. return. return.

itemtype. wf_core. See Also Item Attributes: page 4 – 71 4 – 78 Oracle Workflow Guide . end <procedure_name>. funcmode). itemkey.context(’<package_name>’. raise.–– The line below records this function call in the error –– system in the case of an exception. ’<procedure_name>’. to_char(actid).

T Defining a Workflow Process Diagram 5–1 .CHAPTER 5 Defining a Workflow Process Diagram his chapter tells you how to use Oracle Workflow Builder to define a workflow process diagram and how to load roles from the database so you can assign notification activities to specific roles.

as defined by the results–based transitions that originate from the completed activity. You define transitions between activities by drawing arrows from one node to the next using the secondary mouse button. The result that the activity returns when it completes then determines what the next eligible activity is. Notification. or <Timeout> transition for an activity that has a defined result type. <Any>. the process transitions to the next activity. that process activity is known as a subprocess. For an activity that completes with a result type of <None>. Each activity is a node. ”Notify Approver” with a result of ’REJECTED’ transitions to ”Reject Requisition. If a process contains a process activity in its diagram. The Workflow Engine follows a <Default> transition if no other transition matching the completion result exists.” See: Requisition Process Activities: page 15 – 15. You can also create a <Default>. double–click on the subprocess activity node in the parent Process window. The Workflow Engine follows a <Timeout> transition if the notification 5–2 Oracle Workflow Guide . any transition that you draw from it simply appears as an arrow to the next activity. event.Process Window The Process window in Oracle Workflow Builder graphically represents the activities (icons) and transitions (arrows) for a particular process. You can drag and drop activities from the navigator tree into the Process window or create activities directly in the Process window. The Workflow Engine follows an <Any> transition regardless of what completion result the activity returns. The properties for an activity node may be viewed or edited by double clicking on the node in the Process window with the select mouse button. you must associate the transition arrow that you create with one of the activity’s possible results. There is no restriction on the depth of this hierarchy. For an activity that has a defined result type. function. This allows you to include a generic activity in the process that the Workflow Engine executes in parallel with the result–specific activity. For example. To display the subprocess diagram in a Process window. and process activities make up the nodes of a process. Transitions Transitions appear as arrows in your diagram and represent the completion of one activity and the activation of another. a logical step that contributes toward the completion of a process. indicating that as long as the originating activity completes.

The On Revisit flag for an activity determines whether the activity reexecutes when it is revisited more than once. for each usage of an activity in a process. However. Creating Multiple Transitions to a Single Activity You can create multiple transitions to a single activity in a process diagram. You can also use the standard Loop Counter Defining a Workflow Process Diagram 5–3 . The Notification System sends a cancellation message to the performer only if the cancelled notification was expecting a response and the performer’s notification preference is to receive e–mail. Timeout Transitions Draw a <Timeout> transition from a notification activity to some other activity to force the process to perform the other activity if the notification activity does not complete by a specified period of time. See: Setting Up Background Workflow Engines: page 2 – 43. See: To Define Nodes in a Process: page 5 – 8. If a timed out activity does not have a <Timeout> transition originating from it. On Revisit is set initially in an activity’s Details property page. See: To Define Optional Activity Details: page 4 – 59.activity times out before completion. you may change On Revisit for that node in the activity’s Node property page. Oracle Workflow marks the activity as timed out and then cancels any notification associated with the timed out activity. Sometimes these multiple transitions indicate that there are multiple ways that the process can transition to this one node and you may want the node to execute just once. Activities can have multiple transitions for a single result to create parallel branches. In these cases. Note: You must have a background engine set up to process timed out activities. Oracle Workflow executes the error process associated with the timed out activity or its parent process(es). In other cases. It is an important flag to set for the pivot activity of a loop. See: Setting Up Background Workflow Engines: page 2 – 43. When an activity times out. the multiple transitions may indicate that the activity may be transitioned to multiple times because it is the starting point of a loop. you want the activity to be reexecuted each time it is revisited. Processing then continues along the <Timeout> transition as indicated by your process definition.

the engine runs each possible Start activity and transitions through the process until an End result is reached.activity as the initial activity in a loop to control how many times a process can transition through a loop. Processes may contain multiple branches that each have an End activity. When initiating a process. Start activities are marked with a small green arrow. If more than one Start activity qualifies. Initiating a Process A workflow process begins when an application calls the Workflow Engine CreateProcess( ) and StartProcess( ) APIs or when a Business Event System subscription sends an event to launch the process. you create a less complicated process for the engine to execute. A subprocess is started when the Workflow Engine transitions to a process activity that represents the subprocess. Suggestion: If you have multiple incoming transitions from parallel branches. and End activities by a red arrow that appear in the lower right corner of the activity node’s icon in the Process window. Define a business event. An End activity should return a result that represents the completion result of the process. The engine may execute acceptable Start activities in any order. the Workflow engine begins at the Start activity with no IN transitions (no arrows pointing to the activity). 5–4 Oracle Workflow Guide . Designating Start and End Activities Each process has to have a Start activity that identifies the beginning point of the process. See: Standard Activities: page 6 – 2. or custom join activity to merge those branches. the entire process ends even if there are parallel branches still in progress. you want to create a loop in your process. you should always use an AND. This is especially true if after merging the parallel branches. follow these steps: 1. When the Workflow Engine reaches an End activity. By using a joining activity to merge parallel branches and designating the following activity as the start of the loop. OR. See: Looping: page 8 – 10 and Loop Counter Activity: page 6 – 7. The result is one of the possible values from that process activity’s result type. You may designate any node from which it is logical to begin the process as a Start activity. To launch a workflow process using the Business Event System.

specify the workflow item type and process that you want to launch. Oracle Workflow uses the event key as the item key for the workflow process that is launched. 3. In the subscription properties. create a function that populates the correlation ID in the event message with the item key you want.2. By default. and assign that function as the subscription’s rule function. See Also Workflow Engine APIs: page 8 – 19 Raise: page 8 – 261 Managing Business Events: page 13 – 2 Diagramming a Process This section discusses how to draw and define a workflow process in the Process window: • To Add Nodes to a Workflow Process: page 5 – 6 • To Define Nodes: page 5 – 8 • To Define Event Details for an Event Node: page 5 – 12 • To Define Activity Attribute Values: page 5 – 17 • To Create and Edit a Transition: page 5 – 18 • To Display a Process Overview: page 5 – 19 • To Print a Process: page 5 – 20 • To Copy a Process Diagram to the Clipboard: page 5 – 20 • To Validate a Process Definition: page 5 – 21 Defining a Workflow Process Diagram 5–5 . Define a subscription to this business event. If you want to generate the item key based on a custom rule. Add the Raise() API to your custom application code at the point where you want to launch the workflow process.

5–6 Oracle Workflow Guide . you can do one of several things: • Double–click on a predefined process activity on the navigator tree. or process activity from the navigator tree into the Process window. Create a new node in a process by using one of the following methods: • Drag and drop a notification. 2." To Add Nodes to a Workflow Process 1. • Select a predefined process activity and press Ctrl + E. you must first display the Process window for your process activity. The activity you drag must belong to the same data store as the process you are dragging it to. event. • Use the Quick Start Wizard to create a new process activity. To begin drawing a process diagram. • Select a predefined process activity and choose Process Details from the Edit menu. To display a process window. function. A Process window opens with the name of your process in the window title. See: To Use the Quick Start Wizard: page 3 – 18.

• Choose Create Activity from the right mouse button menu while your cursor is in the Process window to create a new activity node. if the activity returns any result. You can create a new function. the label <Default> appears. appears in a ”tool–tip”–style display. If you specifically choose to show the label for such a transition. Select a value to assign to the transition. You can also select the values <Default>. You can also create a new node using the right mouse button menu. then you must first copy the item type that the activity belongs to into the same data store as the process. then a list of lookup values appears when you attempt to create a transition to the destination activity. 3. An Activities property page appears for you to select the activity for this node. or process. 7. You can also drag and drop a lookup code from the navigator tree onto an existing transition in the Process window to change the result of that transition. The Label Name. Create an arrow (transition) between two activity nodes by holding down your right mouse button and dragging your mouse from a source activity to destination activity. or if the activity times out. In the Process window. 5. no label appears on the transition. then by default. you can display information about an activity by moving your mouse over the activity. Defining a Workflow Process Diagram 5–7 . • Choose the New Function. or New Notification toolbar button to create a new activity. See: To Create and Edit a Transition: page 5 – 18.Note: If you want to drag an activity into a process. Internal Name. If you single click on an activity node in the Process window. See: To Define Nodes in a Process: page 5 – 8. respectively. New Process. The lookup code you drag and drop must belong to the same data store and same lookup type as the lookup code you replace. where the activity is in a different data store than the process you are dragging it to. notification. 4. If the source activity has no result code associated with it. Comment and Performer. event. If the source activity has a result code associated with it. or <Timeout> to define a transition to take if the activity returns a result that does not match the result of any other transition. New Event. <Any>. 6. Display Name. Oracle Workflow Builder expands the navigator tree and highlights the master activity of the node you select.

Caution: Oracle Workflow does not support reusing a subprocess activity multiple times within a process hierarchy. first select the New Function. containing multiple activity nodes and transitions.8. Note: You can also create a new node by dragging and dropping a predefined activity from the navigator tree into the process window. 4. at which point the latest setting becomes your default. 5–8 Oracle Workflow Guide . If you wish to use a subprocess more than once in a process. New Event. notification. This automatically populates the node’s property page with predefined information. Grid snap is initially turned on by default until you change the setting. Next. event. Choose one of the following methods to define the remaining information for the node. 9. Double–click on the node and skip to Step 5 to further edit its property page. and make a copy of the selection by holding down the Control or Shift key as you drag the selection to a new position in the Process window. or New Process icon from the Process window toolbar. New Notification. Open the Process window for your process activity. or process node. To create a new function. 3. 2. select the item type that you want this activity node to be associated with. • Select either the internal name or display name of a predefined activity. In the Item Type field. Oracle Workflow Builder then populates all the fields with predefined information from the master activity as shown in the Navigator window. You can select an entire region of a process diagram. click on the position within the Process window where you want to place this new node. You should turn on grid snap from the View menu to snap your activity icons to the grid when you complete your diagram. See Also Process Window Toolbar: page A – 8 " To Define Nodes in a Process 1. you must create a distinct copy of the subprocess for each instance needed. The property page for the new node appears.

choose the New button to define a new activity. To complete the following tabs of the property page. – Access—To Set the Access Level for an Object: page 4 – 18 Caution: Any changes that you make to the any of the above tabs automatically propagate to the master activity and affect all other instances of that activity. By default. Specify a Label for the node. Since an activity can be used more than once in any given process.• Alternatively. and to the Event Details tab for an event activity. Select the Node tab to specify information that is specific to this node. but if the Defining a Workflow Process Diagram 5–9 . the label name is the activity name. the Label field lets you give a unique name to the instance of this particular activity in the process. Only changes that you make to the Node and Node Attributes tabs. 5. refer to the sections listed: – Process—To Create a Process Activity: page 4 – 57 – Function—To Create a Function Activity: page 4 – 50 – Notification—To Create a Notification Activity: page 4 – 48 – Event—To Create an Event Activity: page 4 – 54 – Details—To Define Optional Activity Details: page 4 – 59 – Roles—The information in this tab is currently not supported. are local and specific to the current node activity.

activity is used more than once in the process. where N represents the ’Nth’ instance of the activity in use. . –N is appended to the activity name.

’NORMAL’ is the default if it is neither. respectively. you must pass the activity’s label name and not its activity name. Indicate if the current node is a start or end activity in your process. You may have multiple START and END nodes in your process. Attention: When you call most Oracle Workflow APIs. A Start activity is marked (Start) and has a small green arrow in its activity icon. 6. . and an End activity is marked (End) and has a red arrow in its activity icon. See: Workflow Engine APIs: page 8 – 19. by choosing ’START’ or ’End’.

an event activity with an event action of Receive. The value you enter is interpreted as a relative offset from the begin date of the activity. you can redirect the parent process to transition to a different activity. or a blocking function activity. specify whether the activity must be completed by some specified time. you must manually edit the Start/End field to be either Start or End. 7. A relative timeout value of zero means no timeout. Choose ’Relative Time’ if you want the activity to be completed by some constant relative time. You can enter any combination of days. Attention: The Start/End field is always set to Normal by default for all activity nodes. Even if you use the Standard Start or Standard End activity. 9. For a notification that requires a response. For an END node. Choose ’No Timeout’ if the activity does not have to be completed by a given time. respectively. a process activity that is a subprocess within another process. 5 – 10 Oracle Workflow Guide . See: Timeout Transitions: page 5 – 3. in the unit of MINUTES. Note that you must first create an item attribute of type number to store 8. You can provide a comment to yourself about this node. If the activity is not completed by a given time. Choose ’Item Attribute’ if you want the activity to be completed by some relative time that is computed dynamically at runtime. hours and minutes to specify when the activity times out. you must also select a value for the final process result if the overall process activity has a result type associated with it. The list of values for the final process result is derived from the lookup type specified as the process activity’s result type.

the computed timeout value and reference that predefined item attribute here. See: Item Type Attributes: page 4 – 2 and To Define an Item Type or Activity Attribute: page 4 – 8. .

or for an event activity node with an event action of Send. If you are working in a . you can override the priority assigned to the activity’s message. Oracle Workflow automatically converts the number to a priority level as follows: 1–33 = High. Note that you must first create an item attribute of type role to store the computed role name and reference that predefined item attribute here. Choose ’Constant’ to override the default priority with the new specified priority level. For a notification activity node. Choose ’Default’ to keep the default priority of the message.wft file data store without any open connection to the database. Choose ’Item Attribute’ to override the default priority with a new priority level that is dynamically determined at runtime. Note: The computed priority value can be any number between 1–99. The performer is the role to whom the notification is sent. Attention: The dynamic timeout value stored in this attribute is interpreted as a relative offset from the begin date of the activity. the role will be resolved to the appropriate role data stored in the database based on the role display name you entered. To Define an Item Type or Activity Attribute: page 4 – 8. Note: When you assign a notification to a multi–user role. 34–66=Normal. For a notification activity node. See: Item Type Attributes: page 4 – 2 and To Define an Item Type or Activity Attribute: page 4 – 8. See: Item Type Attributes: page 4 – 2. You may either select a constant role name or an item type attribute that dynamically determines the role at runtime. 11. 10. you can directly type in a valid role display name in the Performer field. and Roles: page 5 – 24. Note: If you set the Performer Type to Constant and you are connected to the database and have loaded roles from the database. you can select a constant role name from the Performer poplist. specify the performer of the activity. and 67–99=Low. the Workflow Engine keeps track of the individual from that role Defining a Workflow Process Diagram 5 – 11 . Note that you must first create an item attribute of type number to store the computed priority value and reference that predefined item attribute here. A null timeout value or a value of zero means no timeout. in the unit of MINUTES. When you upload the file to a database.

a corresponding master activity is also created under the appropriate branch in the navigator tree. If the node is a function. 5 – 12 Oracle Workflow Guide . See Also To Find an Object in the Navigator Tree: page 3 – 6 Using the Edit Button in a Property Page: page 3 – 8 " To Define Event Details for an Event Node The event action defined for the event activity determines which event details you must define for an event node. you can assign values to those activity attributes by choosing the Node Attributes tab. it is either required or optional to use an item type attribute to store or retrieve the detail information. The item type attributes you use for event details must be associated with the same item type that the event activity itself is associated with. The subprocess overlay icon identifies the node as a subprocess within the process diagram. or event activity and the activity has activity attributes. Note that you must first create item type attributes of the appropriate types before you can reference those predefined item attributes here. OK to save your changes and close the property page or Cancel to cancel your changes and close the property page. See: To Define Activity Attribute Values: page 5 – 17. 14. 13.that actually responds to the notification. If the node is an event activity. If the node is a process activity. Note: Although Oracle Workflow Builder allows you to specify a performer for any type of node activity. Oracle Workflow only considers the value of Performer for notification activity nodes. See: Item Type Attributes: page 4 – 2 and To Define an Item Type or Activity Attribute: page 4 – 8. See: To Define Event Details for an Event Node: page 5 – 12. See: Respond API: page 8 – 211. 15. then a small subprocess overlay icon appears over the upper right corner of process activity icon. Choose Apply to save your changes. 12. For each event detail. If this is a new activity you created. you can specify additional required event information by choosing the Event Details tab. the activity node appears in the position you specified in the Process window. notification. When you save and close your property page.

the Workflow Engine stores the event name.1. Display the property pages of an event activity node. See: To Create an Event Activity: page 4 – 54. enter the following event details: • Event Name—Optionally select an item type attribute of type text where you want to store the event name that the node receives. Note: When the activity receives an event. Select the Event Details tab. See: To Define Optional Activity Details: page 4 – 59. For an activity with the event action Receive. • Event Message—Optionally select an item type attribute of type event where you want to store the event message that the node receives. event key. 2. Note: The event activity can only receive events that match the event name specified as the event filter. and also sets any parameters in the event message parameter list as item type attributes for the process. Defining a Workflow Process Diagram 5 – 13 . and event message in the item type attributes you specify. • Event Key—Optionally select an item type attribute of type text where you want to store the event key that the node receives. creating new item type attributes if a corresponding attribute does not already exist for any parameter.

See: SetItemParent: page 8 – 79. the Workflow Engine automatically sets the specified process as the parent for the process that receives the event. • Event Key—Select the item type attribute of type text that contains the event key for the event that the node raises. The maximum length of the data you can enter in a text attribute is 4000 bytes.Additionally. Note: You can only raise an individual event. You cannot raise event groups. For an activity with the event action Raise. In this case. If the event data exceeds 4000 bytes. overriding any existing parent setting. the item type and item key for that process are included in the parameter list within the event message. if the event was originally raised by a Raise event activity in another workflow process. • Event Data—Optionally select an item type attribute of type text that contains the event data for the event that the node raises. enter the following event details: • Event Name—Enter the name of the event that the node raises. 3. You can either specify a constant event name or select an item type attribute of type text that dynamically determines the event name at runtime. you should assign a Generate function in the event definition to generate the 5 – 14 Oracle Workflow Guide .

4. Defining a Workflow Process Diagram 5 – 15 . If the event message is later received by another process. Note: In addition to these event details. If the event message is later received by another process. Note: The Event Name and Event Key are required for a Raise event activity. you can use the activity attributes for a Raise event activity node to specify parameters that you want to include in the parameter list for the event message. the Workflow Engine sets the event parameters as item type attributes for that process. the Workflow Engine uses that item type and item key to automatically set the process that raised the event as the parent for the process that receives the event.event data. See: SetItemParent: page 8 – 79. For an activity with the event action Send. See: To Define an Event: page 13 – 5. See: To Define Activity Attribute Values: page 5 – 17. a Raise event activity automatically sets the item type and item key for the current workflow process in the parameter list for the event message. rather than providing the event data through a text attribute. enter the following event details: • Event Message—Select the item type attribute of type event that contains the event message that the node sends. Also.

5. Note: If no correlation ID is initially specified in the event message. Specify both the agent name and the system name for the agent using the following format: <agent_name>@<system_name> You can either specify a constant Out Agent name or select an item type attribute of type text that dynamically determines the Out Agent name at runtime. If you neither specify an inbound agent nor an outbound agent.• Event Name—Optionally enter the name of the event that the node sends. Specify both the agent name and the system name for the agent using the following format: <agent_name>@<system_name> You can either specify a constant To Agent name or select an item type attribute of type text that dynamically determines the To Agent name at runtime. Oracle Workflow automatically sets the correlation ID to the item key of the process. or specify a To Agent or an Out Agent in the event details for this node. The Out Agent that you enter here overrides the previous outbound agent value in the event message. the event cannot be sent. 5 – 16 Oracle Workflow Guide . OK to save your changes and close the property page or Cancel to cancel your changes and close the property page. The event key that you enter here overrides the previous event key value in the event message. The To Agent that you enter here overrides the previous inbound agent value in the event message. • Out Agent—Optionally enter the outbound agent from which the node sends the event. you must either include a To Agent or a From Agent within the event message. The event name that you enter here overrides the previous event name value in the event message. • Event Key—Optionally select an item type attribute of type text that contains the event key of the event that the node sends. • To Agent—Optionally enter the inbound agent to which the node sends the event. Choose Apply to save your changes. Note: The Event Message is required for a Send event activity. You can either specify a constant event name or select an item type attribute of type text that dynamically determines the event name at runtime. Additionally.

1. and value of each attribute in the attributes summary region. Select the Node Attributes tab. Select an attribute. and of the actual activity parameter itself as it is defined in the PL/SQL function associated with the activity. In the Value region. 2. See: To Define an Item Type or Activity Attribute: page 4 – 8. Display the property pages of an activity node. 3. enter the value for this attribute. The value can be a constant or a value stored in an item type attribute. The attribute type is displayed along with the name. value type. Defining a Workflow Process Diagram 5 – 17 .See Also Using the Edit Button in a Property Page: page 3 – 8 Event Activity: page 4 – 45 To Create an Event Activity: page 4 – 54 " To Define Activity Attribute Values Activity attribute values for a function or notification activity are used by the PL/SQL stored procedure that the activity calls. The value you enter must match the data type of the activity attribute. description. Activity attribute values for a Raise event activity are set as parameters in the parameter list for the event message.

To create a transition between two activities. 4.. You can bring up the following menu of editing options at any time by selecting a transition with your mouse and clicking on the right mouse button: • Delete Transition—deletes the selected transition. select the transition. you cannot add or delete vertex points along the transition. use this option to change the result label on the transition. • Locked—toggles between locking and unlocking the transition from further edits. hold down your right mouse button and drag your mouse from a source activity to a destination activity. To edit a transition. Note: Overlapping transitions appear in a different color than single. You can reposition any vertex point to create a bend in the transition. If a transition is locked. but you can delete the transition. 3. 5. 2. The label snaps onto the transition. " To Create and Edit a Transition 1. You can create a transition that loops back to its source activity node in one of two ways: • Hold down your right mouse button and drag your mouse from a source activity back to itself to create a self loop. 5 – 18 Oracle Workflow Guide . non–overlapping transitions.—if the transition has a result assigned to it. To reposition a transition label. simply select the label with your mouse and drag it to its new position. create a vertex point by selecting the transition and dragging the transition as you hold down your left mouse button. To bend a transition. OK to save your changes and close the property page or Cancel to cancel your changes and close the property page. • Hidden Label—toggles between displaying and hiding the transition label. 6. • Straighten—straightens the transition by removing the extra vertex points that can cause bends in the transition. • Results.4.. An additional menu appears that lists the possible result labels you can choose. Choose Apply to save your changes.

You can resize the Overview dialog window to get a better view of the process sketch.• From a source activity node. while the bottom pane is a list of the activities in your process. To remove a single vertex point from a transition. select the vertex and drag it over another vertex to combine the two points. Add a vertex point to create a bend in the transition. Create additional vertex points as necessary to improve the visual display of the looping transition. The upper pane of the window shows a size–reduced sketch of your entire process. 7. create a transition to another arbitrary activity node. 3. Defining a Workflow Process Diagram 5 – 19 . " To Display a Process Overview 1. Then select and drag the arrowhead of the transition back to the source activity node. Place your cursor in the Process window and choose Overview from the right mouse button menu. 2. An Overview dialog window of your process appears.

enlarges it to the correct size to print and sends it to a printer. " To Copy a Process Diagram to the Clipboard 1. If your diagram is large. you must paste the image into an application that can edit bitmaps. Note: If your process diagram uses a font that the printer cannot find. 5. choose Print Diagram from the File menu or from the right mouse button menu. A cross hairs cursor that you can drag appears in the process sketch pane. 2. " To Print a Process 1. it may span more that one page when printed. The Print Diagram option captures your process diagram as a picture (metafile). Display and make the Process window containing the process you wish to copy active. Choose OK to close the dialog window and to jump to that activity in the Process window. You can also drag and double–click on the cross hairs cursor in the upper pane to close the dialog window and to jump to the resulting region in the Process window. This copies the process to the clipboard in the form of a metafile and a bitmap diagram. Single click on an activity in the lower pane to move the cross hairs cursor to that activity within the sketch. Display the Process window containing the process you wish to print. your printer driver may either substitute a similar font or not print any text. To edit a bitmap image. 5 – 20 Oracle Workflow Guide . Use the cross hairs cursor to pinpoint an area in your process that you want the Process window to display. you may get a Print dialog box that lets you scale your image down to one page for printing. you should consult the other application’s documentation on how to paste metafiles or bitmaps. depending on the printer driver you use. To paste the metafile–version or bitmap–version of the process diagram into another application window. Choose Copy Design from the Edit menu or from the right mouse button menu. 3.4. However. With the Process window selected as the active window. 2.

The following list is an example of some of the validation that the Verify command performs: • Checks that a process has at least one Start and one End activity. the activity enters an ’ERROR’ state. Choose Verify from the File menu to validate all process definitions for the currently selected data store. • Verifies that a process does not contain itself as a process activity. • For processes that reference objects from another item type. . If an activity completes with a result that is not associated with an outgoing transition. and a <Default> transition doesn’t exist for that activity. • Verifies that message attributes referenced in a message body for token substitution exist in the message definition. • Validates that a notification activity’s result type matches the lookup type defined for the message’s ’RESULT’ message attribute. • Validates that activity nodes marked as END nodes do not have any outgoing transitions. verifies that the requisite item attributes associated with the referenced item type exists. • Restricts the same subprocess from being used twice in a process. • Validates that all possible activity results are modelled as outgoing transitions." To Validate a Process Definition 1. 2.

Any change you make applies to all windows within the program. Defining a Workflow Process Diagram 5 – 21 . Modifying Fonts in Oracle Workflow Builder You can modify the font that is used by the windows in Oracle Workflow Builder. Attention: You should always validate any new process definition you create as it helps you to identify any potential problems with the definition that might prevent it from executing successfully.

5. 3. Indicate the font size to use. The Sample region shows the appearance of the font you select." To Modify Fonts 1. The shortcut can start Oracle Workflow Builder by 5 – 22 Oracle Workflow Guide . Select the Underline or Strikeout check boxes to apply that effect. This font is used for all icons in Workflow Builder. 6. Some fonts have a limited selection of font sizes. 4. Bold. 2. Choose the font style: Regular. These font settings take effect immediately and are also used the next time you start Oracle Workflow Builder. Some fonts have a limited selection of font styles. Choose OK when you are done. Choose Font from the View menu to display the Fonts properties page. Select the font to use as the label for your icons. Italic or Bold Italic. Creating a Shortcut Icon for a Workflow Process You can create a shortcut to Oracle Workflow Builder on your Windows desktop.

4.automatically connecting to a designated data store and opening specific Process windows from that data store. When you double–click on the new shortcut icon on your desktop. 5. 3. 2. Start Oracle Workflow Builder. Defining a Workflow Process Diagram 5 – 23 . Choose Open from the File menu to open a data store. the shortcut will prompt you for the password to the database. as you want it to appear on your desktop. 6. Optionally expand the Process branch and double–click on one or more process activities to open the Process windows for those processes. Enter a name for the shortcut. it automatically starts Oracle Workflow Builder opening the data store that was selected and any process windows that were open when you created the shortcut. " To Create an Oracle Workflow Builder Shortcut 1. Choose Create Shortcut from the File menu. If the data store for the shortcut is a database.

See Also To Load Roles: page 5 – 25 To Display the Directory Service in Oracle Workflow Builder: page 5 – 26 5 – 24 Oracle Workflow Guide .Roles Oracle Workflow roles are stored in the database. Currently. See: Setting Up an Oracle Workflow Directory Service: page 2 – 21 and To Define Nodes in a Process: page 5 – 8. The purpose of the Roles tab page is to give a role access to a certain object. To do so. Ad Hoc Users and Roles Oracle Workflow allows you to create new ad hoc users and roles within a workflow process. Referencing Roles in a 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. to add to your directory service. To assign a performer to a role. See: Standard API for PL/SQL Procedures Called by Function Activities: page 7 – 3 and Workflow Directory Service APIs: page 8 – 121. Note: Referencing roles in a workflow process is currently supported in Oracle Workflow Builder. 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. although the Roles tab page seen in the property pages of certain workflow objects will not be supported until a future release. but Oracle Workflow Builder can display and reference the roles stored in a database. you must initially load the roles from your Oracle Workflow database into your Oracle Workflow Builder session. You must assign that node to a performer. new workflow roles cannot be created in Oracle Workflow Builder. in the Oracle Workflow directory service. The performer can be a designated role or an item type attribute that dynamically returns a role.

The Role Selection window finds the roles you specify and displays them in the Query Results list box. Select the roles you want to load from the Query Results list and choose Add to add them to the Loaded Roles list. just choose Add All to add all the roles in the Query Results list to the Loaded Roles list." To Load Roles 1. You can enter search criteria using SQL query syntax in the Find Roles field to find a subset of roles. Load Roles from Database. as shown in the following Node property page example. Defining a Workflow Process Diagram 5 – 25 . Choose OK to load the selected roles into Oracle Workflow Builder and make them available to the workflow objects in your open item type. The workflow objects that need to reference role information contain specific fields in their property pages. 2. choose Open from the File menu to connect to the database and open your item type. Alternatively. A Role Selection window appears. Choose from the File menu. or just choose Find without specifying any search criteria to identify all roles. These fields are poplist fields that display the list of roles you loaded from the database. 3. If you are not connected to an Oracle Workflow database.

2. 5 – 26 Oracle Workflow Guide . Once you load your roles from the database in Oracle Workflow Builder. you can also choose the Edit button to the right of the field to display the property sheet of the selected role.4. When you select a role from one of these poplist fields. 5. " To Display the Directory Service in Oracle Workflow Builder 1. Note that the Directory Service branch does not currently allow you to view the participant users of a role. The Role property page that appears lists read–only information about that role. Expand the Directory Service branch in the navigator tree. any role information that the process references automatically gets loaded even if you open the process definition from a file and are not connected to the database. you can display your directory service information in the navigator tree. All the roles that you loaded from the database appear. Double–click on a role to display read–only information about that role as shown below. 3. See: To Load Roles: page 5 – 25. Note: When you reopen a saved process definition in Oracle Workflow Builder.

Defining a Workflow Process Diagram 5 – 27 .

5 – 28 Oracle Workflow Guide .

CHAPTER 6 Predefined Workflow Activities his chapter tells you how to use Oracle Workflow’s predefined activities. T Predefined Workflow Activities 6–1 .

where the activity is in a different data store than the process you are dragging it to. For more information on Oracle Applications–specific workflow activities. Now you can drag any standard activity in the wfexample data store into your process. Calls a PL/SQL procedure named WF_STANDARD. And/Or Activities In cases where multiple parallel branches transition to a single node. And Completes when the activities from all converging branches complete.ANDJOIN.wft and you want to add some standard activities into the process that are stored in wfstd. you can decide whether that node should transition forward when any of those parallel branches complete or when all of the parallel branches complete.Standard Activities Oracle Workflow provides some generic activities you can use to control your process. Suppose you are modifying a process that is stored in wfexample. Use the And activity as the node for several converging branches to ensure that all branches complete before continuing. The activities are associated with the Standard item type but can be used within any process you define. The Standard item type is automatically installed on your Oracle Workflow server. then you need to copy the Standard item type in wfstd and paste it into the wfexample data store. then you must first copy the item type that the activity belongs to into the same data store as the process. Note: If you want to drag an activity into a process.wft located on your PC in the \<ORACLE_HOME>\Wf\data\<language>\ subdirectory. consult the documentation or help for that specific Oracle Application product. You can also access the Standard item type from the file wfstd. First you need to open both files as data stores in Oracle Workflow Builder. 6–2 Oracle Workflow Guide . Note: Predefined activities are also available for the predefined workflows shipped with Oracle Applications and Oracle Self–Service Web Applications. Use the Or activity as the node for several converging branches to allow the process to continue whenever any one of the branches completes.wft.

Calls a PL/SQL procedure named WF_STANDARD. date. Possible values are ”Greater Than. Compare Execution Time Activity The Compare Execution Time activity provides a standard way to compare the elapsed execution time of a process with a constant test time. Date. or text string which to compare to a reference value. See: To Define Activity Attribute Values: page 5 – 17. Use to compare the value of two item type attributes of type Text. or Text. • Reference Value—an item type attribute of type Number. Predefined Workflow Activities 6–3 . dates.Or Completes when the activities from at least one converging branch complete.” ”Equal. Comparison Activities The comparison activities provide a standard way to compare two numbers. All the Comparison activities call a PL/SQL procedure named WF_STANDARD.COMPARE.” or ”Null. Use to compare the value of an item type attribute of type Number with a constant number. You can guide your workflow process based on how the value of an item type attribute compares to a given value that you set. Activity Attributes Each comparison activity has two activity attributes: • Test Value—a constant number.” if the item type attribute is null. Compare Date Compare Number Compare Text Use to compare the value of an item type attribute of type Date with a constant date. or text strings.” ”Less Than.ORJOIN. The comparison activities use the Comparison lookup type for a result code.

• Parent Type—takes as its value. the lookup codes. A value of ”Parent” compares the test time with the elapsed execution time of just the immediate parent process. – Relative Time—to pause the activity until the number of days specified in the Relative Time activity attribute passes. Activity Attributes The Compare Execution Time activity has two activity attributes: • Test Execution Time—the time. in seconds with which to compare the elapsed execution time. Activity Attributes The Wait activity has six activity attributes: • Wait Mode—use this attribute to specify how to calculate the wait.COMPAREEXECUTIONTIME. Possible values are ”Greater Than.” ”Equal. ”Root” or ”Parent”.The Compare Execution Time activity calls a PL/SQL procedure named WF_STANDARD. which can be a subprocess. Wait Activity The Wait activity pauses the process for the time you specify. You can choose one of the following wait modes: – Absolute Date—to pause the activity until the date specified in the Absolute Date activity attribute is reached.” or ”Null.” ”Less Than. You can either wait until: • a specific date • a given day of the month • a given day of the week • a period of time after this activity is encountered This activity calls the PL/SQL procedure named WF_STANDARD. A value of ”Root” compares the test time with the elapsed execution time of the current root process.WAIT. See: To Define Activity Attribute Values: page 5 – 17. The activity uses the Comparison lookup type for a result code.” if the test time is null. 6–4 Oracle Workflow Guide .

• Time of Day—The Wait activity always pauses until midnight of the time specified. For example. choose a day of the month from the list. then the activity waits until that day in the following month. • Absolute Date—If Wait Mode is set to Absolute Date. as indicated in the Day of Month activity attribute.5 for a wait time of half a day (12 hours). • Relative Time—If Wait Mode is set to Relative Time. Make sure your program issues a CompleteActivity call when it completes to resume the process at the Block activity. choose a day of the week from the list. Block Activity 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. • Day of Month—If Wait Mode is set to Day of Month. Predefined Workflow Activities 6–5 . enter an absolute date.<fraction of days>.– Day of Month—to pause the activity until a specified day of the month. See: CompleteActivity: page 8 – 69 This activity calls the PL/SQL procedure named WF_STANDARD. See: To Define Activity Attribute Values: page 5 – 17. – Day of Week—to pause the activity until a specified day of the week.BLOCK. unless you use this Time of Day activity attribute to specify a time other than midnight that the Wait activity should pause until. If the day you choose has already passed in the current week. such as the completion of a concurrent program. as indicated in the Day of Week activity attribute. If the day you choose has already passed in the current month. enter 0. • Day of Week—If Wait Mode is set to Day of Week. Use the Block activity to delay a process until some condition is met. then the activity waits until that day in the following week. enter a relative time expressed in <days>.

the activity will check the item type selector function of the process to launch for a process name.LAUNCHPROCESS. If you do not specify a value. starting at 1. • User Key—a user defined key for the process to launch. it continues to execute until completion or until one of 6–6 Oracle Workflow Guide . This activity attribute requires a value. The default is NO. so once the process is launched. • Owner—a role designated as the owner of the process to launch.Defer Thread Activity The Defer Thread activity defers the subsequent process thread to the background queue without requiring you to change the cost of each activity in that thread to a value above the Workflow Engine threshold. This activity always interrupts the process thread by causing a disconnect to occur in the current database session. Activity Attributes The Launch Process activity has six activity attributes: • Item Type—the item type of the process to launch. This activity calls the PL/SQL procedure named WF_STANDARD. Specify the item type’s internal name. even if the thread is already deferred. and n is the number of processes launched by the current process instance. where current_item_type and current_item_key identify the current process instance. • Process name—the internal name of the process to launch. Launch Process Activity The Launch Process activity lets you launch another workflow process from the current process.DEFER. the item key defaults to <current_item_type>:<current_item_key>–<n>. • Defer immediate—choose between YES or NO to determine whether the process to launch should be immediately deferred to the background engine. • Item Key—an item key for the process to launch. This activity calls the PL/SQL procedure named WF_STANDARD. If a process name is not specified.

LOOPCOUNTER. If the number of times that the Workflow Engine transitions to the Loop Counter activity is less than the value specified in Loop Limit. This activity calls the PL/SQL procedure named WF_STANDARD. The Loop Counter activity can have a result of Loop or Exit.its activities is deferred. then the process moves along the ’Exit’ transition to the designated activity. you can include a Loop Counter activity as the initial activity in a loop. If the number of times that the Workflow Engine transitions to the Loop Counter activity exceeds the value of Loop Limit. the activity will complete with a result of Exit and the engine will take the ’Exit’ transition to an alternative activity. The value you specify for the Loop Limit activity attribute will designate the number of times the engine is allowed to traverse through the loop. If the number of visits to the Loop Counter activity exceeds the value set in Loop Limit. You can change the display name of this activity to something meaningful when you include it in a process. Loop Counter Activity Use the Loop Counter activity to limit the number of times the Workflow Engine transitions through a particular path in a process.NOOP. See: To Define Activity Attribute Values: page 5 – 17. as shown in the diagram below. Predefined Workflow Activities 6–7 . For example. Activity Attribute The Loop Counter activity has an activity attribute called Loop Limit. You can use this activity anywhere you want to place a node without performing an action. the Loop Counter activity will complete with a result of Loop and the engine will take the ’Loop’ transition to the next activity. This Loop Counter activity calls the PL/SQL procedure named WF_STANDARD. See: To Define Activity Attribute Values: page 5 – 17. Noop Activity The Noop activity acts as a place holder activity that performs no action. so that it reminds you of what you want this activity to do in the future.

End Activity The End activity marks the end of a process and does not perform any action. Start Activity The Start activity marks the start of a process and does not perform any action. once the number of visits to the Loop Counter activity exceeds the Loop Limit value. Although it is not necessary. the process moves along the ’Exit’ transition and ends. you may include it in your process diagram to visually mark the end of 6–8 Oracle Workflow Guide . Otherwise. You can use it to return a result for a completed process by specifying a Result Type for the activity. you may include it in your process diagram to visually mark the start of a process as a separate node.’ the process moves along the ’Accepted’ transition. If the result of Activity 4 is ’Accepted. Although it is not necessary. This activity calls the PL/SQL procedure named WF_STANDARD. and 4 in the loop.In this example. 3.NOOP. 2. if the result is ’Rejected.’ the process moves along the ’Rejected’ transition to return to the Loop Counter activity. If the item is rejected multiple times. the engine moves from the Loop Counter activity through Activities 1.

your process as a separate node. This activity calls the PL/SQL procedure named WF_STANDARD. Activity Attributes Use the Method activity attribute in the Role Resolution activity to specify how you want to resolve the role. A value of ”Sequential” selects a user from the role sequentially by determining the user that experienced the longest interval of time since last receiving a notification from that activity.NOOP. Notify Activity The Notify function activity lets you send a notification. This activity calls the PL/SQL procedure named WF_STANDARD. where the message being sent is determined dynamically at runtime by a prior function activity. . The Role Resolution activity selects a single user from that role and assigns the notification activity to that user. Role Resolution Activity The Role Resolution activity lets you identify a single user from a role comprised of multiple users. To use the Notify activity.ROLERESOLUTION. place the Role Resolution activity in front of a notification activity and specify the performer of that notification activity to be a role consisting of several users. you must model a prerequisite function activity into the process that selects one of several predefined messages for the Notify activity to send. A value of ”Load Balance” compares how many open notifications from that activity each qualified user has and selects the user with the fewest open notifications from that activity. See: To Define Activity Attribute Values: page 5 – 17. In a process diagram.

.

then you must copy and create your Predefined Workflow Activities 6–9 . Attention: If you want the Notify activity to send a message that requires a response. that is. the message that the function activity dynamically selects must not have a result type. it can only be an informative message that does not illicit a response. Attention: Since the Notify activity is locked against modifications at access level 0. Therefore. you cannot change the result type from its value of <None>.

The Message Name activity attribute should reference that item attribute to determine the name of the message to send. Activity Attributes The Notify activity has two activity attributes: • Message Name—the name of the predefined message to send. The results of the tally determine the activity that the process transitions to next. Note: If you want to define an activity that always sends the same message. • Expand Roles—takes as its value. Vote Yes/No Activity The Vote Yes/No activity lets you send a notification to a group of users in a role and tally the Yes/No responses from those users. you can set the performer to an item attribute that returns the name of a role at runtime. Set Expand Roles to Yes if you wish to send an individual copy of the notification message to every user in the role. If you load the roles from your database. 6 – 10 Oracle Workflow Guide . you can select a constant role as the performer. Alternatively. • Performer—the name of the role to which to send the notification message. the lookup codes ”Yes” or ”No”. classified as a notification activity. first sends a notification message to a group of users and then performs a PL/SQL post–notification function to tally the users’ responses (votes). The prerequisite function activity that determines which message to send should store the name of that message in an item attribute. you must model into your process all the possible notification results that can be returned. The Vote Yes/No activity. See: To Define Activity Attribute Values: page 5 – 17. The Notify activity calls a PL/SQL procedure named WF_STANDARD.NOTIFY.own version of the Notify activity. you should define a notification activity and not use this Notify function activity. Since any one of several messages (with response attributes) can be sent by your version of the Notify activity.

in which the result is the response with the highest number of votes. If a timeout condition occurs. See: To Define Activity Attribute Values: page 5 – 17.Activity Attributes The Vote Yes/No activity has three activity attributes: • Percent Yes—The percentage of Yes votes cast in order for the activity to complete with a result of Yes. See Also Voting Activity: page 4 – 61 Master/Detail Coordination Activities The Master/Detail coordination activities let you coordinate the flow of master and detail processes. See: Example Voting Methods: page 4 – 64 • Voting Option—specify how the votes are tallied by selecting one of three values: – ”Wait for All Votes”—the Workflow Engine waits until all votes are cast before tallying the results as a percentage of all the users notified. For example. or if none is available. Note that this option is meaningless if any of the custom response activity attributes have a blank value. If a timeout condition occurs. and does not tally any votes. If a timeout condition occurs. the Workflow Engine calculates the resulting votes as a percentage of the total votes cast before the timeout occurred. – ”Tally on Every Vote”—the Workflow Engine keeps a running tally of the cumulative responses as a percentage of all the users notified. the Workflow Engine progresses along the standard timeout transition. then the responses are tallied as a percentage of the total number of votes cast. a master process may spawn Predefined Workflow Activities 6 – 11 . raises an error. – ”Require All Votes”—the Workflow Engine evaluates the responses as a percentage of all users notified only after all votes are cast. • Percent No—The percentage of No votes cast in order for the activity to complete with a result of No Note: The values for the Percent Yes and Percent No attributes are both defined as null in order to use a Popularity voting method.

6 – 12 Oracle Workflow Guide . Activity Attributes The Wait for Flow activity contains two activity attributes: • Continuation Flow—specify whether this activity is waiting for a corresponding ”Master” or ”Detail” process to complete. To use these activities. Wait for Flow Activity Place this activity in a master or detail process to pause the flow until the other corresponding detail or master process completes a specified activity. upon completion. you want the halted process to continue. • Continuation Activity—specify the label of the activity node that must complete in the corresponding process before the current process continues. This activity calls a PL/SQL procedure named WF_STANDARD.CONTINUEFLOW. See: SetItemParent: page 8 – 79.WAITFORFLOW. Continue Flow Activity Use this activity to mark the position in the corresponding detail or master process where. One activity lets you pause a process and the other signals the halted process to continue. When you spawn a detail process from a master process in Oracle Workflow. you are in effect creating a separate process with its own unique item type and item key. You can then use the two activities described below to coordinate the flow in the master and detail processes. You define the master/detail relationship between the two processes by making a call to the Workflow Engine SetItemParent API after you call the CreateProcess API and before you call the StartProcess API when you create the detail process. Both activities contain two activity attributes that you use to identify the coordinating activity in the other process(es).detail processes that need to be coordinated such that the master process continues only when every detail process has reached a certain point in its flow or vice versa. The default value is CONTINUEFLOW. This activity calls a PL/SQL procedure named WF_STANDARD. See: To Define Activity Attribute Values: page 5 – 17. you place one activity in the master process and the other in each detail process.

the Start Detail Flows activity initiates several detail processes. Master Process Detail Process Note: You can include a Wait for Flow activity in a master process without using a Continue Flow activity in one or more of its corresponding detail process. See: To Define Activity Attribute Values: page 5 – 17. • Waiting Activity—specify the label of the activity node in the halted process that is waiting for this activity to complete. Example The following figures show an example of how these coordination activities can be used. Wait For Flow is defined to wait for all its detail processes to complete a Continue Flow activity before allowing the master process to transition to Activity 2 and finally end.Activity Attributes The Continue Flow activity contains two activity attributes: • Waiting Flow—specify whether the halted process that is waiting for this activity to complete is a ”Master” or ”Detail” flow. The master process then completes Activity 1 before it pauses at the Wait For Flow activity. The detail process itself then transitions to Activity B and finally ends. The Workflow Engine Predefined Workflow Activities 6 – 13 . When it reaches the Continue Flow activity. after the process begins with the Start activity. it signals to the Workflow Engine that the master process can now continue from the Wait For Flow activity. it completes Activity A. In the master process example. An example of one of the detail processes below shows that after the detail process begins with the Start activity.

simply continues the master process as soon as all the other detail processes that do contain a Continue Flow activity complete the Continue Flow activity. . If it does not matter when any of the detail processes complete before a master process continues (or when a master process completes before all the detail processes continue). then you simply omit both of the coordination activities from your master/detail processes.

If you set Administration Mode to 6 – 14 Oracle Workflow Guide . Depending on the item attribute’s format type. This activity calls the PL/SQL procedure named WF_STANDARD. Numeric Value. Activity Attributes The Get Monitor URL activity has two activity attributes: • Item Attribute—choose the name of the item attribute that you want to use to store the URL for the Workflow Monitor window. Assign Activity Attention: If you include a Continue Flow activity in a process. This activity calls the PL/SQL procedure named WF_STANDARD.ASSIGN. you must also include a Wait for Flow activity in its corresponding master or detail process as defined by the activity attributes in the Continue Flow activity. • Administration Mode—determine how the URL displays the Workflow Monitor window. Get Monitor URL Activity The Get Monitor URL activity generates the URL for the Workflow Monitor diagram window and stores it in an item attribute that you specify. or Text Value activity attribute to specify the value that you want to assign to the item attribute. Activity Attributes The Assign activity has an activity attribute called Item Attribute. use the Date Value.GETURL. The Assign activity lets you assign a value to an item attribute. Use Item Attribute to choose the item attribute that you want to assign a value to.

enter the name of the parameter whose value you want to retrieve.” ”To Agent Name.” ”Correlation ID. • Item Attribute—the item attribute where you want to store the event property value.” ”Event Name.” ”Send Date. This activity calls Predefined Workflow Activities 6 – 15 . • Property—the event property whose value you want to retrieve. otherwise it displays the Workflow Monitor in ’USER’ mode. This activity calls the PL/SQL procedure named WF_STANDARD.” See: Event Message Structure: page 8 – 242.” ”From Agent Name. • Event Parameter—if you choose the Event Parameter property in the Property attribute.” ”To Agent. Get Event Property Activity The Get Event Property activity lets you retrieve a property of an event message from the Business Event System and store the property value in an item attribute. See: To Define Activity Attribute Values: page 5 – 17. the URL displays the Workflow Monitor in ’ADMIN’ mode. Possible values are ”Priority. Set Event Property Activity The Set Event Property activity lets you set the value of a property in an event message from the Business Event System. See: To Define Activity Attribute Values: page 5 – 17.” ”From Agent.” ”Event Key.GETEVENTPROPERTY. This attribute takes as its value a lookup code from the Event Property lookup type.” ”Event Parameter.”Yes”.” and ”To Agent System.” ”Receive Date.” ”From Agent System. Oracle Workflow uses this name to identify the parameter within the event message’s parameter list. If you choose any property other than Event Parameter. Activity Attributes The Get Event Property activity has four activity attributes: • Event—choose the item attribute of type event that contains the event message from which you want to retrieve a property. leave this attribute blank.

• Numeric Value—the value of type number that you want to set for the event property.” ”Event Key.” ”From Agent System. From Agent Name. Possible values are ”Priority.” ”Event Parameter.” ”Send Date. This attribute takes as its value a lookup code from the Event Property lookup type. Compare Event Property Activity The Compare Event Property activity lets you compare a property of an event message from the Business Event System with a test value that 6 – 16 Oracle Workflow Guide .” ”Receive Date. Note: You must enter the value to set in the activity attribute that matches the data type of the event property you choose.” ”To Agent Name. • Text Value—the value of type text that you want to set for the event property. Event Key. Oracle Workflow uses this name to identify the parameter within the event message’s parameter list. Activity Attributes The Set Event Property activity has six activity attributes: • Event—choose the item attribute of type event that contains the event message whose property you want to set. • Property—the event property whose value you want to set.” ”Event Name.SETEVENTPROPERTY.” ”From Agent.” ”From Agent Name. or To Agent System property. Event Name. enter the name of the parameter whose value you want to set. if you choose the Send Date or Receive Date property. if you choose the Correlation ID. From Agent System. To Agent Name. if you choose the Priority property. Event Parameter. • Event Parameter—if you choose the Event Parameter property in the Property attribute. If you choose any property other than Event Parameter.” ”To Agent.” ”Correlation ID. • Date Value—the value of type date that you want to set for the event property.” and ”To Agent System.” See: Event Message Structure: page 8 – 242.the PL/SQL procedure named WF_STANDARD. leave this attribute blank. See: To Define Activity Attribute Values: page 5 – 17.

” ”From Agent. if you choose the Correlation ID. You can guide your workflow process based on how the event property value compares to the test value.” ”Event Name.” ”Event Parameter. Oracle Workflow uses this name to identify the parameter within the event message’s parameter list.” See: Event Message Structure: page 8 – 242. • Date Value—the test value of type date with which to compare the event property value.” ”From Agent Name. enter the name of the parameter whose value you want to compare to a test value.” ”Correlation ID. To Agent Name. From Agent Name.” ”Event Key. Possible values are ”Greater Than. See: To Define Activity Attribute Values: page 5 – 17. This activity calls the PL/SQL procedure named WF_STANDARD. If you choose any property other than Event Parameter.” ”To Agent Name. if you choose the Send Date or Receive Date property. Event Name. if you choose the Priority property. leave this attribute blank.COMPAREEVENTPROPERTY. If Predefined Workflow Activities 6 – 17 .” ”From Agent System.” and ”To Agent System. • Property—the event property whose value you want to compare to a test value. This attribute takes as its value a lookup code from the Event Property lookup type.” ”Less Than.” ”Send Date. Note: You must enter the test value in the activity attribute that matches the data type of the event property you choose. The Compare Event Property activity uses the Comparison lookup type for a result code.” or ”Null. Possible values are ”Priority.” ”Receive Date. Event Parameter.” ”Equal. • Event Parameter—if you choose the Event Parameter property in the Property attribute. Event Key. Activity Attributes The Compare Event Property activity has six activity attributes: • Event—choose the item attribute of type event that contains the event message whose property you want to compare to a test value.” ”To Agent.you specify. • Numeric Value—the test value of type number with which to compare the event property value. • Text Value—the test value of type text with which to compare the event property value.” if the test activity attribute value is null. or To Agent System property. From Agent System.

You must then run a background engine to process the ’Inbound’ queue and complete the function activity. it places an entry on the ’Outbound’ queue. • Tag—the tag set within the event message from which you want to retrieve data. Specify the tag set in XPath notation. This functionality is currently only available for the standalone version of Oracle Workflow. XML Get Tag Value Activity Use the XML Get Tag Value activity to retrieve data from the contents of an event message from the Business Event System. See: Setting Up the Java Function Activity Agent: page 2 – 86 and Setting Up Background Engines: page 2 – 43. The XML Get Tag Value activity calls the external Java function named oracle.you enter the test value in an inappropriate activity attribute. you must run the Java Function Activity Agent. which calls the appropriate Java function and places the result on the ’Inbound’ queue. Note: When the Workflow Engine encounters an external Java function activity. This activity retrieves the data contained within a particular XML tag set in the event message and stores the data in an item attribute that you specify.XMLGetTagValue.fnd. the Compare Event Property activity returns the ”Null” result code.” The notation // indicates that the 6 – 18 Oracle Workflow Guide . To continue executing the activity. for an XML document containing a purchase order.apps. For example. Activity Attributes The XML Get Tag Value activity has three activity attributes: • Event—choose the item attribute of type event that contains the event message from which you want to retrieve data.wf. the XML path for the order number tag could be specified in the following format: /order/header/ordernumber The following example path locates the ITEMNO node on the third line of the purchase order document: /order/orderlines/line[3]/itemno The following example path locates the COST node on the second line of the purchase order document whose currency attribute is set to ”AUD.

it places an entry on the ’Outbound’ queue. See: To Define Activity Attribute Values: page 5 – 17. XML Compare Tag Value Activities Use the XML Compare Tag Value activities to compare data from an event message received through the Business Event System with a test value. You must then run a background engine to process the ’Inbound’ queue and complete the function activity. or text where you want to store the data. number.apps. • Item Attribute—choose the item attribute of type date. Predefined Workflow Activities 6 – 19 . This functionality is currently only available for the standalone version of Oracle Workflow. All the XML Compare Tag Value activities call the external Java function named oracle. Use this activity to compare text values. Use this activity to compare number values. you must run the Java Function Activity Agent.specified node is located among the descendants of the root node.fnd. Note: When the Workflow Engine encounters an external Java function activity. XML Compare Tag Value (Date) XML Compare Tag Value (Number) XML Compare Tag Value (Text) Use this activity to compare date values. The type of the item attribute must match the type of the data that you want to retrieve. //line[2]/cost[@currency=”AUD”] For more information. These activities compare the data contained within a particular XML tag set in the event message with the test value that you specify.XMLCompareTag. see the W3C Recommendation XML Path Language (XPath). To continue executing the activity. which calls the appropriate Java function and places the result on the ’Inbound’ queue. See: Setting Up the Java Function Activity Agent: page 2 – 86 and Setting Up Background Engines: page 2 – 43.wf.

• Tag—the tag set within the event message that contains the data you want to compare to a test value. See: To Define Activity Attribute Values: page 5 – 17. Specify the tag set in XPath notation. 6 – 20 Oracle Workflow Guide .” or ”Null. see the W3C Recommendation XML Path Language (XPath).” ”Less Than.” if the test activity attribute value is null. //line[2]/cost[@currency=”AUD”] For more information. You can guide your workflow process based on how the event message data compares to the test value.” ”Equal. or text with which to compare the event message data.Activity Attributes Each XML Compare Tag Value activity has three activity attributes: • Event—choose the item attribute of type event that contains the event message whose data you want to compare. Possible values are ”Greater Than.fnd. number. the XML path for the order number tag could be specified in the following format: /order/header/ordernumber The following example path locates the ITEMNO node on the third line of the purchase order document: /order/orderlines/line[3]/itemno The following example path locates the COST node on the second line of the purchase order document whose currency attribute is set to ”AUD. For example.XSLTTransform. for an XML document containing an order.apps. The XML Compare Tag Value activities use the Comparison lookup type for a result code. This functionality is currently only available for the standalone version of Oracle Workflow.wf. • Value—the test value of type date.” The notation // indicates that the specified node is located among the descendants of the root node. XML Transform Activity The XML Transform activity lets you apply an XML style sheet to the payload of an event message from the Business Event System. The resulting document is stored in an item attribute of type event. This activity calls the external Java function named oracle.

Predefined Workflow Activities 6 – 21 . it places an entry on the ’Outbound’ queue. You must then run a background engine to process the ’Inbound’ queue and complete the function activity. which calls the appropriate Java function and places the result on the ’Inbound’ queue. See: Setting Up the Java Function Activity Agent: page 2 – 86 and Setting Up Background Engines: page 2 – 43.Note: When the Workflow Engine encounters an external Java function activity. you must run the Java Function Activity Agent. • Stylesheet—a reference to the location of the style sheet that you want to apply. Activity Attributes The XML Transform activity has three activity attributes: • Event—choose the item attribute of type event that contains the event message you want to transform. Specify this reference as a URL. See: To Define Activity Attribute Values: page 5 – 17. • New Document—choose the item attribute of type event where you want to store the new document produced by applying the style sheet. To continue executing the activity.

wft located in the $FND_TOP/admin/import subdirectory. as defined by the Concurrent Program Status lookup type: NORMAL. It submits an Oracle Applications concurrent program from your workflow process and waits for it to complete. Execute Concurrent Program Activity The Execute Concurrent Program activity is available only in the version of Oracle Workflow embedded in Oracle Applications. WARNING. ERROR.Concurrent Manager Standard Activities Oracle Applications provides some generic activities you can use to control your process if you are using the version of Oracle Workflow embedded in Oracle Applications. You should make sure all of these results are modelled into your process diagram. The concurrent program can complete with any of the following results. CANCELLED. at which point it updates the status of the activity and returns execution of the workflow process to the background engine. or TERMINATED. You can also access this item type from the file fndwfaol. . These activities are associated with the Concurrent Manager Functions item type but can be used within any process you define: • Execute Concurrent Program Activity • Submit Concurrent Program Activity • Wait for Concurrent Program Activity The Concurrent Manager Functions item type is automatically installed on your Oracle Applications workflow server.

.

resp_appl_id) in SET_CTX mode in your Selector/Callback function. the context for your process’ item type is always set if your session is initiated from an Oracle Applications form. Attention: Generally.APPS_INITIALIZE(user_id. Oracle Applications Developer’s Guide. Attention: To use the Execute Concurrent Program activity. if an interrupt occurs in your session. resp_id. 6 – 22 Oracle Workflow Guide . However. you must ensure that the context is set by calling FND_GLOBAL. See: Standard API for an Item Type Selector or Callback Function: page 7 – 13 and FNDSQF Routine APIs. for example. you must ensure that the background engine is set up to run. due to a notification or blocking activity.

the Workflow Engine continues with the next activity in the process. • Program Short Name—Short name of the concurrent program to run. • Argument1. but does not wait for it to execute or complete. • Item Attribute Name—Optional name of the item attribute to store the concurrent program request ID. but you should only specify as many argument values as you define in the Number of Arguments activity attribute. ordered to match the correct syntax of the concurrent program.. • Number of Arguments—Number of arguments required for the concurrent program. It submits an Oracle Applications concurrent program from your workflow process.EXECUTECONCPROGRAM..The Execute Concurrent Program activity calls the standard Oracle Application Object Library API FND_WF_STANDARD. Once this activity submits a concurrent request.Argument100—Value of each concurrent program argument. Argument2. . Activity Attributes The Execute Concurrent Program activity has the following activity attributes: • Application Short Name—Short name of the application to which the concurrent program is registered. Submit Concurrent Program Activity The Submit Concurrent Program activity is available only in the version of Oracle Workflow embedded in Oracle Applications. See: To Define Activity Attribute Values: page 5 – 17.. Up to 100 arguments are allowed.

if an interrupt occurs in your session.APPS_INITIALIZE(user_id. resp_id. due to a notification or blocking activity. the context for your process’ item type is always set if your session is initiated from an Oracle Applications form. resp_appl_id) in SET_CTX mode in your Selector/Callback function. for example. Attention: Generally. you must ensure that the context is set by calling FND_GLOBAL. However. Predefined Workflow Activities 6 – 23 . See: Standard API for an Item Type Selector or Callback Function: page 7 – 13.

• Program Short Name—Short name of the concurrent program to run. • Item Attribute Name—Name of the item attribute to store the concurrent program request ID.Argument100—Value of each concurrent program argument. The concurrent program can complete with any of the following results. Wait for Concurrent Program Activity The Wait for Concurrent Program activity is available only in the version of Oracle Workflow embedded in Oracle Applications. CANCELLED. • Number of Arguments—Number of arguments required for the concurrent program. Activity Attributes The Submit Concurrent Program activity has the following activity attributes: • Application Short Name—Short name of the application to which the concurrent program is registered.The Submit Concurrent Program activity calls the standard Oracle Application Object Library API FND_WF_STANDARD. • Argument1. . Argument2. ERROR. this activity clears the block by updating the status of the activity and returning execution of the workflow process to the background engine. You should make sure all of these results are modelled into your process diagram. See: To Define Activity Attribute Values: page 5 – 17.. ordered to match the correct syntax of the concurrent program. When the concurrent program completes. but you should only specify as many argument values as you define in the Number of Arguments activity attribute. WARNING... Up to 100 arguments are allowed. as defined by the Concurrent Program Status lookup type: NORMAL.SUBMITCONCPROGRAM. If you submit a concurrent program from your workflow process. or TERMINATED. you can use the Wait for Concurrent Program activity as a means of blocking the process from further execution until the concurrent program completes.

6 – 24 Oracle Workflow Guide Attention: To use the Wait for Concurrent Program activity. you must ensure that the background engine is set up to run. .

Activity Attributes The Wait for Concurrent Program activity has one activity attribute called Request ID. See: To Define Activity Attribute Values: page 5 – 17.The Wait for Concurrent Program activity calls the standard Oracle Application Object Library API FND_WF_STANDARD. Predefined Workflow Activities 6 – 25 . which should be set to the concurrent program request ID that you are waiting for to complete.WAITFORCONCPROGRAM.

you should create your own custom error handling process in your own item type. For example. and instead rely on the error to activate an error process. that you cannot customize the error processes in the System: Error item type. If you do not model this situation into your workflow process. if a function activity can potentially encounter an error because a business prerequisite is not met. so that the workflow process can progress forward. the entire workflow 6 – 26 Oracle Workflow Guide . or event activity’s Details property page. You indicate the error handling process in your process. Oracle Workflow permits you to specify an error handling process to execute if an error is detected in your current process. Note however. You specify the internal names of both the item type that owns the error handling process and the error handling process. function. you might model your process to send a notification to an appropriate role to correct that situation if it occurs. you should try to model those situations into your workflow process definition. which contains three error processes that you can use for generic error handling in any of your processes. Oracle Workflow provides a special item type called System: Error.Default Error Process At design time. If you want to incorporate functionality that is not available in these error processes. Note: Rather than relying on an error process to handle errors due to specific business rule incompatibilities.

wft in the <drive>:\<ORACLE_HOME>\wf\Data\<Language> subdirectory.process will have an ’Error’ status and will halt until a workflow administrator handles the error. System: Error Item Type and Item Attributes To view the details of the System: Error item type. then connect to the database and select the System: Error item type or connect to a file called wferror. The System: Error item type contains the following item attributes: • Error Activity ID • Error Activity Label • Error Assigned User • Error Item Type • Error Item Key • Error User Key • Error Message • Error Name • Error Notification ID • Error Result Code • Error Stack • Error Monitor URL • Timeout Value • Event Name • Event Details • Event Message • Event Key • Event Data URL • Event Subscription • Error Type Predefined Workflow Activities 6 – 27 . choose Open from the File menu.

.These item attributes are referenced by the function. and Default Event Error Process. notification. Retry–only. and event activities that make up the error processes called Default Error Process.

you must first create them as item attributes in your process’s item type using Oracle Workflow Builder. the process is flexible enough for you to customize its behavior. The purpose of this error handling process is to: • send an administrator a notification when an error occurs in a process • provide information to the administrator about the error • allow the administrator to abort the process. By defining two item type attributes called WF_ADMINISTRATOR and ERROR_TIMEOUT in your item type that calls the Default Error Process. or resolve the problem that caused the error to occur Although you cannot customize the Default Error Process. retry the errored activity. Oracle Workflow automatically sets the above item attributes when it calls your error handling process. if you want to reference these item attributes in your error handling process. respectively. However. If these item attributes do not already exist in your process. Attention: If you create a custom error handling process in your own item type. Oracle Workflow creates them. 6 – 28 Oracle Workflow Guide . you can define who the error process sends the notification to and whether the error notification times out. Default Error Process DEFAULT_ERROR is the internal name of the Default Error Process. such as in a message.

’Notify Administrator’ Notification Activity The Notify Administrator activity sends the Default Retry Error message to a performer (the System Administrator or whatever role is Predefined Workflow Activities 6 – 29 . By checking for an item attribute called WF_ADMINISTRATOR in your errored process’s item type. System Administrator. Notify Administrator. suppose you have a requisition approval workflow and you want the purchasing administrator.’Initialize Error’ Function Activity The Initialize Error activity calls a PL/SQL procedure named WF_STANDARD. which may be PO_ADMIN. If it does not.INITIALIZEERRORS. to the role stored in WF_ADMINISTRATOR. For example. not the system administrator. the subsequent notification activity remains set to the default performer. to resolve any problems that arise from this workflow. it sets the performer of the subsequent notification activity. If it does. This procedure determines if the item type of the errored process has an item type attribute defined with an internal name of WF_ADMINISTRATOR. You can define an item attribute called WF_ADMINISTRATOR in the item type that owns your requisition approval workflow and set WF_ADMINISTRATOR to the purchasing administrator’s role. the Initialize Error activity lets you specify who you want a notification to be sent to in the case of an error in your specific process without modifying the error process.

You can perform actions such as retrying.stored in your item type’s WF_ADMINISTRATOR item attribute). calls the Retry function activity and ends the default error process. Item Type = &ERROR_ITEM_TYPE Item Key = &ERROR_ITEM_KEY User Key =&ERROR_USER_KEY Error Name = &ERROR_NAME Error Message = &ERROR_MESSAGE Error Stack = &ERROR_STACK Activity Id = &ERROR_ACTIVITY_ID Activity Label = &ERROR_ACTIVITY_LABEL Result Code = &ERROR_RESULT_CODE Notification Id = &ERROR_NOTIFICATION_ID Assigned User = &ERROR_ASSIGNED_USER &MONITOR The Notify Administrator notification activity has a dynamic timeout value assigned to it. calls the Abort function activity and ends the default error process. The subject and body of the Default Retry Error message are as follows: Subject: Error in Workflow &ERROR_ITEM_TYPE/&ERROR_ITEM_KEY &ERROR_MESSAGE Body: An Error occurred in the following Workflow. The response options and their resulting actions are: • Abort the process—executes the Error Still Active activity to verify if the error is still present and if it is. • Retry the process—executes the Error Still Active activity to verify if the error is still present and if it is. skipping or rolling back part of your process to resolve the error. • Resolved the process—ends the default error process because you addressed the errored process directly through some external means or using the embedded URL link to the Workflow Monitor. The message indicates that an error has occurred in the specified process and that a response is needed. Note: The notification message’s embedded monitor URL displays the process in error in the Workflow Monitor with full administrator privileges. It checks the item type of the errored process for 6 – 30 Oracle Workflow Guide .

If ERROR_TIMEOUT contains a null value. The purpose of the Error Still Active activity is to determine whether the errored process is still in error before continuing with the error handling. The Workflow Engine interprets the value of this attribute as a relative offset from the begin date of the activity. as modelled in the process diagram.CHECKERRORACTIVE. ’Retry’ Function Activity The Retry function activity executes the PL/SQL procedure WF_STANDARD. in the unit of MINUTES to determine the timeout value of Notify Administrator. If the errored process is no longer in error. The Error Still Active activity calls a PL/SQL procedure called WF_STANDARD. this activity returns False and the error handling process ends. a value of zero.AbortProcess API to abort the process that encountered the error.RESETERROR to clear the activity that was in error and run it again. or is not defined at all. ’Abort’ Function Activity The Abort function activity executes the PL/SQL procedure WF_STANDARD.ABORTPROCESS. See Also Workflow Core APIs: page 8 – 101 Predefined Workflow Activities 6 – 31 . If it is. which in turn calls the WF_ENGINE. ’Error Still Active’ Function Activity The Workflow Engine initiates the Error Still Active function activity if the Notify Administrator activity times out or returns Abort or Retry as a result. Error Still Active returns TRUE and the Workflow Engine takes the appropriate transition to either send another notification or abort or retry the errored process.an item type attribute whose internal name is ERROR_TIMEOUT. This procedure calls the WF_ENGINE. then Notify Administrator has no timeout.HandleError API to rerun the activity. ERROR_TIMEOUT must be an attribute of type NUMBER.

to resolve any problems that arise from this workflow. ’Initialize Error’ Function Activity The Initialize Error activity calls a PL/SQL procedure named WF_STANDARD. You can define an item attribute called WF_ADMINISTRATOR in the item type that owns your requisition approval workflow and set 6 – 32 Oracle Workflow Guide . This procedure determines if the item type of the errored process has an item type attribute defined with an internal name of WF_ADMINISTRATOR. to the role stored in WF_ADMINISTRATOR. The purpose of this error handling process is to alert an administrator when an error occurs in a process and prompt the administrator to retry the process in error. If it does not.INITIALIZEERRORS. it sets the performer of the subsequent notification activity. the subsequent notification activity remains set to the default performer. If it does. NTF with RETRY Only. For example. System Administrator.Retry–only Process RETRY_ONLY is the internal name of the Retry–only error process. By checking for an item attribute called WF_ADMINISTRATOR in your errored process’ item type. the Initialize Error activity lets you specify who you want a notification to be sent to in the case of an error in your specific process without modifying the error process. not the system administrator. suppose you have a requisition approval workflow and you want the purchasing administrator.

Item Type = &ERROR_ITEM_TYPE Item Key = &ERROR_ITEM_KEY User Key =&ERROR_USER_KEY Error Name = &ERROR_NAME Error Message = &ERROR_MESSAGE Error Stack = &ERROR_STACK Activity Id = &ERROR_ACTIVITY_ID Activity Label = &ERROR_ACTIVITY_LABEL Result Code = &ERROR_RESULT_CODE Notification Id = &ERROR_NOTIFICATION_ID Assigned User = &ERROR_ASSIGNED_USER &MONITOR The NTF with RETRY Only notification activity has a dynamic timeout value assigned to it. Note: The notification message’s embedded URL link displays the process in error in the Workflow Monitor with full administrator privileges.WF_ADMINISTRATOR to the purchasing administrator’s role. The Predefined Workflow Activities 6 – 33 . It checks the item type of the process in error for an item attribute that has an internal name called ERROR_TIMEOUT. ERROR_TIMEOUT must be an attribute of type NUMBER. The error process then transitions to the Retry function activity and ends the Retry–only error process. ’NTF with RETRY Only’ Notification Activity The NTF with RETRY Only activity sends the Retry As Only Option message to a performer (the System Administrator or whatever role is stored in your item type’s WF_ADMINISTRATOR item attribute). which may be PO_ADMIN. You can perform actions such as retrying. The subject and body of the Retry As Only Option message are as follows: Subject: Error in Workflow &ERROR_ITEM_TYPE/&ERROR_ITEM_KEY &ERROR_MESSAGE Body: An Error occurred in the following Workflow. The message indicates that an error has occurred in the specified process and prompts the administrator to retry the activity that errored. skipping or rolling back part of your process within the Workflow Monitor to resolve the error.

This procedure calls the WF_ENGINE.RESETERROR to clear the activity that was in error and run it again. a value of zero. The Error Still Active activity calls a PL/SQL procedure called WF_STANDARD. this activity returns False and the error handling process ends. as modelled in the process diagram.Workflow Engine interprets the timeout value of this attribute as a relative offset from the begin date of the activity. ’Retry’ Function Activity The Retry function activity executes the PL/SQL procedure WF_STANDARD. Error Still Active returns TRUE and the Workflow Engine transitions back to the NTF with RETRY Only notification activity to send another notification to the administrator. then NTF with RETRY Only has no timeout. If it is.CHECKERRORACTIVE. The purpose of the Error Still Active activity is to determine whether the errored process is still in error before continuing with the error handling.HandleError API to rerun the activity. or is not defined at all. ’Error Still Active’ Function Activity The Workflow Engine initiates the Error Still Active function activity if the NTF with RETRY Only activity times out. See Also Workflow Core APIs: page 8 – 101 Default Event Error Process DEFAULT_EVENT_ERROR is the internal name of the Default Event Error Process for the Business Event System. in the unit of MINUTES. If the errored process is no longer in error. If ERROR_TIMEOUT contains a null value. The purpose of this error handling process is to: • send an administrator a notification when an error or warning condition occurs during event subscription processing • provide information to the administrator about the error • allow the administrator to abort or retry the event subscription processing 6 – 34 Oracle Workflow Guide .

For this error type. the Event Manager executes default subscriptions that send the event message to the Default Event Error process. • Event Warning—A warning condition occurred. the Workflow Engine sends the Event Warning Notification. • External Event Error—An error occurred to halt subscription processing for an event received from an external source. or if an unexpected event is received. and the complete event message in item type attributes. but subscription processing continued. For this Predefined Workflow Activities 6 – 35 . ’Initialize Event Error’ Function Activity The Initialize Error activity calls a PL/SQL procedure named WF_STANDARD.INITIALIZEEVENTERROR. For instance. See: Predefined Workflow Events: page 14 – 2.’Receive Errored Queue Message’ Event Activity The Receive Errored Queue Message activity receives an event message that has encountered an error or warning condition during subscription processing. event key. This procedure determines the error type. The Receive Errored Queue Message activity stores the event name. if a subscription rule function returns an ERROR or WARNING status code.

error type. the Workflow Engine sends the Local Event Error Notification. For this error type. This message is an FYI message and does not require a response. The subject and body of the Default Event Warning message are as follows: Subject: Event WARNING : &EVENT_NAME / &EVENT_KEY Body: A Warning occurred in the following Event Subscription: &EVENT_SUBSCRIPTION Event Error Name: &ERROR_NAME Event Error Message: &ERROR_MESSAGE Event Error Stack: &ERROR_STACK Event Data: &EVENT_DATA_URL Other Event Details: &EVENT_DETAILS ’External Event Error Notification’ Activity The Workflow Engine initiates the External Event Error Notification activity when the errored event has an error type of External Event Error. and that a response is needed. 6 – 36 Oracle Workflow Guide . • Local Event Error—An error occurred to halt subscription processing for an event raised on the local system. The activity sends the Default External Event Error message to the system administrator. the system administrator can abort subscription processing on that event message. if the event data contained in an event message is corrupted. ’Event Warning Notification’ Activity The Workflow Engine initiates the Event Warning Notification activity when the errored event has an error type of Event Warning. the Workflow Engine sends the External Event Error Notification. The activity sends the Default Event Warning message to the system administrator to indicate that a warning condition has occurred during subscription processing. The response options and their resulting actions are: • Abort—aborts subscription processing and ends the Default Event Error process. For example. This message indicates that an error has occurred during subscription processing for an event received from an external source.

The subject and body of the Default External Event Error message are as follows: Subject: External Event &ERROR_TYPE : &EVENT_NAME / &EVENT_KEY Body: An Error occurred in the following Event Subscription: &EVENT_SUBSCRIPTION Event Error Name: &ERROR_NAME Event Error Message: &ERROR_MESSAGE Event Error Stack: &ERROR_STACK Event Data: &EVENT_DATA_URL Other Event Details: &EVENT_DETAILS ’Local Event Error Notification’ Activity The Workflow Engine initiates the Local Event Error Notification activity when the errored event has an error type of Local Event Error. The activity sends the Default Local Event Error message to the system administrator. The response options and their resulting actions are: • Abort—aborts subscription processing and ends the Default Event Error process. • Raise Event with Event Key—executes the Retry Process Event activity to reraise the event with only the event name and event key. and ends the Default Event Error process. This message indicates that an error has occurred during subscription processing for an event raised on the local system. the system administrator can create a subscription to handle an unexpected event and then re–enqueue the event message to trigger the new subscription. The system administrator can attempt to correct the error before re–enqueuing the event. For example. The event message is enqueued with a priority of –1 so that it will be the first message to be dequeued the next time the listener runs.• Enqueue Event—executes the Retry Process Event activity to enqueue the event message back onto the queue where it was originally received. and that a response is needed. • Raise Event with Event Key and Event Data—executes the Retry Process Event activity to reraise the event with only the event Predefined Workflow Activities 6 – 37 . and ends the Default Event Error process.

forcing the Event Manager to regenerate the event data using the event’s Generate function. • Raise Event with Event Key. The system administrator can choose the level of information to provide to the Event Manager when reraising the event. • Raise Event with Event Key—reraises a local errored event with only the event name and event key. and ends the Default Event Error process. The event message is enqueued with a priority of –1 so that it will be the first message to be dequeued the next time the listener runs.name. 6 – 38 Oracle Workflow Guide . For example. and event data. Event Data and Parameters— executes the Retry Process Event activity to reraise the event with the event name. event key. The responses that can initiate the Retry Process Event activity and their resulting actions are: • Enqueue Event—enqueues an errored external event message back onto the queue where it was originally received. the event can be reraised with only the event name and the event key. The system administrator can also attempt to correct the error before reraising the event. The subject and body of the Default Local Event Error message are as follows: Subject: Local Event &ERROR_TYPE : &EVENT_NAME / &EVENT_KEY Body: An Error occurred in the following Event Subscription: &EVENT_SUBSCRIPTION Event Error Name: &ERROR_NAME Event Error Message: &ERROR_MESSAGE Event Error Stack: &ERROR_STACK Event Data: &EVENT_DATA_URL Other Event Details: &EVENT_DETAILS ’Retry Process Event’ Function Activity The Retry Process Event activity executes the PL/SQL procedure WF_STANDARD. and ends the Default Event Error process. event data. and parameters. event key. Depending on the notification response selected by the system administrator. this procedure either re–enqueues or reraises an errored event. if an error exists in the event data that was originally provided.RETRYRAISE.

event key. Event Data and Parameters— reraises a local errored event with the event name. and parameters. See Also Workflow Core APIs: page 8 – 101 Managing Business Events: page 13 – 2 Predefined Workflow Activities 6 – 39 . event key. event data. and event data. • Raise Event with Event Key.• Raise Event with Event Key and Event Data—reraises a local errored event with only the event name.

6 – 40 Oracle Workflow Guide .

T Defining Procedures and Functions for Oracle Workflow 7–1 .CHAPTER 7 Defining Procedures and Functions for Oracle Workflow his chapter describes the standard APIs to use for Oracle Workflow PL/SQL and Java procedures and functions.

To ensure that Oracle Workflow can properly execute your custom code. follow these standard APIs when developing your procedures and functions. • Standard API for PL/SQL Procedures Called by Function Activities: page 7 – 3 • Standard API for Java Procedures Called by Function Activities: page 7 – 8 • Standard API for an Item Type Selector or Callback Function: page 7 – 13 • Standard APIs for ”PL/SQL” and ”PL/SQL CLOB” Document: page 7 – 17 • Standard API for an Event Data Generate Function: page 7 – 21 • Standard APIs for a Queue Handler: page 7 – 23 • Standard API for an Event Subscription Rule Function: page 7 – 25 7–2 Oracle Workflow Guide .Defining Procedures and Functions for Oracle Workflow Oracle Workflow lets you integrate your own custom PL/SQL and Java procedures and functions at certain points in your workflow processes and in the Business Event System.

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. .

return. actid in number. you should never commit within the PL/SQL procedure of a function activity. The example in this section is numbered with the notation 1⇒ for easy referencing. 4⇒ if ( funcmode = ’CANCEL’ ) then <your CANCEL executable statements> resultout := ’COMPLETE’. the engine performs a rollback to the savepoint. 1⇒ procedure <procedure name> (itemtype in varchar2. the Workflow Engine automatically traps ”Savepoint not allowed” errors and defers the execution of the activity to the background engine. end if. itemkey in varchar2. funcmode in varchar2. Defining Procedures and Functions for Oracle Workflow 7–3 . resultout out varchar2) is 2⇒ 3⇒ <local declarations> begin if ( funcmode = ’RUN’ ) then <your RUN executable statements> resultout := ’COMPLETE:<result>’. Attention: The Workflow Engine traps errors produced by function activities by setting a savepoint before each function activity. end if. The Workflow Engine never issues a commit as it is the responsibility of the calling application to commit. If an activity produces an unhandled exception. return. The numbers and arrows themselves are not part of the procedure. For this reason. For environments such as database triggers or distributed transactions that do not allow savepoints. 5⇒ if ( funcmode = ’RESPOND’ ) then <your RESPOND executable statements> resultout := ’COMPLETE’. and sets the activity to the ERROR status.

CONTEXT (’<package name>’. <itemkey>. <itemtype>. The string uniquely identifies the item within an item type. raise. end if. return. 6⇒ if ( funcmode = ’FORWARD’ ) then <your FORWARD executable statements> resultout := ’COMPLETE’. 7⇒ if ( funcmode = ’TRANSFER’ ) then <your TRANSFER executable statements> resultout := ’COMPLETE’. it passes four parameters to the procedure and may expect a result when the procedure completes. Item types are defined in the Oracle Workflow Builder. return. 9⇒ if ( funcmode = ’<other funcmode>’ ) then resultout := ’ ’. 11⇒ end <procedure name>. A string that represents a primary key generated by the workflow–enabled application for the item type. to_char(<actid>). end if. 7–4 Oracle Workflow Guide . 8⇒ if ( funcmode = ’TIMEOUT’ ) then <your TIMEOUT executable statements> if (<condition_ok_to_proceed>) then resultout := ’COMPLETE’. The parameters are defined here: itemtype itemkey The internal name for the item type. end if.eng_timedout. end if. end if.return. 1⇒ When the Workflow Engine calls a stored procedure for a function activity. <funcmode>). return. end if. ’<procedure name>’. else resultout := wf_engine. 10⇒ exception when others then WF_CORE. return.

The possible results are: COMPLETE:<result_code>—activity completes with the indicated result code. DEFERRED:<date>—activity is deferred to a background engine for execution until a given date. A notification ID and an assigned user can optionally be returned with this result. Other execution modes may be added in the future.date_format) resultout NOTIFIED:<notification_id>:<assigned_user>—a n external entity is notified that an action must be performed. ’TRANSFER’. 2⇒ This section declares any local arguments that are used within the procedure. then the mode can be ’RESPOND’. <date> must be of the format: to_char(<date_string>. One of the executable statements can Defining Procedures and Functions for Oracle Workflow 7–5 . ERROR:<error_code>—activity encounters an error and returns the indicated error code. The result code must match one of the result codes specified in the result type of the function activity.actid funcmode The ID number of the activity from which this procedure is called. ’TIMEOUT’. the mode is either ’RUN’ or ’CANCEL’. WAITING—activity is pending. This section contains one or more executable statements that run if the value of funcmode is ’RUN’. with a post–notification function. Note that the external entity must call CompleteActivity( ) to inform the Workflow Engine when the action completes. 3⇒ The procedure body begins in this section with an IF statement. The execution mode of the activity. waiting on another activity to complete before it completes. or ’RUN’. If the activity is a function activity. If a result type is specified in the Activities properties page for the activity in the Oracle Workflow Builder. ’FORWARD’. wf_engine. If the activity is a notification activity. this parameter represents the expected result that is returned when the procedure completes. An example is the Standard ’AND’ activity.

For example. Use this section to include execution statements that run if the value of funcmode is ’RESPOND’. See: Looping: page 8 – 10 and Loop Counter Activity: page 6 – 7. when a notification’s state changes to ’FORWARD’. it verifies whether the activity’s Loop Reset flag is set. Next. 7–6 Oracle Workflow Guide . the engine transitions through the loop in reverse order and executes each activity in ’CANCEL’ mode to clear all prior results for the activities so they can run again. For example. but this section also provides you with the chance to ’undo’ something if necessary. that is. When the Workflow Engine encounters an activity that has already run. Use this section to include execution statements that run if the value of funcmode is ’FORWARD’. The RUN mode executable statements can perform processing such as vote tallying and determine what result to return for the notification activity. a result can be ’COMPLETE:APPROVED’.return a result for the procedure. the Workflow Engine then runs the post–notification function again in RUN mode. include execution statements that validate the role to which the notification is being transferred. that is. the engine then identifies the activities that belong in that loop and sets funcmode to ’CANCEL’ for those activities. An activity can have a funcmode of ’CANCEL’ in the special case where the activity is part of a loop that is being revisited. The first activity in a loop must always have the Loop Reset flag checked in the Activities properties Detail page. that is. include execution statements that validate the response of the notification. After the Notification System completes execution of the post–notification function in RESPOND mode. For example. 5⇒ This section is needed only for post–notification functions. 7⇒ This section is needed only for post–notification functions. when a RESPOND operation is performed. include execution statements that validate the role to which the notification is being forwarded. Use this section to include execution statements that run if the value of funcmode is ’TRANSFER’. this section contains no executable statements to simply return a null value. Often. when a notification’s state changes to ’TRANSFER’. See: Post–notification functions: page 8 – 13. Note: The Workflow Engine automatically runs a post–notification function in RUN mode after the Notification System completes execution of the post–notification function in RESPOND mode. 4⇒ This section clears the activity and can contain executable statements that run if the value of funcmode is ’CANCEL’. If the flag is set. For example. 6⇒ This section is needed only for post–notification functions.

you can include logic that determines how to interpret the responses based on the current response pool and completes the activity with the appropriate result.CONTEXT( ) if an exception occurs. See: CONTEXT: page 8 – 108. For example. Defining Procedures and Functions for Oracle Workflow 7–7 . Therefore. See: Post–notification Functions: page 8 – 13 and Notification Model: 8 – 192 8⇒ This section is needed only for post–notification functions. except if the returned value looks something like ’ERROR%’. you can do one of two things: – Return ’ERROR:<errcode>’ in the resultout parameter to convert it to a generic exception with the errcode mentioned in the message. ’TRANSFER’. ’RESPOND’. – Raise an exception directly in your procedure with a more informative error message. You can include logic to test whether the workflow can proceed normally. You should also include logic to return a result of wf_engine. and ’TRANSFER’ funcmodes. 9⇒ This section handles execution modes other than ’RUN’. ’FORWARD’.Note: For ’RESPOND’.eng_timedout is returned. Model any subsequent behavior in your process diagram using a <Timeout> transition to another activity. Since your activity does not need to implement any of these other possible modes. or ’TIMEOUT’. it should simply return null. ’FORWARD’. to complete the activity so that the workflow can continue to the next activity. if a Voting activity times out before all recipients respond. so that you can include context information in the error stack to help you locate the source of an error. Use this section to include execution statements that run if a notification activity times out. Forward or Transfer operation to occur after having executed your post–notification function. ’CANCEL’.eng_timedout if the workflow cannot proceed normally. 10⇒ This section calls WF_CORE. the resultout parameter is ignored. and if so. The Workflow Engine will follow the <Timeout> transition when the result wf_engine. if you do not want the Respond. Other execution modes may be added in the future.

Java procedures that are called by function activities are implemented as classes that extend the WFFunctionAPI class. . This functionality is currently only available for the standalone version of Oracle Workflow.Standard API for Java Procedures Called by Function Activities You can create custom Java classes to be called by external Java function activities in an Oracle Workflow process. The custom Java classes should follow a standard API format so that they can be properly executed by the Oracle Workflow Java Function Activity Agent.

7–8 Oracle Workflow Guide . and sets the activity to the ERROR status. and Workflow Attribute APIs: page 8 – 90. See: Setting Up the Java Function Activity Agent: page 2 – 86. Many Workflow Engine and Notification APIs have corresponding Java methods that your Java program can call to communicate with Oracle Workflow. you should never commit within the Java procedure of a function activity. In a future release. The Java Function Activity Agent monitors this queue and calls the class indicated in the Function Name property for the function activity. See: Oracle Workflow Java Interface: page 8 – 5. When the Workflow Engine reaches an external Java function activity. If an activity produces an unhandled exception. Workflow Function APIs: page 8 – 82. See: To Create a Function Activity: page 4 – 50. For this reason. Attention: The Workflow Engine traps errors produced by function activities by setting a savepoint before each function activity. The Workflow Engine never issues a commit as it is the responsibility of the calling application to commit. See: Workflow Queue APIs: page 8 – 162. the Java Function Activity Agent enqueues the results onto the ’Inbound’ queue. just as with PL/SQL procedures. To invoke a custom Java class from within a workflow process. create an external Java function activity that calls the class. Java function activities are implemented as external procedures. the Workflow Engine places a message on the Workflow ’Outbound’ queue. When the Java procedure is complete. The WFFunctionAPI and WFAttribute classes also contain methods that your Java program can call to access item type and activity attributes. the engine performs a rollback to the savepoint. Note: These ’Outbound’ and ’Inbound’ queues are separate from the queues used for the Business Event System. this function processing will be implemented within the Business Event System using a specialized queue handler to handle dequeue and enqueue operations.

*. lIAttr = getItemAttr(”IATTR”).sql.getWFErrorStack().*.io. import oracle.fnd.jdbc.sql.common.apps.apps. The custom class files should reside on the same platform where the Java Function Activity Agent is run.math.*. The numbers and arrows themselves are not part of the procedure. you must run a background engine to process the ’Inbound’ queue and complete the function activity.apps. itemKey.*.fnd. import oracle. import java.wf. 7⇒ loadActivityAttributes(pWCtx. try { 6⇒ WFAttribute lAAttr = new WFAttribute(). the activity will remain in the DEFERRED status.After a Java procedure completes.*.*.fnd.wf. import oracle. 9⇒ <your executable statements> Defining Procedures and Functions for Oracle Workflow 7–9 . import java. WFAttribute lIAttr = new WFAttribute(). 8⇒ lAAttr = getActivityAttr(”AATTR”). however.engine.fnd. The example in this section is numbered with the notation 1⇒ for easy referencing.wf.apps. import java.BigDecimal.driver. Otherwise. You must include the JAR files containing your custom classes in your CLASSPATH to make the classes accessible to the Java Function Activity Agent. 3⇒ 4⇒ 5⇒ public class className extends WFFunctionAPI { public boolean execute(WFContext pWCtx){ ErrorStack es = pWCtx. The Java Function Activity Agent does not need to reside on the same tier as the database. actID). import oracle. itemType. import oracle. See: Setting Up Background Engines: page 2 – 43. loadItemAttributes(pWCtx). 1⇒ 2⇒ package oracle.*.

2⇒ For correct operation. 1⇒ By default.addToken(”ITEMTYPE”. } 12⇒ } } return true. Refer also to sections 5 and 11 of this API for catching exceptions.e.getMessage()).10⇒ lIAttr. return false. es. you must include the listed packages. setItemAttrValue(pWCtx. es.addMessage(”WF”.itemType).”WF_FN_ERROR”). 11⇒ } catch (Exception e) { es. 7 – 10 Oracle Workflow Guide . 3⇒ The custom Java class must extend the WFFunctionAPI class. Java classes supplied by Oracle Workflow will be in the oracle.addToken(”ITEMKEY”.wf package. The contents of the errorStack variable can be set by using the ErrorStack class within the WFContext class. es.getName()).addToken(”FUNCMODE”. This class provides class variables and methods that are essential to the operation of your function activity. They are initialized prior to the call of the boolean execute() method.addToken(”MODULE”.getClass(). then the activity status will be set to ERROR. lIAttr). es. The resultOut and the errorStack are then passed back to the Oracle Workflow Engine.itemKey).addToken(”ERRMESSAGE”.value((Object)”NEWVALUE”).fnd. es.funcMode).actID. Item types are defined in the Oracle Workflow Builder. If there is a value in this variable. The predefined class variables include: itemType The internal name for the item type.apps. This section is optional. es.toString()). The parameters that are normally supplied to a PL/SQL function activity are available to the custom class as class variables. The status of the completed activity will be set to COMPLETE unless a value is present in the errorStack variable.this.addToken(”ACTID”.

Refer also to section 11 of this API for catching exceptions. If you have not explicitly loaded the values of the attributes. The values are also loaded implicitly when you call the WFAttribute getItemAttr(String) or WFAttribute getActivityAttr(String) methods. ActID funcMode resultOut Note: Unlike the resultout for a PL/SQL procedure called by a function activity. 8⇒ The actual values of the item and activity attributes are accessed via the WFAttribute getItemAttr(String) and WFAttribute getActivityAttr(String) methods. The ID number of the activity from which this procedure is called. The status of the activity will be set automatically by the Workflow Engine depending on whether there is a value in the errorStack variable. This will be the main entry point for your Java class. They are loaded on demand. The values can be loaded explicitly with the void loadItemAttributes(WFContext) or the void loadActivityAttributes(WFContext) methods. this method should return true. Currently the only supported mode for external Java function activities is the ’RUN’ mode. they will be automatically loaded at this point. a WFAttribute class is provided. The string uniquely identifies the item within an item type.itemKey A string that represents a primary key generated by the workflow–enabled application for the item type. This section is optional. Defining Procedures and Functions for Oracle Workflow 7 – 11 . 5⇒ It is important to catch exceptions with your custom Java class and pass them back to the engine via the ErrorStack class. If a result type is specified in the Activities properties page for the activity in the Oracle Workflow Builder. The execution mode of the activity. 4⇒ The custom Java class must implement the boolean execute() method. only the result type value is required. On successful completion. 6⇒ To access item and activity attributes. the resultOut for a Java procedure does not include a status code. this parameter represents the expected result that is returned when the procedure completes. 7⇒ The values of the item attributes are not automatically available to the Java class. In the Java API.

Note that any message in the WFContext. An unsuccessful execution of the external Java function activity will return false. Usually. 12⇒ A successfully executed external Java function activity will return true. you add these executable statements after retrieving the required item and activity attribute details (section 8) and before setting item attribute values (section 10).9⇒ This section contains your own executable statements. 7 – 12 Oracle Workflow Guide . You need to set the values of the WFAttribute class with the WFAttribute. 10⇒ Setting the value of an item attribute with the void setItemAttrValue(WFContext.wErrorStack class variable will be passed back to the Workflow Engine and will cause the activity to be assigned a completion status of ERROR.value(Object) method. 11⇒ It is important to catch exceptions within your custom Java class and pass them back to the engine via the ErrorStack class. WFAttribute) method writes the value of your local WFAttribute to the database.

the selector/callback function in TEST_CTX mode lets you check if a form can be launched with the current context information just before the Notification Details web page launches a reference form. See: To View the Details of a Notification: page 10 – 19.Standard API for an Item Type Selector or Callback Function For any given item type. Oracle Workflow also supports using a callback function to reset or test item type context information. The Workflow Engine calls the selector/callback function with this command each time it encounters a new item type and item key combination. to ensure that the correct context information is always set. item_key in varchar2. If the context is incorrect. • SET_CTX—to establish any context information for an item type and item key combination that a function activity in the item type needs in order to execute. 1⇒ procedure <procedure name> (item_type in varchar2. Oracle Workflow can call the selector/callback function with the following commands: • RUN—to select the appropriate process to start when either of the following two conditions occur: – A process is not explicitly passed to WF_ENGINE.CreateProcess. The standard API for the selector/callback function is as follows. For example.CompleteActivity with no prior call to WF_ENGINE.CreateProcess. activity_id in number. This section is numbered with the notation 1⇒ for easy referencing. You can define one PL/SQL procedure that includes both selector and callback functionality by following a standard API. you can define a single function that operates as both a selector and a callback function. the form cannot be launched and a message is displayed to that effect. The numbers and arrows themselves are not part of the procedure. resultout in out varchar2) is Defining Procedures and Functions for Oracle Workflow 7 – 13 . – A process is implicitly started by WF_ENGINE. command in varchar2. A selector function is a PL/SQL procedure that automatically identifies the specific process definition to execute when a workflow is initiated for a particular item type but no process name is provided. • TEST_CTX—to determine if the current item type context information is correct before executing a function.

raise. 5⇒ if ( command = ’TEST_CTX’ ) then <your executable statements for testing the validity of the current context information> resultout := ’<TRUE or FALSE> ’. to_char(<actid>). it passes four parameters to the procedure and may expect a result when the procedure completes. end if. The string uniquely identifies the item within an item type. A string that represents a primary key generated by the workflow–enabled application for the item type. return. <itemkey>. 6⇒ if ( command = ’<other command>’ ) then resultout := ’ ’. <command>). end if. The parameters are defined here: itemtype itemkey The internal name for the item type. actid 7 – 14 Oracle Workflow Guide . end if. return. 4⇒ if ( command = ’SET_CTX’ ) then <your executable statements for establishing context information> return. 1⇒ When the Workflow Engine calls the selector/callback function. Item types are defined in the Oracle Workflow Builder.CONTEXT (’<package name>’. end if. 7⇒ exception when others then WF_CORE. The ID number of the activity that this procedure is called from. 8⇒ end <procedure name>. return.2⇒ 3⇒ <local declarations> begin if ( command = ’RUN’ ) then <your RUN executable statements> resultout := ’<Name of process to run>’. <itemtype>. ’<procedure name>’. Note that this parameter is always null if the procedure is called with the ’RUN’ command to execute the selector functionality.

The code in this section should return ’TRUE’ if the context is correct. If the function is called with ’RUN’. If the function is called with ’TEST_CTX’. This command is useful when you need to set item type context information in a database session before the activities in that session can execute as intended. which is the name of a process activity. Either ’RUN’. or ’TEST_CTX’. The Workflow Engine calls the selector/callback function with this command each time it encounters a new item type and item key combination. before executing any function activities for that combination. ’SET_CTX’. Other commands may be added in the future. 5⇒ This section contains one or more executable statements that validate item type context information if the value of command is ’TEST_CTX’. you might need to set up the responsibility and organization context for function activities that are sensitive to multi–organization data. A result may be returned depending on the command that is used to call the selector/callback function. For example. 4⇒ This section contains one or more executable statements that set item type context information if the value of command is ’SET_CTX’. Defining Procedures and Functions for Oracle Workflow 7 – 15 . If any other value is returned. For example. this callback functionality executes when the Notification Details web page is just about to launch a reference form. One of the executable statements should return a result for the procedure that reflects the process to run. Oracle Workflow assumes that this command is not implemented by the callback. 3⇒ The procedure body begins in this section with an IF statement. then the code must return ’TRUE’ if the context is correct or ’FALSE’ if the context is incorrect. For example.command The command that determines how to execute the selector/callback function. the name of the process to run must be returned through the resultout parameter. If the function is called with ’SET_CTX’. This section contains one or more executable statements that make up your selector function. The Workflow Engine calls the selector/callback function with this command to validate that the current database session context is acceptable before the Workflow Engine executes an activity. It executes if the value of command is ’RUN’. resultout 2⇒ This section declares any local arguments that are used within the procedure. then no return value is expected. a result can be ’REQUISITION_APPROVAL’.

CONTEXT( ) if an exception occurs. Since your function does not need to implement any of these other possible commands.and ’FALSE’ if the context is incorrect. If the context is incorrect. 7 – 16 Oracle Workflow Guide . it should simply return null. See: CONTEXT: page 8 – 108. 6⇒ This section handles execution modes other than ’RUN’. The raised exception is also printed in an error message in the form. so that you can include context information in the error stack to help you locate the source of an error. 7⇒ This section calls WF_CORE. you can raise an exception and place a message in the WF_CORE error system to indicate the reason the context is invalid. ’SET_CTX’ or ’TEST_CTX’ as others may be added in the future.

and Defining Procedures and Functions for Oracle Workflow 7 – 17 . document in out varchar2. Oracle Workflow supports document types called ”PL/SQL” documents and ”PL/SQL CLOB” documents. If you wish to generate the PL/SQL argument string value dynamically. create another item attribute. This is the same string as the value that you specify in the default value field of the Attribute property page for a ”PL/SQL” document (plsql:<procedure>/<document_identifier>).show_req/2034. The argument string should identify the document. A PL/SQL document represents data as a character string. message. document_type in out varchar2) The arguments for the procedure are as follows: document_id A string that uniquely identifies a document. The document–type attribute that you create tells Oracle Workflow how to construct a dynamic call to a PL/SQL procedure that generates the document. display_type in varchar2. ”PL/SQL” Documents The PL/SQL procedure that generates a PL/SQL document must have the following standard API: procedure <procedure name> (document_id in varchar2. while a PL/SQL CLOB document represents data as a character large object (CLOB).Standard APIs for ”PL/SQL” and ”PL/SQL CLOB” Documents You can integrate a document into a workflow process by defining an attribute of type document for an item type. or activity. The PL/SQL procedures that generate PL/SQL and PL/SQL CLOB documents must follow standard API formats. <procedure> should be replaced with the PL/SQL package and procedure name in the form of package. The phrase <document_identifier> should be replaced with the PL/SQL argument string that you want to pass directly to the procedure. You can embed a PL/SQL document–type message attribute in a message body to display the document in a notification. For example: plsql:po_wf.procedure.

text/html—the document is embedded inside an HTML representation of the notification as viewed from the Notification Web page. Note that the procedure can alternatively generate a plain text document. as the notification system can automatically surround plain text with the appropriate HTML tags to preserve formatting. some of the plain text document that the procedure generates may get truncated. If you include top level HTML tags accidentally. The entire e–mail message must be less than or equal to 32K. Also referred to as the 7 – 18 Oracle Workflow Guide . The outbound text buffer where the document content type is returned.SetItemAttribute API to dynamically set the PL/SQL argument string value. also referred to as the requested type: text/plain—the document is embedded inside a plain text representation of the notification as viewed from an e–mail message. The procedure must generate a HTML representation of the document of up to 32K. so depending on how large your e–mail template is. Oracle Workflow removes the tags for you when the document attribute is referenced in a message body. See: Modifying Your Message Templates: page 2 – 69.show_req/&POREQ_NUMBER. Any content type may be returned. or the HTML attachment to an e–mail message. display_type One of three values that represents the content type used for the notification presentation. ’ ’—the document is presented as a separate attachment to the notification. but should not include top level HTML tags like <HTML> or <BODY> since the HTML page that the document is being inserted into already contains these tags. Then before any activity that references this other item attribute gets executed.reference that item attribute as ”&ITEM_ATTRIBUTE” in place of the PL/SQL argument string. For example: plsql:po_wf. call the WF_ENGINE. document document_type The outbound text buffer where up to 32K of document text is returned.

show_req_clob/&POREQ_NUMBER. <procedure> should be replaced with the PL/SQL package and procedure name in the form of package. Defining Procedures and Functions for Oracle Workflow 7 – 19 .show_req_clob/2036. For example: plsqlclob:po_wf. This is the same string as the value that you specify in the default value field of the Attribute property page for a ”PL/SQL CLOB” document (plsqlclob:<procedure>/<document_identifier>). and reference that item attribute as ”&ITEM_ATTRIBUTE” in place of the PL/SQL argument string.returned type. See Also To Define a Document Attribute: page 4 – 14 ”PL/SQL CLOB” Documents The PL/SQL procedure that generates a PL/SQL CLOB document must have the following standard API: procedure <procedure name> (document_id in varchar2. If you wish to generate the PL/SQL argument string value dynamically. display_type in varchar2. document in out clob.SetItemAttribute API to dynamically set the PL/SQL argument string value. For example: plsqlclob:po_wf. call the WF_ENGINE. The phrase <document_identifier> should be replaced with the PL/SQL argument string that you want to pass directly to the procedure. document_type in out varchar2) The arguments for the procedure are as follows: document_id A string that uniquely identifies a document. The argument string should identify the document. If no type is supplied.procedure. create another item attribute. Then before any activity that references this other item attribute gets executed. then ’text/plain’ is assumed.

document document_type The outbound text buffer where the document text is returned. text/html—the document is embedded inside an HTML representation of the notification as viewed from the Notification Web page. The outbound text buffer where the document content type is returned. Note that the procedure can alternatively generate a plain text document. also referred to as the requested type: text/plain—the document is embedded inside a plain text representation of the notification. Any content type may be returned. Oracle Workflow removes the tags for you when the document attribute is referenced in a message body. See: WriteToClob: page 8 – 234. Note: You can call WF_NOTIFICATION.display_type One of three values that represents the content type used for the notification presentation. See Also To Define a Document Attribute: page 4 – 14 7 – 20 Oracle Workflow Guide . If no type is supplied. then ’text/plain’ is assumed.WriteToClob() to help build the CLOB by appending a string of character data to it. Also referred to as the returned type. but should not include top level HTML tags like <HTML> or <BODY> since the HTML page that the document is being inserted into already contains these tags. If you include top level HTML tags accidentally. The procedure must generate a HTML representation of the document. ’ ’—the document is presented as a separate attachment to the notification. as the notification system can automatically surround plain text with the appropriate HTML tags to preserve formatting.

A string generated when the event occurs within a program or application. An optional list of additional parameter name and value pairs for the event. p_parameter_list Defining Procedures and Functions for Oracle Workflow 7 – 21 . you can defer all the subscriptions that require the complete event data. and you want to return control to the calling application more quickly after raising the event. The event key uniquely identifies a specific instance of the event. and an optional parameter list. See: Deferred Subscription Processing: page 13 – 41. event key. the Event Manager checks each subscription before executing it to determine whether the subscription requires the event data. If the event data is required but is not already provided. The PL/SQL function that generates the event data must have the following standard API: function <function_name> (p_event_name in varchar2. Oracle Workflow creates a default set of event data using the event name and event key. The event data gives additional details to describe what occurred and can be structured as an XML document. Note: If the event data is required but no Generate function is defined for the event. You should specify a Generate function if the application that raises the event will not produce the event data itself. The arguments for the function are as follows: p_event_name p_event_key The internal name of the event. When an event is raised locally.Standard API for an Event Data Generate Function When you define an event in the Business Event System. you can assign the event a Generate function that can produce the complete event data from the event name. Note: If the Generate function is costly. the Event Manager calls the Generate function for the event to produce the event data. The Generate function returns the event data in character large object (CLOB) format. Then the Event Manager will not run the Generate function until those subscriptions are executed at a later time. p_event_key in varchar2 p_parameter_list in wf_parameter_list_t default null) return clob.

See Also To Define an Event: page 13 – 5 To Define an Event Subscription: page 13 – 45 Parameter List Structure: page 8 – 241 7 – 22 Oracle Workflow Guide .

The Enqueue procedure transforms the event message’s header information if necessary to enqueue the message in the format required by the queue. you can create your own custom queue handlers for queues that use other formats. Oracle Workflow provides two standard queue handlers for queues that use the WF_EVENT_T format. you must provide the following standard APIs in your package: • Enqueue() • Dequeue() See Also Event Message Structure: page 8 – 242 Agents: page 13 – 22 Setting Up the WF_EVENT_OMB_QH Queue Handler: page 2 – 100 Enqueue The Enqueue procedure in a queue handler package must enqueue an event message onto a queue associated with an outbound agent. The queue handler is a package that translates between the standard Workflow event message format defined by the WF_EVENT_T datatype and the message format required by the queue associated with the agent. you must assign the agent a queue handler. Oracle Workflow also provides a standard queue handler named WF_EVENT_OMB_QH which you can set up and use if you implement Oracle Message Broker in Oracle8i to propagate event messages between systems. Defining Procedures and Functions for Oracle Workflow 7 – 23 . the event message is enqueued on the From Agent specified within the message. If you create a custom queue handler. Additionally. You can optionally specify an override agent where you want to enqueue the event message. Otherwise. When an event message is being sent. WF_EVENT_QH for normal processing and WF_ERROR_QH for error queues. the generic WF_EVENT.Standard APIs for a Queue Handler When you define an agent in the Business Event System.Enqueue procedure determines which queue handler is associated with the specified outbound agent and calls the Enqueue procedure in that queue handler to enqueue the message.

The PL/SQL Enqueue procedure must have the following standard API: procedure enqueue (p_event in WF_EVENT_T. selecting the message to dequeue by the message priority. p_event out WF_EVENT_T). The outbound agent on whose queue the event message should be enqueued. Dequeue The Dequeue procedure in a queue handler package must dequeue an event message from the queue associated with the specified inbound agent. The PL/SQL Dequeue procedure must have the following standard API: procedure dequeue (p_agent_guid in raw. The arguments for the procedure are as follows: p_event p_out_agent_ override The event message. The event message. The procedure transforms the event message’s header information if necessary and returns the event message in the standard WF_EVENT_T structure. the WF_EVENT. the Dequeue procedure can set the date and time when the message is dequeued into the RECEIVE_DATE attribute of the event message. The arguments for the procedure are as follows: p_agent_guid The globally unique identifier of the inbound agent from whose queue the event message should be dequeued. Additionally. When an event message is being received.Listen procedure determines which queue handler to use with the specified inbound agent and calls the Dequeue procedure in that queue handler to dequeue the message. p_out_agent_override in WF_AGENT_T). p_event 7 – 24 Oracle Workflow Guide .

the Event Manager uses the event key as the correlation ID for the event message when no other correlation ID is specified. Oracle Workflow also provides some standard rule functions that you can use for testing and debugging or other purposes. If the subscription processing that you want to perform for an event includes several successive steps. Oracle Workflow provides a standard default rule function to perform basic subscription processing.AddCorrelation to add a correlation ID to the event message. including security and NLS settings. if specified in the subscription definition • Sending the event message to an agent. See: Event Subscription Rule APIs: page 8 – 279. Additionally. You can enter phase values for the subscriptions to specify the order in which they should be executed. you can choose to run a PL/SQL function called a rule function on the event message. either by calling this function within your custom rule function or by defining another subscription that uses Defining Procedures and Functions for Oracle Workflow 7 – 25 . A rule function may read from or write to the event message or perform any other database action. The default rule function includes the following actions: • Sending the event message to a workflow process. The Event Manager never issues a commit as it is the responsibility of the calling application to commit. Note: If your rule function writes to the event message.Standard API for an Event Subscription Rule Function When you define an event subscription. Custom rule functions must be defined according to a standard API. rather than creating complex specialized rule functions that cannot be reused. you can use WF_EVENT_FUNCTIONS_PKG. However. the rule function must not change the connection context in any way. you may find it advantageous to define multiple subscriptions to the event with simple rule functions that you can reuse. any subsequent subscriptions executed on the event will access the changed message. if specified in the subscription definition See: Default_Rule: page 8 – 281. If you want to specify a different correlation ID. you should never commit within a rule function. By default. You can extend your subscription processing by creating custom rule functions. This function is executed by default if no other rule function is specified for the subscription.

p_subscription_guid). you can define the workflow item type. priority.getEventName( ).setErrorInfo(p_event.Default_Rule() to include the default subscription processing that can send the event message both to a workflow process and to an agent. but if you do not use the default rule function.AddCorrelation as its rule function. p_event in out WF_EVENT_T) return varchar2 is <local declarations> begin <your executable statements> <optional code for WARNING> WF_CORE. 1⇒ 2⇒ 3⇒ 4⇒ function <function_name> (p_subscription_guid in raw. return ’ERROR’. The numbers and arrows themselves are not part of the procedure. ’ERROR’).CONTEXT(’<package name>’. ’<function name>’. you must either include the send processing in your rule function. p_event. This section is numbered with the notation 1⇒ for easy referencing. WF_EVENT. and parameters for your send processing. Any rule function can access these send attributes.getEventName( ). See: AddCorrelation: page 8 – 294. • Call WF_ENGINE. Note: When you define a subscription in the Event Manager. The standard API for a rule function is as follows. 7 – 26 Oracle Workflow Guide . or define a separate subscription that uses the default rule function to perform the send processing. WF_EVENT.Event() to send the event message to a workflow process. • Call WF_EVENT. return ’WARNING’.CONTEXT(’<package name>’. 5⇒ 6⇒ return ’SUCCESS’. ’WARNING’). out agent.setErrorInfo(p_event. p_event. to agent. you must explicitly include the send processing in your custom rule function if you want to send the event from the same subscription. ’<function name>’. as well as defining the rule function.WF_EVENT_FUNCTIONS_PKG.Send() to send the event message to an agent. workflow process name. • Call WF_RULE. If you want to send the event message to a workflow process or to an agent after running custom code on the message. p_subscription_guid). exception when others then WF_CORE.

• ERROR—An error occurred.CONTEXT( ) if a warning condition occurs. It also sets the warning information into the event message and returns the status code ’WARNING’. 6⇒ This section calls WF_CORE. Defining Procedures and Functions for Oracle Workflow 7 – 27 . it passes two parameters to the function and expects a return code when the function completes. The rule function reports a warning message using the Workflow Core error APIs and sets the warning information into the event message. 4⇒ This optional section calls WF_CORE. 5⇒ This section returns the status code ’SUCCESS’ when the rule function’s normal processing completes successfully. The Event Manager places a copy of the event message on the WF_ERROR queue. and places the event message on the WF_ERROR queue.CONTEXT( ) if an exception occurs. so that you can include context information in the error stack to help you locate the source of an error.7⇒ end. It also sets the error information into the event message and returns the status code ’ERROR’. so that you can include context information in the error stack to help you locate the source of an error. See: CONTEXT: page 8 – 108. rolls back any subscriptions already executed for the event. • WARNING—A warning condition occurred. 2⇒ This section declares any local arguments that are used within the function. The parameters are defined here: p_subscription_ guid p_event The globally unique identifier for the subscription. 3⇒ The procedure body begins in this section with one or more executable statements that make up your rule function. The function must return one of the following status codes: • SUCCESS—The rule function completed successfully. 1⇒ When the Event Manager calls the rule function. The Event Manager halts subscription processing for this event. The rule function reports an error message using the Workflow Core error APIs and sets the error information into the event message. See: CONTEXT: page 8 – 108. The event message. but subscription processing continues.

Note: If you raise an exception in the rule function. In this case the event message is not placed on the WF_ERROR queue. the Event Manager rolls back all subscription processing for the event and raises the error to the calling application. See Also To Define an Event Subscription: page 13 – 45 Event Message Structure: page 8 – 242 Workflow Core APIs: page 8 – 101 Event Subscription Rule APIs: page 8 – 279 Event(): page 8 – 75 Send(): page 8 – 265 Default_Rule(): page 8 – 281 SetErrorInfo(): page 8 – 273 7 – 28 Oracle Workflow Guide .

T Oracle Workflow APIs 8–1 . the Notification System. the Business Event System.CHAPTER 8 Oracle Workflow APIs his chapter describes the APIs for Oracle Workflow. The APIs consist of views and PL/SQL and Java functions and procedures that you can use to access the Workflow Engine. and workflow data.

Oracle Workflow Procedures and Functions Oracle Workflow supplies a list of public PL/SQL and Java procedures and functions that you can use to set up a workflow process. They are grouped within the following packages and classes: • WF_ENGINE: page 8 – 19 • WFFunctionAPI: page 8 – 82 • WFAttribute: page 8 – 90 • WF_CORE: page 8 – 101 • WF_PURGE: page 8 – 111 • WF_DIRECTORY: page 8 – 121 • WF_LDAP: page 8 – 144 • WF_PREF: page 8 – 148 • WF_MONITOR: page 8 – 149 • Oracle Workflow Views: page 8 – 157 • WF_QUEUE: page 8 – 162 • FND_DOCUMENT_MANAGEMENT: page 8 – 185 • WF_NOTIFICATIONS: page 8 – 197 • WF_EVENT: page 8 – 260 • WF_RULE: page 8 – 279 • WF_EVENT_FUNCTIONS_PKG: page 8 – 290 • WF_EVENTS_PKG: page 8 – 300 • WF_EVENT_GROUPS_PKG: page 8 – 300 • WF_SYSTEMS_PKG: page 8 – 300 • WF_AGENTS_PKG: page 8 – 300 • WF_EVENT_SUBSCRIPTIONS_PKG: page 8 – 300 8–2 Oracle Workflow Guide .

the Oracle database server is able to manage the recovery and transactional integrity of any workflow transactions that were running at the time of the failure. and in particular. The API calls that update activity states are: • CreateProcess: page 8 – 21 • StartProcess: page 8 – 28 • CompleteActivity: page 8 – 69 • CompleteActivityInternalName: page 8 – 72 • AssignActivity: page 8 – 74 • HandleError: page 8 – 77 • SuspendProcess: page 8 – 32 • ResumeProcess: page 8 – 34 • AbortProcess: page 8 – 36 Oracle Workflow APIs 8–3 . • It detects error conditions and executes error processes. Since the engine is embedded inside the Oracle database server.Overview of the Workflow Engine The Workflow Engine manages all automated aspects of a workflow process for each item. The engine changes activity states in response to an API call to update the activity. • It automatically executes function activities (execution is either immediate or deferred to a background engine) and sends notifications. determines which new activity to transition to whenever a prerequisite activity completes. The state of a workflow item is defined by the various states of all activities that are part of the process for that item. Additionally. • It maintains a history of an activity’s status. Workflow Engines can be set up as background tasks to perform activities that are too costly to execute in real time. The Workflow Engine performs the following services for a client application: • It manages the state of all activities for an item. if the Workflow server goes down for any reason. The engine is implemented in server–side PL/SQL and is activated whenever a call to a workflow procedure or function is made.

An activity may have the following status: • Active—activity is running. • Complete—activity completed normally. • Error—activity completed with error. • Waiting—activity is waiting to run. the engine attempts to execute the next activity directly.Based on the result of a previous activity. • Deferred—activity is deferred. • Suspended—activity is suspended. . • Notified—notification activity is delivered and open.

Note: The Oracle database server release 8i and higher offers autonomous transactions. as such. Oracle Workflow will not support autonomous commits in any procedure it calls directly. the engine performs a rollback to the savepoint. you will not have access to any database changes that were made in the main session but are not yet committed. For environments such as database triggers or distributed transactions that do not allow savepoints. for instance. Attention: The Workflow Engine traps errors produced by function activities by setting a savepoint before each function activity. and because you may have lock contentions with the main session. Consequently. Database updates performed by autonomous commits 8–4 Oracle Workflow Guide . you are restricted from updating workflow–specific data in an autonomous transaction. This subprocedure must be capable of being rerun. the Workflow Engine automatically traps ”Savepoint not allowed” errors and defers the execution of the activity to the background engine. By embedding the pragma AUTONOMOUS_TRANSACTION in your procedure. If you need to perform commits. For this reason. You cannot access this data because the item itself has not yet been committed. The Workflow Engine never issues a commit as it is the responsibility of the calling application to commit. then embed your SQL in a subprocedure and declare it as an autonomous block. note that Oracle Workflow handles errors by rolling back the entire procedure and setting its status to ERROR. Oracle treats this as a separate session. Additionally. you should never commit within the PL/SQL procedure of a function activity. you cannot set item attributes. and sets the activity to the ERROR status. you can perform commits and rollbacks independently of the main transaction. If an activity produces an unhandled exception.

fnd. This functionality is currently only available for the standalone version of Oracle Workflow. The Java methods directly reference the WF_ENGINE and WF_NOTIFICATION PL/SQL package procedures and views and communicate with the Oracle Workflow database through JDBC. The custom classes must follow a standard API format so that they can be properly executed by the Oracle Workflow Java Function Activity Agent. so you will need to write your own compensatory logic for error handling. The WFFunctionAPI class and the WFAttribute class also contain methods that can be called to communicate with Oracle Workflow.*.wf’. import java. The methods are defined within the EngineAPI class and the NotificationAPI class. The Oracle Workflow Java interface exposes those APIs as Java methods that can be called by any Java program to communicate with Oracle Workflow. These classes are defined in the Java package ’oracle. See: Workflow Function APIs: page 8 – 82 and Workflow Attribute APIs: page 8 – 90. in the Java package ’oracle. The custom Java classes for these activities are implemented as classes that extend the WFFunctionAPI class.math.io.sql.wf. Java programs that integrate with Oracle Workflow should include the following import statements to provide access to classes required by Oracle Workflow: import java. its Java method syntax is displayed immediately after its PL/SQL syntax in the documentation. Additionally.apps.cannot be rolled back. See: Workflow Engine APIs: page 8 – 19 and Notification APIs: page 8 – 197. For more information.fnd. see: Autonomous Transactions.*. Java functions can be incorporated within Workflow processes as external Java function activities. Oracle Workflow Java Interface The Oracle Workflow Java interface provides a means for any Java program to integrate with Oracle Workflow. See: Standard API for Java Procedures Called by Function Activities: page 7 – 8 and Function Activity: page 4 – 44. import java.apps. If a Workflow Engine or Notification API has a corresponding Java method. Oracle Workflow APIs 8–5 . The Oracle Workflow Engine and Notification APIs are accessible through public server PL/SQL packages and published views.BigDecimal.engine’. Oracle Database Concepts.

m_jdbcStr. You can retrieve the system property CHARSET to specify the character set for the database session. import oracle. WFContext ctx. } // We now have a connection to the database.fnd. import oracle.driver. password and alias.*. m_pwd.wf. import oracle. Then you must instantiate the WFContext object with the database variable.import oracle. myDB = new WFDB(m_user. if (m_charSet == null) { // cannot be null m_charSet = ”UTF8”.getConnection() == null) { // connection failed return. m_charSet).*.fnd. The WFContext object consists of database connectivity information which you instantiate and resource context information that the WFContext class instantiates. import oracle.common. Oracle Workflow Context Each Oracle Workflow Java method that accesses the database requires an input of a WFContext object.wf.getDB(). The following code excerpt shows an example of how to instantiate these objects. you must first instantiate a database variable of class WFDB with your database username.jdbc. m_conStr).sql.apps. // m_charSet is ’UTF8’ by default if (ctx.engine.fnd. m_charSet = System.*.*. WFDB myDB.apps.*. To call one of these Workflow Java APIs in your Java program.getProperty(”CHARSET”). } try { ctx = new WFContext(myDB. } catch (Exception e) { 8–6 Oracle Workflow Guide .apps. You can also optionally supply a JDBC string.

use the following commands: setenv CLASSPATH <Workflow_JAR_file_directory>/wfapi. if (m_charSet == null) { // cannot be null m_charSet = ”UTF8”.zip setenv LD_LIBRARY_PATH ${ORACLE_HOME}/lib:${LD_LIBRARY_PATH} Note: If you are using the standalone version of Oracle Workflow with Oracle9i. It calls the various Java APIs to launch the WFDEMO process. you can simply set that connection into the WFContext object. Before running the WFTest Java program. the Workflow JAR files are located in the <ORACLE_HOME>/jlib directory.jar:${ORACLE_HOME}/jdbc/ lib/classes111. make sure you define CLASSPATH and LD_LIBRARY_PATH for the Oracle JDBC implementation and a supported version of Oracle. The Java program is named WFTest. as well as the APIs to send a notification.// exit Message for this exception } If you have already established a JDBC connection. the Workflow JAR files are located in the Oracle Workflow APIs 8–7 . resume and abort the process. and delegate and transfer the notification. If you are using the version of Oracle Workflow embedded in Oracle Applications. set and get attributes and suspend.setJDBCConnection(m_conn).getProperty(”CHARSET”). as shown in the following example: WFContext ctx. For example. } ctx = new WFContext(m_charSet). set and get notification attributes. m_charSet = System. // m_charSet is ’UTF8’ by default ctx. // m_conn is a pre–established JDBC connection Sample Java Program Oracle Workflow provides an example Java program that illustrates how to call most of the Workflow Engine and Notification Java APIs. on UNIX.

wf. 8–8 Oracle Workflow Guide .fnd.apps. Additional Workflow Engine Features In addition to managing a process.<ORACLE_HOME>/wf/java/oracle/apps/fnd/wf/jar/ directory.WFTest. the Workflow Engine also supports the following features: • Completion Processing: page 8 – 8 • Deferred Processing: page 8 – 9 • Error Processing: page 8 – 10 • Looping: page 8 – 10 • Version/Effective Date: page 8 – 11 • Item Type Attributes: page 8 – 12 • Post–notification functions: page 8 – 13 • Synchronous.fnd. Note: A process as a whole can complete but still contain activities that were visited but not yet completed. The engine then attempts to execute (or mark for deferred execution) all activities that are dependent on the completed activity. Asynchronous. To initiate the WFTest program. enter the following statement on the command line: $java oracle.wf. on UNIX.apps. The source file is named WFTest. When the process as a whole completes. For example.java and is located in the <ORACLE_HOME>/wf/java/oracle/apps/fnd/wf/ directory.WFTest The source file for this program is also included in your Oracle Workflow installation so that you can view the sample code. and Forced Synchronous Processes: page 8 – 14 • Business Events: page 8 – 17 Completion Processing Engine processing is triggered whenever a process activity completes and calls the Workflow Engine API. a completed process may contain a standard Wait activity that is not complete because the designated length of time to wait has not yet elapsed. run Java against oracle. For example.

Some sites may have multiple background engines operating at different thresholds or item type specifications. The engine can be set up to operate anywhere on a continuum between processing all eligible work immediately. the Workflow Engine marks that activity with a status of ’DEFERRED’ in the workflow status tables and enqueues the deferred activity to a special queue for deferred activities. If the result of a completed activity triggers the execution of a costly function. Deferred Processing The engine has a deferred processing feature that allows long–running tasks to be handled by background engines instead of in real time. The order in which the deferred activities are processed are based on the first in. If a function activity has a cost that exceeds the main threshold cost. A special queue processor called the background engine checks and processes the activities in the ’deferred’ queue. or you may set it to be very high if the activity performs a resource–intensive operation.the Workflow Engine marks these incomplete activities as having a status of COMPLETE and a result of #FORCE. first out ordering of an activity’s enqueue time. You can set this cost to be small if the activity merely sets an item attribute. you might want to defer the execution of that costly function to a background engine. to processing nothing and marking all transitions as deferred. The Workflow Engine integrates with Oracle Advanced Queues to carry out deferred processing. See Also Activity Cost: page 4 – 47 Deferring Activities: page C – 7 Oracle Workflow APIs 8–9 . At least one background engine must be set up to run at all times. Each activity has a user–defined processing cost. Deferring the execution of activity functions to background engines allows the Workflow Engine to move forward to process other activities that are currently active. This distinction is important when you review your process status through the Workflow Monitor. to avoid tying up all background processing with long–running operations.

since the caller generally does not know how to respond to the error (in fact. If an activity produces an unhandled exception. You can use Oracle Workflow Builder to define the processing you want to occur in case of an error. the activity can only run once. Once you define an error process. The Workflow Engine can handle a revisited activity in one of three ways: • Ignore the activity. you should never commit within the PL/SQL procedure of a function activity. and attempt to deal with the error using automated rules for resetting.Error Processing Errors that occur during workflow execution cannot be directly returned to the caller. Use Oracle Workflow Builder to modify the Default Error Process associated with the System:Error item type or create your own custom error process. The first activity that gets detected as a revisited activity is also called a loop point or pivot activity. and then checking each parent process activity until an associated error process is located. See: Default Error Process: page 6 – 26. See: To Define Optional Activity Details: page 4 – 59. the caller may be a background engine with no human operator). and stop further processing of the thread. The Workflow Engine traps errors produced by function activities by setting a savepoint before each function activity. and sets the activity to the ERROR status. you can associate it with any activity. The error process is then initiated whenever an error occurs for that activity. Note: For this reason. send notifications. • Reset the loop to the loop point before reexecuting by first running logic to undo the activities within the loop. The error process can include branches based on error codes. 8 – 10 Oracle Workflow Guide . • Reexecute the loop point and all activities within the loop without running any logic. The Workflow Engine then attempts to locate an error process to run by starting with the activity which caused the error. Looping Looping occurs when the completion of an activity causes a transition to another activity that has already been completed. or skipping the failed activity. retrying. so in effect. the engine performs a rollback to the savepoint. The Workflow Engine never issues a commit as it is the responsibility of the calling application to commit.

If you set On Revisit to Loop for the pivot activity of a loop that includes an FYI notification activity. cancelling each activity and resetting its status. previous notifications remain open when the Workflow Engine reexecutes the loop and sends a new notification to the current performer of the notification activity. Version / Effective Date Certain workflow objects in a process definition are marked with a version number so that more than one version of the object can be in use at any one time. For example.Every activity has an On Revisit poplist field in its Oracle Workflow Builder Details property page. the Workflow Engine cancels the previous notification before reexecuting the loop and sending a new notification to the current performer of the notification activity. You can include compensatory logic in ”CANCEL” mode that reverses any operation performed earlier in ”RUN” mode. Cancelling an activity is similar to executing the activity. You can set the field to Ignore. but you want to first reset the status of the activities in the loop. except that the activity is executed in ”CANCEL” mode rather than ”RUN” mode. These objects are: • Activities—notifications. If you set On Revisit to Reset for the pivot activity of a loop that includes an FYI notification activity. • Traverse the list of activities. Setting On Revisit to Ignore is useful for implementing activities that should only run once. but completes after the first transition only. and processes Oracle Workflow APIs 8 – 11 . even though they can be transitioned to from multiple sources. or Loop. Reset. The On Revisit poplist lets you specify the behavior of the Workflow Engine when it revisits the activity in a workflow process. this mode allows you to implement a ”logical OR”–type of activity which is transitioned to multiple times. Loop causes the Workflow Engine to reexecute the activity in ”RUN” mode without executing any ”CANCEL” mode logic for the activity. Reset causes the Workflow Engine to do the following: • Build a list of all activities visited following the pivot activity. functions. Setting On Revisit to Reset for an activity is useful when you want to reexecute activities in a loop. Setting On Revisit to Loop for an activity is useful when you want to simply reexecute activities in a loop without resetting the status of the activities in the loop.

An effective date controls which version of a definition the engine uses when executing a process. You should avoid adding references to new activity attributes or returning result lookup codes not modelled by existing activities in your PL/SQL code. If you have a process instance that is still running and you upgrade the underlying workflow definition in your Workflow server. using the appropriate Workflow Engine APIs. Similarly.Note: Although function activities support versioning. unless implemented by your developer. If you save edits to any of the above objects to an existing file. you can save it with an immediate or future effective date. the process instance continues to run using the version of the workflow object definitions with which it was originally initiated. then the original objects are overwritten. When you define item type attributes at runtime. When you edit a process. Note that Oracle Workflow does not maintain versions for other workflow objects. • Activity attributes • Process activity nodes • Activity attribute values • Activity transitions If you edit and save any of the above objects in Oracle Workflow Builder to the database. These attributes provide information to the function and notification activities used in the processes associated with the item type. Any new process instance that is initiated always uses the version that is specified to be effective at that point in time. you can add either individual attributes or arrays containing several attributes of the same type. you can 8 – 12 Oracle Workflow Guide . See: Opening and Saving Item Types: page 3 – 12. Oracle Workflow automatically creates a new version of that object or the owning object by incrementing the version number by one. the underlying PL/SQL code does not. Any modifications that you save to the following objects overwrites the existing definition of the object: • Item attributes • Messages • Lookup types Item Type Attributes A set of item type attributes is defined at both design–time and runtime for each item.

if the post–notification function gets called in RESPOND mode. responder is Oracle Workflow APIs 8 – 13 . If the recipient responds using the Notification web page. the Workflow Engine first sets the context information to use with the function via the following two global engine variables: • WF_ENGINE. The post–notification function should be a PL/SQL procedure written to the same API standards required for function activities. or WF_ENGINE. This variable is the new role to which the notification gets forwarded/transferred.context_text = new recipient_role.context_nid = notification_ID. For example. Note: The value of responder varies depending on the notification interface the recipient uses to respond. These APIs improve performance by using the bulk binding feature in Oracle8i and higher to reduce the number of database operations. Oracle Workflow does not support individual item type attributes that consist of arrays themselves. Post–Notification Functions You can associate a post–notification function with a notification activity. Use the array APIs whenever you need to add or set the values of large numbers of item type attributes at once. When you specify a post–notification function. Note: These array APIs handle arrays that are composed of multiple item type attributes grouped together by type.context_text = responder. you can specify a post–notification function that executes when the notification recipient forwards or transfers the notification.set the values of existing attributes either individually or in arrays containing several attributes of the same type. The post–notification function could perform back–end logic to either validate the legitimacy of the forward/transfer or execute some other supporting logic. See: AddItemAttributeArray: page 8 – 46 and SetItemAttributeArray: page 8 – 53. • WF_ENGINE. The Workflow Engine executes the post–notification function in response to an update of the notification’s state after the notification is delivered. if the post–notification function gets called in FORWARD or TRANSFER mode. See: Standard API for PL/SQL Procedures Called by Function Activities: page 7 – 3.

If a notification activity times out.set to the role name of the responder. Then when the notification’s state changes. If the recipient responds via e–mail. the post–notification function can perform additional processing such as vote tallying. the Workflow Engine sets the assigned user for the notification to the new role name specified. the Workflow Engine runs the post–notification function for the activity in TIMEOUT mode. In this mode. When the post–notification function completes. FORWARD. You may reference these global engine variables in your PL/SQL function. . the Workflow Engine automatically runs the post–notification function again in RUN mode. the TIMEOUT mode logic should identify how to tally the votes received up until the timeout. the Workflow Engine erases the two global engine variables. For a Voting activity. As a final step. a notification callback function executes the post–notification function in the mode that matches the notification’s state: RESPOND. When the Notification System completes execution of the post–notification function in RESPOND mode. responder is set to ”email:responder_email_address”. or TRANSFER. if the post–notification function is run in TRANSFER mode and Expand Roles is not checked for the notification activity.

A synchronous process is a process that can be executed without 8 – 14 Oracle Workflow Guide . if the post–notification function is executed in FORWARD mode and it raises an exception because the role being forwarded to is invalid. Attention: If the post–notification function returns ERROR:<errcode> as a result or raises an exception. or transfer operation. an error is displayed to the user and the Forward operation does not get executed. the Workflow Engine aborts the respond. See Also Notification Model: page 8 – 192 Synchronous. For example. The notification recipient is then prompted again to take some type of action. and Forced Synchronous Processes A workflow process can be either synchronous or asynchronous. forward. Asynchronous.

Examples of activities that force an asynchronous process include deferred activities. such as when a deferred activity is executed. The workflow process is left in an unfinished state until it is started again. In addition to regular synchronous and asynchronous processes. the user does not have to wait for the process to complete to continue using the application. For example. blocking activities. such as when an event message is dequeued from an inbound queue and sent to the workflow process. However.interruption from start to finish. no audit trail is recorded. Rather than waiting indefinitely when it encounters one of these activities. such as when a user responds to a notification. notifications with responses. However. in Oracle Applications. The Workflow Engine does not return control to the calling application that initiated the workflow until it completes the process. such as function activities that are not deferred to the background engine. With a synchronous process. The process can be restarted by the Notification System. A forced synchronous process completes in a single SQL session from start to finish and never inserts into or updates any database tables. The Workflow Engine executes a process synchronously when the process includes activities that can be completed immediately. the Workflow Engine sets the audit tables appropriately and returns control to the calling application. you can immediately check for process results that were written to item attributes or directly to the database. As a result. With an asynchronous process. The process results are available immediately upon completion. and wait activities. the execution speed of a forced synchronous process is significantly faster than a typical synchronous process. However. the user must wait for the process to complete. the results of the process are not available until the process is completed at a later time. Oracle Workflow APIs 8 – 15 . the Workflow Engine also supports a special class of synchronous processes called forced synchronous processes. The Account Generator workflows are forced synchronous processes that compute and pass back completed flexfield codes to the calling applications instantaneously. by the background engine. or by the Business Event System. There may be cases when your application requires a forced synchronous process to generate a specific result quickly when recording an audit trail is not a concern. An asynchronous process is a process that the Workflow Engine cannot complete immediately because it contains activities that interrupt the flow. several products require Account Generator workflows to generate a meaningful flexfield code derived from a series of concatenated segments pulled from various tables.

must adhere to the following set of restrictions: • No notification activities are allowed.) – Defer Thread – Wait – Continue Flow/Wait for Flow – Role Resolution – Voting – Compare Execution Time – Notify • No use of the background engine. – Contain no intervening commits.CompleteActivity only if the blocking and restarting activities: – Occur in the same database session. and is run in non–cancelling mode. using a non–unique itemkey such as #SYNCH is not an issue. • None of the following Standard activities are allowed: – And – Block (restricted by the conditions stated in the Limited Blocking bullet point above. Your process definition. as transitions from each activity must have a distinct result. • No Error Processes can be assigned to the process or the process’ activities. regardless of its actual On Revisit setting. you need to set the itemkey of your process to #SYNCH or to wf_engine. This also means that no <Any> transitions are allowed since they cause parallel flows.To create a forced synchronous process. activities are never deferred.eng_synch. which returns the #SYNCH constant. • No Master/Detail coordination activities are allowed. – Contain no intervening calls to Oracle Workflow. Since a forced synchronous process never writes to the database. when you call the necessary WF_ENGINE APIs. that is. • Each function activity behaves as if On Revisit is set to Loop. A process can block and restart with a call to WF_ENGINE. • No parallel flows are allowed in the process. 8 – 16 Oracle Workflow Guide . however. Loops are allowed in the process. • Limited blocking–type activities are allowed.

.GetItemAttribute – WF_ENGINE.CreateProcess – WF_ENGINE. • Only the following WF_ENGINE API calls are allowed to be made.• No data is ever written to the Oracle Workflow tables and as a result: – The process cannot be viewed from the Workflow Monitor.GetActivityAttribute – WF_ENGINE.eng_synch: – WF_ENGINE. and in all cases.CompleteActivity (for the limited usage of blocking–type activities) • WF_ENGINE API calls for any item besides the item for the current synchronous item are not allowed.SetItemAttribute – WF_ENGINE.StartProcess – WF_ENGINE. – No auditing is available for the process. the itemkey supplied to these APIs must be specified as #SYNCH or wf_engine.

Attention: If you encounter an error from a forced synchronous process. See Also Synchronous. The Workflow Engine calls the WF_EVENT. An event activity can either raise. See: Raise: page 8 – 261. A Raise event activity raises an event to the Event Manager. triggering any subscriptions to that event. If the synchronous process completes successfully.Raise API to raise the event. See: Wfstat. or receive a business event. Oracle Workflow APIs 8 – 17 . you should rerun the process with a unique item key in asynchronous mode and check the error stack using the Workflow Monitor or the script wfstat. Asynchronous. and Forced Synchronous Workflows: page C – 2 Business Events Events from the Business Event System are represented within workflow processes as event activities.sql.sql: page 16 – 16. the error you encountered in the forced synchronous process is probably due to a violation of one of the above listed restrictions. send.

A Send event activity sends an event directly to a Business Event System agent without raising the event to the Event Manager. overriding any existing parent setting. See: SetItemParent: page 8 – 79. A Receive event activity receives an event from the Event Manager into a workflow process.Send API to send the event. See: Event: page 8 – 75. which then continues the thread of execution from that activity. The Workflow Engine can receive an event into an activity in an existing process instance that is waiting for the event. the Workflow Engine automatically sets the specified process as the parent for the process that receives the event. The Workflow Engine calls the WF_EVENT. The WF_ENGINE. The Workflow Engine can also receive an event into a Receive event activity that is marked as a Start activity to launch a new workflow process. Note: If the event received by a Receive event activity was originally raised by a Raise event activity in another workflow process. using the correlation ID in the event message to match the event with the process to which it belongs. See Also Managing Business Events: page 13 – 2 Event Activities: page 4 – 54 8 – 18 Oracle Workflow Guide .Event API is used to receive an event into a workflow process. the item type and item key for that process are included in the parameter list within the event message. See: Send: page 8 – 265. In this case.

or both. as Java methods.Workflow Engine APIs The Workflow Engine APIs can be called by an application program or a workflow function in the runtime phase to communicate with the engine and to change the status of each of the activities. The following list indicates whether the Workflow Engine APIs are available as PL/SQL functions/procedures. Many of these Workflow Engine APIs also have corresponding Java methods that you can call from any Java program to integrate with Oracle Workflow. These APIs are defined in a PL/SQL package called WF_ENGINE. .

• CreateProcess: page 8 – 21—PL/SQL and Java • SetItemUserKey: page 8 – 23—PL/SQL • GetItemUserKey: page 8 – 24—PL/SQL • GetActivityLabel: page 8 – 25—PL/SQL • SetItemOwner: page 8 – 26—PL/SQL and Java • StartProcess: page 8 – 28—PL/SQL and Java • LaunchProcess: page 8 – 30—PL/SQL and Java • SuspendProcess: page 8 – 32—PL/SQL and Java • ResumeProcess: page 8 – 34—PL/SQL and Java • AbortProcess: page 8 – 36—PL/SQL and Java • CreateForkProcess: page 8 – 38—PL/SQL • StartForkProcess: page 8 – 40—PL/SQL • Background: page 8 – 41—PL/SQL • AddItemAttribute: page 8 – 43—PL/SQL and Java • AddItemAttributeArray: page 8 – 46—PL/SQL • SetItemAttribute: page 8 – 48—PL/SQL and Java • SetItemAttrDocument: page 8 – 51—PL/SQL and Java • SetItemAttributeArray: page 8 – 53—PL/SQL • getItemTypes: page 8 – 56—Java • GetItemAttribute: page 8 – 57—PL/SQL Oracle Workflow APIs 8 – 19 . Attention: Java is case–sensitive and all Java method names begin with a lower case letter to follow Java naming conventions.

• GetItemAttrDocument: page 8 – 59—PL/SQL • GetItemAttrClob: page 8 – 60—PL/SQL • getItemAttributes: page 8 – 61—Java • GetItemAttrInfo: page 8 – 62—PL/SQL • GetActivityAttrInfo: page 8 – 63—PL/SQL • GetActivityAttribute: page 8 – 64—PL/SQL • GetActivityAttrClob: page 8 – 66—PL/SQL • BeginActivity: page 8 – 67—PL/SQL • CompleteActivity: page 8 – 69—PL/SQL • CompleteActivityInternalName: page 8 – 72—PL/SQL • AssignActivity: page 8 – 74—PL/SQL • Event: page 8 – 75—PL/SQL • HandleError: page 8 – 77—PL/SQL • SetItemParent: page 8 – 79—PL/SQL • ItemStatus: page 8 – 80—PL/SQL and Java • getProcessStatus: page 8 – 81—Java See Also Standard API for PL/SQL Procedures Called by a Function Activities: page 7 – 3 8 – 20 Oracle Workflow Guide .

the item type’s selector function is used to determine the top level process to run. The item type and key together identify the new process and must be passed to all subsequent API calls for that process. Provide the process internal name. String itemType. Item types are defined in the Workflow Builder. A string derived usually from the application object’s primary key. See: Synchronous. If you do not specify a Oracle Workflow APIs 8 – 21 . See: Oracle Workflow Context: page 8 – 6. For example. user_key in varchar2 default null. an application calls CreateProcess to set up the information needed to start the defined process. Required for the Java method only. String process) Description Creates a new runtime process for an application item. and Forced Synchronous Processes: page 8 – 14. Arguments (input) wCtx Workflow context information. owner_role in varchar2 default null). A valid item type. itemkey in varchar2. itemtype itemkey Note: You can pass #SYNCH as the itemkey to create a forced synchronous process. If process is null. Asynchronous. process An optional argument that allows the selection of a particular process for that item. a Requisition item type may have a Requisition Approval Process as a top level process.CreateProcess PL/SQL Syntax procedure CreateProcess (itemtype in varchar2. Java Syntax public static boolean createProcess (WFContext wCtx. process in varchar2 default ’’. String itemKey. The string uniquely identifies the item within an item type. When a particular requisition is created.

an error will be raised. A valid role to set as the owner of the item. This argument is optional. For example. . This argument is optional. user_key A user–friendly key to assign to the item identified by the specified item type and item key. owner_role Caution: Although you can make a call to CreateProcess( ) and StartProcess( ) from a database trigger to initiate a workflow process. if a database entity has headers. and you initiate a workflow process from an AFTER INSERT trigger at the header–level of that entity. your workflow process may fail because some subsequent activity in the process may require information from the entity’s lines or details level that is not yet populated. you should avoid doing so in certain circumstances.selector function and this argument is null. lines and details.

pr)) System. iKey.out. Attention: The Workflow Engine always issues a savepoint before executing each activity in a process so that it can rollback to the previous activity in case an error occurs. // create an item if (WFEngineAPI. For environments such as database triggers or distributed transactions that do not allow savepoints. the Workflow Engine immediately defers the initial start activities to a background engine. else { System. so that they are no longer executing from a database trigger.println(”createProcess failed”).createProcess(ctx.println(”Created Item”).showError(ctx). the Workflow Engine automatically traps ”Savepoint not allowed” errors and defers the execution of the activity. If you initiate a workflow process from a database trigger. Example The following code excerpt shows an example of how to call createProcess() in a Java program.out. The example code is from the WFTest. } 8 – 22 Oracle Workflow Guide . WFEngineAPI. iType.java program.

userkey Oracle Workflow APIs 8 – 23 .SetItemUserKey PL/SQL Syntax procedure SetItemUserKey (itemtype in varchar2. The user key is intended to be a user–friendly identifier to locate items in the Workflow Monitor and other user interface components of Oracle Workflow. itemkey in varchar2. Arguments (input) itemtype itemkey A valid item type. which is initially identified by an item type and item key. Description Lets you set a user–friendly identifier for an item in a process. The string uniquely identifies the item within an item type. The user key to assign to the item identified by the specified item type and item key. userkey in varchar2). The item type and key together identify the item in a process. A string generated usually from the application object’s primary key. See: CreateProcess: page 8 – 21.

GetItemUserKey PL/SQL Syntax function GetItemUserKey (itemtype in varchar2. identified by an item type and item key. A string generated usually from the application object’s primary key. The user key is a user–friendly identifier to locate items in the Workflow Monitor and other user interface components of Oracle Workflow. The item type and key together identify the item in a process. Arguments (input) itemtype itemkey A valid item type. itemkey in varchar2) return varchar2. Description Returns the user–friendly key assigned to an item in a process. See: CreateProcess: page 8 – 21. The string uniquely identifies the item within an item type. 8 – 24 Oracle Workflow Guide .

such as CompleteActivity and HandleError. Oracle Workflow APIs 8 – 25 . Description Returns the instance label of an activity.GetActivityLabel PL/SQL Syntax function GetActivityLabel (actid in number) return varchar2. which is suitable for passing to other Workflow Engine APIs. given the internal activity instance ID. The label returned has the following format. that accept activity labels as arguments: <process_name>:<instance_label> Arguments (input) actid An activity instance ID.

owner in varchar2). A valid item type. Arguments (input) wCtx Workflow context information. else { System.SetItemOwner PL/SQL Syntax procedure SetItemOwner (itemtype in varchar2. // set item owner if (WFEngineAPI. A string derived from the application object’s primary key.out. the role that initiates a transaction is assigned as the process owner.out. itemtype itemkey owner Example The following code excerpt shows an example of how to call setItemOwner() in a Java program.setItemOwner(ctx. iType. String itemKey. Required for the Java method only. 8 – 26 Oracle Workflow Guide .java program. so that any participant in that role can find and view the status of that process instance in the Workflow Monitor. The string uniquely identifies the item within an item type. See: Oracle Workflow Context: page 8 – 6. String itemType. iKey. owner)) System.println(”Set Item Owner: ”+owner). itemkey in varchar2.println(”Cannot set owner. Typically.”). The example code is from the WFTest. A valid role. The item type and key together identify the new process and must be passed to all subsequent API calls for that process. String owner) Description A procedure to set the owner of existing items. The owner must be a valid role. Java Syntax public static boolean setItemOwner (WFContext wCtx. Item types are defined in the Workflow Builder.

WFEngineAPI.showError(ctx). } Oracle Workflow APIs 8 – 27 .

itemkey in varchar2). The engine locates the activity marked as START and then executes it. String itemKey) Description Begins execution of the specified process. Caution: The Workflow Engine always issues a savepoint before executing each activity so that it can rollback to the previous activity in case an error occurs. Arguments (input) wCtx Workflow context information. you should avoid initiating a workflow process from a database trigger because savepoints and rollbacks are not allowed in a database trigger.StartProcess PL/SQL Syntax procedure StartProcess (itemtype in varchar2. The string uniquely identifies the item within an item type. String itemType. Because of this feature. your workflow process may fail because some subsequent activity in the process may require information from the entity’s lines or details level that is not yet populated. if a database entity has headers. A string derived from the application object’s primary key. you should avoid doing so in certain circumstances. and you initiate a workflow process from an AFTER INSERT trigger at the header–level of that entity. A valid item type. Java Syntax public static boolean startProcess (WFContext wCtx. CreateProcess( ) must first be called to define the itemtype and itemkey before calling StartProcess( ). For example. lines and details. itemtype itemkey Caution: Although you can make a call to CreateProcess( ) and StartProcess( ) from a trigger to initiate a workflow process. 8 – 28 Oracle Workflow Guide . Required for the Java method only. See: CreateProcess: page 8 – 21. See: Oracle Workflow Context: page 8 – 6. The item type and key together identify the process.

but is more secure as the initial start activities are always deferred even if the activities’ costs change. The example code is from the WFTest.println(”Process Started successfully”). and Forced Synchronous Processes: page 8 – 14.startProcess(ctx. iType.java program. WFEngineAPI. // start a process if (WFEngineAPI. ––Always reset threshold or all activities in this ––session will be deferred. WF_ENGINE. } Oracle Workflow APIs 8 – 29 .If you must initiate a workflow process from a database trigger.5). you must immediately defer the initial start activities to a background engine.showError(ctx). Example The following code excerpt shows an example of how to call startProcess() in a Java program. To accomplish this: – Set the cost of the process start activities to a value greater than the Workflow Engine threshold (default value is 0.. WF_ENGINE.out.threshold := –1. else { System.StartProcess(. WF_ENGINE.).CreateProcess(. iKey)) System.).threshold.. end (This method has the same effect as the previous method. or – Set the Workflow Engine threshold to be less than 0 before initiating the process: begin save_threshold := WF_ENGINE. Asynchronous. so that they are no longer executing from a database trigger.. WF_ENGINE. Note: You can pass #SYNCH as the itemkey to create a forced synchronous process.out.threshold := save_threshold..println(”launch failed”). See: Synchronous.

A string derived from the application object’s primary key. String itemKey. See: Synchronous. userkey in varchar2 default ’’. String owner) Description Launches a specified process by creating the new runtime process and beginning its execution. process An optional argument that allows the selection of a particular process for that item. Provide the process internal name. See: Oracle Workflow Context: page 8 – 6. A valid item type. itemkey in varchar2. String itemType. The string uniquely identifies the item within an item type. and Forced Synchronous Processes: page 8 – 14. owner in varchar2 default ’’). The item type and key together identify the new process and must be passed to all subsequent API calls for that process. Arguments (input) wCtx Workflow context information. Java Syntax public static boolean LaunchProcess (WFContext wCtx. the item type’s selector function is used to determine the top level process to run. Required for the Java method only. If process is null. 8 – 30 Oracle Workflow Guide . Asynchronous. This is a wrapper that combines CreateProcess and StartProcess. This argument defaults to null. process in varchar2 default ’’. String userKey. itemtype itemkey Note: You can pass #SYNCH as the itemkey to create a forced synchronous process. String process.LaunchProcess PL/SQL Syntax procedure LaunchProcess (itemtype in varchar2.

For example. then no userkey is assigned to the item instance. your workflow process may fail because some subsequent activity in the process may require information from the entity’s lines or details level that is not yet populated.userkey The user key to assign to the item identified by the specified item type and item key. . lines and details. A valid role designated as the owner of the item. owner Caution: Although you can make a call to CreateProcess( ) and StartProcess( ) from a database trigger to initiate a workflow process. and you initiate a workflow process from an AFTER INSERT trigger at the header–level of that entity. then no owner is assigned to the process and only the workflow administrator role can monitor the process. if a database entity has headers. If userkey is null. If owner is null. you should avoid doing so in certain circumstances.

For environments such as database triggers or distributed transactions that do not allow savepoints. If you initiate a workflow process from a database trigger. Attention: The Workflow Engine always issues a savepoint before executing each activity in a process so that it can rollback to the previous activity in case an error occurs. the Workflow Engine immediately defers the initial start activities to a background engine. so that they are no longer executing from a database trigger. the Workflow Engine automatically traps ”Savepoint not allowed” errors and defers the execution of the activity. Oracle Workflow APIs 8 – 31 .

For example. The example code is from the WFTest. Arguments (input) wCtx Workflow context information. This argument defaults to null. The string uniquely identifies the item within an item type. String process) Description Suspends process execution so that no new transitions occur. Outstanding notifications can complete by calling CompleteActivity( ). String itemType.java program. 8 – 32 Oracle Workflow Guide . Required for the Java method only. Provide the process activity’s label name. See: Oracle Workflow Context: page 8 – 6. itemtype itemkey process Example The following code excerpt shows an example of how to call suspendProcess() in a Java program. String itemKey. An optional argument that allows the selection of a particular subprocess for that item. the top level process for the item is suspended. A string generated from the application object’s primary key. Restart suspended processes by calling ResumeProcess( ). If this argument is null.SuspendProcess PL/SQL Syntax procedure SuspendProcess (itemtype in varchar2. but the workflow does not transition to the next activity. process in varchar2 default ’’). A valid item type. See: CreateProcess: page 8 – 21. Java Syntax public static boolean suspendProcess (WFContext wCtx. The item type and key together identify the process. If the process activity label name does not uniquely identify the subprocess you can precede the label name with the internal name of its parent process. itemkey in varchar2. <parent_process_internal_name>:<label_name>.

} Oracle Workflow APIs 8 – 33 .out.suspendProcess(ctx.// suspend.println(”Seems to suspend successfully”).println(”suspend failed”). else { System..”). if (WFEngineAPI.. WFEngineAPI.println(”Suspend Process ” + iType +”/”+ iKey + ” .out.out. null)) System. iKey. iType. status should become SUSPEND System.showError(ctx).

itemtype itemkey process Example The following code excerpt shows an example of how to call resumeProcess() in a Java program.java program. For example. 8 – 34 Oracle Workflow Guide . Any activities that were transitioned to while the process was suspended are now executed. Java Syntax public static boolean resumeProcess (WFContext wCtx. itemkey in varchar2. The item type and key together identify the process. A valid item type. This argument defaults to null. <parent_process_internal_name>:<label_name>. If this argument is null. If the process activity label name does not uniquely identify the subprocess you can precede the label name with the internal name of its parent process. process in varchar2 default ’’). The string uniquely identifies the item within an item type. String itemType. The example code is from the WFTest.ResumeProcess PL/SQL Syntax procedure ResumeProcess (itemtype in varchar2. the top level process for the item is resumed. See: CreateProcess: page 8 – 21. An optional argument that allows the selection of a particular subprocess for that item type. Provide the process activity’s label name. Required for the Java method only. Arguments (input) wCtx Workflow context information. String itemKey. A string generated from the application object’s primary key. String process) Description Returns a suspended process to normal execution status. See: Oracle Workflow Context: page 8 – 6.

println(”resume failed”).println(”Resume Process ” + iType +”/”+ iKey + ” . if (WFEngineAPI.. iType. WFEngineAPI.resumeProcess(ctx. else { System. null)) System.out. } Oracle Workflow APIs 8 – 35 .”).out..showError(ctx).out.println(”Seems to resume successfully”).// resume process and status should be ACTIVE System. iKey.

If this argument is null. any outstanding notifications or subprocesses are set to a status of COMPLETE with a result of force. process in varchar2 default ’’. itemtype itemkey process 8 – 36 Oracle Workflow Guide . result in varchar2 default eng_force). Java Syntax public static boolean abortProcess (WFContext wCtx. with a result specified by the result argument. regardless of the result argument. Also. See: CreateProcess: page 8 – 21. The string uniquely identifies the item within an item type. See: Oracle Workflow Context: page 8 – 6.AbortProcess PL/SQL Syntax procedure AbortProcess (itemtype in varchar2. String itemKey. An optional argument that allows the selection of a particular subprocess for that item type. The item type and key together identify the process. the top level process for the item is aborted. itemkey in varchar2. A string generated from the application object’s primary key. This argument defaults to null. Provide the process activity’s label name. String process. If the process activity label name does not uniquely identify the subprocess you can precede the label name with the internal name of its parent process. For example. String result) Description Aborts process execution and cancels outstanding notifications. A valid item type. Arguments (input) wCtx Workflow context information. Required for the Java method only. <parent_process_internal_name>:<label_name>. String itemType. The process status is considered COMPLETE.

println(”Abort Process .abortProcess(ctx.. null)) { System.java program. should see status COMPLETE with result // code force System.out.” + iType + ”/” + iKey).println(”Seemed to have problem aborting.out.showError(ctx). // abort process.. iKey. pr. The example code is from the WFTest.”). or one of the following standard engine values: eng_exception eng_timeout eng_force eng_mail eng_null This argument defaults to ”eng_force”. Example The following code excerpt shows an example of how to call abortProcess() in a Java program.. if (!WFEngineAPI.. WFEngineAPI. iType.result A status assigned to the aborted process. } Oracle Workflow APIs 8 – 37 . The result must be one of the values defined in the process Result Type.

Description Forks a runtime process by creating a new process that is a copy of the original. A string generated from the application object’s primary key. copy_itemkey in varchar2. CreateForkProcess() copies the item attributes and status of the original process to the new process. Use CreateForkProcess() when you need to change item specific attributes during the course of a process. The item type and new item key together identify the new process. Note that any approval notification will be copied. or the SetItemAttribute APIs to reset any item properties or modify any item attributes that you want for the new process. After calling CreateForkProcess(). The string uniquely identifies the item within an item type. The new process will have the same item type. new_itemkey in varchar2. Specify TRUE or FALSE to indicate whether the new runtime process uses the same version as the original or the latest version. If you specify TRUE. Then you must call StartForkProcess() to start the new process. CreateForkProcess() copies the item attributes of the original process to the new copy_itemkey new_itemkey same_version 8 – 38 Oracle Workflow Guide . For example. The copy item type and key together identify the original process to be copied. The result is as if two items were created for this transaction. if an order cannot be met due to insufficient inventory stock. Arguments (input) copy_itemtype A valid item type for the original process to be copied. If you specify FALSE. SetItemUserKey(). The string uniquely identifies the item within an item type.CreateForkProcess PL/SQL Syntax procedure CreateForkProcess (copy_itemtype in varchar2. A string generated from the application object’s primary key. same_version in boolean default TRUE). you can use CreateForkProcess() to fork a new transaction for the backorder quantity. you can call APIs such as SetItemOwner().

This attribute provides an audit trail for the forked item.process but does not not copy the status. Caution: Do not call CreateForkProcess() and StartForkProcess() from within a parallel branch in a process. Oracle Workflow APIs 8 – 39 . These APIs do not copy any branches parallel to their own branch that are not active. Defaults to TRUE. Note: When you fork an item. Oracle Workflow automatically creates an item attribute called #FORKED_FROM for the new item and sets the attribute to the item key of the original item.

activity by activity. If the new process uses the latest version. If you call StartForkProcess() from within a process. Description Begins execution of the new forked process that you specify. Closed notifications are copied but not resent. For example. Before you call StartForkProcess( ). if a 24 hour Wait activity in the original process is due to be eligible in two hours. then StartForkProcess() executes StartProcess(). Arguments (input) itemtype itemkey A valid item type.’ You must call CompleteActivity() afterwards to continue the process. StartForkProcess() copies the status and history of each activity in the forked process. 8 – 40 Oracle Workflow Guide . The item type and key together identify the process. If the new process uses the same version as the original.’ Any Wait activities in the new process are activated at the same time as the original activities. itemkey in varchar2). their status remains remains ’Complete.StartForkProcess PL/SQL Syntax procedure StartForkProcess (itemtype in varchar2. StartForkProcess() automatically refreshes any notification attributes that are based on item attributes. The string uniquely identifies the item within an item type. you must first call CreateForkProcess( ) to create the new process. These APIs do not copy any branches parallel to their own branch that are not active. A string generated from the application object’s primary key. any function activity in the process that had a status of ’Active’ is updated to have a status of ’Notified. Caution: Do not call CreateForkProcess() and StartForkProcess() from within a parallel branch in a process. the new Wait activity is also eligible in two hours. Any open notifications in the original process are copied and sent again in the new process. You can modify the item attributes of the new process before calling StartForkProcess().

Optional minimum cost threshold for an activity that this background engine processes. process_deferred in boolean default TRUE. To Schedule Background Engines: page 2 – 45 Arguments (input) itemtype minthreshold A valid item type. Any activities that are newly deferred or timed out or processes that become stuck after the current background engine starts are processed by the next background engine that is invoked.sql to get a list of the activities waiting to be processed by the next background engine run. There is no maximum cost threshold if this parameter is null. process_stuck in boolean default FALSE). process_timeout in boolean default FALSE. maxthreshold in number default null.sql: page 16 – 7. You may run a script called wfbkgchk. you can use one of the sample background engine looping scripts described below or create your own script to make the background engine procedure loop indefinitely. maxthreshold Oracle Workflow APIs 8 – 41 . in hundredths of a second. and stuck processes using the parameters specified. If the item type is null the Workflow engine will run for all item types. If you are using the standalone version of Oracle Workflow. so you must restart this procedure periodically.Background PL/SQL Syntax procedure Background (itemtype in varchar2. See: Wfbkgchk. Description Runs a background engine for processing deferred activities. timed out activities. minthreshold in number default null. Optional maximum cost threshold for an activity that this background engine processes in hundredths of a second. The background engine executes all activities that satisfy the given arguments at the time that the background engine is invoked. If you are using the version of Oracle Workflow embedded in Oracle Applications. There is no minimum cost threshold if this parameter is null. This procedure does not remain running long term. you can use the concurrent program version of this procedure and take advantage of the concurrent manager to schedule the background engine to run periodically.

go to the directory where the file is located and type the following command at your operating system prompt: wfbkg.process_deferred process_timeout process_stuck Example Background Engine Looping Scripts Specify TRUE or FALSE to indicate whether to run deferred processes. Defaults to FALSE. For the standalone version of Oracle Workflow you can use one of two example scripts to repeatedly run the background engine regularly.sql and is available on your server in the Oracle Workflow admin/sql subdirectory. Defaults to TRUE. Replace <min> with the number of minutes you want the background engine to run and replace <sec> with the number of seconds you want the background engine to sleep between calls.csh <username/password> Replace <username/password> with the Oracle database account username and password where you want to run the background engine. Specify TRUE or FALSE to indicate whether to run timed out processes. Defaults to FALSE. The first example is a sql script stored in a file called wfbkg. go to the directory where the file is located and type the following command at your operating system prompt: sqlplus <username/password> @wfbkg <min> <sec> Replace <username/password> with the Oracle database account username and password where you want to run the background engine.csh and is available on your server in the Oracle Home bin subdirectory. Specify TRUE or FALSE to indicate whether to run stuck processes. 8 – 42 Oracle Workflow Guide . To run this script. The second example is a shell script stored in a file called wfbkg. To run this script.

String aName. String itemKey. Although most item type attributes are defined at design time. or date value for a new item type attribute when the attribute is created. String aValue) public static boolean addItemAttrNumber (WFContext wCtx. itemkey in varchar2. String aName. Java Syntax public static boolean addItemAttr (WFContext wCtx. aname in varchar2. text_value in varchar2 default null. date_value in date default null). String aName) public static boolean addItemAttrText (WFContext wCtx. number. String itemKey. String itemType. String aValue) Description Adds a new item type attribute variable to the process. String itemType. BigDecimal aValue) public static boolean addItemAttrDate (WFContext wCtx. String itemType. Oracle Workflow APIs 8 – 43 . String aName. You can optionally set a default text.AddItemAttribute PL/SQL Syntax procedure AddItemAttr (itemtype in varchar2. String itemKey. String itemKey. String itemType. number_value in number default null. you can create new attributes at runtime for a specific process.

choose the correct method for your attribute type.Note: If you are using Java. use addItemAttr(). When adding an item type attribute with a default value. . To add an empty item type attribute. use addItemAttrText() for all attribute types except number and date.

See: Oracle Workflow Context: page 8 – 6. The default date value for the item type attribute. Required for the Java methods only. Required for the PL/SQL procedure only. use the AddItemAttributeArray APIs rather than the AddItemAttribute APIs for improved performance. Arguments (input) wCtx Attention: If you need to add large numbers of item type attributes at once. Defaults to null. Required for the PL/SQL procedure only. The item type and key together identify the process. The string uniquely identifies the item within an item type. Defaults to null. A valid item type. and addItemAttrDate() Java methods only. See: AddItemAttributeArray: page 8 – 46 Workflow context information. The default number value for the item type attribute. The internal name of the item type attribute. addItemAttrNumber(). The default value for the item type attribute. the following calls are required: 8 – 44 Oracle Workflow Guide . See: CreateProcess: page 8 – 21. The default text value for the item type attribute. Defaults to null. Using AddItemAttr() to create the new attribute and SetItemAttrText() to set the value of the attribute. Required for the addItemAttrText(). itemtype itemkey aname text_value number_value date_value aValue Example The following example shows how API calls can be simplified by using AddItemAttr() to set the default value of a new item type attribute at the time of creation. A string generated from the application object’s primary key. Required for the PL/SQL procedure only.

’new text values’). ’IKEY’.AddItemAttr(’ITYPE’. Oracle Workflow APIs 8 – 45 . ’NEWCHAR_VAR’). ’IKEY’. only the following call is required: AddItemAttr(’ITYPE’. ’NEWCHAR_VAR’. ’NEWCHAR_VAR’. Using AddItemAttr() both to create the new attribute and to set its value. ’IKEY’. ’new text values’). SetItemAttrText(’ITYPE’.

AddItemAttributeArray PL/SQL Syntax procedure AddItemAttrTextArray (itemtype in varchar2.TEXT_VALUE%TYPE 8 – 46 Oracle Workflow Guide . Description Adds an array of new item type attributes to the process. itemkey in varchar2. avalue in Wf_Engine. you can create new attributes at runtime for a specific process. The following table shows the column datatype definition for each PL/SQL table type.NAME%TYPE Wf_Item_Attribute_Values. avalue in Wf_Engine. itemkey in varchar2. aname in Wf_Engine. aname in Wf_Engine. PL/SQL Table Type Column Datatype Definition NameTabTyp TextTabTyp Table 8 – 1 (Page 1 of 2) Wf_Item_Attribute_Values. procedure AddItemAttrNumberArray (itemtype in varchar2.TextTabTyp).DateTabTyp).NameTabTyp. Note: The AddItemAttributeArray APIs use PL/SQL table composite datatypes defined in the WF_ENGINE package. procedure AddItemAttrDateArray (itemtype in varchar2. Although most item type attributes are defined at design time.NumTabTyp). All attribute types except number and date use AddItemAttrTextArray. avalue in Wf_Engine. itemkey in varchar2. Use the AddItemAttributeArray APIs rather than the AddItemAttribute APIs for improved performance when you need to add large numbers of item type attributes at once. Use the correct procedure for your attribute type. aname in Wf_Engine.NameTabTyp.NameTabTyp.

NUMBER_VALUE%TYPE Wf_Item_Attribute_Values. A string generated from the application object’s primary key. The string uniquely identifies the item within an item type. An array of the internal names of the new item type attributes. The item type and key together identify the process. See: CreateProcess: page 8 – 21. An array of the values for the new item type attributes.DATE_VALUE%TYPE Arguments (input) itemtype itemkey A valid item type. aname avalue Oracle Workflow APIs 8 – 47 .PL/SQL Table Type Column Datatype Definition NumTabTyp DateTabTyp Table 8 – 1 (Page 2 of 2) Wf_Item_Attribute_Values.

String aName.SetItemAttribute PL/SQL Syntax procedure SetItemAttrText (itemtype in varchar2. itemkey in varchar2. String itemType. itemkey in varchar2. itemkey in varchar2. String itemType. avalue in varchar2). avalue in number). String itemKey. aname in varchar2. aname in varchar2. name in varchar2. Java Syntax public static boolean setItemAttrText (WFContext wCtx. itemkey in varchar2. event in wf_event_t). aname in varchar2. procedure SetItemAttrEvent (itemtype in varchar2. BigDecimal aValue) public static boolean setItemAttrDate 8 – 48 Oracle Workflow Guide . String itemKey. procedure SetItemAttrNumber (itemtype in varchar2. avalue in date). String aValue) public static boolean setItemAttrNumber (WFContext wCtx. procedure SetItemAttrDate (itemtype in varchar2. String aName.

(WFContext wCtx. and event use SetItemAttrText. String itemType. All attribute types except number. Use the correct procedure for your attribute type. . date. String itemKey. String aValue) Description Sets the value of an item type attribute in a process. String aName.

Asynchronous. iKey. The item type and key together identify the process. A string generated from the application object’s primary key. See: Oracle Workflow Context: page 8 – 6. A valid item type. See: CreateProcess: page 8 – 21. The value for the item type attribute. The following code excerpt shows an example of how to call setItemAttrText() in a Java program. See: SetItemAttributeArray: page 8 – 53 Workflow context information. The string uniquely identifies the item within an item type.java program. owner)) System. aname or name avalue or event Example 1 The internal name of the item type attribute.showError(ctx). The example code is from the WFTest. iType. itemtype itemkey Note: You can pass #SYNCH as the itemkey to create a forced synchronous process. else { WFEngineAPI.setItemAttrText(ctx. and Forced Synchronous Processes: page 8 – 14. if (WFEngineAPI.out. Arguments (input) wCtx Attention: If you need to set the values of large numbers of item type attributes at once. } Oracle Workflow APIs 8 – 49 . Required for the Java method only. use the SetItemAttributeArray APIs rather than the SetItemAttribute APIs for improved performance.println(”Requestor: ”+owner). See: Synchronous. ”REQUESTOR_USERNAME”.

Example 2

If an event message is stored within an item attribute of type event, you can access the event data CLOB within that event message by creating an item attribute of type URL for the event data. The following sample PL/SQL code shows how to set the value of the URL attribute to reference the event data.
l_eventdataurl := Wfa_html.base_url||’Wf_Event_Html. EventDataContents?P_EventAttribute=EVENT_MESSAGE’||’&’|| ’P_ItemType=’||itemtype||’&’||’P_ItemKey=’||itemkey||’&’|| ’p_mime_type=text/xml’; WF_ENGINE.SetItemAttrText(’<item_type>’, ’<item_key>’, ’EVENTDATAURL’, l_eventdataurl);

If you have applied a stylesheet to the event data XML document to create HTML, set the p_mime_type parameter in the URL to text/html instead. If you omit the p_mime_type parameter from the URL, the MIME type defaults to text/xml.

See Also
Event Message Structure: page 8 – 242

8 – 50

Oracle Workflow Guide

SetItemAttrDocument

PL/SQL Syntax

Attention: Document management functionality is reserved for future use. This description of the SetItemAttrDocument API is provided for reference only.

procedure SetItemAttrDocument (itemtype in varchar2, itemkey in varchar2, aname in varchar2, documentid in varchar2);

Java Syntax

public static boolean setItemAttrDocument (WFContext wCtx, String itemType, String itemKey, String aName, String documentId)

Description Arguments (input)

Sets the value of an item attribute of type document, to a document identifier.

wCtx

Workflow context information. Required for the Java method only. See: Oracle Workflow Context: page 8 – 6. A valid item type. A string generated from the application object’s primary key. The string uniquely identifies the item within an item type. The item type and key together identify the process. See: CreateProcess: page 8 – 21.

itemtype itemkey

Note: You can pass #SYNCH as the itemkey to create a forced synchronous process. See: Synchronous, Asynchronous, and Forced Synchronous Processes: page 8 – 14. aname documentid The internal name of the item type attribute. The value for the item type attribute as a fully concatenated string of the following values:
DM:<node_id>:<doc_id>:<version>

Oracle Workflow APIs

8 – 51

<node_id> is the node ID assigned to the document

management system node as defined in the Document Management Nodes web page.
<doc_id> is the document ID of the document, as assigned by the document management system where the document resides. <version> is the version of the document. If a

version is not specified, the latest version is assumed.

8 – 52

Oracle Workflow Guide

SetItemAttributeArray
PL/SQL Syntax
procedure SetItemAttrTextArray (itemtype in varchar2, itemkey in varchar2, aname in Wf_Engine.NameTabTyp, avalue in Wf_Engine.TextTabTyp); procedure SetItemAttrNumberArray (itemtype in varchar2, itemkey in varchar2, aname in Wf_Engine.NameTabTyp, avalue in Wf_Engine.NumTabTyp); procedure SetItemAttrDateArray (itemtype in varchar2, itemkey in varchar2, aname in Wf_Engine.NameTabTyp, avalue in Wf_Engine.DateTabTyp);

Description

Sets the values of an array of item type attributes in a process. Use the SetItemAttributeArray APIs rather than the SetItemAttribute APIs for improved performance when you need to set the values of large numbers of item type attributes at once. Use the correct procedure for your attribute type. All attribute types except number and date use SetItemAttrTextArray. Note: The SetItemAttributeArray APIs use PL/SQL table composite datatypes defined in the WF_ENGINE package. The following table shows the column datatype definition for each PL/SQL table type.
PL/SQL Table Type Column Datatype Definition

NameTabTyp TextTabTyp NumTabTyp DateTabTyp Table 8 – 2 (Page 1 of 1)

Wf_Item_Attribute_Values.NAME%TYPE Wf_Item_Attribute_Values.TEXT_VALUE%TYPE Wf_Item_Attribute_Values.NUMBER_VALUE%TYPE Wf_Item_Attribute_Values.DATE_VALUE%TYPE

Oracle Workflow APIs

8 – 53

Arguments (input) itemtype itemkey A valid item type. A string generated from the application object’s primary key. The string uniquely identifies the item within an item type. The item type and key together identify the process. See: CreateProcess: page 8 – 21. An array of the internal names of the item type attributes. An array of the values for the item type attributes.

aname avalue Example

The following example shows how using the SetItemAttributeArray APIs rather than the SetItemAttribute APIs can help reduce the number of calls to the database. Using SetItemAttrText():
SetItemAttrText(’ITYPE’, ’IKEY’, ’VAR1’, ’value1’); SetItemAttrText(’ITYPE’, ’IKEY’, ’VAR2’, ’value2’); SetItemAttrText(’ITYPE’, ’IKEY’, ’VAR3’, ’value3’); // Multiple calls to update the database.

Using SetItemAttrTextArray():
declare varname Wf_Engine.NameTabTyp; varval Wf_Engine.TextTabTyp; begin varname(1) := ’VAR1’; varval(1) := ’value1’; varname(2) := ’VAR2’; varval(2) := ’value2’; varname(3) := ’VAR3’; varval(3) := ’value3’; Wf_Engine.SetItemAttrTextArray(’ITYPE’, ’IKEY’, varname, varval); exception when OTHERS then // handle your errors here raise; end;

8 – 54

Oracle Workflow Guide

// Only one call to update the database.

Oracle Workflow APIs

8 – 55

getItemTypes
Java Syntax
public static WFTwoDDataSource getItemTypes (WFContext wCtx)

Description Arguments (input)

Returns a list of all the item types defined in the Oracle Workflow database as a two dimensional data object.

wCtx

Workflow context information. Required for the Java method only. See: Oracle Workflow Context: page 8 – 6.

8 – 56

Oracle Workflow Guide

GetItemAttribute
PL/SQL Syntax
function GetItemAttrText (itemtype in varchar2, itemkey in varchar2, aname in varchar2) return varchar2; function GetItemAttrNumber (itemtype in varchar2, itemkey in varchar2, aname in varchar2) return number; function GetItemAttrDate (itemtype in varchar2, itemkey in varchar2, aname in varchar2) return date; function GetItemAttrEvent (itemtype in varchar2, itemkey in varchar2, name in varchar2) return wf_event_t;

Description

Returns the value of an item type attribute in a process. Use the correct function for your attribute type. All attribute types except number, date, and event use GetItemAttrText.

Arguments (input) itemtype itemkey A valid item type. A string generated from the application object’s primary key. The string uniquely identifies the item within an item type. The item type and key together identify the process. See: CreateProcess: page 8 – 21.

Note: Pass #SYNCH as the itemkey to create a forced synchronous process. See: Synchronous, Asynchronous, and Forced Synchronous Processes: page 8 – 14. aname The internal name of an item type attribute, for GetItemAttrText(), GetItemAttrNumber(), and GetItemAttrDate(). The internal name of an item type attribute, for GetItemAttrEvent().

name

Oracle Workflow APIs

8 – 57

See Also
Event Message Structure: page 8 – 242

8 – 58

Oracle Workflow Guide

GetItemAttrDocument

PL/SQL Syntax

Attention: Document management functionality is reserved for future use. This description of the GetItemAttrDocument API is provided for reference only.

function GetItemAttrDocument (itemtype in varchar2, itemkey in varchar2, aname in varchar2) return varchar2;

Description

Returns the document identifier for a DM document–type item attribute. The document identifier is a concatenated string of the following values:
DM:<nodeid>:<documentid>:<version> <nodeid> is the node ID assigned to the document management system node as defined in the Document Management Nodes web page. <documentid> is the document ID of the document, as assigned by the document management system where the document resides. <version> is the version of the document. If a version is not specified,

the latest version is assumed. Arguments (input) itemtype itemkey A valid item type. A string generated from the application object’s primary key. The string uniquely identifies the item within an item type. The item type and key together identify the process. See: CreateProcess: page 8 – 21.

Note: Pass #SYNCH as the itemkey to create a forced synchronous process. See: Synchronous, Asynchronous, and Forced Synchronous Processes: page 8 – 14. aname The internal name of the item type attribute.

Oracle Workflow APIs

8 – 59

GetItemAttrClob
PL/SQL Syntax
function GetItemAttrClob (itemtype in varchar2, itemkey in varchar2, aname in varchar2) return clob;

Description Arguments (input)

Returns the value of an item type attribute in a process as a character large object (CLOB).

itemtype itemkey

A valid item type. A string generated from the application object’s primary key. The string uniquely identifies the item within an item type. The item type and key together identify the process. See: CreateProcess: page 8 – 21. The internal name of an item type attribute.

aname

8 – 60

Oracle Workflow Guide

getItemAttributes
Java Syntax
public static WFTwoDDataSource getItemAttributes (WFContext wCtx, String itemType, String itemKey)

Description Arguments (input)

Returns a list of all the item attributes, their types, and their values for the specified item type instance as a two dimensional data object.

wCtx

Workflow context information. Required for the Java method only. See: Oracle Workflow Context: page 8 – 6. A valid item type. A string generated from the application object’s primary key. The string uniquely identifies the item within an item type. The item type and key together identify the process. See: CreateProcess: page 8 – 21.

itemtype itemkey

Oracle Workflow APIs

8 – 61

GetItemAttrInfo
PL/SQL Syntax
procedure GetItemAttrInfo (itemtype in varchar2, aname in varchar2, atype out varchar2, subtype out varchar2, format out varchar2);

Description

Returns information about an item type attribute, such as its type and format, if any is specified. Currently, subtype information is not available for item type attributes

Arguments (input) itemtype aname A valid item type. The internal name of a item type attribute.

8 – 62

Oracle Workflow Guide

GetActivityAttrInfo
PL/SQL Syntax
procedure GetActivityAttrInfo (itemtype in varchar2, itemkey in varchar2, actid in number, aname in varchar2, atype out varchar2, subtype out varchar2, format out varchar2);

Description

Returns information about an activity attribute, such as its type and format, if any is specified. This procedure currently does not return any subtype information for activity attributes.

Arguments (input) itemtype itemkey A valid item type. A string generated from the application object’s primary key. The string uniquely identifies the item within an item type. The item type and key together identify the process. See: CreateProcess: page 8 – 21. The activity ID for a particular usage of an activity in a process definition. Also referred to as the activity ID of the node The internal name of an activity attribute.

actid

aname

Oracle Workflow APIs

8 – 63

GetActivityAttribute
PL/SQL Syntax
function GetActivityAttrText (itemtype in varchar2, itemkey in varchar2, actid in number, aname in varchar2) return varchar2; function GetActivityAttrNumber (itemtype in varchar2, itemkey in varchar2, actid in number, aname in varchar2) return number; function GetActivityAttrDate (itemtype in varchar2, itemkey in varchar2, actid in number, aname in varchar2) return date; function GetActivityAttrEvent (itemtype in varchar2, itemkey in varchar2, actid in number, name in varchar2) return wf_event_t;

Description

Returns the value of an activity attribute in a process. Use the correct function for your attribute type. If the attribute is a Number or Date type, then the appropriate function translates the number/date value to a text–string representation using the attribute format. Note: Use GetActivityAttrText() for Form, URLs, lookups and document attribute types.

Arguments (input) itemtype itemkey A valid item type. A string generated from the application object’s primary key. The string uniquely identifies the item within an item type. The item type and key together identify the process. See: CreateProcess: page 8 – 21.

8 – 64

Oracle Workflow Guide

Note: Pass #SYNCH as the itemkey to create a forced synchronous process. See: Synchronous, Asynchronous, and Forced Synchronous Processes: page 8 – 14. actid The activity ID for a particular usage of an activity in a process definition. Also referred to as the activity ID of the node. The internal name of an activity attribute, for GetActivityAttrText(), GetActivityAttrNumber(), and GetActivityAttrDate(). The internal name of an activity attribute, for GetActivityAttrEvent().

aname

name

See Also
Event Message Structure: page 8 – 242

Oracle Workflow APIs

8 – 65

GetActivityAttrClob
PL/SQL Syntax
function GetActivityAttrClob (itemtype in varchar2, itemkey in varchar2, actid in number, aname in varchar2) return clob;

Description Arguments (input)

Returns the value of an activity attribute in a process as a character large object (CLOB).

itemtype itemkey

A valid item type. A string generated from the application object’s primary key. The string uniquely identifies the item within an item type. The item type and key together identify the process. See: CreateProcess: page 8 – 21. The activity ID for a particular usage of an activity in a process definition. Also referred to as the activity ID of the node. The internal name of an activity attribute.

actid

aname

8 – 66

Oracle Workflow Guide

BeginActivity
PL/SQL Syntax
procedure BeginActivity (itemtype in varchar2, itemkey in varchar2, activity in varchar2);

Description

Determines if the specified activity can currently be performed on the process item and raises an exception if it cannot. The CompleteActivity() procedure automatically performs this function as part of its validation. However, you can use BeginActivity to verify that the activity you intend to perform is currently allowed before actually calling it. See: CompleteActivity: page 8 – 69.

Arguments (input) itemtype itemkey A valid item type. A string generated from the application object’s primary key. The string uniquely identifies the item within an item type. The item type and key together identify the process. The activity node to perform on the process. Provide the activity node’s label name. If the activity node label name does not uniquely identify the activity node you can precede the label name with the internal name of its parent process. For example, <parent_process_internal_name>:<label_name>.

activity

Example

/*Verify that a credit check can be performed on an order. If it is allowed, perform the credit check, then notify the Workflow Engine when the credit check completes.*/ begin wf_engine.BeginActivity(’ORDER’, to_char(order_id),’CREDIT_CHECK’); OK := TRUE; exception when others then WF_CORE.Clear; OK := FALSE; end; if OK then –– perform activity ––

Oracle Workflow APIs

8 – 67

wf_engine.CompleteActivity(’ORDER’, to_char(order_id), ’CREDIT_CHECK’ :result_code); end if;

8 – 68

Oracle Workflow Guide

result_code in varchar2). itemkey in varchar2. ’Start’ activities are designated as the beginning of a process in the Workflow Builder. however. – CompleteActivity() only completes the single ’Start’ activity with which it is called. The item type and key specified in this call must be passed to all subsequent calls that operate on this item. This procedure can be called for the following situations: • To indicate a completed activity with an optional result—This signals the Workflow Engine that an asynchronous activity has been completed. Other ’Start’ activities in the process are not completed. The result can determine what transition the process takes next. Oracle Workflow APIs 8 – 69 .CompleteActivity PL/SQL Syntax procedure CompleteActivity (itemtype in varchar2. This procedure requires that the activity currently has a status of ’Notified’. StartProcess() executes only ’Start’ activities that do not have any incoming transitions. For example. Note: Starting a process using CompleteActivity() differs from starting a process using CreateProcess() and StartProcess() in these ways: – The ’Start’ activity called with CompleteActivity() may or may not have incoming transitions. Use CompleteActivity() if you cannot use CreateProcess() and StartProcess() to start your process. call CompleteActivity() if you need to start a process with an activity node that is mid–stream in a process thread and not at the beginning of a process thread. executes every activity in the process that is marked as a ’Start’ activity and does not have any incoming transitions. The activity node you specify as the beginning of the process must be set to ’Start’ in the Node tab of its property page or else an error will be raised. • To create and start an item—You can call CompleteActivity() for a ’Start’ activity to implicitly create and start a new item. Description Notifies the Workflow Engine that the specified activity has been completed for a particular item. activity in varchar2. An optional activity completion result can also be passed. StartProcess().

An optional activity completion result. StartProcess() does execute the ’Start’ activities with which it starts a process. For example. – When you use CompleteActivity() to start a new process. <parent_process_internal_name>:<label_name>. or have exactly one runnable process with the activity being completed marked as a ’Start’ activity. activity result_code 8 – 70 Oracle Workflow Guide . This activity node must be marked as a ’Start’ activity. Provide the activity node’s label name.– CompleteActivity() does not execute the activity with which it is called. A string generated from the application object’s primary key. See: AbortProcess: page 8 – 36. it simply marks the activity as complete. The string uniquely identifies the item within an item type. If the activity node label name does not uniquely identify the subprocess you can precede the label name with the internal name of its parent process. The name of the activity node that is completed. Possible values are determined by the process activity’s Result Type. Arguments (input) itemtype itemkey A valid item type. You cannot explicitly specify a root process as you can with StartProcess(). or one of the engine standard results. the item type of the activity being completed must either have a selector function defined to choose a root process. The item type and key together identify the process.

to_char(order.*/ wf_engine.CompleteActivity(’ORDER’. ’null’).CompleteActivity(’ORDER’.order_id). The item must already exist.*/ wf_engine. ’ORDER_PROCESS:BLOCK–3’. NULL). ’LEGAL_REVIEW’.*/ wf_engine. so the item is created by this call as well. Oracle Workflow APIs 8 – 71 .Example 1 /*Complete the ’ENTER ORDER’ activity for the ’ORDER’ item type. The ’ENTER ORDER’ activity allows creation of new items since it is the start of a workflow. ’1003’. Example 2 /*Complete the ’LEGAL REVIEW’ activity with status ’APPROVED’. Example 3 /*Complete the BLOCK activity which is used in multiple subprocesses in parallel splits. ’1003’. ’ENTER_ORDER’.CompleteActivity(’ORDER’. ’APPROVED’).

there must be exactly one instance of the specified activity with a status of ’Notified’. If the activity internal name does not uniquely identify the subprocess you can precede the activity internal name with the internal name of its parent process. The internal name of the activity that is completed.CompleteActivityInternalName PL/SQL Syntax procedure CompleteActivityInternalName (itemtype in varchar2. For example. When CompleteActivityInternalName() is executed. result in varchar2). Also. The result can determine what transition the process takes next. activity 8 – 72 Oracle Workflow Guide . If you do know the activity node label name. activity in varchar2. Note: Unlike CompleteActivity(). while CompleteActivity() identifies the activity by the activity node label name. use CompleteActivity() instead. An optional activity completion result can also be passed. the process enters an ’ERROR’ state. <parent_process_internal_name>:<activity_internal_ name>. If there are multiple instances of the activity with ’Notified’ statuses. you cannot use CompleteActivityInternalName() with a synchronous process. you cannot use CompleteActivityInternalName() to start a process. This procedure requires that the activity currently has a status of ’Notified’. CompleteActivityInternalName() is similar to CompleteActivity() except that CompleteActivityInternalName() identifies the activity to be completed by the activity’s internal name. itemkey in varchar2. A string generated from the application object’s primary key. You should only use CompleteActivityInternalName() when you do not know the activity node label name. See: CompleteActivity: page 8 – 69. The string uniquely identifies the item within an item type. Arguments (input) itemtype itemkey A valid item type. Description Notifies the Workflow Engine that the specified activity has been completed for a particular item. The item type and key together identify the process.

Oracle Workflow APIs 8 – 73 . See: AbortProcess: page 8 – 36.result An optional activity completion result. Possible values are determined by the process activity’s Result Type. or one of the engine standard results.

Arguments (input) itemtype itemkey A valid item type. <parent_process_internal_name>:<label_name>. For example.AssignActivity PL/SQL Syntax procedure AssignActivity (itemtype in varchar2.Transfer. activity in varchar2. If a new user is assigned to a notification activity that already has an outstanding notification. performer in varchar2). Description Assigns or reassigns an activity to another performer. the outstanding notification is canceled and a new notification is generated for the new user by calling WF_Notification. This procedure may be called before the activity is transitioned to. a function activity earlier in the process may determine the performer of a later activity. The name should be a role name from the Oracle Workflow directory services. The item type and key together identify the process. The label name of the activity node. A string generated from the application object’s primary key. activity performer 8 – 74 Oracle Workflow Guide . The name of the user who will perform the activity (the user who receives the notification). For example. itemkey in varchar2. If the activity node label name does not uniquely identify the activity node you can precede the label name with the internal name of its parent process. The string uniquely identifies the item within an item type.

the procedure sets any parameters in the event message parameter list as item type attributes for the process. Description Receives an event from the Business Event System into a workflow process. Event() stores the event name. process_name in varchar2 default null. the event is received into that item. In this case. meaning the process has transitioned to that activity and is waiting to receive the event. itemkey in varchar2. If the item key does not already exist. if they have been defined. If no eligible Receive event activity exists for a received event. If the specified item key already exists.Event PL/SQL Syntax procedure Event (itemtype in varchar2. Then the Workflow Engine begins a thread of execution from the event activity. Within the workflow process that receives the event. event_message in wf_event_t). the Workflow Engine creates a new item running that process. Additionally. but the specified process includes an eligible Receive event activity marked as a Start activity. • An activity marked as a Start activity can only receive an event if it has never been executed. event key. the item type and item key for that process are included in the parameter list within the event message. Note: If the event received by a Receive event activity was originally raised by a Raise event activity in another workflow process. the Workflow Engine automatically sets the specified process as the parent for the process that receives the event. • A normal activity can only receive an event if its activity status is NOTIFIED. the procedure searches for eligible Receive event activities. the procedure returns an exception and an error message. Oracle Workflow APIs 8 – 75 . creating new item type attributes if a corresponding attribute does not already exist for any parameter. An activity is only eligible to receive an event if its event filter is either blank or set to that particular event. For each eligible Receive event activity. the activity must have an appropriate status. and event message in the item type attributes specified in the event activity node. Additionally.

Provide the process activity’s label name. See: SetItemParent: page 8 – 79. <parent_process_internal_name>:<label_name>. If the process activity label name does not uniquely identify the subprocess you can precede the label name with the internal name of its parent process.overriding any existing parent setting. Arguments (input) itemtype itemkey A valid item type. the top level process for the item is started. For example. The event message containing the details of the event. The item type and key together identify the process. This argument defaults to null. If this argument is null. An optional argument that allows the selection of a particular subprocess for that item type. process_name event_message 8 – 76 Oracle Workflow Guide . A string that uniquely identifies the item within an item type.

The string uniquely identifies the item within an item type. The procedure then handles the specified activity based on the command you provide: SKIP or RETRY.HandleError PL/SQL Syntax procedure HandleError (itemtype in varchar2. command in varchar2. For an activity in the ’Error’ state. this procedure resets any parent processes of the specified activity to a status of ’Active’. <parent_process_internal_name>:<label_name>. Provide the label name of the activity node. there are no other executed activities following it. See: Looping: page 8 – 10. For example. The item type and key together identify the process. The activity node that encountered the error or that you want to undo. A string generated from the application object’s primary key. If the activity node label name does not uniquely identify the subprocess you can activity Oracle Workflow APIs 8 – 77 . The activity that you call this procedure with can have any status and does not have to have been executed. this procedure clears the activity specified and all activities following it that have already been transitioned to by reexecuting each activity in ’Cancel’ mode. The activity can also be in a subprocess. Arguments (input) item_type item_key A valid item type. if the activity node label is not unique within the process you may precede the activity node label name with the internal name of its parent process. activity in varchar2. to rollback part of your process to that activity. Once the activities are cleared. so the procedure simply clears the errored activity. Description This procedure is generally called from an activity in an ERROR process to handle any process activity that has encountered an error. itemkey in varchar2. If the On_Revisit flag is set to Reset. result in varchar2). if they are not already active. You can also call this procedure for any arbitrary activity in a process.

Occasionally. 8 – 78 Oracle Workflow Guide . however. command One of two commands that determine how to handle the process activity: SKIP—do not reexecute the activity.precede the label name with the internal name of its parent process. – Purge the existing item by calling WF_ENGINE. RETRY—reexecute the activity and continue execution of the process from that activity. <parent_process_internal_name>:<label_name>. you can use HandleError to manually push an item through activities that will error or redirect the item to take different transitions in the process. you may want to use HandleError to manually make changes to your process for an existing item. If the changes you make to a process are minor. – Restart the revised process at the appropriate activity by calling WF_ENGINE. – Revise the process. For example. then you need to perform at least the following steps: – Abort the process by calling WF_ENGINEAbortProcess( ). If the changes you want to make to a process are extensive.Items( ). – Recreate the item by calling WF_ENGINE.CreateProcess( ). Note: An item’s active date and the version number of the process that the item is transitioning through can never change once an item is created. result The result you wish to supply if the command is SKIP.HandleError( ). but mark the activity as complete with the supplied result and continue execution of the process from that activity.

Arguments (input) itemtype itemkey A valid item type. parent_context in varchar2). The item type and key together identify the child process. The parent item type and key together identify the parent process. parent_itemtype in varchar2. parent_itemtype parent_itemkey parent_context Oracle Workflow APIs 8 – 79 . but before you call the StartProcess API for the detail process. Description Defines the parent/child relationship for a master process and a detail process. A valid item type for the parent process. You make a call to this API after you call the CreateProcess API.SetItemParent PL/SQL Syntax procedure SetItemParent (itemtype in varchar2. A string generated from the application object’s primary key to uniquely identify the item within the parent item type. itemkey in varchar2. This API must be called by any detail process spawned from a master process to define the parent/child relationship between the two processes. parent_itemkey in varchar2. The string uniquely identifies the item within an item type. A string generated from the application object’s primary key. Context information about the parent.

java program.ItemStatus PL/SQL Syntax procedure ItemStatus (itemtype in varchar2. result out varchar2). itemtype itemkey Example The following code excerpt shows an example of how to call itemStatus() in a Java program. A string generated from the application object’s primary key. If the root process does not exist. itemkey in varchar2. iType. Java Syntax public static WFTwoDDataSource itemStatus (WFContext wCtx. ERROR. displayDataSource(ctx. The item type and key together identify the item instance. iKey).out. System. String itemType. dataSource). 8 – 80 Oracle Workflow Guide .itemStatus(ctx. The example code is from the WFTest. String itemKey) Description Returns the status and result for the root process of the specified item instance. // get status and result for this item dataSource = WFEngineAPI. then the item key does not exist and will thus cause the procedure to raise an exception. Required for the Java method only.print(”Status and result for ” + iType + ”/” + iKey + ” = ”). Arguments (input) wCtx Workflow context information. or SUSPENDED. COMPLETE. Possible values returned for the status are: ACTIVE. The string uniquely identifies the item within an item type. status out varchar2. A valid item type. See: Oracle Workflow Context: page 8 – 6.

A string generated from the application object’s primary key. Required for the Java method only. String itemKey. If the instance ID is unknown. you can simply provide any negative number and the method will return the process status for the root process. A valid item type. The item type and key together identify the process. See: Oracle Workflow Context: page 8 – 6. BigDecimal process) Description Arguments (input) Returns the process status for the given item type instance as a two dimensional data object. wCtx Workflow context information. See: CreateProcess: page 8 – 21. String itemType.getProcessStatus Java Syntax public static WFTwoDDataSource getProcessStatus (WFContext wCtx. itemType itemKey process Oracle Workflow APIs 8 – 81 . The string uniquely identifies the item within an item type. A process instance ID for the item type.

wf Java package. as well as the execute() method which forms the main entry point function of the external Java function activity being implemented. The following list shows the APIs available in this class.Workflow Function APIs The WFFunctionAPI Java class is the abstract class from which the Java procedures for all external Java function activities are derived.apps. The WFFunctionAPI class is stored in the oracle.fnd. This class contains methods for accessing item type and activity attributes. .

Attention: Java is case–sensitive and all Java method names begin with a lower case letter to follow Java naming conventions. • loadItemAttributes: page 8 – 83 • loadActivityAttributes: page 8 – 84 • getActivityAttr: page 8 – 85 • getItemAttr: page 8 – 87 • setItemAttrValue: page 8 – 88 • execute: page 8 – 89 See Also Standard API for Java Procedures Called by Function Activities: page 7–8 Function Activity: page 4 – 44 8 – 82 Oracle Workflow Guide .

Arguments (input) pWCtx Workflow context information. this method throws a SQLException.loadItemAttributes Java Syntax public void loadItemAttributes (WFContext pWCtx) throws SQLException Description Retrieves the item attributes from the database for the item type from which the external Java function was called. See: Oracle Workflow Context: page 8 – 6. You can use this method to load the item attributes explicitly before accessing them in your function. If a database access error occurs. Oracle Workflow APIs 8 – 83 . The item attributes are not loaded by default due to the performance impact that could occur if the item type contains a large number of item attributes.

actid 8 – 84 Oracle Workflow Guide . String iType. this method throws a SQLException. The string uniquely identifies the item within an item type. A string generated from the application object’s primary key. An activity instance ID. See: CreateProcess: page 8 – 21. See: Oracle Workflow Context: page 8 – 6. Arguments (input) pWCtx iType iKey Workflow context information. The item type and key together identify the process. BigDecimal actid) throws SQLException Description Retrieves the activity attributes from the database for the specified activity.loadActivityAttributes Java Syntax public void loadActivityAttributes (WFContext pWCtx. A valid item type. This method is called by default when the function activity is instantiated and before the execute() function is called. If a database access error occurs. String iKey.

you can first use getActivityAttr(String aName) to retrieve the item attribute name. WFAttribute pAttr) to set the item attribute value. • If you call getActivityAttr(WFContext pWCtx. the method attempts to resolve the reference by retrieving the value of that item attribute. this method returns the internal name of the item attribute. which also becomes the activity attribute value. These methods return the activity attribute information for the specified activity attribute. if you want to write information back to the item attribute. See: loadItemAttributes: page 8 – 83. String aName) throws SQLException Description There are two implementations of getActivityAttr(). or if the item attributes have not been loaded. and if the activity attribute points to an item attribute. This method attempts to resolve the reference within the previously loaded item attributes. Then use setItemAttrValue(WFContext pWCtx. For example. You can use getActivityAttr(WFContext pWCtx. String aName) with both the Workflow context and the activity attribute name. this method returns the activity attribute value but does not attempt to resolve any reference to an item attribute.getActivityAttr Java Syntax public WFAttribute getActivityAttr (String aName) Java Syntax public WFAttribute getActivityAttr (WFContext pWCtx. this method throws a SQLException. Oracle Workflow APIs 8 – 85 . If an activity attribute does point to an item attribute. If a database access error occurs. See: setItemAttrValue: page 8 – 88. you can then perform additional processing based on the item attribute. With the item attribute name. the method calls loadItemAttributes(WFContext pWCtx) to load them. and you do not need to know which item attribute it references. • If you call getActivityAttr(String aName) with only the activity attribute name. String aName) when you want to obtain the actual activity attribute value. this method returns the activity attribute.

Arguments (input) pWCtx Workflow context information. The internal name of an activity attribute. See: Oracle Workflow Context: page 8 – 6. aName 8 – 86 Oracle Workflow Guide . Required for the second method only.

aName The internal name of an item attribute.getItemAttr Java Syntax public WFAttribute getItemAttr (String aName) Description Arguments (input) Returns the item attribute information for the specified item attribute. Oracle Workflow APIs 8 – 87 .

The attribute information for an item attribute. See: Oracle Workflow Context: page 8 – 6. 8 – 88 Oracle Workflow Guide . WFException Description Sets the value of the specified item attribute in the database. WFAttribute pAttr) throws NumberFormatException. The method throws a WFException if it encounters an error while setting an attribute of type document or text. Arguments (input) pWCtx pAttr Workflow context information. This method throws a NumberFormatException if it cannot convert the value to the appropriate format for an attribute of type number or date.setItemAttrValue Java Syntax public void setItemAttrValue (WFContext pWCtx.

See: Oracle Workflow Context: page 8 – 6. Oracle Workflow APIs 8 – 89 .execute Java Syntax public abstract boolean execute (WFContext pWCtx) Description This abstract method is implemented by the extending class and forms the main entry point function of the external Java function activity being implemented. Arguments (input) pWCtx Workflow context information. See: Standard API for Java Procedures Called by Function Activities: page 7 – 8.

Workflow Attribute APIs The WFAttribute Java class contains descriptive information for an item or activity attribute. The WFAttribute class is stored in the oracle.wf Java package. which can be called by a Java application or the Java procedure for an external Java function activity. The attribute value is stored as an Object type. format information. attribute value.fnd.apps. The following list shows the APIs available in this class. including the internal name of the attribute. This class also contains methods for accessing the attribute information. and default value type. attribute data type. .

except the constructor method names. begin with a lower case letter to follow Java naming conventions. The following table shows the constants that can be used to represent the data type of an attribute. • WFAttribute: page 8 – 92 • value: page 8 – 93 • getName: page 8 – 94 • getValue: page 8 – 95 • getType: page 8 – 96 • getFormat: page 8 – 97 • getValueType: page 8 – 98 • toString: page 8 – 99 • compareTo: page 8 – 100 See Also Standard API for Java Procedures Called by Function Activities: page 7–8 WFAttribute Class Constants The WFAttribute class contains several constants. Attention: Java is case–sensitive and all Java method names. 8 – 90 Oracle Workflow Guide .

for an activity attribute. Constant Variable Declaration Constant Value public static final String CONSTANT public static final String ITEMATTR Table 8 – 4 (Page 1 of 1) ”CONSTANT” ”ITEMATTR” Oracle Workflow APIs 8 – 91 . a reference to an item type attribute. The default value can be either a constant or.Constant Variable Declaration Constant Value public static final String TEXT public static final String NUMBER public static final String DATE public static final String LOOKUP public static final String FORM public static final String URL public static final String DOCUMENT public static final String ROLE public static final String EVENT Table 8 – 3 (Page 1 of 1) ”TEXT” ”NUMBER” ”DATE” ”LOOKUP” ”FORM” ”URL” ”DOCUMENT” ”ROLE” ”EVENT” The following table shows the constants that can be used to represent the type of the default value for an attribute.

and value type. Required for the second method only. The attribute value. Arguments (input) pName pType pValue pValueType The internal name of an item or activity attribute. The first constructor creates a new WFAttribute object. The second constructor creates a new WFAttribute object and initializes it with the specified attribute name. pValue. for an activity attribute. The data type of the attribute. The type of the default value for the attribute. Required for the second method only. value.WFAttribute Java Syntax Java Syntax public WFAttribute() public WFAttribute (String String Object String pName pType. pValueType) Description There are two constructor methods for the WFAttribute class. Required for the second method only. attribute type. 8 – 92 Oracle Workflow Guide . The default value can be either a constant or. a reference to an item type attribute. Required for the second method only.

value Java Syntax public void value (Object pValue) Description Sets the value of the item or activity attribute within a WFAttribute object. The value must be cast to the Object type. .

Arguments (input) pValue Attention: Using value() to set the attribute value within a WFAttribute object does not set the attribute value in the database. use WFFunctionAPI.setItemAttrValue(). The attribute value. See: setItemAttrValue: page 8 – 88. Oracle Workflow APIs 8 – 93 . To set the value of an item attribute in the database.

getName Java Syntax Description public String getName() Returns the internal name of the item or activity attribute. 8 – 94 Oracle Workflow Guide .

getValue Java Syntax Description public Object getValue() Returns the value of the item or activity attribute as type Object. Oracle Workflow APIs 8 – 95 .

8 – 96 Oracle Workflow Guide .getType Java Syntax Description public String getType() Returns the data type of the item or activity attribute. See: Attribute Types: page 4 – 3.

See: To Define an Item Type or Activity Attribute: page 4 – 8.getFormat Java Syntax Description public String getFormat() Returns the format string for the item or activity attribute. Oracle Workflow APIs 8 – 97 . such as the length for an attribute of type text or the format mask for an attribute of type number or date.

8 – 98 Oracle Workflow Guide . a reference to an item type attribute. The default value can be either a constant or. See: To Define an Item Type or Activity Attribute: page 4 – 8. for an activity attribute.getValueType Java Syntax Description public String getValueType() Returns the type of the default value for the item or activity attribute.

Oracle Workflow APIs 8 – 99 .toString Java Syntax Description public String toString() Returns the internal name and the value of the item or activity attribute as a string in the following format: <name>=<value> This method overrides the toString() method in the Object class.

Arguments (input) pValue The test value to compare to the attribute value. This method throws an Exception if it cannot convert the specified value to the appropriate format for an attribute of type number or date. or 1 if the attribute value is greater than the specified value. –1 if the attribute value is less than the specified value. 8 – 100 Oracle Workflow Guide . compareTo() returns 0 if the two values are equal.compareTo Java Syntax public int compareTo (String pValue) throws Exception Description Compares the value of the item or activity attribute with the specified value.

ERROR_MESSAGE. The following APIs can be called by an application program or workflow function in the runtime phase to handle error processing. The columns ERROR_NAME and ERROR_MESSAGE get set to either the values returned by a call to WF_CORE. the Workflow Engine sets the function activity’s status to ERROR and sets the columns ERROR_NAME. the information in these columns. ERROR_MESSAGE. When a PL/SQL procedure called by a function activity either raises an unhandled exception.Workflow Core APIs PL/SQL procedures called by function activities can use a set of core Oracle Workflow APIs to raise and catch errors. The column ERROR_STACK gets set to the contents set by a call to WF_CORE. • CLEAR: page 8 – 102 • GET_ERROR: page 8 – 103 • TOKEN: page 8 – 104 • RAISE: page 8 – 105 • CONTEXT: page 8 – 108 • TRANSLATE: page 8 – 110 See Also Standard API for PL/SQL Procedures Called by Function Activities: page 7 – 3 Oracle Workflow APIs 8 – 101 . or returns a result beginning with ’ERROR:’. See: Default Error Process: page 6 – 26. and ERROR_STACK are also defined as item type attributes for the System: Error predefined item type.RAISE( ). Note: The columns ERROR_NAME. or to the SQL error name and message if no call to RAISE( ) is found. regardless of the error source. These APIs are stored in the PL/SQL package called WF_CORE. and ERROR_STACK in the table WF_ITEM_ACTIVITY_STATUSES to reflect the error.CONTEXT( ). You can reference from the error process that you associate with an activity.

Clears the error buffers. See Also GET_ERROR: page 8 – 103 8 – 102 Oracle Workflow Guide .CLEAR Syntax Description procedure CLEAR.

When calling any public Workflow API. errmsg varchar2(2000). activity. end if. result_code). Wf_Engine. begin .get_error(err_name. /*Handle unexpected errors in your workflow code by raising WF_CORE exceptions. err_message out varchar2 err_stack out varchar2). err_stack). err_msg. –– Wf error occurred. .. itemkey. Description Returns the name of a current error message and the token substituted error message. Returns null if there is no current error.. Handle otherwise. include an exception handler to deal with unexpected errors..CompleteActivity(itemtype.clear. else –– Not a wf error. Example 1 See Also CLEAR: page 8 – 102 Oracle Workflow APIs 8 – 103 . if (err_name is not null) then wf_core.GET_ERROR Syntax procedure GET_ERROR (err_name out varchar2..*/ declare errname varchar2(30). errstack varchar2(32000). Signal error as appropriate. end. Also clears the error stack. exception when others then wf_core.

token_value in varchar2). The error messages contain tokens that need to be replaced with relevant values when the error message is raised.TOKEN Syntax procedure TOKEN (token_name in varchar2. See Also RAISE: page 8 – 105 CONTEXT: page 8 – 108 8 – 104 Oracle Workflow Guide . Arguments (input) token_name token_value Name of the token. Value to substitute for the token. Calls to TOKEN( ) and RAISE( ) raise predefined errors for Oracle Workflow that are stored in the WF_RESOURCES table. This is an alternative to raising PL/SQL standard exceptions or custom–defined exceptions. Description Defines an error token and substitutes it with a value.

msg). Error messages for Oracle Workflow are initially defined in message files (. Arguments (input) name Internal name of the error message as stored in the table WF_RESOURCES. Run the program from your operating system prompt as follows: • To generate a binary resource file from a source file (. During the installation of the Oracle Workflow server. The Workflow Resource Generator program is located in the bin subdirectory of the Oracle Home directory structure.msg). See Also TOKEN: page 8 – 104 CONTEXT: page 8 – 108 " To run the Workflow Resource Generator For the standalone version of Oracle Workflow: 1. This is an alternative to raising PL/SQL standard exceptions or custom–defined exceptions. Calls to TOKEN( ) and RAISE( ) raise predefined errors for Oracle Workflow that are stored in the WF_RESOURCES table. a program called Workflow Resource Generator takes the designated message files and imports the messages into the WF_RESOURCES table. Description Raises an exception to the caller by supplying a correct error number and token substituted message for the name of the error message provided. The error messages contain tokens that need to be replaced with relevant values when the error message is raised. type: wfresgen [–v] –f <resourcefile> <source_file> Oracle Workflow APIs 8 – 105 . 2. The message files are located in the res/<language> subdirectory of the Oracle Workflow server directory structure for the standalone version of Oracle Workflow or on your server in the resource/<language> subdirectory under $FND_TOP for the Oracle Applications–embedded version of Oracle Workflow.RAISE Syntax procedure RAISE (name in varchar2).

In the Parameters window. 2. password and Oracle Net connect string or alias to your database and <source_file> with the full path and name of the source file you want to upload. You can run the Workflow Resource Generator concurrent program from the Submit Requests form or from the command line. Oracle Applications User’s Guide.msg) to the database table WF_RESOURCES. and <source_file> with the full path and name of your source file. type: wfresgen [–v] –u <username/password@database> <lang> <source_file> Replace <username/password@database> with the username. 3. For Oracle Workflow embedded in Oracle Applications: 1. to generate a resource file from a source file. Submit the Workflow Resource Generator concurrent program as a request.Replace <resourcefile> with the full path and name of the resource file you want to generate. then the program automatically uses the current database account as its destination. The optional –v flag causes the program to validate the source file against the binary resource file. enter values for the following parameters: Specify ”Database”. Note: Your system administrator needs to add this concurrent program to a request security group for the responsibility that you want to run this program from. See: Submitting a Request. Destination Type Destination 8 – 106 Oracle Workflow Guide . The optional –v flag causes the program to validate the source file against the database. If you specify ”File” for Destination Type. To run the concurrent program from the Submit Requests form. or ”File”. If you specify ”Database” for Destination Type. 4. navigate to the Submit Requests form. See: Overview of Concurrent Programs and Requests. • To upload seed data from a source file (. to upload seed data to the database table WF_RESOURCES from a source file (.msg). Oracle Applications System Administrator’s Guide. The Workflow Resource Generator program is registered as a concurrent program. then enter the full path and name of the resource file you wish to generate.

Rather than use the Submit Requests form. choose Submit to submit the request. type: WFRESGEN apps/pwd 0 Y FILE res_file source_file To upload seed data to the database table WF_RESOURCES from a source file..msg). you can also run the Workflow Resource Generator concurrent program from the command line using one of two commands.ext or <native path> Oracle Workflow APIs 8 – 107 ./]file. When you finish modifying the print and run options for this request. Choose OK to close the Parameters window. 7. 6. Specify the full path and name of your source file. replace res_file with the file specification of a resource file. type: WFRESGEN apps/pwd 0 Y DATABASE source_file Replace apps/pwd with the username and password to the APPS schema.Source 5.. and replace source_file with the file specification of a source file (. To generate a resource file from a source file. A file specification is specified as: @<application_short_name>:[<dir>/.

. arg2 in varchar2) is . ’*none*’. end if. ’*none*’). begin if (<error condition>) then Wf_Core. VARCHAR2.Token(’ARG2’. Procedure or function name.*/ package My_Package is procedure MySubFunction( arg1 in varchar2. First IN argument. Arguments (input) pkg_name proc_name arg1 argn Example 1 Name of the procedure package.. exception when others then 8 – 108 Oracle Workflow Guide . arg2). Wf_Core. .CONTEXT Syntax procedure CONTEXT (pkg_name proc_name arg1 arg2 arg3 arg4 arg5 IN IN IN IN IN IN IN VARCHAR2.. VARCHAR2 DEFAULT VARCHAR2 DEFAULT VARCHAR2 DEFAULT VARCHAR2 DEFAULT VARCHAR2 DEFAULT ’*none*’. ’*none*’. Description Adds an entry to the error stack to provide context information that helps locate the source of an error. or even without exceptions whenever an error condition is detected. Wf_Core. ’*none*’..Raise(’ERROR_NAME’). arg1). Use this procedure with predefined errors raised by calls to TOKEN( ) and RAISE( ). with custom–defined exceptions. nth IN argument. /*PL/SQL procedures called by function activities can use the WF_CORE APIs to raise and catch errors the same way the Workflow Engine does.Token(’ARG1’.

end if. result out varchar2) is . arg1. end MyFunction. raise... end MySubFunction.Clear...Wf_Core. See Also TOKEN: page 8 – 104 RAISE: page 8 – 105 Oracle Workflow APIs 8 – 109 . to_char(actid). itemkey in varchar2.Error_Name = ’ERROR_NAME’) then –– This is an error I wish to ignore. exception when others then if (Wf_Core. Wf_Core.Context(’My_Package’. end. arg2). exception when others then Wf_Core.Context(’My_Package’. raise. arg2). ’MyFunction’. funmode). begin .. actid in number. funcmode in varchar2. . itemtype.. begin MySubFunction(arg1. ’MySubFunction’. procedure MyFunction( itemtype in varchar2. itemkey. else raise.

Description Arguments (input) Translates the string value of a token by returning the value for the token as defined in WF_RESOURCES for your language setting. 8 – 110 Oracle Workflow Guide . tkn_name Token name.TRANSLATE Syntax function TRANSLATE (tkn_name IN VARCHAR2) return VARCHAR2.

A PL/SQL variable called ”persistence_type”in the WF_PURGE package defines how all the WF_PURGE APIs behave. . has expired. Persistence_type is set to TEMP by default and should not be changed. WF_PURGE can be used to purge obsolete runtime data for completed items and processes. See: Persistence Type: page 4 – 4. You may want to periodically purge this obsolete data from your system to increase performance. When the variable is set to TEMP. These APIs are defined in the PL/SQL package called WF_PURGE. whose persistence. in days. with the exception of TotalPerm( ). you should use the procedure TotalPerm( ).Workflow Purge APIs The following APIs can be called by an application program or workflow function in the runtime phase to purge obsolete runtime data. If you need to purge runtime data for item types with Permanent persistence. and to purge information for obsolete activity versions that are no longer in use. the WF_Purge APIs only purge data associated with Temporary item types.

you may inadvertently violate the persistence period for Temporary item types. Attention: You cannot run any WF_PURGE API for a future end date.TOTAL – purge both item data and activity data The other auxiliary routines purge only certain tables or classes of data. By entering a future end date. The complete list of purge APIs are as follows: • Items: page 8 – 113 • Activities: page 8 – 114 • Notifications: page 8 – 115 • Total: page 8 – 116 • TotalPERM: page 8 – 117 Oracle Workflow APIs 8 – 111 . The WF_PURGE APIs will display an error message if you enter a future end date. WF_PURGE. and notifications sent by them WF_PURGE.ACTIVITIES – purge obsolete versions of activities that are no longer in use by any item.ITEMS – purge all runtime data associated with completed items. and can be used in circumstances where a full purge is not desired. The three most commonly used procedures are: WF_PURGE. their processes.

you can use the standalone Oracle Workflow Manager component available through Oracle Enterprise Manager to submit and manage Workflow purge database jobs. For more information. See: Purge Obsolete Workflow Runtime Data: page 8 – 119.• AdHocDirectory: page 8 – 118 Note: If you are using the version of Oracle Workflow embedded in Oracle Applications. See Also Standard API for PL/SQL Procedures Called by Function Activities: page 7 – 3 Purging for Performance: page C – 8 8 – 112 Oracle Workflow Guide . Note: If you are using the standalone version of Oracle Workflow available with Oracle9i Release 2. please refer to the Oracle Workflow Manager online help. you can also use the ”Purge Obsolete Workflow Runtime Data” concurrent program to purge obsolete item type runtime status information.

the procedure purges all items in the specified itemtype. Arguments (input) itemtype itemkey Item type to delete. A string generated from the application object’s primary key. specify TRUE. enddate docommit Oracle Workflow APIs 8 – 113 . Specify TRUE or FALSE to indicate whether to commit data while purging. Leave this argument null to delete all item types. Deletes from the tables WF_NOTIFICATIONS. itemkey in varchar2 default null. and/or item key. If you want Items() to commit data as it purges to reduce rollback segments and improve performance. If you do not want to perform automatic commits. specify FALSE. If null. WF_ITEM_ACTIVITY_STATUSES.Items Syntax procedure Items (itemtype in varchar2 default null. The string uniquely identifies the item within an item type. docommit in boolean default TRUE). enddate in date default sysdate. and end date. Description Deletes all items for the specified item type. including process status and notification information. Specified date to delete up to. Defaults to TRUE. WF_ITEM_ATTRIBUTE_VALUES and WF_ITEMS.

Specified date to delete up to. WF_ACTIVITIES_TL. Internal name of activity to delete. Arguments (input) itemtype Item type associated with the activities you want to delete. Leave this argument null to delete activities for all item types.Activities Syntax procedure Activities (itemtype in varchar2 default null. Description Deletes old versions of eligible activities from the tables WF_ACTIVITY_ATTR_VALUES. and WF_ACTIVITIES that are associated with the specified item type. name in varchar2 default null. enddate in date default sysdate). WF_ACTIVITY_ATTRIBUTES. Leave this argument null to delete all activities for the specified item type. Note: You should call Items( ) before calling Activities( ) to avoid having obsolete item references prevent obsolete activities from being deleted. WF_ACTIVITY_ATTRIBUTES_TL. have an END_DATE less than or equal to the specified end date and are not referenced by an existing item as either a process or activity. WF_ACTIVITY_TRANSITIONS. WF_PROCESS_ACTIVITIES. name enddate 8 – 114 Oracle Workflow Guide .

Note: You should call Items( ) before calling Notifications( ) to avoid having obsolete item references prevent obsolete notifications from being deleted. Leave this argument null to delete notifications for all item types. enddate Oracle Workflow APIs 8 – 115 . have an END_DATE less than or equal to the specified end date and are not referenced by an existing item. Description Deletes old eligible notifications from the tables WF_NOTIFICATION_ATTRIBUTES and WF_NOTIFICATIONS that are associated with the specified item type. Arguments (input) itemtype Item type associated with the notifications you want to delete.Notifications Syntax procedure Notifications (itemtype in varchar2 default null. Specified date to delete up to. enddate in date default sysdate).

See: AdHocDirectory: page 8 – 118. docommit in boolean default TRUE). Use Total() as part of your routine maintenance during periods of low activity. Specify TRUE or FALSE to indicate whether to commit data while purging. enddate in date default sysdate. Leave this argument null to delete obsolete runtime data for all item types. If you want to purge a specific item key. Specified date to delete up to. Because Total() purges all activities and ad hoc role information.Total Syntax procedure Total (itemtype in varchar2 default null. specify TRUE. Total() also deletes ad hoc roles and users that are no longer in use by calling AdHocDirectory(). use Items(). If you want Total() to commit data as it purges to reduce rollback segments and improve performance. If you do not want to perform automatic commits. specify FALSE. Description Deletes all eligible obsolete runtime item type and activity data that is associated with the specified item type and has an END_DATE less than or equal to the specified end date. The string uniquely identifies the item within an item type. See: Items: page 8 – 113. the procedure purges all items in the specified itemtype. Defaults to TRUE. it is more costly in performance than Items(). Arguments (input) itemtype Item type associated with the obsolete runtime data you want to delete. If null. itemkey enddate docommit 8 – 116 Oracle Workflow Guide . A string generated from the application object’s primary key. itemkey in varchar2 default null.

Leave this argument null to delete obsolete runtime data for all item types. specify TRUE. A string generated from the application object’s primary key. itemkey enddate docommit Oracle Workflow APIs 8 – 117 . Description Deletes all eligible obsolete runtime data that is of persistence type ’PERM’ (Permanent) and that is associated with the specified item type and has an END_DATE less than or equal to the specified end date. itemkey in varchar2 default null. the procedure purges all items in the specified itemtype. Defaults to TRUE. docommit in boolean default TRUE). enddate in date default sysdate. If null.TotalPERM Syntax procedure TotalPERM (itemtype in varchar2 default null. Specified date to delete up to. TotalPERM() is similar to Total() except that TotalPERM() deletes only items with a persistence type of ’PERM’. See: Total: page 8 – 116. If you do not want to perform automatic commits. If you want TotalPERM() to commit data as it purges to reduce rollback segments and improve performance. Arguments (input) itemtype Item type associated with the obsolete runtime data you want to delete. specify FALSE. The string uniquely identifies the item within an item type. Specify TRUE or FALSE to indicate whether to commit data while purging.

Arguments (input) end_date Date to purge to. 8 – 118 Oracle Workflow Guide .AdHocDirectory Syntax procedure AdHocDirectory (end_date in date default sysdate). Description Purges all users and roles in the WF_LOCAL_* tables whose expiration date is less than or equal to the specified end_date and that are not referenced in any notification.

When you install and set up Oracle Applications and Oracle Workflow. Navigate to the Submit Requests form in Oracle Applications to submit the Purge Obsolete Workflow Runtime Data concurrent program. 2. Use the Submit Requests form in Oracle Applications to submit this concurrent program.Purge Obsolete Workflow Runtime Data Concurrent Program If you are using the version of Oracle Workflow embedded in Oracle Applications. In the Parameters window. Note: If you are using the version of Oracle Workflow embedded in Oracle Applications and you have implemented Oracle Applications Manager. Submit the Purge Obsolete Workflow Runtime Data concurrent program as a request. in days. if the persistence type is set to ’TEMP’. A string generated from the application object’s primary key. For more information. Minimum age of data to purge. enter values for the following parameters: Item type associated with the obsolete runtime data you want to delete. See: Overview of Concurrent Programs and Requests. Oracle Applications User’s Guide. The string uniquely identifies the item within an item type. The default is 0. If null. you can submit the Purge Obsolete Workflow Runtime Data concurrent program to purge obsolete item type runtime status information. your system administrator needs to add this concurrent program to a request security group for the responsibility that you want to run this program from. Item Type Item Key Age Oracle Workflow APIs 8 – 119 . " To Purge Obsolete Workflow Runtime Data 1. the program purges all items in the specified itemtype. Oracle Applications System Administrator’s Guide. please refer to the Oracle Applications Manager online help. Leave this argument null to delete obsolete runtime data for all item types. you can use Oracle Workflow Manager to submit and manage the Purge Obsolete Workflow Runtime Data concurrent program. See: Submitting a Request. The executable name for this concurrent program is ”Oracle Workflow Purge Obsolete Data” and its short name is FNDWFPR. 3.

Choose OK to close the Parameters window. choose Submit to submit the request.Persistence Type 4. either ’TEMP’ for Temporary or ’PERM’ for Permanent. Persistence type to be purged. When you finish modifying the print and run options for this request. The default is ’TEMP’. 5. 8 – 120 Oracle Workflow Guide .

• GetRoleUsers: page 8 – 123 • GetUserRoles: page 8 – 124 • GetRoleInfo: page 8 – 125 • GetRoleInfo2: page 8 – 126 • IsPerformer: page 8 – 127 • UserActive: page 8 – 128 • GetUserName: page 8 – 129 • GetRoleName: page 8 – 130 • GetRoleDisplayName: page 8 – 131 • SetAdHocUserStatus: page 8 – 132 • SetAdHocRoleStatus: page 8 – 133 • CreateAdHocUser: page 8 – 134 • CreateAdHocRole: page 8 – 136 • AddUsersToAdHocRole: page 8 – 138 • SetAdHocUserExpiration: page 8 – 139 • SetAdHocRoleExpiration: page 8 – 140 • SetAdHocUserAttr: page 8 – 141 • SetAdHocRoleAttr: page 8 – 142 • RemoveUsersFromAdHocRole: page 8 – 143 . as well as create and manage new ad hoc users and roles in the directory service.Workflow Directory Service APIs 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. These APIs are defined in a PL/SQL package called WF_DIRECTORY.

You must not create ad hoc users in the WF_LOCAL_USERS table. if you implement OID integration. Consequently. SetAdHocUserStatus( ). you must not use the CreateAdHocUser( ). because you risk discrepancies in your user information and unpredictable results if you use any tool other than OID to maintain users after integrating with OID. you must maintain your users only through OID. Oracle Workflow APIs 8 – 121 . SetAdHocUserExpiration( ). Attention: If you implement OID integration. or SetAdHocUserAttr( ) APIs in the WF_DIRECTORY package.

however. since Workflow roles are not maintained through OID.You can still use ad hoc roles. See Also Standard API for PL/SQL Procedures Called by Function Activities: page 7 – 3 8 – 122 Oracle Workflow Guide .

role A valid role name. users out UserTable).GetRoleUsers Syntax procedure GetRoleUsers (role in varchar2. Oracle Workflow APIs 8 – 123 . Description Arguments (input) Returns a table of users for a given role.

8 – 124 Oracle Workflow Guide . Description Arguments (input) Returns a table of roles that a given user is assigned to.GetUserRoles Syntax procedure GetUserRoles (user in varchar2. user A valid username. roles out RoleTable).

’MAILHTML’. Description Returns the following information about a role: • Display name • E–mail address • Notification Preference (’QUERY’. Oracle Workflow APIs 8 – 125 . Email_Address out varchar2. ’MAILATTH’. Notification_Preference out varchar2. Territory out varchar2). Language out varchar2. ’SUMMARY’) • Language • Territory Arguments (input) role A valid role name. Display_Name out varchar2. ’MAILTEXT’.GetRoleInfo Syntax procedure GetRoleInfo (Role in varchar2.

Role_Info_Tbl out wf_directory. ’SUMMARY’) • Language • Territory • E–mail address • FAX • Status • Expiration Date Arguments (input) role A valid role name. 8 – 126 Oracle Workflow Guide . Description Returns the following information about a role in a SQL table: • Display name • Description • Notification Preference (’QUERY’. ’MAILHTML’.GetRoleInfo2 Syntax procedure GetRoleInfo2 (Role in varchar2.wf_local_roles_tbl_type). ’MAILATTH’. ’MAILTEXT’.

IsPerformer Syntax function IsPerformer (user in varchar2. role in varchar2). A valid role name. Oracle Workflow APIs 8 – 127 . Description Arguments (input) Returns true or false to identify whether a user is a performer of a role. user role A valid username.

Arguments (input) username A valid username.UserActive Syntax function UserActive (username in varchar2) return boolean. Returns TRUE if the user has a status of ’ACTIVE’. Description Determines if a user currently has a status of ’ACTIVE’ and is available to participate in a workflow. otherwise it returns FALSE. 8 – 128 Oracle Workflow Guide .

p_orig_system_id ID of a row in the original repository table. Oracle Workflow APIs 8 – 129 . Description Arguments (input) Returns a Workflow display name and username for a user given the system information from the original user and roles repository. p_orig_system Code that identifies the original repository table. p_display_name out varchar2). p_name out varchar2.GetUserName Syntax procedure GetUserName (p_orig_system in varchar2. p_orig_system_id in varchar2.

p_display_name out varchar2). p_orig_system_id in varchar2. p_orig_system_id ID of a row in the original repository table. Description Arguments (input) Returns a Workflow display name and role name for a role given the system information from the original user and roles repository.GetRoleName Syntax procedure GetRoleName (p_orig_system in varchar2. p_name out varchar2. 8 – 130 Oracle Workflow Guide . p_orig_system Code that identifies the original repository table.

pragma restrict_references(GetRoleDisplayName. Oracle Workflow APIs 8 – 131 . Description Arguments (input) Returns a Workflow role’s display name given the role’s internal name. WNDS. WNPS). p_role_name The internal name of the role.GetRoleDisplayName Syntax function GetRoleDisplayName (p_role_name in varchar2) return varchar2.

.SetAdHocUserStatus Syntax procedure SetAdHocUserStatus (user_name in varchar2. Description Sets the status of an ad hoc user as ’ACTIVE’ or ’INACTIVE’. status in varchar2 default ’ACTIVE’).

If null. because you risk discrepancies in your user information and unpredictable results if you use any tool other than OID to maintain users after integrating with OID. A status of ’ACTIVE’ or ’INACTIVE’ to set for the user. Arguments (input) Attention: If you implement Oracle Internet Directory integration. user_name status The internal name of the user. you must maintain your users only through OID. 8 – 132 Oracle Workflow Guide . the status is ’ACTIVE’. You must not use the SetAdHocUserStatus( ) API to update user information in the WF_LOCAL_USERS table.

If null. role_name status The internal name of the role.SetAdHocRoleStatus Syntax procedure SetAdHocRoleStatus (role_name in varchar2. A status of ’ACTIVE’ or ’INACTIVE’ to set for the role. Oracle Workflow APIs 8 – 133 . status in varchar2 default ’ACTIVE’). the status is ’ACTIVE’. Description Arguments (input) Sets the status of an ad hoc role as ’ACTIVE’ or ’INACTIVE’.

Description Creates a user at runtime by creating a value in the WF_LOCAL_USERS table. fax in varchar2 default null. display_name in out varchar2. This is referred to as an ad hoc user. language in varchar2 default null.CreateAdHocUser Syntax procedure CreateAdHocUser (name in out varchar2. status in varchar2 default ’ACTIVE’. email_address in varchar2 default null. description in varchar2 default null. territory in varchar2 default null. expiration_date in date default sysdate). notification_preference in varchar2 default ’MAILHTML’. .

Arguments (input) name Attention: If you implement Oracle Internet Directory integration. If you do not provide an display name. you must maintain your users only through OID. An internal name for the user. This procedure checks that the display name provided does not already exist in WF_USERS and returns an error if the display name already exists. You must not use the CreateAdHocUser( ) API to create new users in the WF_LOCAL_USERS table. The display name of the user. If you do not provide an internal name. the system generates an internal name for you where the name contains a prefix of ’~WF_ADHOC–’ followed by a sequence number. display_name 8 – 134 Oracle Workflow Guide . This procedure checks that the name provided does not already exist in WF_USERS and returns an error if the name already exists. because you risk discrepancies in your user information and unpredictable results if you use any tool other than OID to maintain users after integrating with OID. The name must less than 30 characters long and is all uppercase. the system generates one for you where the display name contains a prefix of ’~WF_ADHOC–’ followed by a sequence number.

the procedure sets the notification preference to ’MAILHTML’. and ’TMPLEAVE’. If null. If null. The value of the database NLS_TERRITORY initialization parameter that specifies the default territory–dependant date and numeric formatting used in the user’s notification session. the procedure defaults the expiration date to sysdate. If null. the procedure sets the status to ’ACTIVE’. territory description notification_ preference email_address fax status expiration_date See Also Setting Up an Oracle Workflow Directory Service: page 2 – 21 Oracle Workflow APIs 8 – 135 . If null. the procedure resolves this to the language setting of your current session. A optional electronic mail address for this user. The date at which the user is no longer valid in the directory service. ’INACTIVE’. ’EXTLEAVE’. ’MAILHTML’. ’MAILATTH’. Indicate how this user prefers to receive notifications: ’MAILTEXT’. The availability of the user to participate in a workflow process. An optional description for the user. The possible statuses are ’ACTIVE’. ’QUERY’ or ’SUMMARY’. If null. An optional Fax number for the user.language The value of the database NLS_LANGUAGE initialization parameter that specifies the default language–dependent behavior of the user’s notification session. the procedure resolves this to the territory setting of your current session.

the system generates an internal name for you where the name contains a prefix of ’~WF_ADHOC–’ followed by a sequence number. status in varchar2 default ’ACTIVE’. This procedure checks that the display name provided does not already exist in WF_ROLES and returns an error if the display name already exists. If null. This procedure checks that the name provided does not already exist in WF_ROLES and returns an error if the name already exists. role_display_name in out varchar2. The value of the database NLS_LANGUAGE initialization parameter that specifies the default language–dependent behavior of the user’s notification session.CreateAdHocRole Syntax procedure CreateAdHocRole (role_name in out varchar2. the system generates one for you where the display name contains a prefix of ’~WF_ADHOC–’ followed by a sequence number. language in varchar2 default null. The display name of the role. role_users in varchar2 default null. notification_preference in varchar2 default ’MAILHTML’. The name must less than 30 characters long and is all uppercase. role_description in varchar2 default null. Description Arguments (input) Creates a role at runtime by creating a value in the WF_LOCAL_ROLES table. email_address in varchar2 default null. the procedure resolves this to the language setting of your current session. The value of the database NLS_TERRITORY initialization parameter that specifies the default role_display_ name language territory 8 – 136 Oracle Workflow Guide . territory in varchar2 default null. If you do not provide an display name. fax in varchar2 default null. role_name An internal name for the role. expiration_date in date default sysdate). This is referred to as an ad hoc role. If you do not provide an internal name.

The possible statuses are ACTIVE. The availability of the role to participate in a workflow process. ’QUERY’ or ’SUMMARY’. role_users email_address fax status expiration_date See Also Setting Up an Oracle Workflow Directory Service: page 2 – 21 Oracle Workflow APIs 8 – 137 .territory–dependant date and numeric formatting used in the user’s notification session. using commas or spaces to delimit the list. Indicate how this role receives notifications: ’MAILTEXT’. role_description notification_ preference An optional description for the role. The date at which the role is no longer valid in the directory service. If null. Indicate the names of the users that belong to this role. A optional electronic mail address for this role or a mail distribution list defined by your electronic mail system. If null. EXTLEAVE. and TMPLEAVE. INACTIVE. An optional Fax number for the role. If null. the procedure resolves this to the territory setting of your current session. If null. ’MAILATTH’. ’MAILHTML’. the procedure sets the status to ’ACTIVE’. the procedure defaults the expiration date to sysdate. the procedure sets the notification preference to ’MAILHTML’.

role_users in varchar2). List of users delimited by spaces or commas. Description Arguments (input) Adds users to a existing ad hoc role. Users can be ad hoc users or users defined in an application.AddUsersToAdHocRole Syntax procedure AddUsersToAdHocRole (role_name in varchar2. but they must already be defined in the Oracle Workflow directory service. 8 – 138 Oracle Workflow Guide . role_name role_users The internal name of the ad hoc role.

. Description Updates the expiration date for an ad hoc user. expiration_date in date default sysdate).SetAdHocUserExpiration Syntax procedure SetAdHocUserExpiration (user_name in varchar2.

user_name expiration_date The internal name of the ad hoc user. you must maintain your users only through OID. You must not use the SetAdHocUserExpiration( ) API to update user information in the WF_LOCAL_USERS table. If null. Oracle Workflow APIs 8 – 139 . New expiration date. because you risk discrepancies in your user information and unpredictable results if you use any tool other than OID to maintain users after integrating with OID. the procedure defaults the expiration date to sysdate. Arguments (input) Attention: If you implement Oracle Internet Directory integration.

role_name expiration_date The internal name of the ad hoc role. the procedure defaults the expiration date to sysdate. New expiration date. Description Arguments (input) Updates the expiration date for an ad hoc role. If null. expiration_date in date default sysdate). 8 – 140 Oracle Workflow Guide .SetAdHocRoleExpiration Syntax procedure SetAdHocRoleExpiration (role_name in varchar2.

SetAdHocUserAttr Syntax procedure SetAdHocUserAttr (user_name in varchar2. email_address in varchar2 default null. Description Updates the attributes for an ad hoc user. . fax in varchar2 default null). display_name in varchar2 default null. notification_preference in varchar2 default null. territory in varchar2 default null. language in varchar2 default null.

the display name is not updated. the notification preference is not updated. A new display name for the ad hoc user. ’MAILATTH’. because you risk discrepancies in your user information and unpredictable results if you use any tool other than OID to maintain users after integrating with OID. user_name display_name notification_ preference The internal name of the ad hoc user to update. If null. A new fax number for the ad hoc user. If null. language territory email_address fax Oracle Workflow APIs 8 – 141 . A new value of the database NLS_TERRITORY initialization parameter for the ad hoc user. the territory setting is not updated. You must not use the SetAdHocUserAttr( ) API to update user information in the WF_LOCAL_USERS table. the fax number is not updated. If null. Arguments (input) Attention: If you implement Oracle Internet Directory integration. A new value of the database NLS_LANGUAGE initialization parameter for the ad hoc user. ’QUERY’ or ’SUMMARY’. If null. you must maintain your users only through OID. the language setting is not updated. A new notification preference of ’MAILTEXT’. ’MAILHTML’. If null. If null. A new valid electronic mail address for the ad hoc user. the electronic mail address is not updated.

the notification preference is not updated.SetAdHocRoleAttr Syntax procedure SetAdHocRoleAttr (role_name in varchar2. territory in varchar2 default null. If null. fax in varchar2 default null). A new valid electronic mail address for the ad hoc role. territory email_address fax 8 – 142 Oracle Workflow Guide . Description Arguments (input) Updates the attributes for an ad hoc role. the fax number is not updated. ’QUERY’ or ’SUMMARY’. role_name display_name notification_ preference language The internal name of the ad hoc role to update. the territory setting is not updated. the language setting is not updated. If null. If null. If null. A new fax number for the ad hoc role. the display name is not updated. notification_preference in varchar2 default null. email_address in varchar2 default null. A new value of the database NLS_LANGUAGE initialization parameter for the ad hoc role. display_name in varchar2 default null. ’MAILHTML’. If null. A new display name for the ad hoc role. language in varchar2 default null. If null. A new notification preference of ’MAILTEXT’. the electronic mail address is not updated. A new value of the database NLS_TERRITORY initialization parameter for the ad hoc role.

List of users to remove from the ad hoc role. Oracle Workflow APIs 8 – 143 . The users are delimited by commas or spaces.RemoveUsersFromAdHocRole Syntax procedure RemoveUsersFromAdHocRole (role_name in varchar2. Description Arguments (input) Removes users from an existing ad hoc role. all users are removed from the role. If null. role_name role_users The internal name of the ad hoc role. role_users in varchar2 default null).

These APIs are defined in a PL/SQL package called WF_LDAP.Workflow LDAP APIs Call the following APIs to synchronize local user information in your Workflow directory service with the users in an LDAP directory such as Oracle Internet Directory (OID). • Synch_changes: page 8 – 145 • Synch_all: page 8 – 146 • Schedule_changes: page 8 – 147 See Also Synchronizing Workflow Directory Services with Oracle Internet Directory: page 2 – 30 8 – 144 Oracle Workflow Guide .

it returns FALSE. and deletion. if it encounters an exception. if there are any changes. If the function completes successfully. otherwise. Synch_changes( ) stores the user attribute information in an attribute cache and raises the oracle.public. Description Determines whether there have been any user changes to an LDAP directory since the last synchronization by querying the LDAP change log records.user.Synch_changes Syntax function synch_changes return boolean. One event is raised for each changed user.change event to alert interested parties.apps. including creation. The function connects to the LDAP directory specified in the Global Workflow Preferences.wf. modification. See Also Synchronizing Workflow Directory Services with Oracle Internet Directory: page 2 – 30 Setting Global User Preferences: page 2 – 14 User Entry Has Changed Event: page 14 – 15 Oracle Workflow APIs 8 – 145 . it returns TRUE.

public. if it encounters an exception. it returns TRUE. Subsequently. otherwise. Because Synch_all( ) retrieves information for all users stored in the LDAP directory.change event to alert interested parties. The function connects to the LDAP directory specified in the Global Workflow Preferences. stores the user attribute information in an attribute cache. Description Retrieves all users from an LDAP directory. One event is raised for each user. or as required for recovery or cleanup.user.wf. If the function completes successfully. it returns FALSE. you should use this function only once during setup. you can use Synch_changes( ) or Schedule_changes( ) to retrieve only changed user information. Run Synch_all( ) to begin your Workflow directory service synchronization with Oracle Internet Directory if you implement OID integration. See Also Synchronizing Workflow Directory Services with Oracle Internet Directory: page 2 – 30 Setting Global User Preferences: page 2 – 14 User Entry Has Changed Event: page 14 – 15 Synch_changes: page 8 – 145 Schedule_changes: page 8 – 147 8 – 146 Oracle Workflow Guide .Synch_all Syntax function synch_all return boolean.apps. and raises the oracle.

The number of minutes in the interval to specify how often you want to run the Synch_changes( ) API. l_hour in pls_integer default 0. The default interval is ten minutes. The default value is zero. Arguments (input) l_day The number of days in the interval to specify how often you want to run the Synch_changes( ) API. Run Schedule_changes( ) to maintain your Workflow directory service synchronization with Oracle Internet Directory if you implement OID integration. Schedule_changes( ) submits a database job using the DBMS_JOB utility to run Synch_changes( ). The default value is zero. The default value is ten. l_minute in pls_integer default 10). Description Runs the Synch_changes( ) API repeatedly at the specified time interval to check for user changes in an LDAP directory and alert interested parties of any changes.Schedule_changes Syntax procedure schedule_changes (l_day in pls_integer default 0. l_hour l_minute See Also Synch_changes: page 8 – 145 Synchronizing Workflow Directory Services with Oracle Internet Directory: page 2 – 30 Oracle Workflow APIs 8 – 147 . The number of hours in the interval to specify how often you want to run the Synch_changes( ) API.

The API is defined in the PL/SQL package called WF_PREF. Valid preference names are: LANGUAGE TERRITORY MAILTYPE DMHOME DATEFORMAT p_preference_ name 8 – 148 Oracle Workflow Guide . specify the user as –WF_DEFAULT–. p_preference_name in varchar2) return varchar2. get_pref Syntax function get_pref (p_user_name in varchar2. p_user_name The internal name of the user. To retrieve the value for a global preference.Workflow Preferences API Call the following API to retrieve user preference information. The name of the user preference whose value you wish to retrieve. Description Arguments (input) Retrieves the value of the specified preference for the specified user.

Workflow Monitor APIs Call the following APIs to retrieve an access key or to generate a complete URL to access the various pages of the Workflow Monitor. All Workflow Monitor APIs are defined in the PL/SQL package called WF_MONITOR. • GetAccessKey: page 8 – 150 • GetDiagramURL: page 8 – 151 • GetEnvelopeURL: page 8 – 153 • GetAdvancedEnvelopeURL: page 8 – 155 .

Oracle Workflow APIs 8 – 149 . but moving forward. API. you should only use the two new APIs where appropriate. The functionality of the previous GetURL API correlates directly with the new GetDiagramURL. Attention: The GetURL API from earlier versions of Oracle Workflow is replaced by the GetEnvelopeURL and GetDiagramURL APIs. The current version of Oracle Workflow still recognizes the GetURL API.

Each process instance has separate access keys for running the Workflow Monitor in ’ADMIN’ mode or ’USER’ mode. A value of YES or NO. NO retrieves the access key password that runs the monitor in ’USER’ mode. YES directs the function to retrieve the access key password that runs the monitor in ’ADMIN’ mode. x_item_key varchar2. Description Retrieves the access key password that controls access to the Workflow Monitor. The item type and key together identify the process to report on. A string generated from the application object’s primary key.GetAccessKey Syntax function GetAccessKey (x_item_type varchar2. x_admin_mode 8 – 150 Oracle Workflow Guide . x_admin_mode varchar2) return varchar2. The string uniquely identifies the item within an item type. Arguments (input) x_item_type x_item_key A valid item type.

x_admin_mode in varchar2 default ’NO’) return varchar2. The base web agent string should be stored in the WF_RESOURCES table.GetDiagramURL( ) looks as follows: <webagent>/wf_monitor. The URL returned by the function WF_MONITOR. If <YES or NO> is YES. See: Setting Global User Preferences: page 2 – 14. the monitor runs in ’ADMIN’ mode and if NO. the monitor runs in ’USER’ mode. <item_type> and <item_key> represent the internal name of the item type and the item key that uniquely identify an instance of a process.GetDiagramURL Syntax function GetDiagramURL (x_agent in varchar2. wf_monitor. Arguments (input) x_agent The base web agent string defined for Oracle Workflow or Oracle Self–Service Web Applications in your Web server. and looks something like: http://<server. The wf_monitor. The URL displays the diagram for a specific instance of a workflow process in the Workflow Monitor operating in either ’ADMIN’ or ’USER’ mode. Description Can be called by an application to return a URL that allows access to the Workflow Monitor with an attached access key password.html represents the name of the PL/SQL package procedure that generates the Workflow Monitor diagram of the process instance. <access_key> represents the access key password that determines whether the monitor is run in ’ADMIN’ or ’USER’ mode.html?x_item_type=<item_type>&x_item_ke y=<item_key>&x_admin_mode=<YES or NO>&x_access_key=<access_key> <webagent> represents the base URL of the web agent configured for Oracle Workflow in your Web server. x_item_type in varchar2.com:portID>/<PLSQL_agent_path> Oracle Workflow APIs 8 – 151 .html procedure requires four arguments. x_item_key in varchar2.

This example returns a URL that displays the Workflow Monitor diagram for a process instance identified by the item type WFDEMO and item key 10022.TRANSLATE( ). ’WFDEMO’. NO retrieves the access key password that runs the monitor in ’USER’ mode.GetDiagramURL (WF_CORE. A value of YES or NO. x_admin_mode Example Following is an example of how you can call the GetDiagramUrl. A string generated from the application object’s primary key.Translate(’WF_WEB_AGENT’). ’NO’). ’10022’. your application must first retrieve the web agent string from the WF_RESOURCES token WF_WEB_AGENT by calling WF_CORE. See Also TRANSLATE: page 8 – 110 8 – 152 Oracle Workflow Guide . The string uniquely identifies the item within an item type. The item type and key together identify the process to report on. YES directs the function to retrieve the access key password that runs the monitor in ’ADMIN’ mode. See: Setting Global User Preferences: page 2 – 14. x_item_type x_item_key A valid item type.When calling this function. in ’USER’ mode: URL := WF_MONITOR.

See: Setting Global User Preferences: page 2 – 14.GetEnvelopeURL Syntax function GetEnvelopeURL (x_agent in varchar2.GetEnvelopeURL( ) looks as follows: <webagent>/wf_monitor. The URL returned by the function WF_MONITOR. x_item_type A valid item type. Arguments (input) x_agent The base web agent string defined for Oracle Workflow or Oracle Self–Service Web Applications in your Web server. and looks something like: http://<server. x_admin_mode in varchar2 default ’NO’) return varchar2.envelope?x_item_type=<item_type>&x_ite m_key=<item_key>&x_admin_mode=<YES or NO>&x_access_key=<access_key> <webagent> represents the base URL of the web agent configured for Oracle Workflow in your Web server. x_item_type in varchar2. See: Setting Global User Preferences: page 2 – 14. The URL displays the Notifications List for a specific instance of a workflow process in the Workflow Monitor. Description Can be called by an application to return a URL that allows access to the Workflow Monitor Notifications List with an attached access key password.com:portID>/<PLSQL_agent_path> When calling this function. your application must first retrieve the web agent string from the WF_RESOURCES token WF_WEB_AGENT by calling WF_CORE. wf_monitor. Oracle Workflow APIs 8 – 153 . The base web agent string should be stored in the WF_RESOURCES table. x_item_key in varchar2.envelope represents the name of the PL/SQL package procedure that generates the Workflow Monitor Notifications List for the process instance.TRANSLATE( ).

YES directs the function to retrieve the access key password that runs the monitor in ’ADMIN’ mode. NO retrieves the access key password that runs the monitor in ’USER’ mode.x_item_key A string generated from the application object’s primary key. A value of YES or NO. The string uniquely identifies the item within an item type. x_admin_mode See Also TRANSLATE: page 8 – 110 8 – 154 Oracle Workflow Guide . The item type and key together identify the process to report on.

x_item_type in varchar2.GetAdvancedEnvelopeURL( ) looks as follows if the x_options argument is null: Example <webagent>/wf_monitor.envelope?x_item_type=<item_type>&x_ite m_key=<item_key>&x_admin_mode=<YES or NO>&x_access_key=<access_key>&x_advanced=TRUE <webagent> represents the base URL of the web agent configured for Oracle Workflow in your Web server. The URL displays the Activities List for a specific instance of a workflow process in the Workflow Monitor. x_item_key in varchar2. your application must first retrieve the web agent string from the WF_RESOURCES token WF_WEB_AGENT by Oracle Workflow APIs 8 – 155 . The URL returned by the function WF_MONITOR. wf_monitor. The Activities List allows you to apply advanced filtering options in displaying the list of activities for a process instance. Description Can be called by an application to return a URL that displays the Workflow Monitor Activities List with an attached access key password.envelope represents the name of the PL/SQL package procedure that generates the Workflow Monitor Notifications List for the process instance. See: Setting Global User Preferences: page 2 – 14.com:portID>/<PLSQL_agent_path> When calling this function. Arguments (input) x_agent The base web agent string defined for Oracle Workflow or Oracle Self–Service Web Applications in your Web server. x_options in varchar2 default null) return varchar2. The base web agent string should be stored in the WF_RESOURCES table. x_admin_mode in varchar2 default ’NO’.GetAdvancedEnvelopeURL Syntax function GetAdvancedEnvelopeURL (x_agent in varchar2. and looks something like: http://<server.

If you leave this argument null. This allows you to append any specific options if you wish. A string generated from the application object’s primary key. NO retrieves the access key password that runs the monitor in ’USER’ mode. The string uniquely identifies the item within an item type. is returned.TRANSLATE( ). x_item_type x_item_key A valid item type. YES directs the function to retrieve the access key password that runs the monitor in ’ADMIN’ mode. A value of YES or NO. See: Setting Global User Preferences: page 2 – 14. Specify ’All’ if you wish to return a URL that displays the Activities List with all filtering options checked. The default is null. then a URL that displays the Activities List with no filtering options checked. x_admin_mode x_options See Also TRANSLATE: page 8 – 110 8 – 156 Oracle Workflow Guide . The item type and key together identify the process to report on.calling WF_CORE.

these view are installed in the same account as the Oracle Workflow server. WF_ITEM_ACTIVITY_STATUSES_V This view contains denormalized information about a workflow process and its activities’ statuses. Use this view to create custom queries and reports on the status of a particular item or process.Oracle Workflow Views Public views are available for accessing workflow data. If you are using the version of Oracle Workflow embedded in Oracle Applications. • WF_ITEM_ACTIVITY_STATUSES_V: page 8 – 157 • WF_NOTIFICATION_ATTR_RESP_V: page 8 – 159 • WF_RUNNABLE_PROCESSES_V: page 8 – 160 • WF_ITEMS_V: page 8 – 161 Note: These database views are public. If you are using the standalone version of Oracle Workflow. meaning they are available for you to use for your custom data requirements. these views are installed in the APPS account. This description does not mean that any privileges for these views have been granted to PUBLIC. The column descriptions of the view are as follows: Name Null? ––––––––––––––––––––––––––––––– –––––––– ROW_ID SOURCE ITEM_TYPE ITEM_TYPE_DISPLAY_NAME ITEM_TYPE_DESCRIPTION ITEM_KEY USER_KEY ITEM_BEGIN_DATE ITEM_END_DATE ACTIVITY_ID ACTIVITY_LABEL ACTIVITY_NAME ACTIVITY_DISPLAY_NAME ACTIVITY_DESCRIPTION ACTIVITY_TYPE_CODE ACTIVITY_TYPE_DISPLAY_NAME Type –––– ROWID CHAR(1) VARCHAR2(8) VARCHAR2(80) VARCHAR2(240) VARCHAR2(240) VARCHAR2(240) DATE DATE NUMBER VARCHAR2(30) VARCHAR2(30) VARCHAR2(80) VARCHAR2(240) VARCHAR2(8) VARCHAR2(80) Oracle Workflow APIs 8 – 157 .

EXECUTION_TIME ACTIVITY_BEGIN_DATE ACTIVITY_END_DATE ACTIVITY_STATUS_CODE ACTIVITY_STATUS_DISPLAY_NAME ACTIVITY_RESULT_CODE ACTIVITY_RESULT_DISPLAY_NAME ASSIGNED_USER ASSIGNED_USER_DISPLAY_NAME NOTIFICATION_ID OUTBOUND_QUEUE_ID ERROR_NAME ERROR_MESSAGE ERROR_STACK NUMBER DATE DATE VARCHAR2(8) VARCHAR2(80) VARCHAR2(30) VARCHAR2(4000) VARCHAR2(30) VARCHAR2(4000) NUMBER RAW(16) VARCHAR2(30) VARCHAR2(2000) VARCHAR2(4000) 8 – 158 Oracle Workflow Guide .

If you plan to create a custom ”voting” activity.WF_NOTIFICATION_ATTR_RESP_V This view contains information about the Respond message attributes for a notification group. See: Voting Activity: page 4 – 61. The column descriptions of the view are as follows: Name ––––––––––––––––––––––––––––––– GROUP_ID RECIPIENT_ROLE RECIPIENT_ROLE_DISPLAY_NAME ATTRIBUTE_NAME ATTRIBUTE_DISPLAY_NAME ATTRIBUTE_VALUE ATTRIBUTE_DISPLAY_VALUE MESSAGE_TYPE MESSAGE_NAME Null? –––––––– NOT NULL NOT NULL NOT NULL NOT NULL Type –––– NUMBER VARCHAR2(30) VARCHAR2(4000) VARCHAR2(30) VARCHAR2(80) VARCHAR2(2000) VARCHAR2(4000) VARCHAR2(8) VARCHAR2(30) NOT NULL NOT NULL Oracle Workflow APIs 8 – 159 . use this view to create the function that tallies the responses from the users in the notification group.

The column descriptions of the view are as follows: Name ––––––––––––––––––––––––––––––– ITEM_TYPE PROCESS_NAME DISPLAY_NAME Null? –––––––– NOT NULL NOT NULL NOT NULL Type –––– VARCHAR2(8) VARCHAR2(30) VARCHAR2(80) 8 – 160 Oracle Workflow Guide .WF_RUNNABLE_PROCESSES_V This view contains a list of all runnable workflow processes in the ACTIVITIES table.

WF_ITEMS_V This view is a select only version of the WF_ITEMS table. The column descriptions of the view are as follows: Name ––––––––––––––––––––––––––––––– ITEM_TYPE ITEM_KEY USER_KEY ROOT_ACTIVITY ROOT_ACTIVITY_VERSION OWNER_ROLE PARENT_ITEM_TYPE PARENT_ITEM_KEY PARENT_CONTEXT BEGIN_DATE END_DATE Type –––– VARCHAR2(8) VARCHAR2(240) VARCHAR2(240) NOT NULL VARCHAR2(30) NOT NULL NUMBER VARCHAR2(30) VARCHAR2(8) VARCHAR2(240) VARCHAR2(2000) NOT NULL DATE DATE Null? –––––––– NOT NULL NOT NULL Oracle Workflow APIs 8 – 161 .

. In Oracle Workflow.Workflow Queue APIs Oracle Workflow queue APIs can be called by an application program or a workflow function in the runtime phase to handle workflow Advanced Queues processing. These agents may be any application that is external to the database. Similarly an agent may enqueue some message to the inbound queue for the Workflow Engine to consume and process. Note: Background engines use a separate ’deferred’ queue. an ’outbound’ and an ’inbound’ queue are established. and a message in this context is different from the messages associated with notification activities. Note: An event in this context is different from the business events associated with the Business Event System. A package of data on the queue is referred to as an event or a message. All Oracle Workflow queue APIs are defined in a PL/SQL package called WF_QUEUE. Events are enqueued in the outbound queue for agents to consume and process. You must execute these queue APIs from the same Oracle Workflow account since the APIs are account dependent. The outbound and inbound queues facilitate the integration of external activities into your workflow processes.

we assume that you have prior knowledge of Oracle Advanced Queuing concepts and terminology. this workflow Advanced Queues processing will be implemented within the Business Event System using a specialized queue handler to handle dequeue and enqueue operations. Refer to the Oracle Application Developer’s Guide – Advanced Queuing for more information on Advanced Queues. Attention: In using these APIs. Note: In a future release. Queue APIs • EnqueueInbound: page 8 – 165 • DequeueOutbound: page 8 – 167 • DequeueEventDetail: page 8 – 170 • PurgeEvent: page 8 – 172 • PurgeItemtype: page 8 – 173 • ProcessInboundQueue: page 8 – 174 • GetMessageHandle: page 8 – 175 • DequeueException: page 8 – 176 8 – 162 Oracle Workflow Guide .

The internal stack is purely a storage area and you must eventually write each message that you create on the stack to the inbound queue. you should periodically write to the inbound queue to prevent the stack from growing too large.wf_payload_t. • ClearMsgStack: page 8 – 180 • CreateMsg: page 8 – 181 • WriteMsg: page 8 – 182 • SetMsgAttr: page 8 – 183 • SetMsgResult: page 8 – 184 Payload Structure Oracle Workflow queues use the datatype system. FUNCTION_NAME VARCHAR2(200) Table 8 – 5 (Page 1 of 2) Oracle Workflow APIs 8 – 163 .• Deferred_queue: page 8 – 177 • Inbound_queue: page 8 – 178 • Outbound_queue: page 8 – 179 Developer APIs for the Inbound Queue The following APIs are for developers who wish to write to the inbound queue by creating messages in the internal stack rather than using WF_QUEUE. The name of the function to execute. The item key of the event. Attribute Name Datatype Description ITEMTYPE ITEMKEY ACTID VARCHAR2(8) VARCHAR2(240) NUMBER The item type of the event.EnqueueInbound( ).wf_payload_t to define the payload for any given message. The following table lists the attributes of system. The function activity instance ID. The payload contains all the information that is required about the event. Note: For efficient performance.

In the inbound scenario. RESULT VARCHAR2(30) Table 8 – 5 (Page 2 of 2) See Also Standard API for PL/SQL Procedures Called by Function Activities: page 7 – 3 Advanced Queuing: Oracle Application Developer’s Guide – Advanced Queuing 8 – 164 Oracle Workflow Guide . the pairs are passed as all the attributes and attribute values of the function (activity attributes). In the outbound scenario. the pairs are passed as item attributes and item attribute values. An optional activity completion result. Possible values are determined by the function activity’s Result Type or can be an engine standard result.Attribute Name Datatype Description PARAM_LIST VARCHAR2(4000) A list of ”value_name=value” pairs.

overriding the result value. An item key is a string generated from the application object’s primary key. ”ATTR1=A^ATTR2=B^ATTR3=C”.EnqueueInbound Syntax procedure EnqueueInbound (itemtype in varchar2. as in the example. Description Enqueues the result from an outbound event onto the inbound queue. An outbound event is defined by an outbound queue message that is consumed by some agent. The string uniquely identifies the item within an item type. Possible values are determined by the function activity’s Result Type. actid in number. error_stack in varchar2 default null). Oracle Workflow launches that error process. if a corresponding error process is defined in the item type. itemkey in varchar2. The result value is only effective for successful completion. The item key of the event. Each pair must be delimited by the caret character (^). The function activity instance ID that this event is associated with. actid result attrlist Oracle Workflow APIs 8 – 165 . If you specify an external program error in the error_stack parameter. attrlist in varchar2 default null. Arguments (input) itemtype itemkey The item type of the event. A longlist of ”value name=value” pairs that you want to pass back as item attributes and item attribute values. Additionally. correlation in varchar2 default null. Oracle Workflow marks the external function activity as complete with the specified result when it processes the inbound queue. however. The item type and key together identify the process instance. result in varchar2 default null. If a specified value name does not exist as an item attribute. An optional activity completion result. Oracle Workflow marks the external function activity as complete with an ERROR status.

Specify an optional external program error that will be placed on Oracle Workflow’s internal error stack.Oracle Workflow creates the item attribute for you. the Workflow Engine creates a correlation identifier based on the Workflow schema name and the item type. correlation Specify an optional correlation identifier for the message to be enqueued. You can specify any text value up to a maximum length of 200 characters. If null. Oracle Advanced Queues allow you to search a queue for messages based on a specific correlation value. error_stack 8 – 166 Oracle Workflow Guide . of type varchar2.

navigation in number default 1.wf_payload_t. timeout out boolean). payload out system. Description Dequeues a message from the outbound queue for some agent to consume. message_handle in out raw. correlation in varchar2 default null. . itemtype in varchar2 default null.DequeueOutbound Syntax procedure DequeueOutbound (dequeuemode in number.

The first message is inherently the beginning of the queue.NEXT_MESSAGE. DBMS_AQ. Specify DBMS_AQ. you must remember to set the returned message handle to null. A value of DBMS_AQ. A mode of DBMS_AQ. dequeuemode A value of DBMS_AQ.LOCKED. the procedure dequeues the same message again. A mode of DBMS_AQ.FIRST_MESSAGE retrieves the first message that is available and matches the correlation criteria. to represent the locking behavior of the dequeue.LOCKED means to read and obtain a write lock on the message.NEXT_MESSAGE retrieves the next message that is available and matches the navigation Oracle Workflow APIs 8 – 167 .REMOVE means read the message and delete it. corresponding to the number 1 or 2 respectively.BROWSE means to read the message from the queue without acquiring a lock on the message. corresponding to the numbers 1.FIRST_MESSAGE or DBMS_AQ. otherwise. 2 and 3 respectively. A value of DBMS_AQ. where the lock lasts for the duration of the transaction. This may not be the behavior you want and may cause an infinite loop. Arguments (input) Attention: If you call this procedure within a loop. A mode of DBMS_AQ.REMOVE. to indicate the position of the message that will be retrieved. or DBMS_AQ.BROWSE.

correlation criteria. the correlation identifier is ignored. ’%’. Specify an optional message handle ID for the specific event to be dequeued. Oracle Advanced Queues allow you to search a queue for messages based on a specific correlation value. and lets you read through the queue. to specify the identifier string. The default is 1. You can use the Like comparison operator. the Workflow Engine creates a correlation identifier based on the Workflow schema name and the item type. If null. The item type of the event. If you specify a message handle ID. itemtype message_handle . correlation Specify an optional correlation identifier for the message to be dequeued.

FIRST_MESSAGE. i:=0. LOOP i:=i+1.OUTBOUNDQUEUE. else navigation_mode := dbms_aq.NEXT_MESSAGE. end if. Following is an example of code that loops through the outbound queue and displays the output.wf_payload_t. Example Attention: The timeout output returns TRUE when there is nothing further to read in the queue. 8 – 168 Oracle Workflow Guide . varchar2(30). –– always start with the first message then progress to next if i = 1 then navigation_mode := dbms_aq. boolean. declare event i msg_id queuename navigation_mode end_of_queue system. number. begin queuename:=wf_queue. number. raw(16).

END LOOP. msg_id. event.BROWSE.DequeueOutbound( dequeuemode payload navigation message_handle timeout if end_of_queue then exit. / => => => => => dbms_aq.param_list). Oracle Workflow APIs 8 – 169 .put_line(’Msg ’||to_char(i)||’ = ’|| event. navigation_mode.–– not interested in specific msg_id. wf_queue.itemkey ||’ ’||event. end.itemtype||’:’||event. –– print the correlation itemtype:itemKey dbms_output.actid||’ ’ ||event. end_of_queue). Leave it null so ––as to loop through all messages in queue msg_id :=null. end if.

Instead. message_handle in out raw. . which are part of the payload. navigation in number default 1. param_list out varchar2. This API is similar to DequeueOutbound except it does not reference the payload type. itemkey out varchar2. function_name. actid out number. the full event details for a given message. and param_list. itemtype in out varchar2. Description Dequeue from the outbound queue.DequeueEventDetail Syntax procedure DequeueEventDetail (dequeuemode in number. correlation in varchar2 default null. actid. function_name out varchar2. it outputs itemkey. timeout out boolean).

LOCKED means to read and obtain a write lock on the message.REMOVE.BROWSE means to read the message from the queue without acquiring a lock on the message. otherwise. A mode of DBMS_AQ.NEXTMESSAGE. corresponding to the numbers 1. This may not be the behavior you want and may cause an infinite loop. where the lock lasts for the duration of the transaction. dequeuemode A value of DBMS_AQ. A mode of DBMS_AQ. A mode of DBMS_AQ.FIRSTMESSAGE retrieves the first message that is available and matches the navigation 8 – 170 Oracle Workflow Guide . 2 and 3 respectively. you must remember to set the returned message handle to null.FIRSTMESSAGE or DBMS_AQ. corresponding to the number 1 or 2 respectively.LOCKED. or DBMS_AQ. DBMS_AQ. to indicate the position of the message that will be retrieved. Arguments (input) Attention: If you call this procedure within a loop.REMOVE means read the message and update or delete it. to represent the locking behavior of the dequeue.BROWSE. Specify DBMS_AQ. the procedure dequeues the same message again. A value of DBMS_AQ.

It also resets the position to the beginning of the queue. it defaults to the pseudocolumn USER. Specify an optional message handle ID for the specific event to be dequeued. The default is 1.correlation criteria. If acctname is null. Oracle Advanced Queues allow you to search a queue for messages based on a specific correlation value. the Workflow Engine creates a correlation identifier based on the Workflow schema name and the item type. If you specify a message handle ID. Specify an optional item type for the message to dequeue if you are not specifying a correlation. A value of DBMS_AQ. If null. You can use the Like comparison operator. to specify the identifier string. the correlation identifier is ignored.NEXTMESSAGE retrieves the next message that is available and matches the correlation criteria. The Oracle Workflow database account name. acctname itemtype message_handle . correlation Specify an optional correlation identifier for the message to be dequeued. ’%’.

Oracle Workflow APIs 8 – 171 . Attention: The timeout output returns TRUE when there is nothing further to read in the queue.

8 – 172 Oracle Workflow Guide .PurgeEvent Syntax procedure PurgeEvent (queuename in varchar2. Description Arguments (input) Removes an event from a specified queue without further processing. message_handle in raw). queuename message_handle The name of the queue from which to purge the event. The message handle ID for the specific event to purge.

correlation in varchar2 default null). If null. itemtype in varchar2 default null. the Workflow Engine creates a correlation identifier based on the Workflow schema name and the item type. Specify an optional correlation identifier for the message to be purged. An optional item type of the events to purge. You can use the Like comparison operator. queuename itemtype correlation The name of the queue from which to purge the events.PurgeItemType Syntax procedure PurgeItemType (queuename in varchar2. Description Arguments (input) Removes all events belonging to a specific item type from a specified queue without further processing. Oracle Advanced Queues allow you to search a queue for messages based on a specific correlation value. to specify the identifier string. Oracle Workflow APIs 8 – 173 . ’%’.

correlation in varchar2 default null). If correlation is null. Arguments (input) itemtype correlation An optional item type of the events to process. 8 – 174 Oracle Workflow Guide . The result of the completed event and the list of item attributes that are updated as a consequence of the completed event are specified by each message in the inbound queue. enter a correlation identifier. If you wish to process only messages with a specific correlation. the Workflow Engine creates a correlation identifier based on the Workflow schema name and the item type. See: EnqueueInbound: page 8 – 165. Description Reads every message off the inbound queue and records each message as a completed event.ProcessInboundQueue Syntax procedure ProcessInboundQueue (itemtype in varchar2 default null.

GetMessageHandle Syntax function GetMessageHandle (queuename in varchar2. itemtype in varchar2. Description Arguments (input) Returns a message handle ID for a specified message. actid in number. The item type and key together identify the process instance. Specify an optional correlation identifier for the message. actid correlation Oracle Workflow APIs 8 – 175 . queuename itemtype itemkey The name of the queue from which to retrieve the message handle. The string uniquely identifies the item within an item type. The function activity instance ID that this message is associated with. An item key is a string generated from the application object’s primary key. The item type of the message. correlation in varchar2 default null) return raw. itemkey in varchar2. If the correlation is null. The item key of the message. the Workflow Engine creates a correlation identifier based on the Workflow schema name and the item type.

a predefined subscription is triggered that launches the Default Event Error process. Arguments (input) queuename The name of the exception queue that has been enabled for dequeue.’ When the messages are dequeued from WF_ERROR. See Also Default Event Error Process: page 6 – 34 8 – 176 Oracle Workflow Guide .DequeueException Syntax procedure DequeueException (queuename in varchar2). Description Dequeues all messages from an exception queue and places the messages on the standard Business Event System WF_ERROR queue with the error message ’Message Expired.

DeferredQueue Syntax Description function DeferredQueue Returns the name of the queue and schema used by the background engine for deferred processing. Oracle Workflow APIs 8 – 177 .

The inbound queue contains messages for the Workflow Engine to consume. 8 – 178 Oracle Workflow Guide .InboundQueue Syntax Description function InboundQueue Returns the name of the inbound queue and schema.

OutboundQueue Syntax Description function OutboundQueue Returns the name of the outbound queue and schema. The outbound queue contains messages for external agents to consume. Oracle Workflow APIs 8 – 179 .

Clears the internal stack. 8 – 180 Oracle Workflow Guide .ClearMsgStack Syntax Description procedure ClearMsgStack. See: Developer APIs for the Inbound Queue: page 8 – 163.

actid Oracle Workflow APIs 8 – 181 . The item key of the message. The function activity instance ID that this message is associated with. The item type and key together identify the process instance. An item key is a string generated from the application object’s primary key. The string uniquely identifies the item within an item type.CreateMsg Syntax procedure CreateMsg (itemtype in varchar2. itemtype itemkey The item type of the message. actid in number). itemkey in varchar2. See: Developer APIs for the Inbound Queue: page 8 – 163. Description Arguments (input) Creates a new message in the internal stack if it doesn’t already exist.

The function activity instance ID that this message is associated with. The item key of the message. See: Developer APIs for the Inbound Queue: page 8 – 163. The item type and key together identify the process. Description Arguments (input) Writes a message from the internal stack to the inbound queue.WriteMsg Syntax procedure WriteMsg (itemtype in varchar2. actid 8 – 182 Oracle Workflow Guide . itemkey in varchar2. actid in number). The string uniquely identifies the item within an item type. itemtype itemkey The item type of the message. An item key is a string generated from the application object’s primary key.

itemtype itemkey The item type of the message. actid attrName attrValue Oracle Workflow APIs 8 – 183 . attrName in varchar2. See: Developer APIs for the Inbound Queue: page 8 – 163. The item type and key together identify the process instance. The value of the item attribute you wish to append. Description Arguments (input) Appends an item attribute to the message in the internal stack. itemkey in varchar2. An item key is a string generated from the application object’s primary key.SetMsgAttr Syntax procedure SetMsgAttr (itemtype in varchar2. The string uniquely identifies the item within an item type. The internal name of the item attribute you wish to append to the message. attrValue in varchar2). The function activity instance ID that this message is associated with. actid in number. The item key of the message.

The item type and key together identify the process instance. Possible values are determined by the activity’s Result Type. The string uniquely identifies the item within an item type. actid in number. The function activity instance ID that this message is associated with. An item key is a string generated from the application object’s primary key. The completion result for the message. The item key of the message. itemtype itemkey The item type of the message.SetMsgResult Syntax procedure SetMsgResult (itemtype in varchar2. Description Arguments (input) Sets a result to the message written in the internal stack. See: Developer APIs for the Inbound Queue: page 8 – 163. itemkey in varchar2. result in varchar2). actid result 8 – 184 Oracle Workflow Guide .

Document Management APIs .

The document management APIs are defined in a PL/SQL package called FND_DOCUMENT_MANAGEMENT: • get_launch_document_url: page 8 – 186 • get_launch_attach_url: page 8 – 187 • get_open_dm_display_window: page 8 – 188 • get_open_dm_attach_window: page 8 – 189 • set_document_id_html: page 8 – 190 See Also Standard API for PL/SQL Procedures Called by Function Activities: page 7 – 3 Oracle Workflow APIs 8 – 185 . Attention: Document management functionality is reserved for future use. This description of Oracle Workflow document management APIs is provided for reference only. as well as across multiple instances of DM systems from different vendors within the same network. All supported document management (DM) systems accommodate a URL interface to access documents. The following document management APIs can be called by user interface (UI) agents to return URLs or javascript functions that enable integrated access to supported document management systems. The document management APIs allow you to access documents across multiple instances of the same DM system.

True tells the procedure to return the URL with the paper clip attachment icon and translated prompt name. True or False. Arguments (input) username document_ identifier The username of the person accessing the document management system. The document identifier for the document you wish to display. This argument provides you the flexibility needed when you call this procedure from a form– or HTML–based UI agent. document_identifier in varchar2.get_launch_document_url Syntax procedure get_launch_document_url (username in varchar2. The upper frame contains a customizable company logo and a toolbar of Oracle Workflow–integrated document management functions. See: GetItemAttrDocument: page 8 – 59 and SetItemAttrDocument: page 8 – 51. You can retrieve the document identifier using the GetItemAttrDocument API. The document identifier should be stored as a value in an item attribute of type document. The screen is a frame set of two frames. display_icon 8 – 186 Oracle Workflow Guide . launch_document_url out varchar2). display_icon in Boolean. Description Returns an anchor URL that launches a new browser window containing the DM integration screen that displays the specified document. whereas False tells the procedure to return only the URL. The lower frame displays the specified document.

The upper frame contains a customizable company logo and a toolbar of Oracle Workflow–integrated document management functions. This argument provides you the flexibility needed when you call this procedure from a form– or HTML–based UI agent. display_icon Oracle Workflow APIs 8 – 187 . launch_attach_url out varchar2). Arguments (input) username callback_ function The username of the person accessing the document management system. The screen is a frame set of two frames. Description Returns an anchor URL that launches a new browser window containing a DM integration screen that allows you to attach a document. True tells the procedure to return the URL with the paper clip attachment icon and translated prompt name. callback_function in varchar2. whereas False tells the procedure to return only the URL. This callback function should be the callback_url syntax that is returned from the set_document_id_html API. display_icon in Boolean.get_launch_attach_url Syntax procedure get_launch_attach_url (username in varchar2. True or False. The URL you would like to invoke after the user selects a document to attach. The lower frame displays the search screen of the default document management system.

The javascript function is used by all the document management functions that the user can perform on an attached document. 8 – 188 Oracle Workflow Guide .get_open_dm_display_window Syntax Description procedure get_open_dm_display_window Returns a javascript function that displays an attached document from the current UI. Each DM function also gives the current DM integration screen a name so that the Document Transport Window can call back to the javascript function in the current window.

Oracle Workflow APIs 8 – 189 . The javascript function is used by all the document management functions that the user can perform to attach a document. Each DM function also gives the current DM integration screen a name so that the Document Transport Window can call back to the javascript function in the current window.get_open_dm_attach_window Syntax Description procedure get_open_dm_attach_window Returns a javascript function to open a Document Transport Window when a user tries to attach a document in the current UI.

The resulting document identifier is determined by the document the user selects from the document management Search function. If a version is not specified. <documentid> is the document ID of the document. the latest version is assumed. <version> is the version of the document. callback_url out varchar2). as assigned by the document management system where the document resides.set_document_id_html Syntax procedure set_document_id_html (frame_name in varchar2. document_id_field_name in varchar2 document_name_field_name in varchar2. Arguments (input) frame_name form_name document_id_ field_name The name of the HTML frame that you wish to interact with in the current UI. The destination field is the field from which the user launches the DM integration screen to attach a document. Description Returns a callback URL that gets executed when a user selects a document from the DM system. Use this procedure to set the document that is selected from the document management Search function to the specified destination field of an HTML page. Pass the returned callback URL as an argument to the get_launch_attach_url API. The document identifier is a concatenation of the following values: DM:<node_id>:<document_id>:<version> <nodeid> is the node ID assigned to the document management system node as defined in the Document Management Nodes web page. The name of the HTML field in the current UI that you would like to write the resulting document identifier to. The name of the HTML form that you wish to interact with in the current UI. form_name in varchar2. 8 – 190 Oracle Workflow Guide .

Oracle Workflow APIs 8 – 191 .document_name_ The name of the HTML field in the current UI that field_name you would like to write the resulting document name to.

Overview of the Oracle Workflow Notification System Oracle Workflow communicates with users by sending notifications. Notifications contain messages that may request users to take some type of action and/or provide users with information. the Send() or SendGroup( ) API retrieves its value from the item type attribute that the message attribute references. In addition. there may be a number of runtime named values called item type attributes from which the message attributes draw their values. The Subject and Body of the message may include message attributes of source SEND. You define the notification activity and the notification message that the notification activity sends in the Workflow Builder. it uses the default value of the message attribute. which the Send( ) or SendGroup( ) 8 – 192 Oracle Workflow Guide . The Workflow Engine moves through the workflow process. If the procedure cannot find an item type attribute. E–mail notifications can contain HTML content or include other documents as optional attachments. • Identify the notification preference for of the performer role. A user can also receive notifications in their e–mail applications. The messages may have optional attributes that can specify additional resources and request responses. Notification Model A notification activity in a workflow process consists of a design–time message and a list of message attributes. if available. – If a message attribute is of source SEND. Sending Notification Messages The Send( ) or SendGroup( ) API are called by the Workflow Engine when it encounters a notification activity. These APIs do the following: • Check that the performer role of the notification activity is valid. the engine makes a call to the Notification System Send( ) or SendGroup( ) API to send the notification. • Look up the message attributes for the message. The Notification System delivers the messages and processes the incoming responses. Users can query their notifications online using the Notifications web page in an HTML browser. Once it encounters a notification activity. evaluating each activity in turn.

• ’Construct’ the notification content by inserting relevant information into the Workflow Notification tables. The Notification Mailer. • Transfer ownership of the notification to another role. MAILATTH or SUMMARY. the Send( ) or SendGroup() API checks to see if it has a default value assigned to it. MAILHTML. the notification activity gets marked as complete as soon as the Notification System delivers the message.API token replaces with each attribute’s current value when creating the notification. See: Special Handling of Voting Activities: page 8 – 195 If the performer role of a notification has a notification preference of MAILTEXT. • Update the notification activity’s status to ’NOTIFIED’ if a response is required or to ’COMPLETE’ if no response is required. the status is updated to ’WAITING’ instead of ’NOTIFIED’. Users who view their notifications from the Notifications Web page. • Forward the notification to another role. which polls the Notification table for these flags. Oracle Workflow APIs 8 – 193 . See: Processing a Notification Response: page 8 – 194. the notification is flagged with the corresponding value in the Notification table. are simply querying the Workflow Notification tables from this interface. See: Transferring a Notification: page 8 – 195. Note: In the case of a voting activity. – If a message includes a message attribute of source RESPOND. regardless of their notifications preferences. The procedure then uses these RESPOND attributes to create the default response section of the notification. then generates an e–mail version of that notification and sends it to the performer. A notification recipient can perform one of four actions with the notification: • Respond to the notification or close the notification if it does not require a response. where there are no RESPOND message attributes associated with it. Note: If a notification activity sends a message that is for the performer’s information only (FYI). See: Forwarding a Notification: page 8 – 194. See: Implementing the Notification Mailer: page 2 – 48.

then calls a notification callback function to execute the notification activity’s post–notification function (if it has one) in FORWARD mode. The Respond( ) API first calls a notification callback function to execute the notification activity’s post–notification function (if it has one) in RESPOND mode. that response value is also set as the result of the notification activity. If it doesn’t. The Forward( ) API validates the role. See: Processing a Timed Out Notification: page 8 – 195. the Notifications web page calls the Notification System’s Forward( ) API. It records only the eventual responder’s e–mail address and any Respond message attributes values included in the response. Respond( ) calls WF_ENGINE.CompleteActivity( ) to inform the engine that the notification activity is complete so it can transition to the next qualified activity. As an example. the post–notification function may verify whether the role that the notification is being forwarded to has appropriate authority to view and respond to the notification. If the notification message prompts for a response that is specified in the Result tab of the message’s property page. The post–notification function may interpret the response and perform tightly–coupled post–response processing. the Notifications web page or Notification Mailer assigns the response values to the notification response attributes and calls the notification Respond( ) API.• Ignore the notification and let it time out. Processing a Notification Response After a recipient responds. the response is aborted. See: Post–notification Functions: page 8 – 13. Respond( ) marks the notification as closed and then calls the notification callback function again in SET mode to update the corresponding item attributes with the RESPOND notification attributes values. See: Post–notification Functions: page 8 – 13. Forwarding a Notification If a recipient forwards a notification to another role. Finally. If the post–notification function raises an exception. the post–notification function may return an error and prevent the Forward operation from proceeding. 8 – 194 Oracle Workflow Guide . Note: The Notification System is not able to track notifications that are forwarded via e–mail. If no exception is raised.

passing along any appended comments. the post–notification function may verify whether the role that the notification is being transferred to has appropriate authority. the recipient must use the Notifications web page. Processing a Timed Out Notification Timed out notification or subprocess activities are initially detected by the background engine. The Transfer( ) API validates the role. along with any appended comments. so that an individual copy of the notification message is sent to each member of the Performer role. If it doesn’t.Forward( ) then forwards the notification to the new role. the post–notification function may return an error and prevent the Transfer operation from proceeding. Transfer( ) then assigns ownership of the notification to the new role. If an activity does have a time out value. Transferring a Notification If a recipient transfers the ownership of a notification to another role. the Notification web page calls the Notification System’s Transfer( ) API. and the current date and time exceeds that time out value. The Workflow Engine then resumes by trying to execute the activity to which the <Timeout> transition points. Note: Forward( ) does not update the owner or original recipient of the notification. then calls a notification callback function to execute the notification activity’s post–notification function (if it has one) in TRANSFER mode. Note: Recipients who view notifications from an e–mail application cannot transfer notifications. To transfer a notification. Note that a transfer is also recorded in the comments of the notification. As an example. the background engine marks that activity’s status as ’TIMEOUT’ and calls the Workflow Engine. Background engines set up to handle timed out activities periodically check for activities that have time out values specified. Special Handling of Voting Activities A voting activity by definition is a notification activity that: • Has its roles expanded. See: Post–notification Functions: page 8 – 13. Oracle Workflow APIs 8 – 195 .

• Has a post–notification function associated with it that contains logic in the RUN mode to process the polled responses from the Performer members to generate a single response that the Workflow Engine interprets as the result of the notification activity. Each API in turn calls the notification callback function to execute the post–notification function in RESPOND. They can also transfer the notification if they use the Notifications web page. but not enough responses are received to satisfy the voting criteria. that requires recipients to respond from a list of values. FORWARD. When the Notification System finishes executing the post–notification function in FORWARD or TRANSFER mode. respectively. respectively. The logic for TIMEOUT mode in a voting activity’s post–notification function should identify how to tally the votes received up until the timeout. Once the Notification System sends the notification for a voting activity. it carries out the Forward or Transfer operation. the Workflow Engine runs the post–notification function in CANCEL or TIMEOUT mode. the Workflow Engine then runs the post–notification function again in RUN mode. or Transfer() API depending on the action that the performer takes. The individual role members that each receive a copy of the notification message can then respond or forward the notification if they use either of the two notification interfaces to view the notification. See: Voting Activity: page 4 – 61. The voting activity’s status is updated to ’WAITING’ as soon as some responses are received.• Has a message with a specified Result. The notification user interface calls the appropriate Respond(). When the Notification System completes execution of the post–notification function in RESPOND mode. It calls the function in RUN mode after all responses are received to execute the vote tallying logic. 8 – 196 Oracle Workflow Guide . Forward(). or if it times out. respectively. or TRANSFER mode. Also if the voting activity is reset to be reexecuted as part of a loop. it marks the voting activity’s status as ’NOTIFIED’.

The APIs are stored in the PL. as Java methods. Many of these Notification APIs also have corresponding Java methods that you can call from any Java program to integrate with Oracle Workflow. The following list indicates whether the Notification APIs are available as PL/SQL functions/procedures. See: Oracle Workflow Java Interface: page 8 – 5./SQL package called WF_NOTIFICATION. . or both.Notification APIs The following APIs can be called by a notification agent to manage notifications for a notification activity.

Attention: Java is case–sensitive and all Java method names begin with a lower case letter to follow Java naming conventions. • Send: page 8 – 199—PL/SQL and Java • SendGroup: page 8 – 203—PL/SQL • Forward: page 8 – 205—PL/SQL and Java • Transfer: page 8 – 207—PL/SQL and Java • Cancel: page 8 – 209—PL/SQL and Java • CancelGroup: page 8 – 210—PL/SQL • Respond: page 8 – 211—PL/SQL and Java • Responder: page 8 – 212—PL/SQL and Java • VoteCount: page 8 – 213—PL/SQL and Java • OpenNotificationsExist: page 8 – 214—PL/SQL and Java • Close: page 8 – 215—PL/SQL and Java • AddAttr: page 8 – 216—PL/SQL and Java • SetAttribute: page 8 – 217—PL/SQL and Java • GetAttrInfo: page 8 – 219—PL/SQL and Java • GetInfo: page 8 – 220—PL/SQL and Java • GetText: page 8 – 221—PL/SQL • GetShortText: page 8 – 222—PL/SQL • GetAttribute: page 8 – 223—PL/SQL and Java • GetAttrDoc: page 8 – 225—PL/SQL and Java • GetSubject: page 8 – 226—PL/SQL and Java • GetBody: page 8 – 227—PL/SQL and Java Oracle Workflow APIs 8 – 197 .

• GetShortBody: page 8 – 228—PL/SQL • TestContext: page 8 – 229—PL/SQL • AccessCheck: page 8 – 230—PL/SQL and Java • WorkCount: page 8 – 231—PL/SQL and Java • getNotifications: page 8 – 232—Java • getNotificationAttributes: page 8 – 233—Java • WriteToClob: page 8 – 234—PL/SQL 8 – 198 Oracle Workflow Guide .

send_comment in varchar2 default null priority in number default null) return number. String messagType. Note: If you are using the Oracle Workflow Notification System and its e–mail–based or web–based notification client. String callback. context in varchar2 default null. BigDecimal priority) Description This function sends the specified message to a role. the procedure looks up the values of the attributes from the message attribute table or it can use an optionally supplied callback interface function to get the value from the item type attributes table. the Send procedure implicitly calls the WF_ENGINE. Java Syntax public static BigDecimal send (WFContext wCtx. then you must define your own callback function following a standard format and specify its name for the callback argument. msg_type in varchar2.Send PL/SQL Syntax function SEND (role in varchar2. Oracle Workflow APIs 8 – 199 . The notification ID must be used in all future references to the notification. msg_name in varchar2. String messageName. A callback function can also be used when a notification is responded to. due_date in date default null. If your message has message attributes. string sendComment. String context. See: Custom Callback Function: page 8 – 200. If you are using your own custom notification system that does not call the Workflow Engine.CB callback function. callback in varchar2 default null. String dueDate. String role. returning a notification ID if successful.

See: Oracle Workflow Context: page 8 – 6. The role name assigned as the performer of the notification activity. number_value in out number. text_value in out varchar2. You may provide your own custom callback function.Arguments (input) wCtx Workflow context information. The item type associated with the message. attr_type in varchar2. The message internal name. 8 – 200 Oracle Workflow Guide . Context information passed to the callback function. Required for the Java method only. but it must have the following specifications: procedure <name in callback argument> (command in varchar2. The date that a response is required. role msg_type or messagType msg_name or messageName due_date or dueDate callback context send_comment or A comment presented with the message. The callback function name used for communication of SEND and RESPOND source message attributes. Custom Callback Function A default callback function can be called at various points by the actions of the WF_NOTIFICATION APIs. This optional due date is only for the recipient’s information. date_value in out date). attr_name in varchar2. as derived from the #PRIORITY notification activity attribute. it has no effect on processing. If #PRIORITY does not exist or if the value is null. the Workflow Engine uses the default priority of the message. context in varchar2. sendComment priority The priority of the message.

numval. context. SET to set the value of an attribute. TRANSFER. That is. and date_value are mutually exclusive. textval. context attr_name attr_type text_value number_value date_value Note: The arguments text_value. Value of a date attribute if command is SET or value of a date attribute returned if command GET. TESTCTX. once for each RESPOND attribute. An attribute type if command is SET or GET. ERROR. dateval) Example 2 When the user responds to the notification. number_value. use only one of these arguments depending on the value of the attr_type argument. An attribute name to set/get if command is GET or SET. TESTCTX to test the current context by calling the item type’s Selector/Callback function. and RESPOND to execute the post–notification function in RESPOND mode. Example 1 For each SEND attribute. TRANSFER to execute the post–notification function in TRANSFER mode. the callback is called again. Use GET to get the value of an attribute. The format is <itemtype>:<itemkey>:<activityid>. Value of a number attribute if command is SET or value of a number attribute returned if command is GET. Oracle Workflow APIs 8 – 201 . When a notification is sent. ERROR to set the associated notification activity to a status of ’ERROR’.Arguments (input) command Specify GET. SET. FORWARD. Value of a text attribute if command is SET or value of text attribute returned if command is GET. COMPLETE to indicate that the response is complete. FORWARD to execute the post–notification function in FORWARD mode. The context passed to SEND( ) or SendGroup( ). ’BUGNO’. call: your_callback(’GET’. ’NUMBER’. COMPLETE. or RESPOND as the action requested. the system calls the specified callback function once for each SEND attribute (to get the attribute value).

Example 3 Then finally the Notification System calls the ’COMPLETE’ command to indicate the response is complete. your_callback(’COMPLETE’.your_callback(’SET’. dateval). ’COMPLETE’. context. attrtype. ’STATUS’. dateval). attrname. numval. context. textval. numval. ’TEXT’. 8 – 202 Oracle Workflow Guide .

Generally. See: Custom Callback Function: page 8 – 200. The item type associated with the message. the procedure looks up the values of the attributes from the message attribute table or it can use an optionally supplied callback interface function to get the value from the item type attributes table. Oracle Workflow APIs 8 – 203 . if successful. The message internal name. If you are using your own custom notification system. this function is called only if a notification activity has ’Expanded Roles’ checked in its properties page. then you must define your own callback function following a standard format and specify its name for the callback argument. send_comment in varchar2 default null priority in number default null) return number. Note: If you are using the Oracle Workflow Notification System and its e–mail–based or web–based notification client. If your message has message attributes. msg_type in varchar2. Description This function sends a separate notification to all the users assigned to a specific role and returns a number called a notification group ID. Arguments (input) role msg_type msg_name The role name assigned as the performer of the notification activity. due_date in date default null. See: Voting Activity: page 4 – 61.CB callback function. The notification group ID identifies that group of users and the notification they each received. context in varchar2 default null. callback in varchar2 default null. msg_name in varchar2. If Expanded Roles is not checked.SendGroup PL/SQL Syntax function SendGroup (role in varchar2. then the Send( ) function is called instead. A callback function can also be used when a notification is responded to. the Send procedure implicitly calls the WF_ENGINE.

The callback function name used for communication of SEND source message attributes. the Workflow Engine uses the default priority of the message. This optional due date is only for the recipient’s information. A comment presented with the message. as derived from the #PRIORITY notification activity attribute.due_date The date that a response is required. If #PRIORITY does not exist or if the value is null. The priority of the message. callback context send_comment priority 8 – 204 Oracle Workflow Guide . Context information passed to the callback function. it has no effect on processing.

out.println(”Delegate Test”). or comment Example The following code excerpt shows an example of how to call forward() in a Java program.println(”There are ” + count + ” open notification(s) for” + ” MBEECH”).java program. the forward is recorded in the USER_COMMENT field of the notification. See: Oracle Workflow Context: page 8 – 6. The role name of the person the note is reassigned to.Forward PL/SQL Syntax procedure FORWARD (nid in number. new_role in varchar2. Java Syntax public static boolean forward (WFContext wCtx. The Delegate feature in the Notification System calls this procedure. System. Also implicitly calls the Callback function specified in the Send or SendGroup function with FORWARD mode. forward_comment in varchar2 default null). The notification id.out. Existing notification attributes (including due date) are not refreshed or otherwise changed. nid new_role or newRole forward_comment An optional forwarding comment. The example code is from the WFTest. A comment can be supplied to explain why the forward is taking place. even though the original role recipient still maintains ownership of the notification activity. count = WFNotificationAPI. Note that when you forward a notification. System.workCount(ctx. BigDecimal nid.println(”Delegate nid ” + myNid + Oracle Workflow APIs 8 – 205 . // forward to MBEECH System. ”MBEECH”). Arguments (input) wCtx Workflow context information.out. String newRole String comment) Description This procedure delegates a notification to a new role to perform work. Required for the Java method only.

Please handle. ”MBEECH”). count = WFNotificationAPI. myNid. WFNotificationAPI.println(”There are ” + count + ” open notification(s) for” + ” MBEECH after Delegate.forward(ctx. System.workCount(ctx.out. ”MBEECH”. 8 – 206 Oracle Workflow Guide .”).”).” from BLEWIS to MBEECH”). ”Matt.

. forward_comment in varchar2 default null). It also implicitly calls the Callback function specified in the Send or SendGroup function with TRANSFER mode. The Transfer feature in the Notification System calls this procedure. A comment can be supplied to explain why the forward is taking place. String newRole String comment) Description This procedure forwards a notification to a new role and transfers ownership of the notification to the new role. Note that when you transfer a notification. Java Syntax public static boolean transfer (WFContext wCtx.Transfer PL/SQL Syntax procedure TRANSFER (nid in number. the transfer is recorded in the USER_COMMENT field of the notification. BigDecimal nid. new_role in varchar2.

System.out. Oracle Workflow APIs 8 – 207 . or comment Example The following code excerpt shows an example of how to call transfer() in a Java program.java program. The role name of the person the note is transferred to.println(”Transfer nid ” + myNid + ” from BLEWIS to MBEECH”). Arguments (input) wCtx Attention: Existing notification attributes (including due date) are not refreshed or otherwise changed except for ORIGINAL_RECIPIENT. which identifies the owner of the notification. // transfer to MBEECH System. Workflow context information. The notification id. See: Oracle Workflow Context: page 8 – 6.println(”Transfer Test”).out. Required for the Java method only. The example code is from the WFTest. nid new_role or newRole forward_comment An optional comment to append to notification.

WFNotificationAPI.”).out. ”MBEECH”). System. You own it now.transfer(ctx. count = WFNotificationAPI. ”MBEECH”. myNid. ”Matt.workCount(ctx.println(”There are ” + count + ” open notification(s) for” + p” MBEECH after Transfer. 8 – 208 Oracle Workflow Guide .”).

a ’Canceled’ e–mail is sent to the original recipient as a warning that the notification is no longer valid.Cancel PL/SQL Syntax procedure CANCEL (nid in number. BigDecimal nid. The notification id. Arguments (input) wCtx Workflow context information. The notification status is then changed to ’CANCELED’ but the row is not removed from the WF_NOTIFICATIONS table until a purge operation is performed. Required for the Java method only. String comment) Description This procedure may be invoked by the sender or administrator to cancel a notification. See: Oracle Workflow Context: page 8 – 6. Java Syntax public static boolean cancel (WFContext wCtx. cancel_comment in varchar2 default null). If the notification was delivered via e–mail and expects a response. An optional comment on the cancellation. nid cancel_comment or comment Oracle Workflow APIs 8 – 209 .

Generally. See: Voting Activity: page 4 – 61. cancel_comment in varchar2 default null). 8 – 210 Oracle Workflow Guide . then the Cancel( ) function is called instead. a ’Canceled’ e–mail is sent to the original recipient as a warning that the notification is no longer valid. Description This procedure may be invoked by the sender or administrator to cancel the individual copies of a specific notification sent to all users in a notification group. this function is called only if a notification activity has ’Expanded Roles’ checked in its properties page. The notification status is then changed to ’CANCELED’ but the rows are not removed from the WF_NOTIFICATIONS table until a purge operation is performed.CancelGroup PL/SQL Syntax procedure CancelGroup (gid in number. The notifications are identified by the notification group ID (gid). If the notification was delivered via e–mail and expects a response. If Expanded Roles is not checked. An optional comment on the cancellation. Arguments (input) gid cancel_comment The notification group id.

String comment. responder in varchar2 default null). BigDecimal nid. This may be useful to know especially if the notification is assigned to a multi–user role. respond_comment in varchar2 default null. The procedure marks the notification as ’CLOSED’ and communicates RESPOND attributes back to the database via the callback function (if supplied). See: Oracle Workflow Context: page 8 – 6. The notification id An optional comment on the response The user who responded to the notification. String responder) Description This procedure may be invoked by the notification agent (Notification Web page or e–mail agent) when the performer completes the response to the notification. The value stored in this column depends on how the user responds to the notification. The following table shows the value that is stored for each response mechanism. Java Syntax public static boolean respond (WFContext wCtx. Required for the Java method only. Response Mechanism Value Stored Web E–mail Table 8 – 6 (Page 1 of 1) Web login username E–mail username as displayed in the mail response Arguments (input) wCtx Workflow context information. nid comment responder Oracle Workflow APIs 8 – 211 . The information is stored in the RESPONDER column of the WF_NOTIFICATIONS table.Respond PL/SQL Syntax procedure RESPOND (nid in number. This procedure also accepts the name of the individual who actually responded to the notification.

BigDecimal nid) Description This function returns the responder of a closed notification. The notification id nid 8 – 212 Oracle Workflow Guide . Required for the Java method only.Responder PL/SQL Syntax function RESPONDER (nid in number) returns varchar2. See: Oracle Workflow Context: page 8 – 6. See: Respond: page 8 – 211. Arguments (input) wCtx Workflow context information. Java Syntax public static String responder (WFContext wCtx. If the notification was closed using the Web Notification interface the value returned will be a valid role defined in the view WF_ROLES. If the Notification was closed using the e–mail interface then the value returned will be an e–mail address.

PercentOfTotalPop out number. PercentOfVotes out number). Java Syntax public static WFTwoDDataSource voteCount (WFContext wCtx. The notification group id. BigDecimal gid. ResultCount out number. See: Oracle Workflow Context: page 8 – 6. See: Voting Activity: page 4 – 61. String resultCode) Description Counts the number of responses for a specified result code. Arguments (input) wCtx Workflow context information. ResultCode in varchar2. Use this procedure only if you are writing your own custom Voting activity. Result code to be tallied.VoteCount PL/SQL Syntax procedure VoteCount (gid in number. gid ResultCode Oracle Workflow APIs 8 – 213 . Required for the Java method only.

Use this procedure only if you are writing your own custom Voting activity. See: Oracle Workflow Context: page 8 – 6. Required for the Java method only.OpenNotificationsExist PL/SQL Syntax function OpenNotificationsExist (gid in number) return boolean. Arguments (input) wCtx Workflow context information. See: Voting Activity: page 4 – 61. Java Syntax public static boolean openNotificationsExist (WFContext wCtx. BigDecimal gid) Description This function returns ’TRUE’ if any notification associated with the specified notification group ID is ’OPEN’. gid 8 – 214 Oracle Workflow Guide . otherwise it returns ’FALSE’. The notification group id.

Close PL/SQL Syntax procedure Close (nid in number. responder in varchar2 default null). The user or role who responded to the notification. Java Syntax public static boolean close (WFContext wCtx. See: Oracle Workflow Context: page 8 – 6. Required for the Java method only. wCtx Workflow context information. BigDecimal nid. String responder) Description Arguments (input) This procedure Closes a notification. nid responder Oracle Workflow APIs 8 – 215 . The notification id.

”). myNid.println(”Add attribute ” + myAttr + ” failed. See: Oracle Workflow Context: page 8 – 6. The attribute name. if (WFNotificationAPI.AddAttr PL/SQL Syntax procedure AddAttr (nid in number. The attribute value. Required for the Java method only. as it is completely unvalidated by Oracle Workflow. } 8 – 216 Oracle Workflow Guide .java program. nid aname avalue Example The following code excerpt shows an example of how to call addAttr() in a Java program.out.addAttr(ctx. BigDecimal nid. The example code is from the WFTest. The notification id. String aName) Description Adds a new runtime notification attribute. You should perform validation and insure consistency in the use of the attribute. Arguments (input) wCtx Workflow context information. aname in varchar2). myAttr) == false) { System. Java Syntax public static boolean addAttr (WFContext wCtx.

The performer (responder) may set the value of RESPOND attributes. String aName. aname in varchar2. String aName. avalue in varchar2). Java Syntax public static boolean setAttrText (WFContext wCtx. BigDecimal aValue) public static boolean setAttrDate WFContext wCtx. procedure SetAttrNumber (nid in number. String aValue) public static boolean setAttrNumber (WFContext wCtx. String aValue) Description Used at both send and respond time to set the value of notification attributes. aname in varchar2. procedure SetAttrDate (nid in number. avalue in date). BigDecimal nid. Oracle Workflow APIs 8 – 217 . BigDecimal nid.SetAttribute PL/SQL Syntax procedure SetAttrText (nid in number. avalue in number). aname in varchar2. BigDecimal nid. The notification agent (sender) may set the value of SEND attributes. String aName.

} 8 – 218 Oracle Workflow Guide . myAttr. The attribute name.Arguments (input) wCtx Workflow context information.println(”set attribute ” + myAttr + ” to ” + value + ” failed.java program.out. The attribute value.”). Required for the Java method only. The example code is from the WFTest. value) == false) { System.setAttrDate(ctx. myNid. See: Oracle Workflow Context: page 8 – 6. The notification id. if (WFNotificationAPI. nid aname avalue Example The following code excerpt shows an example of how to call a setAttribute method in a Java program.

java program. aname in varchar2. Arguments (input) wCtx Workflow context information. myNid. The subtype is always SEND or RESPOND to indicate the attribute’s source. atype out varchar2. subtype out varchar2. subtype. // the first element is the attribute type myAttrType = (String) dataSource. dataSource = WFNotificationAPI.getData(0. The attribute name. displayDataSource(ctx. Oracle Workflow APIs 8 – 219 . Java Syntax public static WFTwoDataSource getAttrInfo (WFContext wCtx. The example code is from the WFTest. and format. nid aname Example The following code excerpt shows an example of how to call getAttrInfo() in a Java program. BigDecimal nid. Required for the Java method only. String aName) Description Returns information about a notification attribute. format out varchar2). myAttr). See: Oracle Workflow Context: page 8 – 6. The notification id.0). dataSource). such as its type.GetAttrInfo PL/SQL Syntax procedure GetAttrInfo (nid in number.getAttrInfo(ctx. if any is specified.

the due date and the status for the specified notification. Java Syntax public static WFTwoDDataSource getInfo (WFContext wCtx. priority out number.GetInfo PL/SQL Syntax procedure GetInfo (nid in number. message_type out varchar2. myNid). dataSource). 8 – 220 Oracle Workflow Guide . due_date out date.println(”Notification Info for nid ” + myNid). message_name out varchar2.java program. BigDecimal nid) Description Returns the role that the notification is sent to. // Notification Info System. Arguments (input) wCtx Workflow context information.getInfo(ctx. status out varchar2).out. nid Example The following code excerpt shows an example of how to call getInfo() in a Java program. the notification priority. dataSource = WFNotificationAPI. displayDataSource(ctx. role out varchar2. the item type of the message. the name of the message. Required for the Java method only. The example code is from the WFTest. See: Oracle Workflow Context: page 8 – 6. The notification id.

This function may return up to 32K characters. For views and forms. which returns text/plain • wf_notification. use GetShortText( ) which truncates values at 1950 characters.GetText PL/SQL Syntax function GetText (some_text in varchar2. If an error is detected. which returns null The default is null. nid in number. Notification ID of notification to use for token values. The display type of the message body that you are token substituting the text into.doc_text. Oracle Workflow APIs 8 – 221 . Arguments (input) some_text nid disptype Text to be substituted. Description Substitutes tokens in an arbitrary text string using token values from a particular notification. Valid display types are: • wf_notification. which returns text/html • wf_notification. You cannot use this function in a view definition or in an Oracle Forms Developer form. disptype in varchar2 default ’’) return varchar2. this function returns some_text unsubstituted rather than raise exceptions.doc_html.doc_attach.

nid in number) return varchar2. Use GetText( ) in other situations where you need to retrieve up to 32K characters. Arguments (input) some_text nid Text to be substituted. 8 – 222 Oracle Workflow Guide . where the field size is limited to 1950 characters. Notification ID of notification to use for token values. If an error is detected. Description Substitutes tokens in an arbitrary text string using token values from a particular notification. this function returns some_text unsubstituted rather than raise exceptions.GetShortText PL/SQL Syntax function GetShortText (some_text in varchar2. This function is meant for use in view definitions and Oracle Forms Developer forms. This function may return up to 1950 characters.

aname in varchar2) return number. BigDecimal nid. Java Syntax public static String getAttrText (WFContext wCtx. function GetAttrDate (nid in number. String aName) public static String getAttrDate WFContext wCtx. See: Oracle Workflow Context: page 8 – 6. aname in varchar2) return date. Required for the Java method only. BigDecimal nid. nid aname Oracle Workflow APIs 8 – 223 .GetAttribute PL/SQL Syntax function GetAttrText (nid in number. The notification id. String aName) public static BigDecimal getAttrNumber (WFContext wCtx. The message attribute name. BigDecimal nid. wCtx Workflow context information. String aName) Description Arguments (input) Returns the value of the specified message attribute. function GetAttrNumber (nid in number. aname in varchar2) return varchar2.

myAttr).getAttrNumber(ctx.getAttrDate(ctx.getAttrDoc(ctx. if (myAttrType == ”DATE”) { value = WFNotificationAPI. myNid.getAttrText(ctx.Example The following code excerpt shows an example of how to call the getAttribute methods in a Java program. } else if (myAttrType == ”DOCUMENT”) { value = WFNotificationAPI. // we get the value according to the type. } else if (myAttrType == ”NUMBER”) { value = (WFNotificationAPI. myAttr)). myAttr). } else value = WFNotificationAPI. myNid. System.java program.toString(). The example code is from the WFTest. myNid.println(myAttr. 8 – 224 Oracle Workflow Guide .out. myAttr. null). myNid.toString() + ” = ’” + value + ”’”).

Valid display types are: • wf_notification.GetAttrDoc PL/SQL Syntax function GetAttrDoc (nid in number. The display type of the document you wish to return. use GetAttrText( ). which returns null nid aname disptype Oracle Workflow APIs 8 – 225 . which returns text/html • wf_notification. String dispType) Description Returns the displayed value of a Document–type attribute. The notification id. as requested. which returns text/plain • wf_notification. Arguments (input) wCtx Workflow context information. String aName. Required for the Java method only. The referenced document appears in either plain text or HTML format. See: Oracle Workflow Context: page 8 – 6. BigDecimal nid.doc_text. The message attribute name. that is. the document key string instead of the actual document. If you wish to retrieve the actual attribute value. disptype in varchar2) return varchar2.doc_html.doc_attach. Java Syntax public static String getAttrDoc (WFContext wCtx. aname in varchar2.

See: Oracle Workflow Context: page 8 – 6. Required for the Java method only. Arguments (input) wCtx Workflow context information. nid 8 – 226 Oracle Workflow Guide .GetSubject PL/SQL Syntax function GetSubject (nid in number) return varchar2 Java Syntax public static String getSubject (WFContext wCtx. The notification id. Any message attribute in the subject is token substituted with the value of the corresponding message attribute. BigDecimal nid) Description Returns the subject line for the notification message.

doc_text. use GetShortBody( ) which truncates values at 1950 characters. depending on the message body type specified. String dispType) Description Returns the HTML or plain text message body for the notification. Valid display types are: • wf_notification.doc_attach. Any message attribute in the body is token substituted with the value of the corresponding notification attribute. which returns text/plain • wf_notification. Java Syntax public static String getBody (WFContext wCtx. The display type of the message body you wish to fetch. BigDecimal nid. See: Oracle Workflow Context: page 8 – 6. You cannot use this function in a view definition or in an Oracle Applications form. For views and forms. The notification id. Body text may contain tabs (which indicate indentation) and newlines (which indicate paragraph termination). disptype in varchar2 default ’’) return varchar2. Arguments (input) wCtx Workflow context information.doc_html. Note that the returned plain text message body is not formatted. Required for the Java method only. it should be wordwrapped as appropriate for the output device. which returns text/html • wf_notification. This function may return up to 32K characters. nid disptype Oracle Workflow APIs 8 – 227 . which returns null The default is null.GetBody PL/SQL Syntax function GetBody (nid in number.

Any message attribute in the body is token substituted with the value of the corresponding notification attribute. 8 – 228 Oracle Workflow Guide . where the field size is limited to 1950 characters. Note that the returned plain text message body is not formatted. this function returns the body unsubstituted or null if all else fails. Note: This function is intended for displaying messages in forms or views only. Body text may contain tabs (which indicate indentation) and newlines (which indicate paragraph termination).GetShortBody PL/SQL Syntax function GetShortBody (nid in number) return varchar2. it should be wordwrapped as appropriate for the output device. This function is meant for use in view definitions and Oracle Forms Developer forms. This function may return up to 1950 characters. Description Returns the message body for the notification. If an error is detected. rather than raise exceptions. Arguments (input) nid The notification id. Use GetBody( ) in other situations where you need to retrieve up to 32K characters.

or if no Selector/Callback function is implemented. It returns FALSE if the context check fails. Description Tests if the current context is correct by calling the Item Type Selector/Callback function. This function returns TRUE if the context check is OK. Oracle Workflow APIs 8 – 229 . Arguments (input) nid The notification id.TestContext PL/SQL Syntax function TestContext (nid in number) return boolean.

String accessString) Description Returns a username if the notification access string is valid and the notification is open. See: Oracle Workflow Context: page 8 – 6. The access string is automatically generated by the Notification Mailer and is used to verify the authenticity of both text and HTML versions of e–mail notifications. Required for the Java method only. otherwise it returns null. Java Syntax public static String accessCheck (WFContext wCtx. in the format: nid/nkey where nid is the notification ID and nkey is the notification key. Arguments (input) wCtx Workflow context information. The access string. access_str or accessString 8 – 230 Oracle Workflow Guide .AccessCheck PL/SQL Syntax function AccessCheck (access_str in varchar2) return varchar2.

Java Syntax public static BigDecimal workCount (WFContext wCtx.WorkCount PL/SQL Syntax function WorkCount (username in varchar2) return number. String userName) Description Arguments (input) Returns the number of open notifications assigned to a role. See: Oracle Workflow Context: page 8 – 6. wCtx Workflow context information. username Oracle Workflow APIs 8 – 231 . The internal name of a role. Required for the Java method only.

The string uniquely identifies the item within the item type. itemType itemKey 8 – 232 Oracle Workflow Guide . wCtx Workflow context information. The internal name of the item type. A string derived from the application object’s primary key. String itemType. The item type and key together identify the process instance. Required for the Java method only. String itemKey) Description Arguments (input) Returns a list of notifications for the specified item type and item key. See: Oracle Workflow Context: page 8 – 6.getNotifications Java Syntax public static WFTwoDDataSource getNotifications (WFContext wCtx.

// List available Notification Attributes System.getNotificationAttributes(ctx. The example code is from the WFTest. myNid). See: Oracle Workflow Context: page 8 – 6. nid Example The following code excerpt shows an example of how to call getNotificationAttributes() in a Java program. dataSource = WFNotificationAPI.getNotificationAttributes Java Syntax public static WFTwoDDataSource getNotificationAttributes (WFContext wCtx. The notification ID. displayDataSource(ctx.java program. wCtx Workflow context information. Oracle Workflow APIs 8 – 233 . Required for the Java method only. dataSource). BigDecimal nid) Description Arguments (input) Returns a list of notification attributes and their corresponding values for the specified notification ID.println(”List of Attributes for id ” + myNid ”:”).out.

Description Appends a character string to the end of a character large object (CLOB). Arguments (input) clob_loc msg_string The CLOB to which the string should be added. See Also To Define a Document Attribute: page 4 – 14 ”PL/SQL CLOB” Documents: page 7 – 19 8 – 234 Oracle Workflow Guide . A string of character data. You can use this procedure to help build the CLOB for a PL/SQL CLOB document attribute for a notification. msg_string in varchar2).WriteToClob PL/SQL Syntax procedure WriteToClob (clob_loc in out clob.

it triggers event subscriptions that specify the processing to execute for that event. You can also define event activities in the Workflow Builder to include business events in your workflow processes. and subscriptions in the Event Manager.Overview of the Oracle Workflow Business Event System The Oracle Workflow Business Event System leverages the Oracle Advanced Queuing infrastructure to communicate business events between systems. Subscriptions can include the following types of processing: • Executing custom code on the event information • Sending event information to a workflow process • Sending event information to named communication points called agents on the local system or external systems The event information communicated by the Business Event System is called an event message. You define events. The event message includes header properties to identify the event as well as event data describing what occurred. systems. See Also Managing Business Events: page 13 – 2 Event Activities: page 4 – 54 Oracle Workflow APIs 8 – 235 . agents. When a significant business event occurs in an internet or intranet application on a system.

sql. These datatypes include the following: • Agent structure: WF_AGENT_T • Parameter structure: WF_PARAMETER_T • Parameter list structure: WF_PARAMETER_LIST_T • Event message structure: WF_EVENT_T The Business Event System datatypes are created by a script called wftypes. which is located in the Oracle Workflow sql subdirectory for the standalone version of Oracle Workflow. or in the sql subdirectory under $FND_TOP for the version of Oracle Workflow embedded in Oracle Applications. Oracle Concepts 8 – 236 Oracle Workflow Guide . See Also User–Defined Datatypes.Business Event System Datatypes Oracle Workflow uses a number of abstract datatypes (ADTs) to model the structure and behavior of Business Event System data.

The following table lists the attributes of the WF_AGENT_T datatype.Agent Structure Oracle Workflow uses the object type WF_AGENT_T to store information about an agent in a form that can be referenced by an event message. getSystem PL/SQL Syntax MEMBER FUNCTION getSystem return varchar2 Description Returns the value of the SYSTEM attribute in a WF_AGENT_T object. The system where the agent is located. which you can use to retrieve and set the values of its attributes. Attribute Name Datatype Description NAME SYSTEM VARCHAR2(30) VARCHAR2(30) The name of the agent. • getName • getSystem • setName • setSystem getName PL/SQL Syntax MEMBER FUNCTION getName return varchar2 Description Returns the value of the NAME attribute in a WF_AGENT_T object. Oracle Workflow APIs 8 – 237 . Table 8 – 7 (Page 1 of 1) The WF_AGENT_T object type also includes the following methods.

setName PL/SQL Syntax MEMBER PROCEDURE setName (pName in varchar2) Description Arguments (input) Sets the value of the NAME attribute in a WF_AGENT_T object. pSystem The value for the SYSTEM attribute. pName The value for the NAME attribute. See Also Agents: page 13 – 22 8 – 238 Oracle Workflow Guide . setSystem PL/SQL Syntax MEMBER PROCEDURE setSystem (pSystem in varchar2) Description Arguments (input) Sets the value of the SYSTEM attribute in a WF_AGENT_T object.

The following table lists the attributes of the WF_PARAMETER_T datatype. getValue PL/SQL Syntax MEMBER FUNCTION getValue return varchar2 Oracle Workflow APIs 8 – 239 .Parameter Structure Oracle Workflow uses the object type WF_PARAMETER_T to store a parameter name and value pair in a form that can be included in an event message parameter list. • getName • getValue • setName • setValue getName PL/SQL Syntax MEMBER FUNCTION getName return varchar2 Description Returns the value of the NAME attribute in a WF_PARAMETER_T object. which you can use to retrieve and set the values of its attributes. The parameter value. Attribute Name Datatype Description NAME VALUE VARCHAR2(30) VARCHAR2(2000) The parameter name. WF_PARAMETER_T allows custom values to be added to the WF_EVENT_T event message object. Table 8 – 8 (Page 1 of 1) The WF_PARAMETER_T object type also includes the following methods.

pValue The value for the VALUE attribute.Description Returns the value of the VALUE attribute in a WF_PARAMETER_T object. setValue PL/SQL Syntax MEMBER PROCEDURE setValue (pValue in varchar2) Description Arguments (input) Sets the value of the VALUE attribute in a WF_PARAMETER_T object. pName The value for the NAME attribute. setName PL/SQL Syntax MEMBER PROCEDURE setName (pName in varchar2) Description Arguments (input) Sets the value of the NAME attribute in a WF_PARAMETER_T object. 8 – 240 Oracle Workflow Guide .

The WF_PARAMETER_LIST_T datatype can include up to 100 parameter name and value pairs.Parameter List Structure Oracle Workflow uses the named varying array (varray) WF_PARAMETER_LIST_T to store a list of parameters in a form that can be included in an event message. A description of this datatype is as follows: WF_PARAMETER_LIST_T • Maximum size: 100 • Element datatype: WF_PARAMETER_T Oracle Workflow APIs 8 – 241 . WF_PARAMETER_LIST_T allows custom values to be added to the WF_EVENT_T event message object.

The standard queues that Oracle Workflow provides for the Business Event System. If the send date is set to a future date when an event is sent to an agent. the event message is propagated to that agent’s queue. the Business Event System and the Workflow Engine can only communicate events in this format. WF_EVENT_T defines the event message structure that the Business Event System and the Workflow Engine use to represent a business event. in a serialized form that is suitable for transmission outside the system. and subscription processing does not begin until the specified date. For example. all use WF_EVENT_T as their payload type. A smaller number indicates a higher priority. the event message is placed on the WF_DEFERRED queue. If the send date is set to a future date when an event is raised. called WF_IN. including any existing queues you already have defined on your system. SEND_DATE DATE 8 – 242 Oracle Workflow Guide . The send date can be set to the system date to indicate that the message is immediately available for dequeuing. If you want to use queues with an alternate payload type. you must create a queue handler to translate between the standard Workflow WF_EVENT_T structure and your custom payload type. Attribute Name Datatype Description PRIORITY NUMBER The priority with which the message recipient should dequeue the message. and WF_ERROR. 50 represents a normal priority. The following table lists the attributes of the WF_EVENT_T datatype. 1 represents a high priority. See: Setting Up Queues: page 2 – 97 and Standard APIs for a Queue Handler: page 7 – 23.Event Message Structure Oracle Workflow uses the object type WF_EVENT_T to store event messages. WF_DEFERRED. WF_OUT. This datatype contains all the header properties of an event message as well as the event data payload. Internally. The date and time when the message is available for dequeuing. or to a future date to indicate future availability. and 99 represents a low priority. but does not become available for the consumer to dequeue until the specified date.

The error stack provides context information to help you locate the source of an error. A set of additional details describing what occurred in the event.Attribute Name Datatype Description RECEIVE_DATE CORRELATION_ID DATE VARCHAR2(240) The date and time when the message is dequeued by an agent listener. A correlation identifier that associates this message with other messages. PARAMETER_LIST EVENT_NAME EVENT_KEY EVENT_DATA WF_PARAMETER_ LIST_T VARCHAR2(240) VARCHAR2(240) CLOB FROM_AGENT WF_AGENT_T TO_AGENT ERROR_ SUBSCRIPTION WF_AGENT_T RAW(16) ERROR_MESSAGE VARCHAR2(4000) ERROR_STACK VARCHAR2(4000) Table 8 – 9 (Page 2 of 2) The WF_EVENT_T object type also includes the following methods. An error stack of arguments that the Event Manager generates if an error occurs while processing this event. • Initialize: page 8 – 245 • getPriority: page 8 – 245 • getSendDate: page 8 – 245 Oracle Workflow APIs 8 – 243 . An error message that the Event Manager generates if an error occurs while processing this event. If a value is set for the correlation ID. A list of additional parameter name and value pairs. this attribute is initially null. The agent from which the event is sent. then that value is used as the item key if the event is sent to a workflow process. The event data can be structured as an XML document. This attribute is initially blank but can be set by a function. The agent to which the event should be sent (the message recipient). The internal name of the event. For locally raised events. The string that uniquely identifies the instance of the event. this is the subscription that was being executed when the error was encountered. which you can use to retrieve and set the values of its attributes. If an error occurs while processing this event.

• getReceiveDate: page 8 – 246 • getCorrelationID: page 8 – 246 • getParameterList: page 8 – 246 • getEventName: page 8 – 246 • getEventKey: page 8 – 247 • getEventData: page 8 – 247 • getFromAgent: page 8 – 247 • getToAgent: page 8 – 247 • getErrorSubscription: page 8 – 247 • getErrorMessage: page 8 – 248 • getErrorStack: page 8 – 248 • setPriority: page 8 – 248 • setSendDate: page 8 – 248 • setReceiveDate: page 8 – 249 • setCorrelationID: page 8 – 249 • setParameterList: page 8 – 249 • setEventName: page 8 – 250 • setEventKey: page 8 – 250 • setEventData: page 8 – 250 • setFromAgent: page 8 – 251 • setToAgent: page 8 – 251 • setErrorSubscription: page 8 – 251 • setErrorMessage: page 8 – 251 • setErrorStack: page 8 – 252 • Content: page 8 – 252 • Address: page 8 – 253 • AddParameterToList: page 8 – 253 • GetValueForParameter: page 8 – 253 Note: You can set the values of the EVENT_NAME. setEventKey. and EVENT_DATA attributes individually using the setEventName. or 8 – 244 Oracle Workflow Guide . EVENT_KEY. and setEventData methods.

you can set the values of the FROM_AGENT. and setSendDate methods. See: Address: page 8 – 253. and SEND__DATE attributes individually using the setFromAgent. initializing the EVENT_DATA attribute to EMPTY using the Empty_CLOB() function. See: Content: page 8 – 252. setToAgent. TO_AGENT. setPriority. . and setting all other attributes to NULL. PRIORITY. Similarly. Initialize PL/SQL Syntax STATIC PROCEDURE initialize (new_wf_event_t in out wf_event_t) Description Initializes a new WF_EVENT_T object by setting the PRIORITY attribute to 0.you can use the Content method to set all three event content attributes at once. or you can use the Address method to set all four address attributes at once.

Arguments (input) Attention: You must call the Initialize method before you can perform any further manipulation on a new WF_EVENT_T object. getPriority PL/SQL Syntax MEMBER FUNCTION getPriority return number Description Returns the value of the PRIORITY attribute in a WF_EVENT_T object. new_wf_event_t The WF_EVENT_T object to initialize. getSendDate PL/SQL Syntax MEMBER FUNCTION getSendDate return date Oracle Workflow APIs 8 – 245 .

8 – 246 Oracle Workflow Guide . getParameterList PL/SQL Syntax MEMBER FUNCTION getParameterList return wf_parameter_list_t Description Returns the value of the PARAMETER_LIST attribute in a WF_EVENT_T object. getCorrelationID PL/SQL Syntax MEMBER FUNCTION getCorrelationID return varchar2 Description Returns the value of the CORRELATION_ID attribute in a WF_EVENT_T object. getEventName PL/SQL Syntax MEMBER FUNCTION getEventName return varchar2 Description Returns the value of the EVENT_NAME attribute in a WF_EVENT_T object.Description Returns the value of the SEND_DATE attribute in a WF_EVENT_T object. getReceiveDate PL/SQL Syntax MEMBER FUNCTION getReceiveDate return date Description Returns the value of the RECEIVE_DATE attribute in a WF_EVENT_T object.

getEventKey PL/SQL Syntax MEMBER FUNCTION getEventKey return varchar2 Description Returns the value of the EVENT_KEY attribute in a WF_EVENT_T object. getErrorSubscription PL/SQL Syntax MEMBER FUNCTION getErrorSubscription Oracle Workflow APIs 8 – 247 . getToAgent PL/SQL Syntax MEMBER FUNCTION getToAgent return wf_agent_t Description Returns the value of the TO_AGENT attribute in a WF_EVENT_T object. getFromAgent PL/SQL Syntax MEMBER FUNCTION getFromAgent return wf_agent_t Description Returns the value of the FROM_AGENT attribute in a WF_EVENT_T object. getEventData PL/SQL Syntax MEMBER FUNCTION getEventData return clob Description Returns the value of the EVENT_DATA attribute in a WF_EVENT_T object.

getErrorStack PL/SQL Syntax MEMBER FUNCTION getErrorStack return varchar2 Description Returns the value of the ERROR_STACK attribute in a WF_EVENT_T object.return raw Description Returns the value of the ERROR_SUBSCRIPTION attribute in a WF_EVENT_T object. setSendDate PL/SQL Syntax MEMBER PROCEDURE setSendDate 8 – 248 Oracle Workflow Guide . getErrorMessage PL/SQL Syntax MEMBER FUNCTION getErrorMessage return varchar2 Description Returns the value of the ERROR_MESSAGE attribute in a WF_EVENT_T object. setPriority PL/SQL Syntax MEMBER PROCEDURE setPriority (pPriority in number) Description Arguments (input) Sets the value of the PRIORITY attribute in a WF_EVENT_T object. pPriority The value for the PRIORITY attribute.

pSendDate The value for the SEND_DATE attribute. pReceiveDate The value for the RECEIVE_DATE attribute. pCorrelationID The value for the CORRELATION_ID attribute. setParameterList PL/SQL Syntax MEMBER PROCEDURE setParameterList (pParameterList in wf_parameter_list_t) Description Sets the value of the PARAMETER_LIST attribute in a WF_EVENT_T object. Oracle Workflow APIs 8 – 249 . setReceiveDate PL/SQL Syntax MEMBER PROCEDURE setReceiveDate (pReceiveDate in date default sysdate) Description Arguments (input) Sets the value of the RECEIVE_DATE attribute in a WF_EVENT_T object. setCorrelationID PL/SQL Syntax MEMBER PROCEDURE setCorrelationID (pCorrelationID in varchar2) Description Arguments (input) Sets the value of the CORRELATION_ID attribute in a WF_EVENT_T object.(pSendDate in date default sysdate) Description Arguments (input) Sets the value of the SEND_DATE attribute in a WF_EVENT_T object.

pEventKey The value for the EVENT_KEY attribute. setEventData PL/SQL Syntax MEMBER PROCEDURE setEventData (pEventData in clob) Description Arguments (input) Sets the value of the EVENT_DATA attribute in a WF_EVENT_T object. pEventData The value for the EVENT_DATA attribute. setEventName PL/SQL Syntax MEMBER PROCEDURE setEventName (pEventName in varchar2) Description Arguments (input) Sets the value of the EVENT_NAME attribute in a WF_EVENT_T object. pEventName The value for the EVENT_NAME attribute. setEventKey PL/SQL Syntax MEMBER PROCEDURE setEventKey (pEventKey in varchar2) Description Arguments (input) Sets the value of the EVENT_KEY attribute in a WF_EVENT_T object.Arguments (input) pParameterList The value for the PARAMETER_LIST attribute. 8 – 250 Oracle Workflow Guide .

setFromAgent PL/SQL Syntax MEMBER PROCEDURE setFromAgent (pFromAgent in wf_agent_t) Description Arguments (input) Sets the value of the FROM_AGENT attribute in a WF_EVENT_T object. pFromAgent The value for the FROM_AGENT attribute. setToAgent PL/SQL Syntax MEMBER PROCEDURE setToAgent (pToAgent in wf_agent_t) Description Arguments (input) Sets the value of the TO_AGENT attribute in a WF_EVENT_T object. pToAgent The value for the TO_AGENT attribute. setErrorMessage PL/SQL Syntax MEMBER PROCEDURE setErrorMessage Oracle Workflow APIs 8 – 251 . setErrorSubscription PL/SQL Syntax MEMBER PROCEDURE setErrorSubscription (pErrorSubscription in raw) Description Arguments (input) Sets the value of the ERROR_SUBSCRIPTION attribute in a WF_EVENT_T object. pErrorSubscrip– tion The value for the ERROR_SUBSCRIPTION attribute.

pName pKey pData The value for the EVENT_NAME attribute. pErrorMessage The value for the ERROR_MESSAGE attribute. 8 – 252 Oracle Workflow Guide . pKey in varchar2.(pErrorMessage in varchar2) Description Arguments (input) Sets the value of the ERROR_MESSAGE attribute in a WF_EVENT_T object. The value for the EVENT_KEY attribute. EVENT_KEY. and EVENT_DATA. The value for the EVENT_DATA attribute. including EVENT_NAME. pErrorStack The value for the ERROR_STACK attribute. pData in clob) Description Arguments (input) Sets the values of all the event content attributes in a WF_EVENT_T object. setErrorStack PL/SQL Syntax MEMBER PROCEDURE setErrorStack (pErrorStack in varchar2) Description Arguments (input) Sets the value of the ERROR_STACK attribute in a WF_EVENT_T object. Content PL/SQL Syntax MEMBER PROCEDURE Content (pName in varchar2.

The value for the PRIORITY attribute. then the previous value of that parameter is overwritten with the specified value. Arguments (input) pName pValue The parameter name. and SEND_DATE. pSendDate in date) Description Arguments (input) Sets the values of the all address attributes in a WF_EVENT_T object. pToAgent in wf_agent_t. The parameter value. AddParameterToList PL/SQL Syntax MEMBER PROCEDURE AddParameterToList (pName in varchar2.Address PL/SQL Syntax MEMBER PROCEDURE Address (pOutAgent in wf_agent_t. pPriority in number. TO_AGENT. The value for the SEND_DATE attribute. pValue in varchar2) Description Adds a new parameter name and value pair to the list stored in the PARAMETER_LIST attribute of a WF_EVENT_T object. pOutAgent pToAgent pPriority pSendDate The value for the FROM_AGENT attribute. GetValueForParameter PL/SQL Syntax MEMBER FUNCTION GetValueForParameter Oracle Workflow APIs 8 – 253 . The value for the TO_AGENT attribute. including FROM_AGENT. If a parameter with the specified name already exists in the parameter list. PRIORITY.

This method begins at the end of the parameter list and searches backwards through the list. If no parameter with the specified name is found in the parameter list.(pName in varchar2) return varchar2 Description Returns the value of the specified parameter from the list stored in the PARAMETER_LIST attribute of a WF_EVENT_T object. Arguments (input) pName The parameter name. then the GetValueForParameter method returns NULL. 8 – 254 Oracle Workflow Guide .

including: • Initializing a new event message structure with the Initialize method .Example for Using Abstract Datatypes The following example shows some ways to use abstract datatype methods in a SQL script.

*/ wf_event_t. l_eventkey varchar2(100) := ’&eventkey’.sql: page 16 – 10.initialize(l_event_t). begin /*You must call wf_event_t. l_overrideagent_t wf_agent_t. l_clob clob. • Initializing a CLOB locator • Writing a text variable into a CLOB variable • Setting the content attributes of the event message structure with the Content method • Setting the address attributes of the event message structure with the Address method The example code is from the script wfevtenq. l_toagent varchar2(30) := ’&toagent’.initialize before you can manipulate a new wf_event_t object.sql. l_toagent_t wf_agent_t. Attention: You must call the Initialize method before you can perform any further manipulation on a new WF_EVENT_T object. l_tosystem varchar2(30) := ’&tosystem’. l_fromsystem varchar2(30) := ’&fromsystem’. l_fromagent_t wf_agent_t. Oracle Workflow APIs 8 – 255 . l_eventname varchar2(100) := ’&eventname’. l_msg varchar2(200) := ’&message’. declare l_overrideagent varchar2(30) := ’&overrideagent’. See: Wfevtenq. which enqueues an event message on a queue using an override agent. l_event_t wf_event_t. l_overridesystem varchar2(30) := ’&overridesystem’. l_fromagent varchar2(30) := ’&fromagent’.

write(l_clob. if l_msg is null then l_event_t. 50. DBMS_LOB. 1. wf_event.Address(l_fromagent_t. l_event_t. l_event_t. l_toagent_t := wf_agent_t(l_toagent. l_clob). l_fromsystem). l_overrideagent_t). null). l_fromagent_t := wf_agent_t(l_fromagent. l_eventkey.Content(l_eventname. end if.CALL).l_overrideagent_t := wf_agent_t(l_overrideagent.createtemporary(l_clob. l_eventkey. FALSE.Content(l_eventname.enqueue(l_event_t. length(l_msg). l_overridesystem). sysdate). l_tosystem). dbms_lob. end. l_msg). l_toagent_t. 8 – 256 Oracle Workflow Guide . else dbms_lob.

The maximum size of OMBAQ_PROPERTIES is 1000. See: Setting Up the WF_EVENT_OMB_QH Queue Handler: page 2 – 100 and Agents: page 13 – 22. which contains the message payload in CLOB format.PRIORITY WF_EVENT_T. OMBAQ_PROPERTY. and the datatype of its elements is a fourth ADT.Mapping Between WF_EVENT_T and OMBAQ_TEXT_MSG If you use Oracle8i. and another attribute called HEADER.str_value [name = EVENTKEY] Table 8 – 10 (Page 1 of 2) Oracle Workflow APIs 8 – 257 .str_value [name = PRIORITY] ombaq_properties(6). The following table shows how the attributes of the WF_EVENT_T message structure are mapped to the attributes within the OMBAQ_TEXT_MSG structure. WF_EVENT_T OMBAQ_TEXT_MSG WF_EVENT_T.str_value [name = SENDDATE] ombaq_properties(7). whose datatype is another ADT called OMBAQ_HEADER. OMBAQ_HEADER in turn contains an attribute called PROPERTIES.CORRELATION_ID WF_EVENT_T. Oracle Workflow provides a queue handler called WF_EVENT_OMB_QH which you can use to translate between the standard Workflow WF_EVENT_T message structure and the OMBAQ_TEXT_MSG structure.str_value [name = CORRELATIONID] ombaq_properties(9). whose datatype is a third ADT. you can optionally implement Oracle Message Broker (OMB) to propagate event messages between systems. the OMBAQ_TEXT_MSG datatype contains an attribute called TEXT_LOB. OMB queues require messages to be stored in a structure defined by a Java Message Service abstract datatype called OMBAQ_TEXT_MSG.EVENT_NAME WF_EVENT_T.RECEIVE_DATE WF_EVENT_T. a named varying array called OMBAQ_PROPERTIES.str_value [name = RECEIVEDATE] ombaq_properties(8).SEND_DATE WF_EVENT_T.EVENT_KEY ombaq_properties(5). Among other attributes.str_value [name = EVENTNAME] ombaq_properties(10).

The reserved words are: PRIORITY. RECEIVEDATE. ombaq_properties(115).SYSTEM WF_EVENT_T.str_value [name = <hundredth_parameter_name>] Table 8 – 10 (Page 2 of 2) Note: You can use any names you choose for the parameters in the parameter list for an event. ERRORSUBSCRIPTION.WF_EVENT_T OMBAQ_TEXT_MSG WF_EVENT_T.str_value [name = <first_parameter_name>] ..ERROR_STACK WF_EVENT_T..str_value [name = FROMAGENTNAME] ombaq_properties(2).ERROR_MESSAGE WF_EVENT_T.str_value [name = ERRORMESSAGE2] ombaq_properties(14).str_value [name = ERRORSTACK2] ombaq_properties(16).NAME WF_EVENT_T.ERROR_STACK WF_EVENT_T. FROMAGENTSYSTEM. CORRELATIONID.TO_AGENT. FROMAGENTNAME.TO_AGENT.FROM_AGENT. except the reserved words that are used for the other event properties.str_value [name = TOAGENTSYSTEM] ombaq_properties(11). ERRORMESSAGE2. TOAGENTNAME.PARAMETER_LIST .NAME WF_EVENT_T. ERRORSTACK1.str_value [name = TOAGENTNAME] ombaq_properties(4).PARAMETER_LIST text_lob (CLOB) ombaq_properties(1).SYSTEM WF_EVENT_T. WF_EVENT_T.. ERRORSTACK2 8 – 258 Oracle Workflow Guide .ERROR_SUBSCRIPTION WF_EVENT_T. EVENTKEY.ERROR_MESSAGE WF_EVENT_T.str_value [name = ERRORSTACK1] ombaq_properties(15).EVENT_DATA WF_EVENT_T..str_value [name = FROMAGENTSYSTEM] ombaq_properties(3). SENDDATE.FROM_AGENT. TOAGENTSYSTEM. ERRORMESSAGE1. EVENTNAME.str_value [name = ERRORMESSAGE1] ombaq_properties(13).str_value [name = ERRORSUBSCRIPTION] ombaq_properties(12).

Oracle Message Broker Administration Guide Oracle Workflow APIs 8 – 259 . See Also Oracle AQ Driver ADTs.Note: Oracle Message Broker and the OMBAQ_TEXT_MSG datatype are no longer used in Oracle9i. In Oracle9i. in place of Oracle Message Broker. you can use the Messaging Gateway and Internet access features of Oracle Advanced Queuing to propagate event messages.

• SetErrorInfo: page 8 – 273 • SetDispatchMode: page 8 – 274 • AddParameterToList: page 8 – 275 • AddParameterToListPos: page 8 – 276 • GetValueForParameter: page 8 – 277 • GetValueForParameterPos: page 8 – 278 8 – 260 Oracle Workflow Guide . These APIs are defined in a PL/SQL package called WF_EVENT. See: Workflow Agent Listener: page 8 – 272. • Raise: page 8 – 261 • Send: page 8 – 265 • NewAgent: page 8 – 267 • Test: page 8 – 268 • Enqueue: page 8 – 269 • Listen: page 8 – 270 Note: If you are using the version of Oracle Workflow embedded in Oracle Applications. you can also use the ”Workflow Agent Listener” concurrent program to listen for inbound event messages.Event APIs The Event APIs can be called by an application program or a workflow process in the runtime phase to communicate with the Business Event System and manage events.

the Event Manager places the event message on the standard WF_DEFERRED queue. Raise() sets the send date to the current system date. The event data can be passed to the Event Manager within the call to the Raise() API. The send date can optionally be set to indicate when the event should become available for subscription processing.Raise PL/SQL Syntax procedure Raise (p_event_name in varchar2. Note: If an event is deferred when it is raised. You can defer an event by setting the send date to a date later than the system date. event data. after first checking whether the event data is required by a subscription. If the event data is not already available in your application. See: Events: page 13 – 4 and Standard API for an Event Data Generate Function: page 7 – 21. where it remains in a WAIT state until the send date. the event retains its original Local source type when it is dequeued from the WF_DEFERRED queue. and also any active subscriptions by the local system to the Any event with a source type of Local. or the Event Manager can obtain the event data itself by calling the Generate function for the event. the event message becomes available for dequeuing and will be dequeued the next time an agent listener runs on the WF_DEFERRED queue. parameter list. Description Raises a local event to the Event Manager. p_event_data in clob default NULL. When an event is raised and is not deferred. Raise() creates a WF_EVENT_T structure for this event instance and sets the specified event name. or when an event that was deferred is dequeued from the WF_DEFERRED queue. the Event Manager begins subscription processing for the event. p_parameters in wf_parameter_list_t default NULL. and send date into the structure. In this case. When the send date arrives. you can improve performance by allowing the Event Manager to run the Generate function and generate the event data only when subscriptions exist that require that data. rather than always generating the event data from your application at runtime. If the send date is null. The Event Manager searches for and executes any active subscriptions by the local system to that event with a source type of Local. p_send_date in date default NULL). event key. p_event_key in varchar2. If no active subscriptions exist for the event that was raised Oracle Workflow APIs 8 – 261 .

If the event data is required but is not already provided. Arguments (input) p_event_name p_event_key The internal name of the event. An optional date to indicate when the event should become available for subscription processing. This behavior enables you to use subscriptions and their rule functions to perform validation. but instead are exposed to the code that called the Raise() procedure. If the event data is required but no Generate function is defined for the event. Oracle Workflow creates a default set of event data using the event name and event key. A string generated when the event occurs within a program or application. An optional list of additional parameter name and value pairs. the Event Manager calls the Generate function for the event to produce the event data. the Event Manager calls the Generate function for the event to produce the event data. Note: Any exceptions raised during Raise() processing are not trapped. The Event Manager checks each subscription before executing it to determine whether the subscription requires the event data. The Event Manager checks each subscription before executing it to determine whether the subscription requires the event data. See: Events: page 13 – 4 and Standard API for an Event Data Generate Function: page 7 – 21. 8 – 262 Oracle Workflow Guide . An optional set of information about the event that describes what occurred.(apart from subscriptions to the Any event). If the event data is required but is not already provided. with the same results as if the validation logic were coded inline. The event key uniquely identifies a specific instance of the event. p_event_data p_parameters p_send_date Example declare l_xmldocument varchar2(32000). Note: The Event Manager does not raise an error if the event is not defined. then Oracle Workflow executes any active subscriptions by the local system to the Unexpected event with a source type of Local.

raise( p_event_name => <EVENT_NAME>.write(l_eventdata. p_parameters => l_parameter_list). Then Raise the Event with the ** required parameters. p_event_key => ’<EVENT_KEY>’. l_parameter_list wf_parameter_list_t. begin /* ** If the complete event data is easily available. dbms_lob. FALSE. p_event_data => l_eventdata. Oracle Workflow APIs 8 – 263 . p_event_key => ’<EVENT_KEY>’. and we have the message now. p_parameters => l_parameter_list). elsif l_message = ’KEY’ then –– Raise the Event wf_event. ** set it. /* ** If we do require a message. p_event_key => <EVENT_KEY>. */ l_message := wf_event. p_parameters => l_parameter_list).test(’<EVENT_NAME>’).l_eventdata clob. end if. else –– Raise the Event without the message wf_event. –– Raise the Event with the message wf_event.raise( p_event_name => ’<EVENT_NAME>’. 1 . l_xmldocument). length(l_xmldocument).CALL).createtemporary(l_eventdata. DBMS_LOB. */ if l_message = ’MESSAGE’ then if l_xmldocument is not null then dbms_lob.raise( p_event_name => ’<EVENT_NAME>’. else we can just rely on the Event Generate ** Function callback code. l_message varchar2(10). we can ** optionally test if any subscriptions to this event ** require it (rule data = Message).

end.end if. See Also Any Event: page 14 – 10 Unexpected Event: page 14 – 12 8 – 264 Oracle Workflow Guide . /* ** Up to your own custom code to commit the transaction */ commit. /* ** Up to your own custom code to handle any major exceptions */ exception when others then null.

• You can also omit the To Agent if the From Agent uses a single–consumer queue for which you have defined a custom queue handler.) In this case. (The standard Workflow queue handlers work only with multi–consumer queues. For a single–consumer queue. Description Sends an event message from one agent to another. If the event message contains a To Agent but no specified From Agent. Oracle Application Developer’s Guide – Advanced Queuing.Send PL/SQL Syntax procedure Send (p_event in out wf_event_t). however. meaning the message is immediately available for dequeuing as soon as it is propagated. see: Subscription and Recipient Lists. If the send date is a future date. • You can omit the To Agent if the From Agent uses a multi–consumer queue with a subscriber list. the queue’s subscriber list determines which consumers can dequeue the message. For more information. Note: The subscriber list for a multi–consumer queue in Oracle Advanced Queuing is different from event subscriptions in the Oracle Workflow Business Event System. If the send date is blank. Oracle Application Developer’s Guide – Advanced Queuing. no specified consumer is required. or whichever type of propagation is implemented for the agents’ protocol. the event message is placed on the WF_ERROR queue for error handling. The send date within the event message indicates when the message should become available for the consumer to dequeue. If the event message contains both a From Agent and a To Agent. the message is sent from the default outbound agent that matches the queue type of the To Agent. the Send() procedure resets the value to the current system date. If the event message contains a From Agent but no specified To Agent. If no subscriber list is defined for that queue. the message is marked with a delay time corresponding to that date and does not become available for dequeuing until the delay time has passed. the message is placed on the outbound queue of the From Agent and then asynchronously delivered to the To Agent by AQ propagation. Oracle Workflow APIs 8 – 265 . see: Time Specification: Delay. For more information. the event message is placed on the From Agent’s queue without a specified recipient.

Arguments (input) p_event The event message. you should set the send date during subscription processing before Send() is called.Note: If you want to use the send date to determine when a message becomes available for dequeuing on the To Agent. including any properties set by the procedure. 8 – 266 Oracle Workflow Guide . Send() returns the final event message that was sent.

Oracle Workflow APIs 8 – 267 . Description Creates a WF_AGENT_T structure for the specified agent and sets the agent’s system and name into the structure. See: Agent Structure: page 8 – 237. Arguments (input) p_agent_guid The globally unique identifier of the agent.NewAgent PL/SQL Syntax function NewAgent (p_agent_guid in raw) return wf_agent_t.

Arguments (input) p_event_name The internal name of the event. but all such subscriptions require only the event key. or referencing an enabled event group that contains the event. • MESSAGE—At least one enabled local subscription on the event requires the complete event data. using the following result codes: • NONE—No enabled local subscriptions reference the event. Test() returns the most costly data requirement among these subscriptions. Description Tests whether the specified event is enabled and whether there are any enabled subscriptions by the local system referencing the event. or the event does not exist.Test PL/SQL Syntax function Test (p_event_name in varchar2) return varchar2. • KEY—At least one enabled local subscription references the event. 8 – 268 Oracle Workflow Guide .

Oracle Workflow APIs 8 – 269 . Otherwise. The outbound agent on whose queue the event message should be enqueued. The message recipient is set to the To Agent specified in the event message. Description Enqueues an event message onto a queue associated with an outbound agent. Arguments (input) p_event p_out_agent_ override The event message. You can optionally specify an override agent where you want to enqueue the event message.Enqueue PL/SQL Syntax procedure Enqueue (p_event in wf_event_t. Enqueue() uses the queue handler for the outbound agent to place the message on the queue. p_out_agent_override in wf_agent_t default null). the event message is enqueued on the From Agent specified within the message.

The Listen procedure exits after all event messages on the agent’s queue have been dequeued. you can use the standalone Oracle Workflow Manager component available through Oracle Enterprise Manager to submit and manage Workflow agent listener database jobs. The standard WF_EVENT_QH queue handler sets the date and time when an event message is dequeued into the RECEIVE_DATE attribute of the event message. please refer to the Oracle Workflow Manager online help. When an event is dequeued. and also any active subscriptions by the local system to the Any event with a source type of External.Listen PL/SQL Syntax procedure Listen (p_agent_name in varchar2). Custom queue handlers can also set the RECEIVE_DATE value if this functionality is included in the Dequeue API. Note: You can use the Check Setup web page to schedule Listen procedures for all active inbound and error queues. Description Monitors an agent for inbound event messages and dequeues messages using the agent’s queue handler. then Oracle Workflow executes any active subscriptions by the local system to the Unexpected event with a source type of External. Arguments (input) p_agent_name The name of the inbound agent. Note: If you are using the standalone version of Oracle Workflow available with Oracle9i Release 2. See Also Workflow Agent Listener Concurrent Program: page 8 – 272 Any Event: page 14 – 10 Unexpected Event: page 14 – 12 8 – 270 Oracle Workflow Guide . If no active subscriptions exist for the event that was received (apart from subscriptions to the Any event). the Event Manager searches for and executes any active subscriptions by the local system to that event with a source type of External. For more information. See: Scheduling Listeners for Local Inbound Agents: page 13 – 56.

sql: page 16 – 6 Standard APIs for a Queue Handler: page 7 – 23 Oracle Workflow APIs 8 – 271 .Wfagtlst.

enter the name of the agent that you want to monitor for inbound event messages. " To Listen for Inbound Event Messages 1. 5. See Also Listen: page 8 – 270 8 – 272 Oracle Workflow Guide . The executable name for this concurrent program is ”Workflow Agent Listener” and its short name is FNDWFLST. Submit the Workflow Agent Listener concurrent program as a request. choose Submit to submit the request. Oracle Applications User’s Guide. Note: If you are using the version of Oracle Workflow embedded in Oracle Applications and you have implemented Oracle Applications Manager. See: Submitting a Request. When you install and set up Oracle Applications and Oracle Workflow. Use the Submit Requests form in Oracle Applications to submit the Workflow Agent Listener. your system administrator needs to add this concurrent program to a request security group for the responsibility that you want to run this program from. Oracle Applications System Administrator’s Guide. please refer to the Oracle Applications Manager online help. 4.Workflow Agent Listener Concurrent Program If you are using the version of Oracle Workflow embedded in Oracle Applications. When you finish modifying the print and run options to define the schedule for this request. See: Overview of Concurrent Programs and Requests. In the Parameters window. For more information. you can use Oracle Workflow Manager to submit and manage the Workflow Agent Listener concurrent program. Navigate to the Submit Requests form in Oracle Applications to submit the Workflow Agent Listener concurrent program. 3. 2. you can submit the Listen procedure as a concurrent program to listen for inbound event messages. Choose OK to close the Parameters window.

The error message and error stack are set into the corresponding attributes of the event message. p_type in varchar2). Arguments (input) p_event p_type The event message. either ’ERROR’ or ’WARNING’. The error type. Oracle Workflow APIs 8 – 273 . The error name and error type are added to the PARAMETER_LIST attribute of the event message.SetErrorInfo PL/SQL Syntax procedure SetErrorInfo (p_event in out wf_event_t. Description Retrieves error information from the error stack and sets it into the event message.

SetDispatchMode PL/SQL Syntax procedure SetDispatchMode (p_mode in varchar2). Description Sets the dispatch mode of the Event Manager to either deferred or synchronous subscription processing. since it requires hard–coding the deferral in your application. Arguments (input) p_mode The dispatch mode: either ’ASYNC’ for deferred (asynchronous) subscription processing. You can call SetDispatchMode() with the mode ’SYNC’ to set the dispatch mode back to normal synchronous subscription processing. See Also Deferred Subscription Processing: page 13 – 41 Raise: page 8 – 261 8 – 274 Oracle Workflow Guide . To retain the flexibility to modify subscription processing without intrusion into the application. Note: This method of deferring subscription processing is not recommended and should only be used in exceptional circumstances. In this case. you can simply mark some or all of the individual subscriptions for deferral using the subscription phase numbers. In this mode. Call SetDispatchMode() with the mode ’ASYNC’ just before calling Raise() to defer all subscription processing forever for the event that you will raise. the phase number for each subscription determines whether the subscription is executed immediately or deferred. The subscriptions are not executed until the agent listener runs to dequeue the event from the WF_DEFERRED queue. or ’SYNC’ for synchronous subscription processing. the Event Manager places the event on the WF_DEFERRED queue before executing any subscriptions for that event.

Description Adds the specified parameter name and value pair to the end of the specified parameter list varray. p_parameterlist in out wf_parameter_list_t). p_value in varchar2. Arguments (input) p_name p_value p_parameterlist The parameter name. AddParameterToList() initializes it with the new parameter. Oracle Workflow APIs 8 – 275 . If the varray is null.AddParameterToList PL/SQL Syntax procedure AddParameterToList (p_name in varchar2. The parameter value. The parameter list.

AddParameterToListPos() initializes it with the new parameter. Arguments (input) p_name p_value p_parameterlist The parameter name. p_parameterlist in out wf_parameter_list_t). The procedure also returns the index for the position at which the parameter is stored within the varray. 8 – 276 Oracle Workflow Guide . Description Adds the specified parameter name and value pair to the end of the specified parameter list varray. The parameter value. p_position out integer. If the varray is null.AddParameterToListPos PL/SQL Syntax procedure AddParameterToListPos (p_name in varchar2. The parameter list. p_value in varchar2.

GetValueForParameter PL/SQL Syntax function GetValueForParameter (p_name in varchar2. The parameter list. Oracle Workflow APIs 8 – 277 . Arguments (input) p_name p_parameterlist The parameter name. p_parameterlist in wf_parameter_list_t) return varchar2. Description Retrieves the value of the specified parameter from the specified parameter list varray. GetValueForParameter() begins at the end of the parameter list and searches backwards through the list.

GetValueForParameterPos PL/SQL Syntax function GetValueForParameterPos (p_position in integer. p_position p_parameterlist The index representing the position of the parameter within the parameter list. The parameter list. 8 – 278 Oracle Workflow Guide . Description Arguments (input) Retrieves the value of the parameter stored at the specified position in the specified parameter list varray. p_parameterlist in wf_parameter_list_t) return varchar2.

The Workflow_Protocol and Error_Rule functions are used in predefined Oracle Workflow event subscriptions. The default rule function includes the following actions: • Sending the event message to a workflow process. if specified in the subscription definition • Sending the event message to an agent. but also raises an exception. A rule function specifies the processing that Oracle Workflow performs when the subscription’s triggering event occurs. Warning. if specified in the subscription definition Oracle Workflow also provides some other standard rule functions that you can use. The Log. The Error_Rule function performs the same processing as the Default_Rule function. These rule function APIs are defined in a PL/SQL package called WF_RULE. • Default_Rule: page 8 – 281 • Log: page 8 – 283 • Error: page 8 – 284 • Warning: page 8 – 285 • Success: page 8 – 286 • Workflow_Protocol: page 8 – 287 • Error_Rule: page 8 – 288 • SetParametersIntoParameterList: page 8 – 289 See Also Event Subscriptions: page 13 – 34 Oracle Workflow APIs 8 – 279 .Event Subscription Rule Function APIs The event subscription rule function APIs provide standard rule functions that you can assign to event subscriptions. This function is executed by default if no other rule function is specified for the subscription. The SetParametersIntoParameterList function adds the subscription parameters to the parameter list within the event message. and Success functions can be used for testing and debugging your application. The Workflow_Protocol function passes the event message to a workflow process to be sent to an agent. Oracle Workflow provides a standard Default_Rule function to perform basic subscription processing. Error.

Standard API for an Event Subscription Rule Function: page 7 – 25 8 – 280 Oracle Workflow Guide .

The subscription with the lower phase number will be executed first and will run your custom rule function on the event message. If you want to run a custom rule function on the event message before it is sent. and returns the status code ERROR. The default processing includes: • Sending the event message to a workflow process.Default_Rule and a phase of 20. Description Performs default subscription processing when no rule function is specified for an event subscription. Otherwise. if specified in the subscription definition • Sending the event message to an agent. and specify the workflow or agent to which you want to send the event. 2. When the event is passed to the second subscription. follow these steps: 1. Define a subscription to the relevant event with your custom rule function and a phase of 10. Define another subscription to the event with the rule function WF_EVENT. Note: If the event message is being sent to the Default Event Error workflow process. Raise the event to trigger the subscriptions. you can define one subscription with a low phase number that uses the custom rule function. Default_Rule() generates a new correlation ID to use as the item key for the process in order to ensure that the item key is unique. If you enter a rule function other than Default_Rule() for a subscription. and then define another subscription with a higher phase number that uses the default rule function to send the event. if specified in the subscription definition If either of these operations raises an exception. the modified event message will be sent to the workflow or agent you specified. For example. stores the error information in the event message. Default_Rule() traps the exception.Default_Rule PL/SQL Syntax function Default_Rule (p_subscription_guid in raw. p_event in out wf_event_t) return varchar2. 3. You can also call Default_Rule() to add the default send processing within a custom rule function. Default_Rule() returns the status code SUCCESS. Oracle Workflow does not automatically send the event message to the workflow and agent Oracle Workflow APIs 8 – 281 .

which you can optionally accomplish by calling Default_Rule(). Note: You may find it advantageous to define multiple subscriptions to an event with simple rule functions that you can reuse. 8 – 282 Oracle Workflow Guide . Instead. The event message. Arguments (input) p_subscription_ guid p_event The globally unique identifier of the subscription. rather than creating complex specialized rule functions that cannot be reused. you must explicitly include the send processing in your custom rule function. if you want to send the message from the same subscription.specified in the subscription. See: Standard API for an Event Subscription Rule Function: page 7 – 25.

Log. Next. p_event in out wf_event_t) return varchar2. connect to SQL*Plus.Log. As the Event Manager executes your subscriptions to the event in phase order. Define three subscriptions to the relevant event as follows: • Define the first subscription with a phase of 10 and the rule function WF_RULE. The event message. • Define the third subscription with a phase of 30 and the rule function WF_RULE. you should see the contents of the event message both before and after your custom rule function is run. This function should be used for debugging only. Execute the following command: set serveroutput on size 100000 Then raise the event using WF_EVENT. Description Logs the contents of the specified event message using DBMS_OUTPUT. Note: You should not assign Log() as the rule function for any enabled subscriptions in a production instance of Oracle Workflow. if you want to test a custom rule function that modifies the event message. For example.Log PL/SQL Syntax function Log (p_subscription_guid in raw. you can use Log() to show the event message both before and after your custom rule function is run.put_line and returns the status code SUCCESS. Use this function to output the contents of an event message to a SQL*Plus session for testing and debugging purposes.Raise. • Define the second subscription with a phase of 20 and your custom rule function. Arguments (input) p_subscription_ guid p_event The globally unique identifier of the subscription. Oracle Workflow APIs 8 – 283 .

When the listener runs on the WF_ERROR queue. Additionally. Error() will set that error message into the event message using setErrorMessage(). an error notification will be sent to the system administrator with the message ”Invalid value(s) passed for arguments. When the subscription is executed. p_event in out wf_event_t) return varchar2. you must enter a text string representing the internal name of an error message in the Parameters field for the subscription. define a subscription to the relevant event with the rule function WF_RULE. the Event Manager places the event message on the WF_ERROR queue and subscription processing for the event is halted. Description Returns the status code ERROR. when you assign this function as the rule function for a subscription. The text string you enter in the Parameters field must be a valid name of an Oracle Workflow error message. 8 – 284 Oracle Workflow Guide . Arguments (input) p_subscription_ guid p_event The globally unique identifier of the subscription.” which is the display name of the WFSQL_ARGS error message. Because Error() returns the status code ERROR.Error and enter WFSQL_ARGS in the Parameters field. You can use Error() as a subscription rule function if you want to send the system administrator an error notification with one of the predefined Workflow error messages whenever a particular event is raised. Then raise the event to trigger the subscription.Error PL/SQL Syntax function Error (p_subscription_guid in raw. See: setErrorMessage: page 8 – 251. For example. The names of the error messages provided by Oracle Workflow are stored in the NAME column of the WF_RESOURCES table for messages with a type of WFERR. Note: Error() does not raise any exception to the calling application when it completes normally. The event message.

a warning notification will be sent to the system administrator with the message ”Invalid value(s) passed for arguments.” which is the display name of the WFSQL_ARGS error message.Warning and enter WFSQL_ARGS in the Parameters field. Arguments (input) p_subscription_ guid p_event The globally unique identifier of the subscription. The event message. Oracle Workflow APIs 8 – 285 . p_event in out wf_event_t) return varchar2. The names of the error messages provided by Oracle Workflow are stored in the NAME column of the WF_RESOURCES table for messages with a type of WFERR. but subscription processing for the event still continues. when you assign this function as the rule function for a subscription.Warning PL/SQL Syntax function Warning (p_subscription_guid in raw. The text string you enter in the Parameters field must be a valid name of an Oracle Workflow error message. define a subscription to the relevant event with the rule function WF_RULE. Warning() will set that error message into the event message using setErrorMessage(). Note: Warning() does not raise any exception to the calling application when it completes normally. Then raise the event to trigger the subscription. the Event Manager places the event message on the WF_ERROR queue. When the subscription is executed. See: setErrorMessage: page 8 – 251. Because Warning() returns the status code WARNING. you must enter a text string representing the internal name of an error message in the Parameters field for the subscription. You can use Warning() as a subscription rule function if you want to send the system administrator a warning notification with one of the predefined Workflow error messages whenever a particular event is raised. Additionally. When the listener runs on the WF_ERROR queue. For example. Description Returns the status code WARNING.

you can modify one of the subscriptions by replacing its rule function with WF_RULE.Success PL/SQL Syntax function Success (p_subscription_guid in raw.Success. 8 – 286 Oracle Workflow Guide . This function removes the event message from the queue but executes no other code except returning the SUCCESS status code to the calling subscription. The event message. Arguments (input) p_subscription_ guid p_event The globally unique identifier of the subscription. it will return SUCCESS but not perform any other subscription processing. You can use Success for testing and debugging purposes while developing code for use with the Business Event System. This method can help you isolate a problem subscription. if you are trying to debug multiple subscriptions to the same event. Success() is analogous to the WF_STANDARD. leaving all other details for the subscription intact. For example.Noop procedure used in the standard Noop activity. p_event in out wf_event_t) return varchar2. When the subscription is executed. Description Returns the status code SUCCESS.

This function only sends the event message to the workflow process. Workflow_Protocol() is used as the rule function in several predefined subscriptions to Workflow Send Protocol and Event System Demonstration events. the workflow process places the event message on that agent’s queue for propagation to the inbound agent. If the subscription parameters include the parameter name and value pair ACKREQ=Y. If the workflow process raises an exception. The event message. See: Workflow Send Protocol: page 14 – 17 and Event System Demonstration: page 15 – 63. p_event in out wf_event_t) return varchar2. Otherwise. a default outbound agent will be selected.Workflow_Protocol PL/SQL Syntax function Workflow_Protocol (p_subscription_guid in raw. Arguments (input) p_subscription_ guid p_event The globally unique identifier of the subscription. which will in turn send the event message to the inbound agent specified in the subscription. Note: Workflow_Protocol() does not itself send the event message to the inbound agent. Workflow_Protocol() stores the error information in the event message and returns the status code ERROR. then the workflow process waits to receive an acknowledgement after sending the event message. Otherwise. Oracle Workflow APIs 8 – 287 . Description Sends the event message to the workflow process specified in the subscription. Workflow_Protocol() returns the status code SUCCESS. If the subscription also specifies an outbound agent. where you can model the processing that you want to send the event message on to the specified agent.

Error as the rule function for your error subscription and specify the workflow item type and process that you want the subscription to launch. Otherwise. Description Performs the same subscription processing as Default_Rule(). Enter WF_RULE. p_event in out wf_event_t) return varchar2. Arguments (input) p_subscription_ guid p_event The globally unique identifier of the subscription.Error_Rule PL/SQL Syntax function Error_Rule (p_subscription_guid in raw. See Also Unexpected Event: page 14 – 12 Any Event: page 14 – 10 8 – 288 Oracle Workflow Guide . The predefined subscriptions specify that the event should be sent to the Default Event Error process in the System: Error item type. if either of these operations encounters an exception. Error_Rule() reraises the exception so that the event is not placed back onto the WF_ERROR queue. including: • Sending the event message to a workflow process. You can also use this rule function with your own error subscriptions. if specified in the subscription definition • Sending the event message to an agent. Error_Rule() returns the status code SUCCESS. if specified in the subscription definition However. The event message. Error_Rule() is used as the rule function for the predefined subscriptions to the Unexpected event and to the Any event with the Error source type.

For a parameter with one of these names. The event message. except for any parameter named ITEMKEY or CORRELATION_ID. Description Sets the parameter name and value pairs from the subscription parameters into the PARAMETER_LIST attribute of the event message. Then subsequent subscriptions with higher phase numbers can access those parameters within the event message. Otherwise. You can use SetParametersIntoParameterList() as the rule function for a subscription with a lower phase number. to add predefined parameters from the subscription into the event message.SetParametersIntoParameterList PL/SQL Syntax function SetParametersIntoParameterList (p_subscription_guid in raw. p_event in out wf_event_t) return varchar2. SetParametersIntoParameterList() stores the error information in the event message and returns the status code ERROR. See Also Event Message Structure: page 8 – 242 Oracle Workflow APIs 8 – 289 . the function sets the CORRELATION_ID attribute of the event message to the parameter value. SetParametersIntoParameterList() returns the status code SUCCESS. Arguments (input) p_subscription_ guid p_event The globally unique identifier of the subscription. If these operations raise an exception.

• Parameters: page 8 – 291 • SubscriptionParameters: page 8 – 293 • AddCorrelation: page 8 – 294 • Generate: page 8 – 296 • Receive: page 8 – 298 8 – 290 Oracle Workflow Guide . the Event Manager. These APIs are defined in a PL/SQL package called WF_EVENT_FUNCTIONS_PKG.Event Function APIs The Event Function APIs provide utility functions that can be called by an application program. or a workflow process in the runtime phase to communicate with the Business Event System and manage events.

begin –– Initialize the datatype l_parameters := wf_event_functions_pkg. Description Parses a string of text that contains the specified number of parameters delimited by the specified separator. set serveroutput on declare l_parameters wf_event_functions_pkg.’/’).t_parameters. Use this function to separate the event key into its component values. p_numvalues in number.Parameters PL/SQL Syntax function Parameters (p_string in varchar2. dbms_output. dbms_output. The separator used to delimit the parameters in the string.put_line(’Value 1:’||l_parameters(1)). p_separator in varchar2) return t_parameters. Arguments (input) p_string p_numvalues p_separator Example A text string containing concatenated parameters. l_parameters := wf_event_functions_pkg.2).parameters(’1111/2222’. which is defined in the WF_EVENT_FUNCTIONS_PKG package.t_parameters(1. Oracle Workflow APIs 8 – 291 . The number of parameters contained in the string.put_line(’Value 2:’||l_parameters(2)).2. The following table describes the T_PARAMETERS datatype: Datatype Name Element Datatype Definition T_PARAMETERS Table 8 – 11 (Page 1 of 1) VARCHAR2(240) Parameters() is a generic utility that you can call in Generate functions when the event key is a concatenation of values separated by a known character. Parameters() returns the parsed parameters in a varray using the T_PARAMETERS composite datatype.

/ 8 – 292 Oracle Workflow Guide .end.

. Arguments (input) p_string p_key Example A text string containing the parameters defined for an event subscription. and then code different behavior for the rule function based on that value.SubscriptionParameters (l_parameters. See: AddCorrelation: page 8 – 294. –– –– This is where we will do some logic to determine –– if there is a parameter –– l_function := wf_event_functions_pkg.. SubscriptionParameters() is used to assign the value of the ITEMKEY subscription parameter to the l_function program variable.. which adds a correlation ID to an event message during subscription processing. . The example code is from the AddCorrelation function. you can call this function in a subscription rule function to retrieve the value of a subscription parameter.. <nameN>=<valueN> SubscriptionParameters() searches the text string for the specified parameter name and returns the value assigned to that name. Oracle Workflow APIs 8 – 293 .SubscriptionParameters PL/SQL Syntax function SubscriptionParameters (p_string in varchar2..’ITEMKEY’). Description Returns the value for the specified parameter from a text string containing the parameters defined for an event subscription. p_key in varchar2) return varchar2. In the following example. For instance.. The parameter name and value pairs in the text string should be separated by spaces and should appear in the following format: <name1>=<value1> <name2>=<value2> . The name of the parameter whose value should be returned. .

2. and specify the processing you want to perform by entering a custom rule function or a workflow item type and process. p_event in out wf_event_t) return varchar2.function_name> in the Parameters field for the subscription. See: SubscriptionParameters: page 8 – 293.function_name> with the package and function that will generate the correlation ID. Otherwise. AddCorrelation() is defined according the standard API for an event subscription rule function. replacing <package_name. If a custom correlation ID function is specified with the ITEMKEY parameter. For example.AddCorrelation PL/SQL Syntax function AddCorrelation (p_subscription_guid in raw. If the event message is then sent to a workflow process. Define another subscription to the event with a phase of 20.function_name> AddCorrelation() uses SubscriptionParameters() to search for and retrieve the value of the ITEMKEY parameter.AddCorrelation and a phase of 10. follow these steps: 1. Define a subscription to the relevant event with the rule function WF_EVENT_FUNCTIONS_PKG. the function returns the status code ERROR. AddCorrelation() returns the status code SUCCESS. then AddCorrelation() runs that function and sets the correlation ID to the value returned by the function. The function must be specified in the Parameters field for the subscription in the following format: ITEMKEY=<package_name. Description Adds a correlation ID to an event message during subscription processing. AddCorrelation() sets the correlation ID to the system date. 8 – 294 Oracle Workflow Guide . You can use AddCorrelation() as the rule function for a subscription with a low phase number to add a correlation ID to an event. Otherwise. or both. AddCorrelation() searches the subscription parameters for a parameter named ITEMKEY that specifies a custom function to generate a correlation ID for the event message. Enter the parameter name and value pair ITEMKEY=<package_name. and then use a subscription with a higher phase number to perform any further processing. the Workflow Engine uses that correlation ID as the item key to identify the process instance. If AddCorrelation() encounters an exception.

The subscription with the lower phase number will be executed first and will add a correlation ID to the event message. Raise the event to trigger the subscriptions. Note: You may find it advantageous to define multiple subscriptions to an event with simple rule functions that you can reuse. that correlation ID will be used as the item key. When the event is passed to the second subscription. The event message. Arguments (input) p_subscription_ guid p_event The globally unique identifier of the subscription.3. See: Standard API for an Event Subscription Rule Function: page 7 – 25. You can also call AddCorrelation() within a custom rule function to add a correlation ID during your custom processing. rather than creating complex specialized rule functions that cannot be reused. Oracle Workflow APIs 8 – 295 .

subscription.apps.group. system. system.wf.apps. agent.event.wf.wf.event. Description Generates the event data for events in the Seed event group.wf. WF_EVENT_FUNCTIONS_PKG.apps.apps.event. 8 – 296 Oracle Workflow Guide .apps.event.wf.delete • oracle.system.agent.Generate() calls the Generate APIs associated with the corresponding tables to produce the event data XML document.wf.wf. For the Synchronize Event Systems event.apps.create • oracle.event.create • oracle.wf. event group.group.apps. This event data contains Business Event System object definitions which can be used to replicate the objects from one system to another.apps.group.agent.system.wf.event.Generate PL/SQL Syntax function Generate (p_event_name in varchar2.event.wf.apps.update • oracle.event.Generate() produces an XML document containing all the event.wf. and subscription definitions from the Event Manager on the local system.agent.apps.event.event.event.update • oracle. event group.delete • oracle.apps.apps.event.create • oracle.event.event.delete • oracle.create • oracle.system.wf.update • oracle.event.wf.all. and subscription definition events.sync For the event.apps.apps.event.wf. p_event_key in varchar2) return clob.create • oracle.wf.update • oracle.wf.delete • oracle.apps.subscription. WF_EVENT_FUNCTIONS_PKG.event.apps.delete • oracle.event.event. agent.update • oracle. The Seed event group includes the following events: • oracle.subscription.

Generate: page 8 – 306 WF_SYSTEMS_PKG.Generate: page 8 – 309 WF_AGENTS_PKG. See Also WF_EVENTS_PKG. A string generated when the event occurs within a program or application.Generate: page 8 – 312 WF_EVENT_SUBSCRIPTIONS_PKG.Arguments (input) p_event_name p_event_key The internal name of the event.Generate: page 8 – 303 WF_EVENT_GROUPS_PKG.Generate: page 8 – 315 Predefined Workflow Events: page 14 – 2 Oracle Workflow APIs 8 – 297 . The event key uniquely identifies a specific instance of the event.

wf.create • oracle.apps.Receive() as the rule function for two predefined subscriptions.wf.apps.update • oracle.event.agent.wf. p_event in out wf_event_t) return varchar2.group.event. WF_EVENT_FUNCTIONS_PKG.event.event.system.apps.event.apps.event.create • oracle. one that is triggered when the System Signup event is raised locally.wf.agent.system.wf.subscription.event.apps.delete • oracle.event.group.event.delete • oracle. This function completes the replication of the objects from one system to another.create • oracle.wf.subscription.system.apps.wf.group.event.update • oracle.sync 8 – 298 Oracle Workflow Guide .create • oracle.wf.apps.wf.Receive PL/SQL Syntax function Receive (p_subscription_guid in raw.event.event.wf.subscription.apps. Description Receives Business Event System object definitions during subscription processing and loads the definitions into the appropriate Business Event System tables.update • oracle.event.Receive() is defined according the the standard API for an event subscription rule function.apps.apps.wf.apps.update • oracle. Oracle Workflow uses WF_EVENT_FUNCTIONS_PKG.wf.event.event. and one that is triggered when any of the events in the Seed event group is received from an external source.create • oracle.agent.wf.delete • oracle.event.wf.apps.apps.event.apps.all.apps. The Seed event group includes the following events: • oracle.apps.delete • oracle.wf.update • oracle.delete • oracle.event.wf.event.

event group.Receive() parses the event data XML document from the event message that was received and then loads the Business Event System object definitions into the appropriate tables. WF_EVENT_FUNCTIONS_PKG.Receive() calls the Receive APIs associated with the corresponding tables to parse the XML document and load the definition into the table.Receive: page 8 – 316 Predefined Workflow Events: page 14 – 2 Oracle Workflow APIs 8 – 299 . and subscription definition events. Arguments (input) p_subscription_ guid p_event The globally unique identifier of the subscription.Receive: page 8 – 304 WF_EVENT_GROUPS_PKG.Receive: page 8 – 307 WF_SYSTEMS_PKG.WF_EVENT_FUNCTIONS_PKG. See Also WF_EVENTS_PKG.Receive: page 8 – 313 WF_EVENT_SUBSCRIPTIONS_PKG. The event message. agent. system.Receive: page 8 – 310 WF_AGENTS_PKG. Note: For the event.

The replication APIs are stored in the following PL/SQL packages. The Generate APIs are called by WF_EVENT_FUNCTIONS_PKG. See: Generate: page 8 – 296 and Receive: page 8 – 298. • WF_EVENTS_PKG – WF_EVENTS_PKG. Document Type Definitions The document type definitions (DTDs) for the Workflow table XML messages are defined under the master tag WF_TABLE_DATA.Generate: page 8 – 312 – WF_AGENTS_PKG.Receive: page 8 – 304 • WF_EVENT_GROUPS_PKG – WF_EVENT_GROUPS_PKG.Receive: page 8 – 307 • WF_SYSTEMS_PKG – WF_SYSTEMS_PKG.Business Event System Replication APIs You can call the following APIs to replicate Business Event System data across your systems.Receive: page 8 – 310 • WF_AGENTS_PKG – WF_AGENTS_PKG. Beneath the master tag. Oracle Workflow provides both a Generate function and a Receive function for each table.Generate: page 8 – 315 – WF_EVENT_SUBSCRIPTIONS_PKG. each DTD has a tag identifying the Workflow 8 – 300 Oracle Workflow Guide .Generate: page 8 – 306 – WF_EVENT_GROUPS_PKG.Receive: page 8 – 316 Each Generate API produces an XML message containing the complete information from the appropriate table for the specified Business Event System object definition. while the Receive APIs are called by WF_EVENT_FUNCTIONS_PKG.Receive: page 8 – 313 • WF_EVENT_SUBSCRIPTIONS_PKG – WF_EVENT_SUBSCRIPTIONS_PKG. The corresponding Receive API parses the XML message and loads the row into the appropriate table.Generate: page 8 – 303 – WF_EVENTS_PKG.Receive(). Oracle Workflow uses these APIs during the automated replication of Business Event System data. each of which corresponds to a Business Event System table.Generate().Generate: page 8 – 309 – WF_SYSTEMS_PKG.

a version tag as well as tags for each column in the table. The following example shows how the DTDs are structured: <WF_TABLE_DATA> <WF_TABLE_NAME> <VERSION></VERSION> <COL1></COL1> <COL2></COL2> </WF_TABLE_NAME> </WF_TABLE_DATA> <– masterTagName <– m_table_name <– m_package_version The Business Event System replication APIs use the following DTDs: • WF_EVENTS DTD: page 8 – 302 • WF_EVENT_GROUPS DTD: page 8 – 305 • WF_SYSTEMS DTD: page 8 – 308 • WF_AGENTS DTD: page 8 – 311 • WF_EVENT_SUBSCRIPTIONS DTD: page 8 – 314 Oracle Workflow APIs 8 – 301 .table name to which it applies. and beneath that.

<WF_TABLE_DATA> <WF_EVENTS> <VERSION></VERSION> <GUID></GUID> <NAME></NAME> <STATUS></STATUS> <GENERATE_FUNCTION></GENERATE_FUNCTION> <OWNER_NAME></OWNER_NAME> <OWNER_TAG></OWNER_TAG> <DISPLAY_NAME></DISPLAY_NAME> <DESCRIPTION></DESCRIPTION> </WF_EVENTS> </WF_TABLE_DATA> 8 – 302 Oracle Workflow Guide .WF_EVENTS Document Type Definition The following document type definition (DTD) describes the required structure for an XML message that contains the complete information for an event definition in the WF_EVENTS table.

Description Arguments (input) Generates an XML message containing the complete information from the WF_EVENTS table for the specified event definition.WF_EVENTS_PKG. x_guid The globally unique identifier of the event. Oracle Workflow APIs 8 – 303 .Generate PL/SQL Syntax function Generate (x_guid in raw) return varchar2.

WF_EVENTS_PKG. x_message An XML message containing the complete information for an event definition. 8 – 304 Oracle Workflow Guide . Description Arguments (input) Receives an XML message containing the complete information for an event definition and loads the information into the WF_EVENTS table.Receive PL/SQL Syntax procedure Receive (x_message in varchar2).

WF_EVENT_GROUPS Document Type Definition The following document type definition (DTD) describes the required structure for an XML message that contains the complete information for an event group member definition in the WF_EVENT_GROUPS table. <WF_TABLE_DATA> <WF_EVENT_GROUPS> <VERSION></VERSION> <GROUP_GUID></GROUP_GUID> <MEMBER_GUID></MEMBER_GUID> </WF_EVENT_GROUPS> </WF_TABLE_DATA> Oracle Workflow APIs 8 – 305 . Note: Event group header information is defined in the WF_EVENTS table. similarly to an individual event. Only the event group member definitions are stored in the WF_EVENT_GROUPS table.

WF_EVENT_GROUPS_PKG. The globally unique identifier of the individual member event.Generate PL/SQL Syntax function Generate (x_group_guid in raw. Arguments (input) x_group_guid x_member_guid The globally unique identifier of the event group. x_member_guid in raw) return varchar2. Description Generates an XML message containing the complete information from the WF_EVENT_GROUPS table for the specified event group member definition. 8 – 306 Oracle Workflow Guide .

Arguments (input) x_message An XML message containing the complete information for an event group member definition.WF_EVENT_GROUPS_PKG. Description Receives an XML message containing the complete information for an event group member definition and loads the information into the WF_EVENT_GROUPS table.Receive PL/SQL Syntax procedure Receive (x_message in varchar2). Oracle Workflow APIs 8 – 307 .

<WF_TABLE_DATA> <WF_SYSTEMS> <VERSION></VERSION> <GUID></GUID> <NAME></NAME> <MASTER_GUID></MASTER_GUID> <DISPLAY_NAME></DISPLAY_NAME> <DESCRIPTION></DESCRIPTION> </WF_SYSTEMS> </WF_TABLE_DATA> 8 – 308 Oracle Workflow Guide .WF_SYSTEMS Document Type Definition The following document type definition (DTD) describes the required structure for an XML message that contains the complete information for a system definition in the WF_SYSTEMS table.

Oracle Workflow APIs 8 – 309 .Generate PL/SQL Syntax function Generate (x_guid in raw) return varchar2. x_guid The globally unique identifier of the system.WF_SYSTEMS_PKG. Description Arguments (input) Generates an XML message containing the complete information from the WF_SYSTEMS table for the specified system definition.

8 – 310 Oracle Workflow Guide . Description Receives an XML message containing the complete information for a system definition and loads the information into the WF_SYSTEMS table.WF_SYSTEMS_PKG. Arguments (input) x_message An XML message containing the complete information for a system definition.Receive PL/SQL Syntax procedure Receive (x_message in varchar2).

WF_AGENTS Document Type Definition The following document type definition (DTD) describes the required structure for an XML message that contains the complete information for an agent definition in the WF_AGENTS table. <WF_TABLE_DATA> <WF_AGENTS> <VERSION></VERSION> <GUID></GUID> <NAME></NAME> <SYSTEM_GUID></SYSTEM_GUID> <PROTOCOL></PROTOCOL> <ADDRESS></ADDRESS> <QUEUE_HANDLER></QUEUE_HANDLER> <QUEUE_NAME></QUEUE_NAME> <DIRECTION></DIRECTION> <STATUS></STATUS> <DISPLAY_NAME></DISPLAY_NAME> <DESCRIPTION></DESCRIPTION> </WF_AGENTS> </WF_TABLE_DATA> Oracle Workflow APIs 8 – 311 .

x_guid The globally unique identifier of the agent. Description Arguments (input) Generates an XML message containing the complete information from the WF_AGENTS table for the specified agent definition. 8 – 312 Oracle Workflow Guide .Generate PL/SQL Syntax function Generate (x_guid in raw) return varchar2.WF_AGENTS_PKG.

Receive PL/SQL Syntax procedure Receive (x_message in varchar2). Oracle Workflow APIs 8 – 313 . Description Arguments (input) Receives an XML message containing the complete information for an agent definition and loads the information into the WF_AGENTS table.WF_AGENTS_PKG. x_message An XML message containing the complete information for an agent definition.

<WF_TABLE_DATA> <WF_EVENT_SUBSCRIPTIONS> <VERSION></VERSION> <GUID></GUID> <SYSTEM_GUID></SYSTEM_GUID> <SOURCE_TYPE></SOURCE_TYPE> <SOURCE_AGENT_GUID></SOURCE_AGENT_GUID> <EVENT_FILTER_GUID></EVENT_FILTER_GUID> <PHASE></PHASE> <STATUS></STATUS> <RULE_DATA></RULE_DATA> <OUT_AGENT_GUID></OUT_AGENT_GUID> <TO_AGENT_GUID></TO_AGENT_GUID> <PRIORITY></PRIORITY> <RULE_FUNCTION></RULE_FUNCTION> <WF_PROCESS_NAME></WF_PROCESS_NAME> <PARAMETERS></PARAMETERS> <OWNER_NAME></OWNER_NAME> <DESCRIPTION></DESCRIPTION> </WF_EVENT_SUBSCRIPTIONS> </WF_TABLE_DATA> 8 – 314 Oracle Workflow Guide .WF_EVENT_SUBSCRIPTIONS Document Type Definition The following document type definition (DTD) describes the required structure for an XML message that contains the complete information for an event subscription definition in the WF_EVENT_SUBSCRIPTIONS table.

WF_EVENT_SUBSCRIPTIONS_PKG. Arguments (input) x_guid The globally unique identifier of the event subscription. Oracle Workflow APIs 8 – 315 . Description Generates an XML message containing the complete information from the WF_EVENT_SUBSCRIPTIONS table for the specified event subscription definition.Generate PL/SQL Syntax function Generate (x_guid in raw) return varchar2.

Arguments (input) x_message An XML message containing the complete information for an event subscription definition.Receive PL/SQL Syntax procedure Receive (x_message in varchar2). 8 – 316 Oracle Workflow Guide .WF_EVENT_SUBSCRIPTIONS_PKG. Description Receives an XML message containing the complete information for an event subscription definition and loads the information into the WF_EVENT_SUBSCRIPTIONS table.

4–46 processing cost. 2–59 Acknowledge Ping event. 4–62 in a loop. 13–82 in the Master Ping process. 4–15. 4–52. 15–88 in the Workflow Event Protocol process. 7–5. 4–12. 4–42. 15–78 in the Buyer: Top Level PO process. 15–101 in the Supplier: Stock Check process. 7–14 Actions. 13–37 Activities. 13–80 in the Notify Approver subprocess. 4–49. 4–54. 15–84 in the Buyer: Receive Supplier Invoicing process. 5–7. 4–44 icons. 2–85. 4–25 #HIDE_REASSIGN attribute. 8–230 ACCOUNT parameter. 4–17 Access protection See also Access level. 14–21 joining branches. 3–10. 4–59 process. 6–2 Concurrent Manager. 4–47 create. 6–22 copy. 4–54. 15–86 in the Buyer: Receive Supplier PO Acknowledgement process. 4–59 error process. 15–81 in the Buyer: Send PO to Supplier process. 4–52. 4–60 cost. 4–42. 4–58 A AbortProcess( ). 4–42. 5–4 notification. for subscriptions. 4–45 External Java functions. 4–48. 4–42. Protection level preserving customizations. 2–86 Index – 1 . 2–105 Access level indicator. 15–21 in the Requisition process. 15–15 in the Supplier: Advanced Shipment Notice process. 4–58. 4–50. 4–47 effective date.Index Symbols &#NID. 8–36 Access Level. 15–75 in the Detail Ping process. 4–60 in the Buyer: Advanced Shipment Notice process. 4–48. 4–32 #FROM_ROLE attribute. 14–8 ACTID. 4–13. 4–57 deferred. 8–9 result type. 15–92 in the Supplier: Send Supplier Invoice process. 2–102 default. 4–42 accessing from different data stores. 15–99 in the Supplier: Credit Check process. 4–43 optional details. 4–25 for an error process. 4–59 event. 4–17 Access property page. 4–18 AccessCheck( ). 6–26 function. 15–95 in the Supplier: Get Order Details process. 15–97 in the Supplier: Top Level Order process.

14–21 Ad hoc users and roles. 4–11 date. 13–24 scheduling listeners. 13–61 updating. 2–61 And activity. 13–80 in the Notify Approver subprocess. 13–22 finding. 15–95 in the Supplier: Get Order Details process. 8–46 addItemAttrNumber( ). 4–11. datatype. 15–84 in the Buyer: Receive Supplier Invoicing process. C – 2 Attribute. 13–2 Agent. 5–10 version number. 8–74 Asynchronous processes. 8–216 AddCorrelation( ). 15–75 in the Detail Ping process. 8–43 AddItemAttrDateArray( ). 13–33 Agents web page. 8–253 AddUsersToAdHocRole( ). 13–22 defining. 13–77 protocol. 15–99 in the Supplier: Credit Check process. 8–121 AddAttr( ). 13–25 queues. 14–4 Agents. 8–43 addItemAttrDate( ). 15–86 in the Buyer: Receive Supplier PO Acknowledgement process. 4–35 document. 5–24 APIs. 8–237 Agent Created event. 8–163 Arrows. 4–42. 8–46 AddParameterToList. 8–14. 4–10. 13–33 ALLOW_FORWARDED_RESPONSE parameter. 13–56 scheduling propagations. 13–32 pinging.Standard. 13–23 queue handlers. 8–118 Administrator privileges. 5–2 APIs. 5–12 Activity nodes in the Buyer: Advanced Shipment Notice process. 8–43 AddItemAttrTextArray( ). 14–4 Agent Deleted event. 13–29 deleting. 8–114 Activity attributes See also Function activity attributes setting values for. 15–97 in the Supplier: Top Level Order process. 13–29. 5–2 Assign activity. 15–88 in the Workflow Event Protocol process. 4–42 timing out. 8–294 AddItemAttr( ). 15–78 in the Buyer: Top Level PO process. 13–33 direction. 15–81 in the Buyer: Send PO to Supplier process. 4–60 Activities( ). 8–275 AddParameterToListPos( ). 4–41 Attribute types attribute. 8–3 AQ message payload. 4–36 Index – 2 Oracle Workflow Guide . 4–14. 15–101 in the Supplier: Stock Check process. token substitution. 13–82 in the Master Ping process. 8–138 AdHocDirectory( ). 8–43 AddItemAttrNumberArray( ). 8–46 addItemAttrText( ). 15–15 in the Supplier: Advanced Shipment Notice process. 14–10 Any transitions. 6–2 statuses. 15–92 in the Supplier: Send Supplier Invoice process. 8–3 System: Error. 2–16 Advanced Queues integration. 14–5 Agent Updated event. 8–162 Advanced Queuing. 6–2 Any event. 6–14 AssignActivity( ). 15–21 in the Requisition process. 8–253 AddParameterToList( ). 8–276 Address.

6–22 Concurrent program FNDWFLST. 8–215 Compare Date activity. 16–10 foreign/primary key references. 6–16 Compare Execution Time activity. 4–36 text. 10–25 Automatic routing. 6–3 Compare Event Property activity. web page. 10–25 Business events. summary. 4–35 AUTOCLOSE_FYI parameter. 4–4 Attributes copy. 8–69 CompleteActivityInternalName( ). 4–36 form. 8–180 Close( ). of Event Manager objects. 6–22 Concurrent Manager Functions item type.event. 6–3 compareTo( ). 15–102 Background engine. 15–105 B2B Purchase Order event. 2–96 Business Event System Replication APIs. 7–15 for item types. 8–210 Check Setup web page. 15–83 Buyer: Receive Supplier Invoicing process. 4–36 lookup. 4–3. 15–106 B2B Invoice event. 4–35 Attribute–type attributes. 6–3 Compare Number activity. 6–3 CompleteActivity( ). 16–7 Background Engines about. 8–17 Buyer Workbench. 4–11. 8–67 Block activity. 15–80 Buyer: Send PO to Supplier process. 4–5 Cancel( ). 4–16 type. 16–6 starting. 8–235 Ping/Acknowledge example. 8–102 ClearMsgStack( ). 13–2 overview. 8–100 Comparison activities. 13–58. 7–13 command. 4–10. 2–43 scripts. 2–44 submitting. 16–16 CLEAR( ). 2–61 Automatic Notification Handler. 4–10. 8–300 Index – 3 . summary. 8–209 CancelGroup( ). 15–78 Buyer: Top Level PO process. 16–7 directory service data model. 16–13 workflow data model. 13–62 Checking activity versions. 4–35 number. 13–4 in Workflow processes. 4–11. 6–3 Compare Text activity. summary. 4–35 URL. scripts. summary. 4–10. 8–41 BeginActivity( ). 4–12. 4–35 role. 13–77 predefined events. summary. 4–10. 4–10. 6–5 Business Event System. 15–73 C Callback functions. 4–13. 16–4 B B2B Advanced Shipment Notice event. 1–3 checking setup. 16–17 background engines. 13–53 managing business events. 13–71 Automatic responses. 10–25 Automatic replication. 14–2 setting up. 4–10. 2–45 Background( ). 13–53. 8–72 Concurrent Manager activities. 15–85 Buyer: Receive Supplier PO Acknowledgement process. 15–67 Buyer: Advanced Shipment Notice process. 15–107 B2B Purchase Order Acknowledgement event.

4–3 DBA Studio. directory service. 6–6 Deferred activities. 8–281 Defer Thread activity. wf_payload_t. 16–14 runtime data for an item type. 6–28 DEFAULT_EVENT_ERROR. 4–47 CreateAdHocRole( ). 3–4 view from Builder. 13–55 creating. 8–181 CreateProcess( ). 6–11 Cost threshold. 2–27 synchronization. in web pages. 2–27. 8–167 Detail Notification web page. 7–24 DequeueEventDetail( ). 15–46 Diagram arrows. 6–34 Default_Rule( ). 8–255 for the Business Event System. 2–43. 8–119 Workflow Agent Listener. 8–272 Workflow Background Process. C – 9 workflow status information. queue handler. 4–11.FNDWFPR. 8–9. 2–84 Customization Level. 4–8. summary. 16–15. 4–56. 15–47 summary. 13–81 Detail process. 6–34 Default transitions. 5–26 Directory services. 4–53. 2–60 Directory repository. 8–90 Content. 8–136 CreateAdHocUser( ). C – 7 Deferred processing for event subscriptions. 8–105 CONNECT parameter. 6–12 Coordinating master/detail activities. 16–14 data for an item type. WFAttribute class. 2–109 Workflow Resource Generator. 5–2 Direct Response e–mail. 2–30. 2–28 integrating with native Oracle users. 2–43. 16–10 integrating with local workflow users. 6–28 Default Event Error Process. 5–2 DEFAULT_ERROR. 16–15 Demonstration. 8–242 WF_PARAMETER_LIST_T. 8–176 DequeueOutbound( ). 2–58 Constants. 4–37 CONTEXT( ). 8–134 CreateForkProcess( ). 4–20. 16–5 Concurrent programs Notification Mailer. 4–32. 4–50. 2–96 DEBUG parameter. 15–7 Dequeue. 10–19 Detail Ping process. 2–45 Workflow Definitions Loader. 8–239 Date–type attributes. 8–177 Delete all workflow data. 13–41 for workflow processes. 8–236 WF_AGENT_T. 8–144 Index – 4 Oracle Workflow Guide . 8–21 Custom logos. 8–241 WF_PARAMETER_T. 8–163 Database links checking. 8–108 Continue Flow activity. 16–15 item type attributes. 2–21 Directory Service in Navigator tree. 2–21 checking the data model. 2–48. 2–105 for activities. 2–27 integrating with Oracle HR. 2–56 Purge Obsolete Workflow Runtime Data. 10–3 DIRECT_RESPONSE parameter. 4–63 D Data types. 8–237 WF_EVENT_T. 6–12 Detail Survey process activities. 4–47 performance. 8–170 DequeueException( ). C – 7 DeferredQueue function. 2–96 Datatypes example. 4–58. 8–38 CreateMsg( ). 2–62 Default Error Process. 8–252 Content–attached checkbox.

retrying. 2–48 and HTML attachments. 8–11 Effectivity. 13–52 Event System Demonstration data model. 15–54 activities. 13–34 rule functions. 8–242 enqueuing. 8–10 Error process. 13–43 Document integration. 8–185 Document management integration. 13–3 Event messages datatype. 2–47 Enqueue. 15–49 activities. 8–305 WF_EVENT_SUBSCRIPTIONS. 5–10 E E–mail notifications. 15–52 summary. 6–26 Error Check process. 13–44 for process activities. 7–17 Document Management. 8–121 DISCARD parameter. 13–5. 5–11 Dynamic timeouts. 8–314 WF_EVENTS. 15–64 Index – 5 . 14–3 Event Group Deleted event. 5–12 Event APIs. 7–21. 1–5. 14–3 Event Group Updated event. 3–16 Effective dates. 4–59. 10–7 modifying mail templates. 4–45 create. 4–56 Event activity details. dates of. item type. 2–48. 2–63 Dispatch mode. 13–4 defining. 3–14. 4–37 Document Review process. 4–3 Documents. 4–3. 8–311 WF_EVENT_GROUPS. 15–56 Error handling for event subscriptions. 13–8 Event Manager. 8–165 Environment variables WF_ACCESS_LEVEL. 2–106 WF_RESOURCES. 5–12 Event Rule APIs. 8–50 Event Deleted event. 8–17 Event activity attributes. attached vs embedded. 8–300 WF_AGENTS. 2–102. 13–36 Event data URL. 14–2 Event data. 2–4 summaries. 3–7 END activities. 14–3 Event groups. 6–8 Engine thresholds. queue handler. 5–4 End Activity. 4–36. 8–279 Event subscriptions. 16–13 Event activities. 4–54 Workflow Engine. 8–260 Event Created event. 7–23 Enqueue( ). 15–50 Document Type Definitions Business Event System. 4–59. 4–6 Dynamic priority. A – 3 Effective date. 8–290 Event Group Creation event. 4–11. 10–24 templates for. 3–16. 2–4 example direct response instructions. 2–69 requirements. 8–77 for workflow processes. 4–3. 16–10 Event nodes. 8–284 Error_Rule( ). 8–288 Errored activities. 10–2 Edit menu.Directory Services APIs. 6–26 Error( ). 8–302 WF_SYSTEMS. 8–308 Document–type attributes. 10–3 with HTML attachments. 15–57 summary. 15–49 Document Management APIs. 14–3 Event Function APIs. 7–25 Event Subscriptions web page. 4–6 Document message attributes. 8–269 EnqueueInbound( ). 2–42 Error activities.

15–5 Execute Concurrent Program activity. 13–73 Event Updated event. 8–75 Event–type attributes. 13–5 Generate( ) WF_AGENTS_PKG. 13–8. 10–15 Find System web page. 15–63 Requisition. 13–38 updating. 15–67 Events: Track Order. 5–21 Forced synchronous processes. URL attributes. 8–148 GetAccessKey( ). 8–312 WF_EVENT_FUNCTIONS_PKG. 8–194. 15–66 Event System Demonstration process. 13–4. 8–13 Forward( ). 4–25 FUNCMODE. 13–14. 7–3 Function activity attributes. 4–3 FORWARD mode. 8–309 Get Event Property activity. 13–65 sending to agents. 4–37 FROM parameter. 3–10 See also PL/SQL procedures Future–dated events. A – 2 Find Agent web page. 4–6 External Java function activities. web page.initiating. 14–2 Event( ). 13–4 defining. 8–315 WF_EVENTS_PKG. 13–41 G Generate function. 15–29 Example process Event System Demonstration. 2–59 FROM_ROLE attribute. 15–64 Event System Local Queues web page. 16–4 FNDWFPR. 6–15 Get Monitor URL activity. 14–2 raising. 8–89 External document integration. 13–15. 15–69 Example function activity Select Approver. 11–8 Index – 6 Oracle Workflow Guide . 8–189 get_pref( ). 13–39 sending to workflow processes. 15–63 setting up. 8–82 FND_FNDWFNOT. 8–14. 13–50 Find Notifications web page. 13–45 Events: Buyer Workbench. 8–205 Frame target. 13–15 finding. 8–5. 4–8. 8–188. 13–19 FND_FNDWFIAS. 8–296 WF_EVENT_GROUPS_PKG. 15–26 Verify Authority. 8–186 get_open_dm_select_window( ). 13–15 Events web page. web page. 7–8 standard PL/SQL API. 8–303 WF_SYSTEMS_PKG. 10–14 FNDWFLST. 16–5 Fonts modifying. 2–86. 4–44 create. 13–14 predefined. 4–50 standard Java API. 8–187 get_launch_document_url( ). C – 2 Form–type attributes. 8–306 WF_EVENT_SUBSCRIPTIONS_PKG. 13–32 Find Event web page. 5–21 setting. 8–150 F FAILCOMMAND parameter. 6–22 execute( ). 6–14 GET_ERROR( ). 13–5 deleting. 13–5. 8–272 concurrent program. installing. 2–62 File menu. 15–66 overview. 4–4 Events. 7–6 Function activities. 8–103 get_launch_attach_url( ). 7–5. 8–119 concurrent program. 4–53 Functions.

8–248 getErrorSubscription. 8–228 GetShortText( ). 8–227 getCorrelationID. 8–126 GetRoleName( ). 8–277 GetValueForParameterPos( ). 8–219 GetAttrNumber( ). 8–57 getItemTypes( ). 8–253 GetValueForParameter( ). 8–155 GetAttrDate( ). 8–61 GetItemAttrInfo( ). 8–248 getErrorStack. 8–125 GetRoleInfo2( ). 8–153 getErrorMessage. 8–239 WFAttribute. 8–64 GetActivityAttrEvent( ). 8–60 GetItemAttrDate( ). 8–57 GetItemAttrText( ). 8–81 getReceiveDate. 8–97 getFromAgent. 8–57 getItemAttributes( ). 8–247 getType( ).getActivityAttr( ). 8–25 GetAdvancedEnvelopeURL( ). 8–245 getProcessStatus( ). 8–98 Global Preferences. 8–64 GetActivityAttrInfo( ). 8–226 getSystem. 4–25 Home page. 2–2 Help menu. 8–246 GetDiagramURL( ). 8–247 GetInfo( ). 8–64 GetActivityLabel( ). 8–223 GetAttrDoc( ). 8–94 getNotificationAttributes( ). 8–237 WF_PARAMETER_T. 8–175 getName WF_AGENT_T. 8–151 GetEnvelopeURL( ). 8–124 getValue WF_PARAMETER_T. 8–220 getItemAttr( ). 8–24 GetMessageHandle( ). 8–245 GetShortBody( ). 4–2 H HandleError( ). 8–66 GetActivityAttrDate( ). 8–222 GetSubject( ). 2–65 Index – 7 . 9–2 HTML_MAIL_TEMPLATE parameter. 8–247 getEventName. 8–237 GetText( ). 8–63 GetActivityAttrNumber( ). 8–278 getValueType( ). 8–57 GetItemAttrDocument( ). 8–225 GetAttrInfo( ). 2–14 Global variables. 8–64 GetActivityAttrText( ). 8–62 GetItemAttrNumber( ). 8–59 GetItemAttrEvent( ). 3–4 HIDE_REASSIGN attribute. 8–95 GetValueForParameter. 8–223 GetBody( ). 8–246 getPriority. 8–239 WFAttribute. 8–130 GetRoleUsers( ). 8–247 getEventData. 8–246 getFormat( ). 8–232 getParameterList. 8–233 getNotifications( ). A – 6 Hidden item types. 8–96 GetUserName( ). 8–129 GetUserRoles( ). 8–221 getToAgent. 8–56 GetItemUserKey( ). web page. 8–247 getEventKey. 8–123 getSendDate. 8–77 Hardware requirements. 8–223 GetAttrText( ). 8–131 GetRoleInfo( ). 8–246 GetRoleDisplayName( ). 8–87 GetItemAttrClob( ). 8–85 GetActivityAttrClob( ).

13–61 Load balancing. 13–61 for inbound agents. 3–12. 8–5 Java monitor tool. 2–34. 5–4 L Launch Process activity. 14–18 ITEMKEY. 4–49. 7–13 copy. 2–85 viewing. 2–5 JavaScript. 4–6 Item type attributes.ora parameters. 13–22 Listen( ). 7–8 Java APIs. 2–86 starting. 13–54 Initialize. 15–66 Internal names updating activity. 16–9 updating message attributes. 8–127 Item attributes. 3–9. support in a Web browser. 11–2 Java Runtime Environment. external document integration. 2–95. 15–12 Workflow Send Protocol. 16–6 scheduling. C – 8 Requisition. 15–12 saving. 8–178 Init. 13–58 updating. 14–18 Item types. 7–14 Items( ). 4–58 IDLE parameter. 2–62 I Icons. 4–5. 8–84 Loader program. 3–13 persistence type. 6–2 System: Error. 8–144 List of values. 4–52. 13–17 LOG parameter. 2–69 Workflow Agent Ping/Acknowledge. 4–54. 7–4. 8–30 LDAP. C – 3 Requisition. for function activities. 16–7 updating item attributes. 2–62 Index – 8 Oracle Workflow Guide . 8–83 Local system. 4–8. 7–13 Standard. See Workflow Definitions Loader Loading item types. 16–8 updating item types. 6–22 context reset. 15–36. 6–6 LaunchProcess( ). 4–4. 8–270 Listeners deleting. 4–2 callback function. 13–56 running. 7–4. 4–2. 8–13 Event System Demonstration. 2–30 LDAP APIs. 3–12 selector functions. 16–11 Java interface. 7–14 J Java API. 8–12 arrays. 2–4 Joining activities. 2–86 stopping. in a web interface. 8–113 ItemStatus( ). 15–8. 16–9 updating messages. 13–78 Workflow Send Protocol. 16–8 updating lookup types. 15–71 loading. 6–26 System: Mailer. 10–24. 8–245 Initiating a workflow process. 8–5 Java Function Activity Agent. 15–71 performance. 16–7 updating activity attributes. 16–9 IsPerformer( ). 6–9 loadActivityAttributes( ). 4–15 creation. 2–61 InboundQueue function. 3–13 loadItemAttributes( ). 4–5 Concurrent Manager Functions. 16–8 updating lookup codes. 4–7 Event System Demonstration. 8–80 ITEMTYPE.HTMLAGENT parameter.

4–48 Index – 9 . 4–41 creation. 3–9 body. 5–8 NOOP activity. 7–6. 15–15 Navigator Toolbar. for e–mail notifications. 4–25 #HIDE_REASSIGN. 4–3 Loop Counter activity. 6–12 Master/copy systems. 4–25. 2–75 for Workflow Summary Mail message. 4–33. 2–55 Master Ping Process. 4–35 Message function. 8–10 M MAPI–compliant mail application. 16–12 Notification access keys. dynamic priority. 2–70 for Workflow Open Mail for Outlook Express message. 3–6 NewAgent( ). 2–39 in Oracle Workflow Builder. 4–30. 6–7 Notification. setting up. 4–24. 13–53 Message templates. 8–283 Login Server. 5–11 NODE parameter. 4–22 Lookup types. 4–20 Lookup–type attributes. 6–7 Loop Reset. 2–49 Mod_osso.Log( ). 4–23 MIME support. 2–79 for Workflow Open FYI Mail message. A – 7 Navigator tree. WF_NOTIFICATION(). 6–13 Menus. 4–49. 5–3 Loops. Oracle Workflow Builder. status. 16–5. 3–9. 5–11 subject. 4–26 performance. 4–19 copy. 2–77 for Workflow Warning Mail message. A – 2 Message attributes. 13–40 Multilingual support. 2–81 for Workflow Invalid Mail message. 15–31 viewing. 8–267 NLS codeset. 4–43 coupling with custom functions. 4–39 Send. 8–13 create. 4–35. 15–31 copy. 11–2 workitems. 13–72 Master/Detail coordination activities. 4–60. 2–39 in e–mail notifications. 2–32 Lookup codes. 2–65 NLS support in a web session. 2–77 for Workflow Open Mail (Direct) message. 4–24. 2–69 Messages. 5–6 start and end. 4–35 source. finding objects in. 2–38 Node activities. 4–25 for Workflow Cancelled Mail message. 16–12 N Naming conventions. 2–73 for Workflow Open Mail (Templated) message. 4–31. 10–3 Notification activities. 6–11 notes on usage. C – 5 Respond. 2–82 for Workflow URL Attachment message. 4–22 creation. 1–5 Multi–consumer queues. 4–29 overriding default priority. PL/SQL stored procedures. 4–34. 13–79 Master process. 15–32 Messages window. summary. 4–26 Message propagation. 2–59 Nodes adding to a process. copy. 2–78 for Workflow Closed Mail message. 2–82 formatted table. 15–32 #FROM_ROLE. 4–24. 4–23. 2–32 Monitoring Workflow Monitor.

10–9 identifying the responder. 8–195 transferring.Notify Requisition Approval Required. 8–157 Oracle9i Application Server. 10–5 plain text e–mail with attachments. via e–mail. 10–13 Notifications Worklist. 4–25 HTML–formatted e–mail. 4–13. 10–2 dependence on directory services. 1–5 Oracle DBA Studio. 6–9 Notify Approver. implementation issues. 8–211 load balancing. 10–12 responding with Notification Web page. 10–11 reassign in Notification Web page. 4–49. 2–55 Notification method. 2–48. 13–2 Oracle Applications Manager. 10–22 reassign via e–mail. 10–2 via Notification Web page. 8–115 Notify activity. 4–25 timed out. 4–12. 3–17 Oracle Workflow home page. 2–56 starting for MAPI–compliant applications. 2–30 Oracle Message Broker. 8–194 hiding the Reassign button. 15–31 Notify Approver subprocess. 10–24 Notification System. 2–6 Oracle Workflow Builder. 15–19 Notify Requisition Approval Required. 2–57 starting for UNIX Sendmail. 6–9 plain text e–mail using direct response. 8–192 Notification templates. 10–22 Notifications. 4–3 O OMBAQ_TEXT_MSG. summary. 2–100 Oracle Net Services. Workflow server requirements. 2–48 starting. 2–32 Index – 10 Oracle Workflow Guide . 2–48. 2–2 Oracle Workflow. 2–20. 2–58 MIME support. 2–67 shutdown. 4–17 starting from command line. 1–5 Oracle Workflow views. 4–32 Notification IDs. 4–15. 8–195 via e–mail. example notification activities. 2–49 Notification summaries. 15–31 Notification APIs. 6–2 Oracle Advanced Queues integration. 2–49 required folders. 8–13 Notification history. 10–22 setting the From Role. 10–2 forwarding. 8–162 Oracle Advanced Queuing. 3–2 requirements. 8–214 Or activity. 9–8 Notification preferences. 3–15 overview. 15–31 Number–type attributes. 10–2 Notification preference. 1–3 Loader functionality. 1–5 reassigning notifications. 2–48 configuration file. 2–17 Workflow server requirements. 9–2 Oracle Workflow Manager. 8–192. 2–63 response processing. 3–15. 8–197 Notification functions. 4–26 Notification ID token. 2–69 Notification Web page. 2–67 script to restart. 2–4 Oracle9iAS Single Sign–On. See Worklist web page Notifications( ). 2–4 Oracle Internet Directory. 8–257 On Revisit. 2–32 identifying the Workflow web agent. 2–96 Oracle HTTP Server. 2–2 save modes. 8–11 OpenNotificationsExist( ). 10–6 plain text e–mail using templated response. 2–49 notification preference. 10–3 Notification Mailer about. for e–mail notifications.

7–17. 15–36 installing. document. 8–163 Performance concepts. 8–10 overview. 5–19 printing. 13–36. C – 8 purging. 7–25 for function activities. 4–4. C – 8 subprocesses. 4–46 create. 8–179 P Parameter. 15–38 Product Survey process. item type. 8–239 Parameter list. 5–20 starting. 8–174 Product Survey. 8–291 Partitioning Workflow tables. 4–43. 8–77 Process window. 8–241 Parameters( ). 3–11 Process diagram adding nodes. 3–12 loops. 7–17 for a Queue Handler. 7–17 PL/SQL APIs for a ’PL/SQL CLOB’ document. 2–103 reset. 14–8 Pinging agents. 16–12 performance. setting up. 15–54 Persistence. C–2 Periodic Alert. 1–4 document. 14–2 Preferred notification method. 15–36 Product Survey item type. 10–2 Preserving customizations. 5–2 copying to clipboard. 5–4 verify. 5–6 PROCESS parameter. 15–15 scripts. for an activity. 4–18 Process activities. 2–12. 13–65 Protection level. C – 5 partitioning Workflow tables. 16–5 Index – 11 . A – 8 Processes activity transitions. C – 5 synchronous and asynchronous workflows. 5–6 drawing. 15–15 naming conventions. 16–12 Protection level locking. 3–10. web page. 5–2 editing. 13–61 scheduling. 13–53 Propagations deleting. See Access protection Protocols. 13–42 Ping Agent event. 5–20 creation. C – 8 runtime data. 3–7 editing. C – 7 item attributes. 13–62 updating. 13–23 Purge outbound notification message queue. 7–13 for an Event Data Generate Function. 13–65 for outbound agents. modifying. 7–21 for an Event Subscription Rule Function. 7–23 for a selector or callback function.OutboundQueue function. 15–34 initiating. 13–77 PL/SQL. datatype. 5–21 ProcessInboundQueue( ). 4–57 Process definition. 7–3 PL/SQL CLOB. 7–17 for a ’PL/SQL’ document. C – 8 Payload. 15–15 Post–notification functions. 5–2 Process Window Toolbar. datatype. C – 3 message attributes. C – 2 deferred activities. 7–6. C – 8 Phase numbers. 7–19 PL/SQL documents. 8–13 Predefined events. 15–35 Propagation. 4–6 PL/SQL stored procedures creating. 2–63 Process rollback. 5–2. for Advanced Queues messages.

hardware and software. 8–261 Raising events. 5–24 loading into the Workflow Builder. 2–65 Respond attributes. Business Event System. 15–8 Requisition process. 6–9 Role–type attributes. 8–105 Raise( ). 8–194 RESULT. 4–25 in Notification Web page. 13–24 checking. 7–5. 4–58 for voting activities. 13–56 reviewing. 7–23. 10–22 via e–mail. for event messages. 8–34 Retry Error. 4–4 Roles.Workflow Purge APIs. 5–26 Role Resolution activity. 8–298 WF_EVENT_GROUPS_PKG. 8–211 Responder( ). 15–5 example function activities. 10–12 Reassign web page. 7–15 Result type for activities. 15–6 summary. 2–16 property page. direct vs. 2–70. 2–79 RESPOND mode. 2–97 Queues assigned to agents. 10–22 Receive date. 10–11 via Notification Web page. processing. 15–26 initiating. 5–24 ad hoc. 15–13 Reset process. 2–75. 13–66 RAISE( ). templated. 2–65 RESET_NLS parameter. 8–270 Receive( ) WF_AGENTS_PKG. 8–212 Response methods. 10–5 plain text e–mail with attachments. 2–97 R Raise Event web page. 8–313 WF_EVENT_FUNCTIONS_PKG. 4–48. 8–211 Responder. 4–62 ResumeProcess( ). 10–13 Respond( ). 10–25 Index – 12 Oracle Workflow Guide . See Rollback RESET_FAILED parameter. 8–173 Q Queue handlers. 5–26 Rollback. 8–77 Routing. of process. 8–194. 10–9 plain text e–mail using direct response. 13–4. 8–13 Respond to notification HTML–formatted e–mail. 8–300 REPLYTO parameter. 5–24 view from Builder. 2–72. 8–172 PurgeItemType( ). data model. 8–143 Replication APIs. 8–111 Purge Obsolete Workflow Runtime Data concurrent program. 13–25 WF_EVENT_OMB_QH. 2–67 Responses. 13–72 setting up. 2–60 Response processing. by Notification Mailer. 13–65 Reassign notifications hiding the Reassign button. 15–8 installing. 15–6 Requisition Demonstration. 2–62 Requirements. 5–25 tab page. 4–52. 2–100 Queue tables. 6–32 RETRY_ONLY. 8–304 WF_SYSTEMS_PKG. 10–6 plain text e–mail using templated response. 6–32 Role administrator. 8–310 RemoveUsersFromAdHocRole. 2–2 Requisition. 8–316 WF_EVENTS_PKG. 8–307 WF_EVENT_SUBSCRIPTIONS_PKG. 8–119 PurgeEvent( ). automatic. web page.

7–17 for a Queue Handler. 8–217 setCorrelationID. 8–48 SetItemAttrDateArray( ). 8–248 setReceiveDate. 7–17. 8–251 setValue. 8–147 Seed event group. 8–141 SetAdHocUserExpiration( ). 8–51 SetItemAttrEvent( ). 15–2 Savepoints. 8–238 setToAgent. 2–2 Source types. 14–6 Select Approver function activity. 8–132 SetAttrDate( ). 2–66 SendGroup( ). 2–62 Single sign–on. 8–238 WF_PARAMETER_T. 8–289 setPriority. 8–249 SetDispatchMode( ). 8–265 Send( ). 8–248 setSystem. C – 8 S Sample workflow processes. 8–251 setErrorStack. 13–40 Software requirements. 8–48 SetItemAttrNumberArray( ). 10–32 for a role. 6–15 set_document_id_html( ). 7–19 for ”PL/SQL” documents. 7–23 Index – 13 . 8–265 SEND_ACCESS_KEY parameter. 8–192. 7–8. 8–48 SetItemAttrNumber( ). 10–27 listing. 8–217 SetAttrNumber( ). 4–5. 8–88 SetItemOwner( ). 8–252 setErrorSubscription. 13–35 Standard activities.Routing rules deleting. 8–190 SetAdHocRoleAttr( ). 8–240 Shortcuts. 8–79 SetItemUserKey( ). 8–240 setParameterList. 2–62 SHUTDOWN parameter. 2–30. 8–250 setEventName. 8–184 setName WF_AGENT_T. 6–12 SetItemParent( ). 2–32 Single–consumer queues. 10–31 updating. 10–32 Rule functions. 8–217 SetAttrText( ). 8–249 SetParametersIntoParameterList( ). 8–53 SetItemAttrDocument( ). 7–25 for event subscriptions. 10–26 overriding. 8–273 setErrorMessage. 8–251 SetItemAttrDate( ). for event messages. 8–139 SetAdHocUserStatus( ). 5–22 Shutdown files. 8–133 SetAdHocUserAttr( ). 8–274 SetErrorInfo( ). 8–140 SetAdHocRoleStatus( ). 15–26 Selector functions. 8–192. 8–251 setEventData. 6–2 Standard APIs for ”PL/SQL CLOB” documents. 8–250 setEventKey. 8–53 setItemAttrValue( ). 8–203 Set Event Property activity. 8–183 SetMsgResult( ). 8–4 Schedule_changes( ). 8–142 SetAdHocRoleExpiration( ). 7–3. 7–13 Send date. 8–48 SetItemAttrTextArray( ). 8–250 setFromAgent. 8–26 SetItemParent API. 8–53 SetItemAttrText( ). 8–249 setSendDate. 8–199. 13–37 Runtime data. 8–23 SetMsgAttr( ).

14–4 System: Error item type. 15–42 Survey–Single Process. 13–68 System integration. 2–30. activities. 13–21 finding. 13–18. 8–28 Status report developer. 8–268 Index – 14 Oracle Workflow Guide . 13–52 Success( ). 15–39 SuspendProcess( ). 8–32 Synch_all( ). summary. 12–2 Test( ). 8–14. 15–100 Supplier: Stock Check process. 13–19 local. 8–286 SUMMARYONLY parameter. 7–8 for selector/callback functions. 2–34. 6–23 Subprocesses performance. 13–17 defining. 2–63 TCP/IP drivers. 15–41 Survey–Single process. 8–146 Synch_changes( ). 5–10 Subscription Created event. 15–98 Supplier: Credit Check process. 13–50 predefined. 13–68 System Identifier web page. 6–8 StartForkProcess( ). 14–4 System identifier. 13–52 finding. 7–21 for an Event Subscription Rule Function. 13–70 updating. 8–144 Synchronize Event Systems event. 6–26 Standard item type. 13–69 System Updated event. with Oracle Internet Directory. 8–145 Synchronization. 13–2 System Signup event. 13–67. 10–3 Test harness. 8–293 Subscriptions. 7–13 Standard error process. summary. 13–69 synchronizing. 13–72 signing up. summary. 8–40 StartProcess function. summary. for sample Requisition process. 14–5 Subscription Deleted event. 2–43 Submit Concurrent Program activity. 15–96 Supplier: Top Level Order process. 2–59 Supplier: Advanced Shipment Notice process. 15–87 Survey–Master/Detail process activities. 2–69 Systems. 13–17 master/copy. 7–3. 16–16 Stuck processes. 13–21 T Tag files. 13–21 Systems web page. 13–45 deleting. 5–4 Start activity. 15–23 StartProcess( ). 14–5 Synchronous processes. 7–25 for function activities. C – 5 timing out. 14–2 updating. summary. 15–91 Supplier: Send Supplier Invoice process. 14–5 Subscription Updated event. 13–18 deleting. summary. 14–5 SubscriptionParameters( ). C – 2 System Created event.for an Event Data Generate Function. summary. 2–2 Templated Response e–mail. 14–9 System Signup web page. 2–63 TAGFILE parameter. 16–16 end user. 15–94 Supplier: Get Order Details process. 15–44 summary. 13–34 deferring. 6–26 System: Mailer item type. 13–41 defining. 14–4 System Deleted event. 6–2 START activities.

2–19. 8–213 Voting activities processing. 8–195. 8–128 Users. A – 7 toString( ). 10–13 for Find Processes web page. 2–43. 2–20. 10–13 User Defined Alert Action process activities. 8–157 Vote Yes/No activity. 5–2 creating. 8–110 Translation. 15–60 User Entry Has Changed event. ad hoc. 4–3 Timed out processes. 9–6 User preferences. 15–36 for Requisition Demonstration web page. 10–25 value( ). 14–12 UNIX Sendmail. frame target. 8–99 Total( ). 2–20. for the Business Event System. 5–2. 10–27 Index – 15 . 8–117 TRANSFER mode. web page. 5–10 Token substitution attributes. Oracle Workflow Builder. 8–207 Transitions. attached vs embedded. 4–14 TOKEN( ). 5–2 TRANSLATE( ). Oracle Workflow. for activities. 14–15 User Preferences. 11–7 for Worklist web page. 5–2 editing. 3–7 View menu. 8–116 TotalPERM( ).TEST_ADDRESS parameter. 4–37 URL message attributes. 9–2 for Product Survey web page. 4–37 URL–type attributes. 5–18 Timeout. C – 7 Timeout transitions. 2–55 UNPROCESS parameter. 2–38 for Find Notifications web page. 9–8 language and territory. 8–104 Toolbars. 5–18 Default. 11–8 for Notifications Routing Rules web page. 10–13 web browser. 9–7 notification preference. 2–14 document management home. 2–9 Version compatibility. 8–50 for Event System Demonstration web pages. 15–69 for Find Notifications Routing Rules web page. 2–62 TestContext( ). 6–10 VoteCount( ). 15–10 for the Workflow Monitor. 10–2 Notification Web page. 8–93 Verify Authority function activity. 8–12 URL attributes. 2–9 Version number. 8–195 U Unexpected event. 8–11. 15–29 Version. 4–3 URLs for event data. 5–2 Any. 2–63 Upgrading workflow definitions. 9–8 User–defined datatypes. 10–24 electronic mail. 5–3 Timeouts. 4–41 of document–type message attributes. 15–61 summary. A – 4 View notifications e–mail summary. 10–26 for Oracle Workflow home page. 8–229 Text–type attributes. 10–12 Views. 5–10 dynamic. 8–13 Transfer( ). 15–67. 16–16 of Oracle Workflow. 8–236 UserActive( ). 5–24 V Vacation forwarding. 4–60 Versioning.

2–21 WF_NOTIFICATION() message function.sql. 8–157 WF_ITEMS_V. 8–305 WF_EVENT_GROUPS_PKG.BACKROUND. 8–309 WF_SYSTEMS_PKG. 15–29 WF_RESOURCES.sql. 8–90 WFAttribute( ). 2–102. 13–25 WF_EVENT_SUBSCRIPTIONS Document Type Definition. 8–314 WF_EVENT_SUBSCRIPTIONS_PKG. 4–61 W Wait activity. 16–7 Wfchacta. 6–12 Warning( ). 8–241 WF_PARAMETER_T. 2–4 WF_ACCESS_LEVEL.Generate. 6–24 Wait for Flow activity. 2–97 WF_ITEM_ACTIVITY_STATUSES_V. 8–315 WF_EVENT_SUBSCRIPTIONS_PKG.Generate( ). 8–242 mapping attributes to OMBAQ_TEXT_MSG.sql. 2–44 WF_ERROR agent. 8–298 WF_EVENT_GROUPS Document Type Definition. 15–8 WF_REQDEMO. 8–296 WF_EVENT_FUNCTIONS_PKG.StartProcess. 2–25 WF_USERS. 8–306 WF_EVENT_GROUPS_PKG. 4–62 Voting activity.Receive( ).Receive. 16–7 Wfchita. 2–97 WF_PARAMETER_LIST_T.Receive. 8–304 WF_IN agent. for Oracle Workflow. 8–312 WF_AGENTS_PKG. requirements.Receive. 8–307 WF_EVENT_OMB_QH.sql. 8–161 WF_LANGUAGES view. 8–92 Wfbkg. 2–22 Wfagtlst. 8–285 Web agent. 15–18. 2–38 WF_LOCAL_* tables.sql.SelectApprover. view. 8–303 WF_EVENTS_PKG. 2–97 WF_ENGINE. 8–239 wf_payload_t. 16–8 Wfchitt. 2–106 WF_AGENT_T.Generate. 13–25 WF_OUT queue.Receive. 8–310 WF_USER_ROLES.sql. 16–7 Wfchact.Generate. 8–316 WF_EVENT_T. environment variable. 8–159 WF_OUT agent. 2–42 WF_ROLES.Generate. 8–311 WF_AGENTS_PKG.VerifyAuthority. 2–17 Web home page. 6–4 Wait for Concurrent Program activity. 8–313 WF_DEFERRED agent. 16–6 Wfbkgchk. 8–257 setting up. 16–8 Index – 16 Oracle Workflow Guide . 2–100 WF_EVENT_QH. 8–160 WF_SYSTEMS Document Type Definition.result type. 2–97 WF_ERROR_QH. 9–2 Web notifications. 2–24 WF_RUNNABLE_PROCESSES_V. 13–25 WF_DEFERRED queue. view. 8–237 WF_AGENTS Document Type Definition. view. 13–25 WF_ERROR queue. 8–302 WF_EVENTS_PKG. 13–25 WF_EVENT_FUNCTIONS_PKG. 8–308 WF_SYSTEMS_PKG. 4–26 WF_NOTIFICATION_ATTR_RESP_V.sql. 8–257 WF_EVENTS Document Type Definition. 8–111 WF_REQDEMO. 13–25 attribute mapping.Generate. 15–26 WF_REQDEMO. 13–25 WF_IN queue. 8–163 WF_PURGE.Receive. 16–6 WFAttribute class.

16–13 Wfrmall. 2–16 Workflow Agent Listener.sql. 16–17 Wfverupd.pls. 16–16 Wfstatus. 8–101 Workflow definitions loading. 8–101.sql. 2–81 Workflow Core APIs. 13–77 item type. 16–12 Wfprot. 16–9 Wfchmsg. 8–105 Wfretry. 16–15. 4–47 deferred activities. 2–12 Wfver. 13–78 item type attributes.Wfchluc. 2–100 Wfquhndos. 2–114.csh. 2–107 Workflow Definitions Loader. 2–117 Windows menu.sql. 1–4. 2–27 wfdirouv. 16–11 WFLOAD. 16–15 WFRUND. 8–82 wfjvlsnr. 12–2 transferring. 16–5 WFNLENA. 8–3 CANCEL mode. 16–8 Wfchlut.sql.sql. 15–2 Workflow Designer. See Oracle Workflow Builder Workflow diagrams. 15–3 Workflow Directory Service APIs.sql. 16–10 wfdircsv.sql. 8–236 Wfupart.sql.sql.sql. A – 2 Workflow Cancelled Mail message template.sql. 2–87 Wfjvstop.sql. 16–16 Wfstdchk. 8–231 Workflow administrator. 16–12 Wfntfsh. displaying. 2–108 concurrent program.sql.sql.sql. 2–109 wfload. 8–272 Workflow Agent Ping/Acknowledge. 1–4 source control.sql. 8–8 calling for activity initiation. 8–19 looping. 16–9 Wfdirchk.sql. 8–121 error processing. 13–78 Workflow Builder menus. 2–27 wfevquec. 2–109 Workflow Demonstrations home page. 2–107.sql. 2–114. 8–10 Index – 17 .sql. 2–78 Workflow Closed Mail message template. 16–15 Wfrmtype.sql. 8–11 core APIs. 8–9 directory services. 2–12 Wfupartb.sql. 16–10 WFFunctionAPI class. 15–8 Wfstat. 16–14 Wfrmitms.sql. 2–108 wfmail. 16–17 wfxload.sql. 8–10 Java APIs.SQL. 2–100 Wfrefchk. A – 6 WorkCount( ). 16–16 Wftypes. 16–14 Wfrmita. 2–58 Wfmqupd.sql.sql. 16–12 Wfqclean. 3–12 testing. 2–28 wfdirhrv. 16–13 Wfquhndob. 16–15 Wfrmitt. 1–3 calling after activity completion. 2–99 Wfevtenq. 16–12 WFNLADD. 8–5. 8–111 cost threshold.bat. C – 9 Wfrun. 16–4 Workflow Agent Listener concurrent program.sql.sql.sql.sql. 2–87 wfjvlsnr.sql. 8–121 Workflow Engine.cfg. 16–9 Wfchmsga. 2–117 wfxload. 16–13 wfresgen. 2–99 wfevqued.sql.sql.sql.pls.sql. 16–16 Wfverchk.sql.bat.

8–111 Workflow Queue APIs. 8–162 Workflow queues. 11–6 Detail Tab window. 8–105 concurrent program. requirements. 6–19 XML Compare Tag Value (Number) activity. 6–18 XML Transform activity. 16–13 Workflow Resource Generator. 14–20 Workflow Invalid Mail message template. 2–71 Workflow Open Mail (Templated) message template.master/detail processes. 15–2 Workflow Purge APIs. See Notification APIs Workflow Open Mail (Direct) message template. 2–34. 6–19 XML Compare Tag Value (Text) activity. See Items Worklist web page. 2–112 Workflow_Protocol( ). 2–82 Workflow web pages. 8–19 RUN mode. 2–82 Workflow URL Attachment message template. 14–18 sample workflow process. 8–157 Workflow Warning Mail message template. 8–148 Workflow processes creating and starting. 2–74 Workflow Open Mail message template. 14–24 Workflow Server. 8–149 Workflow Notification APIs. 8–182 WriteToClob( ). 10–17 WriteMsg( ). 8–9 Workflow Engine APIs. 11–2 Administration buttons. 2–21 Workflow Send Protocol item type. 2–3 Workflow Summary Mail message template. 11–4 Process Diagram window. 8–287 Workitems. 2–84 Workflow Monitor APIs. 11–2 samples. 8–106 Workflow roles. 2–84 Workflow XML Loader. 2–79 Workflow LDAP APIs. summary. 2–21 Workflow Views. 2–77 Workflow users. 11–3 setup. cleaning. 2–76 Workflow Preferences API. 16–15 monitoring. 2–47. modifying template. 2–69 Workflow Open Mail for Outlook Express message template. 8–234 X XML Compare Tag Value (Date) activity. 14–26 Workflow Send Protocol event. 11–3 Process title. 8–3 Workflow Event Protocol process. 8–79 PL/SQL APIs. 6–20 Index – 18 Oracle Workflow Guide . 14–17 Workflow Send Protocol Acknowledgement event. 6–19 XML Get Tag Value activity. 8–144 Workflow Monitor. 8–11 threshold cost. 6–19 XML Compare Tag Value activities.

2 A95276–03 Oracle Corporation welcomes your comments and suggestions on the quality and usefulness of this publication. CA 94065 USA Phone: (650) 506–7000 Fax: (650) 506–7200 If you would like a reply.6. please indicate the topic. Your input is an important part of the information we use for revision. Release 2. address. chapter. and telephone number below: Thank you for helping us improve our documentation. please give your name. . and page number below: Please send your comments to: Oracle Applications Documentation Manager Oracle Corporation 500 Oracle Parkway Redwood Shores. • Did you find any errors? • Is the information clearly presented? • Do you need more information? If so. where? • Are the examples correct? Do you need more examples? • What features did you like most about this manual? What did you like least about it? If you find any errors or have any other suggestions for improvement.Reader’s Comment Form Oracle Workflow Guide Volume 1.

.

6.2 VOLUME 2 March 2002 .Oracler Workflow Guide RELEASE 2.

please use the set part number.Oracle Workflow Guide Volume 2. Kenneth Ma. Clara Jaeckel Major Contributors: George Buzsaki. 2002 Oracle Corporation. Redwood City. Oracle Corporation. medical. Copyright E 1996. mass transit. redundancy and other measures to ensure the safe use of such applications if the Programs are used for such purposes.227–19. The Programs are not intended for use in any nuclear. they are provided under a license agreement containing restrictions on use and disclosure and are also protected by copyright. Oracle8i.6. Other names may be trademarks of their respective owners. Sheryl Sheh. disassembly or decompilation of the Programs. Oracle8. without the express written permission of Oracle Corporation. Commercial Computer Software – Restricted Rights (June. It shall be licensee’s responsibility to take all appropriate fail–safe. Oracle is a registered trademark. and Express. is prohibited. Mark Craig. the following notice is applicable: RESTRICTED RIGHTS NOTICE Programs delivered subject to the DOD FAR Supplement are ”commercial computer software” and use. shall be subject to the licensing restrictions set forth in the applicable Oracle license agreement. CA 94065. Tim Roveda. John Cordes. aviation. or other inherently dangerous applications. Oracle Corporation does not warrant that this document is error–free. . no part of these Programs may be reproduced or transmitted in any form or by any means. If you find any problems in the documentation.2 The part number for this volume is A95277–03 . except to the extent required to obtain interoperability with other independently created software or as specified by law. electronic or mechanical. and Oracle disclaims liability for any damages caused by such use of the Programs. David Lam. All rights reserved. A95265–03 . George Kellner. and SQL*Plus are trademarks or registered trademarks of Oracle Corporation. PL/SQL. Programs delivered subject to the Federal Acquisition Regulations are ”restricted computer software” and use. If the Programs are delivered to the US Government or anyone licensing or using the Programs on behalf of the US Government. Susan Stratton The Programs (which include both the software and documentation) contain proprietary information of Oracle Corporation. duplication and disclosure of the Programs including documentation. Oracle Store. 1987). Otherwise. for any purpose. Except as may be expressly permitted in your license agreement for these Programs. OracleMetaLink. JInitiator. duplication and disclosure of the Programs shall be subject to the restrictions in FAR 52. Steve Mayze. To reorder this book. patent and other intellectual and industrial property laws. please report them to us in writing. Primary Authors: Siu Chang. Oracle9i. Oracle Press. back up. 500 Oracle Parkway. The information contained in this document is subject to change without notice. Robin Seiden. Reverse engineering. Jin Liu. Kevin Hudson. Release 2.

. . . . . . . . How To Use This Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Online Documentation . . . . Documentation Accessibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Workflow Processes . 1–1 1–2 1–3 1–6 Contents iii . . . . . . . . . . . Audience for This Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . i Preface . . Your Feedback . . Guides Related to All Products . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Contents VOLUME 1Volume 1 . . . . . . . . . . . . About Oracle . Other Implementation Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Installation and System Administration . . . . . . . . . . . . . . . . . . Major Features and Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Do Not Use Database Tools to Modify Oracle Applications Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix xx xx xxi xxii xxii xxiii xxiii xxiv xxv xxvi xxviii xxix xxix xxx Chapter 1 Overview of Oracle Workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . User Guides Related to This Product . . . . . . . . . . . . . . . . . . . . . Training and Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Other Information Sources . . . . . . . . . Related User’s Guides . Introduction to Oracle Workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . Setup Flowchart . . . . . . . . . . . . Other Workflow Features . . . . . . . . Messages . . . . . . . . . . . . Opening and Saving Item Types . . . . . . . . . . . Activities . . . . . . . . . . . . . . . . . . . . . . . . . . . Overview of Setting Up . Overview of Oracle Workflow Builder . . . . . . . . . . . . Lookup Types . . . . . . . . . . . . . . . . . . . . . . Optional Setup Steps . . . . . . . . . . . . Creating Process Definitions in Oracle Workflow Builder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Setup Steps . . . . Setup Checklist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Overview of Oracle Workflow Access Protection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Modifying Objects in Oracle Workflow Builder . . . Voting Activity . . . . . . . . . . . . . . Workflow Objects That Support Versioning . . . . . . . . . . . . . . . . . . . . . . . . . . . Quick Start Wizard Overview . . . . . . . Using Oracle Workflow Builder with Different Server Versions . . . . . . . . . . . . . . . Allowing Access to an Object . . . . . . Setting Up a Default Access Level . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Item Type Definition Web Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Chapter 2 Setting Up Oracle Workflow . . . . . 3–1 3–2 3–3 3–4 3–7 3 – 12 3 – 18 3 – 21 3 – 24 Chapter 4 Defining Workflow Process Components . . . . . . . . . . . . . . . . . . Item Types . . Overview of Required Setup Steps for the Standalone Version of Oracle Workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . Oracle Workflow Hardware and Software Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Viewing the Navigator Tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Using the Workflow XML Loader . . . . . . . . . The Navigator Tree Structure . . . Identifying the Version of Your Oracle Workflow Server . . . . . . . . . . . . . 2–1 2–2 2–6 2–6 2–7 2–7 2–8 2–9 2 – 10 2 – 11 2 – 12 2 – 101 2 – 105 2 – 107 2 – 112 Chapter 3 Defining a Workflow Process . . . . . . . . . . . . . . . . . . . . . . 4–1 4–2 4–2 4 – 17 4 – 19 4 – 23 4 – 42 4 – 61 4 – 68 4 – 69 4 – 70 iv Oracle Workflow Guide . . . . . . . . . . . . . . . . . . . . . Workflow Process Components . . . . . . . . . . . . . . Overview of Required Setup Steps for the Version of Oracle Workflow Embedded in Oracle Applications . . . . . . . . . . . . . . . . . . . Deleting Objects in Oracle Workflow Builder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .