101
Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Embed Size (px)

Citation preview

Page 1: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

Michigan State UniversityForms Tracking Utility

Introduction for Application Developers

Page 2: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

Objectives

Know what “workflow” means

Gain a general knowledge of FTU & its main components

Understand, at an overview level, how FTU works:From customer/user perspectiveFrom developer/internal perspective

Page 3: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

Objectives

Understand what’s involved in doing an “FTU project”

Understand how to interface a form application to FTU

Page 4: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

What Is FTU?

Establishes an “electronic buck slip”

Provides a common record of approvals

Designed to support hierarchical and parallel approval flows

Approvers go to one place (“the FTU dashboard”) to act on University-wide forms

Page 5: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

What is FTU Not ?(“Truth In Advertising”)

FTU is not a “forms generator”

FTU is not “e-workflow” per se

Page 6: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

What is “E-Workflow”?

Short-hand for conversion of paper-based or mostly-manual workflow processes to electronic workflow processes

Electronically moves data through process steps to completion

Page 7: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

E-Workflow – University Objectives

Enhanced work qualityMinimize errors, delays, rework, duplicative

effortAbility to monitor, find & address

bottlenecks

“Harvest” productivity to apply to higher-value work

Reduce operating cost

Page 8: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

E-Workflow – Design Principles

Capture data at the sourceMaximize use of existing data resourcesEnsure all steps add value “Need to approve” vs. “Need to be aware”Delegation & its boundary conditionsConditional (“sometimes”) steps

“Average” user finds process intuitive – minimize training

Page 9: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

E-Workflow – Design Principles

Check: Are task or responsibility shifts

appropriate?Have we handled attachments to the paper

form?Policy changes considered &

accomplished?

Plan reasonable conversion approach

Page 10: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

E-Workflow – Process Design

In summary:

Any electronic workflow requires careful analysis of the infinitely-flexible paper process and careful choices about how to automate

Page 11: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

E-Workflow & FTU

FTU is a tool that automates one piece of the electronic workflow process. . .

Page 12: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

If this were a manufacturing process . . .

Autom ated Spraypaint U nit

Page 13: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

In an electronic workflow process . . . .

Form s T racking U tility

D A

JVEForm

G radApptForm

JVEForm

Disapproved

ApprovedG radApptForm

Page 14: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

The Major Players in FTU-Land

Forms Tracking Utility (FTU) Manages the routing/approval process Centrally developed utility

Form Application Manages the content of particular types of forms Centrally or decentrally developed system Specific to (tailored to) a form or group of forms

Page 15: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

The Major Players in FTU-Land

EXPENDITUREREPORT

Date: 3/12/02

Submitted by: Joe Smith

Expenditure Reason: Experiments

Description: Test tubes

Expenditure Amount: $21.95

ROUTINGSLIP

Dir _____

Chair _____

Dean _____

Provost _____

FTU

FORMAPPLICATION

Page 16: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

FTU & Form Application – Cartoon Example

Form is “XYZ Form”Route Varies based on Account(s) and Department(s) on formDepartment(s) always approveContracts & Grants approves if grant account involvedOPB approves if salary account involvedCentral unit responsible for form always approved

Page 17: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

XYZApproversLevel 1 forDept 12345

Form XYZDept 12345

Account 611234

FormApplicationRequests

Routing For:

FTU Routes to . . .

Contracts& Grants

forAccount611234

XYZApproversLevel 2 forDept 12345

CentralProcessing

Unit forXYZ

Page 18: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

XYZApproversLevel 1 forDept 98765

Form XYZDept 98765

Account 211234

FormApplicationRequests

Routing For:

FTU Routes to . . .

CentralProcessingUnit for XYZ

Page 19: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

XYZApproversLevel 1 forDept 12345

Form XYZDept 12345Dept 98765

Account 611234Account 112121Account 211234

FormApplicationRequests

Routing For:

FTU Routes to . . .

Contracts& Grants

forAccount611234

XYZApproversLevel 2 forDept 12345

CentralProcessingUnit for XYZ

XYZApproversLevel 1 forDept 98765

OPB Level1 for

112121

OPB Level2 for

112121

Page 20: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

FTU Major Components

Dashboard

Role Administration

FTU Administration

Core

Page 21: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

FTU Dashboard

Web application system that:

Approvers use to approve formsReviewers use to review forms Initiators use to check status of forms

Page 22: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

FTU Role Administration

Web application to:Define groups that can be used in routing Define “groups of groups” for convenience

of maintenanceAttach responsibilities (such as for an

account or common unit code) to a groupDefine group membership (MSUnetIDs in

the group)

Page 23: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

FTU Administration

Web application to:

Provide for “predefined Routing Actions” – like templates for routing, which can be customized based on unit, account, etc.

View the data about actual routing slips in process (if not on the route)

Page 24: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

FTU Administration, cont’d

Web application to:

Maintain authorizations to ensure that:Only authorized form applications can create

particular types of routing slipsOnly authorized people can use FTU & Role

Administration web pages

Technically, a hidden part of the dashboard

Page 25: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

FTU Core

The “routing engine” within FTU

Not directly visible (“middleware”)

Some Core functions: Create routing slips upon request from form

application Manage routing slips in process Provide for eventual archiving of completed slips . . . And more

Page 26: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

FTU Advantages

One place for approvers to act on University-wide formsForm application developers need not all write own “routing engine”Potential for routes to be customized for particular units or accounts, without changing form application programsSupports Single Sign-On with web form application

Page 27: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

FTU Constraints

A form application is needed for every form (or related set) to handle business logic

Forms applications should ideally be designed with FTU in mind (easier to “plan in”, harder to retrofit)

FTU (or any electronic approval system) requires a clear understanding of the whole approval process from initiation to final processing

Page 28: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

How does FTU work from a customer (user) perspective?

Page 29: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

Electronic Form – Basic Process Flow

Initiator: Fill out “form” in form application

Approver(s): Approve or disapprove form

Reviewer(s): Review form

Form “owner” unit: Final processing

Page 30: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

Before the demo, read the fine print!

Note: FTU is in production use, but we are using

a test environment that is still changingSome “behind the scenes” functions are

not in their final form in this environment yet

All data is test data (that is, fake)Demos may include delays or detours

related to “construction debris”

Page 31: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

FTU – Basic Approval Demo

Watch as your presenters dare to attempt the dangerous live demo stunt!

Sample Form ApplicationsDashboard

Warning: Professional drivers on a closed course…Do not attempt without proper safety equipment, do not drink and drive, liability limited to return of original process and data. Go State!

Page 32: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

What outcomes are possible? (Business View)

Form is approved at all needed levelsForm is disapproved at some levelSomeone wants to modify the form while it is undergoing approvalMaterial modification Immaterial modification

Someone wants to withdraw the form from the approval process

Page 33: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

How does FTU work from a developer (internal) perspective?

Page 34: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

Electronic Form – “Behind the Scenes” Process Flow

Form Application gathers the information it needs (from application user and databases)

Form Application notifies FTU to start a Routing Slip

FTU routes the Routing Slip for approvals

Page 35: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

Electronic Form – “Behind the Scenes” Process Flow

On final approval or disapproval, FTU takes pre-specified actions, such as:Notifying the initiating form application by

updating its databaseNotifying the requestor via email

The form application continues any post approval processing.

Page 36: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

What outcomes are possible? (Technical View)

Form Approved

Form Disapproved

Form Cancelled by Form ApplicationMaterial change (form application starts a

revised form into the approval process)Form withdrawn

Page 37: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

R & R!

No, not that kind . . . Routing and Roles!

Page 38: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

FTU: Jargon Defined I (pictures!)

Dept Chair/Director

Dean

Provost

XYZ Form

Action

Route

Role

Page 39: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

FTU: Jargon Defined II(just words (sigh))

Routing Slip Type – Category of routing slip, with common routing characteristics (more or less)

Routing Slip Instance – An actual fully-specific route for an individual instance of a particular form

Page 40: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

FTU Major Components (Review, with scarier detail coming . . . .)

Dashboard

Role Administration

FTU Administration

Core

Page 41: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

Let’s take a look at another example . . . .

(If the first demo worked, we might as well risk another one. If the first one didn’t work, well, . . . mama told me to try, try again.)

Sample Form ApplicationsDashboard

Page 42: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

FTU – How routing works

Page 43: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

FTU – Planning/Establishing Routes

As part of form application design, routing and approval needs are determined

Routes and roles can be stored in the FTU’s administration databases

Routes can include actions to be taken by an individual (MSUnetID) or a role (group of MSUnetIDs)

Page 44: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

Routing Actions - Alternatives

Form application specifies all details of its routing actions (via its program code)Routing actions are predefined in the FTU database, and used by the form applicationOne routing slip can mix predefined routing actions with routing actions specified in detail by form application

Page 45: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

FTU – Customizing Routes

Sample Form ApplicationsAIS initiates formOther unit initiates form

DashboardResults are different!

Page 46: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

FTU – Customizing Routes

So why did our example do what it did?

Page 47: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

FTU Major Components (a reminder)

Dashboard

Role Administration

FTU Administration (you are here)

Core

Page 48: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

FTU – Customizing Routes (or not)

Routes and variations can be stored in the FTU Administration database

Caveat: Form application must use predefined routing actions to enable route customization via FTU database

Page 49: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

Predefined Routing Actions

“The Rules” (simplified) Form application requests slip type for particular

common unit code(s), account number(s), etc. If there is a customized route for a particular

common unit code (or account, etc.), FTU uses it If there is no customized route, FTU uses the

default Always use mandatory actions

Page 50: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

FTU Major Components

Dashboard

Role Administration (we’re moving)

FTU Administration

Core

Page 51: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

FTU – Roles (Groups)

Particular routing action is taken by some role (such as account signer)People are associated with roles“Groups of Groups” can be used to make group administration flexibleThink of (say) a Dean as an aggregation of roles“Groups of Groups” can insulate the forms application from organizational variations

Page 52: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

FTU – How do groups work?

Example: Routing action requires an account signer (a group

name) for a particular account number Who can take the action? People who are:

Members of any subgroup of the requested group

AND In a subgroup of a group that has responsibility for the

particular account number, subject (if needed) to dollar amount limitations

Page 53: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

FTU – How do groups work?

Specific Example:

Routing action requires an account signer for account 11-1111, for a $100,000 item

Who can take the action?

Page 54: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

D eanE q u iva len tC o llege A

A ccou n tS ign ers

A p p oin tm en tForm S ign ers

D eanA ltern a teC o llege A

D ean C ollegeA

Chris CarterSam Sm ith

Jean Jones

Acct 11-1111 Lim it$10,000

Acct 11-1111 Lim it$99,999,999

CUC 12345

CUC 12345

GroupRequested

People who can act:

•Chris Carter

Page 55: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

Group Administration Plans

Client Advocacy Office responsible to define maintenance strategies for central Role Definition Database

Probable direction for FTU version 1 Groups set up centrally in collaboration with

application developers and form-using units Group membership (of selected groups) can be

administered by form-using units and/or form developer units

Page 56: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

Gauzy Idea of Groups Implementation (simplified – eek!)

C h a irE q u iva len tC o llege A

A ccou n t U n itA p p rover

A p p oin tm en tForm U n itA p p rover

C h a irA ltern a te D ep t

AC h a ir D ep t A

D ep t AB u d getO fficer

D ep t AP erson n el

C oord in a to r

Evangeline Rudy

CUC 12345

Lawan Corrido

CUC 12345

C h a irE q u iva len tC o llege B

C h a irA ltern a te D ep t

BC h a ir D ep t B

Chris Carter

CUC 67890

Sam Sm ith

Jean Jones

CUC 67890

D ep t BB u sin essO fficer

CUC 12345 CUC 12345

Esteban EspinosaRashida Assam Luis Esterhazy

CUC 67890

Acct 11-1111 Lim it$100,000

Acct 11-1111 Lim it$99,999,999

Acct 11-1111 Lim it$50,000

Acct 11-2222 Lim it$75,000

Acct 11-2222 Lim it$100,000

Acct 11-2222 Lim it$1,000,000

G ifts &G ran ts U n it

A p p rover

Page 57: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

FTU PROCESS & DEVELOPER DETAILS

So, you want to do an “FTU project”…

Page 58: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

FTU – The Process Is…

Multifaceted…

Involves coordinating several services and functions

Page 59: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

FTU – The Process Includes

Application Development Workflow Analysis TrainingSecurityData AnalysisEnvironment Definition/Support

Page 60: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

FTU – The Process

Page 61: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

FTU – The Plan

A Generic FTU Plan guides project teams through the process. See the project task list: http://ftusample.qual.ais.msu.edu/develweb/Includes/FTUGenericPlan.html

or Download the MS Project version at:

http://ftusample.qual.ais.msu.edu/develweb/Includes/FTUGenericPlan.mpp

Page 62: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

This plan comes with a disclaimer…

This generic plan is intended to be used as a template and modified as needed for specific projects. You may find certain tasks are unnecessary for your project. In addition, task durations will vary greatly from one project to the next. Some have been pre-filled based on our best estimates but most have been left at the default of one day with the expectation that a user of this plan will modify durations to meet their needs.

Page 63: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

Next it is just a matter of interfacing…

Your form application will invoke FTU through a collection of Application Programming Interface (API) functions.

Page 64: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

Application Programming Interfaces

Otherwise known as APIsAllow your application to communicate with another application via parameters (shared field references)If you’ve used D6501 Security then you’ve used APIs. For example, GetFirstName is an API to D6501 that returns the value of the user’s name.

Page 65: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

FTU APIs – First 3 Steps

Before you can use the FTU, you must do some initial housekeeping. The server connection to the FTU

Client must be established, system properties must be defined, and an FTU work session must be established.

Page 66: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

FTU APIs – Step 1

Always verify that the FTU Client established in your global.asa is ready before trying to invoke the FTU APIs. This is accomplished by calling the FTU setServerDNS API. If not ready, the client will be made ready in this step.

FTU sample application example:If FTUClient.isReady() <> "true" Then

Call FTUSetServer End If

Page 67: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

FTU APIs – Step 2

Next, obtain the required system properties with a call to the FTU getSystemProperties API.

FTU sample application example:Call FTUGetSystemProperties()

Page 68: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

FTU APIs – Step 3

Next, create a session by calling the FTU createSession() API.

FTU sample application example:wrkSessionID = FTUCreateSession ()

This initializes the client connection with FTU and returns a sessionID value that will be used as a parameter in all subsequent FTU processing.

Page 69: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

FTU APIsAll FTU API parameters are Strings. Non-string values will be converted to strings.Common APIs to initiate a routing slip: newRoutingSlip newRoutingAction newRoutingActionExpandable newContentReference createRoutingSlip getRoutingSlipID removeSession

Page 70: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

FTU newRoutingSlip API

Purpose of newRoutingSlip is to start a new Routing Slip. ( a little obvious, huh?)

Instantiates a new RoutingSlip in memory, after a session has been established. This API must follow the createSession API call.

Does not create the persistent instance of the Routing Slip in the FTU database. That happens later after you’ve defined the full routing slip.

Page 71: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

FTU newRoutingSlip API

After creating the Routing Slip in memory via this call, you must add Content Reference and Routing Action instances to fully define the Routing Slip.

Once the routing slip instance is fully defined in memory, you will call another FTU API to persist the instance to the FTU database.

Page 72: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

FTU newRoutingSlip API

newRoutingSlip(java.lang.String sessionID, java.lang.String routingSlipType, java.lang.String title)

ParameterssessionID – returned from the createSession function.routingSlipType - Routing Slip Type. This is defined as part of form application design.title - Routing Slip Title. This is defined as part of form application design.

Page 73: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

FTU newRoutingSlip API

FTU sample application example:

Call FTUNewRoutingSlip (wrkSessionID, "RouteJV", "Journal Voucher Entry - " & Trim(Request.Form("fromaccountnumber")))

Page 74: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

FTU newRoutingAction API

Purpose of newRoutingAction is to add a Routing Action to the current Routing Slip being defined in memory.

newRoutingAction is the most complicated of all the FTU API’s – or at least requires the largest number of parameters.

This API must follow the newRoutingSlip API call.

Page 75: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

FTU newRoutingAction API

newRoutingAction(java.lang.String sessionID, java.lang.String actionType, java.lang.String tier, java.lang.String actionPublicID, java.lang.String externalType, java.lang.String externalKey, java.lang.String extraData, java.lang.String actionCommand, java.lang.String actionParameters, java.lang.String timeOutFormula, java.lang.String timeOutProcess, java.lang.String notificationRequested )

Page 76: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

FTU newRoutingAction API

ParameterssessionID – returned from the createSession function.actionType – Routing Action Type. See FTU Developer site for

valid values.tier – relative sequence of the routing action. actionPublicID - MSUNetID of the individual or GroupID of the

Group responsible for completing this action.externalType – Identifier to categorize routing behavior.

Determined as part of the Roles and Groups application analysis. IE, CUC.

externalKey – specific value for the externalType used to customize routes. IE, 47220 might result in different routing behavior than 47130.

Page 77: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

FTU newRoutingAction API

Parameters (continued)extraData – Additional information that may affect the route.

IE, route might be different for approval of $1000 or $100.actionCommand – Action this routing action is requesting. See

FTU Developer site for valid values.actionParameters – Information to support the actionCommand

parameter. IE, an email template or a script name.timeOutFormula – Number of days before timeout process is

started.timeOutProcess – Action to take if the routing action times

out. See FTU Developer site for valid values.notificationRequested – Indicates whether an email should be

sent to the actionPublicID for a specific routing action.

Page 78: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

FTU newRoutingAction API

FTU sample application example:

Call FTUNewRoutingAction (wrkSessionId, "N", 1, "Group/MSU/AccountApprover", "GL-Acct",

Trim(Request.Form("fromaccountnumber")), CCur(Trim(Request.Form("amount"))),

"APPROVAL", "", "", "", "1")

Page 79: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

FTU newRoutingActionExpandable

APIPurpose of newRoutingActionExpandable is to add a Routing Action to the current Routing Slip being built in memory based on the external type, external key, and extra data values passed to the API.

This API must follow the newRoutingSlip API call.

newRoutingActionExpandable(java.lang.String sessionID,

java.lang.String externalType,java.lang.String externalKey, java.lang.String extraData)

Page 80: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

ParameterssessionID – returned from the createSession function and is

required for all subsequent FTU calls.externalType – Identifier to categorize routing behavior.

Determined as part of the Roles and Groups application analysis. IE, CUC.

externalKey – specific value for the externalType used to customize routes. IE, 47220 might result in different routing behavior than 47130.

extraData – Additional information that may affect the route. IE, route might be different for approval of $1000 or $100.

FTU newRoutingActionExpandable

API

Page 81: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

FTU newRoutingActionExpandable

API

FTU sample application example:

Call FTUNewRoutingActionExpandable(wrkSessionId, "CUC", strUserCUC, "")

Page 82: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

FTU newContentReference API

Adds a ContentReference for the current RoutingSlip.

Provides the URL (or other valid web content reference) which the FTU dashboard should display in its client form content frame for approvers on the route, when they request to see the content of a request awaiting their approval.

Page 83: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

FTU newContentReference API

The content reference links to the actual form instance-specific content for form approvers/reviewers.

Call must follow the newRoutingSlip API call.

Page 84: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

FTU newContentReference API

newContentReference(java.lang.String sessionID,java.lang.String contentType,

java.lang.String location)

ParameterssessionID - returned from createSession.contentType – Type of content. (HTTP, HTTPS, FILE, FTP or TEXT)

location – Usually a URL of where the content reference is located.

Page 85: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

FTU newContentReference API

FTU sample application example:

Call FTUNewContentReference (wrkSessionId, "HTTPS", Request.ServerVariables("SERVER_NAME") & "/D6509Sample/FTUSample1_review.asp?RS=$RoutingSlipId")

RS=$RoutingSlipId is resolved by FTU when the routing slip is instantiated. An approver sees the content reference for the specific routing slip in the FTU dashboard.

Note: Be sure to use HTTPS appropriately!

Page 86: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

FTU createRoutingSlip API Stores the new RoutingSlip in the FTU

database.

Called after newRoutingSlip and all necessary newContentReference, newRoutingAction and newRoutingActionExpandable calls.

Updates the Routing Slip instance in memory with the returned RoutingSlipID value. Routing Actions are added by combining rows from the PreDefinedRoutingActions table (if applicable) with data from newRoutingAction call(s), if any.

Page 87: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

FTU createRoutingSlip API

createRoutingSlip(java.lang.String sessionID)

ParameterssessionID - returned from createSession.

FTU sample application example:Call FTUCreateRoutingSlip (wrkSessionId)

Page 88: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

FTU getRoutingSlipID API

Retrieves the new RoutingSlipID from the FTU database.

Called after createRoutingSlip and before removeSession

getRoutingSlipID(java.lang.String sessionID)

ParameterssessionID - returned from createSession.

FTU sample application example:intRSNumber = FTUGetRoutingSlipID (wrkSessionId)

Page 89: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

FTU removeSession API

Terminates the FTU Session initiated by createSession.

removeSession(java.lang.String sessionID)

ParameterssessionID - returned from createSession.

FTU sample application example:Call FTUremoveSession (wrkSessionId)

Page 90: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

Putting it all together:http://ftusample.qual.ais.msu.edu/develweb/develRes/APIFunctionCreate.asp

To create a routing slip and retain it’s Routing Slip ID: '============================================================ 'FTUInstance - Call the FTU API to start a Routing Slip instance'============================================================

Sub FTUInstance() If Not IsObject(FTUClient ) Then ' Make sure that there is an FTUClient Object that we can talk to.:

Response.Write "<BR>Error: FTU Client Bean has not been loaded.<BR>" Response.Write "<BR>Contact AIS Help and Support Center for Assistance.<BR>" Response.End

Else If FTUClient.isReady() <> "true" Then

Call FTUSetServer ' Establish the FTU Client Server ConnectionEnd If Call FTUGetSystemProperties() wrkSessionId = FTUCreateSession() ' Set the Session ID' Start a New Routing Slip Call FTUNewRoutingSlip (wrkSessionId, "RouteUnitMAU", "Unit/MAU Authorization - " & strUserCUC) ' Add a Content Reference for the Routing Slip Call FTUNewContentReference (wrkSessionId, "HTTPS", Request.ServerVariables("SERVER_NAME") & _

"/D6509Sample/FTUSample2_review.asp?RS=$RoutingSlipId") ' Add Routing Actions for the Routing Slip Call FTUNewRoutingActionExpandable(wrkSessionId, "CUC", strUserCUC, "")' The code to create a routing slip and retain it’s Routing Slip ID: ' Store the New Routing Slip in the FTU database Call FTUCreateRoutingSlip (wrkSessionId) ' Get the Routing Slip ID for the newly created routing slip RSNumber = FTUGetRoutingSlipId (wrkSessionId) Call FTUremoveSession (wrkSessionId) ' Terminate the FTU Session

End If End Sub

Page 91: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

Application Design Issues

Securing the review page content displayed in the FTU Dashboard

IsActor API – ensures only initiator, approvers or reviewers can view content

Page 92: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

Application Design Issues (Cont.)

The route for a routing slip cannot be changed once it has been created A couple of exceptions

Form approvers/reviewers may add approver/reviewer before taking action

New action is added at same level as the action for the individual adding the new approver/reviewer

Danger in adding an individual rather than a group May slow the route down

While actions on the route can’t be changed, groups can be updated to swap people in and out if necessary for a stranded slip

Page 93: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

Application Design Issues (Cont.)

Speaking of Stranded Routing SlipsCancel feature in an application

cancelRoutingSlip APIAdministrative Void function

Page 94: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

Application Design Issues (Cont.)

Transactions in a loosely-coupled environment 3-step process

Add a form application database record Build the FTU Routing Slip & retrieve the Slip ID Update the for application database with the Slip ID

Error trapping Always verify successful API call and database

transactions before going forward Clean-up partial transactions

Page 95: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

Begin FTU/DBTransaction

Add PrimaryApplication

Database Record

Successful DBAddition?

Create FTUInstance and

Retrieve RoutingSlip #

Error message touser - Can’tcomplete thistransaction

TrueFalse

SuccessfulFTU Instance?

Update ApplicationDatabase recordwith FTU Routing

Slip #

Error message toUser - Can’t createan FTU Routing

Slip

TrueFalse

Delete PrimaryApplication

Database Record

SuccessfulUpdate?

Error Message toUser - Can’tcomplete thistransaction

Message to UserTransactionCompletedSuccessfully

False True

End FTU/DBTransaction

Cancel RoutingSlip & DeleteApplication

Database Record

Three-Step Transactions:Connecting the FTU Form Application

Database Transactions with FTU instances

Page 96: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

Application Design Issues (Cont.)Completing the process with FTU Scripts After form completion (or anywhere in route if

desired), use a script action to communicate with your application regarding your form application status.

Programmer provides database info and desired SQL Typically transact SQL or Stored Procedure

AIS implements as a step on the route which triggers the script on designated condition

Scripts may not be immediate – sometimes a couple of minute delay…

Note: parameter values used in Script actions are displayed to all actors on the route – except in the “World View”

Page 97: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

Application Design Issues (Cont.)

FTU’s Email Actions Not to be confused with FTU approval/review action

notifications Use an email action to notify actors of form’s status

as needed. FTU standard email messages – no parameters Customized email messages – may use parameters

Must be coded as fully specified routing action if using parameters

Note: parameter values used in Email actions are displayed to all actors on the route – except in the “World View”

Page 98: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

Application Design Issues (Cont.)

Handling Attachments using FTU Content Reference (Review Page) Link to attachment content via a standard http/https URL link – let

browser plug-ins handle content Specify content type of a content reference (form review page) as

FILE, FTP, or TEXT rather than displaying URL (Users must have authorized access to the designated File location/FTP site)

May add multiple content reference links when you create the routing slip.

Note:Attachment support in form applications may be subject to legal requirements regarding format and retention.

Page 99: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

FTU - Where to go for Help

The FTU Developer Web site is the front line in FTU Developer support. Further questions may be forwarded to your friendly AIS FTU support staff.

http://ftusample.qual.ais.msu.edu/develweb

Page 100: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

FTU Developers “R” Us!

That’s it! Go forth and build those FTU Applications!

Any graphical or textual similarities to real or imaginary celebrities or commercial trademarks is purely unintentional and AIS, MSU, and FTU have nothing to do with toy stores.

Page 101: Copyright 2005, Michigan State University Michigan State University Forms Tracking Utility Introduction for Application Developers

Copyright 2005, Michigan State University

?