You are on page 1of 74

Building Business Processes and Dynamic Case Management with Kofax TotalAgility

Phong Chu Principal Enablement Manager

Business Process Management Definition


Business Process Management (BPM) is a disciplined approach

to identify, design, execute, document, monitor, control, and measure both automated and non-automated business processes to achieve consistent, targeted results consistent with an organization's strategic goals.
BPM involves the deliberate, collaborative and increasingly

technology-aided definition, improvement, and management of end-to-end business processes that drive business results, create value, and enable an organization to meet its business objectives with more agility.

Variables

What is Variable
A variable is used to store data in TotalAgility. A variable display name can have upper and lower case letters

and spaces, e.g. Loan Amount.


The variable ID however must start with a letter and cannot

contain spaces, e.g. LOAN_AMOUNT.


The variable type describes the type of data that the variable will

store, e.g. String, Date.

How Are Variables Used


Data may be generated at various stages of a business process. Data

may be collected at the beginning of the process or during the process:


Process Initialisation Variables Data collected at the beginning of the process. Input Variables Data that needs to be visible to an activity for it to be

performed, e.g. to complete the Loan Approval activity we could add Customer Name, Loan Amount and Credit Score variables as inputs to the activity.
Output Variables Data that is output from a specific activity within the process,

e.g. an Approved variable is set to TRUE.


5

Variable Groups
There are four groups of variables available within the Process

Designer:
1. Process Variables 2. Server Variables 3. Case Variables 4. SYSTEM Variables

Process and Server variables can be further broken down into: Simple variables (1 value) Complex variables (multiple values / types, e.g. an array)

Creating Process Variables

To use the variable as an initialization variable of the current

process, click Yes for Process Initialization.

Server Variables
Server variables are global; they can be used by any business

process or case fragment. Also server variables can only have one value at any given time.
Once the value of a server variable is changed, all process maps

using this variable get updated with this information, therefore it only has to be modified once.

Create Server Variables


On the Home page, click Data, and then click Server Variables.

System Variables
SYSTEM variables are simple non-editable process variables

which are provided by the system in Kofax TotalAgility. They give you access to information which is maintained within the designer itself, such as who created the job, the job ID and others.
This is information which you typically cannot know at design

time, such as SPP_JOBID. The job ID will only be assigned when creating the job.
Each SYSTEM variable holds a value for a specific TotalAgility

task, for example, SPP_RES_JOB_Creator holds the User ID of the creator of a job.

10

Add System Variables to Process


On the Type list, select System. On the Value list, select the required system variable

11

Work Types

12

What are Work Types?


Work types (work queues) are the primary method of managing

workflow in a business process.


They are personalized task (To Do) lists used by operational staff

to display, manage and execute their work tasks.


Work queues are usually rendered on a web page. It enables the Business Analyst (BA) to quickly and easily define

customised work queues.


By default, process maps use a standard work type, which would

typically display on a work queue window and consists of standard fields for a job/task

13

Creating a Work Type


You must add at least one field (up to 30 fields) to a work type

14

Associating a Work Type with a Process


Once you have created a work type you can then associate the

work type with a specific process


This creates process variables for each field found in the work

type

15

Why Use Work Types?


The ability to define the required fields within a work queue at

design time reduces overall development time


Allows you to define up to 30 user definable fields in addition to

the 12 standard work queue fields.


You can report on work type fields in the Report Builder Process variables (existing or new) are used for these user

defined fields.
Definitions are stored at the server level and can be associated

with any process. Definitions can be copied, modified or deleted.

16

Activities

17

Activity
An activity is an individual step (service) that forms part of the

business process, for example, get customer details.


An activity in a process map can have various uses, for example

an activity could be:


A call to a script that can run automatically or require feedback

from a user, for example, a form to be filled


A call to a particular piece of third party software to

automatically send email


An ordinary activity that facilitates the passing of output and

input variables to the various parts of the business process

18

Supported Activities
Kofax TotalAgility supports the following activities:

19

Ordinary Activity
Each activity requiring interaction with a worker resource of any

kind should be created as a manual (ordinary) activity.


The Everyone group is assigned as default to each ordinary

activity. This group may be used for testing purposes to get the initial flow of steps in the right order, but once this has been achieved and released as a new version, this group must be removed from the activity and the intended resource for this task should immediately be created, whether it is:
A fixed or floating role A resource group A system-driven process actor (i.e. the user who created the

job, the user who owns the case, etc.)

20

Configuring the Input and Output Variables for an Activity


Input Variables - data that needs to be visible to an activity for it

to be performed, and is read only.


Output Variables - data that that can be changed or edited.

21

Expression Activity
An Expression activity helps you set the value of one or more

variables using free text, variables, operators, and functions.


For example, if the name of the customer is Abc Xyz, and if you

want to display the initials, that is, AX, the rule can be: Left(FirstName,1) + Left(Surname,1)
The value from this rule will then be held in an output (target)

variable.
An Expression node can use String, Date and Math functions the

following functions:

22

Configuring Expression Activity


Drag and drop the required variable in the Target Variable box In the Expression box, enter the calculation rule using the String,

Date and Math functions as required

23

Data Access Activity


Easily connect and interact with a selected relational database. Using a Data Access activity within a process, you can add,

display, update, or delete database records.


Before using the Data Access activity, you must create a process

variable to hold the database connection string(A database connection string helps you connect with the required relational database; it contains details of how to connect to the selected database, such as a data source, the user ID and the login password) .

24

Configuring Data Access Activity


Specify the database connection string Click Configure to create a query

The generated query appears in the Query box and a list of result

parameters based on the generated query appears under Output Parameters


25

.NET Activity
Enables interaction with software components developed for the

Microsoft .NET Framework. .NET objects can be run automatically by the Workflow engine, but may also display a user interface.
From a .NET activity, you can call any .NET object with a public

class and public methods. Each public method has a list of required parameters. You must assign variables to each of the parameters listed.
Note .NET activity types can only be used if the Microsoft .NET

framework is installed on the TotalAgility server.

26

Configuring .NET Activity


Configure the required assembly in the Assembly File Path box On the Class list, select the required class On the Method list, select the required method. A list of

associated parameters appears


Map variables to the parameters

27

CreateNewJob Activity
A Create New Job (CNJ) is an automatic activity that starts a new

instance of a business process, however, the main business process carries on independently of the new process that it instantiated.
You can create a new job based on process, case or case

fragment maps. A CNJ activity links a main process map with an existing process map. Initialization parameters can be passed from the main map to the second (if required), but output parameters cannot be passed from the second process map back to the main map.
Note: You must ensure that any required initialization parameters

have been added to the map which is being used to create a new job.

28

Configuring CreateNewJob Activity

You can create a new job in case based on either case reference

or case ID

29

Embedded Process
There are times when you need to break a large process map into

a set of smaller process maps.


For example: Your initial process map is getting too large. You have identified a process that may be reused in other

maps.
You have a process that is carried out by another department

or company.
You can embed smaller process maps into the main map (parent

map).

30

Configuring Embedded Process


Drag and drop the required process in the Process box

31

Email Activity
The Email activity is an automatic activity that is used to send

emails via any SMTP compatible server.


You can specify the sender, recipients, subject, body, CC list,

BCC list, attachments, importance, and format using the TotalAgility process/server variables.
A server variable, SPP_SMTP_SERVER with a value of

localhost is available in TotalAgility. You may change this value depending on the SMTP server you are using. The value of this server variable can be either SMTP server name or IP address of SMTP server.

32

Configuring Email Activity


You can provide a static value or a dynamic value for the sender

(From field) and the recipient (To field)

33

Document Creation Activity


The Document Creation activity is an automatic activity that is

used to create different document types within a process map. Using this activity you can create a Word 2007 document or an HTML file (a web page). You can specify which template to be used, what placeholders to be populated to create a document.
In Microsoft Word, fields are used as placeholders for data that

might change in a document and for creating form letters and labels in mail-merge documents. You use merge fields to customize the content of individual documents.

34

Configuring Document Creation Activity


Word Template

35

Synchronization Activity
The Synchronization (Sync) node is an automatic activity used to

bring together many parallel paths, where only one of the parallel activities must be completed, for example Email Forms or Fax Forms as shown in the example below.
The Sync node thus permits a map designer (typically a Business

Analyst) to synchronize several paths of execution within the process map

36

Configuring Synchronization Activity


Set other properties for this activity, as required

37

Decision Node
A decision is a point in a process map where a choice has to be

made about which path the business process must follow. The path selected is based on the evaluation of one or more conditions (decision rules).
By default, a Decision node consists of one condition, a path

below the condition, which represents the path of execution followed when the decision evaluates to true, and a path to the right of the condition, which represents the path of execution followed when the condition evaluates to false (the default path).
A decision is based on the value of the decision variable passed

into the process map at run time. Variables are passed into a decision as operands (>, =, <) and may be evaluated against another variable or value.

38

Configuring Decision Node


True Path: Select the node to specify the path the decision will

follow if it evaluates to true.


The Condition Text when applied to a decision forces the decision

to be satisfied for the current decision node

39

Branching Rule
Branching rules help you model more complex business logic

(data dependencies), and are a lot simpler and neater than using numerous decision nodes.
Unlike decisions, a branching rule is not limited to a maximum of

only two mutually exclusive paths.


Use branching rule in a process where the flow is split into two

or more alternative paths, this allows you to model a multiple choice decision pattern.

40

Configuring Branching Rule


Specify a condition for each path (destination node) which must

be met before the destination node can become pending or active


Specify a default node to be executed at run time; this is required

to stop a process map from failing if none of the specified conditions are met

41

What is a Business Rule?


A business rule is a diagrammatical representation of a business

rule and enables you to use all of the back-end integration capabilities of TotalAgility to retrieve data from external sources.
A business rule also enables you to use the decision and multi-

branching rules logic of a process to create a rule and determine the output values.
A Business Rule helps you automate your business logic without

programming.
You define a business rule once, maintain it centrally and use it

everywhere.

42

What is a Business Rule? ...contd


This sort of logic can easily be modelled by a business rule and

effectively separates the business logic from the process.


A Business Rule is defined at the server level so can be used in any

business process.

Note: the release of an updated rule will immediately affect all processes that use it.

43

Why Use a Business Rule?


Greater automation and optimisation of essential business decisions. Promotes lower costs and overall consistency / quality. Helps define complex business logic quickly and easily. From an implementation standpoint, you can implement change swiftly

without major reworking to the process itself and, of course, reuse of the business rule.
For example, if it is a corporate policy that any purchase over 10,000 be routed to a Supervisor, then this rule must be replicated in every process model involving purchase requests, perhaps in multiple steps in each one. If the policy were revised up to amounts of 15,000 then this would have to be changed in every single instance of the conditional statement in all affected process maps. If instead it were represented as a rule in a Business Rule system, it could be defined once and maintained at one point, but used everywhere.

44

Example - Determining Discount rate based on Customer Tier


You could create a business rule that defines the logic to calculate the

level of applicable discount based on customer status.


If the customer has gold status, they receive a 30% discount, silver

status a 20% discount, and bronze status a 10% discount etc.


To automate this, you could define the business logic like so: IF CustomerTier = Gold" THEN DiscountPercent = 30% IF CustomerTier = Silver" THEN DiscountPercent = 20% IF CustomerTier = Bronze" THEN DiscountPercent = 10% DiscountPrice = ItemPrice - (ItemPrice x DiscountPercent / 100) RETURN
45

Configuring Business Rule


Configure Rule Input and Output

Create Business Rule logic

46

Business Rule Activity


You can use predefined business rules to define workflow logic in

your process maps using the Business Rule activity


You can also view and modify a previously selected business rule

directly from the Business Rule activity. When the map is released, any changes to the rule are automatically applied to the process.

47

Configuring Business Rule Activity


Configure the business rule you want to associate with your

activity in the Business Rule box


Map the inputs/outputs of the business rule to the process

variables

48

Resources

49

What are Resources


A resource is a person, a group of people, or a role required to

perform an activity in a business process.


Resources can be entered manually into KTA or can be imported

from Active Directory.

50

Assigning Resources
Assign static resources when you know in advance who the

resource group or person is going to be

You can reuse a resource that has performed an action (for

example, created a job) or performed an activity within the current process.

51

Dynamic Resources
You can assign resources to an activity or job while the job is

running (at run time) in either way:


Manually define which resources should work on a particular

activity. Allocating resources manually gives you the flexibility to assign more efficient resources to activities of high importance, and better balance the work.
Dynamically allocating resources at run time, depending on

their skills and availability.

52

Dynamic Case Management

53

What is Dynamic Case Management


A case can involve several complex processes running across a

number of departments and utilising multiple sources of information.


The Case Management features in the Kofax TotalAgility allow

you to easily manage multiple business processes and all the information relevant to a particular case or project, e.g. legal cases or social welfare type cases.
Case is suited to projects where you do not know the lifecycle

of the process from start to finish.

54

Benefits of Case
To facilitate case based projects, you can create Case Definition

and Case Fragment processes. A Case Definition is in essence a base map and can have many case fragments associated with it.
Case fragments can access variables, roles, and milestones

defined at the Case Definition level so case specific data only needs to be defined once but can be used by several case fragments.
A case fragment can be tied to the latest version or a specific

version of the case definition.


New fragments can be associated with a case definition without

re-releasing the case definition.

55

Characteristics of Case Type Processes


Typically case management processes are knowledge centric

processes characterised by:


The inability to determine the flow of the case at design time

(related processes), and the need to allow for dynamic attachment of new processes to a case at run-time.
The possibility that external events and intervention can change

the state of a running case


The possibility that the outcome of separate cases may have an

impact on a current case.


The large amount and types of documentation related to the case

that must be accessible, e.g. email, letters, faxes.


The need to present a potentially complex set of case data to a

case worker.
56

What is an Embedded Case Fragment?


An embedded process is a process map that is embedded into

another process map - it is a tool used to simplify a large business process.


An embedded case fragment is a fragment that is a mandatory

part of the flow.


A fragment can access case level variables, states, roles,

milestones, process events etc.

57

Optional Case Fragments


A case fragment may or may not be executed as part of the

overall case.
Knowledge workers or external events may drive the ad hoc

execution of these type of processes.


Note that case fragments are not re-usable and are tied to their

associated case definition.


It is possible to tie a fragment to a specific version of a case

definition using the Compatible With All Case Def Versions property.

58

Events and Preconditions

59

What is a Process Event and Precondition?


Process events and preconditions allow you to model waiting

activities (known as an Awaiting Events state).


An activity can be preconfigured with a precondition to wait until

an event or number of events have been raised.


Kofax TotalAgility monitors for events and then responds by

completing the relevant activity that has been in the Awaiting Events state and has had its precondition met.
Events can be raised by any process or 3rd party software. An activity that has a precondition will not appear in the

workqueue until its precondition is met, i.e. the event(s) has been raised.

60

Why Do We Use Process Events and Pre-Conditions?


When an activity needs to wait for another process to finish. When an activity needs to wait for another activity within another

process to become pending or complete.


When an activity needs to wait for some external event from, e.g.

another system to occur.

61

External and Internal Process Events


External Events - occurs outside KTA. You can use the process event APIs provided by KTA to

record that this external event has fired.


You can use Microsoft SharePoint or Microsoft Dynamics CRM

Raise Event
Internal Events - fires within the same process or between

different processes.

62

Defining Process Event


At the Process level

63

Setting up a Precondition
Setting up a Precondition

64

Firing Internal Events


You can fire events when an activity becomes pending (available)

or when completed
Select the required activity

65

Microsoft SharePoint Raise Event


You can configure and execute TotalAgility actions for events

occurring on items in SharePoint.

66

Microsoft Dynamics CRM Raise Event


You can configure and execute TotalAgility actions for events

occurring in MS Dynamics CRM.

67

States

68

What is State management?


States are the changes which a process can pass through from

inception to completion.
For example, an order can go through a series of definable states

from ORDER ARRIVED to AWAITING DELIVERY, to INVOICE PAID.


Each state can be configured with a percentage complete. There

are two system variables that can be used to determine what state a job is in, and what percentage of the job has been completed:
SPP_JOB_STATE SPP_JOB_STATE_PERCENTAGE A job state can also be viewed in the workspace in job properties

69

Why Use States in Your Process Map?


Many customers of process solutions view their process life cycle

as a series of state changes. States give customers a high level overview of a jobs progress, i.e. you can see whether a trade is in its SETTLED or CONFIRMED state.
States are an alternative / complimentary way of viewing a jobs

progress, and can be used in conjunction / instead of viewing what activities are complete or pending (via the map control).
Helps you to manage the end-to-end life cycle of jobs, e.g. you

can restart a job at any state or launch completely new processes.

70

Creating States
In the Name box, enter a name for the state In the Percentage Complete box, enter or select the percentage

of the job completed for the state

71

Setting a State Change


Configure the State for the activity

72

State History
Displays the history of state changes that have occurred for the

selected job.

73

For further information, please contact: Phong Chu Principal Enablement Manager Phone: 949 783 1296 Email: phong.chu@Kofax.com

You might also like