Upload
morgan-rice
View
212
Download
0
Tags:
Embed Size (px)
Citation preview
Copyright 2005, Michigan State University
Michigan State UniversityForms 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
Copyright 2005, Michigan State University
Objectives
Understand what’s involved in doing an “FTU project”
Understand how to interface a form application to FTU
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
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
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
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
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
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
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
Copyright 2005, Michigan State University
E-Workflow & FTU
FTU is a tool that automates one piece of the electronic workflow process. . .
Copyright 2005, Michigan State University
If this were a manufacturing process . . .
Autom ated Spraypaint U nit
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
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
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
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
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
Copyright 2005, Michigan State University
XYZApproversLevel 1 forDept 98765
Form XYZDept 98765
Account 211234
FormApplicationRequests
Routing For:
FTU Routes to . . .
CentralProcessingUnit for XYZ
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
Copyright 2005, Michigan State University
FTU Major Components
Dashboard
Role Administration
FTU Administration
Core
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
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)
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)
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
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
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
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
Copyright 2005, Michigan State University
How does FTU work from a customer (user) perspective?
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
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”
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!
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
Copyright 2005, Michigan State University
How does FTU work from a developer (internal) perspective?
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
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.
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
Copyright 2005, Michigan State University
R & R!
No, not that kind . . . Routing and Roles!
Copyright 2005, Michigan State University
FTU: Jargon Defined I (pictures!)
Dept Chair/Director
Dean
Provost
XYZ Form
Action
Route
Role
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
Copyright 2005, Michigan State University
FTU Major Components (Review, with scarier detail coming . . . .)
Dashboard
Role Administration
FTU Administration
Core
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
Copyright 2005, Michigan State University
FTU – How routing works
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)
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
Copyright 2005, Michigan State University
FTU – Customizing Routes
Sample Form ApplicationsAIS initiates formOther unit initiates form
DashboardResults are different!
Copyright 2005, Michigan State University
FTU – Customizing Routes
So why did our example do what it did?
Copyright 2005, Michigan State University
FTU Major Components (a reminder)
Dashboard
Role Administration
FTU Administration (you are here)
Core
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
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
Copyright 2005, Michigan State University
FTU Major Components
Dashboard
Role Administration (we’re moving)
FTU Administration
Core
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
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
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?
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
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
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
Copyright 2005, Michigan State University
FTU PROCESS & DEVELOPER DETAILS
So, you want to do an “FTU project”…
Copyright 2005, Michigan State University
FTU – The Process Is…
Multifaceted…
Involves coordinating several services and functions
Copyright 2005, Michigan State University
FTU – The Process Includes
Application Development Workflow Analysis TrainingSecurityData AnalysisEnvironment Definition/Support
Copyright 2005, Michigan State University
FTU – The Process
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
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.
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.
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.
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.
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
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()
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.
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
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.
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.
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.
Copyright 2005, Michigan State University
FTU newRoutingSlip API
FTU sample application example:
Call FTUNewRoutingSlip (wrkSessionID, "RouteJV", "Journal Voucher Entry - " & Trim(Request.Form("fromaccountnumber")))
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.
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 )
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.
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.
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")
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)
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
Copyright 2005, Michigan State University
FTU newRoutingActionExpandable
API
FTU sample application example:
Call FTUNewRoutingActionExpandable(wrkSessionId, "CUC", strUserCUC, "")
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.
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.
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.
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!
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.
Copyright 2005, Michigan State University
FTU createRoutingSlip API
createRoutingSlip(java.lang.String sessionID)
ParameterssessionID - returned from createSession.
FTU sample application example:Call FTUCreateRoutingSlip (wrkSessionId)
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)
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)
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
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
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
Copyright 2005, Michigan State University
Application Design Issues (Cont.)
Speaking of Stranded Routing SlipsCancel feature in an application
cancelRoutingSlip APIAdministrative Void function
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
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
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”
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”
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.
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
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.
Copyright 2005, Michigan State University
?