Building BPM and Dynamic Case Management With TotalAgility

Embed Size (px)

DESCRIPTION

Building BPM and Dynamic Case Management With TotalAgility

Citation preview

  • 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.

    2

  • Variables

    3

  • 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.

    4

  • 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)

    6

  • Creating Process Variables

    To use the variable as an initialization variable of the current process, click Yes for Process Initialization.

    7

    PresenterPresentation NotesVariable Types:Byte Currency Decimal Double Float Long Short Boolean Date Nullable Date Entity Checklist System ComplexDynamic Complex StringNullable String XML XML Expression

  • 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.

    8

    PresenterPresentation NotesFor example, the path location of company templates on the network is kept in a server variable. For some reason, your company needs to upgrade the network and the company templates need to be relocated to a different server. In such a case, the path location will have to be changed only at the server variable, and the change would be reflected across all processes.

  • Create Server Variables

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

    9

  • 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

    PresenterPresentation NotesNote that if a task should always be assigned to an individual worker resource, this person should be modeled as a Fixed role, to avoid impact to new process instances if this individual should leave the organization or have a change in job responsibilities

  • 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

    PresenterPresentation NotesIn other words the CNJ activity spawns off a completely separate job, which executes independently of the main process map.

  • Configuring CreateNewJob Activity

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

    29

    PresenterPresentation NotesNote: The variables types of the process variables must match the variable types of the initialization parameters

  • 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

    PresenterPresentation NotesThe activities in an embedded process map may need to use or modify variable values in the parent. If you embed a process map you must declare the same variable names in the embedded process (child) map as the parent. Variables become public when using embedded maps, that is, all variables created in the parent or child map are visible to the entire process. You cannot assign resources to an embedded process map in the parent map. Once an embedded process is added to a map, you can configure the properties of an embedded process as required. The only purpose of using an Embedded Process node is for readability only (i.e. not reusability). These nodes rely on all process variables having the same ID between the parent process and the embedded process. These can therefore be used for quick modularization by creating a copy of the parent map, and then deleting all steps that are not intended to be moved into the embedded process, but be aware that changes to process variables in the parent map can impact on the embedded process, and the embedded process cannot be reused in any map that does not use the same variable IDs. A safer mechanism is to use a sub-process, as this will explicitly map parent process variable IDs into the parameters expected by and/or produced by the sub-process, without any assumption that the IDs will be identical.

  • 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

    PresenterPresentation NotesNotw: In case there are more than one recipient, separate the email addresses by a semicolon (;), for example, [email protected]; [email protected].

  • 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

    PresenterPresentation NotesNote: Only Microsoft Word 2007 templates (.dotx) can be used to create a new document.

  • 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 (>, =,

  • 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

    PresenterPresentation NotesLogic used to drive key decisions especially logic that is defined at an organizational level (or higher legislated rules, etc.) can be modularized into Business Rules, which are code-free compositions defined independently of processes at the server level. A Business Rule can be used in any business process, and the release of an updated rule will immediately affect all processes that invoke it.

    You can only use automatic activities within a business rule.A business rule is created in the same way as any other process. However, unlike a process it cannot be exported or imported by itself. It is exported as a part of process map or a package where it is used.

  • 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

    PresenterPresentation NotesA precondition is rule that must be met before an activity can become Pending.When a precondition is set for an activity, the activity goes into Awaiting Events status.A precondition contains an expression that can be configured to test the number of times an event has been raised. When an event is raised the count of that event is incremented by 1 each time. The precondition expression can test for a static number, e.g. 1 or a variable (of type Long) that contains the event count.Precondition is the last step before the node becomes pending, i.e. dependents, etc. are determined first.

  • 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

    PresenterPresentation NotesThe events in MS Dynamics CRM for which TotalAgility actions can be configured are:

    CRM Event Purpose Create This event occurs when an new instance of an entity is created in the MS Dynamics CRM System Update This event occurs when an entity instance is updated in the MS Dynamics CRM system. Delete This event occurs when an entity instance is deleted in the MS Dynamics CRM System.

  • 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: [email protected]

    Building Business Processes and Dynamic Case Management with Kofax TotalAgilityBusiness Process Management DefinitionVariablesWhat is VariableHow Are Variables UsedVariable GroupsCreating Process VariablesServer VariablesCreate Server VariablesSystem VariablesAdd System Variables to ProcessWork TypesWhat are Work Types?Creating a Work TypeAssociating a Work Type with a ProcessWhy Use Work Types?ActivitiesActivitySupported ActivitiesOrdinary ActivityConfiguring the Input and Output Variables for an ActivityExpression ActivityConfiguring Expression ActivityData Access ActivityConfiguring Data Access Activity.NET ActivityConfiguring .NET Activity CreateNewJob ActivityConfiguring CreateNewJob ActivityEmbedded ProcessConfiguring Embedded ProcessEmail ActivityConfiguring Email ActivityDocument Creation ActivityConfiguring Document Creation ActivitySynchronization ActivityConfiguring Synchronization ActivityDecision NodeConfiguring Decision NodeBranching RuleConfiguring Branching RuleWhat is a Business Rule?What is a Business Rule? ...contdWhy Use a Business Rule?Example - Determining Discount rate based on Customer TierConfiguring Business RuleBusiness Rule ActivityConfiguring Business Rule ActivityResourcesWhat are ResourcesAssigning ResourcesDynamic ResourcesDynamic Case ManagementWhat is Dynamic Case ManagementBenefits of CaseCharacteristics of Case Type ProcessesWhat is an Embedded Case Fragment?Optional Case FragmentsEvents and PreconditionsWhat is a Process Event and Precondition?Why Do We Use Process Events and Pre-Conditions?External and Internal Process EventsDefining Process EventSetting up a PreconditionFiring Internal EventsMicrosoft SharePoint Raise EventMicrosoft Dynamics CRM Raise EventStatesWhat is State management?Why Use States in Your Process Map?Creating StatesSetting a State ChangeState HistorySlide Number 74