NWDUG 2010 Presented by Celeste McCormick With contributions from Tracy Waffle Lewis-Clark State...

Preview:

Citation preview

NWDUG 2010Presented by Celeste McCormick

With contributions from Tracy Waffle

Lewis-Clark State CollegeLewiston, ID

Workflows: Lessons Learned

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 useTracy 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 benefitsCan enforce requirements and standards

unique to your institutionSaves 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.”

-Tracy Waffle

Workflow is a collaborative effortIT and power users must work together

From IT: an Envision developerFrom end user office: a power user

knowledgeable in the office’s business processes

Power user responsibilitiesIdentify a process to adapt as a

workflowStart small and simpleOutline each stepDocument the requirements of

each stepIdentify whether each step will

be done by the same person or handed off to someone else

Present the process to ITGive a demonstration of how it

works nowClearly explain your needs

Developer responsibilityTake 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 processReview the diagram carefullyBreak 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 stepStart up:

What fields should be pre-populatedWhat 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

TIP: each hook usesboth Envision Basic

and WorkflowBasic language

Startup hookTo 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 NEND

Tips about completion hookIt cannot update

any data or recordsIt merely validates

any input dataIt can use WARNING.OCCURRED and ERROR.OCCURRED; won’t proceed to next step until ERROR.OCCURRED is resolved

Thoroughly test any 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 stepCall the next step in the workflow, whether it’s

another screen like BIO or a manual stepCan assign the step to the same user or to a different

userCALL_WF D01.XAPP.BIO(“NOW”\,”TO:ME”\)

Send an email using communications managementEMAIL “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 ruleIF RULE (“WFMS01”, “ID”\STUDENTS.ID) THEN…

Action hookUsing 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 togetherThe workflow never works exactly as the

user expectsSome 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 UTCreate one security class for each workflowIn the security class, list the mnemonic and

each step

Create roles and resourcesResource = an individual personRole = a job or position (data entry, application evaluator)Each resource can have multiple rolesEach step in a workflow can be assigned to a different resource

My To Do List

Questions?

•Celeste: cmmccormick@lcsc.edu•Tracy: twaffle@lcsc.edu

Additional information

Manual steps

Put the workflow in the LPRIn Dev package and load workflow into

the LPRIn 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

Recommended