Workflows: Lessons Learned

Download Report

Transcript Workflows: Lessons Learned

Workflows: Lessons Learned
NWDUG 2010
Presented by Celeste McCormick
With contributions from Tracy Waffle
Lewis-Clark State College
Lewiston, ID
About your presenter
Manager of Administrative Computing at Lewis-Clark
State College
•I’ve been programming in Envision for almost 10 years
•In 2008 I completed Datatel’s Workflow Writing Techniques
•I’ve written several workflows that are actually in use
Tracy Waffle is the Coordinator of Admission and she actually uses
the workflows.
Proper planning for workflow
The goal of this session is to provide a high-level
overview of how to plan, develop and test a
workflow. You can benefit from our mistakes!
What is workflow?
 How it works
 Chains a series of screens and tasks together into a
virtually seamless process
 Lets you stop in the middle if you get interrupted &
pick up where you left off
 Key benefits
 Can enforce requirements and standards unique to
your institution
 Saves time, clicks and keystrokes
Time-saving benefits
“It took me five minutes to enter a prospect manually. It took
me three minutes to enter a prospect using the prospect
workflow.”
“When I enter a prospect manually, using PRSP as the anchor
screen, I navigate in and out of (touch… some more than
once) 16 screens. When I enter a prospect using the prospect
workflow I end up going through eight screens.”
-TracyWaffle
Workflow is a collaborative effort
 IT and power users must work together
 From IT: an Envision developer
 From end user office: a power user knowledgeable in the
office’s business processes
Power user responsibilities
 Identify a process to adapt as a workflow
 Start small and simple
 Outline each step
 Document the requirements of each step
 Identify whether each step will be done by
the same person or handed off to someone
else
 Present the process to IT
 Give a demonstration of how it works now
 Clearly explain your needs
Developer responsibility
 Take Datatel’s training class if you can
 You learn a lot of the nuances and get extra tips that you can’t
get from the manuals alone
 Get familiar with the power user’s business process
 Review the diagram carefully
 Break it into “steps”
 Separate screens from actions/manual steps
The development process
A closer look at linking two screens
Define the workflow
Detail on parameters to WFPD
Define each step as you go
Three hooks for each step
 Start up:
 What fields should be pre-populated
 What messages to display to the user about what’s going on
with the workflow or this step
 Completion: What criteria must be fulfilled to consider
this step completed
 Action: What happens next in the workflow after this step is
completed
Another reason to take the class
Startup hook
 To pre-populate a field:
SN.WKL.DATA.NAMES<1,1> = "CONTACT.REM.STAFF.LIST"
SN.WKL.DATA.VALUES<1,1> = SN.USERID
 To display information to the user:
WARNING.OCCURRED = 1
MSG = "You will be prompted to enter a Contact
record."
MSG<-1> = "At the prompt, type the letter A to add a
new record."
MSG<-1> = "In the 'Contact For' field on CON, type @
to retrieve the student's ID."
Completion hook
Using our example…
What do we need to enforce?
 Make required first,
middle & last name plus
birth date and gender
 Allow only HOME, CELL,
LOCAL, AD, BUS phone
types
 Allow only INT, LC, WM
email types
Completion hook: required fields
Completion hook: allowable values
IF NOT(ERROR.OCCURRED) AND VL.PERSON.EMAIL.TYPES NE '' THEN
FOR N = 1 TO DCOUNT(VL.PERSON.EMAIL.TYPES,@VM)
IF VL.PERSON.EMAIL.TYPES<1,N> NE 'INT' AND
VL.PERSON.EMAIL.TYPES<1,N> NE 'LC' AND
VL.PERSON.EMAIL.TYPES<1,N> NE 'WM' THEN
ERROR.OCCURRED = 1
MSG = "Email type must be INT, LC or WM"
NEXT.PROC.FLD = VL.PERSON.EMAIL.TYPES
END
NEXT N
END
Tips about completion hook
 It cannot update any data
 Thoroughly test any
or records
 It merely validates any
input data
 It can use
WARNING.OCCURRED and
ERROR.OCCURRED; won’t
proceed to next step until
ERROR.OCCURRED is
resolved
validation of allowable
values for multi-valued
fields
 EXAMPLE: If this LO
email type already exists in
the screen, it will fail our
validation for WM, LC &
INT
Action hook: leads to the next step
 Call the next step in the workflow, whether it’s another screen like
BIO or a manual step
 Can assign the step to the same user or to a different user
CALL_WF D01.XAPP.BIO(“NOW”\,”TO:ME”\)
 Send an email using communications management
EMAIL
“TO:ORG.ROLE”\”REGISTRAR”,”FROM:ADDR”\”registrar
@lcsc.edu”,”DOC”\”ADMCMP”
 Perform an action, such as sending an email or moving to the next
step, based on the outcome of a rule
IF RULE (“WFMS01”, “ID”\STUDENTS.ID) THEN…
Action hook
Using our example…
What do we need to do next?
 Call the next step in the
workflow
 Using the following code:
The importance of testing
Test the workflow together
 The workflow never works exactly as the user expects
 Some desired requirements cannot be enforced
 Some requirements get enforced in a way that users do not
expect ( and do not want)
 Adjustments will need to be made (just expect it)
 Unfortunately, some problems are not discovered until after
the workflow has gone into production and a variety of
scenarios are tried with it
Putting a workflow into production
Set up security classes in UT
 Create one security class for each workflow
 In the security class, list the mnemonic and each step
Create roles and resources
 Resource = an individual person
 Role = a job or position (data entry, application evaluator)
 Each resource can have multiple roles
 Each step in a workflow can be assigned to a different resource
My To Do List
Questions?
•Celeste: [email protected]
•Tracy: [email protected]
Additional information
Manual steps
Put the workflow in the LPR
 In Dev package and load workflow into the LPR
 In UT WFMV, define the workflow MOVEINFO record by
entering Prefix L20.ADM.XIAPPS and Workflow Definition
L20.INTL.APPLICANTS
 In UT  CDEC look up and declare MOVEINFO record
L20.ADM.XIAPPS_UT, run scan timing, and save the record
 In the UT toolkit on CPKG create package
L20.ADM.XIAPPS_UT & add L20.ADM.XIAPPS_UT as a
Custom Declaration
 In Test UT  MSUG install group L20.ADM.XIAPPS_UT