209
Banner Workflow Technical Integration Guide Release 8.3 February 27, 2015

Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Embed Size (px)

Citation preview

Page 1: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Banner WorkflowTechnical Integration Guide

Release 8.3February 27, 2015

Page 2: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Without limitation: Ellucian®, Banner®, Colleague®, and Luminis® are trademarks of the Ellucian group of companies that are registered in the U.S. and certain other countries; and Ellucian Advance™, Ellucian Course Signals™, Ellucian Degree Works™, Ellucian PowerCampus™, Ellucian Recruiter™, Ellucian SmartCall™, are also trademarks of the Ellucian group of companies. Other names may be trademarks of their respective owners.

© 2015 Ellucian.

Contains confidential and proprietary information of Ellucian and its subsidiaries. Use of these materials is limited to Ellucian licensees, and is subject to the terms and conditions of one or more written license agreements between Ellucian and the licensee in question.

In preparing and providing this publication, Ellucian is not rendering legal, accounting, or other similar professional services. Ellucian makes no claims that an institution's use of this publication or the software for which it is provided will guarantee compliance with applicable federal or state laws, rules, or regulations. Each organization should seek legal, accounting, and other similar professional services from competent providers of the organization's own choosing.

Ellucian4375 Fair Lakes CourtFairfax, VA 22033United States of America

Page 3: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Contents

Banner Workflow Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

Hardware and Software Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

Banner Workflow - Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

Banner Workflow - Server. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

Required Software: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15Required Hardware: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

Create and Initialize Installation Directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

Installation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

Create Oracle Connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

Update deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18

Prepare to Deploy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

Create the WFSSO User for Accessing Banner from Banner Workflow . . . . . . . . . . . 21

Deploy Banner Workflow to Oracle WebLogic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

WebLogic domain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22Create a WebLogic server. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23Deploy Banner Workflow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24Start Banner Workflow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25Configure Oracle HTTP Server (OHS) for use with Banner Workflow . . . . . . . . . . 25Start the system. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

Deploy Banner Workflow to Tomcat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

Set up startup arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27Deploy Banner Workflow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27Configure Apache HTTP Server for Use with Banner Workflow . . . . . . . . . . . . . . . 27

SSL Configuration (Optional) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27Load Balancing Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

Start the Workflow Engine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

Import base seed data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

Re-deploying after configuration changes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

Advanced Workflow Engine Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

Workflow Engine. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

Adding and Removing Engine Instances. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34Engine RMI Port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34Maximum Engine JDBC Connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

3nner Workflow Technical Integration Guide | Contents

Page 4: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Main Pool Max Threads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34Main Pool Min Threads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35Notification Pool Max Threads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35Notification Pool Min Threads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35External Events Max Threads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35External Events Min Threads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

Migrating from Workflow 8.2 to Banner Workflow 8.3 . . . . . . . . . . . . . . . . . . . . . . 35

Prepare for Migration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

Migrate Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

Update Clustered Engines and Deploy CAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

Migrating from Workflow 8.2 on WebLogic to Workflow 8.3 on Tomcat . . . . . . . . . . . . 38

Starting and Stopping Banner Workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

Starting Banner Workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

Stopping Banner Workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

Supported Integration Modes for Banner Workflow . . . . . . . . . . . . . . . . . . . . . . . . 39

Setting up Banner Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

Setting up Luminis Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

Configuring Banner Workflow without Banner . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

Running the Workflow Engine as a Windows Service . . . . . . . . . . . . . . . . . . . . . . 40

Log Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

Deploying and Managing Multiple Engine Instances . . . . . . . . . . . . . . . . . . . . . . . 41

Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

Install an Engine Instance. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

Banner Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

Banner Integration Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

Event Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

Technologies to Launch Banner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

Banner Launcher Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

Keeping Passwords in Sync between Banner Workflow and Banner . . . . . . . . . . . 48

4nner Workflow Technical Integration Guide | Contents

Page 5: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Set Up Banner and Banner Workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

Banner-Side Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

Enable Banner Workflow in GUAINST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48Enable the Event Queue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48Configure Banner database ACL to allow FORM Integration . . . . . . . . . . . . . . . . . 48Set Up Banner Workflow with Internet Native Banner. . . . . . . . . . . . . . . . . . . . . . . 50Password Synchronization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

Banner External Authentication Plug-in . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51LDAP External Authentication Plug-in . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

Set Up Banner Access from Banner Workflow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

Configure the Banner Forms Technology Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52Set Up the Banner Forms Instance to Use the WFSSO User . . . . . . . . . . . . . . . . . 52

Set Up Event Processing in Banner Workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

Set Up Automated SQL Activities in Banner Workflow. . . . . . . . . . . . . . . . . . . . . . . . . 54

Import Banner Components and Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

Extract Banner User Data and Import Into Banner Workflow Database. . . . . . . . . . . . 56

User Information That Is Extracted . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56Extract and then Import User Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

System Verification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

Analyze Banner Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

Update Workflows for a New Banner Release . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

Handling Custom Forms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

Verify That the Form Uses Banner Release 7.0 Standards . . . . . . . . . . . . . . . . . . . . . 60

Check for a WHEN-TIMER-EXPIRED Trigger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

Define the Form to Banner Workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

Check Navigation of Key Block Items. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

Check Visual Attributes of Key Block Items . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

Check Triggers of Key Block Items. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

Check the PRE_FORM_TRG. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

Check the Startup Logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

Add Logic if the Form Is a Pass-Through Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

Check for Automatic Rollbacks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

Prevent Automatic Commits in Workflow Submit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

Make Changes for Additional Workflow Submit/Release Logic . . . . . . . . . . . . . . . . . . 66

Technical Information. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

Banner Workflow-Awareness Library (GOQWFLW). . . . . . . . . . . . . . . . . . . . . . . . . . . 66

What Is the Relationship Between GOQWFLW and Banner Workflow? . . . . . . . . . 67How Does a Form Invoke the Functionality of GOQWFLW?. . . . . . . . . . . . . . . . . . 67

5nner Workflow Technical Integration Guide | Contents

Page 6: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

How Is GOQWFLW Organized? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

Integrating Banner Workflow with Luminis . . . . . . . . . . . . . . . . . . . . . . . 70

Integration with Luminis 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

Configuring Luminis 4 for Workflow External Authentication . . . . . . . . . . . . . . . . . . . . 71

Deploying the CAR File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71Configuring Single Sign On from Luminis 4 to Banner Workflow . . . . . . . . . . . . . . 71

Configuring Banner Workflow for Luminis 4 SSO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

Luminis 4 Configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

Configuring Luminis 4 for Banner Workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

Configuring Luminis 4 for IDM or CAS Authentication . . . . . . . . . . . . . . . . . . . . . . . . . 74

Deploying the CAR File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

Channel Administration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

Installing the Worklist Channel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74Installing the Workflow Alert Channel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75Installing the Workflow Processes Channel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76Adding a Workflow Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

Integration with Luminis 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

Setting Up Single Sign-On Between Banner Workflow and Luminis 5 . . . . . . . . . . . . . 79

Importing the Banner Workflow Server Certificate to the Luminis Server . . . . . . . . 79Register Banner Workflow with CAS server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80Deploying the luminis-workflow WAR File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80Configuring Banner Workflow for CAS for Integration With Luminis 5 . . . . . . . . . . 81Setting Up Banner Workflow User Accounts for Luminis SSO . . . . . . . . . . . . . . . . 81

Adding the Workflow Portlets to Luminis 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

Server Administration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

Server Time Synchronization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

Import and Export Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

Import a File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

Export the Current Banner Workflow System. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

Modifying .ZIP Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

ZIP File Name. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

Relationship Between the XML Content File and the staticdocuments . . . . . . . . . . . . 85

6nner Workflow Technical Integration Guide | Contents

Page 7: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Important Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

Import File Manipulation with Castor Generated Classes . . . . . . . . . . . . . . . . . . . . 86

Extractor Tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

Archive and Purge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

Archive Tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87Archive Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

Purge Tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

Database and Application Server Administration . . . . . . . . . . . . . . . . . . 90

Redeploying . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

EmailServer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

AutomatedActivityServlet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

Reaper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

EventDispatcher . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

DataSources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

What types of external data sources can be defined. . . . . . . . . . . . . . . . . . . . . . . . 95

SecurityIntegration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

<SuperUser> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96<WebServicesUser> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96<ExternalAuthenticator> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

Engines. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96Deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98WorkflowDataSource. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98BannerDataSource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98ApplicationName . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99ApplicationServerHost. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99WebApplication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99LuminisIntegration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99Luminis5Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100AdvancedDeployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100Logging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

Logging Configuration for Tomcat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

Manipulating Data Sources through Banner Workflow . . . . . . . . . . . . . . . . . . . . . 102

Connection Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

7nner Workflow Technical Integration Guide | Contents

Page 8: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Automated Activity Deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

Internal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

Automated Workflow-aware and Non-workflow-aware. . . . . . . . . . . . . . . . . . . . . . . . . 105

Clone a Banner Workflow Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

Client Administration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

Launch Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

SimpleClientLauncher . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108SimpleWebLauncher . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108WorkflowawareClientLauncher . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108Banner Launchers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

Built-in Launch Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

Desktop Application Deployments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

Java Web Start / Certificates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

Signed Jars. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

Desktop.sct . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

Internationalization. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

Look and Feel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

Banner Workflow Web Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

WSDL and SOAP Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

Endpoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114

Authentication and Authorization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114

Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114

Data Passing: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115State Manipulation: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115Event Creation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115Account Provisioning and Manipulation: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

Usage Notes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

Using the Workflow Web Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

Use the Workflow Web Services to Pass Static Data . . . . . . . . . . . . . . . . . . . . . . . . . . 117

Create a Web Service Client in Java Using Eclipse . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

8nner Workflow Technical Integration Guide | Contents

Page 9: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Create a Web Service Client Using a PL/SQL Procedure . . . . . . . . . . . . . . . . . . . . . . 120

Load Balancing and Clustering. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121

Clustering Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121

Load Balancing Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122

HTTP Load Balancing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123

Deploy Banner Workflow to Multiple WebLogic or Tomcat Servers . . . . . . . . . . . 123

Deploy Multiple Instances of the Workflow Engine. . . . . . . . . . . . . . . . . . . . . . . . . 124

Install additional Workflow Engines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126

HTTP Load Balancing with an F5 BIG-IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127

HTTP Load Balancing with Oracle HTTP Server (OHS) . . . . . . . . . . . . . . . . . . . . . 128

HTTP Load Balancing with Apache HTTP Server . . . . . . . . . . . . . . . . . . . . . . . . . . 128

External Events. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

External Event format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130

Authentication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131

External Authentication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

Banner Authentication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133

LDAP Support. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133

Search for Luminis 4.x. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134Search for Luminis 5.x. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136

Security. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

SSO authentication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

Integration With BEIS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140

Prerequisites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140

9nner Workflow Technical Integration Guide | Contents

Page 10: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Account provisioning. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140

Information flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140

Add request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141Update request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142Delete request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144

Configuration of the Banner Workflow Provisioning Gateway . . . . . . . . . . . . . . . . . . . 145

Install the Banner Workflow Provisioning Gateway . . . . . . . . . . . . . . . . . . . . . . . . . 146Configure the Banner Workflow Provisioning Gateway. . . . . . . . . . . . . . . . . . . . . . 147

server.properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147log4j.properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148

Build the ear or war file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150Create a JAAS Configuration File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151

Create a JAAS Configuration File for WebLogic . . . . . . . . . . . . . . . . . . . . . . . . 151Create a JAAS Configuration File for Tomcat . . . . . . . . . . . . . . . . . . . . . . . . . . 152

(WebLogic Only) Configure the server for the authentication provider . . . . . . . . . . 152Option 1 - If you are using the administration console to start the Managed Server. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152Option 2 - If you are using a script to start the Managed Server . . . . . . . . . . . . 153

Restart the appropriate server(s). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154Option 1 - If a single Managed Server was configured . . . . . . . . . . . . . . . . . . . 154Option 2 - If all servers in the domain were configured . . . . . . . . . . . . . . . . . . . 154

Deploy the ear file (WebLogic only). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155Deploy the war file (Tomcat only) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156Configure the security group and user (WebLogic only) . . . . . . . . . . . . . . . . . . . . . 157Configure Enterprise Identity Proxy Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158

Single sign on (SSO) authentication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159

SSO under CAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159

Configure Banner Workflow for CAS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159Configure <LogoffUrl> element (optional) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160Set up Application Server SSL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161Register Banner Workflow with CAS server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161Modify Banner Forms technology type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

SSO under a third-party access manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

Configure IDM Gateway . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162Configure Banner Workflow for IDM Gateway. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162Configure <LogoffUrl> element (optional) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163Modify Banner Forms technology type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163

Logging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164

Banner Workflow Logs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164

Engine Logs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164

WORKFLOW_HOME/engine/engine.log. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164

10nner Workflow Technical Integration Guide | Contents

Page 11: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

WORKFLOW_HOME/engine/install.log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164

Application Server Logs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165

Oracle WebLogic Server Logs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165

Tomcat Server Logs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165

Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166

archive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166

checkexternalauth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166

export. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167

extractwd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167

import . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168

purgewf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168

wftool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170

Engine bin Directory Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171

startengine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171

engineconsole . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171

stop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171getstate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172pause. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172resume . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173

Tuning the Workflow Engine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174

Workflow Engine. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174

Interactive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175

Asynchronous. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175

Engine Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176

How to Monitor Engine Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176

ENG_EVENTS Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177

11nner Workflow Technical Integration Guide | Contents

Page 12: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Security Management in Banner Workflow . . . . . . . . . . . . . . . . . . . . . . . 179

Add a Role Authorization to an Existing Security Group . . . . . . . . . . . . . . . . . . . . 179

Delete a Role Authorization from an Existing Security Group. . . . . . . . . . . . . . . . 179

Security Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180

Banner Workflow Entity Relationship Diagrams . . . . . . . . . . . . . . . . . . . 182

Archive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185

Calendar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186

Component . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187

Component Query . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188

Custom Activity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189

Dynamic Data Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190

Document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190

Event . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191

Event Query . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191

External Events. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192

Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193

Process Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194

Process Definition Query. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195

Process Query . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196

Role and User . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197

Runtime Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198

Workflow Engine. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199

12nner Workflow Technical Integration Guide | Contents

Page 13: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Workflow Engine Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200

Using SSL with Banner Workflow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201

Web Service Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201

Enabling an Encrypted JDBC Connection . . . . . . . . . . . . . . . . . . . . . . . . 203

Encrypting the Connection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203

Testing the Encrypted Connection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203

Altering Web Session Timeouts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205

Third Party Software Licenses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206

Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207

Launching Banner from Banner Workflow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207

I am unable to launch Banner from Banner Workflow. I receive the following message: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . *ERROR* You did not connect succesfully; exiting. . . . . . . . . . . . . . . . . . . . . . . 207

Processing Workflows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207

Workflows triggered by events do not start. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207A Banner form does not behave as predicted when it is launched as a workflow activity.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207Missing required option - database error message appears . . . . . . . . . . . . . . . 209

Processing Business Events. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209

The status of a business event has been Ready for Processing for a long time. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209

Customizing Example Workflows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209

The import fails when you try to move a customized example workflow into the production environment.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209

13nner Workflow Technical Integration Guide | Contents

Page 14: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Banner Workflow Installation

Before installing Banner Workflow 8.3, you should review the Hardware and Software Requirements section.

Banner Workflow 8.3 is compatible with specified versions of Banner. If you will be using Banner with Banner Workflow, Banner must be installed prior to installing Banner Workflow 8.3. The release of Banner Workflow 8.3 contains both a cumulative release of Banner Workflow 8.3 for new installations and scripts that can be used to easily upgrade existing Workflow 8.2 systems.

Banner Workflow 8.3 is a cumulative release. If you have not installed Banner Workflow previously, you are not required to install a previous release of Banner Workflow before installing 8.3.

To migrate from a previous installation of Banner Workflow you must first migrate to Workflow 8.2 prior to migrating to Banner Workflow 8.3. See “Migrating from Workflow 8.2 to Banner Workflow 8.3” on page 35 for more information.

Note: When referencing scripts and directories from within this guide, a “/” was used. For MS Windows installations, the “/” should be replaced with a “\”.

Hardware and Software Requirements

Banner Workflow - Client

Banner Workflow is a web based application. The requirements to run the client side of Banner Workflow are based on the browser that the user selects.

Banner Workflow has been tested against and supports the following browsers on machines with at least 1 GB of RAM:

• Microsoft Internet Explorer 8.x, 9.x, 10.x, and 11.x

• Firefox 31

• Chrome 39

• Safari 7 on Macintosh

Note: Please note that this list is for Banner Workflow only. If you are integrating workflow with other Ellucian products, such as Banner or Luminis, please check those products for the browsers they support.

14nner Workflow Technical Integration Guide | Banner Workflow Installation

Page 15: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Note: Banner Workflow uses Java Web Start technology to run client programs to support the graphical modeling of workflow and client launching from the browser. The first time a user attempts to use this functionality, they may be prompted to install a Java JRE if they do not already have a compatible one installed.

Banner Workflow - Server

Required Software:

• Oracle WebLogic Server 11g (10.3.6.0) or Tomcat 7.0.x

• Oracle Database 10g R2 (10.2), 11g R1 (11.1.x), 11g R2 (11.2.x), and 12c R1 (12.1.0.2.0).

• JDK version 6 or 7

The following versions of Banner are supported for integration

• Banner 8.x

The following versions of Luminis are supported for integration of single-sign on and Banner Workflow Channels:

• For Luminis 4.x: Luminis 4.3.1.x, with the latest hot fix available from Luminis Support. Workflow integration with Luminis 4.x has been tested only with Java 6.

• For Luminis 5.x: Luminis LP-5.1.0.0 build 730 or later. Workflow integration with Luminis 5.x is compatible with either Java 6 or Java 7.

Required Hardware:

Banner Workflow has been tested against an Oracle Java 6 and Java 7 VM. All operating systems and hardware that are supported by the Oracle WebLogic Server 11g (10.3.6.0) or Tomcat 7.0.x should be acceptable for Banner Workflow. A majority of Ellucian's system testing has been done on a Red Hat Linux Server configured with 3 GB of RAM and 1 cpu. The actual hardware requirement will vary based on the environment. Please contact ActionLine for more information.

Note: Operating systems such as HP-UX and Tru-64 will have their own Java VM. The VM must be built off of Oracle's Java 6 specification to run Banner Workflow.

Note: If you are running multiple engine instances, or are using clustering, it is CRITICAL that the system clock on each server be accurate. If the system clocks on the servers are out of sync, various pieces of workflow, such as SSO, and execution of automated activities

15nner Workflow Technical Integration Guide | Banner Workflow Installation

Page 16: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

may function erratically, or generate unexpected errors. You should periodically check that the time on the servers is correct, or use a script or some other automated process to periodically check and update it.

Create and Initialize Installation Directory

Create a directory that will be used for the Banner Workflow 8.3 installation. This directory will be referred to as WORKFLOW_HOME in all steps below. Consider naming the directory based on the type of Banner Workflow instance you are installing. For example:

If you are installing a TEST Banner Workflow environment, select TEST as the name of your WORKFLOW_HOME directory.

You could create the following directory structure:

/workflow83/PPRD/workflow83/DEV/workflow83/TEST/workflow83/PROD

From the installation CD, copy installer.jar to the newly created WORKFLOW_HOME directory. Navigate to WORKFLOW_HOME and execute the following commands to unjar the installer.jar:

Windows: %JAVA_HOME%\bin\jar xf installer.jarUnix: $JAVA_HOME/bin/jar xf installer.jarchmod +x ant

Run the ant script from WORKFLOW_HOME with no option:

Windows: antUnix: ./ant

Note: Ant is the shell used for creating the initial deployment scripts and is bundled as a part of Banner Workflow.

Note: If multiple Banner Workflow instances are going to be installed please create a separate WORKFLOW_HOME for each instance.

Once you have created the WORKFLOW_HOME for the 8.3 installation, you can set up a new Banner Workflow system or migrate an existing 8.2 Workflow system. To install a new system, follow the instructions in “Installation” on page 17. To migrate an existing 8.2 instance to 8.3, follow the instructions in “Migrating from Workflow 8.2 to Banner Workflow 8.3” on page 35.

16nner Workflow Technical Integration Guide | Banner Workflow Installation

Page 17: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Installation

The following steps provide the necessary information to setup and install Banner Workflow for the first time. If you will be installing multiple instances of Banner Workflow, each Banner Workflow instance will require a separate WORKFLOW_HOME.

Note: You can only have one WORKFLOW_HOME for each workflow instance. Never install more than one WORKFLOW_HOME configured to use the same database account/schema as this may lead to data corruption.

Create Oracle Connections

Ellucian recommends that a separate Oracle table space be created for Banner Workflow 8.3 named “WORKFLOW” with a default size of 500M.

Note: Each Banner Workflow instance will require unique WORKFLOW schemas that should be installed onto a tablespace separate from other applications. Multiple instances of Banner Workflow can share the same tablespace, but cannot share the same schemas.

An example script for creating tablespaces is provided, but needs to be modified depending on your file system. The script is located at:

WORKFLOW_HOME/db/workflow/users/workflow_tablespace_creation_example.sql

Banner Workflow requires Oracle database connections to persist its data.

1. Create a user account to become the owner of the Banner Workflow tables. All tables in this workflow connection account are used solely for Banner Workflow and do not have to grant public access. The default tablespace for this account is “WORKFLOW”.

An example script is provided to create this user with the recommended name of “WORKFLOW” that is granted all the necessary rights. You will need to modify the script to specify the password you want to use. The script to create this user is located at:

WORKFLOW_HOME/db/workflow/users/workflow_user_creation.sql

2. To provide integration with Banner, Banner Workflow requires another user account to be setup with access to Banner. The tables owned by this Banner connection account are used to transfer data between Banner and Banner Workflow. The default tablespace for this account is “DEVELOPMENT” if the Banner recommended tablespace was used.

An example script is provided to create this user with the recommended name of “WFBANNER”. You will need to modify the script to specify the password you want to use. The script to create this user is located at:

WORKFLOW_HOME/db/banner/users/wfdcwfba.sql

17nner Workflow Technical Integration Guide | Banner Workflow Installation

Page 18: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

When creating the “WFBANNER” user, a grant from BANINST1 for the GOKBSSF package is required for decrypting single sign-on credentials. To grant this permission, log in as BANINST1 and enter the following:

grant execute on baninst1.gokbssf to wfbanner;

This provides a WFBANNER account with the minimum grants needed to launch Banner from Banner Workflow. You will need to add additional grants to this account if you wish to use it for event handling or for use in automated activities.

3. By default, the WFBANNER account in a new installation cannot be used to poll events from Banner. You must either create a Workflow Event user in the Banner database that has access to the Banner event tables as well as related sequences or grant the necessary privileges to the WFBANNER user.

Banner ships with installation scripts that create a WFEVENT account that can be used to poll for Banner events. Banner Workflow also includes an example script that can be used to create event polling accounts (or that you can use as a reference for the grants needed for the WFBANNER account if you want to enable it to poll events).

You will need to modify the script to specify the password you want to use. The script to create this user is located at:

WORKFLOW_HOME/db/banner/users/wfdcwfev.sql

4. By default, the WFBANNER account in a new installation does not have sufficient grants to serve as the account in the Banner Automated Data Source. This data source is used for processing both automated SQL and stored procedures. For setting up the Banner Automated Data Source, you may either extend the WFBANNER account by adding additional grants or create a separate database account such as WFAUTO (recommended). You may use the wfdcwfba.sql as a template for creating a separate account. It is recommended that you work with your Banner database administrator to grant access to Banner resources on an as-needed basis rather than simply granting 'DBA' to these accounts in a production environment.

Note: It is recommended that the WFAUTO database account is used with the Banner Automated Data Source.

Note: You must grant at least SELECT on the SPRIDEN table for the Banner Automated Data Source account to successfully complete the System Verification Workflow.

Update deployment information in configuration.xml

Banner Workflow is a J2EE-based application and uses an Enterprise Archive (EAR) or Web Archive (WAR) file as the format for software distribution.

The configuration.xml file, located in the instance/config directory off of the WORKFLOW_HOME, stores the information needed to deploy a Banner Workflow instance and control its runtime behavior. This information is used to build an EAR or WAR file, update data source connections, and configure ports for Banner Workflow.

18nner Workflow Technical Integration Guide | Banner Workflow Installation

Page 19: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

In general, changes made to the <Deployment> section of the configuration file (with the exception of changing logging settings) require the application to be redeployed to take effect. All other changes require the new configuration to be uploaded to the database and the application to be restarted. For complete details on the changes that require a redeploy, see “configuration.xml” on page 91.

Perform these steps to edit the configuration file.

1. Set the value of <ApplicationServer><Type> to either "weblogic" or "tomcat" based on where you would like to deploy Banner Workflow.

2. Under <Deployment> update <WorkflowDataSource> and <BannerDataSource> to use the database accounts you set up in “Create Oracle Connections” on page 17.

3. Update the <ApplicationName> to be a name unique for this workflow installation.

The name chosen here is the name that is used within the application server (Oracle WebLogic or Tomcat) to identify the deployment of workflow, and is also used to form the name of the ear or war file. The default name is “workflow.” Each Banner Workflow instance should have a unique application name. The application name should follow the standard of incorporating the application type into the name. For example, a system in workflow83/PROD should be given a name like “wfprod.”

4. Update the <WebApplication> element to specify the protocol, host, port, and root for the web application. If you are using clustering, the WebApplication should specify the “front end” that user will logon to. For example, if you are using a load balancer, that address should be specified here.

Protocol. This should be either http, or, if you are running under ssl, https.

Host. This should be set to the hostname of the server Banner Workflow is deployed to. It will be used by other workflow components (such as Luminis 4.x) that need to contact Banner Workflow.

Port. Should be set to the port that the Oracle Http Service or Apache Http Service is running.

Root. This is the webroot of the workflow application, by default “/workflow”. This should be set to a unique value for each Banner Workflow instance running on the server, and should be given a name that identifies the type of installation, for example “/wfprod” for a production system.

Note: The <WebApplication> element does not control the HTTP server settings. HTTP server settings must be managed individually, depending on your HTTP server configuration or clustered environment. The <WebApplication> element tells Banner Workflow how your HTTP server is configured, so Banner Workflow can configure items such as Banner Workflow channels, the import/export utility, the Modeler, and how to contact Banner Workflow through the web server.

5. Under the <Engines> element, update the <EngineConfiguration name="main"> element to configure the rmi port the engine should run on, as well as the tuning parameters. If you intend to run a single engine instance, and are not using engine clustering, the default installation will install a single engine instance

19nner Workflow Technical Integration Guide | Banner Workflow Installation

Page 20: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

using the “main” engine configuration. You should edit this “main” engine configuration and adjust the rmi port and thread pool settings as desired.

If you are using engine clustering, or if you intend to deploy multiple engine nodes that require different configuration options (such as a different port), add additional <EngineInstance> and <EngineConfiguration> sections as necessary. Be sure to give each <EngineConfiguration> section a unique name. For each engine instance that you plan to install, add an <EngineInstance> element to the configuration file, specifying the hostname and configuration the engine will run under. See “Deploying and Managing Multiple Engine Instances” on page 41 for details on managing multiple engine instances.

See “Advanced Workflow Engine Configuration” on page 34 for more details on configuring the Engines element.

6. Update the <EmailServer> settings if you want to use email notifications.

A set of property name value pairs are defined here in the configuration which get passed to the email gateway at time of connection. The key values that need to be set include the “mail.smtp.host” and “mail.smtp.port” which point to the actual email server.

The default sender address can be updated by setting address attribute on the DefaultAccount element.

7. Update the BannerDatabase datasource under <DataSources> with the appropriate jdbc url, username, and password to the target Banner system. This is used to define the Banner product type used by sql automated activities and dynamic data source custom activities.

The jdbc url should be formatted as jdbc:oracle:thin:@<server name>:<listener port>:<sid or service>.

For example: jdbc:oracle:thin:@myserver:1521:development

Traditionally in examples, the username for accessing the banner database is WFBANNER but may be whichever account you set up proper access to.

(Optional) You can also specify the maximum number of connections to the Banner database that the application server may use at one time, and affects the total number of users that can make requests of the server at once.

8. Update the Banner W-Event Provider #1 event provider if you want workflow to poll for Banner events.

9. Update the <WorkflowDataSource> with the appropriate jdbc url, username, and password of the database that will store the Workflow data.

(Optional) You can also specify the maximum number of connections to the Workflow database that the application server may use at one time, and affects the total number of users that can make requests of the server at once.

10. Update the passwords under <SecurityIntegration>. This is for defining the passwords and security groups of the privileged system accounts.

<SuperUser> refers to the built in wfroot account. It is typically used for bootstrapping the system and administration scripts.

<WebServicesUser> refers to built in wfwebservice account. It is typically used for web service communication.

20nner Workflow Technical Integration Guide | Banner Workflow Installation

Page 21: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

There are additional configuration settings in subsequent chapters that describe additional authentication, authorization, and integration options.

Prepare to Deploy

With the database(s) used by Banner Workflow and Banner running, execute the following:

bin/wftool all

This will apply the changes made to the configuration, install the schemas to the database (you will be prompted to confirm changes that will affect the database), install a default engine node, and create the ear or war file for deployment.

Create the WFSSO User for Accessing Banner from Banner Workflow

To provide single sign-on with Banner, Banner Workflow requires a limited user account to be set up within the Banner database. This user is granted access during the installation to call WFCKGSSO.GET_SSO( ) with encryption keys to allow transparent login to Banner from Banner Workflow. The default tablespace for this account is “DEVELOPMENT” if the Banner recommended tablespace was used.

An example script is provided to create this user with the HIGHLY recommended name of “WFSSO”. You will need to modify the script to specify the password you want to use. The script to create this user is located at:

WORKFLOW_HOME/db/banner/users/wfdcwsso.sql

Note: You will need to enter the password later when you set up Banner Workflow to access Banner, using the procedure in “Set Up the Banner Forms Instance to Use the WFSSO User” on page 52.

Additional grants are necessary for the single sign-on functionality to work correctly. Connect as system and issue the following grants:

• grant execute on WFCKGSSO to BANINST1;

• grant execute on WFIKWIBC to BANINST1;

Deploy Banner Workflow to Oracle WebLogic

Note: If you are using Tomcat, perform the procedure in “Deploy Banner Workflow to Tomcat” on page 26 instead of this procedure.

21nner Workflow Technical Integration Guide | Banner Workflow Installation

Page 22: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

On WebLogic the configuration that controls the operation of the WebLogic Server is split between the server itself and the domain it is a part of. A WebLogic domain can be thought of as defining common configuration for a group of WebLogic Servers. Consequently, successfully deploying Banner Workflow requires both a correctly configured domain, and server.

Note: This step will define the configuration necessary to deploy Banner Workflow to WebLogic, but is not intended as a replacement for the Oracle documentation on installing and maintaining WebLogic.

WebLogic domain

Banner Workflow requires a WebLogic domain that has had no additional features added to it.

Note: If you have installed the Forms/Reports/Discover part of Fusion Middleware 11g, the ClassicDomain that it creates by default cannot be used for Banner Workflow as it adds additional components to the domain configuration that are incompatible with Banner Workflow. Additionally, the WebLogic domain must be configured to disable basic authentication, or Banner Workflow web services will not function.

Perform the following steps to create a WebLogic domain:

1. Use the configuration script, usually located in the common/bin directory of the WebLogic directory, to create a new WebLogic domain.

For example, under linux the configuration script is Middleware/wlserver_10.3/common/bin/config.sh.

2. Create a domain configured to support a Basic WebLogic Server Domain and do not select support for any other products.

For example, choose create new WebLogic domain, and select Choose WebLog Platform Components.

3. Select production mode for the domain.

For example, select Basic WebLogic Server Domain template only and pick a name for the domain. Next, enter a target location for the domain (it is recommended that you use the defaults). Enter a password for the WebLogic user that will be used to login to the Administration server for the domain. Choose production mode for the domain.

4. Choose a JDK for the domain.

If JRockit is an option on your platform, note that while Oracle claims increased performance with JRockit, in internal testing for Banner Workflow it has been noted that use of JRockit may require substantially more memory to perform.

5. In Optional configuration, select Administration Server. This will create a basic domain capable of hosting a Server that can run Banner Workflow.

For example, under optional configuration, select Administration Server. For Configure the Administration Server, choose a listen port that is unused on the server.

22nner Workflow Technical Integration Guide | Banner Workflow Installation

Page 23: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

By default, the WebLogic domain will have been configured to intercept basic authentication in http requests. Banner Workflow requires that WebLogic pass these requests through as-is, so they can be processed by Banner Workflow's security. WebLogic requires this to be changed at the domain level, so be aware that if you choose to deploy Banner Workflow to an existing domain, this change will affect all other applications deployed to Servers in the same domain. The alternative is to create a separate domain for Banner Workflow and other applications that have the same requirements.

1. To change this setting, navigate to the directory in which you created your WebLogic domains, by default this will be Middleware/user_projects/domains, and edit the <domain name>/config/config.xml, replacing <domain name> with the name of the domain that you plan to deploy Banner Workflow in.

2. In the <security-configuration> element, insert the following new line before the end of the end of the element (</security-configuration>) or before the <cross-domain-security-enabled> element if one is present:

<enforce-valid-basic-auth-credentials>false</enforce-valid-basic-auth- credentials>

Create a WebLogic server

To create a new WebLogic server, perform the following steps:

Note: These instructions are meant as a guide to the necessary configuration, but do not replace Oracle documentation for creating and maintaining a WebLogic system.

1. Log in to the Administration server for the basic domain that has been configured to support Banner Workflow.

For example, if you created the domain on myserver.edu and assigned it port 7101, then the Administration server console can be accessed at http:// myserver.edu:7101/console.

Note: You must have started the Administration server first; the start script is in the domain directory. For example, on Linux if you used default directories, the script to start the Administration server would be at Middleware/user_projects/domains/<mydomain>/ startWeblogic.sh.

2. Create a new server, assigning it to an unused listen port.

3. Edit the newly created WebLogic Server and follow Oracle documentation to configure the memory to your desired settings.

This is typically set by navigating to Servers under the Domain Configurations home page of the Administration server, selecting the WebLogic server, selecting the Server Start tab in the second row, and then adding the appropriate Arguments for the JVM you are using. For example, under linux, using the Sun JDK, you would add - Xmx1024m to the Arguments to set the max memory to 1024 megabytes.

23nner Workflow Technical Integration Guide | Banner Workflow Installation

Page 24: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Note: If you look at the java process, you will see that it was actually started with the default memory settings that WebLogic sets by default with the setDomainEnv script with the addition of any settings in the Arguments field. The final settings (the ones from the Arguments) field are the ones that the JVM will actually use.

4. Navigate to the Server Start tab, and add the following to the Arguments used when starting the server:

-Dlog4j.customConfigurationPolicyClass=com.sungardhe.workflow.util.

logging.ConfigurationLoggingPolicy -Djava.awt.headless=true

5. If you are using a Sun JDK, also add -XX:MaxPermSize=256M to the startup arguments.

Note: The MaxPermSize parameter is not needed if the domain was configured to use JRockit, or if you are using another vendor's JVM that does not require permgen configuration, such as IBM's JDK implementation on AIX.

Deploy Banner Workflow

To deploy Banner Workflow to Oracle WebLogic, assuming that you have a correctly configured the WebLogic Server in a valid domain per the above instructions, perform the following steps:

1. Login to the AdminServer for the domain, and select Deployments.

2. Install a deployment.

3. Select the workflow.ear file.

4. For targeting style, choose “Install this deployment as an application.”

5. In Available targets, select the Server that you created for Banner Workflow.

6. On the optional settings page, set the name for the deployment.

Note: It is recommended you name it similarly to the WORKFLOW_HOME, For example, WORKFLOW_TEST for a test instance.

7. For Security, select DD Only: Use only roles and policies that are defined in the deployment descriptors.

8. For Source accessibility, select “Copy this application onto every target for me.”

9. Select Finish.

24nner Workflow Technical Integration Guide | Banner Workflow Installation

Page 25: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Start Banner Workflow

With the WebLogic Server started, navigate to Deployments, select the name you deployed under, and click Start to begin servicing all requests.

Configure Oracle HTTP Server (OHS) for use with Banner Workflow

In installations where a hardware (F5 BIG-IP) load-balancer is not being used, or where SSL is not being terminated at the hardware load-balancer, it is recommended that Oracle HTTP Server (OHS) be used as the browser facing or load-balancer facing endpoint, with SSL termination at OHS. This allows SSL configuration to be performed a single time for OHS, rather than in each WebLogic Server instance.

OHS will typically be installed via the Forms, Reports, and Discoverer install, as part of Fusion Middleware 11g, but may be installed singly with the WebTier Utilities. Once installed, it needs to be manually configured to forward requests to the Banner Workflow application installed in the WebLogic Server instance.

To configure OHS for use with Banner Workflow, perform the following steps:

1. Login to the Enterprise Manager and navigate to the ohs instance under the Web Tier.

The actual location may vary depending on how it was installed. For example, if you installed Oracle Forms, Reports, and Discoverer on myserver.edu using a listener port of 7001, then by default, the Enterprise Manager would be at http:// myserver.edu:7001/em.

Note: The Administration Server for the domain created to house Forms/ Reports/Discoverer must be started.

2. Navigate to Oracle HTTP Server->Administration->mod_wl_ohs Configuration. For full details, please consult the following Oracle documentation.:

Configuring Mod_wl_ohs to use SSL between Oracle HTTP Server and Weblogic Server in FMW 11g (11.1.1.X) [ID 1268723.1]

3. Define a Location, under Locations, on the OHS server that will map to the Banner Workflow application's URL on the WebLogic Server.

4. Configure the WebApplication element in Configuration to point to the host and webroot on the OHS server, not the WebLogic Server as the OHS server might run on a different host than the WebLogic Server. For example, suppose both the WebLogic server and OHS run on server1.myschool.edu, and OHS uses port 4443 for SSL and you want to deploy a Banner Workflow instance to the relative url WORKFLOW_TEST. The Configuration WebApplication element should resemble the following:

<WebApplication>

<Location protocol="https" host="server1.myschool.edu" port="4443" root="WORKFLOW_TEST"/>

</WebApplication>

25nner Workflow Technical Integration Guide | Banner Workflow Installation

Page 26: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

On the OHS server, the mod_wl_ohs Configuration Locations should have an entry that resembles the following:

Location: /WORKFLOW_TEST

WebLogic Host: server1.myschool.edu

WebLogic Port: the listen port you configured when creating the WebLogic Server you deployed Banner Workflow to.

The Banner Workflow clients, such as the web application, and command line utilities will use https://server1.myschool.edu:4443/WORKFLOW_TEST as the url to the application, which is a url serviced by OHS, while the application is actually running in a WebLogic Server listening on a separate non-SSL port. When a Banner Workflow client access the url https://server1.myschool.edu:4443/WORKFLOW_TEST, or anything below it, the OHS server will forward the request to the WebLogic Server instance. To a web browser or command line tool using Banner Workflow, the application appears to be at https:// server1.myschool.edu:4443/WORKFLOW_TEST, regardless of where the WebLogic Server is actually running.

5. Access the Weblogic Console for your Oracle Fusion Middleware installation (for the domain where your Workflow application is deployed) and perform the following steps:

5.1. Under Environment, click Servers.

5.2. Click on the Workflow managed server name in the list.

5.3. Expand the Advanced section.

5.4. Select the WebLogic Plug-In Enabled check box.

5.5. Click Save.

5.6. Restart the Workflow managed server.

Start the system

Once the ear file is deployed into WebLogic, start the deployment by selecting the check box and clicking on the Start->Servicing All Requests button menu.

Deploy Banner Workflow to Tomcat

This procedure defines the configuration necessary to deploy Banner Workflow to Tomcat. It is not intended as a replacement for the Tomcat documentation on installing and maintaining Tomcat Server.

Note: If you are using Oracle WebLogic, perform the procedure in “Deploy Banner Workflow to Oracle WebLogic” on page 21 instead of this procedure.

26nner Workflow Technical Integration Guide | Banner Workflow Installation

Page 27: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Set up startup arguments

For Linux, navigate to the <TOMCAT_HOME>/bin directory and create a file setenv.sh, and add the following to it:

For Windows, navigate to the <TOMCAT_HOME>\bin directory and create a file setenv.bat, and add the following to it:

If you are using a Sun JDK, also add -XX:MaxPermSize=256M to the startup arguments. The MaxPermSize parameter is not needed if you are using JRockit, or if you are using another vendor's JVM that does not require permgen configuration, such as IBM’s JDK implementation on AIX.

Deploy Banner Workflow

1. Navigate to the <TOMCAT_HOME>/webapps directory.

2. Copy the workflow.war file from the <WORKFLOW_HOME>/dist directory into the <TOMCAT_HOME>/webapps directory.

Configure Apache HTTP Server for Use with Banner Workflow

In installations where a hardware (F5 BIG-IP) load balancer is not being used, or where SSL is not being terminated at the hardware load balancer, it is recommended that Apache HTTP Server be used as the browser-facing or load-balancer-facing endpoint, with SSL termination at Apache HTTP Server. This allows SSL configuration to be performed a single time for Apache HTTP Server, rather than in each Tomcat Server instance.

Apache HTTP server httpd-2.2.26 has been used for testing SSL and load balancing.

Note: The configuration described here is the minimum required to enable SSL and load balancing. For details about recommended configurations, see the Apache documentation.

SSL Configuration (Optional)

1. Install Apache HTTP Server with support for mod_ssl.

2. Configure httpd.conf:

export CATALINA_OPTS="$CATALINA_OPTS -Dlog4j.customConfigurationPolicyClass=com.sungardhe.workflow.util.logging.ConfigurationLoggingPolicy"

export CATALINA_OPTS="$CATALINA_OPTS -Djava.awt.headless=true"

set CATALINA_OPTS=%CATALINA_OPTS%-Dlog4j.customConfigurationPolicyClass=com.sungardhe.workflow.util.logging.ConfigurationLoggingPolicy

set CATALINA_OPTS=%CATALINA_OPTS%-Djava.awt.headless=true

27nner Workflow Technical Integration Guide | Banner Workflow Installation

Page 28: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

2.1. Open the Apache configuration file httpd.conf, located under <APACHE_HTTP_HOME>/conf.

2.2. Add a user and group to run the https server.

– User <user>

– Group <group>

2.3. Set the value for ServerName <server name> to point to your server.

Example: server1.myschool.edu

2.4. Uncomment the following line to enable SSL configuration:

Include conf/extra/httpd-ssl.conf

2.5. If the Apache HTTP server that you are using is not compiled with SSL support, add the following line (or uncomment it if it already exists and is commented out):

LoadModule ssl_module modules/mod_ssl.so

3. Configure httpd-ssl.conf:

3.1. Open <APACHE_HTTP_HOME>/conf/extra/httpd-ssl.conf to review all the default SSL configurations.

In most cases, you won’t need to modify anything in this file.

3.2. If you would like to configure a new SSL port, set the value for the entry Listen to the new port.

Example.: Listen 4445

3.3. Modify the element <VirtualHost *:port> with the port that was set in the previous step.

Example.: <VirtualHost *:4445>

3.4. Comment out the entry ServerName

3.5. Modify the entry SSLProtocol based on your requirements.

The recommended value is "ALL –SSLv2 -SSLv3".

3.6. Modify the entry SSLCipherSuite based on your requirements.

3.7. Set SSLCertificateFile to point to the certificate file.

3.8. Set SSLCertificateKeyFile to point to the server private key.

The SSL certificate and key are required before starting Apache. The server.crt and server.key file mentioned in the httpd-ssl.conf needs to be created before moving forward.

If you are using OpenSSL or a similar tool to act as your own certificate authority, you may need to register your SSL root certificate into the java keystore (typically the file {java home}/lib/security/cacerts). Both the java jre and

28nner Workflow Technical Integration Guide | Banner Workflow Installation

Page 29: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

java jdk include a utility called keytool for importing a private certificate into the keystore. Example:

This is usually not an issue for certificates issued by public certificate authorities (such as VeriSign) since their root certificates are pre-installed with java. Please contact Ellucian Technical Support if you have any questions.

4. Start Apache HTTP Server:

• For Linux, enter <APACHE_HTTP_HOME>/bin/apachectl start

This command will prompt you to enter the password for your private key. Some of your private key files are encrypted for security reasons. In order to read them you have to provide the pass phrases.

• For Windows, enter <APACHE_HTTP_HOME>/bin/httpd.exe

5. Check the Apache HTTP server log file to make sure that the server started without any errors. The file error.log can be found under <APACHE_HTTP_HOME>/logs.

On Windows, if the log file displays the following error, see “Resolution for SSLPassPhraseDialog Dialog Error on Windows” on page 29.

[error] Init: SSLPassPhraseDialog builtin is not supported on Win32

6. Verify SSL by opening a web browser and verify that you can access your Apache using a URL with the form https://server1.myschool.edu:4443.

Start the system

Navigate to the <TOMCAT_HOME>/bin and execute the startup script to start Tomcat server.

The file workflow.war will get deployed during the startup process. Check <TOMCAT_HOME>/logs/catalina.out to confirm whether the deployment was successful.

Resolution for SSLPassPhraseDialog Dialog Error on Windows

When you started Apache HTTP Server with SSL on Windows, the log might display the following error (see Step 5 on page 29):

[error] Init: SSLPassPhraseDialog builtin is not supported on Win32

The SSLPassPhraseDialog is a directive within the Apache httpd.conf or ssl.conf that is not supported by Windows.

Perform the following procedure to resolve the error:

1. Make a copy of the private key and call it server.key.org

2. Use the openssl command to remove the passphrase.

Example: openssl rsa -in server.key.org -out server.key

server.key will be your new private key with the passphrase removed.

{java home}\bin\keytool –import –keystore {java home}\lib\security\cacerts –alias my_certificate –file {certificate file}}

29nner Workflow Technical Integration Guide | Banner Workflow Installation

Page 30: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

3. Move this new key to the same path as where your original was kept.

4. Change the directive called "SSLCertificateKeyFile" in your apache config file to point to the new private key.

5. Open httpd-ssl.conf, find the directive "SSLPassPhraseDialog" and put a # in front to comment out the line.

6. Start the Apache HTTP server again.

Load Balancing Configuration

The following section explains how to create a load balanced configuration using two nodes running Apache Tomcat server.

Note: Load balancing in this example uses mod_jk as it is a more mature load balancing connector. mod_jk-1.2.31 has been used for testing load balancing.

1. Download mod_jk-1.2.31.so and copy it to <Apache HTTP Home>/modules

2. Add the following to <Apache HTTP Home>/conf/httpd.conf:

# mod_jk for load balancing

Include conf/mod-jk.conf

LoadModule jk_module modules/mod_jk-1.2.31.so

JkWorkersFile conf/workers.properties

JkMount /<application-context-root>/* loadbalancer

3. Create <Apache HTTP Home>/conf/workers.properties and configure the nodes.

Example:

#Define list of workers that will be used

# for mapping requests

worker.list=loadbalancer,status

# Define Node1

# modify the host as your host IP or DNS name.

worker.node1.port=8080

worker.node1.host=server2.myschool.edu

worker.node1.type=ajp13

worker.node1.lbfactor=1

# Define Node2

# modify the host as your host IP or DNS name.

worker.node2.port=8090

30nner Workflow Technical Integration Guide | Banner Workflow Installation

Page 31: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

worker.node2.host=server3.myschool.edu

worker.node2.type=ajp13

worker.node2.lbfactor=1

# Load-balancing behaviour

worker.loadbalancer.type=lb

worker.loadbalancer.balance_workers=node2,node1

worker.loadbalancer.sticky_session=1

# Status worker for managing load balancer

worker.status.type=status

4. Add the following at the end of <Apache HTTP Home>/conf/extra/httpd-ssl.conf just before </VirtualHost>.

Example:

JkMountCopy On

JkMount /* loadbalancer

</VirtualHost>

5. Enable load balancing support in Tomcat server

The following changes have to be made in the Tomcat servers so that they can serve as nodes in the load balanced setup.

5.1. Connect to the first Tomcat server node.

5.2. Open <Tomcat Home>/conf/server.xml and make the following changes.

– Comment out the default HTTP connector.

– Enable the AJP connector.Example: <Connector port="8080" protocol="AJP/1.3" redirectPort="8445" />where redirectPort is the port that you configured Apache HTTP server for SSL communication.

– Comment out the default <Engine> element and uncomment the element where you can specify jvmRoute.

– Set the value of jvmroute to the name that you configured for the first node in <Apache HTTP Home>/conf/workers.propertiesExample: <Engine name="Catalina" defaultHost="localhost" jvmRoute="node1">

– Uncomment the <Cluster> element.

5.3. Repeat Step 5.1 through Step 5.2 for the second Tomcat server node.

6. Configure the WebApplication element in the configuration file.

The WebApplication element must point to the host and webroot on the Apache HTTP server, not the Tomcat server, because the Apache HTTP server might run on a different host than the Tomcat server. For example, suppose both the Tomcat server and Apache HTTP server run on server1.myschool.edu, and Apache HTTP server

31nner Workflow Technical Integration Guide | Banner Workflow Installation

Page 32: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

uses port 4443 for SSL, and you want to deploy a Banner Workflow instance to the relative url WORKFLOW_TEST. The WebApplication element should resemble the following:

<WebApplication>

<Location protocol="https" host="server1.myschool.edu" port="4443" root="WORKFLOW_TEST"/>

</WebApplication>

On the Apache HTTP server, the mod-jk.conf file should have an entry that resembles the following:

JkMount /WORKFLOW_TEST/* loadbalancer

ServerName server1.myschool.edu

The Banner Workflow clients, such as the web application, and command line utilities will use https://server1.myschool.edu:4443/WORKFLOW_TEST as the url to the application, which is a url serviced by Apache HTTP server, while the application is actually running in a Tomcat server listening on a separate non-SSL port. When a Banner Workflow client accesses the url https://server1.myschool.edu:4443/WORKFLOW_TEST, or anything below it, the Apache HTTP server will forward the request to the Tomcat server instance. To a web browser or command line tool using Banner Workflow, the application appears to be at https://server1.myschool.edu:4443/WORKFLOW_TEST, regardless of where the Tomcat Server is actually running.

Start the Workflow Engine

Note: This procedure applies to both WebLogic and Tomcat installations.

To bring up a Banner Workflow system, you must start at least one Workflow Engine. The Workflow Engine is the component that drives the running processes. Each deployed engine instance has a start script. By default, an engine instance using the 'main' engine configuration is deployed to the WORKFLOW_HOME/engine directory during installation. To start this default Workflow Engine, execute:

WORKFLOW_HOME/engine/bin/startengine

On Unix systems, this will run in the background. Under Windows, you will need to install the engine as a service if you want it to run in the background. See “Running the Workflow Engine as a Windows Service” on page 40.

See “Deploying and Managing Multiple Engine Instances” on page 41 for more information.

32nner Workflow Technical Integration Guide | Banner Workflow Installation

Page 33: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Import base seed data

Note: This procedure applies to both WebLogic and Tomcat installations.

Banner Workflow requires base data that needs to be imported prior to use. The import command will import the necessary data. The application server instance must be running prior to starting an import.

To import base data, execute the following command:

WORKFLOW_HOME/bin/import wfroot <password for wfroot> WORKFLOW_HOME/bootstraps/basedata.zip

The base data will contain an admin and analyst account to start with. The username for the admin account is “admin” with a default password of “u_pick_it”. The username for the analyst user is “analyst” with a default password of “u_pick_it”.

Note: The password for wfroot is the password you set on the <SuperUser> element under <SecurityIntegration> in the configuration.xml. By default, it is “password”.

Banner Workflow also provides an import file, WorkflowUtility.xml, for providing access to internal activities such as the “Instance Name Update” which allows analysts to modify the name of a workflow instance while it is in progress. To import the workflow utilities, execute the following command:

WORKFLOW_HOME/bin/import wfroot <password for wfroot> WORKFLOW_HOME/bootstraps/WorkflowUtility.xml

Re-deploying after configuration changes

If you make changes to the configuration file that require rebuilding/redeploying the ear or war file, or the workflow.car, or the engine node(s), you can apply all the changes and rebuild all the artifacts by running:

bin/wftool updateSystem

This command will rebuild all the scripts, upload the configuration changes to the database, rebuild the car file (if Luminis 4.x integration is enabled) and rebuild the default engine node and engine installers. (Note: you only need to physically re-install engine nodes if you have changed the url, username, or password of the workflow data source. Any other engine changes will be downloaded from the database when the engine node(s) are restarted.)

After updating the system, redeploy the ear or war file.

33nner Workflow Technical Integration Guide | Banner Workflow Installation

Page 34: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Advanced Workflow Engine Configuration

Workflow Engine

You can add and remove engine instances, edit, remove, and copy engine configurations, and change the engine administrative password.

Adding and Removing Engine Instances

An engine instance in the configuration tells the application server that it can expect an instance of the workflow engine to be running on the specified host that will be running under the specified configuration. Using this information, the application server can forward requests to the engine.

Each engine instance that is started must run under an engine configuration. The engine configuration tells the engine what port to bind to, as well as how to size its thread pools in order to perform work. Engine instances that are running on different hosts can run under the same configuration. In general, you should run all engine instances under the same configuration, unless you need an instance to run on a different rmi port, or want to change the number of threads available to its pools.

If you intend to run a single engine instance, edit the “main” engine configuration and set the rmi port and thread pool options as desired. If you intend to run multiple engine instances, you will need to edit and add additional engine instances and engine configurations to support your installation. See “Deploying and Managing Multiple Engine Instances” on page 41 for details on configuring and deploying multiple workflow engines.

To add a new engine configuration, you must first select an existing one to edit, then choose to copy it to another name. You can then edit the newly copied configuration.

When you choose to edit an engine configuration, you will be prompted to provide values for the following settings:

Engine RMI Port

This is the RMI port that the engine will run on. It must be a port that no other applications on the server will use.

Maximum Engine JDBC Connections

This controls the maximum number of JDBC connections the engine's pool can have for servicing incoming requests.

Main Pool Max Threads

This sets the maximum number of concurrent threads the engine can use to perform asynchronous work such as starting workitems, routing items to worklists, etc. See the

34nner Workflow Technical Integration Guide | Banner Workflow Installation

Page 35: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

<Engine> section of the configuration documentation and “Tuning the Workflow Engine” on page 174 for details.

Main Pool Min Threads

This sets the minimum number of threads the engine will keep active for performing normal asynchronous work.

Notification Pool Max Threads

This sets the maximum number of concurrent threads the engine can use to perform notification work, such as email notification of item availability or lagging/overdue notifications. If you do not use a large number of email notifications that work items are ready, are not using Workflow Metrics, or do not have a large number of lagging/overdue notices, this number can be kept small.

If you notice that the ENG_EVENTS table frequently has more than ten rows with scheduled_time NULL and event_type that starts with “immediate.notification”, then you should increase this value.

Notification Pool Min Threads

This sets the minimum number of threads the engine will keep active for performing notifications.

External Events Max Threads

This sets the maximum number of threads to use to evaluate external events. See “External Events” on page 129 for further details on External Events.

External Events Min Threads

This sets the minimum number of threads to use to evaluate external events.

You can also choose to change the engine administrative password. This will set the administrative password for the engine(s). Client-side utilities that can direct the engine to shutdown must provide the engine with this password. You can also choose to change the default maximum memory settings for the VM that the engine will run in.

Migrating from Workflow 8.2 to Banner Workflow 8.3

Warning! Prior to performing a migration from Workflow 8.2 to Workflow 8.3, it is highly recommended that complete database backups of the WORKFLOW schema be created after shutting down the old workflow

35nner Workflow Technical Integration Guide | Banner Workflow Installation

Page 36: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

system. Without this backup, it will be impossible to recover the 8.2 system if anything goes wrong during migration.

Note: In this section, PREVIOUS_HOME refers to the directory of your Workflow 8.2 installation and WORKFLOW_HOME refers to your Banner Workflow 8.3 directory.

Note: Before starting the migration, make sure that the Workflow 8.2 home has been updated to the latest patch level. The migration expects the schema and configuration to match that of the latest 8.2 patch release.

The migration process will use the same datasources, database accounts, and schemas for the new 8.3 system that are being used for the 8.2 system. During migration, the data in the 8.2 system will be converted (as necessary) to be compatible with 8.3. Once the conversion process begins, you will no longer be able to start and run the old 8.2 installation. After the migration is complete, all workflows and data present in the 8.2 system will be available in the 8.3 system. Once migration begins, you should not use any of the Workflow 8.2 components except where explicitly directed to by the migration process.

Do not make any changes to the workflow configuration during migration. For example, do not change datasources or any other settings. If you want to make configuration changes, either make them to the 8.2 system and deploy/test them there before beginning migration, or complete the entire migration, then make the changes to the 8.3 system and redeploy (see “Re-deploying after configuration changes” on page 33).

The migration will proceed in a series of steps. Unless otherwise indicated, if any step fails, you must stop and correct the issue before continuing. Failure to do so will prevent a clean migration, and may result in a loss of data.

Detailed output on each migration step, including errors encountered will be logged to WORKFLOW_HOME/migration/migration.log.

The migration process attempts to strike a balance between performance and database size. Where necessary, data from the 8.2 system is converted in a batch. However, the conversion process may temporarily use more tablespace than the final system will need once conversion is complete. If the tablespaces used for the 8.2 system are near capacity, it is strongly recommended that you increase their size before beginning migration.

Note: All migration steps must be executed from the 8.3 WORKFLOW_HOME. For more information on setting up your WORKFLOW_HOME directory, see “Create and Initialize Installation Directory” on page 16.

Prepare for Migration

To prepare for migration:

36nner Workflow Technical Integration Guide | Banner Workflow Installation

Page 37: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

• Stop the 8.2 system.

• Undeploy the Workflow application from the WebLogic instance and then stop that WebLogic instance.

• Back up the 8.2 Workflow schema.

If you run into a migration error, you can restore the database tables, and restart your migration from “Migrate Configuration” on page 37.

Note the location of the previous 8.2 home directory.

If you are also migrating to a new server, you may copy the previous 8.2 home directory to the new server. The proceeding migration steps need access to the 8.2 home directory so that the migration process can refer to the 8.2 configuration data.

Warning! If you do not stop and undeploy the deployment instance within the application server prior to running “Migrate Configuration” on page 37, you run the risk of corrupting your data.

Migrate Configuration

The first step migrates the configuration from the old system to the new one. First make sure the Workflow 8.2 system is not running and go to your WORKFLOW_HOME and execute the following task:

migration/bin/migrate step1

The script will prompt you for the location of the previous (8.2) home. Any further steps that need that location will remember it, but will give you the chance to change it if you entered it incorrectly.

Warning! If an error occurs, DO NOT repeat the step. Contact Ellucian Solution Center and provide a copy of the migration.log. Repeating the steps can cause the instance to be corrupted and require that you restore the database and the WF_HOME to a working environment.

(WebLogic) Deploy the ear file (and extra engine instances if you are using clustering) using the instructions in “Deploy Banner Workflow to Oracle WebLogic” on page 21.

(Tomcat) Deploy the war file (and extra engine instances if you are using clustering) using the instructions in “Deploy Banner Workflow to Tomcat” on page 26.

Update Clustered Engines and Deploy CAR

If you are using Luminis 4.x integration, you should re-deploy the CAR file at this point. See “Integration with Luminis 4” on page 70 for more information.

If you are running multiple engine nodes, or have installed an engine node to a non-default location, you must now reinstall each node. See “Deploying and Managing Multiple Engine

37nner Workflow Technical Integration Guide | Banner Workflow Installation

Page 38: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Instances” on page 41 for more information.

At this point the 8.3 system has been deployed and contains the data from the previous 8.2 system.

Migrating from Workflow 8.2 on WebLogic to Workflow 8.3 on Tomcat

If you are deploying Workflow 8.3 on Tomcat, perform the migration steps above and then do the following:

1. Update the value of <ApplicationServer><Type> in configuration.xml to tomcat.

2. Run ./wftool updateSystem.

This will create the WAR file to be deployed on Tomcat.

Starting and Stopping Banner Workflow

Starting Banner Workflow1. Start at least one Workflow Engine. To start the default engine, execute

WORKFLOW_HOME/engine/bin/startengine. See “Deploying and Managing Multiple Engine Instances” on page 41 for details on managing multiple engines.

2. Start the application server:

For WebLogic:

2.1. Start the Oracle WebLogic Server.

2.2. Check that the Admin server for the domain is running, then use it to start the WebLogic Server workflow is deployed to.

2.3. With the WebLogic Server started, from the Weblogic Console, navigate to Deployments, select the name you deployed under, and click Start to begin servicing all requests.

For Tomcat:

2.1. Start the Tomcat Server.

3. Launch a supported web browser and navigate to the Banner Workflow web site you created. The URL for this website will be determined by the <WebApplication> element that you set up in the configuration.xml file. For example:

http://school.edu:7777/workflow

Tip:

38nner Workflow Technical Integration Guide | Banner Workflow Installation

Page 39: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Starting the Workflow Engine requires an active process window. On Windows Servers, you can launch the process in a new window by adding "start" to the call to startengine. For example:

start engine\bin\startengine

This will create a new command window that will run the Workflow Engine.

On a Unix based machine, the startengine script uses "nohup" to run the Workflow Engine in a background process and directs the output to WORKFLOW_HOME/engine/bin/startengine.out.

Stopping Banner Workflow1. Stop the application server:

• (WebLogic) From the Weblogic Console, navigate to Deployments, select the name you deployed under, and click Stop to suspend servicing all requests.

• (Tomcat) Shut down the Tomcat server.

2. Stop the Workflow Engines. To stop all the Workflow Engines execute the following:

WORKFLOW_HOME/engine/bin/engineconsole stop -all -password <engine password>

The engine password is defined in the configuration.xml file, and defaults to “password.”

Supported Integration Modes for Banner Workflow

Banner Workflow supports the following authentication modes for integration with Luminis and Banner with the following considerations:

• Workflow Authentication Mode - Integration with Luminis is not supported in this authentication mode. For more information on Banner authentication see “Banner Integration” on page 45.

• Workflow External - For more information on Banner authentication see “Banner Integration” on page 45. For more information on Luminis 4.x authentication see “Configuring Luminis 4 for Workflow External Authentication” on page 71. For more information on Luminis 5.x authentication see “Search for Luminis 5.x” on page 136.

• CAS - For more information on Banner authentication in CAS mode, see “Banner Integration” on page 45. For more information on Luminis authentication in CAS mode, see “Configuring Luminis 4 for IDM or CAS Authentication” on page 74 or “Configuring Banner Workflow for CAS for Integration With Luminis 5” on page 81.

• IDM Gateway - For more information on Banner authentication using the IDM Gateway, see “Banner Integration” on page 45. Integration with Luminis 4.x, but not 5.x, is supported in this mode. For more information on Luminis 4.x authentication using the IDM Gateway, see “Configuring Luminis 4 for IDM or CAS Authentication” on page 74.

39nner Workflow Technical Integration Guide | Banner Workflow Installation

Page 40: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Setting up Banner Integration

Refer to Chapter 2 “Banner Integration” on page 45 for information on how to configure your Banner Technology Types, Event Provider, and Data Sources.

Setting up Luminis Integration

Refer to “Integrating Banner Workflow with Luminis” on page 70 for information on how to configure your Luminis and Banner Workflow environments.

Configuring Banner Workflow without Banner

A typical Banner Workflow install generally involves a data source connection to a Banner database. If you will not be integrating with Banner, please note the following:

Note: Some pieces of Banner Workflow expect Banner integration tables to be in place. Use the same values for the Banner data source that you use for the Workflow data source, except for the max connections property. For Maximum Number of Connections for the Banner Pool, specify 1. See “Update deployment information in configuration.xml” on page 18 for more information about these settings.

After making the changes listed above starting the installation from step 1, essentially what occurs when going through the installation is that the single sign on tables which are typically created in a Banner tablespace will now be created within Banner Workflow. The tables will never be used, but need to be there for some of the internal services within Banner Workflow to perform properly.

Running the Workflow Engine as a Windows Service

On a Windows Server, the Workflow Engine can be run as a startup service or daemon by installing the Workflow Engine as a Windows Service. This allows a system administrator to bounce the server without having to manually authenticate back into the server and manually restart the Workflow Engine.

The service script can be found in the workflow engine bin directory, and can be used for installing, starting, and removing the workflow engine as a Windows Service. The workflow engine is usually installed as a subdirectory in the workflow installation home, but can be installed outside of it, especially when creating additional engine nodes.

40nner Workflow Technical Integration Guide | Banner Workflow Installation

Page 41: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Usage: service { start : stop : restart : install : remove }

• start - Starts the workflow engine. This is the same as going to the Services area under Windows Administrative Tools to start the service.

• stop - Stops the workflow engine.

• restart - Restarts the workflow engine.

• install - Installs the workflow engine as a service.

• remove - Removes the workflow engine as a service.

For example, to install and start the engine as a service:

{workflow engine directory}\bin\service install{workflow engine directory}\bin\service start

Log Files

The workflow engine service writes log output to {workflow engine directory}\bin\engineservice.log.

Deploying and Managing Multiple Engine Instances

To increase scalability and provide failover support, you can run multiple instances of the Workflow Engine.

Overview

A Workflow Engine is a java program that runs in a regular java VM. An installed workflow system can make use of multiple engine instances (each running in its own VM) on one or more servers in order to provide scalability and transparent failover.

Warning! Certain aspects of running multiple nodes (like transparent failover of work) require time-based checks of records. It is critical that the system clock on any server any engine node is deployed on is accurate. If multiple engine nodes are run on servers that have their system clocks out of sync, failover and workflow metrics may not work as well as expected, or may result in inaccuracies.

The engine instances that are installed are controlled by one or more 'named' engine configurations. Each engine configuration specifies, among other things, the port that the engine runs on, and the size of its thread pools.

41nner Workflow Technical Integration Guide | Banner Workflow Installation

Page 42: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

For each engine instance that will be running, the <Engines> element in the configuration must contain an <EngineInstance> element listing that instance. The <EngineInstance> elements are used by each application server node to locate running engines that they can forward requests to. When a request that requires the use of an engine instance is received by the application server, it will automatically select a running engine from the list of known engines from the <EngineInstance> list to forward the request to.

If an engine instance is not running, the workflow system will automatically try to forward the request to another instance, until it either finds a running instance or exhausts the list. The workflow system will also periodically check instances from the <EngineInstance> list that are not running to see if they have been started. So the workflow system as a whole can automatically respond to individual engine instances being started or stopped. However, the check to see if an engine instance in the list has been restarted can cause occasional delays to user requests; therefore, if you permanently remove an engine instance, you should also remove its <EngineInstance> element in the configuration. Only engine instances that you intend to always have running (barring unanticipated failures or routine maintenance) should be listed in an <EngineInstance> element.

Each engine instance acquires the configuration from the database when the instance is started, so the configuration in the database must be up to date (by running 'bin/wftool uploadconfig' after any configuration changes) before starting an engine instance.

If you are using appserver clustering, you should ensure that each <EngineInstance> element refers to the hostname of the server running the engine, not just “localhost.” This applies even if you are only running the default engine instance. (By default, the engine instance element for this is 'localhost', so you should change it to the actual name of the server WORKFLOW_HOME is on if you are using clustering.)

Install an Engine Instance

There are three aspects to configuring a multi-engine instance system:

• providing configuration information to each engine instance

• deploying each engine instance

• making the workflow system aware of each instance

Each engine instance that runs is controlled by an engine configuration. An engine configuration is a named section of the configuration that tells an engine what rmi port to run on, as well as how to size its thread pools. It is not necessary to have a separate named engine configuration for each engine instance; multiple instances can use the same configuration, as long as they are deployed to different hosts so that they can run on the same port. The only time you need to provide multiple configurations is if you need engine instances to run on different rmi ports, or want them to use different sized thread pools. You can edit, copy, and delete engine configurations by editing the configuration.xml file directly.

During workflow installation, a default engine node is installed to the engine directory under WORKFLOW_HOME. This default node will use the 'main' engine configuration. By

42nner Workflow Technical Integration Guide | Banner Workflow Installation

Page 43: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

default, the configuration contains an <EngineInstance> element pointing to this engine. If you do not intend to run this engine instance, delete the <EngineInstance> element pointing to it, and replace it with one pointing to your engine's location.

To deploy an engine instance to a separate location, follow these steps.

1. Choose the server that you will deploy the new engine instance to. The server must have a minimum of Java 6 VM installed. Decide which engine configuration this instance will use. Edit the configuration or add a new engine configuration if necessary.

2. Edit the configuration and add an EngineInstance for the new engine, specifying the server you have chosen to deploy to and the named engine configuration the instance will use.

3. Run 'bin/wftool uploadconfig' to store the configuration changes in the database. If you have not yet deployed a workflow system, run 'bin/wftool engine' to create the engine installer.

4. On the server you wish to deploy the new engine instance on, create a directory to hold the engine. Copy the engineinstaller.jar from WORKFLOW_HOME to this directory.

5. Extract the contents of engineinstaller.jar to your chosen engine directory with 'jar xf engineinstaller.jar'. (This assumes that java is in your path; you may need to specify the full path to the jar executable if java is not in your path, e.g., /usr/java/jar). You can delete the engineinstaller.jar after you have extracted its contents

6. Finish the engine deployment by setting it up with the correct configuration. To do so, run 'java -jar engine.jar -install'. This will display the list of available engine configurations and prompt you to select the one this engine instance should use.

Note: The installer obtains this information from the configuration stored in the database, so the database must be running and must contain an up to date copy of the configuration for this step to work.

After you choose the configuration, the installer will create a bin directory and place a startengine and engineconsole script in it. The startengine script will start an instance of the engine using the configuration you chose. The engineconsole script will allow you to control this (and other engine instances). If you want to change the configuration this instance uses, you can run 'java -jar engine.jar -install' again to recreate the scripts.

Note: The install step can be run in a non-interactive mode by specifying the name of the configuration to use after the -install parameter. For example, 'java -jar engine.jar -install main' will setup the engine instance to use the 'main' engine configuration.

7. Finally, start the new engine instance, and restart the application server so it sees the configuration changes and can begin forwarding requests to the new engine instance.

43nner Workflow Technical Integration Guide | Banner Workflow Installation

Page 44: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Example

Assume we have completed a workflow installation on server "myhost1.myschool.edu" and are running the default engine instance that was installed under WORKFLOW_HOME on myhost1. Now we want to install and use a second engine instance on myhost2.myschool.edu. The second instance should be identical to the first (run on the same port, use the same size pools, etc.)

First, we need to make the workflow system aware of the second engine instance. Edit the WORKFLOW_HOME/instance/config/configuration.xml to add a new engine instance, specifying “myhost2.myschool.edu” as the host, and “main” as the configuration. (This tells the workflow system that it can expect a second workflow engine instance to be running on myhost2.myschool.edu, and that instance uses the 'main' configuration. This allows the workflow system to locate the instance and forward requests to it.)

Next, run ''bin/wftool uploadconfig' to load the updated configuration to the database.

Create an engine directory on myhost2 and copy the engineinstaller.jar to it. Extract the contents with 'jar xf engineinstaller.jar' and complete the engine installation with 'java -jar engine.jar -install', selecting the 'main' engine configuration. Start the new engine instance with the bin/startengine script that was created, and restart the application server so it sees the changed configuration and can begin forwarding requests to the new engine instance.

Note: Once an engine node is installed, you can alter it's properties by changing the configuration.xml and uploading the changes to the database, then restart the engine node. The only time you need to re-generate the engine installer and unzip it to all engine directories is if you change the workflow datasource properties, i.e., if you change the database account workflow runs under. In this case, it is necessary to use 'bin/wftool updateSystem' to rebuild all artifacts, to re-create the installer with the (encrypted) database connection information, and re-install each engine node.

44nner Workflow Technical Integration Guide | Banner Workflow Installation

Page 45: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Banner Integration

Banner Workflow has the ability to integrate with many applications and is delivered ready to integrate with Banner. The following functionality was created to achieve integration with Banner:

• The ability to respond to events that occur in the Banner Database.

• The ability to open Banner forms interactively as a work item in the Banner Workflow system.

• The ability for bi-directional passing of data or parameters between Banner Workflow and Banner forms.

• The ability to use an automatic component to allow Banner Workflow to make stored procedure calls to the Banner database to retrieve data or perform work as part of a workflow.

• The ability to use SQL to query tables in the Banner database as part of a workflow and return values into workflow context.

To respond to events, an EventProvider for Banner is used by Banner Workflow. This provider knows how to pick up events and event parameters from Banner generated event tables and mark the event's disposition.

Banner forms can be launched from Banner Workflow as an interactive work item. This means that the user launches Banner from their worklist, passes workflow context parameters into the Banner form's KEY_BLOCK, performs some work, and then communicates to Banner Workflow that the work is complete and that the workflow should progress.

For workflows that interact with Banner, a way to automatically retrieve data or perform work against the Banner database to add relevant information to a workflow is necessary. For example, if Banner Workflow has picked up an event from Banner indicating that a new gift was received, you might want to use the donor's ID to retrieve the total amount they have given to the University before the Director of Development is notified. This way, the Director of Development can see additional information before thanking the donor.

There are two ways to gather this information, through an automatic SQL Query or through a SQL Stored Procedure against the database. Both can be set up to take in the donor's ID and retrieve the information via SQL syntax or by calling a PL/SQL procedure that has been created to get the information.

Banner Integration Overview

This section details the main components of Banner with Banner Workflow integration.

45nner Workflow Technical Integration Guide | Banner Integration

Page 46: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Event Service

Workflows have the capability to be started automatically by events. The Workflow Event Service polls for events from Event Providers, evaluates any guard conditions to determine which workflows to start, and then maps any parameters to the workflow.

Based on the settings in the configuration.xml file, the EventDispatcher requests new events from the BannerTableExternalEventProvider for the specified Target name in a Banner database. If the event that is picked up matches an event defined in the Banner Workflow system and all required parameters defined in workflow have been passed from the Banner event, the event is considered valid and will be evaluated to determine if it should start any workflows. See “Set Up Event Processing in Banner Workflow” on page 53 for more information on setting up an event in Banner to be picked up by the BannerTableExternalEventProvider.

The EventEvaluator handles the evaluation by looking at all workflows that are associated with a particular event and checking any guard conditions to see if it should start those workflows. If the conditions pass, the evaluator will start the workflow(s) and map the event provider's parameters into the initial context parameters of the workflow.

Technologies to Launch Banner

When a user chooses to launch a Banner component from their worklist, Banner Workflow will determine if Banner has already been launched and is waiting at the GUAGMNU form to pick up new work. If it is not, Banner Workflow will launch a new Banner session in internet native mode.

During a new launch, Banner Workflow passes arguments to the Banner session to establish a link between the two sessions and to facilitate single sign on. The specific arguments are explained in greater detail in the section on the “Banner Launcher Service” on page 47.

Once Banner Workflow has logged the user onto Banner with the same user ID and password that they have set up in Banner Workflow, the Banner session will immediately check the work item queue for work and pick up the work item to start the task that was launched from the worklist.

Note: If a Banner session has already been launched from Banner Workflow and is waiting at the GUAGMNU form, it will already be checking the work item queue for the new task. This is why Banner Workflow may not need to launch an additional Banner session.

46nner Workflow Technical Integration Guide | Banner Integration

Page 47: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

1. For work item manipulation from Banner, HTTP communication via UTL_HTTP is used to communicate requests to Banner Workflow and JDBC for Banner Workflow is used to communicate information back and forth with the Banner session. Using these technologies, the Banner session requests the form name to launch, and the parameters to use, when launching the form. The Banner session also uses the same technology to set any new parameters and to complete or release the work item.

2. To test that the HTTP communication from the Banner database to the Banner Workflow server is working properly:

2.1. Log into SQL plus as the 'wfbanner' user described in the configuration.xml file. Ensure that you use the same database that is in the configuration.xml file.

2.2. Execute the following SQL command:

SELECT UTL_HTTP.REQUEST( 'http://workflow.school.edu:7777/workflow' ) FROM DUAL;

where http://workflow.school.edu:7777/workflow is the name of the URL that you use to access your Banner Workflow environment.

2.3. If the command returns HTML back and comes back relatively quickly, then UTL_HTTP appears to be in place and the network connection between the Banner Database and Banner Workflow can be established.

If the command appears to hang or times out after a while, the URL that is being used is typically incorrect or the workflow server is currently inaccessible. At this point the issue is a network one and can be different for each installation. Please contact your network administrators for assistance.

Banner Launcher Service

When a Banner work item is launched, the Banner Launcher Service configuration determines how the launch is performed. The configuration of the Launcher Service is handled in the Banner component's product type, technology type, and in the setup of the component itself.

The technology type is where most settings for the Banner Launcher Service are setup and is delivered with the name “Banner Forms”. In technology types, the class that is used for launching Banner is com.sungardhe.workflow.launcher.BannerWebLauncher

47nner Workflow Technical Integration Guide | Banner Integration

Page 48: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Keeping Passwords in Sync between Banner Workflow and Banner

Banner Workflow requires that the same user name and password be used in both Banner Workflow and Banner. To keep the passwords in sync two methods are used, Banner External Authentication and LDAP External Synchronization.

Set Up Banner and Banner Workflow

Banner-Side Configuration

The first step in integrating Banner and Banner Workflow is typically performed by a Banner administrator.

Enable Banner Workflow in GUAINST

To turn on Banner Workflow integration within Banner, go to the GUAINST form and ensure that the Workflow Enabled check box is selected.

Enable the Event Queue

On the Event Queue Name Definition Form (GOREQNM), ensure that the Active check box is selected for all events that should start inserting records into the Event Queue table.

Configure Banner database ACL to allow FORM Integration

If Banner is running on Oracle 11g, then the database needs to be configured to allow connections to Workflow server. Execute the following steps to add Workflow server access to the database ACL.

1. Log on to the Banner database server as the Oracle user and execute the following code to create a procedure:

connect / as sysdba

set serveroutput on

create or replace procedure banner_workflow_acl(

aacl varchar2,

acomment varchar2,

aprincipal varchar2,

aisgrant boolean,

aprivilege varchar2,

aserver varchar2,

aport number)

is

48nner Workflow Technical Integration Guide | Banner Integration

Page 49: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

begin

begin

DBMS_NETWORK_ACL_ADMIN.DROP_ACL(aacl);

dbms_output.put_line('ACL dropped.....');

exception

when others then

dbms_output.put_line('Error dropping ACL: '||aacl);

dbms_output.put_line(sqlerrm);

end;

begin

DBMS_NETWORK_ACL_ADMIN.CREATE_ACL(aacl,acomment,aprincipal,aisgrant,aprivilege);

dbms_output.put_line('ACL created.....');

exception

when others then

dbms_output.put_line('Error creating ACL: '||aacl);

dbms_output.put_line(sqlerrm);

end;

begin

DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL(aacl,aserver,aport);

dbms_output.put_line('ACL assigned.....');

exception

when others then

dbms_output.put_line('Error assigning ACL: '||aacl);

dbms_output.put_line(sqlerrm);

end;

commit;

dbms_output.put_line('ACL commited.....');

end;

/

show errors

2. Add an ACL called “workflow.xml.” Replace <Workflow Banner username>, <Workflow server port> and <Workflow Banner username> with the actual values from your deployment environment and execute the following code. Note if you choose to use HTTPS to access Workflow server be sure to specify the Workflow HTTPS port.

begin

banner_workflow_acl (

'workflow.xml',

'allow utl_http for wfbanner for workflow',

'<Workflow Banner username>',

TRUE,

'connect',

'<Workflow Server host>',

<Workflow server port>);

end;

/

49nner Workflow Technical Integration Guide | Banner Integration

Page 50: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Note: If you are configuring Workflow behind a load balancer, you will need to add the host and port of each server that is a member of the cluster in addition to the target host and port of the load balancer itself.

3. Add baninst1 & wtailor to the “workflow.xml” ACL:

begin

DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE ('workflow.xml','BANINST1',TRUE,'connect');

commit;

end;

/

begin

DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE ('workflow.xml','WTAILOR',TRUE,'connect');

commit;

end;

/

Set Up Banner Workflow with Internet Native Banner

Banner Workflow only supports integration with Internet Native Banner using servlet mode. Prior to proceeding, ensure that your Internet Native Banner installation is using servlet mode.

Note: All references to the FORMS_HOME directory are specific to the version the Oracle WebLogic Server being used.

1. Within your FORMS_HOME/server directory locate the formsweb.cfg file. Go to the USER PARAMETERS section and add a Runform argument:

wfargs=

2. Modify FORMS_HOME/server/base*.htm file(s) as necessary for the browsers you use Internet Native Banner. Find the lines that match the following:

<PARAM NAME=”serverArgs” VALUE=”module=%form%”> andserverArgs=”module=%form%”

3. Update the lines to match the following:

<PARAM NAME=”serverArgs” VALUE=”module=%form% %wfargs%”>andserverArgs=”module=%form% %wfargs%”

With this modification, the generated html form that holds the JInitator applet code will contain dynamic workflow arguments when being initiated by Banner Workflow.

Note: Place %wfargs% at the very end of your “serverArgs” parameter.

50nner Workflow Technical Integration Guide | Banner Integration

Page 51: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Password Synchronization

Banner Workflow requires that the same user name and password be used in both Banner Workflow and Banner. To keep the passwords in sync, there are two methods to use.

Banner External Authentication Plug-in

Banner Workflow can validate its user name and password against a Banner database for authentication. Essentially there will be no syncing of passwords since the password being used in Banner Workflow is the actual Banner password.

To setup external authentication to a Banner database, make the following changes in the WORKFLOW_HOME/config/configuration.xml file:

1. Find the ExternalAuthenticator section of the configuration.xml file.

2. Modify the section to look like what's listed below.

<Authentication mode="WorkflowExternal"><WorkflowExternal>

<ExternalAuthenticator><ClassName>com.sungardhe.workflow.security.BannerAuthenticator</ClassName> <Properties/>

</ExternalAuthenticator></WorkflowExternal>

3. After saving the changes, go to the WORKFLOW_HOME directory and run bin/wftool uploadconfig to commit the configuration changes to the database.

4. Restart the Oracle WebLogic Server or Tomcat server instance tied to the WORKFLOW_HOME.

In changing the external authentication, the ability to change a password in Banner Workflow is now disabled. If a user would like to change their password they'll have to go into Banner or have a DBA alter the password.

Note: When using the Banner Authentication, Banner Workflow performs username/password authentication by attempting to open a jdbc connection to the Banner database with the username/password. For more information, see “Authentication” on page 131.

LDAP External Authentication Plug-in

For those who have Luminis 4 installed and would like to have Luminis manage user identities, Banner Workflow provides a plug-in to authenticate against the Luminis LDAP server. See “Configuring Banner Workflow for Luminis 4 SSO” on page 72 for more information.

Set Up Banner Access from Banner Workflow

Perform the procedures below so that Banner Workflow can launch Banner.

51nner Workflow Technical Integration Guide | Banner Integration

Page 52: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Configure the Banner Forms Technology Type

1. Log in to Banner Workflow as an administrative user.

2. Select Workflow System Administration from Administration.

3. Select Technology Types from the Workflow System Administration page.

4. Select Banner Forms.

5. From the Banner Forms technology type page, specify the following launch parameters.

• banner_host_string - the host string used to log onto Banner. Typically this is the same value as the Oracle SID for the particular database.

• banner_config - the name of the config to use for the Internet Native Banner configuration. The config for an Internet Native Banner environment is defined in the formsweb.cfg file.

• banner_inb - the URL used to start Internet Native Banner. The value is the fully qualified URL with either HTTP or HTTPS. For example, if the Internet Native Banner server was running on machine banner.ellucian.com and its servlet was located at /servlet/f90servlet then the value would be:

http://banner.ellucian.com/servlet/f90servlet

• banner_timeout - the length of time in seconds that the Banner Workflow integration service will allow a single sign on to occur from Banner Workflow to Banner. In most situations the default of 30 seconds should be sufficient.

Set Up the Banner Forms Instance to Use the WFSSO User

1. Log in to Oracle Fusion Middleware Enterprise Manager.

2. In the left pane, expand Forms and click the name of the Forms instance.

3. In the right pane, select Environment Configuration from the Forms drop-down.

4. On the Environment Configuration page, select the appropriate environment from the Show drop-down.

5. Add an environment variable for username:

5.1. Click Add to add a new environment variable.

5.2. In the Name field, enter BAN_WFSSO_ENV_USERID.

5.3. In the Value field, enter WFSSO.

5.1. Click Create.

6. Add an environment variable for password:

6.1. Click Add to add a new environment variable.

6.2. In the Name field, enter BAN_WFSSO_ENV_PASSWD.

6.3. In the Value field, enter the password that you specified when you created the WFSSO user (“Create the WFSSO User for Accessing Banner from Banner Workflow” on page 21.

52nner Workflow Technical Integration Guide | Banner Integration

Page 53: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

6.1. Click Create.

7. In the upper right of the page, click Apply.

8. Restart the forms application.

Set Up Event Processing in Banner Workflow

An Event Provider is needed to retrieve event information from each event source, for example, Banner.

1. Go to your WORKFLOW_HOME directory and edit the instance/config/configuration.xml file.

2. Edit the <EventProvider> element. There is a set of property name value pairs which need to be edited.

3. Specify the “connectionUrl.” This is usually the same jdbc url as defined for the Banner Data Source.

4. Specify the user and password to be used to connect to Banner event tables.

This value is typically WFEVENT.

5. Save the file.

After editing the configuration file, you should upload the configuration to the workflow configuration tables. To upload this file, run bin/wftool uploadconfig from your WORKFLOW_HOME directory.

Information on the settings for the event provider in the configuration.xml file can be found in the table below:

Property Description

name Name of the event provider, e.g. Banner Workflow Event Provider. Used in the log files.

classname Java class for the Banner event provider:

com.sungardhe.workflow.engine.externalevent.provider.BannerTableExternalEventProvider

enabled Turns the event dispatcher on or off without removing it from configuration.xml. If this value is changed, just as the case with other changes to configuration.xml, the file must be uploaded into the Banner Workflow system and then both the application server instance(s) and engine(s) need to be restarted.

53nner Workflow Technical Integration Guide | Banner Integration

Page 54: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

By default, the Banner Event Provider will poll at least every 10 seconds and retrieve at most 50 events at a time, totaling a maximum of 300 events a minute. If more than 300 events a minute are firing, the “maxResultsPerPoll” element can be increased to handle more events at a single time with the understanding that overall system performance may be impacted.

Set Up Automated SQL Activities in Banner Workflow

Most workflows will require the ability to automatically retrieve data from Banner and bring those values into Workflow Context. To do so, a Workflow Data Source must be set up in the configuration.xml file.

1. Go to your WORKFLOW_HOME directory and edit the instance/config/configuration.xml file.

2. Edit the <DataSource name=”BannerDatabase”> element.

3. Set the user name and password to be used to query Banner tables and call Banner stored procedures from automated activities.

This value is typically WFBANNER or WFAUTO.

pollingInterval Amount of time the event provider delays between polls of the event table, in seconds. The default time is 10 seconds.

jdbcDriver Class used for JDBC connections to the database: The default value is oracle.jdbc.driver.OracleDriver and should not be changed unless instructed by Ellucian.

connectionURL JDBC connection URL. For example:

jdbc:oracle:thin:@sunhost1:1521:B60

user User ID used to connect to the database. The user should have read and write access to the Banner event tables.

password Password used to connect to the database.

maxResultsPerPoll Maximum number of event records to retrieve during each poll. The default value is 50, so on every poll the Banner Event Provider will retrieve up to 50 events.

targetName Name of Event Target used by the Banner Workflow Event Provider. This value in most cases is set to the default value of WORKFLOW.

Source ID Specifies the source of the External Events handled by this provider. All External Events posted to workflow are required to have a source ID that uniquely identifies the external system generating the events. See “External Events” on page 129 on source IDs and event IDs.

Property Description

54nner Workflow Technical Integration Guide | Banner Integration

Page 55: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Note: You may need to add additional grants to the account used here depending on your usage.

4. Save the file.

Below is an example of the BannerDatabase in configuration.xml.

<DataSources><DataSource name=”BannerDatabase”>

<Url>jdbc:oracle:thin:@ banner_server_name:1521:banner_sid </Url>

<Username>wfauto</Username><Password>u_pick_it</Password>

</DataSource></DataSources>

After saving changes to the configuration.xml file, go to WORKFLOW_HOME/bin and run wftool uploadconfig to upload the newly modified configuration.xml up to the Banner Workflow application running on the application server. After uploading the file, do the following:

• (Oracle WebLogic Server) Stop and then start the server instance that pertains to this installation of Banner Workflow.

• (Tomcat) Stop and then start the Tomcat server.

Import Banner Components and Examples

Banner Workflow provides seed data to be imported into an environment that is integrated with Banner. The seed data will provide Business Components that represent Banner forms as well as examples that use these components and demonstrate using Banner Workflow with Banner.

The import files are located in the support jar available off the ActionLine or off of the support directory on the Banner Workflow CD.

See “Import and Export Tools” on page 82 for more information.

For Banner 7.x the files are located in support/Banner/7.0 and should be imported in the order listed below. With Banner 7 there are three import files:

1. Components_1.xml - Provides all of the categories and components needed to integrate Banner Workflow with a Banner 7 environment.

2. WorkflowExamples_2.xml - Provides the examples that are designed for Banner 7.

3. MifTypes.xml - Contains technology types for creating MIF aware SQL Stored Procedures/Queries. This xml file Should only be loaded if you are integrating with a Banner instance that is using the Multi Institution Functionality.

55nner Workflow Technical Integration Guide | Banner Integration

Page 56: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Extract Banner User Data and Import Into Banner Workflow Database

You can optionally extract user information from the Banner database into a text file and import the text file into the Banner Workflow database. If you bypass this step, you must add each user to the Banner Workflow database manually.

User Information That Is Extracted

This step extracts the following user information into a text file:

Extract and then Import User Information

1. Ensure that the SPRIDEN table contains information for all users. As a minimum, the first or last name is required.

2. Use the Enterprise Access Control Form (GOAEACC) to associate each Oracle username with a Banner user ID.

3. Make sure that a record exists on the Crosswalk Validation Form (GTVSDAX) with the following information:

Information Source of information

Oracle username (in lower case)

GOBEACC table

First and Last names

SPRIDEN table

Password Manual entry when the extract script is run

Enabled status Automatically set to true

Start date Automatically set to the date when the extract script is run

Email address GOREMAL table

Internal Code EMAILTYPE

Internal Group WORKFLOW

External Code Email type code of the email addresses you want to extract from the GOREMAL table. The default is BUSI for business. This value can be changed.

Desc Email Code

56nner Workflow Technical Integration Guide | Banner Integration

Page 57: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

This record identifies the type of email addresses you want to extract.

4. Make sure that each user ID in the GOREMAL table has an email address with the email type code to be extracted.

5. Use SQL*Plus to run the user extraction script WORKFLOW_HOME\examples\banner\XMLCreation\wfaruser.sql. When you are prompted for a default password, enter a password without quotation marks. This password will be assigned to all users.

6. When the script is finished, review the WF_Users.xml file for errors.

If necessary, correct any errors and run the extract process again.

When the text file is error-free, import the text file into the Banner Workflow database. For more information, see “import” on page 168.

System Verification

At this point all modifications needed to integrate Banner Workflow with Banner should be completed.

To assist in determining if an installation is valid, a simple workflow was created for testing purposes. The system verification workflow definition is a small workflow designed to test various integration points in the Banner Workflow system. It assumes that your have already loaded the base data into the system, have setup all of your data sources and the email server, and are using the standard names for the Technology Types, Product Types, and DataSources used to integrate with Banner. If this is not the case, you will need to edit the components and the workflow accordingly.

Note: You must edit the Banner Forms technology type to correspond with your current Banner installation. For more information please see “Configure the Banner Forms Technology Type” on page 52.

You must import the verification bootstrap in order to get access to this special workflow. Following the import instructions execute the following command:

WORKFLOW_HOME/bin/import wfroot <password> WORKFLOW_HOME/bootstraps/SystemVerification.xml

To run the workflow, use the modeler to load and verify the workflow definition, then move it to Test mode and start it. After you have successfully completed the workflow, you can leave it in your system or remove it. If you choose to remove it, simply delete it from the modeler, remove the two components in the system verification category, then remove the system verification category itself.

Analyze Banner Components

System administrators can use Analyze Banner Components to assist in the process of migrating and updating workflows that use components associated with an older Banner

57nner Workflow Technical Integration Guide | Banner Integration

Page 58: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

release to a new release. This tool compares the current system's Banner components with those packaged in a bootstrap. It reports which Banner components have parameters that have changed and the workflows where the affected components are used.

Typically the Analyze Banner Components tool is used to compare the impact of a major release of Banner to the already established workflows in a Banner Workflow system. For example, if you have 2 workflows in your system that use 10 Banner forms, you would want to check to see if a new release of Banner would impact your workflows. You may check to see what impact a new release of Banner will have on your workflows by supplying the Banner Workflow environment with the Components_1.xml file from the support jar or directory. The Components_1.xml file contains all of the components that relate to a release of Banner.

To analyze your Banner components:

1. Select Workflow System Administration from Administration.

2. Select Analyze Banner Components from the Workflow System Administration page.

3. Click Browse and locate the bootstrap that contains the updated Banner components. The bootstrap file can have an XML or ZIP suffix. Typically this file is the Components_1.xml file from the support jar or directory.

4. Select your analysis options. By default, the analysis will be only run against Banner components that are used in an existing workflow definition. The report will list, by workflow, the changed components. Depending on the number of components, the component analysis may take several minutes to run.

5. Click Analyze to begin the process.

To compare Banner components, the component analyzer performs two-levels of comparisons. First, the analyzer tries to find the newer version of a component so that it can be compared against the current system's component. When comparing a component, if the analyzer is unable to find a component in the bootstrap with the same exact name, it will try to find it by either truncating Form from the previous component's name or finding components that share the same Banner form name (same formName parameter value). Once the newer version of the component is found in the bootstrap, it will be compared with the current system's component to determine which parameters have been modified, added, or removed.

After the analysis completes, depending on the options selected, a framed HTML report is displayed. In the left-hand column, there is a navigation and a summary area. The summary provides a final count for the number of affected workflow definitions or components. The navigation provides links to jump directly to a workflow definition or Banner component. In the report, under each component, there is a parameter listing.

Difference Description

Added The current system's component did not have this parameter.

58nner Workflow Technical Integration Guide | Banner Integration

Page 59: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

To print the report for offline viewing and analysis, click Print.

Update Workflows for a New Banner Release

The following are suggested steps for using Analyze Banner Components to update workflows for a new Banner release:

1. Run Analyze Banner Component' with the default options.

2. Print the report.

3. After considering the impact of moving to a new release of Banner based off of the report, import the Banner support files as listed in “Import Banner Components and Examples” on page 55.

4. Use the report to open up each affected workflow. You should create a new version of the affected workflow and then adjust the affected activities to address the changes. Ensure that the components being used are the newly imported components from step 3. After making changes, use the validation feature from within the Workflow Modeler to ensure that your changes are valid.

Handling Custom Forms

Before using custom forms in your workflows, you must make sure your custom forms are Workflow-enabled so they will behave as expected when invoked as workflow tasks and activities. You should Workflow-enable the forms that you create to meet your specific needs, as well as Banner baseline forms that you modify.

These are the basic steps involved in Workflow-enabling custom forms. Some of these steps do not require any action, but are simply listed as possible issues that you may solve programmatically before using that form in a workflow.

1. Verify that the form uses Banner Release 7.0 standards.

2. Check for a WHEN-TIMER-EXPIRED trigger.

3. Define the form to Banner Workflow.

4. Check navigation of key block items.

5. Check visual attributes of key block items.

6. Check triggers of key block items.

Removed The parameter has been removed from the newer component.

Modified The parameter's type, required, or guaranteed status has been modified.

Difference Description

59nner Workflow Technical Integration Guide | Banner Integration

Page 60: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

7. Check the PRE_FORM_TRG.

8. Check the startup logic.

9. Add logic if the form is a pass-through form.

10. Check for automatic rollbacks.

11. Prevent automatic commits in Workflow Submit.

12. Make changes for additional Workflow Submit/Release logic.

The rest of this chapter describes each step in detail.

Verify That the Form Uses Banner Release 7.0 Standards

To communicate properly with Banner Workflow, a custom form must be converted to Banner Release 7.0 standards. See the Banner 7.0 UI Methodology Handbook (meth70000hb.pdf) on the UDC Support Center for further instructions.

When you convert a custom form to 7.0 standards, ensure the GOQWFLW library is attached. This library contains all of the required functions for Banner Workflow enabling Banner. For more information on the GOQWFLW library and its interaction with each form, refer to “Banner Workflow-Awareness Library (GOQWFLW)” on page 66.

Check for a WHEN-TIMER-EXPIRED Trigger

Check to see whether the form has a WHEN-TIMER-EXPIRED trigger. If it does, add the following logic to it:

IF GET_APPLICATION_PROPERTY(TIMER_NAME) = G$_WF_DRIVER.WF_TIMER_NAME THENG$_WF_DRIVER.WF_EXECUTE('WF_CHECK_MSG');END IF;

This logic makes it possible, in a future release, for every Banner form to listen for and respond to requests to perform workflow tasks and activities. Specifically, this logic enables any form, upon the expiration of a timer created for Banner Workflow, to launch the appropriate Banner object that is associated with a requested workflow task or activity.

Define the Form to Banner Workflow

For Banner Workflow to launch a custom form as an activity, the form must be defined as a valid business component to Banner Workflow. The component is defined in the Business Component Catalog (BCC).

If your form is a modified version of an existing baseline Banner form with the same name, you may be able to use the existing baseline component definitions under the following conditions:

60nner Workflow Technical Integration Guide | Banner Integration

Page 61: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

• If you do not need to define additional parameters or change existing ones (defined in block.item format) for the form, you can use the existing baseline component.

• If you need to define additional parameters or change existing ones so that the appropriate workflow context is passed into and out of your form in any workflow you create, you can copy the baseline definition for the form in the BCC and modify the copy as appropriate.

If your form was created locally and does not have the same name as any existing baseline Banner form, you can copy and rename as appropriate the existing component definition for any baseline Banner form within the BCC and modify the definition as follows:

• Use an executable ID of the name of your local form as defined within the General Object Base Table (GUBOBJS) for that form.

• Reflect the parameters (in block.item format) that must be passed in and out of the appropriate workflow context.

For more information on using the Business Component Catalog, refer to the Banner Workflow Analyst/Administrator Handbook.

Check Navigation of Key Block Items

If the form contains any key block items to which a user (or the form) can navigate without performing a rollback, move those items to another block (for example, FORM_HEADER). Update the logic of the form as appropriate.

If this change is not made and a user navigates from a data block to the key block without performing a rollback (for example, moves to a pop-up window that displays navigable key block items), GOQWFLW still assumes that a rollback was performed and that the items are enabled and runtime errors will result.

Check Visual Attributes of Key Block Items

If the form contains any key block items with custom visual attributes:

• Update the items to use an existing named attribute.

or

• Define new named visual attributes in the form (or in a referenced form) for those custom attributes. Update the items to use the new named attributes.

Oracle Forms does not allow you to reapply a custom visual attribute for an item that was established at design time. You can only reapply a named visual attribute (for example, 'G$_NVA_TEXT_ITEM') or NULL (which restores the default). Therefore, a key block item that was populated with a parameter value, protected, and highlighted, loses its custom visual attributes when the highlight is removed from the item if the user performs a Workflow Release.

61nner Workflow Technical Integration Guide | Banner Integration

Page 62: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Check Triggers of Key Block Items

If the form contains any WHEN-<ITEM_TYPE>-CHECKED/CHANGED triggers for a check box, radio group, or list item in the key block, review the following information to determine what, if any, changes should be applied.

Item-type specific WHEN-<ITEM_TYPE>-CHANGED/CHECKED triggers only fire when the user selects a value from a pull-down list item, selects a radio button, or selects/deselects a check box. These triggers do not fire when an item of that type is programmatically updated. For example, these triggers do not fire if the values of their associated items are updated by a global copy upon entering a form, the return of a value from another form via the Select function, the entry of an item with an input parameter value through the GOQWFLW library, or any other programmatic way.

Use these steps to make the necessary changes:

1. Open the form that contains the check box, radio group, or list item in Forms Designer.

2. Determine whether a form-level, block-level, or item-level WHEN-<ITEM_TYPE>-CHANGED/CHECKED trigger would fire when the item value is changed.

If there is no such trigger, stop here.

or

If there is a such a trigger, proceed to step 3.

3. Examine the logic of the WHEN-<ITEM_TYPE>-CHANGED/CHECKED trigger.

If the logic will fire only when a user physically changes the value of the item (versus a change made by the application program), stop here.

or

If the logic will also fire when the application program changes the value of the item, proceed to step 4.

4. Determine whether there is a form-level, block-level, or item-level WHEN-VALIDATE-ITEM or POST-CHANGE trigger that would ever fire for the item.

If there is no such trigger, skip to step 6.

or

If there is such a trigger, proceed to step 5.

5. Examine the logic of the trigger:

• If the logic clones the WHEN-<ITEM_TYPE>-CHANGED/CHECKED trigger, and you are comfortable with the same logic potentially executing twice, stop here.

• If the logic clones the WHEN-<ITEM_TYPE>-CHANGED/CHECKED trigger, and you are not comfortable with the same logic potentially executing twice, remove all logic from the WHEN-<ITEM_TYPE>-CHANGED/CHECKED trigger and skip to step 7.

• If the logic does not clone the WHEN-<ITEM_TYPE>-CHANGED/CHECKED trigger, and you are comfortable with WHEN-<ITEM_TYPE>-CHANGED/CHECKED trigger logic always executing when WHEN-VALIDATE-ITEM or POST-CHANGE fires, then copy the logic of the WHEN-<ITEM_TYPE>-CHANGED/CHECKED trigger to the WHEN-VALIDATE-ITEM or POST-CHANGE trigger. Then do one of

62nner Workflow Technical Integration Guide | Banner Integration

Page 63: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

the following:

If you are comfortable with the same logic potentially executing twice, stop here.

or

If you are not comfortable with the same logic potentially executing twice, delete the logic from WHEN-<ITEM_TYPE>-CHANGED/CHECKED that you just moved to the WHEN-VALIDATE-ITEM or POST-CHANGE trigger, and skip to step 7.

• If the logic does not clone the WHEN-<ITEM_TYPE>-CHANGED/CHECKED trigger, and you are not comfortable with WHEN-<ITEM_TYPE>-CHANGED/CHECKED trigger logic always executing when WHEN-VALIDATE-ITEM or POST-CHANGE fires, stop here.

6. Create a new WHEN-VALIDATE-ITEM trigger at the scope where the WHEN-<ITEM_TYPE>-CHANGED/CHECKED trigger that you located in step 2 resides. Move the logic contained within the WHEN-<ITEM_TYPE>-CHANGED/CHECKED trigger to this new trigger.

7. Update the WHEN-<ITEM_TYPE>-CHANGED/CHECKED trigger to execute only the following statement:

VALIDATE(ITEM_SCOPE);

These changes force the execution of any POST-CHANGE or WHEN-VALIDATE-ITEM triggers for that item, along with any default Oracle Forms validation processing whenever a user manually changes the value of a check box, radio group, or list item as long as the Mouse Navigate property for that item is set to True.

If the Mouse Navigate property of the item cannot be set to True for functional or technical reasons, then consider saving off the name of the SYSTEM.CURSOR_ITEM, performing a GO_ITEM to the check box, radio group, or list item, executing VALIDATE(ITEM_SCOPE), and then returning the user to the saved off value of SYSTEM.CURSOR_ITEM. This is what the GOQWFLW library does when it populates key block items.

Check the PRE_FORM_TRG

Check the forms's PRE_FORM_TRG trigger, or any triggers that are fired by it, for logic that displays alerts. Move any such logic to a WHEN-NEW-FORM-INSTANCE trigger or a similar trigger that fires after PRE_FORM_TRG. By making this change, the Banner form will come into focus as appropriate when it is invoked as a workflow task or activity.

If this logic is not moved within the form, the logic executed by GOQWFLW when a form's PRE-FORM trigger fires will fail when it tries to bring the MDI application window of Banner into focus. This results in the need to toggle between Banner and Banner Workflow each time you want to perform the workflow task or activity related to the form.

63nner Workflow Technical Integration Guide | Banner Integration

Page 64: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Check the Startup Logic

Check to see whether you need to perform some logic at the startup of the form if it is currently considered a workflow task or activity. If so, add the startup logic to the WHEN-NEW-FORM-INSTANCE trigger or some other trigger that fires after PRE_FORM_TRG within the form.

Note: Do not add startup logic to PRE_FORM_TRG. GOQWFLW logic does not determine whether a form is a workflow task or activity until after PRE_FORM_TRG is executed. Therefore, the part of the startup logic that evaluates whether the current form is a workflow task or activity would be inaccurate.

Add Logic if the Form Is a Pass-Through Form

Determine whether either of the following conditions ever exists for the form:

• The user must explicitly exit the form before proceeding to the form that the user actually chose.

• The user must explicitly acknowledge an alert or message before proceeding to the form that the user actually chose.

If either of these conditions exists, add the following lines of code to the form's logic where the form comes into focus when the user is stopped before navigating to the form that is the actual workflow task or activity to be performed:

IF G$_WF_CONDITIONS.IS_WF_PASSTHROUGH_FORM THENG$_WF_SET_FOCUS.SET_FOCUS;END IF;

Without this logic, the MDI application window of Banner will not automatically come into focus. You would have to manually toggle from Banner Workflow to Banner to see that your activity did not really fail to launch, but that you were temporarily taken to another form to perform an activity.

Note: This step only applies to Banner 6.x sites.

Check for Automatic Rollbacks

Check to see whether any functions (for example, Save) cause the form to perform an automatic rollback or clear values that are needed by Banner Workflow before the user is able to perform a Workflow Submit. These types of automatic rollbacks will cause problems. When the user selects Workflow Submit to communicate back to Banner Workflow, the rollback has already cleared the data. Consequently, null context parameter values will be passed to Banner Workflow.

64nner Workflow Technical Integration Guide | Banner Integration

Page 65: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

To correct this problem, you can either change the logic to no longer clear the values if this is functionally acceptable, or you can use the following steps to change the form so it performs an implicit Workflow Submit when the particular function is invoked:

1. Locate the trigger that fires the rollback (clear form). Usually this can be done by finding the function that performs the action and tracing the triggers that it executes.

2. Locate the rollback action. This is usually at the end of the logic after all of the edits have fired to check whether the action can be performed. In most cases, it is a key-clrfrm, not a rollback.

In the following example, the rollback action is a call to a user-defined trigger called clr_form:

Ex-<< PASS_COMMIT >>EXECUTE_TRIGGER( 'clr_form' ) ;

3. Modify the rollback action appropriately.

In the following example, if the form is called as a workflow activity, an implicit Workflow Submit is performed instead of the rollback logic.

Ex-<< PASS_COMMIT >>IF G$_WF_CONDITIONS.IS_WF_ACTIVITYAND NOT G$_WF_CONDITIONS.IS_WF_SUBMITTED THENG$_WF_CONTROL_FORM.WF_SET_COMMIT_OVERRIDE;G$_WF_CONTROL_FORM.WF_SUBMIT;elseEXECUTE_TRIGGER( 'clr_form' ) ;end if;

4. Change other informational messages and autohints as necessary to communicate the behavioral change of the form when it is a workflow activity.

Prevent Automatic Commits in Workflow Submit

Determine whether there is any scope or condition, other than the pre-existing conditions listed below, when the form should not automatically perform a commit when a user selects the Workflow Submit function. If there is any such scope or condition, you can use the following procedures inside a form to override commits:

• When you want a commit to be skipped, add a call to the procedure G$_WF_CONTROL_FORM.WF_SET_COMMIT_OVERRIDE.

• When you no longer want a commit to be skipped, add a call to the procedure G$_WF_CONTROL_FORM.WF_RESET_COMMIT_OVERRIDE.

Logic is already in place to prevent a commit from being performed for the following pre-existing conditions:

• The form name indicates that it is an inquiry-only form. Specifically, if the third letter of the form name is C or I, or if the first three letters are FTV, the form is considered an inquiry form. This condition excludes query (Q) forms, because they cannot be launched directly from the main menu and therefore cannot be launched as workflow activities.

65nner Workflow Technical Integration Guide | Banner Integration

Page 66: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

• The role of the current user, granted either directly or via a class, only allows the user to query the form.

• The form contains no new or changed records.

Make Changes for Additional Workflow Submit/Release Logic

If the form has a scope or condition that requires a Workflow Submit or a Workflow Release to perform additional logic, make the following changes:

• Add a local WF_SUBMIT_TRG or WF_RELEASE_TRG to the appropriate scope.

• Add a call to the procedure G$_WF_CONTROL_FORM.WF_SET_LOCAL_TRG_EXISTS('WF_SUBMIT') or ('WF_RELEASE') to notify Banner to execute the trigger when a Workflow Submit or a Workflow Release is performed.

• Add a call to G$_WF_CONTROL_FORM.WF_RESET_LOCAL_TRG_EXISTS ('WF_SUBMIT') or ('WF_RELEASE') to notify Banner to not execute the trigger when a Workflow Submit or a Workflow Release is performed.

For an example of changes for a Workflow Submit, see these GLRSLCT form-level triggers:

WF_SUBMIT_TRGWHEN-NEW-FORM-INSTANCE

For an example of changes for a Workflow Release, see these GJAPCTL triggers:

WF_RELEASE_TRG (form level)WF_RELEASE_TRY (KEY_BLOCK)PRE-BLOCK (KEY_BLOCK)

Technical Information

This section provides technical information on the Banner Workflow-Awareness Library (GOQWFLW).

Banner Workflow-Awareness Library (GOQWFLW)

This library is the single repository for all baseline cross-product Banner Workflow functionality available within Banner when it is invoked from Banner Workflow. To guarantee that the required Banner Workflow functionality can be accessed within each form, this library is attached to every baseline Banner form that is defined as a component to Banner Workflow.

66nner Workflow Technical Integration Guide | Banner Integration

Page 67: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Note: It is highly recommended that you attach the GOQWFLW library to all forms, even if you are not using Banner Workflow.

What Is the Relationship Between GOQWFLW and Banner Workflow?

The GOQWFLW library provides a PL/SQL interface between Banner and Banner Workflow.

For example, through the GOQWFLW interface to Banner Workflow, a Banner session can:

• Determine whether a user has requested to perform a workflow activity.

• Determine the corresponding form or process to open to perform the activity.

• Retrieve and return the parameters (if any) that were defined for that activity.

• Notify Banner Workflow when the user has completed the activity.

How Does a Form Invoke the Functionality of GOQWFLW?

For a Banner form to access the functionality provided by GOQWFLW, it is not enough to attach this library to the form. Instead, GOQWFLW must control the behavior of the form, which has been invoked as an activity, when certain events occur within the form.

Forms that comply with Banner Release 7.0 standards have the appropriate triggers, within the G$_FORM_CLASS of GOQOLIB, that call the required functions and procedures of GOQWFLW as they should. Forms that do not comply with Release 7.0 standards most likely reference their own local copies of the triggers and don't execute the necessary GOQWFLW logic. These forms do not behave as they should when invoked as activities.

When a user first enters a form, compliance with Release 7.0 standards guarantees that the PRE-FORM trigger of the G$_FORM_CLASS of GOQOLIB fires. This in turn eventually executes the G$_WF_CONTROL_FORM.CONTROL_ENTRY procedure within GOQWFLW. This procedure registers the current form as an activity and brings the form into focus if the user has in fact requested the activity.

A form can be individually modified to take advantage of other functions and procedures provided by GOQWFLW as necessary. (See “Handling Custom Forms” on page 59 for more information.) The majority of forms, however, should not require modifications if they comply with the Banner Release 7.0 standards. These standards ensure that GOQWFLW can exhibit control in a form when needed.

How Is GOQWFLW Organized?

With the exception of the procedure AUDIT_TRAIL_4_0, that contains the audit trail for GOQWFLW, the Banner Workflow-Awareness Library is organized into a group of packages with distinct purposes. Each package, and each procedure and function in that package, is documented to some extent within the library itself.

67nner Workflow Technical Integration Guide | Banner Integration

Page 68: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

The following table describes the function of each package in GOQWFLW:

Package Description

G$_WF_BA Provides a PL/SQL interface to communicate with Banner Workflow.

G$_WF_CONDITIONS

Contains functions that evaluate conditions and return Boolean values to control the behavior of Banner as it polls for workflow tasks and activities to perform, and as it executes those tasks and activities when they are launched from Banner Workflow.

G$_WF_CONTEXT_PROCESS_IN

Provides the interfaces needed to:

• Obtain parameter names and values from Banner Workflow.

• Populate and repopulate the items of a form with parameter values as appropriate.

• Delete the parameter names and values when they are no longer needed.

G$_WF_CONTEXT_PROCESS_OUT

Provides the interfaces needed to:

• Extract parameter names and (potentially updated) values from Banner.

• Communicate any updated parameter values to Banner Workflow.

G$_WF_CONTEXT_VALIDATE

Contains functions that return Boolean values to indicate the status of the:

• Names or values of the parameters for a workflow activity.

• Key block items of a form that have been or will be populated with input parameter values.

G$_WF_CONTROL_FORM

Provides the interfaces needed to control the behavior of a form that has been launched as a workflow task or activity. Specifically, this package controls the behavior of a form when:

• A form is entered (PRE-FORM trigger has fired).• A block is entered (WHEN-NEW-BLOCK-INSTANCE

trigger has fired).• The Workflow Release function is executed

(G$_WF_BUTTON_PRESSED_TRG trigger has fired).

• The Workflow Submit function is executed (G$_WF_BUTTON_PRESSED_TRG trigger has fired).

• A form is exited (POST-FORM trigger has fired).

68nner Workflow Technical Integration Guide | Banner Integration

Page 69: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

G$_WF_CONTROL_KEY_ITMS

Provides the interfaces needed to control the behavior and appearance of a form's key block items that are populated with input parameter values from Banner Workflow.

G$_WF_DELIMITED_STRING

Contains functions and procedures that parse and handle delimited strings. These strings have values that are separated in the following type of format:

<field_1><delimiter><field_2><delimiter>...

G$_WF_DRIVER Provides the interface for implementing all Workflow-specific procedures and functions that need to be consistently called outside the GOQWFLW library.

This implementation reduces the need to regenerate all forms when the full Banner Workflow release of Banner is delivered.

G$_WF_ERROR Provides the interfaces needed to:

• Present the user with consistently formatted error messages when an error occurs in a workflow task or activity.

• Help the user debug a task or activity if he or she needs to know the parameters under which a task or activity is operating.

G$_WF_HEADER Declares the values of all public constants that may be used by other GOQWFLW packages and by other Banner Oracle forms modules as appropriate.

G$_WF_ICONS Provides the interfaces necessary to control the behavior and display attributes of the Banner Workflow specific iconic buttons and the Banner Workflow specific form pulldown menu items.

G$_WF_RECGRP Provides the interfaces necessary to readily retrieve information from record groups.

G$_WF_SET_FOCUS Provides the interfaces necessary to control the behavior and appearance of the MDI (Multiple Document Interface) application window of Banner.

G$_WF_WAIT_FOR_WORK

Provides the interfaces necessary to enable a Banner session to:

• Launch the appropriate Banner object when a workflow task or activity is started.

• Create, initialize, interrogate, reset, and destroy as appropriate the constructs a Banner session uses to perform this function.

Package Description

69nner Workflow Technical Integration Guide | Banner Integration

Page 70: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Integrating Banner Workflow with Luminis

This chapter provides procedures for integrating Banner Workflow with Luminis Platform, so that Workflow information is displayed in Luminis portlets. Use the appropriate procedures for your Luminis Platform version:

• “Integration with Luminis 4” on page 70

• “Integration with Luminis 5” on page 78

Integration with Luminis 4

A user’s Banner Workflow information can be displayed in channels in the Luminis 4.x portal. Worklist, Alerts, and My Processes channels are available. For example:

To integrate Banner Workflow with Luminis 4.x, the following software is required:

• Luminis Platform 4.3.1 or later, with the latest hot fix available from Luminis Support. The most recent hot fix will ensure the CPIP connection between Banner Workflow and Luminis can be established and that when CAS or IDM is enabled the UDC identifier can be passed from Luminis to Banner Workflow.

• Banner Workflow 8.0 or later set up in either of the following modes:

• Workflow External authentication mode, pointing to the LDAP server that is used by Luminis

70nner Workflow Technical Integration Guide | Integrating Banner Workflow with Luminis

Page 71: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

• CAS or IDM Gateway mode

Configuring Luminis 4 for Workflow External Authentication

This section contains the steps needed to integrate Banner Workflow with Luminis. There are two main touch points in the configuration between the two products:

• Banner Workflow in Workflow External authentication mode uses the CPIP protocol to establish single sign on from Luminis to Banner Workflow.

• Banner Workflow channels use HTTP/HTTPS to make connections from a channel in Luminis to the Banner Workflow server.

To establish single sign on from Luminis to Banner Workflow, the Banner Workflow server must be configured to use the LDAP server that Luminis is using and must be able to map the accounts in Banner Workflow to accounts in Luminis.

Deploying the CAR File

Note: If the Banner Workflow server is configured to use SSL, and you have configured the Banner Workflow channels to communicate over an SSL port, then the Banner Workflow Web Server's certificate will need to be imported into the Luminis trusted keystore. You can use the Luminis checkssl tool to do this, for example, 'checkssl myserver 443'. See the Luminis documentation for further details on checkssl.

1. Enable Luminis Integration. Open the configuration.xml file and locate the <LuminisIntegration> element. Change the enabled attribute from false to true. This will instruct the build scripts to generate a workflow.car file for integration.

2. Within WORKFLOW_HOME build and update the workflow.car file by running bin/wftool car. The workflow.car file will be located in the following directory:

WORKFLOW_HOME/dist

3. Deploy the CAR file. Copy the WORKFLOW_HOME/dist/workflow.car file to CP_ROOT/webapps/luminis/WEB-INF/cars.

4. Restart the Luminis Web Service. For the CAR to be available to the channel administrator, the Luminis web service must be restarted. Please consult your Luminis documentation for the proper steps to restart the service.

Configuring Single Sign On from Luminis 4 to Banner Workflow

To allow single sign on from Luminis to Banner Workflow, the configman tool from Luminis must be run to add the connection between the two applications.

71nner Workflow Technical Integration Guide | Integrating Banner Workflow with Luminis

Page 72: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

In the WORKFLOW_HOME/dist directory, a workflowCar.properties file contains the properties that need to be added to Luminis. This file is to be used as an import into the configman utility. To run configman, run configman -i workflowCar.properties.

Banner Workflow must be identified as an external system in Luminis using the external system id assigned in the configuration.xml, by default named bannerwf. To add this to the names already in your Luminis environment:

1. Check to see what is already present as defined external systems. To do so run configman -g es.systems. This will return back the system values that are configured for your Luminis environment.

2. Save this value and use it on our next run of configman.

3. Run configman -s es.systems <previous value of es.systems> bannerwf. For example:

if configman -g es.systems returned library banssb then you would run configman -s es.systems "library banssb bannerwf".

Configuring Banner Workflow for Luminis 4 SSO

For Single Sign On (SSO) from Luminis to Banner Workflow to work properly, Banner Workflow must be configured to use the Luminis LDAP server for External Authentication. For complete details on enabling external authentication see “Authentication” on page 131.

These instructions assume that you have some knowledge of LDAP and Luminis and are aware of the LDAP configuration settings used during your Luminis installation.

Luminis 4 Configuration

In Luminis 4, the login ID is mutable, and users have an immutable key stored in the uid attribute. The Luminis username is stored in the pdsLoginId attribute, with a possible alternate identifier stored in pdsLoginAlias. So the configuration should use uid for the link.attribute, and a search.filter that looks at both pdsLoginId and pdsLoginAlias.

For example, if your Luminis installation uses the default LDAP server running on a host myserver.myschool.edu at the default port and with all Luminis users stored under ou=People,o=myschool.edu, o=cp, then you would modify the <ExternalAuthenticator> element to look like the following:

<Authentication mode="WorkflowExternal"><WorkflowExternal><ExternalAuthenticator><ClassName>com.sungardhe.workflow.security.LDAPSearchAuthenticator</ClassName><Properties><Property name=”java.naming.factory.initial”value=”com.sun.jndi.ldap.LdapCtxFactory”/><Property name=”java.naming.provider.url” value=”ldap://lmyserver.myschool.edu:389”/><Property name=”directory.user”value=”uid=wfsearcher,o=myschool.edu,o=cp”/><Property name=”directory.user.password” value=”password”/><Property name=”search.directory” value=”ou=People,o=myschool.edu,o=cp”/>

72nner Workflow Technical Integration Guide | Integrating Banner Workflow with Luminis

Page 73: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

<Property name="search.filter" value="(|(pdsLoginId={0})(pdsLoginAlias={0}))"/><Property name="link.attribute" value="uid"/></Properties></ExternalAuthenticator>

In Banner Workflow, user accounts linked to Luminis users should have their externalID field set to the immutable key stored in the uid attribute in Luminis.

Note: If you have an existing Banner Workflow system integrating with Luminis III, and upgrade to IV, you must edit all the externally authenticated Banner Workflow users and update their externalID fields to match the (possibly new and different) uid attributes of the corresponding accounts in Luminis. You can do this manually, or use the new Web Services exposed with Banner Workflow 8.x to automate this process.

Configuring Luminis 4 for Banner Workflow

If SafeUTFURL is enabled to prevent cross site scripting (XSS) attacks, you must add Banner Workflow to the allowed list or disable SafeUTFURL.

To configure Luminis 4.x for Banner Workflow, use the following procedure:

1. Log in to the Luminis Web server.

2. Open a command window (on Windows use Cygwin).

3. At the prompt enter the following command to check if there are any pre-existing SafeUTFURL properties defined by first running.

configman –g com.pipeline.web.SafeUTFURL.url.*

For example, if SafeUTFURL is enabled and Banner Workflow is deployed to a host named sample.ellucian.edu using http, you would need to add the sample.ellucian.edu to the allowed list in both normal and in encoded form:

configman -s com.pipeline.web.SafeUTFURL.url.0=http://

sample.ellucian.edu

configman -s com.pipeline.web.SafeUTFURL.url.1=http

%3A%2F%2Fsample.ellucian.edu

4. Append the workflow coded and unencoded urls using by following the pattern and applying a sequence number to the command.

com.pipeline.web.SafeUTFURL.url.

5. Update the com.pipeline.web.SafeUTFURL.url.count to the total number of SafeUTFURL urls defined.

For example, configman -s com.pipeline.web.SafeUTFURL.url.count=2

6. Restart the Luminis Web server.

73nner Workflow Technical Integration Guide | Integrating Banner Workflow with Luminis

Page 74: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Configuring Luminis 4 for IDM or CAS Authentication

This section contains the steps needed to integrate Banner Workflow with Luminis. Banner Workflow channels use HTTP/HTTPS to make connections from a channel in Luminis to the Banner Workflow server.

Deploying the CAR File

Note: If the Banner Workflow server is configured to use SSL, and you have configured the Banner Workflow channels to communicate over an SSL port, then the Banner Workflow Web Server's certificate will need to be imported into the Luminis trusted keystore. You can use the Luminis checkssl tool to do this, for example, 'checkssl myserver 443'. See the Luminis documentation for further details on checkssl.

1. Enable Luminis Integration. Open the configuration.xml file and locate the <LuminisIntegration> element. Change the enabled attribute from false to true. This will instruct the build scripts to generate a workflow.car file for integration.

2. Within WORKFLOW_HOME build and update the workflow.car file by running bin/wftool car. The workflow.car file will be located in the following directory:

WORKFLOW_HOME/dist

3. Deploy the CAR file. Copy the WORKFLOW_HOME/dist/workflow.car file to CP_ROOT/webapps/luminis/WEB-INF/cars.

4. Restart the Luminis Web Service. For the CAR to be available to the channel administrator, the Luminis web service must be restarted. Please consult your Luminis documentation for the proper steps to restart the service.

Channel Administration

Installing the Worklist Channel

The Worklist Channel displays a Banner Workflow User's worklist within the portal format. From the channel, workflow users may interact with, launch, and complete work items. Consistent with the traditional worklist access, as items are completed and when new tasks arise, work items are published and removed from the worklist accordingly. To publish the Worklist Channel:

1. Log onto Luminis with a user who has Channel Admin rights.

2. Click Channel Admin within the header of the portal.

3. Click Publish a New Channel.

4. Select the Custom channel type.

74nner Workflow Technical Integration Guide | Integrating Banner Workflow with Luminis

Page 75: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

5. Apply the following settings:

5.1. Define a channel title. This will be the value displayed at the top of the channel. For example:

My Worklist

5.2. Define the channel name. This will be the name that will be displayed when subscribing to a channel. For example:

My Worklist

5.3. Define a functional name. This is the functional name of the channel used for identification for JNDI lookups and web services. The channel functional name should uniquely identify this channel definition. For example:

worklist.channel.mal0201500_7777_workflow

5.4. Set channel timeout. The suggested value is 10000.

5.5. Set the channel class to com.sungardhe.workflow.luminis.channels.worklist.WorklistChannel.

6. Set the editable channel control

7. Select the category that will contain the channel. For example:

Application

8. Select the groups who should have access to the channel. For example:

Employee

Note: If a member of this group is not a Banner Workflow user they will be unable to use the Worklist Channel.

9. Click Finish to publish the channel.

Installing the Workflow Alert Channel

Geared towards workflow process owners and administrators, the Workflow Alerts Channel provides portal access to manage workflow instances. If a workflow process should encounter an error state, an alerts message is published to the process owners. The alert provides the owner/administrator with the ability to correct/ resolve the process error. To publish the Alert Channel:

1. Log onto Luminis with a user who has Channel Admin rights.

2. Click Channel Admin within the header of the portal.

3. Click Publish a New Channel.

4. Select the Custom channel type.

5. Apply the following settings:

5.1. Define a channel title. This will be the value displayed at the top of the channel. For example:

My Workflow Alerts

75nner Workflow Technical Integration Guide | Integrating Banner Workflow with Luminis

Page 76: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

5.2. Define the channel name. This will be the name that will be displayed when subscribing to a channel. For example:

My Workflow Alerts

5.3. Define a functional name. This is the functional name of the channel used for identification for JNDI lookups and web services. The channel functional name should uniquely identify this channel definition. For example:

alert.channel.mal0201500_7777_workflow

5.4. Set channel timeout. Suggested value is 10000

5.5. Set the channel class to com.sungardhe.workflow.luminis.channels.alert.AlertChannel.

6. Set the editable channel control.

7. Select the category that will contain the channel. For example:

Application

8. Select the groups who should have access to the channel. For example:

Employee

Note: If a member of this group is not a Banner Workflow user they will be unable to use the Alert Channel.

9. Click Finish to publish the channel.

Installing the Workflow Processes Channel

The Workflow Processes Channel provides Banner Workflow Users with the ability to directly/manually start workflow processes. This is the same functionality that is available via My Processes within Banner Workflow. To publish the Shortcut Channel:

1. Log onto Luminis with a user who has Channel Admin rights.

2. Click Channel Admin within the header of the portal.

3. Click Publish a New Channel.

4. Select the Custom channel type.

5. Apply the following settings:

5.1. Define a channel title. This will be the value displayed at the top of the channel. For example:

My Processes

5.2. Define the channel name. This will be the name that will be displayed when subscribing to a channel. For example:

My Processes

5.3. Define a functional name. This is the functional name of the channel used for identification for JNDI lookups and web services. The channel functional name should uniquely identify this channel definition. For example:

76nner Workflow Technical Integration Guide | Integrating Banner Workflow with Luminis

Page 77: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

processes.channel.mal0201500_7777_workflow

5.4. Set channel timeout. Suggested value is 10000

5.5. Set the channel class to com.sungardhe.workflow.luminis.channels.process.ProcessesChannel.

6. Select the category that will contain the channel. For example:

Application

7. Select the groups who should have access to the channel. For example:

Employee

Note: If a member of this group is not a Banner Workflow user they will be unable to use the My Processes Channel.

8. Click Finish to publish the channel.

Adding a Workflow Tab

Banner Workflow can be embedded into Luminis via a framed tab. For example:

To set up a Banner Workflow tab:

1. Logon to Luminis.

2. Select Content/Layout.

3. Click Add New Tab.

4. Specify a name for the tab. This value will be the displayed value on the tab. For example:

Workflow

77nner Workflow Technical Integration Guide | Integrating Banner Workflow with Luminis

Page 78: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

5. If using WorkflowExternal Authentication, select the Framed tab type and supply the CPIP url. The URL field provides the CPIP URL back to Banner Workflow.

http://<luminis.school.edu>/cp/ip/login?sys=bannerwf&api=workflow

Where luminis.school.edu is the root of your Luminis server.

Note: If you are using CAS or IdmGateway as the Authentication mode, simply set the url used to log into your Banner Workflow instance with the relative path after the context root. For example:

http://workflow.school.edu/workflow/home/worklist.do?renderer=luminis&hidecrumbs=false&hidenav=false

6. Select the desired position of the tab.

7. Click Submit.

Integration with Luminis 5

Overview

A user’s Banner Workflow information can be displayed in portlets in the Luminis 5.x portal. Worklist, Alerts, and My Processes portlets are available.

Clicking any item in one of the portlets opens Banner Workflow in a new browser window, with that item selected.

78nner Workflow Technical Integration Guide | Integrating Banner Workflow with Luminis

Page 79: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Clicking the Banner Workflow icon opens Banner Workflow in a new browser window.

Clicking the refresh icon refreshes the Banner Workflow information displayed in that portlet.

Warning! Users who access Banner Workflow through Luminis at a public computer should close the Luminis browser tab when finished. If the user logs out of Luminis but leaves the browser tab open, the next user might be able to access the first user’s Banner Workflow data in Luminis.

Requirements

To integrate Banner Workflow with Luminis 5.x, the following software is required:

• Luminis Platform 5.1.0.0 or later, with the latest hot fix available from Luminis Support.

• Banner Workflow 8.2 or later, set up in CAS mode.

Note: CAS is the only supported authentication option for integrating Banner Workflow with Luminis 5.

Setting Up Single Sign-On Between Banner Workflow and Luminis 5

Importing the Banner Workflow Server Certificate to the Luminis Server

If the Banner Workflow server is configured to use SSL, then the Banner Workflow web server’s certificate will need to be imported into the Luminis trusted keystore. Perform the steps below to import the certificate.

1. Copy the certificate from the Banner Workflow web server to a location on your Luminis Server.

2. On your Luminis server, open a command prompt window.

3. Change directories to the <java_home>/bin directory.

4. Enter the following commands to import the certificate to the java and jre directories:

keytool -import -file <workflow-certificate-location> -keypass <password> -keystore <java_home>/lib/security/cacerts

keytool -import -file <workflow-certificate-location> -keypass <password> -keystore <java_home>/jre/lib/security/cacerts

where:

79nner Workflow Technical Integration Guide | Integrating Banner Workflow with Luminis

Page 80: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

• <workflow-certificate-location> is the path to the certificate file that you copied to the Luminis server in Step Step 1

• <password> is the password for the cacerts keystore (for a default java installation, the password is changeit.)

• <java_home> is the path to the Java home directory on the Luminis server.

Register Banner Workflow with CAS server

Register the Banner Workflow deployment with the CAS server the same way you register any other CAS application. See your CAS server documentation for more details.

Deploying the luminis-workflow WAR File

Perform the following procedure to generate the luminis-workflow.war file and deploy it with Luminis 5.

1. Open the configuration.xml file.

2. Locate the <Luminis5Integration> element, and change the enabled attribute for that element from false to true.

This setting will instruct the build scripts to generate a luminis-workflow.war file specifically for Luminis 5 integration.

3. Save your changes to the configuration.xml file.

4. On your Workflow server, open a command prompt window.

5. Change directories to the <WORKFLOW_HOME> directory.

6. Enter bin/wftool lp5war

This command will build and update the luminis-workflow.war file and place it in the WORKFLOW_HOME/dist directory.

7. Copy the luminis-workflow.war file from the WORKFLOW_HOME/dist/luminis-workflow.war directory to the LP5_HOME/products/liferay/liferay-admin/deploy directory.

8. If you want non-administrative users to be able to add the portlets, also deploy the war file in the Luminis Portal server by copying the luminis-workflow.war file from the WORKFLOW_HOME/dist/luminis-workflow.war directory to the LP5_HOME/products/liferay/liferay-portal/deploy directory.

9. Wait a few minutes and then perform the following steps to verify that the war file was deployed successfully:

9.1. Look in the <LP5_HOME>/products/tomcat/tomcat-admin/webapps directory. It should contain a directory called luminis-workflow.

9.2. Review the log file luminis.log, located in the <LP5_HOME>/products/tomcat/tomcat-admin/logs directory, to make sure that the deployment was successful.

80nner Workflow Technical Integration Guide | Integrating Banner Workflow with Luminis

Page 81: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Configuring Banner Workflow for CAS for Integration With Luminis 5

Perform the procedures in “SSO under CAS” on page 159 for procedure for configuring Banner Workflow for CAS for integration with Luminis 5.

Setting Up Banner Workflow User Accounts for Luminis SSO

Edit all of the externally authenticated Banner Workflow users and update their externalID fields to match the UDCID attribute of the corresponding accounts in Luminis. You can either do this manually or automate the process using the web services provided with Banner Workflow.

Adding the Workflow Portlets to Luminis 5

Perform the following procedure to add portlets in Luminis 5.x to display Banner Workflow data.

1. Log in to Luminis 5.x as an administrator.

2. Click the Add link at the top of the page and then select More from the drop-down menu.

3. In the list of applications, expand the Banner Workflow category.

4. Click Add next to each of the Banner Workflow portlets (Alerts, My Processes, and Worklist) that you want to add to the Luminis page.

5. Drag each portlet to the desired place on the page.

81nner Workflow Technical Integration Guide | Integrating Banner Workflow with Luminis

Page 82: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Server Administration

The Server Administration section contains information on the following topics:

• “Server Time Synchronization” on page 82

• “Import and Export Tools” on page 82

• “Modifying .ZIP Files” on page 85

• “Archive and Purge” on page 87

Server Time Synchronization

If you are running multiple engine instances, or are using clustering, it is CRITICAL that the system clock on each server be accurate. If the system clock on the servers are out of sync, various pieces of workflow, such as SSO, and execution of automated activities may function erratically, or generate unexpected errors. You should periodically check that the time on the servers is correct, or use a script or some other automated process to periodically check and update the time on each server.

Import and Export Tools

Banner Workflow can save and load the contents of the model time data into a zip file that is convenient for backup and migration purposes. This text file is referred to as the import, export, or bootstrap file depending on how it is used.

Import files in Banner Workflow are maintained as a combination of xml documents and binary files contained within a zip file by default. The xml file is based on the schema contained in import.xsd. They can be viewed and manipulated with xml tools, and can also be processed by an XSL.

The Import files contain XML representations of administrative system objects, such as Users, Roles, Workflow Definitions, and Components. They do not contain any runtime information, such as running workflows. Binary documents such as modeler icons are also stored within the zip file.

Under normal circumstances, all import/export processes are carried out from the server console using the installed scripts.

The following command line options are available for importing and exporting:

82nner Workflow Technical Integration Guide | Server Administration

Page 83: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Import a File

To import a file, use the following format and command line options:

WORKFLOW_HOME/bin/import <username> <password> <import file> [options]

For example:

Command Line Option Description

-primaryKey This option applies to both importing and exporting.

• When importing, it specifies that any primary keys found in the import file should be honored and re-created in the database as-is.

• When exporting, it specifies that primary keys should be exported with the rest of the data.

Warning! This option should only be used if explicitly called for by migration instructions

-verbose This option applies to both importing and exporting. The -verbose option will cause the importer/exporter to print verbose error messages. This is mostly used for debugging purposes.

-zip The -zip option applies only to exports. It is possible to export binary content such as the contents of the global attachments container and since these can be large files, it is not convenient to represent them within the xml content. By default, the xml file will be placed inside a zip file, and other binary content will be exported as binary files within the zip file. The -zip flag is still available for backward compatibility with scripts that use it, although the default behavior is to export to zip unless the -xml option is used.

-xml The -xml option applies only to exports. It specifies that only content that can be represented in the xml file should exported (as a text file) to the specified file. Binary content such as global attachments and icon images will not be exported.

-maxThreads <value> Certain elements within the import process can be processed in parallel threads to increase the speed of the import. This parameter controls the maximum number of threads to use to import with (defaults to 2). It should be set equal to the number of processors present in the host of the application server.

83nner Workflow Technical Integration Guide | Server Administration

Page 84: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

import wfroot password import.zip

Note: When importing a .zip file, the importer will extract the xml file from the zip archive and import it along with the contents of the global attachments container and icons.

Note: For the first import, there will be no normal accounts, so you must use the default wfroot account. See “SecurityIntegration” on page 96 for details on how to set the password on the wfroot account.

Note: Standard security Authorization checks apply during the import/export processes. If the account used does not have permissions to access an object, the import/export will not be able to create/extract that object. For example, if a user cannot create roles through the UI, the user will also not be able to import roles. Additionally, to import/export, a user must be a member of the ug_admin_remote_services group.

If errors occur during the import process, the system will continue to try to load as many objects as possible. After the file has finished loading, a list of any errors will be displayed. The objects contained in an import file have numerous interrelationships, so that an error preventing one object from loading, can lead to a chain of errors preventing other objects from loading. If errors are encountered, it is best to address them in the order they are listed.

The import process will not change existing objects in the system, it will only create new ones. If you are importing into a database that already contains objects, you may encounter errors if the system tries to import an object with the same name. In this case, you will need to determine whether this is actually a problem or not. If you know that the objects are truly duplicates of one another, then you may safely ignore them. For example, you may be importing a Workflow Definition with its supporting components, roles, and categories into a production database that already contains the same component.

Note: If the import file contains an Obsolete Workflow Definition, the import of the definition may fail with validation errors, and may only be able to be imported in the Development state. This is because once a Definition is marked Obsolete, certain validation restrictions are relaxed, and it may become out of sync with the other Banner Workflow objects that it references. When it is re-imported, it may no longer be valid, which may prevent the import.

Export the Current Banner Workflow System

To export the current Banner Workflow System, use the following format and command line options:

WORKFLOW_HOME/bin/export <username> <password> <export file> [options]

84nner Workflow Technical Integration Guide | Server Administration

Page 85: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

For example:

export wfroot password export.zip

Modifying .ZIP Files

If you want to generate your own zip files for import, or edit existing ones, there are several details to keep in mind:

ZIP File Name

The exporter will always create a file ending in a .zip extension, and the xml content will always be placed in a file with a .xml extension in the root of the zip archive. So export myname mypassword sample.zip will produce a file named sample.zip containing a sample.xml file with the xml content. The staticdocuments directory will contain binary content, such as global attachments and image icons.

The importer uses the filename suffix to determine whether to import in normal text or zip mode. If the import filename ends with .zip (not case sensitive), then it will assume that the file is a zip archive conforming to the import/export format.

Relationship Between the XML Content File and the staticdocuments

All information on the global attachments (document name, etc.) is contained in the xml file. The binary content is placed in separate files in the staticdocuments directory in the zip archive. The files are renamed as file1, file2, etc, to avoid duplicate names. The file names are mapped to their true names within the xml file, and will be re-imported correctly.

Important Notes

• During an import, the objects are created through calls to the application interfaces in the server which controls all transaction boundaries. Essentially, each object is created and committed in a single transaction.

• The order that objects are listed in the xml document is dictated by the xml schema. The import tools know the correct order that all objects must be created in the database to correctly create the relationships between Banner Workflow objects.

• While Banner Workflow does not have tools to selectively export single objects, it does have tools to manipulate a complete export file and extract Workflow Definitions and their supporting objects. For more information, see “Extractor Tool” on page 86.

85nner Workflow Technical Integration Guide | Server Administration

Page 86: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Additionally, any tools used to manipulate xml documents can be applied to an export file to selectively modify it or extract specific objects into a new import file. The castor framework contained in the package com.sungardhe.workflow.services.importer.castor can also be used to manipulate the import files from java code. See the delivered code samples in WORKFLOW_HOME/examples for an example of this.

• Date ranges are treated as absolutes, and date ranges that fall into the past will be loaded as-is. Additionally, all effective date ranges observe both date and time, not just the date.

Import File Manipulation with Castor Generated Classes

If you are familiar with java programming, you can easily manipulate import files or even create them from scratch.

To compile and use the examples, you will need the following in your classpath:

WORKFLOW_HOME/lib/jdom/jdom.jarWORKFLOW_HOME/lib/jdom/jaxen-core.jarWORKFLOW_HOME/lib/jdom/jaxen-jdom.jarWORKFLOW_HOME/lib/jdom/saxpath.jarWORKFLOW_HOME/lib/xerces/xercesImpl.jarWORKFLOW_HOME/lib/xerces/xml-apis.jarWORKFLOW_HOME/lib/workflow/workflow.jarWORKFLOW_HOME/lib/castor/castor.jarWORKFLOW_HOME/lib/castor/jakarta-oro.jarWORKFLOW_HOME/lib/castor/jakarta-regexp.jarWORKFLOW_HOME/lib/CommonUtil/CommonUtil.jarWORKFLOW_HOME/lib/log4j/log4j.jar

For the purposes of the example, assume that you have a flat file containing a list of usernames that we want to add to an import file before loading it into the system. All of the new users will be given a default password of changeme and the role Clerk as a primary assignment. Clerk is a role defined in the original import file.

See the WORKFLOW_HOME/examples/castor/src/demo/NewUsers.java file for a commented example of how to add a new user. Once compiled, the example will either add new users to an existing import file if -source is specified or will create a new file containing only new users if -source is omitted.

Extractor Tool

Banner Workflow ships with an extraction tool that can be run against import/export xml files to extract a Workflow Definition, along with the roles, components, categories, product types, and technology types that support the workflow.

To use the extractor tool, run the extractwd script as follows:

WORKFLOW_HOME/bin/extractwd [-shell] | { [-withoutDependencies] -source <sourcefile> -target

86nner Workflow Technical Integration Guide | Server Administration

Page 87: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

<targetfile> -processdef {<organization> <name> <version>}* }

If the [-withoutDependencies] flag is specified, only Workflow Definitions will be exported. Otherwise, the definition and supporting object such as roles, components, and categories will also be exported.

If both the source and target file for the extractor have a .zip suffix and [-withoutDependencies] is not specified, any global attachments referenced by the extracted workflows will also be placed in the target file. The <organization> refers to the qualified organization name of the workflow definition.

Since this process only involves xml manipulation, it is not necessary to have the workflow server running. You can also use the -shell option to open an interactive shell to enter the information. For example

WORKFLOW_HOME/bin/extractwd -shell

In shell mode, you will be successively prompted for the target, source, and process definition to extract.

Archive and Purge

Archive Tool

The archive process enables you to write information about stopped and completed workflows to an Oracle repository. Queries can then be run against the repository for report generation. See “Archive” on page 185 for a diagram outlining the archive tables and their relationships. Archived workflows are purged from the main system once they have been successfully archived.

Note: It may be necessary to use -shell option on certain operating systems (typically Unix variants) if there are spaces in either the qualified organization name or the definition name.

Parameters

When running the archive process, data is written to the archive based upon the values assigned to each of the following parameters:

87nner Workflow Technical Integration Guide | Server Administration

Page 88: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

You can also pass an optional -batchSize <size> option to control the size of the batches in which workflows will be archived. By default, the batch size is 50.

Archive Format

To archive, use the following format and command line options:

archive ‘user’ ‘password’ ‘verbose’ ‘display context’ ‘days expired’

The following command will archive all workflows that have been stopped or completed for 20 or more days. Verbose output will be written to the output stream and the values of context parameters within each archived workflow will be written to the archive:

archive wfroot password true true 20

Purge Tool

The purge process enables you to remove permanently stopped or running workflows. A significant difference between the purge and archive tools is that the purge leaves no memento of the original workflow object.

Use the purgewf script to purge with the following format:

WORKFLOW_HOME/bin/purgewf <username> <password> {-shell | {filter terms}} [-noprompt]

Where 'filter terms' may consist of:

Parameter Purpose

user Identifies the user name. This must be a valid workflow user ID.

password Specifies the password for the user.

verbose Generate verbose output

• True: verbose output will be written to the standard output.• False: basic output will be written to the standard output.

displayContext Show context parameter values.

• True: values of workflow context parameters will be written to the archive.

• False: values of workflow context parameters will not be written to the archive.

days expired Minimum number of days a workflow must be completed or stopped for, to be included in the archive.

88nner Workflow Technical Integration Guide | Server Administration

Page 89: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

• -workflowOrg <workflow organization qualified name>

• -processName <business process name>

• -definitionName <workflow name>

• -definitionVersion <version number>

• -instanceName <instance or specifics name>

• -state <state>

• -startDateFrom <date>

• -startDateTo <date>

• -endDateFrom <date>

• -endDateTo <date>

Note: <state> has a default value of stopped*.

<date> must be formatted in one of the following accepted date formats:

• dd-MMM-yyyy (e.g., 20-JAN-2006),

• dd-MMM-yyyy hh:mm:ss a (e.g., 20-JAN-2006 01:00:00 PM),

• dd-MMM-yyyy'T'HH:mm:ss (e.g., 20-JAN-2006T13:00:00).

Example: The sequence below would remove all stopped workflow from the 'Root' organization that completed by October 13, 2006.

purgewf admin password -workflowOrg Root -endDateTo 13-OCT-2006T17:00:00

The script will prompt if it should carry out the workflow purge unless the –noprompt is passed into it.

You may use the –shell option to interactively enter any or all of the filter terms instead of passing them in all at once at the command line.

Example:

purgewf admin password -shell

If there are spaces in any of command line arguments it may be necessary to use the -shell option.

Note: There is currently a limitation on the number of command line arguments that can be passed via purgewf script to the underlying java executable. Use the –shell option if specifying many different filter terms.

89nner Workflow Technical Integration Guide | Server Administration

Page 90: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Database and Application Server Administration

The Database and Server Administration section contains information on the following topics:

• “Redeploying” on page 90

• “configuration.xml” on page 91

• “Manipulating Data Sources through Banner Workflow” on page 102

• “Connection Management” on page 102

• “Automated Activity Deployment” on page 104

• “Clone a Banner Workflow Database” on page 105

Redeploying

Some changes made to the configuration.xml require the various workflow artifacts (the EAR or WAR file, the car file, the engine nodes) to be rebuilt/redeployed in order to take affect.

You can rebuild all the workflow artifacts, and upload configuration changes to the database in a single step by using wftool with the updateSystem command:

WORKFLOW_HOME/bin/wftool updateSystem

After updateSystem runs, you will have a new EAR or WAR file ready for deployment to the Application Server. If Luminis 4.x configuration is enabled, a new CAR file will be ready for deployment to the Luminis 4.x server. The default engine node will also have been rebuilt and a new engine installer will have been created for installing separate engine nodes.

Note: The only configuration change that requires you to re-install engine nodes is if you change the Banner Workflow datasource url, username, or password. Any other configuration changes will automatically be picked up by the engines after they are restarted.

90nner Workflow Technical Integration Guide | Database and Application Server Administration

Page 91: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

configuration.xml

Configuration.xml is the master configuration file, controlling how Banner Workflow is deployed on the ApplicationServer and how it behaves at runtime. This file is loaded into the database during deployment. Sections not related to deployment can be modified after deployment and reloaded into the database, so that changes can be made without requiring redeployment.

To make changes to the configuration.xml file:

1. Edit the file.

2. Run WORKFLOW_HOME/bin/wftool uploadconfig to reload the file into the database.

3. Use the engineconsole and startengine scripts to restart the engine node(s).

4. Restart the Oracle WebLogic Server or Tomcat server instance(s).

Note: If you change settings under the <Deployment> element, you will generally have to rebuild and redeploy the ear file for these settings to take effect. In the descriptions that follow, the elements will specify if a redeployment is necessary after an element is changed.

The configuration file contains the following elements:

• “EmailServer” on page 91

• “AutomatedActivityServlet” on page 93

• “Reaper” on page 93

• “EventDispatcher” on page 93

• “DataSources” on page 94

• “SecurityIntegration” on page 96

• “Engines” on page 96

EmailServer

Defines properties (such as the smtp mail host) that are used to send email for Email activities. If you are using email activities, you should adjust these settings to point to your mail host.

Changes to the EmailServer element require both the application server instance and the engine to be restarted to take effect.

91nner Workflow Technical Integration Guide | Database and Application Server Administration

Page 92: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Properties Used to configure Banner Workflow to talk to your email server.

The required property is mail.smtp.host which specifies the location of the email server. The name of each property is specified in the JavaMail API. For additional configurations please refer to Sun's documentation concerning the API.

SubstitutionProperties Substitution properties are values that are available to the Email Service when formatting an email.

Substitution properties can be added for global email substitutions such as default Workflow From addresses and standard footers.

For example if you’d like to have a default footer be placed at the bottom of each email being sent via Banner Workflow and you would like this footer to be the same throughout the system you could create a substitution parameter named “FOOTER” with a value of “brought to you by Banner Workflow” in the configuration.xml.

<EmailServer><Properties><Property name=”mail.smtp.host” value=”localhost”/><Property name=”mail.smtp.sendpartial” value=”true”/><Property name=”mail.smtp.dsn.notify” value=”FAILURE”/><Property name=”mail.smtp.dsn.ret” value=”FULL”/></Properties><SubstitutionProperties><Property name=”FOOTER” value=”brought to you by Banner Workflow”/></SubstitutionProperties></EmailServer>

At the bottom of the email you’d place @FOOTER to bring in the value of FOOTER from your configuration.xml file. By keeping the value in one place you’re able to change once and have the values picked up automatically by future email activities.

92nner Workflow Technical Integration Guide | Database and Application Server Administration

Page 93: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

AutomatedActivityServlet

The maxThreads attribute specifies the maximum number of threads that will be started to concurrently perform automated work.

The pollingInterval specifies the time, in seconds, to pause between checking for new automated work.

The continousPolling attribute instructs the automated activity servlet to ignore the pause interval if the last poll found work to be performed. Caution should be exercised before setting this attribute to true. While doing so may increase automated activity throughput, it may do so at the expense of system response to user interaction.

Note: Changes to AutomatedActivityServlet require the application server instance to be restarted.

Reaper

The PurgeInterval element defines how often the reaper threads should purge expired Banner SSO and logon data. Normally this data is purged during program execution, and the reaper threads act as a backup to this functionality. The time is displayed in seconds.

Note: Changes to Reaper require the application server instance to be restarted.

EventDispatcher

Defines the event providers. Banner Workflow can respond to events from multiple providers. Each <EventProvider> element names a provider, specifies the java class that implements that provider, and specifies whether the provider should be enabled or not. Each <EventProvider> element contains a <Properties> element specifying name-value pairs used to configure the provider. The name-value pairs are specific to each provider class. The <EventProvider> element also has an “enabled” attribute that can be used to switch the provider on or off (set it to “true” for on, and “false” for off).

Note: Changes to the EventDispatcher require the engine(s) to be restarted.

Banner Workflow ships with a BannerTableExternalEventProvider. The name-value pairs used to configure this provider are as follows:

93nner Workflow Technical Integration Guide | Database and Application Server Administration

Page 94: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

DataSources

This element contains zero or more defined datasources. A datasource is a named jdbc connection that stores the information required to connect to an external data store. DataSources defined here can be attached to ProductTypes to provide access to data associated with applications (such as Banner) that your Banner Workflow installation has been integrated with, or needs to acquire data from. A <DataSource> element contains a name attribute, which should be the unique for each DataSource. The <Url>, <Username>, and <Password> elements define the jdbc Url and connection information.

Note: Changes to any of the DataSource elements require the application server to be restarted.

It should be noted that the DataSource elements defined here are not the same as the WorkflowDataSource and BannerDataSource elements defined in the Deployment section. These datasources are used to provide JDBC connection information to workflow activities, such as automated sql stored procedures, as such, they will often use different database accounts to login to, with different privileges than the accounts used in the Deployment datasources.

sourceID Specifies the source of the External Events handled by this provider. All External Events posted to workflow are required to have a source ID that uniquely identifies the external system generating the events. (See “External Events” on page 129 for information on source IDs.)

pollingInterval The delay (in seconds) between attempts to poll the Banner event tables.

jdbcDriver The name of the jdbc driver to use.

connectionUrl The jdbc url to the database containing the Banner event tables.

user The username to use to logon to the database.

password The password to use to logon to the database.

maxResultSizePerPoll The maximum number of events to retrieve per poll.

targetName The event target name; should always be WORKFLOW. Identifies the events in the Banner Event tables that should be polled by this provider.

name The name the provider should use when generating log messages. In general, this should be the same as the provider name.

94nner Workflow Technical Integration Guide | Database and Application Server Administration

Page 95: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Each datasource contain the following elements:

For example:

<DataSources><DataSource name=“BTest”><URL> jdbc:oracle:thin:@sunhost1:1521:BTest </URL><UserName>user</UserName><Password>password</Password></DataSource>

</DataSources>

Note: If the Data Source does not require logon information leave the text between the UserName and Password tags blank. If the Data Source requires a logon, ensure that the UserName/Password combination used has been granted privileges to all objects accessed by the Banner Workflow system.

What types of external data sources can be defined

Banner Workflow can access two JDBC drivers, an oracle driver, and an ODBC bridge driver. This allows Banner Workflow to interface with Oracle databases and system defined ODBC data sources, such as, Microsoft Access, Microsoft FoxPro, or Microsoft Excel. The Connection URLs for Data Sources accessed via these drivers should use the following templates:

Note: Banner Workflow can be configured to access any data store for which your institution has the appropriate JDBC driver.

For more information on using DataSources, see “Manipulating Data Sources through Banner Workflow” on page 102.

Url JDBC connection URL, for example:

jdbc:oracle:thin:@sunhost1:1521:BTest

Username ID used by Banner Workflow to logon to a database instance.

Password Password used by Banner Workflow to logon to a database instance

Oracle Connection URL

jdbc:oracle:thin:@<hostname>:<port>:<sid>

ODBC Bridge Connection URL

jdbc:odbc:<data-source-name>

95nner Workflow Technical Integration Guide | Database and Application Server Administration

Page 96: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

SecurityIntegration

This element controls several built-in accounts and determines the authentication mechanism employed by workflow.

Note: Changes to this element require the application server instance to be restarted.

<SuperUser>

Controls configuration of the built-in wfroot account. The password attribute determines the password used for the wfroot account, and should be changed from the default of “password”. The <Groups> element should only be changed when requested by Ellucian.

<WebServicesUser>

Controls configuration of the built-in web service account “wfwebservices”. This is an internal account used for server-to-server integration processes, such as Luminis portlets. You should change the password attribute to something other than the default of “password”. <Groups> defines the security groups the account belongs to, and should only be changed when requested by Ellucian.

<ExternalAuthenticator>

Allows an external authentication mechanism, such as LDAP, to be enabled and configured. Enabling external authentication requires that a specific implementation be specified by the <ClassName> element. The <Properties> element then specifies a set of configuration properties specific to the <ClassName> chosen. For specific details on what external authentication mechanisms are supported and how to configure them, see “Authentication” on page 131.

Engines

The Engines element contains all configuration information relating to the Workflow Engine.

Note: Changes made to the Engines element require that the application server instance(s) and the engine(s) be restarted.

Overview

The information in the <Engines> element serves two purposes. First, it controls the behavior of the engine instance(s) that are running. Secondly, it allows other Banner

96nner Workflow Technical Integration Guide | Database and Application Server Administration

Page 97: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Workflow components to find where the engine(s) are located and make RMI calls to them.

Each <EngineInstance> element specifies a location where an engine instance is expected to be running. The host attribute identifies the server, and the config attribute specifies the configuration that the engine is running under. Together, the information denotes both the server and the RMI port that the engine can be contacted at. For typical single-engine installations in which the engine is running on the same server as the application server instance, the host will be “localhost” and the config will be the default “main” config.

Note: If you are using application server clustering, you should change 'localhost' to the fully-qualified name of the server holding the workflow installation, even if you are running only one engine. The other nodes in the cluster will need the fully-qualified hostname in order to contact the engine instance.

The <EngineConfiguration> elements define one or more configurations that an engine can run under. In a typical single-engine installation, there will only be a single “main” configuration.

The <EngineConfiguration> element contains the following information:

• The <Port> element specifies the RMI port the engine runs on. This port should not be used by any other application on the server the engine runs on.

• <JDBCPoolConfig> controls the maximum number of JDBC connections that the engine can open at once to service incoming RMI requests. For more information see “Tuning the Workflow Engine” on page 174.

• The <ThreadPools> element specifies tuning information for the Main, Notification, and ExternalEvent thread pools. For more information see “Tuning the Workflow Engine” on page 174.

• <LoggingConfig> specifies a named logging configuration to use for this engine configuration. Logging configurations are sets of name/value pairs that control the level of logging detail.

<Password> specifies the administration password used by all engine instances. Scripts that perform administrative functions on the engine (such as a shutdown request) must provide this password to the engine, or the request will be denied.

<MaxMemory> controls the maximum amount of memory (in megabytes) the engine scripts will automatically be configured to start the engine VM with.

<RefreshSettings> controls how far the engine “looks ahead” for scheduled events. This value should only be changed when requested by Ellucian.

<Services> lists the RMI services published by the engine, and should not be changed.

<DBNoWaitFailureCodes> and <DBFailureCodes> configure the engine to detect database failures so it can attempt to go into an idle state and auto-recover when database connectivity is restored. These values should be altered only when requested by Ellucian.

97nner Workflow Technical Integration Guide | Database and Application Server Administration

Page 98: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Deployment

The Deployment section contains information that is related to the building and deployment of the workflow artifacts, such as the EAR file. Information contained here is generally more static, and, unless otherwise noted, requires redeployment in order to take affect.

WorkflowDataSource

This element specifies the JDBC connection information and application server connection pool tuning parameters for the connection to the Banner Workflow tables.

Note: The rest of the elements control JNDI binding of the connection pool, and should not be modified except when requested by Ellucian.

BannerDataSource

This element specifies the JDBC connection information and application server connection pool tuning parameters for the connections to the WFBANNER account used to exchange data with Banner when executing Banner workitems.

Note: The rest of the elements control JNDI binding of the connection pool, and should not be modified except when requested by Ellucian.

<JDBCConnection> Specifies the basic JDBC connection settings.

• <Url> - The url to the Banner Workflow database in the form jdbc:oracle:thin:@<server name>:<listener port>:<sid or service>.

• <Username> - The username to use to connect.

• <Password> - The password to use to connect.

• <Driver> - The jdbc driver to use. This should not be changed from oracle.jdbc.driver.OracleDriver.

<max-connections> The maximum number of connections the Application Server can have open in the workflow connections pool. This number controls the number of users that can concurrently interact with most workflow functionality.

<min-connections> The minimum number of connections the Application Server should keep ready to service user requests.

98nner Workflow Technical Integration Guide | Database and Application Server Administration

Page 99: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

ApplicationName

This specifies the application name for a given workflow instance. The name specified here will be used to name the Workflow Engine service when running under windows (if this feature is used).

ApplicationServerHost

Specifies the hostname the application server is running on, or the hostname of one of the hosts a clustered environment runs on. Will be used when creating utility scripts (import, export, etc).

WebApplication

This element specifies the elements of the URL by which users and webclients can connect to the application. If you are using multiple Oracle http servers behind a load balancer, this should specify the URL of Banner Workflow as accessed through the load balancer.

Note: The forward slash at the beginning of the name is required.

LuminisIntegration

This element is used when integrating Banner Workflow with Luminis 4.x. To enable integration with Luminis 4.x, the enabled flag must be set to true.

protocol Either http, or, if you are using SSL, https.

host The name of the server the Oracle Application HTTP server is running on (typically the same server Banner Workflow is installed on). It should be a name resolvable by DNS by any potential webclient (browser or Luminis 4.x channels). It should not be ‘localhost’.

port The port that the HTTP server is running on.

root The web root of the deployed application. Root should denote the type of system being installed. Typically this should match or be similar to <ApplicationName> for convenience. For “example, if deploying a production system, you might use root=“/wfProd”.

<ExternalSystemID> Contains the external system to be added to the es.systems configuration value in Luminis (via the Luminis configman tool) to specify the CPIP integration from Luminis to Banner Workflow.

99nner Workflow Technical Integration Guide | Database and Application Server Administration

Page 100: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Luminis5Integration

This element is used when integrating Banner Workflow with Luminis 5.x. To enable integration with Luminis 5.x, the enabled flag must be set to true.

AdvancedDeployment

This element contains a number of advanced deployment features.

Logging

The <Logging> element specifies a number of named logging configurations. Each configuration is contained in a <Log4j> element having a name attribute. Each name must be unique. The contents of a <Log4j> element is a <Properties> element specifying the name/value pairs used to configure log4. You can change the detail of the logs generated by altering the logging configurations. By default, all the workflow components running in the application server are controlled by the 'appserver' logging configuration, and all the engine nodes are controlled by the 'engine' logging configuration.

<LoggingConfig> Specifies a named logging configuration to use to control logging from all Banner Workflow components running in the application server.

<ScriptExtensions> Controls the extensions used on scripts created by the wftool. If you wish the scripts to be created with different extensions, change this element, then use “WORKFLOW_HOME/bin/wftool scripts” to recreate the scripts.

Changes to this element do not require a redeploy, just recreate the scripts using the wftool.

<WebSessionTimeout> The time (in minutes) before an idle web session will be automatically logged out.

<JavaWebStart> Contains parameters used to control the launching of parts of workflow that use Java Web Start for rich-client functionality, such as the modeler. The <MaxMemory> element controls the amount of memory (in megabytes) that the client side VM will be allowed to use. The <J2SE> element controls the version(s) of JDK that are acceptable to run the workflow UIs, and should only be changed at the request of Ellucian.

100nner Workflow Technical Integration Guide | Database and Application Server Administration

Page 101: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

101B

anner Workflow

Technical Integration G

uide|

Database and A

pplication Server A

dministration

one below within the <Logging>

er" />

nLayout" />

4r %-5p %C %M.%L %x - %m%n" />

ppender" />

rkflow.log" />

rnLayout" />

-4r %-5p %C %M.%L %x - %m%n" />

Runner" value="WARN" />

ARN" />

ARN" />

Logging Configuration for Tomcat

To support logging of Workflow data in Tomcat logging files, create a <Log4j> element like theelement. This example creates a log file named workflow.log in the tomcat logs directory.

<Log4j name="appserver">

<Properties>

<Property name="log4j.rootCategory" value="ERROR, stdout, logfile" />

<Property name="log4j.appender.stdout" value="org.apache.log4j.ConsoleAppend

<Property name="log4j.appender.stdout.layout" value="org.apache.log4j.Patter

<Property name="log4j.appender.stdout.layout.ConversionPattern" value="%d %-

<Property name="log4j.appender.logfile" value="org.apache.log4j.RollingFileA

<Property name="log4j.appender.logfile.File" value="${catalina.home}/logs/wo

<Property name="log4j.appender.logfile.layout" value="org.apache.log4j.Patte

<Property name="log4j.appender.logfile.layout.ConversionPattern" value="%d %

<Property name="log4j.appender.logfile.append" value="False" />

<Property name="log4j.appender.logfile.MaxFileSize" value="20MB" />

<Property name="log4j.appender.logfile.MaxBackupIndex" value="5" />

<Property name="log4j.category.org.apache" value="FATAL" />

<Property name="log4j.category.com.sungardhe.workflow.services.autoactivity.

<Property name="log4j.category.com.sungardhe.workflow.luminis.cpip" value="W

<Property name="log4j.category.org.apache.axis.EXCEPTIONS" value="INFO" />

<Property name="log4j.category.com.sungardhe.workflow.web.security" value="W

</Properties>

</Log4j>

Page 102: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Manipulating Data Sources through Banner Workflow

Banner Workflow provides two internal Java programs to manipulate data in an external data store. The first program executes an external Data Store's stored procedures. The second program allows you execute SELECT statements against an external Data Store. Before these two programs can be used as part of a component that manipulates the external Data Store, three steps must be completed:

1. A DataSource element specifying how to connect to the data store must be defined in the configuration.xml file, located in the config directory of the Banner Workflow installation directory.

2. A new product type must be created and configured to use the newly defined Data Source.

3. A new technology type must be created with a client launch parameter named “jdbcDriver” with a value equal to the classname of the JDBC driver needed to connect to the external data store. The paths for the two drivers Banner Workflow has access to are:

Oracle Driver Class: oracle.jdbc.driver.OracleDriver

ODBC Bridge Driver Class: sun.jdbc.odbc.JdbcOdbcDriver

Once the product type and the technology type have been defined, a component can be created to execute a stored procedure or a SQL select query. Detailed information on creating such a component is contained in the Analyst/Administrator Handbook.

In the case of a MIF environment, a MIF code must be specified for each relevant organization that a workflow may be instantiated. See the Banner Workflow Analyst/Administrator Handbook for more information regarding MIF.

Connection Management

Banner Workflow makes use of connection pooling to better utilize database resources. Proper tuning of the connection pools requires an understanding of where and how connections are used.

Two connection pools are maintained by the application server:

• Workflow Connection Pool - The pool defined in configuration.xml under WorkflowDataSource. This can be changed by editing the <max-connections> element and redeploying. These connections are used for all access to the tables in the workflow schema from the web and ejb tiers, including reading workflow data from the eng * tables.

• Integration Connection Pool - The integration connection pool is used to integrate with Banner. These connections are used to pass integration information during workflow launch and for getting and setting parameters from Banner. This has to be a separate connection pool, as Banner Workflow and Banner will most likely reside in different

102nner Workflow Technical Integration Guide | Database and Application Server Administration

Page 103: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

databases and would require different credentials to log in. This connection pool is defined in the Banner Data Source element in configuration.xml.

Changes to either of the above elements require the EAR or WAR file to be rebuilt and redeployed.

The Workflow Engines run in separate VMs and maintain their own connections to the database. All connections from the engines use the JDBC connection information contained in the <WorkflowDataSource> element. The maximum number of connections that can be used by an engine instance is the sum of maximum size of its JDBC pool, the maximum number of main pool threads, the maximum number of notification pool threads, the maximum number of external event pool threads, plus 1. For complete details on how the engine makes use of database connections, see “Tuning the Workflow Engine” on page 174.

The provided BannerTableExternalEventProvider that transfers events from Banner to Banner Workflow opens one connection to the Banner Database per instance of the provider. Each engine instance that is running will have its own instance of the provider running. So if you are running 2 engine nodes and are polling for Banner events, there will be 2 JDBC connections to the Banner event tables.

Automated activities that access databases may also use database connections. These connections are opened and closed by the automated activities themselves, and do not come from any pools. The maximum number of external activities that could concurrently exist can be controlled by editing the <AutomatedActivityServlet> element of the configuration.xml file and adjusting the max external processes element. Note that if clustering is being used, each application server instance running the Banner Workflow components will have an instance of the automated activity servlet running. So the total number of connections that could be in use by automated activities is the maximum number of external processes allowed by the automated activity servlet multiplied by the number of application server instances running the Banner Workflow system.

Tuning the connection pools depends both on the typical operating mode of Banner Workflow and your Oracle connection licensing.

Banner Workflow operating modes vary between highly automated systems that mostly perform automated activities with low numbers of interactive users at one extreme, to highly interactive systems in which most activities are performed by high numbers of concurrent users.

Oracle licensing models vary from the concurrent user model to the processor based model. With processor based licensing, controlling the pool max sizes is not as critical, since they can be set higher than needed in anticipation of sudden peak loads. The concurrent user model when combined with highly interactive systems presents a challenge in determining how best to allocate the limited resources.

For an installation with a small user base of less than 30 concurrent users or a mostly automated installation, the default settings should be sufficient. If you are on a processor based model, you may wish to increase the size of all pools in anticipation of future demand.

The following are guidelines on which pools to change based on the performance of the system:

103nner Workflow Technical Integration Guide | Database and Application Server Administration

Page 104: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

• If normal administrative actions involving components, users, roles, or workflow definitions seem slow, and you have an interactive system, try increasing the <WorkflowDataSource> pool max size.

• If worklist refresh times or workflow status searches seem slow, try increasing the <WorkflowDataSource> pool max size.

• If the Banner response time to a work item launch or a work item complete within Banner seems slow, try increasing the <BnnerDataSource> max pool size. You may also need to increase the <JDBCPoolConfig> max size for the engine configuration under the <Engines> element.

• If interacting with work items seems slow when reserving, releasing, completing, or launching, try increasing the <JDBCPoolConfig> max size for the engine configuration under the <Engines> element.

If workflows seem to take a long time to advance after being started or after a workitem is completed, you may need to increase the number of threads in the main engine pool. For more information see “Tuning the Workflow Engine” on page 174.

Note: Production environments should always be running workflows in the 'Active' state (not 'Test'). Running large numbers of 'Test' mode workflows will consume significantly higher database resources in terms of DB reads required.

The other thing to keep in mind with connection pool tuning is that as a distributed application, Banner Workflow is dependent upon network and database performance and maintenance. The connection pool sizes essentially determine the maximum number of concurrent user requests the system is capable of processing without beginning to make users wait for database resources to become available. Slow network or database response will increase the length of each request, driving up the concurrency, and therefore increasing the total number of connections that may be needed.

Automated Activity Deployment

There are three different types of automated activities that can be designated to a component: internal, automated workflow-aware, and automated non-workflow-aware.

Internal

The internal type is reserved for Banner Workflow built-in activities such as the automated SQL procedure and query activities. The binary code of these components is packaged with Banner Workflow and does not have any special deployment considerations. To properly set up these kinds of components you must ensure that the product type and data sources have been properly defined.

104nner Workflow Technical Integration Guide | Database and Application Server Administration

Page 105: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

In the case of a MIF environment, a MIF code must be specified for each relevant organization that a workflow may be instantiated. See the Banner Workflow Analyst/Administrator Handbook for more information regarding MIF.

Automated Workflow-aware and Non-workflow-aware

The automated workflow-aware and non-workflow-aware activities provide a means for hooking external applications as automated activities in the system. The key difference is that non-workflow-aware activities are automatically marked as completed by the workflow server after the process has completed. Workflow-aware activities are required to communicate with the Banner Workflow server (via Web Services) to complete themselves. In both cases, the automated activities are run in an external process on the same machine as the workflow server. This is analogous to how cgi programs are launched on behalf of a web server.

These types of automated activities should be mapped to a drive that is accessible from the Banner Workflow server. This involves deploying the actual scripts or binary code in an accessible directory, and defining the executable and any required path information in the client launch parameters of the component. The administrator and analyst should take care that the launch executable and path to the physical application file are in sync. Refer to the Analyst/Administrator Handbook for a detailed description in defining the launch parameters with external automated activities. In a clustered environment, any of the application server instances running the Banner Workflow system may perform an automated activity, so the executable used by the component must be accessible from each application server instance.

Clone a Banner Workflow Database

Occasionally you may want to roll a production instance of Banner Workflow back to a test instance. To clone a Banner Workflow Database, please follow the steps below:

Note: In the following steps the source database is the database we are cloning from and the target database is the database we are cloning to.

1. To ensure that data will not be manipulated during the export, it is important to shut down the Banner Workflow environment. To shut down the Banner Workflow environment, stop the application server instance and the Workflow engine of the source Banner Workflow environment.

2. Take a database export of the source database. If a full export is not needed, an export of just the WORKFLOW schema will be sufficient. This schema is listed in the configuration.xml file as the WorkflowDataSource.

3. Upon completion of the export, restart the source Banner Workflow environment.

4. If you want to keep any of the existing work in the target Banner Workflow environment, a Banner Workflow export should be performed. To run an export, please review “Export the Current Banner Workflow System” on page 84. Here is an example on how to export:

105nner Workflow Technical Integration Guide | Database and Application Server Administration

Page 106: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

WORKFLOW_HOME/bin/export wfroot <password> WorkflowTargetExport.zip

5. Log onto the target's Banner Workflow environment as a user with admin rights. Navigate to the Technology Types page under Workflow System Administration. Click on the Banner Forms technology type to view the settings in this technology type. Take a screen capture or print this screen so it will be available for use in a future step to reset the technology type.

6. Stop the application server instance and the Workflow Engine on the target Banner Workflow Environment.

7. Roll the database export from step 2 into the target database.

8. From the target Banner Workflow Environment's WORKFLOW_HOME directory run “bin/wftool updateSystem" to synchronize the passwords between systems.

Note: This is very important because prior to this step the configuration that is in the database is the configuration for the source environment.

9. If desired you can overlay the export of your target environment on top of the newly cloned database. To do so please refer to “Import a File” on page 83. Here is an example on how to import:

WORKFLOW_HOME/bin/import wfroot <password> WorkflowTargetExport.zip

Note: In this step, errors are expected because there will be name collisions between the source system's data and the target system's data. Please review the errors that are provided to ensure that the expected workflow data is imported.

10. Start the target Banner Workflow environment.

11. Log on to the target Banner Workflow environment and go back to the Banner Forms technology type. Select the launch parameters link and ensure that all values are identical to the values in the screen capture or print out from step 5.

106nner Workflow Technical Integration Guide | Database and Application Server Administration

Page 107: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Client Administration

The Client Administration section contains information on the following topics:

• “Launch Services” on page 107

• “Desktop Application Deployments” on page 109

• “Java Web Start / Certificates” on page 110

• “Desktop.sct” on page 111

• “Internationalization” on page 111

Launch Services

A launch service determines how an interactive business component is started from the Worklist or Workflow Status page when associated with an activity in a workflow.

A business component can refer to a form, URL, rich client, or a service. Each type of component has its own logic code to determine how to start the component. A technology type is used to specify which launch service logic and is a required attribute for a business component. In addition, the technology type may define launch parameters that effect the start of the component. These launch parameters are shared by all components with that type.

Launch Services are categorized into either client or web, depending on where the actual launching occurs. In some cases, both a client and a web launcher may be defined for a specific component type. The workflow launcher checks the user’s preference when determining whether to pass control to either the web or client launch service.

Below are the bundled launch services that may be added to technology types in the Business Component Catalog:

Launch Service Name Type Description

com.sungardhe.workflow.launcher.BannerWebLauncher

Web Opens a Banner web form.

com.sungardhe.workflow.launcher.SimpleClientLauncher

Client Opens a generic desktop application.

107nner Workflow Technical Integration Guide | Client Administration

Page 108: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

All of these listed services are for interactive business components, and each is implemented for a specific type of rich client application or web page launch.

SimpleClientLauncher

The SimpleClientLauncher requires the launch parameter executable to be defined. Unlike automated activities, the executable parameter will not be treated as the identical name of the application to launch, but rather a virtual name. At runtime, the user may map this executable name to a physical program accessible from their desktop. Additionally, SimpleClientLauncher may take an unlimited number of optional parameters in the form: arg0, arg1, arg2, … argN, where the number after the arg prefix is used to mark the order that parameters are appended when forming the single executable string.

SimpleWebLauncher

The SimpleWebLauncher requires the launch parameter host to be defined, where the value for host is a valid URL. The URL is launched using an HTTP POST or GET and submits any launch parameters defined as part of the post data. SimpleWebLauncher defaults to using POST but this may be overridden by specifying a method launch parameter and setting the value to either GET or POST.

WorkflowawareClientLauncher

The WorkflowawareClientLauncher is defined the same way as the SimpleClientLauncher. The only difference is that the workflow application will not prompt the user to designate if the work item has been completed or not. It is the responsibility of the launched executable to handle workflow handshaking.

Banner Launchers

The Banner related launcher is described in the Banner Integration section of this handbook. See “Banner Integration” on page 45 for more information.

com.sungardhe.workflow.launcher.SimpleWebLauncher

Web Opens a custom web page.

com.sungardhe.workflow.launcher.WorkflowawareClientLauncher

Client Similar to SimpleClientLauncher except the user will not be prompted to disposition the work item.

Launch Service Name Type Description

108nner Workflow Technical Integration Guide | Client Administration

Page 109: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Built-in Launch Parameters

When building client or web launch parameters for a component, you can use the following built-in launch parameters to substitute runtime values into the launch:

Additionally, any component parameter name can be used to substitute a runtime value into a launch parameter. For example:

id=@student_id

In this example, ID is a launch parameter and Student ID is a component parameter that will be substituted into the ID value. Two examples of using parameterized substitutions can be found in WORKFLOW_HOME/examples/SimpleClientLauncher and WORKFLOW_HOME/examples/SimpleWebLauncher.

Desktop Application Deployments

It is important to ensure that the client machine has access to any desktop application that it might be prompted to launch from a work item.

@BUILTIN_DB_URL Substitutes the URL from the data source associated with the component’s product type.

@BUILTIN_DB_USERNAME Substitutes the user name from the data source associated with the component’s product type.

@BUILTIN_DB_PASSWORD Substitutes the password from the data source associated with the component’s product type.

@BUILTIN_WORKITEM Substitutes the value of the current work item key.

@BUILTIN_ORG_QUALIFIED_NAME

Substitutes the qualified name of the organization for the current workflow instance.

@BUILTIN_ORG_NAME Substitutes the short name of the organization for the current workflow instance.

@BUILTIN_ORG_MIF_CODE

Substitutes the associated MIF code if defined of the organization for the current workflow instance.

@BUILTIN_ORG_ID Substitutes the database primary key of the organization for the current workflow instance.

109nner Workflow Technical Integration Guide | Client Administration

Page 110: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Java Web Start / Certificates

Banner Workflow uses Java Web Start technology to extend the capabilities of the browser in the following areas:

• workflow graphical modeler

• desktop client launcher

• desktop application mapping

Java Web Start allows client-side java programs to be launched from a web application and run in Sun's Java Runtime Environment. Unlike applets, the launched programs run in their own client-side VM, and thus avoid JVM collisions with other applications (such as Banner) that rely on applets.

The jars for the client applications are initially downloaded the first time they are used; and may take some time depending on the speed of the network. Once downloaded, they are cached locally and subsequently load much faster. The client-side applications in Banner Workflow support version 5 of the Java Runtime Environment.

Signed Jars

Ellucian has signed each jar used by the client applications with a digital certificate that guarantees that the client code can not be maliciously modified. A digital certificate is used to prove the identity of the signer.

The Ellucian client applications require the user's permission to provide the following features:

• Starting work items that launch a program for the user.

• Storing the paths to executables used to launch client applications associated with components in the desktop.sct file.

Note: If you are using OpenSSL or a similar tool to act as your own certificate authority, you may need to register your SSL root certificate into the java keystore (typically the file {java home}/lib/security/cacerts). Both the java jre and java jdk include a utility called keytool for importing a private certificate into the keystore. Here is an example:

{java home}\bin\keytool –import –keystore {java home}\lib\security\cacerts –alias

my_certificate –file {certificate file}}

This is usually not an issue for certificates issued by public certificate authorities (such as VeriSign) since their root certificates are pre-installed with java. Please contact the ActionLine if you have any questions.

110nner Workflow Technical Integration Guide | Client Administration

Page 111: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Desktop.sct

Each component in the Business Component Catalog that launches a client application contains special client launch parameters. The parameters are hints for what application to launch and how to launch it. The parameters are usually specific to the launch service that is invoked. For example, a desktop application requires a client launch parameter named executable.

When you launch a work item locally, the launcher needs to run the executable that is associated with the work item's component. To do this, the launcher needs the path to the executable. To find this information, it first searches through a text file stored on your machine called desktop.sct. If it cannot find an entry for that executable path of the component, it will ask you to find the file that needs to be launched and then will add an entry in desktop.sct for that component.

The desktop.sct file can be found under the user's home directory in the .sctworkflow/config directory. For example, c:\Documents And Settings\aUser\.sctworkflow\config\desktop.sct. A desktop application mapping applet is available in the Launching section of the User Information page to edit the contents of the desktop.sct file.

The desktop.sct file is updated by Banner Workflow, however, if you need to edit this file manually so it can be distributed it to several users, it is important to use the following format for elements in the file:

wordpad=C\://WINNT//NOTEPAD.EXE

Internationalization

Locale information is read from the http header. This allows users access to Banner Workflow based on the locale/language/encoding preferences stored in their browser.

Note: By default, dates are displayed in a locale neutral format of DD-MMM-YYYY, where DD represents the day of the month, MMM is the three-letter abbreviation for the month, and YYYY is the year. It is possible to specify locale-based date formats by editing the dateFormats.*properties in the ApplicationResources*.properties files that control locale-specific messages.

Look and Feel

Banner Workflow is deployed with two different 'styles'; the standard workflow style, and a luminis style that is used for Luminis 4.x. The stylesheets are generated during deployment (or regenerated using the wftool updateSystem command).

111nner Workflow Technical Integration Guide | Client Administration

Page 112: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

The template stylesheet is found in WORKFLOW_HOME/css/wfstyle_template.css. It is a parameterized file. The values contained in WORKFLOW_HOME/css/wf_stylesheet_token_dictionary.txt are substituted into it to create the standard Banner Workflow stylesheet. The values in WORKFLOW_HOME/css/luminis_stylesheet_token_dictionary.txt are substituted into it to create a stylesheet used for Banner Workflow when it is embedded in a Luminis tab or launched from Luminis.

You can edit the values in the two token dictionary files to change Banner Workflow colors, etc.

In particular, you will want to edit the @defaultLuminisColor values if deploying to Luminis Platform 4. (Banner Workflow ships with the values set to match the default colors of Platform III.) The luminis_stylesheet_token_dictionary.txt contains commented lines describing how to switch between default Platform III and IV colors.

Note: For changes made to the token dictionaries to take effect, you must rebuild the ear file (wftool updateSystem), and redeploy it.

Note: If you customize the token dictionaries, you should back them up somewhere outside the WORKFLOW_HOME, as they may be overwritten during patching/upgrades. After applying a patch or upgrade, you should manually compare the replaced dictionaries with your copies, and update the new versions as needed.

112nner Workflow Technical Integration Guide | Client Administration

Page 113: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Banner Workflow Web Service

Banner Workflow provides a web service interface for integrating third party and custom applications into a workflow solution to retrieve work item context (parameter values), manipulate work item state, and post external events, as well as other operations.

A web service allows different machines to communicate over a network using existing web technologies. The Banner Workflow web service implementation adheres to standards defined in the WS-I Basic Profile 1.1 Specification. As such, Banner Workflow provides a Web Services Description Language (WSDL) file that defines the interface, binding, and location of the service.

The web service is developer friendly and will work equally well across different platforms. There are many tools that will take the wsdl file generated by Banner Workflow as input and create client stubs for exchanging messages. You can find examples of this in the WORKFLOW_HOME\examples\ws directory.

WSDL and SOAP Messages

Banner Workflow 8.x supports Web Services version 1.1.

The WSDL file for the workflow instance can be viewed from your web browser using:

URI: {protocol}://{hostname}:{port}/{webapp}/ws/services/WorkflowWS/v1_1?WSDL

Where:

The xml schema defining the messages passed to and from workflow is located in the messages.xsd file in the WORKFLOW_HOME/wsdl/v1_1/workflows directory, or you may access it from your web browser using:

URI: {protocol}://{hostname}:{port}/{webapp}/ws/wsdl/v1_1/messages.xsd

{protocol} Either http or https.

{hostname} The name of the machine or IP address of the workflow server.

{port} The port number that the workflow application is running on.

{webapp} The name of the deployed web application for the server.

113nner Workflow Technical Integration Guide | Banner Workflow Web Service

Page 114: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

The Banner Workflow web service messages are defined in a document/literal style. The xml traffic will appear more as pure messages than in a remote procedural call format. This style of message is well supported across both .NET and Java.

Endpoint

URI: {protocol}://{hostname}:{port}/{webapp}/ws/services/WorkflowWS/v1_1

Authentication and Authorization

Each workflow web service request requires an authentication element that takes a principal (logon id) and a credential (password).

For backward compatibility, you can invoke the web services with the wfwebservices account. This will invoke the service as a superuser, allowing any functionality to be invoked. You would typically do this when the invoker is an automated process of some kind.

The other way to invoke the web services is with a regular workflow user account. In this case, the user's roles will be used to check whether or not the user is authorized to invoke the functionality, just as if they were working through the GUI.

For automated processes where you simply want to invoke workflow operations as a superuser, you can continue to use wfwebservices, although it is recommended that you create a real workflow user account instead, and assign the necessary permissions to the account. For cases in which you are doing work on behalf of a real workflow user, it is highly recommended that you invoke the web service with that user's credentials.

Failure to authenticate with the workflow web service will result in a NotAuthorizedFaultDetail fault being thrown.

Operations

The Banner Workflow web service defines a set of operations uniquely identified by the type of xml message (request) that is received from the client. Once the operation has completed processing the request, a corresponding xml message (response) or fault will be returned as declared in the wsdl.

The following operations (messages) are included with Banner Workflow as part of the 1.1 web services:

114nner Workflow Technical Integration Guide | Banner Workflow Web Service

Page 115: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Data Passing:

State Manipulation:

Event Creation

Account Provisioning and Manipulation:

getWorkflowContext Returns the parameter names and values that are stored in the workflow.

setWorkflowContext Sets parameter names and values for a given workflow.

Note: Use caution when using setWorkflowContext web service as changing the value of a workflow context parameter can affect the functioning of the workflow.

getWorkItemContext Returns the parameter names and values that are stored in the work item.

setWorkItemContext Sets parameter names and values for a given work item.

completeWorkItem Marks the work item as complete. If successful, the workflow will transition to the next step in the workflow.

releaseWorkItem Releases the work item. The work item will be available again to any applicable work lists.

postExternalEvent Posts an external event. An external event is an event that occurs in a system outside of Banner Workflow, but maps to an event definition in the Banner Workflow system. Posting the event to the workflow system allows workflow to evaluate the event and start zero or more business processes based on the data contained in the event.

createUser Create a Banner Workflow user account.

updateUserAttributes Update a Banner Workflow user account.

getUserAttributes Get attributes of a Banner Workflow user account.

updateUserAuthenticationRequest Update a user's authentication method and details (internal/external).

deleteUser Remove a user account.

addRoleAssignmentForUser Add a role to a user.

115nner Workflow Technical Integration Guide | Banner Workflow Web Service

Page 116: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Please consult the wsdl and messages.xsd file for the specific makeup of the xml messages.

Usage Notes

For messages that manipulate a specific work item, a work item primary key (workItemPK) needs to be provided. Typically this would be passed to the business component process via a command line style argument. @BUILTIN_WORKITEM is a macro that may be supplied as the value of a launch parameter for dynamically substituting the current work item primary key.

The data passing operations (getWorkItemContext and setWorkItemContext) are useful for all types of business components that you will create yourself. These operations will read input, do processing, and finally write the output.

For example, if you needed to create a simple adder component, you could define an automated business component that takes two required numeric parameters., for example first and second, and returns a guaranteed numeric parameter sum representing the summation of the two input parameters. You would pass along @BUILTIN_WORKITEM as a launch parameter to pass the work item primary key. In writing the actual program, you would read the work item primary key as one of the command line arguments. Using the key, your program would fetch first and second using getWorkItemContext. The program would then compute the result of adding first and second. Finally, the program would send back the result as the value for sum using the setWorkItemContext message.

When creating custom automated activities, it is usually sufficient to set the component type to automated non-workflow aware. The server will use the return code of the launched process to automatically mark the work item complete or create an alert for error handling.

The state manipulation operations (completeWorkItem and releaseWorkItem) are especially handy for interactive web forms as they may correspond to the submit and cancel buttons traditionally present in a web form. The state manipulation operations are also useful for creating automated workflow-aware components if you need that level of control.

The postExternalEvent operation is useful for placing event triggers directly into your application without relying on database table triggers which may not be applicable. Note that events attempt to start business processes which in turn may start workflows and events, business processes, and workflows need to be aligned in order to successfully instantiate a workflow remotely. See “External Events” on page 129 for details on the information an external event must contain and how that information is used to evaluate the event within workflow.

findUsersWhoAreExternallyAuthenticated Return all externally authenticated users.

findUserByExternalId Find a user identified by a given ExternalId.

getExternalIDForUser Return the externalID for a specified user.

116nner Workflow Technical Integration Guide | Banner Workflow Web Service

Page 117: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

The workflow system is generally strongly typed. Parameter values that are passed using setWorkItemContext or postExternalEvent should use a specific xml type element (stringValue, booleanValue, dateValue, or numericValue) for properly representing a value. If the value is null, simply omit the value element since null is not considered to have a type. For postExternalEvent, you may optionally pass boolean, date, and numeric values as string values in string representation and allow the workflow system to determine the type.

Using the Workflow Web Services

This section provides examples of using the Workflow web services delivered with Banner Workflow. For additional examples, see the <Workflow Home>\examples\ws directory in your Banner Workflow installation.

Use the Workflow Web Services to Pass Static Data

You can use the Workflow web services to pass static data using a third-party HTTP tool such as SmartBear's SoapUI tool. The following code provides an example.

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:sungardhe:workflow:ws:messages:1.1">

<soapenv:Header/>

<soapenv:Body>

<urn:setWorkItemContext>

<urn:authentication>

<urn:principal>wfwebservices</urn:principal>

<urn:credential>password</urn:credential>

</urn:authentication>

<urn:workItemPK>

<urn:key>10424</urn:key>

</urn:workItemPK>

<urn:contextParameter>

<urn:name>approve_status</urn:name>

<urn:stringValue>Approved</urn:stringValue>

</urn:contextParameter>

<urn:contextParameter>

<urn:name>approver_comments</urn:name>

<urn:stringValue>Approved by President</urn:stringValue>

</urn:contextParameter>

</urn:setWorkItemContext>

</soapenv:Body>

</soapenv:Envelope>

117nner Workflow Technical Integration Guide | Banner Workflow Web Service

Page 118: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Create a Web Service Client in Java Using Eclipse

This example uses Java to invoke the Workflow web services. For example, you could use this approach to pass values based on a business login or to do batch processing.

Follow the below steps to create a web service client in Java using Eclipse:

1. Create a new Java project.

2. Change the perspective to Java EE.

3. Right click on the project and select New > Other.

4. In the Web Services section, select Web Service Client.

5. In the Service definition field, enter the WSDL URL.

Example: <protocol>://<workflow>:<port>/<webapp>/ws/services/WorkflowWS/v1_1?WSDL

6. Click Next.

7. Click Finish.

The code generated by Eclipse will have all the details required for you to start using the web services.

8. Create a new package (for example, com.workflow.webservice.client) and create a new Java class. This class will invoke the services.

9. Execute the class and verify the result.

The example class below invokes the setWorkitemContext service to set values to custom activity parameters.

Note: Set appropriate values for the variables USER_NAME, PASSWORD and WORKITEM_PK before executing the class.

package com.workflow.webservice.client;

import java.rmi.RemoteException;

import javax.xml.rpc.ServiceException;

import _1._1.messages.ws.workflow.sungardhe.Authentication;

import _1._1.messages.ws.workflow.sungardhe.CannotCompleteFaultDetail;

import _1._1.messages.ws.workflow.sungardhe.NameParameterValuePair;

import _1._1.messages.ws.workflow.sungardhe.NotAuthorizedFaultDetail;

import _1._1.messages.ws.workflow.sungardhe.NotFoundFaultDetail;

import _1._1.messages.ws.workflow.sungardhe.PrimaryKey;

import _1._1.messages.ws.workflow.sungardhe.UserAuthenticationMethod;

import _1._1.messages.ws.workflow.sungardhe.ValidationFault;

import _1._1.messages.ws.workflow.sungardhe.holders.PrimaryKeyHolder;

import _1._1.wsdl.ws.workflow.sungardhe.WorkflowWSLocator;

import _1._1.wsdl.ws.workflow.sungardhe.WorkflowWSPortType;

118nner Workflow Technical Integration Guide | Banner Workflow Web Service

Page 119: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

public class SetWorkitemContext {

private static final String USER_NAME = "<username>";

private static final String PASSWORD = "<password>";

private static String WORKITEM_PK = "<pk>";

public static void main(String[] args) {

try {

WorkflowWSLocator locator = new WorkflowWSLocator();

// use service object to invoke a specific service

WorkflowWSPortType service = locator.getWorkflowWS();

Authentication authentication = new Authentication(USER_NAME,

PASSWORD);

// Primary key of the workitem

PrimaryKey workItemPK = new PrimaryKey(WORKITEM_PK);

setWorkitemContext(service, authentication, workItemPK);

} catch (Exception e) {

e.printStackTrace();

}

}

private static void setWorkitemContext(WorkflowWSPortType service,

Authentication authentication, PrimaryKey workItemPK)

throws NotFoundFaultDetail, NotAuthorizedFaultDetail,

RemoteException, ServiceException {

NameParameterValuePair[] contextParameter = newNameParameterValuePair[2];

// create a context parameter holder for the first item on thecustom form

contextParameter[0] = new NameParameterValuePair();

// name should match the name of the control on the custom form

contextParameter[0].setName("approve_status");

contextParameter[0].setStringValue("Approved1");

// create a context parameter holder for the second item on thecustom form

contextParameter[1] = new NameParameterValuePair();

// name should match the name of the control on the custom form

119nner Workflow Technical Integration Guide | Banner Workflow Web Service

Page 120: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

contextParameter[1].setName("approver_comments");

contextParameter[1].setStringValue("Approved by President1");

service.setWorkItemContext(authentication, workItemPK,contextParameter);

System.out.println("Workitem context set...");

}

}

Create a Web Service Client Using a PL/SQL Procedure

With Oracle, you can write a Workflow web service client using a PL/SQL procedure. An example is provided in your Banner Workflow installation under <Workflow Home>\examples\ws\PLSQL\createuser. See the README.txt file in that directory for more information.

120nner Workflow Technical Integration Guide | Banner Workflow Web Service

Page 121: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Load Balancing and Clustering

Within Banner Workflow, Load Balancing and Clustering is used as a generic term for the configuration and technologies that allow the application to run in multiple JVMs on one or more servers to increase scalability, or provide redundancy in the case of a failure.

Clustering is used to refer to configuration and deployment options that allow the mid-tier application, the ear or war file, to be deployed to multiple WebLogic or Tomcat servers at once, and that allow the Workflow Engine to be deployed to multiple servers. Each deployment, similar to this, is referred to as a node.

Load Balancing refers to the configuration and deployment options that control how work is allocated between the deployed nodes. More specifically, Load Balancing generally refers to how incoming HTTP requests from a user interface are allocated to a node.

Clustering Overview

Banner Workflow attempts to remain vendor-agnostic in terms of how clustering is supported. Banner Workflow is designed so that both the mid-tier deployments (the ear or war file) and instances of the Workflow Engine can function safely without having directly configured knowledge of other instances. Therefore, from a single Workflow home, you can deploy the ear file to a second WebLogic Server instance (war file in case of Tomcat server) without making any changes to the first deployment.

When deploying to WebLogic Server, Banner Workflow does not require use of WebLogic clustering features. Use of these optional features is covered in the Oracle documentation.

Note: While you can deploy the Banner Workflow ear/war or Workflow Engine multiple times, the deployments must all be from a single Banner Workflow home, and you can install at most one Banner Workflow home per Banner installation/database. That home can be used to generate the ear or war file that can then be deployed to multiple servers in order to provide failover support and increased scalability for Banner Workflow.

Warning! Certain features used by Banner Workflow when deployed in a clustered configuration depend on the clocks on the host servers being closely synchronized. If the clocks on the host servers are not accurate, then locking mechanisms within Banner Workflow that prevent nodes from conflicting with each may fail.

121nner Workflow Technical Integration Guide | Load Balancing and Clustering

Page 122: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Load Balancing Overview

Load Balancing when Banner Workflow is deployed in a clustered configuration involves both internal load balancing of asynchronous work, such as sending communications or calculating population lists, and balancing of client user interface requests.

Load balancing or failover of asynchronous work assumes that the Banner Workflow nodes are roughly equal in capacity. Most of the tuning parameters, such as thread pool size, are global parameters and apply to all nodes equally. In cases where asynchronous work cannot be performed by more than one actor at once, for example polling a POP3 server for incoming email replies, a global locking mechanism is used where each node will attempt to do the work, but the first node to do so will continue to perform the work exclusively with other nodes periodically checking to ensure that the first node is still alive. If the node performing exclusive work is taken offline, planned or otherwise, one of the remaining nodes will automatically assume the work after a specified grace period.

Incoming http requests must be balanced across the multiple Banner Workflow instances deployed in two or more application servers. There are multiple ways of accomplishing this and full procedures will depend on a school's chosen technology to load-balance web traffic, and even within a given technology configurations can differ greatly.

Banner Workflow has been tested with two load-balancing strategies that have been selected to be compatible with other Ellucian products and flexible in where the loadbalancing hardware/software is installed, behind a school's firewall or in the DMZ for example.

All client traffic to Banner Workflow, whether from the user interface, the modeler, or the administrative utilities, such as import/export, goes over http/ https, and is designed to go to a single endpoint. In this case the end point will be the load balancer and is defined via the WebApplication Location element in the Configuration.xml file.

For WebLogic, the software load balancing solution tested used Oracle HTTP Server (OHS), part of the Forms, Reports & Discover or Web Tier Utilities installation, along with the included mod_wl_ohs module in order to load balance requests across Banner Workflow installations. The solution works with or without SSL-termination at the OHS. It is recommended to use SSL terminated at OHS, that is, the SSL certificate is maintained in OHS and Banner Workflow requests from a client browser go over SSL to OHS, but then switch to HTTP from OHS to the WebLogic server. This configuration minimizes certificate maintenance.

The OHS solution works both with and without the use of WebLogic clustering support, although per Oracle documentation, dynamic discovery of WebLogic Servers by OHS requires use of WebLogic clustering.

The second load balancing solution for Banner Workflow was tested using an F5 BIG-IP load balancer configured to use cookie-based persistence.

For Tomcat, the software load balancing solution tested used Apache HTTP Server.

122nner Workflow Technical Integration Guide | Load Balancing and Clustering

Page 123: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

HTTP Load Balancing

When a user interacts with Banner Workflow, a stateful web session in the application server running Banner Workflow is established. Once authenticated, all further requests from the user must be sent to the same application server instance. If this does not occur, the user interface will react as if the user were disconnected, as Banner Workflow does not support replication of a session state across multiple application server instances.

Note: In the event that an application server goes offline, any users having sessions in that instance will have to re-authenticate to have a new session on the remaining application server(s). Banner Workflow does not support the transparent failover of existing user sessions.

The load balancing technology and strategy must therefore support session persistence. Banner Workflow supports cookie-based session persistence, as long as the cookie is passed on to the application server where the Banner Workflow application can also access it.

When using OHS or Apache HTTP Server to perform load balancing, the JSESSIONID cookie is used by OHS or Apache HTTP Server to implement session persistence.

When using an F5 BIG-IP load balancer, you can select the name of the cookie to use for session persistence. In this case, there will be both a JSESSIONID cookie, and an BIG-IP cookie.

Deploy Banner Workflow to Multiple WebLogic or Tomcat Servers

Banner Workflow can be deployed in clustered mode simply by following the instructions for creating a WebLogic server (or Tomcat server), and creating two servers, on different hosts if desired, then manually deploying the ear (or war file in case of Tomcat) to each server. WebLogic contains additional features around clustering that may simplify deployment, such as allowing a single ear deployment to be targeted to multiple WebLogic servers at once. Banner Workflow does not require these features as they are administrative conveniences only.

Note: Please ensure that any WebLogic features you use have been properly licensed.

Banner Workflow contains internal checks that will compare the release version of the ear or war to a versioning table in the database. If there is a mismatch, the application will refuse to start. This prevents the ear from being deployed to run against the wrong database.

Warning! Certain features used by Banner Workflow when deployed in a clustered configuration depend on the clocks on the host servers being

123nner Workflow Technical Integration Guide | Load Balancing and Clustering

Page 124: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

closely synchronized. If the clocks on the host servers are not accurate, then locking mechanisms within Banner Workflow that prevent nodes from conflicting with each may fail.

Deploy Multiple Instances of the Workflow Engine

To increase scalability and provide failover support, you can run multiple instances of the Workflow Engine.

The Workflow Engine is a java program that runs in a regular java VM. An installed Banner Workflow system can make use of multiple engine instances, each running in its own VM, on one or more servers in order to provide scalability and transparent failover.

Warning! Certain aspects of running multiple nodes, such as transparent failover of work, require time-based checks of records. It is critical that the system clock on any server any engine node is deployed on is accurate. If multiple engine nodes are run on servers that have their system clocks out of sync, failover and workflow metrics may not work as well as expected, or may result in inaccuracies.

The engine instances that are installed are controlled by one or more “named” engine configurations. Each engine configuration specifies, among other things, the port that the engine runs on, and the size of its thread pools.

For each engine instance that will be running, the <Engines> element in the configuration file must contain an <EngineInstance> element listing that instance. The <EngineInstance> elements are used by each application server node to locate running engines that they can forward requests to. When a request that requires the use of an engine instance is received by the application server, it will automatically select a running engine from the list of known engines from the <EngineInstance> list to forward the request to.

If an engine instance is not running, the system will automatically try to forward the request to another instance, until it either finds a running instance or no more instances are available in the list. The system will also periodically check instances from the <EngineInstance> list that are not running to see if they have been started. So the system as a whole can automatically respond to individual engine instances being started or stopped. However, the check to see if an engine instance in the list has been restarted can cause occasional delays to user requests. Therefore, if you permanently remove an engine instance, you should also remove its <EngineInstance> element in the configuration. Only engine instances that you intend to always have running, barring unanticipated failures or routine maintenance, should be listed in an <EngineInstance> element.

Each engine instance acquires the configuration from the database when the instance is started, so the configuration in the database must be up to date. To ensure that the configuration is up to date, you can run bin/wftool uploadconfig after any configuration changes and before starting an engine instance.

124nner Workflow Technical Integration Guide | Load Balancing and Clustering

Page 125: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Please ensure that each <EngineInstance> element refers to the hostname of the server running the engine, not just “localhost.” This applies even if you are only running the default engine instance. By default, the engine instance element for this is 'localhost', so you should change it to the actual name of the server WORKFLOW_HOME is on if you are using clustering.

Install additional Workflow Engines

There are three aspects to configuring a multi-engine instance system:

• Providing configuration information to each engine instance.

• Deploying each engine instance.

• Making the system aware of each instance.

Each engine instance that runs is controlled by an engine configuration. An engine configuration is a named section of the configuration file that tells an engine what port to run on, as well as how to size its thread pools. It is not necessary to have a separate named engine configuration for each engine instance, as multiple instances can use the same configuration, as long as they are deployed to different hosts so that they can run on the same port. The only time you need to provide multiple configurations is if you need engine instances to run on different ports, or want them to use different sized thread pools. You can edit, copy, and delete engine by editing the configuration file and then use bin/wftool uploadconfig to upload the changes.

During installation, a default engine node is installed to the engine directory under WORKFLOW_HOME. This default node will use the default engine configuration. By default, the configuration contains an <EngineInstance> element pointing to this engine. If you do not intend to run this engine instance, delete the <EngineInstance> element pointing to it, and replace it with one pointing to your engine's location.

To deploy an engine instance to a separate location, perform the following steps:

1. Select the server to which you will deploy the new engine instance. The server must have a minimum of Java 6 VM installed. Decide which engine configuration this instance will use. Edit the configuration or add a new engine configuration if necessary.

2. Edit the configuration and add an EngineInstance for the new engine, specifying the server you have chosen to deploy to and the named engine configuration the instance will use.

3. Run bin/wftool uploadconfig to store the configuration changes in the database.

4. On the server you wish to deploy the new engine instance on, create a directory to hold the engine. Copy the engineinstaller.jar from WORKFLOW_HOME/dist to this directory.

5. Unzip the engineinstaller.jar file to your selected directory. You can delete the engineinstaller.jar file after you have extracted it.

125nner Workflow Technical Integration Guide | Load Balancing and Clustering

Page 126: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

6. Finish the engine deployment by setting it up with the correct configuration. To do so, run java -jar installer.jar <configname>. This will configure this engine instance to use the engine configuration “configname.” If a named configuration is not supplied, the installer will default to using the “default” configuration.

Note: The installer obtains this information from the configuration stored in the database, so the database must be running and must contain an up to date copy of the configuration for this step to work.

After you provide the configuration, the installer will create a bin directory and place a startengine and engineconsole script in it. The startengine script will start an instance of the engine using the configuration you chose. The engineconsole script will allow you to control this and other engine instances. If you want to change the configuration this instance uses, you can run java -jar install.jar <configname> again to recreate the scripts.

7. Start the new engine instance. If the application server nodes have not been restarted since you added <EngineLocation> lines to the configuration, you must restart them in order for them to see the new engine node.

Example

Assume that we have completed a Banner Workflow installation on server myhost1.myschool.edu and are running the default engine instance that was installed under WORKFLOW_HOME on myhost1. Now we want to install and use a second engine instance on myhost2.myschool.edu. We want the second instance to be identical to the first, running on the same port and using the same size pools, etc.

First, we need to make the Banner Workflow system aware of the second engine instance. We must edit the configuration file and add a new engine location, specifying myhost2.myschool.edu as the host, and “default” as the configuration. This tells the Banner Workflow system that it can expect a second Workflow Engine instance to be running on myhost2.myschool.edu, and that instance uses the “default” configuration. This allows the Banner Workflow system to locate the instance and forward requests to it.

For example, the EngineLocations element would now be as follows:

<EngineLocations>

<EngineInstance host="myhost1.myschool.edu" config="default"/>

<EngineInstance host="myhost2.myschool.edu" config="default"/>

</EngineLocations>

Next we will run bin/wftool uploadconfig to load the updated configuration to the database.

We will then create an engine directory on myhost2 and copy the engineinstaller.jar file to the directory. We would extract the contents of engineinstaller.jar file and complete the engine installation with java -jar installer.jar default.

126nner Workflow Technical Integration Guide | Load Balancing and Clustering

Page 127: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

We would then start the new engine instance with the bin/startengine script that was created, and restart the application servers hosting Banner Workflow so that they see the changed configuration and can begin forwarding requests to the new engine instance.

Note: Once an engine node is installed, you can alter the properties of the node by changing the configuration and uploading the changes to the database, then restarting the engine node. The only time you need to re-generate the engine installer and unzip it to all engine directories is if you change the database.properties file. In this case, it is necessary to use bin/wftool updateSystem to rebuild all artifacts, to re-create the installer with the encrypted database connection information, and re- install each engine node. You will also have to re-install any nodes except the default node after applying a patch.

HTTP Load Balancing with an F5 BIG-IP

Note: The discussion below is for WebLogic. The considerations for Tomcat are the same.

Banner Workflow can be deployed behind an F5 BIG-IP load balancer, with the Banner Workflow ear file deployed to multiple WebLogic servers, on the same physical/ virtual host or different hosts. It is recommended that SSL be used, but that SSL be terminated at the load balancer. The Virtual IP for Banner Workflow must be configured to use Cookie persistence type, with HTTP Cookie insert for the method. The Cookie name should be unique to the Banner Workflow Virtual IP, and must be provided to the system administrator responsible for Banner Workflow to properly configure Banner Workflow. The expiration setting for the cookie should be longer than the web session timeout configured for Banner Workflow. It is recommended the expiration for the cookie be at least twice the web session timeout.

To have the Banner Workflow Modeler function correctly when BIG-IP is used, you must configure the modeler with the name of the BIG-IP persistence cookie. This is done by adding a <ReplicateCookies> element to the <JavaWebStart> element in the Configuration.xml file. For example, the following tells the modeler that the BIG-IP is maintaining session persistence with a Cookie named wfcookie, and that when the modeler is launched, it should send a cookie with the same value:

<ReplicateCookies>

<CookieName>wfcookie</CookieName>

</ReplicateCookies>

Note: It is recommended that the BIG-IP cookie expiration be set higher than a user is expected to leave any part of the Banner Workflow UI in an idle state.

127nner Workflow Technical Integration Guide | Load Balancing and Clustering

Page 128: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

HTTP Load Balancing with Oracle HTTP Server (OHS)

Oracle HTTP Server (OHS) can be used to load balance HTTP requests to Banner Workflow. For full details, please consult the Oracle documentation on OHS and the mod_wl_ohs configuration. You should also ensure that your Oracle license allows you to use the desired features.

To use OHS for load balancing, configure mod_wl_ohs with a Location matching the Location element from the WebApplication element in the Configuration.xml file.

For example, assuming you are using Oracle Enterprise Manager to configure OHS, login to Enterprise Manager, navigate to the ohs instance under the Web Tier folder in the left- hand navigation pane, and select Administration->mod_wl_ohs Configuration from the Oracle HTTP Server drop-down menu.

Assuming that your OHS installation is on server1.myschool.edu, and is serving SSL requests on port 443, and that you want Banner Workflow to be accessible at https://server1.myschool.edu/workflow_prod. In the mod_wl_ohs configuration, add a Location row with the Location set to /workflow_prod, and in the WebLogic Cluster field, list the servers that host the Banner Workflow application. For example, if the Workflow ear is deployed to WebLogic instances running on port 7102 on hosts appserver1 and appserver2, you can put appserver1.myschool.edu:7102,appserver2:myschool.edu:7102 in the WebLogic Cluster field.

In the Banner Workflow Configuration.xmlfile, you would configure the WebApplication Location element to the OHS endpoint, for example:

<WebApplication>

<Location protocol="https" host="server1.myschool.edu" port="443" root="workflow_prod"/>

</WebApplication>

HTTP Load Balancing with Apache HTTP Server

See “Configure Apache HTTP Server for Use with Banner Workflow” on page 27.

128nner Workflow Technical Integration Guide | Load Balancing and Clustering

Page 129: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

External Events

An external event is an instance of an event that originates outside of Banner Workflow and can be mapped to a Workflow Event. An external event can be posted to a Banner Workflow system, which causes Banner Workflow to persistently record the details of the event and queue it for evaluation. Zero or more workflows will be started as a result of evaluating the external event.

Consumption of external events by a workflow system is divided into two distinct phases, with certain responsibilities involved in each phase. In the first phase, an event provider posts the external event to the workflow system. During the post, Banner Workflow will persistently store a copy of the external event, and schedule it for evaluation. Once the post succeeds, the event provider will consider the external event to have been handled, and is no longer responsible for the external event in any way.

Note: The event provider has no knowledge of whether the external event evaluates successfully or not. The only responsibility of the event provider is to notify Banner Workflow of the existence of the external event and the data contained within it.

A successful post means that Banner Workflow is guaranteed to evaluate the event at some future point, but makes no guarantee as to when that will happen or the exact order in which it will occur, since external events are not guaranteed to be processed exactly in the order in which they originate in the external system. In practice, in a well-tuned system event evaluation will occur within seconds of a post.

External events may be posted to Banner Workflow by Ellucian delivered event provider classes, such as the BannerTableExternalEventProvider, or they may be posted by custom code via Web Service interfaces to the ExternalEventService. The ExternalEventService is responsible for persistently storing the details of the event, detecting duplicate events, and scheduling posted events for evaluation by an engine node.

To simplify development of custom code that posts external events to Banner Workflow, Banner Workflow itself takes responsibility for detecting and rejecting duplicate events. This allows multiple event providers to be run for the same external event source without the providers themselves having to provide a mechanism to screen out duplicate events. For example, if the source of events is a JMS topic, you can have two programs subscribe to the same topic, both feeding the same events to Banner Workflow in order to provide transparent failover. Banner Workflow will automatically reject the duplicates from the second provider.

The second phase is the evaluation phase. During the evaluation phase, a workflow engine node evaluates the posted event, and starts zero or more workflows on its behalf, or, if errors are encountered, raises the appropriate alerts to the administrator of the Banner Workflow system. Any errors encountered during event evaluation must be dealt with within the Banner Workflow system. The event cannot be re-posted from the external system, since Banner Workflow will recognize it as a duplicate and reject it. Banner Workflow provides various pages to monitor the state of external events that have been posted, as well as to replay ones that have encountered errors. Banner Workflow also

129nner Workflow Technical Integration Guide | External Events

Page 130: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

maintains a log of event evaluation details for successful evaluations that can be accessed via the user interface.

The evaluation is either successful, and all workflows that are supposed to start do so, or all work is rolled back, and an alert condition is raised for the event. At this point, a workflow administrator or analyst can correct the problem, and request the event to be evaluated again, without any fear of starting duplicate workflows.

External Event format

In order to successfully post to the Banner Workflow system, an external event must contain several pieces of information.

For Banner Workflow to detect duplicate events, each external event must have a unique ID. This unique ID is actually a 2-part key consisting of a source ID and an external ID, both of which are strings of up to 255 characters. The source ID is a name used to uniquely identify an external system, for example, BannerProduction. The external ID is then an ID for the external event instance in that external system. The external ID should be unique for each event instance produced by the system identified by source ID. This allows Banner Workflow to uniquely identify every event instance posted from any external system.

Note: If you are posting events from an external system that does not or cannot provide unique IDs for events, then Banner Workflow cannot guard against evaluating the same event more than once, and the custom code posting the events must ensure that each event instance is posted exactly once.

In addition to the source ID and external ID needed to identify the event, the external event must also carry the name and product type of the Workflow Event it maps to. This is the event as defined in the Banner Workflow system, and that is mapped to processes and workflow definitions with guard conditions, and determines what workflows, if any, should start as a result of the event.

The external event may optionally specify a name for any workflow instances that are started as a result of the event.

The external event can contain any number of name/value pairs containing information specific to the event that will be used in guard condition evaluation and/or passed on to the workflow as initial context data.

The Web Services interfaces require that typed values be passed for the parameters. However, to maintain backward compatibility, and to support systems that cannot provide type information with the parameters, all of the parameters can still be passed as string representations (using Text) type for the value. When the Banner Workflow system attempts to evaluate the event, it will automatically attempt to convert incoming Text values to the type defined on the parameter in the event.

130nner Workflow Technical Integration Guide | External Events

Page 131: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Authentication

Banner Workflow provides support for integrating with some external systems for authenticating users. When configured to use external authentication, Banner Workflow can delegate the process of authenticating a user's identity and credentials to an external system.

By default, within Banner Workflow a user account is identified by a unique logon ID and protected by a securely stored password. The account contains all of the user's roles and preferences within the Banner Workflow application.

When external authentication is configured, any Banner Workflow account may be designated as externally authenticated. The enabled, effective dates, roles, and preferences for the Banner Workflow account will still be stored in Banner Workflow, but the user's password will not be. Instead, when a user attempts to logon to the system, the authentication process will be delegated to the external authentication service (EAS). If a user successfully authenticates with the EAS, then they will be logged into Banner Workflow with their associated roles.

Since accounts can be individually marked as being externally authenticated, you can still create local accounts that authenticate against Banner Workflow directly. For example, it may be useful to have local admin accounts when setting up and configuring Banner Workflow, while the majority of the user accounts are set for external authentication.

Note: An externally authenticated user will not be able to log into Banner Workflow if the EAS configuration is incorrect, or if the EAS is not running.

Since externally authenticated users will logon to Banner Workflow with their external username and password, Banner Workflow must provide a mechanism to link the external account with the Banner Workflow account. This is accomplished by setting the external ID on the Banner Workflow account to a value that can be used to uniquely link the account to a user in an external system. The actual value needed in the external ID will vary depending on the type of external authentication being used.

When a user attempts to logon to Banner Workflow, the system will evaluate the logon in the following order:

1. Does the username represent a built-in account (e.g. wfroot)? If so, authenticate as a built-in account.

2. Does the username identify an internal user account? If so, authenticate as an internal user.

3. Otherwise, if external authentication is enabled, delegate to the EAS.

This has several important consequences. If a user account is externally authenticated, then the logon ID specified in the Banner Workflow account is meaningless for logon purposes; an externally authenticated user must logon to Banner Workflow using their username/password from the external system.

131nner Workflow Technical Integration Guide | Authentication

Page 132: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Furthermore, since Banner Workflow gives precedence to internal accounts, an internal account having a logon ID equal to the username of an external account will always block the external user from logging in.

For example, consider two workflow accounts. The first is internal and has a logonID=jsmith.

If there is a separate external user with (external) username jsmith, the external user can never logon to Banner Workflow, since Banner Workflow will always treat a username of jsmith as identifying the internal account.

For this reason, Ellucian recommends that limit your use of internal accounts as much as possible if you are taking advantage of external authentication. If possible, use a unique prefix not present in the username of any external accounts (e.g. “workflow-”) on all internal account logonIDs to minimize the risk of overlap.

Banner Workflow currently ships with support for two different external authentication modes:

• Banner / Oracle authentication

• LDAP version 3

Note: You can only configure Banner Workflow to use a single mode of external authentication.

To enable external authentication, you need to edit the <ExternalAuthenticator> element under <SecurityIntegration> in the configuration.xml file. For more information, see “configuration.xml” on page 91.

After you configure the <ExternalAuthenticator> element, you can test it on the server by using the checkexternalauth script. Give this script a valid username and password in the external system, and it will attempt to authenticate it the same way Banner Workflow would if that account was mapped to a Banner Workflow user. For example:

bin/checkexternalauth jsmith password

External Authentication

Before selecting and configuring an external authentication mechanism, it is helpful to understand how Banner Workflow proceeds when authenticating an external user.

At the start of the sequence, workflow has been presented with a username/password pair (for the external system), and must perform two tasks:

1. Verify that the password is correct for the username (the actual authentication part).

2. Determine which Banner Workflow user is identified by the external username.

Because the username in the external system may be mutable, it is desirable to be able to ‘link’ a Banner Workflow User to an external user on some immutable value. On the

132nner Workflow Technical Integration Guide | Authentication

Page 133: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Banner Workflow user, this value is stored in the externalID field (sometimes this is also referred to as the ‘linking attribute.’)

Note: In the Banner Workflow UI, the externalID field is the box under the External Authentication option on the User Management screen.

The actual value used to link the accounts varies depending on both the external authentication mechanism, and how accounts are stored in the external system. Ideally, the externalID should link the accounts on an immutable value, so that there are no account synchronization issues.

Banner Authentication

This method of external authentication uses the username and password presented to Banner Workflow to open a connection to the database specified in the <BannerDataSource> element under <Deployment>. If the external ID and password can successfully open a connection, the user is considered to be valid, otherwise, the user is rejected. The username is used as the externalID to identify the Banner Workflow account. (That is, if you use Banner Authentication and successfully authenticate as 'jsmith', Banner Workflow will log you in as the Banner Workflow user having externalID=jsmith. You should use this method of external authentication when your Banner Workflow users are also Banner users, and you are not integrating Banner Workflow with Luminis, and want to avoid having to keep Banner Workflow and Banner passwords in sync.

To enable the Banner authenticator, edit the <ExternalAuthenticator> element under <SecurityIntegration>. Set the <ClassName> element to com.sungardhe.workflow.security.BannerAuthenticator. You do not need to set any properties for this authenticator.

For example:

<Authentication mode="WorkflowExternal">

<WorkflowExternal>

<ExternalAuthenticator>

<ClassName>com.sungardhe.workflow.security.BannerAuthenticator</ClassName>

<Properties/>

</ExternalAuthenticator>

</WorkflowExternal>

LDAP Support

For Banner Workflow to be able to authenticate against LDAP, it must be able to translate a username into the Distinguished Name (DN) of a user in the Directory Service, authenticate using the provided password, then use an attribute of the LDAP account to identify the corresponding Banner Workflow account for the user.

133nner Workflow Technical Integration Guide | Authentication

Page 134: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Search for Luminis 4.x

When using LDAP Authentication, Banner Workflow will use the username presented during logon to execute an LDAP search to find the user's account in the LDAP Server. The user accounts can be in the same container, or stored in separate containers.

For example, suppose we have users stored in LDAP in two different containers, one for finance users and one for human resources users. Also assume a Luminis Platform 4 layout in which users are assigned a unique, immutable ID (uid) that is part of their distinguished name, and that their username (that they logon to systems with) is stored in a logonID attribute.

o=myschool|

o=people|

--------------------------------------------| || |

o=finance o=hr| |

uid=12345 uid=56789logonID=johnsmith logonID=joansmith

The following must be true:

• The subtree containing all external users that need to logon to Banner Workflow must be anonymously searchable, or you must create a dedicated (LDAP) account that Banner Workflow can use to search the subtree.

and

• It must be possible to locate each user from a query into which the username has been substituted.

In the above example, the subtree searched is o=people, o=myschool. Assume that the tree is not anonymously searchable, but that an account uid=wfsearcher, o=myschool with a password of password has been created and given permission to search the o=people, o=myschool subtree.

Since we are referring to a Luminis Platform 4 environment, the usernames are stored in the logonID attribute, and the uid attribute contains the immutable identifier for the user. In this case, the uid attribute is the best choice for the 'link attribute' to link the LDAP account to a Banner Workflow user, as it won't ever change.

If johnsmith and joansmith are both workflow users, then we would create their accounts in workflow, and give them externalIDs of 12345 and 56789, respectively.

To configure Banner Workflow to use external authentication in this case, the <ExternalAuthenticator> element is configured as follows:

<Authentication mode="WorkflowExternal">

<WorkflowExternal>

<ExternalAuthenticator>

134nner Workflow Technical Integration Guide | Authentication

Page 135: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

<ClassName>com.sungardhe.workflow.security.LDAPSearchAuthenticator</ClassName>

<Properties>

<Property name=”java.naming.factory.initial”value=”com.sun.jndi.ldap.LdapCtxFactory”/><Property name=”java.naming.provider.url” value=”ldap://myschool.myhost.edu:389”/><Property name=”directory.user”value=”uid=wfsearcher,o=myschool”/><Property name=”directory.user.password”

value=”password”/><Property name=”search.directory”

value=”o=people,o=myschool”/><Property name="search.filter"value="(|(pdsLoginId={0})(pdsLoginAlias={0}))"/>

<Property name="link.attribute" value="uid"/></Properties></ExternalAuthenticator>

In the above example:

<ClassName> Tells the system what external authenticator to use, in this case, the authenticator implemented by the com.sungardhe.workflow.security.LDAPSearchAuthenticator class.

<Properties> Defines a collection of name-value pairs used to configure the LDAPMappingAuthenticator.

java.naming.factory.initial Defines the context factory to use, and should not be changed except on the advice of Ellucian.

java.naming.provider.url Defines the url to your LDAP server. In the example above, the authenticator will connect to server myschool.myhost.edu on port 389.

directory.user The distinguished name of an LDAP user that has permissions to search the search directory.

directory.user.password

The password of the LDAP user that has permissions to search the search.dn tree.

search.directory The distinguished name of the entry at the top of the subtree that contains all the users that need to authenticate within Banner Workflow.

search.filter An LDAP search filter, expressed as described in javax.naming.directory.DirContext, that should be executed to find the LDAP account. The username presented to workflow for authentication will be substituted anywhere '{0}' occurs.

135nner Workflow Technical Integration Guide | Authentication

Page 136: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Now when johnsmith attempts to logon to Banner Workflow using johnsmith as his username, Banner Workflow will logon to the Directory Server as uid=wfsearcher, o=myschool and search the o=people, o=myschool tree using the search filter ‘(logonID=johnsmith)’. It will find the unique entry uid=12345, o=finance, o=people, o=myschool, which represents John Smith's LDAP account, and then will attempt to bind to LDAP as uid=12345,o=finance,o=people,o=myschool using the password he presented at logon. Assuming he provided the correct password, the bind will be successful. Banner Workflow will next extract the value of the link.attribute (in this case, uid) from the LDAP entry, then search for a Banner Workflow account having the uid value (12345) as the externalID. At this point, Banner Workflow has successfully authenticated the user, and identified his account within Banner Workflow.

Note: If there were also a uid=98765, o=hr, o=people, o=myschool, with logonID=johnsmith, the logon would fail, as the search would find two separate LDAP accounts identified by the johnsmith username.

Note: The LDAPSearchAuthenticator uses JNDI to access the Directory Server, and will pass any properties defined in the <Properties> element into the JNDI InitialContext object used to make the connection. Consequently, any other JNDI properties you may wish to pass to the JNDI context may be set here.

Search for Luminis 5.x

When using LDAP Authentication, Banner Workflow will use the username presented during logon to execute an LDAP search to find the user's account in the LDAP Server. The user accounts can be in the same container, or stored in separate containers.

For example, suppose we have users stored in LDAP in two different containers, one for finance users and one for human resources users. Also assume a Luminis 5 layout in which users are assigned a unique login ID (uid).

o=myschool|

o=people|

--------------------------------------------| || |

o=finance o=hr| |

udcid=40B35A4C2DB60C11E0440003BA9B2B5B udcid=40B35A4C2DB60C11E0440003BA9B2B5ClogonID=johnsmith logonID=joansmith

link.attribute The name of the LDAP attribute on the found account that links the LDAP user to a Banner Workflow user. (Matches the externalID field of a Banner Workflow user.)

136nner Workflow Technical Integration Guide | Authentication

Page 137: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

The following must be true:

• The subtree containing all external users that need to logon to Banner Workflow must be anonymously searchable, or you must create a dedicated (LDAP) account that Banner Workflow can use to search the subtree.

and

• It must be possible to locate each user from a query into which the username has been substituted.

In the above example, the subtree searched is o=people, o=myschool. Assume that the tree is not anonymously searchable, but that an account uid=wfsearcher, o=myschool with a password of password has been created and given permission to search the o=people, o=myschool subtree.

Since we are referring to a Luminis Platform 5 environment, the user ids are stored in the uid attribute, and the udcid attribute contains the immutable identifier for the user. In this case, the udcid attribute is the best choice for the “link attribute” to link the LDAP account to a Banner Workflow user, as it won't ever change.

If johnsmith and joansmith are both workflow users, then we would create their accounts in workflow, and give them externalIDs of 40B35A4C2DB60C11E0440003BA9B2B5B and 40B35A4C2DB60C11E0440003BA9B2B5C, respectively.

To configure Banner Workflow to use external authentication in this case, the <ExternalAuthenticator> element is configured as follows:

<Authentication mode="WorkflowExternal">

<WorkflowExternal>

<ExternalAuthenticator>

<ClassName>com.sungardhe.workflow.security.LDAPSearchAuthenticator</ClassName>

<Properties>

<Property name=”java.naming.factory.initial”value=”com.sun.jndi.ldap.LdapCtxFactory”/><Property name=”java.naming.provider.url” value=”ldap://myschool.myhost.edu:389”/><Property name=”directory.user”value=”uid=wfsearcher,o=myschool”/><Property name=”directory.user.password”

value=”password”/><Property name=”search.directory”

value=”o=people,o=myschool”/><Property name="search.filter"value="(uid={0})"/>

<Property name="link.attribute" value="udcid"/></Properties></ExternalAuthenticator>

137nner Workflow Technical Integration Guide | Authentication

Page 138: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

In the above example:

Now when johnsmith attempts to logon to Banner Workflow using johnsmith as his username, Banner Workflow will logon to the Directory Server as uid=wfsearcher, o=myschool and search the o=people, o=myschool tree using the search filter ‘(uid=johnsmith)’. It will find the unique entry uid=johnsmith, o=finance, o=people, o=myschool, which represents John Smith's LDAP account, and then will attempt to bind to LDAP as uid=johnsmith,o=finance,o=people,o=myschool using the password he presented at logon. Assuming he provided the correct password, the bind will be successful. Banner Workflow will next extract the value of the link.attribute (in this case, udcid) from the LDAP entry, then search for a Banner Workflow account having the udcid value (40B35A4C2DB60C11E0440003BA9B2B5B) as the externalID. At this point, Banner Workflow has successfully authenticated the user and identified his account within Banner Workflow.

<ClassName> Tells the system what external authenticator to use, in this case, the authenticator implemented by the com.sungardhe.workflow.security.LDAPSearchAuthenticator class.

<Properties> Defines a collection of name-value pairs used to configure the LDAPMappingAuthenticator.

java.naming.factory.initial Defines the context factory to use, and should not be changed except on the advice of Ellucian.

java.naming.provider.url Defines the url to your LDAP server. In the example above, the authenticator will connect to server myschool.myhost.edu on port 389.

directory.user The distinguished name of an LDAP user that has permissions to search the search directory.

directory.user.password The password of the LDAP user that has permissions to search the search.dn tree.

search.directory The distinguished name of the entry at the top of the subtree that contains all the users that need to authenticate within Banner Workflow.

search.filter An LDAP search filter, expressed as described in javax.naming.directory.DirContext, that should be executed to find the LDAP account. The username presented to workflow for authentication will be substituted anywhere '{0}' occurs.

link.attribute The name of the LDAP attribute on the found account that links the LDAP user to a Banner Workflow user. (Matches the externalID field of a Banner Workflow user.)

138nner Workflow Technical Integration Guide | Authentication

Page 139: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Note: If the users in Luminis 5 do not have the udcid attribute (this happens when Luminis is not integrated with Banner), then the attribute cn can be used as the link attribute.Example: <Property name="link.attribute" value="cn"/>

Note: The LDAPSearchAuthenticator uses JNDI to access the Directory Server, and will pass any properties defined in the <Properties> element into the JNDI InitialContext object used to make the connection. Consequently, any other JNDI properties you may wish to pass to the JNDI context may be set here.

Security

If the communication between the Banner Workflow server and the Directory Server is vulnerable, Ellucian recommends that SSL be used to secure the connection. SSL can be enabled for the LDAPSearchAuthenticator by adding the property java.naming.security.protocol=ssl to the configuration. For example:

<Property name=”java.naming.security.protocol” value=”ssl”/>

Note: If you enable SSL, you will need to import the LDAP server's certificate into the trusted store for the Banner Workflow appserver. Follow Oracle's documentation to import the LDAP server's certificate as a trusted certificate.

SSO authentication

See “Single sign on (SSO) authentication” on page 159 for information about single sign-on.

139nner Workflow Technical Integration Guide | Authentication

Page 140: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Integration With BEIS

Banner® Workflow can be integrated with Banner Enterprise Identity Services (BEIS) beginning with Banner Workflow 8.0. This integration provides the following functionality:

• Provisioning of account information from an SPML Request Authority (RA) to Banner Workflow. For the procedures, see “Account provisioning” on page 140.

• Single sign on (SSO) among applications protected by a central access manager. For the procedures, see “Single sign on (SSO) authentication” on page 159.

Prerequisites

The Banner Workflow Provisioning Gateway was tested to run in an Oracle WebLogic 11g (10.3.6.0) environment and a Tomcat 7.0.x environment. The hardware and software specifications depend on the application server and platform that are selected.

A version of Java 6 or Java 7 is required to run the ant-based installation script.

Account provisioning

A central identity vault stores the enterprise definition of identity for user accounts. When standard business processes add, change, or delete information in this identity vault, account information in enterprise applications such as Banner Workflow is automatically added, changed, or deleted. This processing is called account provisioning.

Information flow

As a result of identity events, an SPML Request Authority (RA) dispatches requests to add, update, delete, or look up user accounts in appropriate systems. The RA uses standard Service Provisioning Markup Language (SPML) messages, encapsulating identity information in the UDCIdentity XML structure, to make these requests. The Banner Workflow Provisioning Gateway receives the SPML messages and determines how a Banner Workflow instance should respond to the request. When properly configured, a message results in a corresponding user account being created, updated, or deleted in Banner Workflow.

All provisioned accounts in Banner Workflow are distinguished by a UDCIdentifier. This value is displayed as the external ID in the Banner Workflow User Management view. An error occurs if a duplicate SPML add request is forwarded to Banner Workflow with the same UDCIdentifier.

140nner Workflow Technical Integration Guide | Integration With BEIS

Page 141: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Add or update messages to Banner Workflow either pass completely or fail completely. There are no incomplete adds or updates. For example, the Banner Workflow Provisioning Gateway creates an add or update message for Banner Workflow partly based on the role mappings specified. If the role mappings specify a role or organization that does not exist in Banner Workflow, and the Banner Workflow Provisioning Gateway sends a message containing role assignments based on those mappings, the add or update action fails completely. No other properties are updated if the role assignments fail. For an add request, the account is not created if the role assignments fail.

If Banner Workflow is inaccessible or if any error occurs in Banner Workflow while processing the message, the Gateway does not resend a message.

The following sections describe the processing for add, update, and delete requests in more detail.

Add request

If an SPML add request is received, the Banner Workflow Provisioning Gateway communicates with a Banner Workflow instance to create a Banner Workflow user account for the identity. This assumes that the identity in the add request is eligible to be a Banner Workflow user. The Gateway can be configured to filter account creation requests if the identity matches a specific institution role. In addition, the Gateway can determine, based on the institution roles of the identity, which initial Banner Workflow roles should be assigned to the Banner Workflow user.

141nner Workflow Technical Integration Guide | Integration With BEIS

Page 142: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Update request

When an SPML update request is received, the Banner Workflow Provisioning Gateway checks to see if the user specified in the request exists in Banner Workflow. The subsequent processing depends on whether filtering is enabled.

If filtering is enabled, the following processing occurs:

• If the user does not exist in Banner Workflow, the Gateway checks to see if the SPML update request has a match in the qualifying roles. If there is a match, the update message is converted to an add message and sent to Banner Workflow.

142nner Workflow Technical Integration Guide | Integration With BEIS

Page 143: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

• If the user exists in Banner Workflow, the Gateway checks to see if the user possesses a qualifying role in the SPML message. If yes, the update request is treated as a normal update and sent to Banner Workflow. If the SPML update request no longer contains a qualifying role, the update request is converted to a delete message and sent to Banner Workflow.

If filtering is disabled, the following processing occurs:

• If the user does not exist in Banner Workflow, the update message is ignored.

• If the user exists in Banner Workflow, the update request is sent to Banner Workflow.

The Banner Workflow Provisioning Gateway treats an update as a complete replacement of the data. Any manual changes made to the Banner Workflow user account outside of BEIS are lost the next time an update message arrives.

Example

User account UserA is created in Banner Workflow through BEIS and the Banner Workflow Provisioning Gateway. A Banner Workflow administrator signs in to Banner Workflow and assigns new roles for UserA. Then, the last name of UserA is changed. An update message is sent to the Banner Workflow Provisioning Gateway without any knowledge of the new role assignments that were manually created for UserA. The update message has the new last name and the role assignments that are present in the role mappings. The Gateway pushes this message to Banner Workflow. After this update, UserA loses the role assignments that the administrator assigned manually.

143nner Workflow Technical Integration Guide | Integration With BEIS

Page 144: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Delete request

If an SPML delete request is received, a delete message is sent to Banner Workflow. Banner Workflow performs a soft delete by disabling the user account. The user ID is preserved.

144nner Workflow Technical Integration Guide | Integration With BEIS

Page 145: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Note: This functionality is true only when the delete message is sent from the Gateway. If a user account is deleted manually from Banner Workflow, the user account is deleted permanently and cannot be retrieved.

Configuration of the Banner Workflow Provisioning Gateway

The Banner Workflow Provisioning Gateway is configured by using the following steps:

145nner Workflow Technical Integration Guide | Integration With BEIS

Page 146: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

• “Install the Banner Workflow Provisioning Gateway” on page 146

• “Configure the Banner Workflow Provisioning Gateway” on page 147

• “Build the ear or war file” on page 150

• “Create a JAAS Configuration File” on page 151

• “(WebLogic Only) Configure the server for the authentication provider” on page 152

• “Restart the appropriate server(s)” on page 154

• “Deploy the ear file (WebLogic only)” on page 155

• “Deploy the war file (Tomcat only)” on page 156

• “Configure the security group and user (WebLogic only)” on page 157

• “Configure Enterprise Identity Proxy Services” on page 158

Install the Banner Workflow Provisioning Gateway

Use the following steps to install the Gateway.

1. Create a directory for the Banner Workflow Provisioning Gateway installation. This directory is referred to as WFP_HOME in the following instructions.

2. Copy the installer.jar (for Banner Workflow provisioning) to the WFP_HOME directory.

3. Use the jar tool to expand the jar file:

$JAVA_HOME/bin/jar xf installer.jar

or

%JAVA_HOME%\bin\jar xf installer.jar

The expanded installer.jar contains the following:

<WFP_HOME> Directory of the expanded Banner Workflow provisioning installer archive

<WFP_HOME>/apache-ant-1.7.0 Apache ant scripting engine used to drive the build scripts

<WFP_HOME>/dist Location of wfprovisioning.ear, which is created during ear assembly

<WFP_HOME>/resources/config Location of configuration files that an administrator updates and maintains

<WFP_HOME>/resources/ear Static resources needed to assemble the ear

146nner Workflow Technical Integration Guide | Integration With BEIS

Page 147: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Configure the Banner Workflow Provisioning Gateway

Three files in <WFP_HOME>/resources/config need to be modified:

• server.properties for connectivity

• log4j.properties for logging

• configuration.xml for business rules

Note: To reflect a change from any of the configuration files, a new wfprovisioning.ear or wfprovisioning.war needs to be generated (“Build the ear or war file” on page 150) and deployed to the application server (“Deploy the ear file (WebLogic only)” on page 155 or “Deploy the war file (Tomcat only)” on page 156).

server.properties

This file defines the connectivity to the Gateway and assigns the target Banner Workflow endpoint to propagate, create, modify, delete, and look up requests. The following property values must be assigned.

<WFP_HOME>/wardir Static resources needed to assemble the ear

Property Description

psp_username=wfprootandpsp_password=password

Basic http authentication credentials needed to connect to the Gateway instance.

workflowPrincipal=wfwebservices

Client user account used to make Web service requests into Banner Workflow. This is typically the wfwebservices (WebServicesUser) but can be any user account granted permissions to make Web services calls into Banner Workflow.

workflowCredential=password

Password for the user account used to process Web service requests into Banner Workflow.

workflowEndpointAddress=http://localhost:8888/workflow

Distinguishing URL to the Banner Workflow instance. Format:

<protocol>://<host>:<port>/<web context name>

147nner Workflow Technical Integration Guide | Integration With BEIS

Page 148: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

log4j.properties

This file controls the output of log messages coming from the Gateway. If you are using Tomcat, additional entries have to be made in the log4j.properties file to enable proper logging.

Example:

log4j.rootCategory=DEBUG, stdout, logfile

log4j.appender.logfile=org.apache.log4j.RollingFileAppender

log4j.appender.logfile.File=${catalina.home}/logs/workflowprov.log

log4j.appender.logfile.layout=org.apache.log4j.PatternLayout

log4j.appender.logfile.layout.ConversionPattern="%d %-4r %-5p %C %M.%L %x - %m%n

log4j.appender.logfile.append=False

log4j.appender.logfile.MaxFileSize=20MB

log4j.appender.logfile.MaxBackupIndex=5

The above configuration will create a log file named workflowprov.log in the tomcat logs directory.

configuration.xml

This file controls the role mapping and filtering features of the Banner Workflow Provisioning Gateway. Before deploying the Banner Workflow Provisioning Gateway for the first time, this file must be updated to reflect the desired role mappings and filtering options.

Role mapping

In Banner Workflow, users participate in workflows for which they are assigned a role. These roles do not need the same role names and functions that are present in the enterprise identity management system (EIMS). To accommodate this scenario, administrators and analysts can map roles received by the Banner Workflow Provisioning Gateway to equivalent Banner Workflow roles. This mapping is specified in the configuration.xml file.

When the Banner Workflow Provisioning Gateway receives an add or update SPML message, the message can specify user roles in the InstitutionRole element. The Gateway retrieves the string value of the InstitutionRole element and searches the configuration.xml file to see if there is an equivalent Banner Workflow role defined. If a match is found, the Gateway adds the Banner Workflow role and organization name to the message and sends the message to Banner Workflow. If no match is found in the configuration.xml file, that role is ignored.

The element structure for role mappings in the configuration.xml file is as follows:

<RoleMappings>

<RoleMapping>

<InstitutionRole role="analyst"/>

148nner Workflow Technical Integration Guide | Integration With BEIS

Page 149: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

<WorkflowRole organization="root" name="Analyst" />

</RoleMapping>

<RoleMapping>

<InstitutionRole role="admin"/>

<WorkflowRole organization="root" name="Admin" />

</RoleMapping>

<RoleMapping>

<InstitutionRole role="WFuser@OrganizationA"/>

<WorkflowRole organization="OrganizationA" name="WFUser" />

</RoleMapping>

</RoleMappings>

Multiple RoleMapping elements can be specified in the RoleMappings element. Each RoleMapping element has an InstitutionRole and a WorkflowRole element:

• The InstitutionRole element value should match the role name that is specified in the SPML message. In a Multi-Entity Processing (MEP) environment, the role name is followed by a “@” symbol and the organization name. The “@” is the delimiter.

• The WorkflowRole element is the equivalent role in Banner Workflow for that InstitutionRole. The WorkflowRole element has two properties. It is important to confirm that values specified in the configuration.xml file for these properties are present in Banner Workflow.

• The organization property refers to the organization where the role is relevant. Every Banner Workflow role assignment has an organization assigned. Even if MEP is not enabled in Banner Workflow, a Banner Workflow organization must be specified.

Note: Typically this is “root,” which is the default name of the top level organization in Banner Workflow. If you are specifying a sub-organization in Banner Workflow, qualify the sub-organization with the name of the root organization and a period. For example, to specify the financial aid department you might have an organization equal to "root.Financial Aid".

• The name property holds the name of the Banner Workflow role.

The Banner Workflow Provisioning Gateway allows for mapping a single institution role to multiple Banner Workflow role and organization combinations.

Example

<RoleMappings>

<RoleMapping>

<InstitutionRole role="admin"/>

<WorkflowRole organization="root" name="Analyst" />

</RoleMapping>

<RoleMapping>

<InstitutionRole role="admin"/>

<WorkflowRole organization="root" name="Admin" />

</RoleMapping>

149nner Workflow Technical Integration Guide | Integration With BEIS

Page 150: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

</RoleMappings>

If the Gateway receives an SPML add or update message that has an institution role of admin, then the Gateway adds role assignments of Admin and Analyst at the root organization in the message that it sends to Banner Workflow.

If there is no match for the SPML institution role, the Gateway ignores that role when creating a message for Banner Workflow.

Filtering

The Banner Workflow Provisioning Gateway filters messages and prevents some messages from reaching Banner Workflow. This is useful in cases where some identities in Banner are provisioned but should not be Banner Workflow participants. For example, a workflow acts upon student identities, but student identities do not get direct access to the Banner Workflow console or to an individual worklist. Restricting user accounts in Banner Workflow to active participants improves the scalability and performance of Banner Workflow.

The Filter element determines whether filtering is enabled. The child elements define the set of qualifying institution roles that indicate a given identity should be a workflow member. The Banner Workflow Provisioning Gateway checks if the message passes filtering before performing any role mappings.

This configuration is specified in the configuration.xml file:

<Filter enabled="true">

<QualifyingRoles>

<InstitutionRole role="workflowUser"/>

</QualifyingRoles>

</Filter>

The InstitutionRole child element specified under the QualifyingRoles element should match the string value of the InstitutionRole element specified in the SPML message received by the Gateway. In the case of MEP-enabled Banner Workflow, the InstitutionRole element in configuration.xml has a role value of role name without the “@” delimiter or the MEP code. Multiple institution roles can be specified under the QualifyingRoles element. This means that filtering can be based only on the existence of roles and not on roles at a specific organization.

Note: This set of qualifying roles is a different list than the set of role mappings that are defined in the same configuration.xml file. It is possible that the institution roles defined under the QualifyingRoles element are not defined under the RoleMappings element.

Filtering can be enabled or disabled. If the filter is disabled, then adds, updates, and deletes are processed as is. With a filter property set to off, the Gateway does not convert updates to adds or deletes in any situation.

Build the ear or war file

(WebLogic) Build the ear file:

150nner Workflow Technical Integration Guide | Integration With BEIS

Page 151: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Execute the following command:

<WFP_HOME>/ant ear

This operation packages a new ear file by bundling the changes made to the resources configuration files. The new file is located in <WFP_HOME>/dist/wfprovisioning.ear.

Note: Whenever you change any file in the resources directory, you should repeat this step and re-deploy the ear file.

(Tomcat) Build the war file:

Execute the following command:

<WFP_HOME>/ant war

This operation packages a new war file by bundling the changes made to the resources configuration files. The new file is located in <WFP_HOME>/dist/wfprovisioning.war.

Note: Whenever you change any file in the resources directory, you should repeat this step and re-deploy the war file.

Create a JAAS Configuration File

Create a JAAS Configuration File for WebLogic

Note: Skip this step if a JAAS configuration file already exists for the Oracle WebLogic Server domain where the Gateway will be deployed.

An authentication provider must be configured in Oracle WebLogic Server to allow for basic authentication against the Web services that the Gateway exposes. The authentication provider is set using a JAAS configuration file. Use the following steps to create the configuration file.

1. Use a text editor to create jaas.config with the following content:

myrealm {

weblogic.security.auth.login.UsernamePasswordLoginModuleREQUIRED;

};

2. Save jaas.config in the following location:

<WebLogic home>/user_projects/domains/<your domain directory>/config/security

151nner Workflow Technical Integration Guide | Integration With BEIS

Page 152: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

where <WebLogic Home> is the base directory for the Oracle WebLogic software packages and configuration files, and <your domain directory> is the domain where the Gateway will be deployed.

Create a JAAS Configuration File for Tomcat

An authentication provider must be configured in Tomcat to allow for basic authentication against the Web services that the Gateway exposes. The authentication provider is set using UserDatabaseRealm realm provided by Tomcat. Use the following steps to create the configuration file.

1. Open <Tomcat home>/conf/tomcat-users.xml and add the following entries

<role rolename="wfprovisioning"/>

<user username="wfroot" password="password" roles="wfprovisioning"/>

This username and password must match the psp_username and psp_password that was configured in the server.properties

2. Open <Tomcat home>/conf/server.xml and make the following changes

2.1. Configure a Realm by adding the following XML element:

<Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>

2.2. Enable the resourceName used by the Realm:

<Resource name="UserDatabase" auth="Container"

type="org.apache.catalina.UserDatabase"

description="User database that can be updated and saved"

factory="org.apache.catalina.users.MemoryUserDatabaseFactory"

pathname="conf/tomcat-users.xml" />

(WebLogic Only) Configure the server for the authentication provider

The Oracle WebLogic Managed Server where the Gateway will be deployed must be configured to load jaas.config on startup. There are two ways to configure the Managed Server, depending on how you want to start the Managed Server. Use option 1 (page 152) if the Managed Server will be started by using the Oracle WebLogic Administration Console. Use option 2 (page 153) if the Managed Server will be started by running a script.

Option 1 - If you are using the administration console to start the Managed Server

Use this option if the Managed Server will be started from the Oracle WebLogic Server Administration Console. The location of the JAAS configuration file is set as an argument on the Server Start tab of the specific Managed Server. The JAAS configuration file applies only to that specific Managed Server.

152nner Workflow Technical Integration Guide | Integration With BEIS

Page 153: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

1. Connect to the Oracle WebLogic Server Administration Console for the domain where the Gateway will be installed:

http://<host>:<port>/console

2. In the Change Center pane, click Lock & Edit.

3. In the Domain Configurations section, click Servers.

4. Click the name of the server where the Gateway will be installed.

5. Select the Server Start tab.

6. In the Arguments field enter the full path to the jaas.config file, including the file name:

-Djava.security.auth.login.config=<WebLogic Home>/user_projects/domains/<your domain directory>/config/security/jaas.config

where <WebLogic Home> is the base directory for all Oracle WebLogic software packages and configuration files, and <your domain directory> is the domain where the Gateway will be deployed.

7. Click Save.

8. In the Change Center pane, click Activate Changes.

Option 2 - If you are using a script to start the Managed Server

Use this option if the Managed Server will be started by running the startManagedWebLogic.sh (or .cmd) script. A JAVA_OPTIONS statement must be added to the setDomainEnv.sh (or .cmd) script. The location of the JAAS configuration file applies to the entire domain, including the Admin Server and all Managed Servers.

Use the following steps to update the script for Windows.

1. Open the setDomainEnv.cmd file located under <WebLogic Home>/user_projects/domains/<your domain dir>/bin.

2. Search for the last occurrence of the following text:

set JAVA_OPTIONS=%JAVA_OPTIONS%

3. Add the following in the line preceding the line identified in step 3.2.

set JAVA_OPTIONS=%JAVA_OPTIONS%-Djava.security.auth.login.config=<domain home>\config\security\jaas.config

Use the following steps to update the script for Linux/Unix.

1. Open the setDomainEnv.sh file located under <WebLogic Home>/user_projects/domains/<your domain dir>/bin.

2. Search for the last occurrence of the following text:

JAVA_OPTIONS=”${JAVA_OPTIONS}”

153nner Workflow Technical Integration Guide | Integration With BEIS

Page 154: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

3. Add the following in the line preceding the line identified in step 3.2.

JAVA_OPTIONS=”${JAVA_OPTIONS} -Djava.security.auth.login.config=<domain home>/config/security/jaas.config”

Note: There is a space between the closing brace and the dash (that is, {JAVA_OPTIONS}[space]-Djava).

Restart the appropriate server(s)

For Tomcat, navigate to the <TOMCAT_HOME>/bin directory and execute shutdown and startup scripts to restart the Tomcat server.

For WebLogic, there are two ways to restart the server(s). Use option 1 if a single Managed Server was configured. Use option 2 if all servers in the domain were configured.

Option 1 - If a single Managed Server was configured

Use this option if a single Managed Server was configured. Only that server needs to be restarted.

1. Navigate to the Summary of Servers page.

2. Select the Control tab.

3. Select the Managed Server where the configuration changes were made.

4. Click Shutdown > Force Shutdown Now.

5. Confirm the selection.

6. Wait for the server to enter a SHUTDOWN state.

7. Select the same Managed Server.

8. Click Start.

9. Confirm the selection.

10. Wait for the server to enter a RUNNING state.

Option 2 - If all servers in the domain were configured

Use this option if all servers in the domain were configured. Only the Managed Server needs to be restarted.

Use the following steps to restart the server for Windows.

1. Navigate to <WebLogic Home>/user_projects/domains/<your domain dir>/bin.

2. Stop the server by running the following script:

stopManagedWebLogic.cmd <ServerName>

154nner Workflow Technical Integration Guide | Integration With BEIS

Page 155: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Note: There is a space between the command and <ServerName>; that is, stopManagedWeblogic.cmd[space]<ServerName>.

Example:

stopManagedWebLogic.cmd ManagedServer1

3. Start the server by running the following script:

startManagedWebLogic.cmd <ServerName>

Use the following steps to restart the server for Linux/Unix.

1. Navigate to <WebLogic Home>/user_projects/domains/<your domain dir>/bin.

2. Stop the server by running the following script:

./stopManagedWebLogic.sh <ServerName>

Note: There is a space between the command and <ServerName>; that is, /stopManagedWeblogic.sh[space]<ServerName>.

Example:

./stopManagedWebLogic.sh ManagedServer1

3. Start the server by running the following script:

./startManagedWebLogic.sh <ServerName>

Deploy the ear file (WebLogic only)

The ear file (wfprovisioning.ear) that is created by the installer must be deployed in an Oracle WebLogic Basic Domain Managed Server. It must not be deployed using any other Oracle WebLogic template, especially the Oracle WebLogic Classic Domain that supports Oracle Forms and Reports. Use the following steps to deploy the ear file.

1. Connect to the WebLogic Server Admin Console.

2. In the Change Center pane, click Lock & Edit.

3. In the Domain Structure pane, click Deployments.

4. Click Install.

5. Click upload your file(s).

6. Select the file to be uploaded:

6.1. In the Deployment Archive field, click Browse and navigate to the wfprovisioning.ear file.

6.2. Select the file and click Open.

7. Click Next.

155nner Workflow Technical Integration Guide | Integration With BEIS

Page 156: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

8. Select wfprovisionoing.ear from the list.

9. Click Next.

10. Select Install this deployment as an application.

11. Click Next. The next page that is displayed depends on the domain.

11.1. If the Select Deployment Targets page is displayed, select the server where the application should be deployed. The application can be installed to an existing server. The application should be installed to a WebLogic Managed Server, not to the Admin Server. Then click Next to display the Optional Settings page.

11.2. If the Optional Settings page is displayed, check your WebLogic server configuration to ensure that a Managed Server is available for deployment of applications. If a Managed Server is not available, the application will be deployed to the Admin Server, which is not a recommended configuration. For more information, consult the Oracle WebLogic Server Documentation Library.

12. Enter the following information on the Optional Settings page:

13. Click Next.

14. Select No, I will review the configuration later.

15. Click Finish to start the deployment. When the deployment is complete, the Summary of Deployments page is redisplayed with the newly deployed application.

16. In the Change Center pane, click Activate Changes.

17. Start the newly installed application as follows:

17.1. Select the newly installed application.

17.2. Click Start > Servicing all requests.

17.3. Click Yes.

Deploy the war file (Tomcat only)

1. Copy the wfprovisioning.war file from the <WORKFLOW_HOME>/dist directory to the <TOMCAT_HOME>/webapps directory.

2. Navigate to the <TOMCAT_HOME>/bin directory and execute the startup script to start Tomcat server.

Name Name for the application (for example, wfprovisioning)

Copy this application onto every target for me

Select the radio button.

156nner Workflow Technical Integration Guide | Integration With BEIS

Page 157: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Configure the security group and user (WebLogic only)

Use the following steps to add the wfProvisioningGroup group and an administrative user to the Provisioning Gateway application. This group and user are required for invoking the Provisioning Gateway Web services.

1. In the Change Center pane, click Lock & Edit.

2. In the Domain Structure pane, click Security Realms.

3. Click myrealm.

4. Select the Users and Groups > Group tab.

5. Click New.

6. Enter the following information to create a group:

7. Click OK.

8. Select the Users sub-tab.

9. Click New.

10. Enter the following information to create a user:

11. Click OK. The table of users is redisplayed with the new user.

12. Click the name of the user you just created.

Name wfProvisioningGroup

Description Banner Workflow Provisioning Group

Provider DefaultAuthenticator

Name wfproot

This name must match the psp_username that was configured in the server.properties file in Step on page 147.

Description Banner Workflow Provisioning Gateway PSP User Name

Provider DefaultAuthenticator

Password Password used to connect to the Gateway instance

This password must match the psp_password that was configured in the server.properties file in Step on page 147.

Confirm Password Confirmation of the password

157nner Workflow Technical Integration Guide | Integration With BEIS

Page 158: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

13. Select the Groups tab.

14. In the Parent Groups section, select wfProvisioningGroup in the Available list and move it to the Chosen list.

15. Click Save.

16. In the Change Center pane, click Activate Changes.

Configure Enterprise Identity Proxy Services

Once the Banner Workflow Provisioning Gateway is deployed, it must be registered as a Provisioning Service Provider (PSP) in the Enterprise Identity Proxy Services so that identity messages can be published to it. Use the following steps to configure the Identity Proxy.

1. Access the Identity Proxy:

For BEIS 8.1.x or earlier:

http://<host>:<port>/IdProxyWeb

For BEIS 8.2 or later:

http://<host>:<port>/idproxyweb

2. Log in with the user name and password for the idpadmin role.

3. Select PSP Configuration > Add/Update PSP from the menu bar.

4. Configure the following properties:

5. Click Add/Update.

PSP Location Location and name where you deployed the Workflow Provisioning Gateway, followed by /xfire/psp/DocumentLiteral.

Example

http://internalServer.edu:8888/wfprovisioning/xfire/psp/DocumentLiteral

User Name Same value as the psp_username that was defined in the Server.properties file

Password Same value as the psp_password that was defined in the Server.properties file

Auth Realm Workflow Provisioning Gateway

Enabled True, to enable messaging to the Banner Workflow Provisioning Gateway

158nner Workflow Technical Integration Guide | Integration With BEIS

Page 159: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Single sign on (SSO) authentication

Banner Workflow supports two methods for integrating with an external SSO configuration:

• Central Authentication Service (CAS)

• Third-party access manager such as the Oracle Access Manager

The following sections describe both methods for setting up SSO.

SSO under CAS

Central Authentication Service (CAS) can be used to provide a SSO solution. In this SSO implementation, Banner Workflow delegates authentication to the CAS 2.0 server that has been extended to include the UDCIdentifier to support the Banner Validator service specified in the configuration.

If the user is not logged in, Banner Workflow redirects the user to the CAS login page.

Note: The external ID of the Banner Workflow user must be set to the UDCIdentifier of the Banner Workflow user.

The following steps are used to configure Banner Workflow under CAS:

• “Configure Banner Workflow for CAS” on page 159

• “Configure <LogoffUrl> element (optional)” on page 160

• “Set up Application Server SSL” on page 161

• “Register Banner Workflow with CAS server” on page 161

• “Modify Banner Forms technology type” on page 161

Configure Banner Workflow for CAS

Use the following steps to configure Banner Workflow for CAS.

1. Modify the Banner Workflow configuration.xml file as follows:

Authentication mode - "CAS"

2. Modify the following properties in the CAS section of the same configuration.xml file:

159nner Workflow Technical Integration Guide | Integration With BEIS

Page 160: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Configure <LogoffUrl> element (optional)

When running Banner Workflow in CAS mode, the Logoff link does not log a user out of Banner Workflow because the user is still logged in to CAS. If you wish to provide a link to an external URL to log users out of CAS, set the optional LogoffUrl element as the last child element of SecurityIntegration.

Property Description

ServiceURL Banner Workflow URL used to service requests from the CAS server. Format is <protocol>:<workflow host>:<workflow port>/<workflow root>/j_spring_cas_security_check

Example

http://school.edu:7777/workflow/j_spring_cas_security_check

LoginUrl URL used to log in to CAS

AuthenticationProviderKey Key required by Banner Workflow’s CAS authentication provider to identify tokens that it previously authenticated

ProxyTicketValidatorUrl URL of CAS

Example

http://school.edu:7777/cas

ExternalIDAttribute Name of the attribute that is returned by samlValidate in the SAML assertion and contains the value used to look up a user by external ID

Example

If CAS is configured to return the UDCIdentifier to Banner Workflow in the SAML attribute UDC_IDENTIFIER, then the value of ExternalIDAttribute is UDC_IDENTIFIER.

160nner Workflow Technical Integration Guide | Integration With BEIS

Page 161: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Set up Application Server SSL

CAS servers run under SSL (Secure Sockets Layer). You must register the SSL certificate used by the CAS server into the keystore file (cacerts) that the application server uses for the Java installation. This is typically done by using the keytool command.

Example:

<JAVA_HOME>/bin/keytool -import -file cas.cert -keystore <JAVA_HOME>/jre/lib/security/cacerts

JAVA_HOME is the path of the JDK that is used to launch the Banner Workflow application server container, and cas.cert is the path of the certificate file for the CAS server.

The keytool prompts for a password, which is typically 'changeit' for a default java installation.

Register Banner Workflow with CAS server

After you configure and deploy Banner Workflow under CAS, register the Banner Workflow deployment with the CAS server the same way you register any other CAS application. See your CAS server documentation for more details.

Modify Banner Forms technology type

Use the following steps to specify the URL for accessing Internet-Native Banner when SSO is implemented.

1. Log in to Banner Workflow as an administrative user.

2. Select Administration > Workflow System Administration.

3. Click Technology Types.

4. Click Banner Forms.

5. Click the values displayed in Web Launch Parameters.

6. Change the value of banner_inb to the following:

http://<host>:<port>/ssomanager/c/INB

This is the URL used to access Internet-Native Banner when SSO is implemented.

7. Click Save.

SSO under a third-party access manager

A third-party access manager, such as Oracle Access Manager, can be used to provide a SSO solution. In this SSO implementation, the IDM Gateway secures access to Banner Workflow by acting as an access control Gateway to the Banner Workflow server. The

161nner Workflow Technical Integration Guide | Integration With BEIS

Page 162: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Banner Identity Gateway passes the external ID (UDCIdentifier) in the HTTP header or cookie. The IDM Gateway uses the external ID in the header or cookie to identify which Banner Workflow user is requesting access. Any active user that has an external ID can be granted access to Banner Workflow.

Note: The UDCIdentifier of the Workflow user must be inserted into an HTTP header or cookie.

The following steps are used to configure Banner Workflow under a third-party access manager:

• “Configure IDM Gateway” on page 162

• “Configure Banner Workflow for IDM Gateway” on page 162

• “Configure <LogoffUrl> element (optional)” on page 163

• “Modify Banner Forms technology type” on page 163

Configure IDM Gateway

Configure the IDM Gateway for Banner Workflow to protect the following URL prefix under the Banner Workflow application context:

<webapp>/ssoGateway

In the preceding path, webapp is the name of the Banner Workflow Web application as deployed on the server.

Configure Banner Workflow for IDM Gateway

Use the following steps to configure Banner Workflow for the IDM Gateway.

1. Modify the Banner Workflow configuration.xml file as follows:

Authentication mode - "IdmGateway"

2. Modify the following properties in the IdmGateway section of the same configuration.xml file:

Property Description

Source Header or Cookie

HttpVariableName Name of the HTTP header or cookie variable (depending on the Source attribute) that the IDM Gateway populates with the current user’s UDCIdentifier

162nner Workflow Technical Integration Guide | Integration With BEIS

Page 163: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Configure <LogoffUrl> element (optional)

When running Banner Workflow in IDM Gateway mode, the Logoff link does not log a user out of Banner Workflow because the user is still logged in to the IDM Gateway. If you wish to provide a link to an external URL to log users out of the Gateway, set the optional LogoffUrl element as the last child element of SecurityIntegration.

Modify Banner Forms technology type

Use the following steps to specify the URL for accessing Internet-native Banner when SSO is implemented.

1. Log in to Banner Workflow as an administrative user.

2. Select Administration > Workflow System Administration.

3. Click Technology Types.

4. Click Banner Forms.

5. Click the values displayed in Web Launch Parameters.

6. Change the value of banner_inb to the following:

http://<host>:<port>/ssomanager/c/auth/INB

This is the URL used to access Internet-native Banner when SSO is implemented.

7. Click Save.

163nner Workflow Technical Integration Guide | Integration With BEIS

Page 164: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Logging

Log files are one way for a service to communicate with an administrator. They provide a persistent means for capturing messages and the timing of events in the system. Log files also expedite the process of tracking errors in your workflows. The Banner Workflow Server makes extensive use of logging. As such, it is a good idea to periodically inspect the logs to verify that the system is running smoothly.

Banner Workflow Logs

When using the wftool script all logs generated will be located within WORKFLOW_HOME/logs/wftool.log. This log will provide an audit trail of the commands executed from the wftool script.

Engine Logs

Each engine node contains its own log file. By default, one engine node is created in WORKFLOW_HOME/engine.

WORKFLOW_HOME/engine/engine.log

Contains log messages that will be related to the processing of work from one activity to another. This log will grow to 20 MBs and create up to 5 roll over files to prevent the disk from filling up. Default logging is ERROR except for the main engine services loop. This loop is set to INFO to provide more detailed information during startup and shutdown. You should examine this log file when the following situations occur:

• Activities are not progressing from one step to another - This typically happens when the Workflow engine is not started. If work is not progressing, check to see that your engine is running and secondly investigate this log file.

• Activity Notification Emails - If notifications are not being sent, the first place to check for error messages would be the engine log files. The email notifications are generated from the engine tier and if they fail are logged with the appropriate message.

WORKFLOW_HOME/engine/install.log

Provides the install log that was generated when installing an engine node. Typically this only has value when debugging an installation of an engine node.

164nner Workflow Technical Integration Guide | Logging

Page 165: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Application Server Logs

Oracle WebLogic Server Logs

All workflow specific log messages are directed to the Oracle WebLogic Server logs. In most cases the Oracle logs are used to debug situations where deployments to the Oracle WebLogic Server have failed. If, while running an automated deployment, you receive an ADMN-XXXXXXX error message, the Oracle logs may be able to provide more detailed information. Oracle has numerous log files but only a few are particularly useful when debugging deployments.

The server log files are generally found under this directory pattern for each server instance dedicated to your deployment:

ORACLE_HOME/user_projects/domains/<DOMAIN>/servers/<WF SERVER>/<WF SERVER>.out

Where <DOMAIN> is the WebLogic domain that was contains Workflow (ex: base_domain) and <WF SERVER> is the name of a server defined within the domain.

This log contains the output generated from an individual server instance. This log will typically be the most beneficial in deducing what caused a workflow to fail. By default, all workflow log messages from the web tiers are logged here.

Tomcat Server Logs

To support Tomcat logging, you will need to modify the Banner Workflow configuration.xml file as described in “Logging Configuration for Tomcat” on page 101.

165nner Workflow Technical Integration Guide | Logging

Page 166: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Scripts

The following is a description of all scripts the workflow installer creates under the /bin directory.

archive

Moves data on completed/stopped workflows to the archive tables. It takes the following arguments, in order:

• username - A valid workflow account or the wfroot account.

• password - The password for the account.

• verbose -Accepts 'true' or 'false'. If true, will write verbose output during processing.

• displayContext - Accepts 'true' or 'false'. If true, workflow context parameter values will also be archived.

• days expired - Archives workflows that have ended more than this number of days in the past.

You can also pass an optional -batchSize <size> option to control the sizes of the batches in which workflows will be archived. By default, the batch size is 50.

The following example will archive all workflows that stopped running 20 or more days ago, providing verbose output, storing parameter values, and deleting the workflows once they have been archived:

archive wfroot password true true 20

checkexternalauth

A shortcut script used to check the setup of External Authentication. If you have configured your system to use external authentication, then you can run this script and provide it with an external ID and password. The script will use the external authentication mechanism to authenticate the given user. If it is successful, you know that the configuration is correct. It takes the following arguments in order:

• username - A valid externalID recognized by the external system responsible for authentication.

• password - The password for the username.

If you have configured workflow to use External Authentication, and a valid externalID/password is admin/password, then you can test it using the following command:

166nner Workflow Technical Integration Guide | Scripts

Page 167: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

checkexternalauth admin password

If the settings are correct, then you will get a message indicating that the user was successfully authenticated, otherwise you will get an error message or a warning that the user could not be authenticated and should check your configuration settings.

export

Exports administrative objects (users, roles, process definitions, etc) to an xml or zip file. It can be used to take a snapshot of the non-runtime elements of your system, or to move objects from one workflow system to another. It takes the following arguments in order:

• username - A valid workflow username or wfroot.

• password - The password for the user.

• filename - The name of the file to export to.

The export script also accepts the following options, which may be specified in any order:

• -verbose - Print verbose error messages that are useful for debugging.

• -xml - Exports only the content that can be represented in an xml format

• -zip - Exports to a .zip file that includes binary content, such as global attachments and icon images. This is the default behavior unless the -xml option is used. The -zip option is maintained for backward compatibility with any scripts that may use it.

• -primaryKey - Export Primary Keys for each object. This should only be used when explicitly directed by migration instructions.

• -maxThreads - Sets the maximum number of concurrent threads to use when exporting objects that can be processed in parallel. The default is 2. It should generally be set equal to the number of processors on the server that is running workflow.

extractwd

A script that can be run against an export xml or zip file to extract a Workflow Definition, along with supporting objects such as roles, components, and technology types. You can use this script to extract single workflow definitions from a test or development system to move them to a production system.

It requires the following options:

• -source <source file> - The xml or zip file containing the original export you want to extract the definition from.

• -target <target file> - The xml or zip file you want the extraction placed into.

167nner Workflow Technical Integration Guide | Scripts

Page 168: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

• -processdef <organization> <name> <version> - Where organization is the qualified name for the organization of the definition. You may specify more than one {<organization> <name> <version>} sequence.

extractwd -source export.zip -target approvals.zip Approvals 0

The above example will extract the Approvals workflow from the export.zip file and place it within the approvals.zip file. This file can later be used to import into another Banner Workflow system.

For interactive workflow definition extraction the -shell option can be passed. This will prompt the user for the target, source, workflow definition name and version. For example:

extractwd -shell

Note: Since this script only processes an xml or zip export file, it is not necessary to have the workflow server running to use it.

import

A script used to import objects into the system. It takes the following arguments:

• username - A valid workflow username or wfroot.

• password - The password for the user.

• filename - The name of the file to import.

The import script also accepts the following options, which may be specified in any order:

• -verbose - Print verbose error messages that are useful for debugging.

• -primaryKey - Import Primary Keys for each object. This should only be used during migration when directed to by migration instructions.

• -maxThreads - Sets the maximum number of concurrent threads to use when importing objects that can be processed in parallel. The default is 2. It should generally be set equal to the number of processors on the server that is running workflow.

The import script will only create new objects, it will not modify or replace existing ones. If errors are encountered, import will continue to run, and attempt to successfully import as many objects as possible.

purgewf

A script used to delete both running and completed workflows from the system. By default, this script purges only completed/stopped workflows. It takes the following arguments:

168nner Workflow Technical Integration Guide | Scripts

Page 169: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

• username - A valid workflow username or wfroot.

• password - Password for the username.

The purgewf script also accepts the following options, which may be specified in any order:

• -workflowOrg - Purges workflow instances started at the given qualified organization.

• -processName - Purges workflow instances with the given business process name.

• -definitionName - Purges workflows started for the workflow definition with this name. This option accepts wildcards ('%').

• -definitionVersion - Purges workflows started for the workflow definition with this version number. This option should be used with -definitionName.

• -startDateFrom - Purges only workflows having a start date greater than or equal to this value.

• -startDateTo - Purges only workflows started on or before the given date.

• -endDateFrom - Purges only workflows that have completed/stopped after this date.

• -endDateTo - Purges only workflows that have completed/stopped before this date.

• -instanceName - Purges only workflows having the specified instance names. This option accepts wildcards ('%').

• -state - Purges only workflows in the specified state. The following states can be specified:

• started

• stopped

• started.running

• stopped.completed

• stopped.aborted

• -noprompt - Starts purging workflows immediately without prompting for confirmation.

Note: The values of the date format must be in one of the following accepted date formats (expressed using Java (TM) conventions):

Note: dd-MMM-yyyy - (20-JAN-2006, note that the time defaults to 12:00:00 AM)dd-MMM-yyyy hh:mm:ss a - (20-JAN-2006 01:00:00 PM)dd-MMM-yyyy'T'HH:mm:ss - (20-JAN-2006T13:00:00)

Note: All of the above options are considered to be joined by 'and' when more than one is used. For example, 'purgewf wfroot password -

169nner Workflow Technical Integration Guide | Scripts

Page 170: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

workflowName mydef -workflowVersion 1 -startDateFrom "10-Mar-2004 10:00:00 AM” -state started.running' will delete all workflows started for the workflow definition 'mydef' version 1 that were started on or after 10 AM, March 10, 2004 that are still running.

wftool

Tool used to perform workflow installation and deployment tasks. The wftool accepts the following commands:

• all - This performs a complete installation sequence from scratch. You will be prompted to have all tables dropped and recreated. All workflow artifacts, including the ear file, will be rebuilt.

• bannerdb - Runs the sql scripts to redeploy Banner integration tables/components.

• builddb - Runs the sql scripts to redeploy all Banner Workflow and Banner integration tables/stored procedures. It should only be used during an initial install, or if you wish to delete all data from a test system.

Warning! This command will result in the deletion of all data in the system.

• car - Builds/rebuilds the Banner Workflow car file using the latest values in configuration.xml.

• deleteAllWorkflows - Deletes all workflows in the system. This should only be used in test systems.

• deploy - Performs an automated deploy of the ear file to the application server.

Note: This command will not build/rebuild the ear or war file. If you have made configuration changes, you should use updateSystem to rebuild the ear or war file before deploying.

• ear - Builds/rebuilds the workflow ear using the latest configuration values.

• engine - Builds/rebuilds the default engine node and engine installer.

• lp5war - Builds the workflow lp5 war file.

• scripts - Creates the scripts in the bin directory.

• updateSystem - Rebuilds all workflow artifacts (the ear file, engine installer, car file, etc) using the latest configuration values and uploads the configuration to the database.

• uploadconfig - Encrypts and uploads the configuration.xml to the database.

• war - Builds/rebuilds the workflow war using the latest configuration values.

• workflowdb - Runs the sql scripts to recreate all the workflow tables.

170nner Workflow Technical Integration Guide | Scripts

Page 171: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Warning! Running this command will delete all data in the system. It should only be run during an initial (fresh) install, or if you wish to delete all data in the system.

• ziplogs - Gathers various log files into a single zip file.

wftool supports the following options which may be specified after any of the commands:

• -noprompt - This will cause the command to automatically answer 'yes' to any yes/no question. Take care when using this with database related commands. For example, running 'wftool workflowdb -noprompt' will cause all data in the system to be deleted without any further input from the user.

• -help - Displays help on all wftool commands and options.

Engine bin Directory Scripts

The following scripts are created in the bin directory of each directory that an engine instance is installed into.

startengine

This script starts the instance of the Workflow Engine installed in the directory.

engineconsole

This script executes the engine console. The Console can display the status of all the installed engine instances, and can be used to pause, resume, or stop any of the instances. The console can be used to execute a single command, or it can be run in an interactive mode in which multiple commands can be executed.

To run the console in an interactive shell, execute 'engineconsole shell'. You can quit the shell by entering 'quit'. You can type 'help' to display help on the commands.

The console supports the following commands, in both command line or shell mode.

stop

The following script will instruct one or more engine instances to stop running:

stop -password <password> [-all] [-host host] [-port port] [-force seconds]

Options:

171nner Workflow Technical Integration Guide | Scripts

Page 172: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

• -password: Required option, the administrative password for the engine instances.

• -all: Instructs the console to send a shutdown signal to all known engines (all engines listed in the <EngineInstance> elements in the configuration.

• -host host and -port port: Send the shutdown single only to the engine instance running on host at port.

• -force <seconds>: Instruct the engine instance(s) being sent the shutdown signal to only wait <seconds> before forcibly terminating the instance.

Warning! -force should only be used in the case in which an engine instance is not responding, as it may forcibly terminate running threads and prevent a clean shutdown.

getstate

The following script will return the state of one or more engine instances:

getstate [-all] [-host host] [-port port]

Engines may be in a 'running', 'paused', or 'offline' state.

Options:

• -all: Get the state of all engine instances identified by an <EngineInstance> element in the configuration.

• -host host and -port port: Get the state of the engine instance at host on port.

pause

The following script will instruct one or more engine instances to pause, suspending all activity and entering a wait state until either resumed or stopped:

pause -password <password> [-all] [-host host] [-port port]

You can pause engine nodes prior to performing database maintenance, then resume them when the database is back online.

Options:

• -password <password>: Required option, the administrative password for the engine instances.

• -all: Instructs the console to send a pause signal to all known engines (all engines listed in the <EngineInstance> elements in the configuration.

• -host host and -port port: Pause only the engine instance running on host at port.

172nner Workflow Technical Integration Guide | Scripts

Page 173: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

resume

The following script will instruct one or more engine instances to resume, restoring all operations from the pause state:

resume -password <password> [-all] [-host host] [-port port] :

Options:

• -password <password>: Required option, the administrative password for the engine instances.

• -all: Instructs the console to send a resume signal to all known engines (all engines listed in the <EngineInstance> elements in the configuration.

• -host host and -port port: Resume only the engine instance running on host at port.

173nner Workflow Technical Integration Guide | Scripts

Page 174: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Tuning the Workflow Engine

The Workflow Engine is responsible for all operations that alter or advance the state of a workflow, including starting/stopping workflows, completing workitems, starting the next workitem(s) in the flow, and storing context parameters.

Workflow Engine

The engine is designed to perform the majority of this work asynchronously in the background to minimize impact on a user's experience. For example, from a functional standpoint, when a user completes a work item, the following must occur:

1. The workitem must be shifted into a completed state.

2. Any local context parameters the user has set on the workitem (such as key blocks on a Banner form) must be copied into the workflow context according to the mapping that the analyst setup for the workflow.

3. Subsequent activities in the workflow must be identified, transition rules evaluated, and the next workitem(s) must be started, given initial context values, and routed to the appropriate users’ worklists.

4. Email notifications for newly started workitems must be sent out.

To minimize the amount of time the user has to wait after submitting an item for completion, the engine simply shifts the item to a completed state, and internally queues up an event that this particular workflow needs further processing performed, then completes the transaction and returns control to the user. This completes step 1 above. A separate thread of execution in the engine then processes the event and performs steps 2-4 independent of any user interaction.

Therefore, for purposes of tuning, the engine can be thought of as consisting of two distinct parts:

• Interactive: Responsible for handling user requests to start/stop workflows, complete workitems, and set workitem parameters.

• Asynchronous: Responsible for performing the majority of work to advance workflows in the background.

Note: All tuning parameters are located in the <EngineConfiguration> elements under <Engines> in the configuration.xml file.

174nner Workflow Technical Integration Guide | Tuning the Workflow Engine

Page 175: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Interactive

For the interactive parts, the only parameter of concern is the <maxConnections> element under <JDBCPoolConfig>. This controls the number of pooled JDBC connections the engine may use to service incoming requests to start/stop workflows, complete workitems, etc. In the example above, it's the number of connections it may use to complete step 1. This number represents the maximum number of concurrent requests to start a workflow, or change the state of an existing workflow (by completing an item, setting parameters, etc) that the engine can perform at once.

For example, if this number is set to 10, and 11 users simultaneously complete a workitem, then 10 of them will have their request go through immediately; the 11th will have to wait until one of the 10 requests is completed before being processed. These interactive requests are designed to be as small as possible, and are intended to execute very quickly, so in practice, a small pool should be able to service the requests of a large user base.

Asynchronous

The asynchronous part of the engine is where the majority of the work is done. Asynchronous work is further divided into three distinct categories:

• core work

• external event processing

• notification work

There is a dedicated thread pool for each of the three types of work. Each thread is capable of processing a single unit of work at one time. In the example above, a thread from the main pool would complete steps 2-4 in a single transaction.

The asynchronous performance of the engine is controlled by the <ThreadPools> element. The <Main> element specifies the maximum and minimum number of threads the engine should keep on hand to perform work that advances workflows. If this number is set too low, then outstanding engine events may begin to build up. This will result in a delay in getting workitems onto users' worklists.

The <ExternalEvent> element controls the number of threads in the pool that is responsible for evaluating External Events and starting workflows in response to them. (See “External Events” on page 129 for more information.) If this number is too small, the engine may not be able to process External Events as fast as they are posted to the system. This will not cause any errors, or result in data loss, but can cause a delay between when the external system generates an event, and when a workflow is actually started for it.

Note: Each thread in the Main, Notification, and External Event pools is automatically assigned a JDBC connection that is independent of the pool configured in <JDBCPoolConfig>. This means that you can adjust all four values independently of one another.

175nner Workflow Technical Integration Guide | Tuning the Workflow Engine

Page 176: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Engine Manager

The Engine Manager can be accessed from Workflow System Administration. The Engine Manager provides the ability to query the status and execute actions on the Workflow Engine(s) from within the Banner Workflow application. The Engine Manager is only available to those users who have a role that has been mapped to the ug_admin_engineControl security group.

The Engine Manager lists the host and port the engine is running on as described in the configuration.xml file. For more information on configuring the host and port please refer to “Update deployment information in configuration.xml” on page 18.

The status of engines can be Running, Idle and Stopped.

• Running: The engine is running and processing workflow events.

• Idle: The engine is running on the host and port but is currently not available to process events. Typically an engine is set to “Idle” when the database is unavailable. Once the database is available, the engine can be started without physically logging onto the Banner Workflow server and manually restarting the engine process.

• Stopped: The engine is not available on the host and port specified. Typically this is due to an administrator stopping an engine. When an engine is “stopped”, someone must log onto the Banner Workflow Server to restart the engine process.

Note: Stopping an engine from within Banner Workflow will require you to log onto the Banner Workflow Server in the future to restart the engine. It is not possible to start an engine from within the Banner Workflow application.

Note: All functions available within the Banner Workflow application are also available via the engineconsole script as detailed in “engineconsole” on page 171.

How to Monitor Engine Performance

The <JDBCPoolConfig> can be the most difficult value to tune. In general, if users complain about a delay when performing operations such as starting workflows or completing workitems, you should try increasing this value. However, the delay may just as easily be caused by network problems, slow database access, or tuning problems in the Application Server. The <JDBCConfigPool> would be the first place to start to address this type of problem.

Monitoring the asynchronous threads is relatively straightforward, and can be accomplished by monitoring the ENG_EVENTS table.

176nner Workflow Technical Integration Guide | Tuning the Workflow Engine

Page 177: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

ENG_EVENTS Table

In general, the number of rows in this table for which the column SCHEDULED_TIME is null should be zero or a small number. These rows denote pending internal engine events that should be processed immediately to advance a workflow, and thus the average number of such rows will tend to zero over any time period.

If you consistently see a large number of rows with a null SCHEDULED_TIME (several hundred), then this is an indication that the thread pools are not large enough to keep up with the throughput of the system. To determine which pool needs to be increased, look at the EVENT_TYPE column for rows in which SCHEDULE_TIME is null. If the event type begins with “immediate.notification”, then the notification pool size should be increased. If the event type begins with “immediate.externalevent”, then the External Event pool size should be increased. For any other types of event, the Main pool size should be increased. If you do not want to increase the size of the thread pool(s) for an engine instance, you can also start additional engine instances. User requests will automatically be forwarded among all available engine instances in a roughly "round robin" approach, thus spreading the workload among all the engine instances.

Note: If you want to be more detailed in your monitoring of this table, the CREATED_TIME column records the time at which the event was created. This time is represented as the specified number of milliseconds since the standard base time known as “the epoch”, namely January 1, 1970, 00:00:00 GMT. To look for lagging events, you can run a query that returns all rows in ENG_EVENT for which SCHEDULE_TIME is null, and the CREATED_TIME is some specified distance in the past, for example 30 seconds. This would show you if there are any outstanding events that have been waiting more than 30 seconds to be processed.

You can also monitor these settings on a historical basis. A record of all successfully completed events is contained in the ENG_COMPLETED_EVENTS table, along with both the time the event was created (CREATED_TIME), and the time it was completed (COMPLETED_TIME). The difference between these two columns is the time in milliseconds it took the engine to complete processing of the event. Computing the difference for all events for which EVENT_TYPE starts with “immediate” will give you information on how long events which should be completed immediately, actually took to complete.

Note: There will always be some difference between the CREATED_TIME and the COMPLETED_TIME, but ideally it will be no more than a few seconds. Values larger than that can indicate that the pool sizes need to be increased.

Note: If you analyze the ENG_COMPLETED_EVENTS table, be sure only to look at rows where EVENT_TYPE begins with “immediate”. Rows with an event type beginning with “scheduled” indicate event scheduled to take place at a specified point in the future, and large differences between the CREATED_TIME and the COMPLETED_TIME are expected for these events and do not indicate a tuning problem.

177nner Workflow Technical Integration Guide | Tuning the Workflow Engine

Page 178: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Note: It is critical that production workflows be changed to an 'Active' state for maximum performance. Active workflows allow the engine to cache frequently used data. 'Test' mode workflows cannot be cached, and therefore can incur a significant performance penalty, both in terms of execution speed and the number of required database reads.

178nner Workflow Technical Integration Guide | Tuning the Workflow Engine

Page 179: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Security Management in Banner Workflow

To grant users access to various sections of the Banner Workflow application, you need to assign roles to the various security groups in Security Management.

Each security group authorizes a role’s access to a particular area of Banner Workflow functionality.

Note: Only users in ug_admin_securityGroups may map roles to security groups.

Add a Role Authorization to an Existing Security Group

1. Click Workflow System Administration in Administration.

2. Click Security Management on the Workflow System Administration page.

3. Click the security group name that you want to add a role authorization for.

4. Click Add Role Authorization.

5. Select a role from the drop down list.

6. Click Save Authorized Role.

Delete a Role Authorization from an Existing Security Group

1. Click Workflow System Administration in Administration.

2. Click Security Management on the Workflow System Administration page.

3. Click the security group name that you want to delete a role authorization from.

4. Click the check box next to the authorized roles that you wish to delete.

5. Click Delete Selected Role Authorizations.

6. When you are asked to confirm the deletion, click OK.

179nner Workflow Technical Integration Guide | Security Management in Banner Workflow

Page 180: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Security Groups

Security groups are used to grant access to certain areas in Banner Workflow. Each group will have a corresponding role or roles assigned to it. Any user who has the role assigned to them will also be granted access to the particular security group area.

ug_admin Authorization to perform most administrative functions.

ug_admin_all_enterprise Authorization to perform all Enterprise related functions (event and process management, and related mapping functions necessary to setup external event processing).

ug_admin_bcc Authorization to create, update and delete reusable business components that can be used in workflow definitions.

ug_admin_calendar Authorization to create, update and delete work calendars that contain daily work hours for an office or institution.

ug_admin_dynamic_data_source Authorization to manage dynamic data sources.

ug_admin_engineControl Authorization to view and manage engine nodes.

ug_admin_enterprise Authorization to create, update and delete business processes and view the relationships between business processes, business events and workflow definitions.

ug_admin_event_to_process Authorization to associate an event to a business process.

ug_admin_events Authorization to create, update and delete business event definitions and event parameters.

ug_admin_externalEvents Authorization to view external event logs and evaluate and process alerts for events that originate outside of Banner Workflow.

ug_admin_externalEvents_wparams Authorization to view external event parameters and their associated values.

ug_admin_inprocess Authorization to monitor metrics for in process workflow definitions.

ug_admin_modeler Authorization to create, update and delete workflow definitions in the workflow modeler.

180nner Workflow Technical Integration Guide | Security Management in Banner Workflow

Page 181: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

ug_admin_modeler_read Authorization to view workflow definitions in the modeler.

ug_admin_organizations Authorization to create and update organizations within the workflow system.

ug_admin_onlineUsers Authorization to view a list of users who are currently logged into the workflow system.

ug_admin_process_roles Authorization to define a role at an organization that can initiate a workflow process.

ug_admin_process_to_process_definitions Authorization to associate workflow definitions to a business process.

ug_admin_productTypes Authorization to create, update and delete product types.

ug_admin_remote_services Authorization to invoke remote services. Necessary to execute import/export functionality, etc. Should only be given to users with a need for import/export or similar remote functionality.

ug_admin_roles Authorization to view, create and update workflow roles and assign users to roles.

ug_admin_securedRoles Authorization to secure a role and restrict its access to users. Authorization to assign restricted roles to users.

ug_admin_securityGroups Authorization to map security groups to workflow roles.

ug_admin_static_documents Authorization to add and remove static documents in the modeler.

ug_admin_technologyTypes Authorization to create, update and delete technology types.

ug_admin_tools Authorization to delete workflows with any status as well as authorization to run a report that analyzes what Banner components have changed.

ug_admin_users_fullAccess Authorization to full administration rights to view, create, update and delete user accounts.

ug_admin_users_view Authorization to read only access to search and view user accounts.

ug_admin_webservices Used for Luminis integration.

181nner Workflow Technical Integration Guide | Security Management in Banner Workflow

Page 182: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Banner Workflow Entity Relationship Diagrams

Banner Workflow entity relationship diagrams will be displayed below.

• “Archive” on page 185

• “Calendar” on page 186

• “Component” on page 187

• “Component Query” on page 188

• “Custom Activity” on page 189

• “Dynamic Data Source” on page 190

• “Document” on page 190

• “Event” on page 191

• “Event Query” on page 191

• “External Events” on page 192

• “Process” on page 193

• “Process Definition” on page 194

• “Process Definition Query” on page 195

• “Process Query” on page 196

• “Role and User” on page 197

• “Runtime Views” on page 198

• “Workflow Engine” on page 199

• “Workflow Engine Views” on page 200

Each ERD diagram shows tables and views that show primary keys, foreign keys, alternate keys, table columns, and their relationships.

• Primary keys are noted with a key picture:

• Foreign keys are noted with a “(FK)” following the table column name.

• Alternate keys are noted with a “(AK)” following the table column name.

• Verb phrases are shown in middle of the relationship line. They describe the relationship that you create between a parent and child entity. Many of them in our models are shown with this notation “FK_” and then following a constraint name.

182nner Workflow Technical Integration Guide | Banner Workflow Entity Relationship Diagrams

Page 183: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

The diagrams show relationships and cardinality information is represented in Integrated Definition for Information Modeling (IDEF1X) modeling notation. This notation uses the following symbols:

Cardinality Symbols Used

One to zero, one, or more

One to one or more (P)

One to zero or more (Z)

183nner Workflow Technical Integration Guide | Banner Workflow Entity Relationship Diagrams

Page 184: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

One to exactly (N)

Cardinality Symbols Used

184nner Workflow Technical Integration Guide | Banner Workflow Entity Relationship Diagrams

Page 185: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Archive

FK_ARCHIVED_PD_ARCHIVE

FK_ARCD_PARAM_ARCD_WF

FK_ARCHIVED_COMPONENT_ARCHIVE

FK_ARCHIVED_WORKFLOW_ARCHIVE

FK_ARCHD_WI_ARCHD_WF

FK_ARCHD_ACTVTY_ARCHD_WKITM

ARCHIVED_PROCESS_DEFINITION

ARCHIVE_ID: NUMBER(38)ID: NUMBER(38)

NAME: VARCHAR2(255)DESCRIPTION: VARCHAR2(255)VERSION: NUMBER(38)CONFIDENTIAL: VARCHAR2(1)BEST_PRACTICE: VARCHAR2(1)METRICS_ENABLED: VARCHAR2(1)ESTIMATED_TIME: NUMBER(38)LAGGING_PERCENTAGE: NUMBER(38)CALENDAR: VARCHAR2(255)ORGANIZATION_NAME: VARCHAR2(255)

ARCHIVED_PARAMETER

ARCHIVE_ID: NUMBER(38)WORKFLOW_KEY: VARCHAR2(255)NAME: VARCHAR2(255)VALUE: CLOBTYPE: VARCHAR2(255)

ARCHIVE

ID: NUMBER(38)

USER_LOGON: VARCHAR2(255)SHOW_CONTEXT_PARAMETERS: VARCHAR2(1)DAYS_EXPIRED: NUMBER(8)DATE_RAN: DATEPURGE: VARCHAR2(1)

ARCHIVED_WORKFLOW

WORKFLOW_KEY: VARCHAR2(255)ARCHIVE_ID: NUMBER(38)

PROCESS_DEFINITION_ID: NUMBER(38)INSTANCE_NAME: VARCHAR2(255)STATE: VARCHAR2(255)INITIATOR_NAME: VARCHAR2(255)PRIORITY: NUMBER(8)IS_ADMINISTRATIVE: VARCHAR2(1)NOTE: CLOBDATE_CREATED: DATEDATE_COMPLETED: DATEACCUMULATED_ELAPSED_TIME: NUMBER(38)OWNER: VARCHAR2(255)ADMINISTRATOR: VARCHAR2(255)BUSINESS_PROCESS_NAME: VARCHAR2(255)METRICS_STATE: VARCHAR2(255)OVERDUE_DEADLINE: DATELAGGING_DEADLINE: DATEORGANIZATION_NAME: VARCHAR2(255)MIF_CODE: VARCHAR2(32)

ARCHIVED_WORKITEM

ARCHIVE_ID: NUMBER(38)WORKITEM_KEY: VARCHAR2(255)

WORKFLOW_KEY: VARCHAR2(255)ACTIVITY_KEY: NUMBER(38)STATE: VARCHAR2(255)DATE_CREATED: DATEDATE_COMPLETED: DATEACTUAL_TIME: NUMBER(38)ROLE: VARCHAR2(255)DIRECTED_USER_LOGON: VARCHAR2(255)NOTE: CLOBRESERVED: VARCHAR2(1)CONFIDENTIAL: VARCHAR2(1)MANDATORY: VARCHAR2(1)SKIPPED: VARCHAR2(1)PERFORMER_LOGON: VARCHAR2(255)PRIORITY: NUMBER(8)METRICS_STATE: VARCHAR2(255)OVERDUE_DEADLINE: DATELAGGING_DEADLINE: DATEORGANIZATION_NAME: VARCHAR2(255)MIF_CODE: VARCHAR2(32)

ARCHIVED_COMPONENT

ARCHIVE_ID: NUMBER(38)ID: NUMBER(38)

NAME: VARCHAR2(255)DESCRIPTION: VARCHAR2(255)PRODUCT_TYPE_NAME: VARCHAR2(255)RELEASE_ID: VARCHAR2(255)

ARCHIVED_ACTIVITY

ID: NUMBER(38)ARCHIVE_ID: NUMBER(38)WORKITEM_KEY: VARCHAR2(255)

NAME: VARCHAR2(255)DESCRIPTION: VARCHAR2(255)ESTIMATED_WORK_TIME: NUMBER(38)COMPONENT_ID: NUMBER(38)METRICS_ENABLED: VARCHAR2(1)LAGGING_PERCENTAGE: NUMBER(38)IS_DYNAMIC_ROLE: VARCHAR2(1)

185nner Workflow Technical Integration Guide | Banner Workflow Entity Relationship Diagrams

Page 186: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Calendar

FK_WORK_CALENDAR

WORK_CALENDAR

ID: NUMBER(38)

NAME: VARCHAR(255)DESCRIPTION: VARCHAR(255)NEXT_DAY_ID: NUMBER(38)LOCK_TOKEN: NUMBER(38)

WORK_CALENDAR_DAY

ID: NUMBER(38)CALENDAR_ID: NUMBER(38)

DAY_OF_WEEK: NUMBER(38)YEAR: NUMBER(38)DAY_OF_YEAR: NUMBER(38)NEXT_INTERVAL_ID: NUMBER(38)

WORK_CALENDAR_INTERVAL

ID: NUMBER(38)CALENDAR_ID: NUMBER(38)DAY_ID: NUMBER(38)

RELATIVE_BEGIN: NUMBER(38)RELATIVE_END: NUMBER(38)

PROCESS_DEFINITION

ID: NUMBER(38)

IS_EXECUTION_PLAN: VARCHAR2(1)ORG_ID: NUMBER(38)NAME: VARCHAR2(255)DESCRIPTION: VARCHAR2(255)VERSION: NUMBER(38)STATUS: NUMBER(38)IS_ASSOCIABLE: VARCHAR2(1)PROCESS_START_ID: NUMBER(38)BEST_PRACTICE: VARCHAR2(1)CONFIDENTIAL: VARCHAR2(1)OWNER: NUMBER(38)ADMINISTRATOR: NUMBER(38)METRICS_ENABLED: VARCHAR2(1)ESTIMATED_TIME: NUMBER(38)LAGGING_PERCENTAGE: NUMBER(38)WORK_CALENDAR_ID: NUMBER(38)NEXT_NODE_KEY: NUMBER(38)NEXT_ACTIVITY_NUMBER: NUMBER(38)LOCK_TOKEN: NUMBER(38)

186nner Workflow Technical Integration Guide | Banner Workflow Entity Relationship Diagrams

Page 187: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Component

FK_COMPONENT_CATEGORY

FK_C_ACTIVITY_COMPONENT

FK_COMPONENT_PRODUCT_TYPE

FK_COMPONENT_TECHNOLOGY_TYPE

FK_C_ACTIVITY_ROLE

FK_A_ACTIVITY_ROLE

FK_M_ACTIVITY_ROLE

FK_CUSTOM_ACTIVITY_ROLE

FK_INITIATOR_ROLE_ORG_ID

FK_INITIATOR_ROLE_ROLE_ID

CATEGORY

ID: NUMBER(38)

NAME: VARCHAR2(255)DESCRIPTION: VARCHAR2(255)LOCK_TOKEN: NUMBER(38)

COMPONENT

ID: NUMBER(38)

NAME: VARCHAR2(255)DESCRIPTION: VARCHAR2(255)CATEGORY_ID: NUMBER(38)TECHNOLOGY_TYPE_ID: NUMBER(38)COMPONENT_TYPE: VARCHAR2(255)PRODUCT_TYPE_ID: NUMBER(38)RELEASE_ID: VARCHAR2(255)STATUS: VARCHAR2(255)SOURCE: VARCHAR2(255)LOCK_TOKEN: NUMBER(38)

TECHNOLOGY_TYPE

ID: NUMBER(38)

NAME: VARCHAR2(255)DESCRIPTION: VARCHAR2(255)CLIENT_LAUNCH_SERVICE_NAME: VARCHAR2(255)WEB_LAUNCH_SERVICE_NAME: VARCHAR2(255)LOCK_TOKEN: NUMBER(38)

COMPONENT_ACTIVITY

ID: NUMBER(38)PROCESS_DEFINITION_ID: NUMBER(38)

NAME: VARCHAR2(255)DESCRIPTION: VARCHAR2(255)X_COORDINATE: NUMBER(38)Y_COORDINATE: NUMBER(38)ROLE_ID: NUMBER(38)COMPONENT_ID: NUMBER(38)METRICS_ENABLED: VARCHAR2(1)ESTIMATED_TIME: NUMBER(38)LAGGING_PERCENTAGE: NUMBER(38)MANDATORY_IND: VARCHAR2(1)CONFIDENTIAL_IND: VARCHAR2(1)PERFORMER_RULE: VARCHAR2(255)DYNAMIC_ROLE: VARCHAR2(255)IMAGE_NAME: VARCHAR2(512)FOREGROUND_COLOR: NUMBER(38)BACKGROUND_COLOR: NUMBER(38)

PRODUCT_TYPE

ID: NUMBER(38)

NAME: VARCHAR2(255)VERSION: VARCHAR2(255)DESCRIPTION: VARCHAR2(255)DATA_SOURCE_NAME: VARCHAR2(255)LOCK_TOKEN: NUMBER(38)

ROLE

ID: NUMBER(38)

NAME: VARCHAR2(255)DESCRIPTION: VARCHAR2(255)SECURED: VARCHAR2(1)LOCK_TOKEN: NUMBER(38)

MANUAL_ACTIVITY

ID: NUMBER(38)PROCESS_DEFINITION_ID: NUMBER(38)

NAME: VARCHAR2(255)DESCRIPTION: VARCHAR2(255)X_COORDINATE: NUMBER(38)Y_COORDINATE: NUMBER(38)ROLE_ID: NUMBER(38)METRICS_ENABLED: VARCHAR2(1)ESTIMATED_TIME: NUMBER(38)LAGGING_PERCENTAGE: NUMBER(38)MANDATORY_IND: VARCHAR2(1)CONFIDENTIAL_IND: VARCHAR2(1)PERFORMER_RULE: VARCHAR2(255)DYNAMIC_ROLE: VARCHAR2(255)IMAGE_NAME: VARCHAR2(512)MESSAGE: CLOBFOREGROUND_COLOR: NUMBER(38)BACKGROUND_COLOR: NUMBER(38)

APPROVAL_ACTIVITY

ID: NUMBER(38)PROCESS_DEFINITION_ID: NUMBER(38)

NAME: VARCHAR2(255)DESCRIPTION: VARCHAR2(255)X_COORDINATE: NUMBER(38)Y_COORDINATE: NUMBER(38)ROLE_ID: NUMBER(38)METRICS_ENABLED: VARCHAR2(1)ESTIMATED_TIME: NUMBER(38)LAGGING_PERCENTAGE: NUMBER(38)MANDATORY_IND: VARCHAR2(1)CONFIDENTIAL_IND: VARCHAR2(1)PERFORMER_RULE: VARCHAR2(255)DYNAMIC_ROLE: VARCHAR2(255)IMAGE_NAME: VARCHAR2(512)MESSAGE: CLOBAPPROVED_ACTIVITY_ID: NUMBER(38)FIRST_PARAMETER_NAME: VARCHAR2(255)SECOND_PARAMETER_NAME: VARCHAR2(255)DIRECTION: VARCHAR2(255)FOREGROUND_COLOR: NUMBER(38)BACKGROUND_COLOR: NUMBER(38)

CUSTOM_ACTIVITY

ID: NUMBER(38)PROCESS_DEFINITION_ID: NUMBER(38)

NAME: VARCHAR2(255)DESCRIPTION: VARCHAR2(255)X_COORDINATE: NUMBER(38)Y_COORDINATE: NUMBER(38)ROLE_ID: NUMBER(38)COMPONENT_ID: NUMBER(38)METRICS_ENABLED: VARCHAR2(1)ESTIMATED_TIME: NUMBER(38)LAGGING_PERCENTAGE: NUMBER(38)MANDATORY_IND: VARCHAR2(1)CONFIDENTIAL_IND: VARCHAR2(1)PERFORMER_RULE: VARCHAR2(255)DYNAMIC_ROLE: VARCHAR2(255)IMAGE_NAME: VARCHAR2(512)FOREGROUND_COLOR: NUMBER(38)BACKGROUND_COLOR: NUMBER(38)

ORGANIZATION

id: NUMBER(38)

PARENT_ID: NUMBER(38)NAME: VARCHAR2(32)DESCRIPTION: VARCHAR2(255)IS_ROOT: VARCHAR2(1)MIF_CODE: VARCHAR2(32)LOCK_TOKEN: NUMBER(38)

INITIATOR_ROLE

ID: NUMBER(38)

PROCESS_ID: NUMBER(38)ROLE_ID: NUMBER(38)ORG_ID: NUMBER(38)

PROCESS_DEF_PROCESS_ASSOC_SET

PROCESS_ID: NUMBER(38)

LOCK_TOKEN: NUMBER(38)

187nner Workflow Technical Integration Guide | Banner Workflow Entity Relationship Diagrams

Page 188: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Component Query

cat

t

p

c

FK_COMPONENT_CATEGORY

FK_COMPONENT_PRODUCT_TYPE

FK_COMPONENT_TECHNOLOGY_TYPE

COMPONENT_QUERY

ID: c.IDNAME: c.NAMEDESCRIPTION: c.DESCRIPTIONCOMPONENT_TYPE: c.COMPONENT_TYPERELEASE_ID: c.RELEASE_IDSTATUS: c.STATUSSOURCE: c.SOURCEPRODUCT_TYPE_NAME: p.NAMETECHNOLOGY_TYPE_NAME: t.NAMECATEGORY_NAME: cat.NAMETECHNOLOGY_TYPE_ID: c.TECHNOLOGY_TYPE_IDCATEGORY_ID: c.CATEGORY_IDPRODUCT_TYPE_ID: c.PRODUCT_TYPE_ID

CATEGORY

ID: NUMBER(38)

NAME: VARCHAR2(255)DESCRIPTION: VARCHAR2(255)LOCK_TOKEN: NUMBER(38)

COMPONENT

ID: NUMBER(38)

NAME: VARCHAR2(255)DESCRIPTION: VARCHAR2(255)CATEGORY_ID: NUMBER(38)TECHNOLOGY_TYPE_ID: NUMBER(38)COMPONENT_TYPE: VARCHAR2(255)PRODUCT_TYPE_ID: NUMBER(38)RELEASE_ID: VARCHAR2(255)STATUS: VARCHAR2(255)SOURCE: VARCHAR2(255)LOCK_TOKEN: NUMBER(38)PRODUCT_TYPE

ID: NUMBER(38)

NAME: VARCHAR2(255)VERSION: VARCHAR2(255)DESCRIPTION: VARCHAR2(255)DATA_SOURCE_NAME: VARCHAR2(255)LOCK_TOKEN: NUMBER(38)

TECHNOLOGY_TYPE

ID: NUMBER(38)

NAME: VARCHAR2(255)DESCRIPTION: VARCHAR2(255)CLIENT_LAUNCH_SERVICE_NAME: VARCHAR2(255WEB_LAUNCH_SERVICE_NAME: VARCHAR2(255)LOCK_TOKEN: NUMBER(38)

188nner Workflow Technical Integration Guide | Banner Workflow Entity Relationship Diagrams

Page 189: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Custom Activity

FK_CC_ACTIVITY_COMPONENT

CUSTOM_ACTIVITY

ID: NUMBER(38)PROCESS_DEFINITION_ID: NUMBER(38)

NAME: VARCHAR2(255)DESCRIPTION: VARCHAR2(255)X_COORDINATE: NUMBER(38)Y_COORDINATE: NUMBER(38)ROLE_ID: NUMBER(38)COMPONENT_ID: NUMBER(38)METRICS_ENABLED: VARCHAR2(1)ESTIMATED_TIME: NUMBER(38)LAGGING_PERCENTAGE: NUMBER(38)MANDATORY_IND: VARCHAR2(1)CONFIDENTIAL_IND: VARCHAR2(1)PERFORMER_RULE: VARCHAR2(255)DYNAMIC_ROLE: VARCHAR2(255)IMAGE_NAME: VARCHAR2(512)FOREGROUND_COLOR: NUMBER(38)BACKGROUND_COLOR: NUMBER(38)

CUSTOM_COMPONENT

ID: NUMBER(38)

TITLE: VARCHAR2(255)HEAD_CODE: CLOBBODY_CODE: CLOBSHOW_WORKFLOW_CONTAINER: VARCHAR2(1)

INPUT_CONTROL

CUSTOM_COMPONENT_ID: NUMBER(38)ID: NUMBER(38)LABEL: VARCHAR2(255)NAME: VARCHAR2(255)CLASS: VARCHAR2(255)ID_ATTR: VARCHAR2(255)DESCRIPTION: VARCHAR2(255)TYPE: VARCHAR2(255)REQUIRED: VARCHAR(1)GUARANTEED: VARCHAR(1)EDITABLE: VARCHAR(1)WIDTH: NUMBER(38)

ITEM

CUSTOM_COMPONENT_ID: NUMBER(38)CONTROL_ID: NUMBER(38)SEQUENCE: NUMBER(38)VALUE: VARCHAR2(4000)LABEL: VARCHAR2(4000)

OUTPUT_CONTROL

CUSTOM_COMPONENT_ID: NUMBER(38)ID: NUMBER(38)LABEL: VARCHAR2(255)CLASS: VARCHAR2(255)ID_ATTR: VARCHAR2(255)MESSAGE: CLOB

SELECT_CONTROL

CUSTOM_COMPONENT_ID: NUMBER(38)ID: NUMBER(38)LABEL: VARCHAR2(255)NAME: VARCHAR2(255)CLASS: VARCHAR2(255)ID_ATTR: VARCHAR2(255)DESCRIPTION: VARCHAR2(255)TYPE: VARCHAR2(255)REQUIRED: VARCHAR(1)GUARANTEED: VARCHAR(1)STYLE: VARCHAR2(255)VISIBLE_ROWS: NUMBER(38)DYNAMIC_DATA_SOURCE_ID: NUMBER(38)

TEXT_AREA_CONTROL

CUSTOM_COMPONENT_ID: NUMBER(38)ID: NUMBER(38)LABEL: VARCHAR2(255)NAME: VARCHAR2(255)CLASS: VARCHAR2(255)ID_ATTR: VARCHAR2(255)DESCRIPTION: VARCHAR2(255)TYPE: VARCHAR2(255)REQUIRED: VARCHAR(1)EDITABLE: VARCHAR(1)GUARANTEED: VARCHAR(1)VISIBLE_ROWS: NUMBER(38)VISIBLE_COLUMNS: NUMBER(38)

189nner Workflow Technical Integration Guide | Banner Workflow Entity Relationship Diagrams

Page 190: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Dynamic Data Source

Document

FK_DDS_ID

FK_DDS_COMP_PARAMETER_MAPPING

FK_DDS_DDS_PARAMETER_MAPPING

DYNAMIC_DATA_SOURCE_DEFINITION

ID: NUMBER(38)

NAME: VARCHAR2(255)DESCRIPTION: VARCHAR2(255)SQL: CLOBDATA_SOURCE_NAME: VARCHAR2(255)LOCK_TOKEN: NUMBER(38)

DYNAMIC_DATA_SOURCE_MAPPING

DYNAMIC_DATA_SOURCE_ID: NUMBER(38)PROCESS_DEFINITION_ID: NUMBER(38)CUSTOM_COMPONENT_ID: NUMBER(38)CONTROL_ID: NUMBER(38)SEQUENCE: NUMBER(38)DDS_PARAMETER_NAME: VARCHAR2(255)COMPONENT_PARAMETER_NAME: VARCHAR2(255PARAMETER_TYPE: VARCHAR2(255)

PARAMETER

ID: NUMBER(38)

PARAMETER_HOLDER_KEY: NUMBER(38NAME: VARCHAR2(255)DESCRIPTION: VARCHAR2(255)TYPE: VARCHAR2(255)REQUIRED: VARCHAR(1)GUARANTEED: VARCHAR(1)SEQUENCE: NUMBER(38)LOCK_TOKEN: NUMBER(38)DEFAULT_VALUE: CLOB

SELECT_CONTROL

CUSTOM_COMPONENT_ID: NUMBER(38)ID: NUMBER(38)LABEL: VARCHAR2(255)NAME: VARCHAR2(255)CLASS: VARCHAR2(255)ID_ATTR: VARCHAR2(255)DESCRIPTION: VARCHAR2(255)TYPE: VARCHAR2(255)REQUIRED: VARCHAR(1)GUARANTEED: VARCHAR(1)STYLE: VARCHAR2(255)VISIBLE_ROWS: NUMBER(38)DYNAMIC_DATA_SOURCE_ID: NUMBER(38)

DOCUMENT_NAME

HOLDER_KEY: NUMBER(38)NAME: VARCHAR2(256)DESCRIPTION: VARCHAR2(255)

DOCUMENT

ID: NUMBER(38)

SOURCE_NAME: VARCHAR2(255)CREATED: NUMBER(38)MODIFIED: NUMBER(38)CONTENT: BLOBCOMPLETED: VARCHAR2(1)NAME: VARCHAR2(255)DESCRIPTION: VARCHAR2(255)NAMESPACE: VARCHAR2(255)WORKFLOW_ID: NUMBER(38)LOCK_TOKEN: NUMBER(38)

190nner Workflow Technical Integration Guide | Banner Workflow Entity Relationship Diagrams

Page 191: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Event

Event Query

FK_EVENT_PROC_ASSOC_EVENT_ID

FK_EVENT_ID

FK_EVENT_PRDCT_TYPE

FK_EVENT_PROC_ASSOC_ORG_ID

EVENT

ID: NUMBER(38)

NAME: VARCHAR2(255)DESCRIPTION: VARCHAR2(255)PRODUCT_TYPE_ID: NUMBER(38)LOCK_TOKEN: NUMBER(38)

EVENT_PROCESS_DEF_ASSOCIATION

ID: NUMBER(38)

EVENT_ID: NUMBER(38)PROCESS_DEFINITION_ID: NUMBER(38)PROCESS_DEF_IS_ASSOCIABLE: VARCHAR2(1)

PRODUCT_TYPE

ID: NUMBER(38)

NAME: VARCHAR2(255)VERSION: VARCHAR2(255)DESCRIPTION: VARCHAR2(255)DATA_SOURCE_NAME: VARCHAR2(255)LOCK_TOKEN: NUMBER(38)

EVENT_PROCESS_ASSOCIATION

ID: NUMBER(38)

PROCESS_ID: NUMBER(38)EVENT_ID: NUMBER(38)ORG_ID: NUMBER(38)GUARD_RULE: CLOBGUARD_DESCRIPTION: VARCHAR2(4000)

ORGANIZATION

id: NUMBER(38)

PARENT_ID: NUMBER(38)NAME: VARCHAR2(32)DESCRIPTION: VARCHAR2(255)IS_ROOT: VARCHAR2(1)MIF_CODE: VARCHAR2(32)LOCK_TOKEN: NUMBER(38)

p

e

FK_EVENT_PRDCT_TYPE

EVENT_QUERY

ID: e.IDNAME: e.NAMEDESCRIPTION: e.DESCRIPTIONPRODUCT_TYPE_NAME: p.NAMEPRODUCT_TYPE_ID: e.PRODUCT_TYPE_ID

EVENT

ID: NUMBER(38)

NAME: VARCHAR2(255)DESCRIPTION: VARCHAR2(255)PRODUCT_TYPE_ID: NUMBER(38)LOCK_TOKEN: NUMBER(38)

PRODUCT_TYPE

ID: NUMBER(38)

NAME: VARCHAR2(255)VERSION: VARCHAR2(255)DESCRIPTION: VARCHAR2(255)DATA_SOURCE_NAME: VARCHAR2(255)LOCK_TOKEN: NUMBER(38)

191nner Workflow Technical Integration Guide | Banner Workflow Entity Relationship Diagrams

Page 192: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

External Events

FK_EE_HISTORY_EE_ID

FK_EE_HISTORY_PROCESS_EE_ID

FK_EXTERNAL_EVENT_ID

FK_ERROR_EXTERNAL_EVENT_ID

ENG_COMPLETED_EVENTS

ID: NUMBER(38)

WF_ID: NUMBER(38)WI_ID: NUMBER(38)EE_ID: NUMBER(38)EVENT_TYPE: VARCHAR2(255)IS_STALE: VARCHAR2(1)CREATED_TIME: NUMBER(38)COMPLETED_TIME: NUMBER(38)

eng_ee_history

EE_ID: NUMBER(38)EVENT_ID: NUMBER(38)

eng_ee_history_process

EE_ID: NUMBER(38)PROCESS_ID: NUMBER(38)ORG_ID: NUMBER(38)ACTIVE: VARCHAR(1)PASSED_GUARD: VARCHAR(1)PD_PK: NUMBER(38)WF_PK: NUMBER(38)

ENG_EVENTS

ID: NUMBER(38)

WF_ID: NUMBER(38)WI_ID: NUMBER(38)EE_ID: NUMBER(38)EVENT_TYPE: VARCHAR(255)SCHEDULED_TIME: NUMBER(38)CREATED_TIME: NUMBER(38)

eng_external_event

ID: NUMBER(38)

EXTERNAL_ID: VARCHAR2(255)EXTERNAL_SOURCE: VARCHAR2(255)EXTERNAL_DATE: NUMBER(38)EVENT_NAME: VARCHAR2(255)PRODUCT_TYPE_NAME: VARCHAR2(255)WORKFLOW_NAME: VARCHAR2(255)CURRENT_STATE: VARCHAR(32)LAST_STATE: VARCHAR(32)CREATED_DATE: NUMBER(38)LAST_CHANGE_DATE: NUMBER(38)ORIGIN: VARCHAR2(30)

eng_external_event_error

ID: NUMBER(38)

EE_ID: NUMBER(38)TYPE: VARCHAR(32)EVENT_ID: NUMBER(38)SYSTEM_ERROR_TRACE: CLOBMISSING_PARAM_NAME: VARCHAR2(255PROCESS_ID: NUMBER(38)PD_ID: NUMBER(38)ORG_ID: NUMBER(38)

eng_external_event_param

EVENT_ID: NUMBER(38)NAME: VARCHAR2(255)IS_NULL: VARCHAR2(1)TYPE: VARCHAR2(255)SEQ: NUMBER(38)VALUE: VARCHAR(255)

ENG_FAILED_EVENTS

ID: NUMBER(38)WF_ID: NUMBER(38)WI_ID: NUMBER(38)EE_ID: NUMBER(38)EVENT_TYPE: VARCHAR2(255)CREATED_TIME: NUMBER(38)COMPLETED_TIME: NUMBER(38)REASON: VARCHAR2(4000)EXCEPTION_CLASS: VARCHAR2(4000MSG: VARCHAR2(4000)

192nner Workflow Technical Integration Guide | Banner Workflow Entity Relationship Diagrams

Page 193: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Process

FK_PROCESS_SHORTCUT_PROCESS

FK_PDP_PROCESS_ID

FK_PROCESS_ID

FK_PROCESS_SHORTCUT_USER FK_EVENT_PROC_ASSOC_EVENT_ID

FK_EVENT_PROC_ASSOC_ORG_ID

FK_INITIATOR_ROLE_PROCESS_ID

FK_PDP_ASSOC_ORG

FK_INITIATOR_ROLE_ORG_ID

FK_WFUSER_PREFERENCES

PROCESS

ID: NUMBER(38)

NAME: VARCHAR2(255)DESCRIPTION: VARCHAR2(255)STATUS: VARCHAR2(38)LOCK_TOKEN: NUMBER(38)

PROCESS_SHORTCUT

USER_ID: NUMBER(38)PROCESS_ID: NUMBER(38)

NAME: VARCHAR2(255)

PROCESS_DEF_PROCESS_ASSOC

ID: NUMBER(38)

PROCESS_ID: NUMBER(38)PROCESS_DEFINITION_ID: NUMBER(38)ORG_ID: NUMBER(38)PROCESS_DEF_IS_ASSOCIABLE: VARCHAR2(1)EFFECTIVE_FROM: NUMBER(38)EFFECTIVE_TO: NUMBER(38)

EVENT_PROCESS_ASSOCIATION

ID: NUMBER(38)

PROCESS_ID: NUMBER(38)EVENT_ID: NUMBER(38)ORG_ID: NUMBER(38)GUARD_RULE: CLOBGUARD_DESCRIPTION: VARCHAR2(4000)

EVENT

ID: NUMBER(38)

NAME: VARCHAR2(255)DESCRIPTION: VARCHAR2(255)PRODUCT_TYPE_ID: NUMBER(38)LOCK_TOKEN: NUMBER(38)

WFUSER

ID: NUMBER(38)

LOGON: VARCHAR2(255)SALT: VARCHAR(20)HASHED_PASSWORD: VARCHAR(32)LAST_NAME: VARCHAR2(255)FIRST_NAME: VARCHAR2(255)MIDDLE_NAME: VARCHAR2(255)EMAIL_ADDRESS: VARCHAR2(255)EFFECTIVE_FROM: NUMBER(38)EFFECTIVE_TO: NUMBER(38)ENABLED: VARCHAR2(1)EXTERNALLY_AUTHENTICATED: VARCHAR2(1)EXTERNAL_ID: VARCHAR2(255)LOCK_TOKEN: NUMBER(38)

ORGANIZATION

id: NUMBER(38)

PARENT_ID: NUMBER(38)NAME: VARCHAR2(32)DESCRIPTION: VARCHAR2(255)IS_ROOT: VARCHAR2(1)MIF_CODE: VARCHAR2(32)LOCK_TOKEN: NUMBER(38)

INITIATOR_ROLE

ID: NUMBER(38)

PROCESS_ID: NUMBER(38)ROLE_ID: NUMBER(38)ORG_ID: NUMBER(38)

WFUSER_PREFERENCES

USER_ID: NUMBER(38)

PREF_LAUNCH_SETTING: VARCHAR2(255)CHECK_FOR_WORK_ITEMS: VARCHAR2(1)REFRESH_INTERVAL_MIN: NUMBER(38)ACCEPT_ACTIVITY_NOTIFICATIONS: VARCHAR2(1)ACCEPT_DEADLINE_NOTIFICATIONS: VARCHAR2(1)CHANNEL_WORKLIST_SORT_ORDER: VARCHAR2(255)CHANNEL_WORKLIST_SIZE_PREF: VARCHAR2(255)

193nner Workflow Technical Integration Guide | Banner Workflow Entity Relationship Diagrams

Page 194: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Process Definition

FK_PDP_ASSOC_PROCESS_DEF_ID

FK_EPD_ASSOC_PROCESS_DEF_ID

FK_OWNER_ROLE

FK_ADMINISTRATOR_ROLE

FK_ASSOCIATION_ID

FK_EVENT_ID

FK_EVENT_PROCDEF_PARAM_MAP

FK_EVENT_PARAMETER_MAP

FK_CONTEXT_PARAMETER_MAPPINGFK_COMPONENT_PARAMETER_MAPPING

FK_ATTRIBUTE_MAPPING

FK_PDP_ASSOC_ORG

FK_PROCESS_DEFINITION_ORG

PROCESS_DEFINITION

ID: NUMBER(38)

IS_EXECUTION_PLAN: VARCHAR2(1)ORG_ID: NUMBER(38)NAME: VARCHAR2(255)DESCRIPTION: VARCHAR2(255)VERSION: NUMBER(38)STATUS: NUMBER(38)IS_ASSOCIABLE: VARCHAR2(1)PROCESS_START_ID: NUMBER(38)BEST_PRACTICE: VARCHAR2(1)CONFIDENTIAL: VARCHAR2(1)OWNER: NUMBER(38)ADMINISTRATOR: NUMBER(38)METRICS_ENABLED: VARCHAR2(1)ESTIMATED_TIME: NUMBER(38)LAGGING_PERCENTAGE: NUMBER(38)WORK_CALENDAR_ID: NUMBER(38)NEXT_NODE_KEY: NUMBER(38)NEXT_ACTIVITY_NUMBER: NUMBER(38)LOCK_TOKEN: NUMBER(38)

PROCESS_DEF_PROCESS_ASSOC

ID: NUMBER(38)

PROCESS_ID: NUMBER(38)PROCESS_DEFINITION_ID: NUMBER(38)ORG_ID: NUMBER(38)PROCESS_DEF_IS_ASSOCIABLE: VARCHAR2(EFFECTIVE_FROM: NUMBER(38)EFFECTIVE_TO: NUMBER(38)

ROLE

ID: NUMBER(38)

NAME: VARCHAR2(255)DESCRIPTION: VARCHAR2(255)SECURED: VARCHAR2(1)LOCK_TOKEN: NUMBER(38)

EVENT_PROCESS_DEF_ASSOCIATION

ID: NUMBER(38)

EVENT_ID: NUMBER(38)PROCESS_DEFINITION_ID: NUMBER(38)PROCESS_DEF_IS_ASSOCIABLE: VARCHAR2(

EVENT_PROCESS_DEF_PARAM_MAP

ASSOCIATION_ID: NUMBER(38)PROCESS_DEF_PARAMETER_ID: NUMBER(38)

EVENT_PARAMETER_ID: NUMBER(38)EVENT_PARAMETER_NAME: VARCHAR2(255)PROCESS_DEF_PARAMETER_NAME: VARCHAR2(25PARAMETER_TYPE: VARCHAR2(255)

EVENT

ID: NUMBER(38)

NAME: VARCHAR2(255)DESCRIPTION: VARCHAR2(255)PRODUCT_TYPE_ID: NUMBER(38)LOCK_TOKEN: NUMBER(38)

ACTIVITY_PARAMETER_MAPPING

PROCESS_DEFINITION_ID: NUMBER(38)COMPONENT_ID: NUMBER(38)ACTIVITY_SEQUENCE_ID: NUMBER(38)COMPONENT_PARAMETER_NAME: VARCHAR2(255CONTEXT_PARAMETER_NAME: VARCHAR2(255)PARAMETER_DIRECTION: VARCHAR2(255)PARAMETER_TYPE: VARCHAR2(255)SEQUENCE: NUMBER(38)

PARAMETER

ID: NUMBER(38)

PARAMETER_HOLDER_KEY: NUMBER(38NAME: VARCHAR2(255)DESCRIPTION: VARCHAR2(255)TYPE: VARCHAR2(255)REQUIRED: VARCHAR(1)GUARANTEED: VARCHAR(1)SEQUENCE: NUMBER(38)LOCK_TOKEN: NUMBER(38)DEFAULT_VALUE: CLOB

ATTRIBUTE_MAPPING

PROCESS_DEFINITION_ID: NUMBER(38)NODE_ID: NUMBER(38)CONTEXT_PARAMETER_NAME: VARCHAR2(255)ATTRIBUTE_NAME: VARCHAR2(255)SEQUENCE: NUMBER(38)

ORGANIZATION

id: NUMBER(38)

PARENT_ID: NUMBER(38)NAME: VARCHAR2(32)DESCRIPTION: VARCHAR2(255)IS_ROOT: VARCHAR2(1)MIF_CODE: VARCHAR2(32)LOCK_TOKEN: NUMBER(38)

194nner Workflow Technical Integration Guide | Banner Workflow Entity Relationship Diagrams

Page 195: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Process Definition Query

pd

FK_OWNER_ROLE

FK_ADMINISTRATOR_ROLE

r2

r1

FK_PROCESS_DEFINITION_ORG

org

PROCESS_DEFINITION

ID: NUMBER(38)IS_EXECUTION_PLAN: VARCHAR2(1)

ORG_ID: NUMBER(38)NAME: VARCHAR2(255)DESCRIPTION: VARCHAR2(255)VERSION: NUMBER(38)STATUS: NUMBER(38)IS_ASSOCIABLE: VARCHAR2(1)PROCESS_START_ID: NUMBER(38)BEST_PRACTICE: VARCHAR2(1)CONFIDENTIAL: VARCHAR2(1)OWNER: NUMBER(38)ADMINISTRATOR: NUMBER(38)METRICS_ENABLED: VARCHAR2(1)ESTIMATED_TIME: NUMBER(38)LAGGING_PERCENTAGE: NUMBER(38)WORK_CALENDAR_ID: NUMBER(38)NEXT_NODE_KEY: NUMBER(38)NEXT_ACTIVITY_NUMBER: NUMBER(38)LOCK_TOKEN: NUMBER(38)

PROCESS_DEFINITION_QUERY

ID: pd.IDNAME: pd.NAMEBEST_PRACTICE: pd.BEST_PRACTICECONFIDENTIAL: pd.CONFIDENTIALSTATUS: pd.STATUSOWNER: r1.NAMEADMINISTRATOR: r2.NAMEVERSION: pd.VERSIONORG_ID: pd.ORG_IDORG_NAME: org.NAME

ROLE

ID: NUMBER(38)

NAME: VARCHAR2(255)DESCRIPTION: VARCHAR2(255)SECURED: VARCHAR2(1)LOCK_TOKEN: NUMBER(38)

ORGANIZATION

id: NUMBER(38)

PARENT_ID: NUMBER(38)NAME: VARCHAR2(32)DESCRIPTION: VARCHAR2(255)IS_ROOT: VARCHAR2(1)MIF_CODE: VARCHAR2(32)LOCK_TOKEN: NUMBER(38)

195nner Workflow Technical Integration Guide | Banner Workflow Entity Relationship Diagrams

Page 196: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Process Query

pt

FK_EVENT_PRDCT_TYPE

p

epa

pd

e

pdpa

FK_PDP_ASSOC_PROCESS_DEF_IDFK_EVENT_PROC_ASSOC_EVENT_ID

FK_PROCESS_ID

FK_PDP_PROCESS_ID

PRODUCT_TYPE

ID: NUMBER(38)

NAME: VARCHAR2(255)VERSION: VARCHAR2(255)DESCRIPTION: VARCHAR2(255)DATA_SOURCE_NAME: VARCHAR2(255)LOCK_TOKEN: NUMBER(38)

PROCESS_QUERY

ID: p.IDNAME: p.NAMEDESCRIPTION: p.DESCRIPTIONSTATUS: p.STATUSEVENT_NAME: e.NAMEEVENT_PRODUCT_TYPE_NAME: pt.NAMEPROCESS_DEFINITION_NAME: pd.NAMEPROCESS_DEFINITION_VERSION: pd.VERSIONPROCESS_DEFINITION_STATUS: pd.STATUS

PROCESS_DEFINITION

ID: NUMBER(38)IS_EXECUTION_PLAN: VARCHAR2(1)

ORG_ID: NUMBER(38)NAME: VARCHAR2(255)DESCRIPTION: VARCHAR2(255)VERSION: NUMBER(38)STATUS: NUMBER(38)IS_ASSOCIABLE: VARCHAR2(1)PROCESS_START_ID: NUMBER(38)BEST_PRACTICE: VARCHAR2(1)CONFIDENTIAL: VARCHAR2(1)OWNER: NUMBER(38)ADMINISTRATOR: NUMBER(38)METRICS_ENABLED: VARCHAR2(1)ESTIMATED_TIME: NUMBER(38)LAGGING_PERCENTAGE: NUMBER(38)WORK_CALENDAR_ID: NUMBER(38)NEXT_NODE_KEY: NUMBER(38)NEXT_ACTIVITY_NUMBER: NUMBER(38)LOCK_TOKEN: NUMBER(38)

EVENT

ID: NUMBER(38)

NAME: VARCHAR2(255)DESCRIPTION: VARCHAR2(255)PRODUCT_TYPE_ID: NUMBER(38)LOCK_TOKEN: NUMBER(38)

EVENT_PROCESS_ASSOCIATION

ID: NUMBER(38)

PROCESS_ID: NUMBER(38)EVENT_ID: NUMBER(38)ORG_ID: NUMBER(38)GUARD_RULE: CLOBGUARD_DESCRIPTION: VARCHAR2(4000)

PROCESS_DEF_PROCESS_ASSOC

ID: NUMBER(38)

PROCESS_ID: NUMBER(38)PROCESS_DEFINITION_ID: NUMBER(38)ORG_ID: NUMBER(38)PROCESS_DEF_IS_ASSOCIABLE: VARCHAR2(1)EFFECTIVE_FROM: NUMBER(38)EFFECTIVE_TO: NUMBER(38)

PROCESS

ID: NUMBER(38)

NAME: VARCHAR2(255)DESCRIPTION: VARCHAR2(255)STATUS: VARCHAR2(38)LOCK_TOKEN: NUMBER(38)

196nner Workflow Technical Integration Guide | Banner Workflow Entity Relationship Diagrams

Page 197: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Role and User

FK_SUGR_ROLES_ROLE

FK_PROXY_ASSIGNMENT_ROLE

FK_ROLE_ASSIGNMENT_ROLE

FK_PROCESS_SHORTCUT_USER

FK_PROXY_ASSIGNMENT_AUTH_USER

FK_PROXY_ASSIGNMENT_USER

FK_ROLE_ASSIGNMENT_USER

FK_INITIATOR_ROLE_ROLE_ID

FK_PROXY_ASSIGNMENT_ORG

FK_ROLE_ASSIGNMENT_ORG

FK_INITIATOR_ROLE_ORG_ID

FK_WFUSER_PREFERENCES

ROLE

ID: NUMBER(38)

NAME: VARCHAR2(255)DESCRIPTION: VARCHAR2(255)SECURED: VARCHAR2(1)LOCK_TOKEN: NUMBER(38)

WFUSER

ID: NUMBER(38)

LOGON: VARCHAR2(255)SALT: VARCHAR(20)HASHED_PASSWORD: VARCHAR(32)LAST_NAME: VARCHAR2(255)FIRST_NAME: VARCHAR2(255)MIDDLE_NAME: VARCHAR2(255)EMAIL_ADDRESS: VARCHAR2(255)EFFECTIVE_FROM: NUMBER(38)EFFECTIVE_TO: NUMBER(38)ENABLED: VARCHAR2(1)EXTERNALLY_AUTHENTICATED: VARCHAR2(1)EXTERNAL_ID: VARCHAR2(255)LOCK_TOKEN: NUMBER(38)

SECURITY_USER_GROUP_ROLES

GROUP_NAME: VARCHAR2(255)ROLE_ID: NUMBER(38)

PROXY_ASSIGNMENT

ID: NUMBER(38)

ORG_ID: NUMBER(38)ROLE_ID: NUMBER(38)USER_ID: NUMBER(38)EFFECTIVE_FROM: NUMBER(38)EFFECTIVE_TO: NUMBER(38)CONFIDENTIAL: VARCHAR2(1)NON_CONFIDENTIAL: VARCHAR2(1)AUTH_USER_ID: NUMBER(38)

ROLE_ASSIGNMENT

ID: NUMBER(38)

ORG_ID: NUMBER(38)ROLE_ID: NUMBER(38)USER_ID: NUMBER(38)EFFECTIVE_FROM: NUMBER(38)EFFECTIVE_TO: NUMBER(38)ASSIGNMENT_TYPE: VARCHAR2(30)

PROCESS_SHORTCUT

USER_ID: NUMBER(38)PROCESS_ID: NUMBER(38)

NAME: VARCHAR2(255)ORGANIZATION

id: NUMBER(38)

PARENT_ID: NUMBER(38)NAME: VARCHAR2(32)DESCRIPTION: VARCHAR2(255)IS_ROOT: VARCHAR2(1)MIF_CODE: VARCHAR2(32)LOCK_TOKEN: NUMBER(38)

INITIATOR_ROLE

ID: NUMBER(38)

PROCESS_ID: NUMBER(38)ROLE_ID: NUMBER(38)ORG_ID: NUMBER(38)

WFUSER_PREFERENCES

USER_ID: NUMBER(38)

PREF_LAUNCH_SETTING: VARCHAR2(255)CHECK_FOR_WORK_ITEMS: VARCHAR2(1)REFRESH_INTERVAL_MIN: NUMBER(38)ACCEPT_ACTIVITY_NOTIFICATIONS: VARCHAR2(1)ACCEPT_DEADLINE_NOTIFICATIONS: VARCHAR2(1)CHANNEL_WORKLIST_SORT_ORDER: VARCHAR2(255)CHANNEL_WORKLIST_SIZE_PREF: VARCHAR2(255)

197nner Workflow Technical Integration Guide | Banner Workflow Entity Relationship Diagrams

Page 198: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Runtime Views

vWorkflowAlerts

ID: <eng_workflow_alert.I...>TYPE: <eng_workflow_alert.T...>WF_ID: <eng_workflow_alert.W...>WORKITEM_ID: <eng_workflow_alert.W...>MSG_PARAM: <eng_workflow_alert.m...>ORIGINATING_ERROR: <eng_workflow_alert.o...DATETIME: <eng_workflow_alert.d...>org_id: <eng_workflow.org_id>workflow_name: <eng_workflow.name>wf_owner_role_id: <eng_workflow.owner_r...>wf_state: <eng_workflow.current...>process_name: <process.name>

vWorkflowWithDefinition

ID: <eng_workflow.ID>ORG_ID: <eng_workflow.ORG_ID>PD_ID: <eng_workflow.PD_ID>NAME: <eng_workflow.NAME>CURRENT_STATE: <eng_workflow.CURRENT...>LAST_STATE: <eng_workflow.LAST_ST...>START_DATE: <eng_workflow.START_D...>STOP_DATE: <eng_workflow.STOP_DA...>PRIORITY: <eng_workflow.PRIORIT...>RUNNING: <eng_workflow.RUNNING>ORIGINATING_USER_ID: <eng_workflow.ORIGINA...>ORIGINATING_EVENT_ID: <eng_workflow.ORIGINA...>ORIGINATING_PROCESS_ID: <eng_workflow.ORIGINA...>OWNER_ROLE_ID: <eng_workflow.OWNER_R...>ADMIN_ROLE_ID: <eng_workflow.ADMIN_R...>REQUIRES_EXECUTION_PLAN: <eng_workflow.REQUIRE..OVERDUE_DATE: <eng_workflow.OVERDUE...>LAGGING_DATE: <eng_workflow.LAGGING...>OVERDUE: <eng_workflow.OVERDUE>LAGGING: <eng_workflow.LAGGING>ORIGIN: <eng_workflow.ORIGIN>LOCK_TOKEN: <eng_workflow.LOCK_TO...>pd_org_id: <process_definition.o...>pd_name: <process_definition.n...>pd_version: <process_definition.v...>process_name: <process.name>

vWorkitems

ID: <eng_workitem.ID>TYPE: <eng_workitem.TYPE>ORG_ID: <eng_workitem.ORG_ID>WF_ID: <eng_workitem.WF_ID>PD_ID: <eng_workitem.PD_ID>NODE_ID: <eng_workitem.NODE_ID>CURRENT_STATE: <eng_workitem.CURRENT...>LAST_STATE: <eng_workitem.LAST_ST...>START_DATE: <eng_workitem.START_D...>STOP_DATE: <eng_workitem.STOP_DA...>WORKLIST_OWNER: <eng_workitem.WORKLIS...>DIRECTED_TO_USER: <eng_workitem.DIRECTE...NAME: <eng_workitem.NAME>ROLE_ID: <eng_workitem.ROLE_ID>MANDATORY: <eng_workitem.MANDATO...>CONFIDENTIAL: <eng_workitem.CONFIDE...>COMPONENT_ID: <eng_workitem.COMPONE...>PERFORMER_ID: <eng_workitem.PERFORM...>RESERVED_DATE: <eng_workitem.RESERVE...>OVERDUE_DATE: <eng_workitem.OVERDUE...>LAGGING_DATE: <eng_workitem.LAGGING...>OVERDUE: <eng_workitem.OVERDUE>LAGGING: <eng_workitem.LAGGING>RUNNING: <eng_workitem.RUNNING>DYNAMIC_ROLE: <eng_workitem.dynamic...>workflow_name: <eng_workflow.name>workflow_priority: <eng_workflow.priorit...>workflow_lagging: <eng_workflow.lagging>workflow_overdue: <eng_workflow.overdue>workflow_org_id: <eng_workflow.org_id>

ENG_WORKFLOW

ID: NUMBER(38)

ORG_ID: NUMBER(38)PD_ID: NUMBER(38)NAME: VARCHAR2(255)CURRENT_STATE: VARCHAR2(32)LAST_STATE: VARCHAR2(32)START_DATE: NUMBER(38)STOP_DATE: NUMBER(38)PRIORITY: NUMBER(38)RUNNING: VARCHAR2(1)ORIGINATING_USER_ID: NUMBER(38)ORIGINATING_EVENT_ID: NUMBER(38)ORIGINATING_PROCESS_ID: NUMBER(38)OWNER_ROLE_ID: NUMBER(38)ADMIN_ROLE_ID: NUMBER(38)OVERDUE_DATE: NUMBER(38)LAGGING_DATE: NUMBER(38)OVERDUE: VARCHAR2(1)LAGGING: VARCHAR2(1)ORIGIN: VARCHAR2(30)LOCK_TOKEN: NUMBER(38)

eng_workflow_alert

ID: NUMBER(38)TYPE: VARCHAR(255)WF_ID: NUMBER(38)WORKITEM_ID: NUMBER(38)msg_param: CLOBoriginating_error: CLOBdatetime: NUMBER(38)

ENG_WORKITEM

ID: NUMBER(38)

TYPE: VARCHAR2(30)ORG_ID: NUMBER(38)WF_ID: NUMBER(38)PD_ID: NUMBER(38)NODE_ID: NUMBER(38)CURRENT_STATE: VARCHAR2(32)LAST_STATE: VARCHAR2(32)START_DATE: NUMBER(38)STOP_DATE: NUMBER(38)WORKLIST_OWNER: VARCHAR2(32DIRECTED_TO_USER: NUMBER(38)NAME: VARCHAR2(255)ROLE_ID: NUMBER(38)MANDATORY: VARCHAR2(1)CONFIDENTIAL: VARCHAR2(1)COMPONENT_ID: NUMBER(38)PERFORMER_ID: VARCHAR2(50)RESERVED_DATE: NUMBER(38)OVERDUE_DATE: NUMBER(38)LAGGING_DATE: NUMBER(38)OVERDUE: VARCHAR2(1)LAGGING: VARCHAR2(1)RUNNING: VARCHAR2(1)DYNAMIC_ROLE: VARCHAR2(255)

PROCESS_DEFINITION

id: NUMBER(38)

is_execution_plan: VARCHAR(1)NAME: VARCHAR2(255)DESCRIPTION: VARCHAR2(255)VERSION: NUMBER(38)STATUS: NUMBER(38)IS_ASSOCIABLE: VARCHAR2(1)ORG_ID: NUMBER(38)PROCESS_START_ID: NUMBER(38)BEST_PRACTICE: VARCHAR2(1)CONFIDENTIAL: VARCHAR2(1)OWNER: NUMBER(38)ADMINISTRATOR: NUMBER(38)METRICS_ENABLED: VARCHAR2(1)ESTIMATED_TIME: NUMBER(38)LAGGING_PERCENTAGE: NUMBER(38)WORK_CALENDAR_ID: NUMBER(38)NEXT_NODE_KEY: NUMBER(38)NEXT_ACTIVITY_NUMBER: NUMBER(38)LOCK_TOKEN: NUMBER(38)

198nner Workflow Technical Integration Guide | Banner Workflow Entity Relationship Diagrams

Page 199: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Workflow Engine

FK_ENG_PROPERTIES_NAMES_PARENT

ENG_PROPERTIES_VALUES_PARENT

FK_OWNING_WORKFLOW

FK_OWNING_WORKFLOW_RUNNING

ENG_WORKFLOWNOTE_PARENT

eng_workflow_alert_parent

ENG_WORKITEMNOTE_PARENT

fk_eng_agent_monitor

FK_ENG_WORKFLOW_PARENT_ORG

FK_ENG_WORKITEM_PARENT_ORGENG_PROPERTIES

ID: NUMBER(38)

ENG_PROPERTIES_NAMES

ID: NUMBER(38)NAME: VARCHAR(255)

LOCK_TOKEN: NUMBER(38)

ENG_PROPERTIES_VALUES

ID: NUMBER(38)NAME: VARCHAR(255)SEQ: NUMBER(38)

TYPE: VARCHAR(255)VALUE: VARCHAR(255)

ENG_WORKFLOW

ID: NUMBER(38)

ORG_ID: NUMBER(38)PD_ID: NUMBER(38)NAME: VARCHAR2(255)CURRENT_STATE: VARCHAR2(32)LAST_STATE: VARCHAR2(32)START_DATE: NUMBER(38)STOP_DATE: NUMBER(38)PRIORITY: NUMBER(38)RUNNING: VARCHAR2(1)ORIGINATING_USER_ID: NUMBER(38)ORIGINATING_EVENT_ID: NUMBER(38)ORIGINATING_PROCESS_ID: NUMBER(38)OWNER_ROLE_ID: NUMBER(38)ADMIN_ROLE_ID: NUMBER(38)REQUIRES_EXECUTION_PLAN: VARCHAR(1)OVERDUE_DATE: NUMBER(38)LAGGING_DATE: NUMBER(38)OVERDUE: VARCHAR2(1)LAGGING: VARCHAR2(1)ORIGIN: VARCHAR2(30)LOCK_TOKEN: NUMBER(38)

eng_workflow_alert

ID: NUMBER(38)TYPE: VARCHAR(255)WF_ID: NUMBER(38)WORKITEM_ID: NUMBER(38)msg_param: CLOBoriginating_error: CLOBdatetime: NUMBER(38)

eng_workflownote

ID: NUMBER(38)SEQ: NUMBER(38)

OWNER_ID: NUMBER(38)AUTHOR: VARCHAR(255)DATETIME: NUMBER(38)TEXT: VARCHAR(255)

ENG_WORKITEM

ID: NUMBER(38)

TYPE: VARCHAR2(30)ORG_ID: NUMBER(38)WF_ID: NUMBER(38)PD_ID: NUMBER(38)NODE_ID: NUMBER(38)THREAD_CONTEXT_ID: NUMBER(38)CURRENT_STATE: VARCHAR2(32)LAST_STATE: VARCHAR2(32)START_DATE: NUMBER(38)STOP_DATE: NUMBER(38)WORKLIST_OWNER: VARCHAR2(32)DIRECTED_TO_USER: NUMBER(38)NAME: VARCHAR2(255)ROLE_ID: NUMBER(38)MANDATORY: VARCHAR2(1)CONFIDENTIAL: VARCHAR2(1)COMPONENT_ID: NUMBER(38)PERFORMER_ID: VARCHAR2(50)RESERVED_DATE: NUMBER(38)OVERDUE_DATE: NUMBER(38)LAGGING_DATE: NUMBER(38)OVERDUE: VARCHAR2(1)LAGGING: VARCHAR2(1)DYNAMIC_ROLE: VARCHAR2(255)RUNNING: VARCHAR2(1)

eng_workitemnote

ID: NUMBER(38)SEQ: NUMBER(38)

OWNER_ID: NUMBER(38)AUTHOR: VARCHAR(255)DATETIME: NUMBER(38)TEXT: VARCHAR(255)

eng_agent_monitor

AGENT_ID: NUMBER(38)JOB_ID: NUMBER(38)

WI_ID: NUMBER(38)UPDATE_TIME: NUMBER(38)

ENG_SYNC_MONITOR

ID: NUMBER(38)

WF_ID: NUMBER(38)NODE_KEY: NUMBER(38)MONITORED_WI_ID: NUMBER(38)TRANSITION_COUNT: NUMBER(38)LOCK_TOKEN: NUMBER(38)

ORGANIZATION

id: NUMBER(38)

PARENT_ID: NUMBER(38)NAME: VARCHAR2(32)DESCRIPTION: VARCHAR2(255)IS_ROOT: VARCHAR2(1)MIF_CODE: VARCHAR2(32)LOCK_TOKEN: NUMBER(38)

199nner Workflow Technical Integration Guide | Banner Workflow Entity Relationship Diagrams

Page 200: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Workflow Engine Views

eng_workflow_alert_parent

FK_OWNING_WORKFLOW

FK_OWNING_WORKFLOW_RUNNING

PK_ENG_PARENT_DEFINITION

FK_ENG_WORKFLOW_PARENT_ORGFK_ENG_WORKITEM_PARENT_ORG

FK_PROCESS_DEFINITION_ORG

eng_workflow_alert

ID: NUMBER(38)TYPE: VARCHAR(255)WF_ID: NUMBER(38)WORKITEM_ID: NUMBER(38)msg_param: CLOBoriginating_error: CLOBdatetime: NUMBER(38)

ENG_WORKFLOW

ID: NUMBER(38)

ORG_ID: NUMBER(38)PD_ID: NUMBER(38)NAME: VARCHAR2(255)CURRENT_STATE: VARCHAR2(32)LAST_STATE: VARCHAR2(32)START_DATE: NUMBER(38)STOP_DATE: NUMBER(38)PRIORITY: NUMBER(38)RUNNING: VARCHAR2(1)ORIGINATING_USER_ID: NUMBER(38)ORIGINATING_EVENT_ID: NUMBER(38)ORIGINATING_PROCESS_ID: NUMBER(38)OWNER_ROLE_ID: NUMBER(38)ADMIN_ROLE_ID: NUMBER(38)REQUIRES_EXECUTION_PLAN: VARCHAR(1)OVERDUE_DATE: NUMBER(38)LAGGING_DATE: NUMBER(38)OVERDUE: VARCHAR2(1)LAGGING: VARCHAR2(1)ORIGIN: VARCHAR2(30)LOCK_TOKEN: NUMBER(38)

PROCESS_DEFINITION

ID: NUMBER(38)IS_EXECUTION_PLAN: VARCHAR2(1)

ORG_ID: NUMBER(38)NAME: VARCHAR2(255)DESCRIPTION: VARCHAR2(255)VERSION: NUMBER(38)STATUS: NUMBER(38)IS_ASSOCIABLE: VARCHAR2(1)PROCESS_START_ID: NUMBER(38)BEST_PRACTICE: VARCHAR2(1)CONFIDENTIAL: VARCHAR2(1)OWNER: NUMBER(38)ADMINISTRATOR: NUMBER(38)METRICS_ENABLED: VARCHAR2(1)ESTIMATED_TIME: NUMBER(38)LAGGING_PERCENTAGE: NUMBER(38)WORK_CALENDAR_ID: NUMBER(38)NEXT_NODE_KEY: NUMBER(38)NEXT_ACTIVITY_NUMBER: NUMBER(38)LOCK_TOKEN: NUMBER(38)

ENG_WORKITEM

ID: NUMBER(38)

TYPE: VARCHAR2(30)ORG_ID: NUMBER(38)WF_ID: NUMBER(38)PD_ID: NUMBER(38)NODE_ID: NUMBER(38)THREAD_CONTEXT_ID: NUMBER(38)CURRENT_STATE: VARCHAR2(32)LAST_STATE: VARCHAR2(32)START_DATE: NUMBER(38)STOP_DATE: NUMBER(38)WORKLIST_OWNER: VARCHAR2(32)DIRECTED_TO_USER: NUMBER(38)NAME: VARCHAR2(255)ROLE_ID: NUMBER(38)MANDATORY: VARCHAR2(1)CONFIDENTIAL: VARCHAR2(1)COMPONENT_ID: NUMBER(38)PERFORMER_ID: VARCHAR2(50)RESERVED_DATE: NUMBER(38)OVERDUE_DATE: NUMBER(38)LAGGING_DATE: NUMBER(38)OVERDUE: VARCHAR2(1)LAGGING: VARCHAR2(1)DYNAMIC_ROLE: VARCHAR2(255)RUNNING: VARCHAR2(1)

ORGANIZATION

id: NUMBER(38)

PARENT_ID: NUMBER(38)NAME: VARCHAR2(32)DESCRIPTION: VARCHAR2(255)IS_ROOT: VARCHAR2(1)MIF_CODE: VARCHAR2(32)LOCK_TOKEN: NUMBER(38)

200nner Workflow Technical Integration Guide | Banner Workflow Entity Relationship Diagrams

Page 201: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Using SSL with Banner Workflow

To allow Banner to connect to Banner Workflow via HTTPS during FORM launching, be sure to define in the Banner Form Technology Type launch parameters “workflow_protocol” to be “https,” “workflow_url” to be the host name of the Banner Workflow server, “workflow_root” to be the web application name, and “workflow_port” to be the available HTTPS port for the Web server instance. These parameters allow Banner to communicate back to Banner Workflow via secured communication channel. Please be aware that the Banner database if on Oracle 11g needs to be configured so that its ACL allows HTTPS connections to be made to the Workflow server.

Web Service Applications

Additional steps are required if you want to make Web Services calls over https or have other application such as Banner Workflow Channels use SSL. For the Web Services frameworks using Java, keystore that the VM uses must include the SSL cert used on the server.

For java clients invoking the Web Services over https, you may need to import SSL certificate as a trusted certificate in the java cacerts keystore for each box that you wish to invoke the Banner Workflow Web Services over https from.

To import the certificate, load the Oracle Wallet manager, and export the SSL certificate to a file. Find the cacerts file that your Java runtime uses (for typical JRE version 5 installs, it should be in <java_home>/jre/lib/security). Import the SSL certificate using keytool:

keytool -import -trustcacerts -alias oas -file myssl.cert -keystore cacerts

where myssl.cert is either of the following:

• the SSL certificate you exported from the Oracle Wallet.

• or, ir you are using Apache HTTP Server, the server.crt file that you created for SSL configuration.

Note: The default password for the cacerts keystore is usually 'changeit' or 'default' depending on your version of java.

When prompted to trust the certificate, answer 'yes'.

Note: If you get a java exception of 'untrusted certificate chain' from a java program, it means that the JSSE (Java Secure Socket Extension) built into your Java installation cannot find the server's SSL certificate in its cacerts file.

201nner Workflow Technical Integration Guide | Using SSL with Banner Workflow

Page 202: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Note: To use SSL with Banner Workflow Channels in Luminis 4, use the Luminis checkssl tool to import the certificate from the application server that is running Banner Workflow. For Luminis 5, see the instructions in “Setting Up Single Sign-On Between Banner Workflow and Luminis 5” on page 79.

202nner Workflow Technical Integration Guide | Using SSL with Banner Workflow

Page 203: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Enabling an Encrypted JDBC Connection

If you would like to enable an encrypted connection to the database from Banner Workflow, perform the following procedures to enable data encryption and data integrity settings on the database server.

Encrypting the Connection

This procedure uses the algorithms SHA1 and AES256 as examples.

1. Access Oracle Net Manager.

2. In the left pane, go to Oracle Net Configuration > Local > Profile.

3. In the drop-down box on the right, select Oracle Advanced Security.

4. Click the Integrity tab.

5. In the Integrity field, select SERVER.

6. In the Checksum Level field, select required.

7. Move SHA1 from Available Methods to Selected Methods.

8. Click the Encryption tab.

9. In the Encryption field, select SERVER.

10. In the Encryption Type field, select required.

11. In the Encryption Seed field, enter any value between 10 and 70 characters long.

12. Move AES256 from Available Methods to Selected Methods.

13. From the File menu, select Save Network Configuration to save your changes.

Testing the Encrypted Connection

To test if the connection is actually encrypted, use the Java code shown in Figure 1. Replace the items in angle brackets, such as <workflow user name>, with appropriate values for your Workflow installation.

Add ojdbc6.jar under <Workflow Home>\lib\jdbc\oracle to the class path to compile and execute the Java code.

If you see the following message after executing the Java class, then you have successfully enabled an encrypted connection to the database.

Database connection created! Encryption algorithm is: AES256, data integrity algorithm is: SHA1

203nner Workflow Technical Integration Guide | Enabling an Encrypted JDBC Connection

Page 204: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Figure 1: Java Code for Testing the Encrypted Connectionimport java.sql.Connection;

import java.sql.DriverManager;

import java.sql.SQLException;

import java.util.Properties;

import oracle.jdbc.OracleConnection;

public class OracleEncryptionTest {

static final String USERNAME = "<workflow user name>";

static final String PASSWORD = "<password>";

static final String URL = "jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)"

+ "(HOST=<host name>)(PORT=<port>))"

+ "(CONNECT_DATA=(SERVICE_NAME=<Workflow service name>)))";

public static void main(String[] args) {

OracleEncryptionTest encryptionTest = new OracleEncryptionTest();

try {

encryptionTest.run();

} catch (SQLException ex) {

ex.printStackTrace();

} catch (Exception ex) {

ex.printStackTrace();

}

}

void run() throws SQLException {

Properties prop = new Properties();

prop.setProperty("user", USERNAME);

prop.setProperty("password", PASSWORD);

Connection conn = DriverManager.getConnection(URL, prop);

OracleConnection oraConn = (OracleConnection) conn;

System.out.println("Database connection created! Encryption algorithm is: "

+ oraConn.getEncryptionAlgorithmName()

+ ", data integrity algorithm is: "

+ oraConn.getDataIntegrityAlgorithmName());

}

}

204nner Workflow Technical Integration Guide | Enabling an Encrypted JDBC Connection

Page 205: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

205Banner Workflow Technical Integration Guide | Altering Web Session Timeouts

Altering Web Session Timeouts

The default session timeouts for Banner Workflow is 30 minutes. To alter the session timeouts edit the <WebSessionTimeout> element under <AdvancedDeployment> in the configuration.xml file.

After making the timeout adjustment a new ear or war file needs to be re-deployed. Execute “bin/wftool updateSystem” from WORKFLOW_HOME and then follow the instructions in “Re-deploying after configuration changes” on page 33 to re-deploy the ear or war file.

Page 206: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

206Banner Workflow Technical Integration Guide | Third Party Software Licenses

Third Party Software Licenses

Banner Workflow 8.x makes use of:

• Castor (http://castor.exolab.org) is Copyright 1999-2004 © Intalio Inc., and others. All Rights Reserved (http://castor.exolab.org/license.html)

• DHTML Calendar (http://www.dynarch.com/projects/calendar) was developed by Dynarch.com and is distributed under the GNU Lesser General Public License (http://www.gnu.org/licenses/lgpl.html)

• Jakarta Oro and Jakarta Regexp (http://jakarta.apache.org/oro/) is developed by the Apache Software Foundation (http://www.apache.org/) that are made available under the Apache Software License (http://www.opensource.org/licenses/apachepl.php)

• JDOM (http://www.jdom.org/) is Copyright (C) 2000-2003 Jason Hunter & Brett McLaughlin. All rights reserved.

• JUnit (http://www.junit.org/) is made available under the Common Public License (http://www.opensource.org/licenses/cpl.php)

• Kunststoff Look&Feel (http://www.incors.org/) is distributed under the GNU Lesser General Public License (http://www.gnu.org/licenses/lgpl.html)

• Uportal was developed by the JA-SIG Collaborative (http://www.ja-sig.org/) and is Copyright (c) 2000 The JA-SIG Collaborative. All rights reserved.

• Xerces (http://xml.apache.org/xerces-j/index.html), Ant (http://ant.apache.org/), Axis (http://ws.apache.org/axis/), Struts (http://struts.apache.org/), Log4j (http://logging.apache.org/log4j/docs/), and httpclient(http://jakarta.apache.org/commons/httpclient/) are software developed by the Apache Software Foundation (http://www.apache.org/) that are made available under the Apache License (http://jakarta.apache.org/commons/license.html)

Page 207: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

Troubleshooting

This chapter describes solutions to some of the common problems you may encounter when you use Banner Workflow with Banner.

Launching Banner from Banner Workflow

I am unable to launch Banner from Banner Workflow. I receive the following message:

*ERROR* You did not connect succesfully; exiting.

It is necessary to have the UTL_HTTP object in your database. This object can be created by running the CATPROC.SQL script that is sent by Oracle. It should be in your ORACLE_HOME/rdbms/admin directory. This script should be run by the user SYS (not SYSTEM).

Users can be using the system when this script is run, however the script could take a long time to complete. It is recommended that the script be run while users are inactive.

Processing Workflows

Workflows triggered by events do not start.

Check the external event pages in Banner Workflow and search for the event in question. If the event was posted to workflow, it will show up in the search, along with its status. If the event could not be evaluated, there will be an error message indicating why the failure occurred. If the event was successfully evaluated, but did not start the expected workflow(s), you can view the event history, which will show the business processes which were evaluated for a possible start, whether or not their guard conditions passed, and which workflow was started for the process. If the external event is not visible from workflow, then it has not been 'posted' to the workflow system. In the case of Banner events, check the Event Queue Record Maintenance Form (GOAEQRM) for the status of the event.

A Banner form does not behave as predicted when it is launched as a workflow activity.

Check the following:

207nner Workflow Technical Integration Guide | Troubleshooting

Page 208: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

1. Verify that the Workflow Enabled check box on the Installation Control Form (GUAINST) is selected. This enables communication between Banner and Banner Workflow for your site.

2. Verify that your forms path points to the appropriate set of forms, including the most up-to-date version of the Banner Workflow-Awareness Library (GOQWFLW).

3. Determine whether the form complies with the guidelines for Workflow-enabled forms that can be found in “Handling Custom Forms” on page 59.

If a baseline form does not comply with the guidelines, submit a contact to the ActionLine so the form can be corrected and made available to you. If a custom form does not comply with the guidelines, use the instructions contained in “Handling Custom Forms” on page 59, to modify the form as necessary.

4. If the form appears to comply with the Workflow-enabling guidelines, use one or both of the following methods to debug your form at runtime:

• If the output does not list the form's associated parameters, the parameters may not have been extracted from Banner Workflow. Possibly, a PRE-FORM trigger in the form is preventing the PRE-FORM trigger in GOQOLIB from executing the parameter extraction logic of GOQWFLW.

• If you locate a problem in a baseline form, report the problem to the ActionLine. If you locate a problem in a custom form, make the appropriate changes so the form complies with Banner standards. If you are unsure about the meaning of the debugging output, you can submit a contact to ActionLine, including the contents of the output.

• Use the tracing capabilities of Banner to locate the problem.

• The GOQRPLS library includes a packaged procedure that enables a Banner Oracle Forms module to spool information about its processing to a flat file (b2ktrace.log) in the user's TEMP directory. Information is spooled as long as the current environment is a Windows 32-bit operating system, the user's TEMP directory can be identified, and the value of the global variable GLOBAL.DO_TRIGGER_TRACE is set to Y.

• By default, the trace variable is set to N. To set it to Y, ask your system administrator to enable you to access, in your FORMS45_PATH, a temporary copy of the executable for the GUAINIT Form that includes the following statement at the beginning of its WHEN-NEW-FORM-INTANCE trigger: COPY('Y', 'GLOBAL.DO_TRIGGER_TRACE');

• Then exit any Banner sessions that were opened by Banner Workflow and restart the appropriate workflow activity. When Banner Workflow reopens Banner, any triggers or subprograms within the Oracle Forms modules of Banner that spool information about their processing will be captured in a b2ktrace.log file in your TEMP directory. Review this file to determine what logic, if any, is failing to execute.

• For example, if the b2ktrace.log file doesn't contain the statement 'G$_WF_CONTROL_FORM.WF_CONTROL_NEW_BLOCK BEGIN' for the execution of your form, then this packaged procedure has not been called in your form. This is most likely a result of a local WHEN-NEW-BLOCK-INSTANCE trigger in your form that is overriding the execution of the same trigger in GOQOLIB (which makes the above procedure call).

208nner Workflow Technical Integration Guide | Troubleshooting

Page 209: Technical Integration Guide deployment information in configuration.xml . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Prepare to Deploy. . . . . . . . . . . . . . . .

Ba

• If you locate a problem in a baseline form, report the problem to the ActionLine. If you locate a problem in a custom form, make the appropriate changes so it complies with Banner standards. If you are unsure about the meaning of the tracing output, you can submit a contact to the ActionLine, including the contents of the output.

Missing required option - database error message appears

You tried to use an automated activity that does not have a database instance identifier correctly attached for the Banner product type. Attach the Banner product type.

Processing Business Events

The status of a business event has been Ready for Processing for a long time.

The Event Dispatcher is probably down. Check with your system administrator.

Customizing Example Workflows

The import fails when you try to move a customized example workflow into the production environment.

Before you start customizing an example workflow in your testing environment, you must initially import the same example workflow seed data into both your testing and production environments. The production environment must have all the data needed to support the new version of the example workflow.

209nner Workflow Technical Integration Guide | Troubleshooting