Dokumen - Tips - XCP Pattern Library 33
Dokumen - Tips - XCP Pattern Library 33
v3.3
EMC Corporation
Corporate Headquarters:
Hopkinton, MA 01748–9103
1–508–435–1000
www.EMC.com
TABLE OF CONTENTS
1 Executive Summary
xCP is a case-based offering built on the Documentum platform. It accelerates solution
development with pre-built, reusable components. These components are configured and
assembled according to defined patterns. The Pattern Library documents these patterns so
that they can be easily used by anyone.
Patterns have been used for object-oriented software design since the 1996 publication of
the seminal book Design Patterns. We expand the notion of patterns to include requirements
definition as well as design.
The xCP Pattern Library is a major contributing factor to the success of an xCP
implementation. In addition to suggesting new ideas for solutions, the Pattern Library
reduces the time and risk of an implementation by providing design alternatives and
documenting best practices.
1.1 Audience
This document is intended for EMC partners and consultants who are responsible for
designing and building case-based applications. Specifically, it addresses the following roles:
• Solution Architects
• Business Managers
• Project Managers
The Pattern Library may also be helpful to pre-sales for answering RFIs, and for creating
demonstrations and proofs of concept that address customers’ business needs.
1.2 Approach
The xCP Pattern Library is based on the observation that case-based applications are
composed using a set of common patterns. The xCP Pattern Library provides a structured,
scientific way to plan, design and implement case-based applications.
Business-level patterns are called solution patterns, while technical-level patterns are called
design patterns. A solution pattern defines a functional requirement. A design pattern
describes a method (or “recipe”) of implementation. Both pattern types are organized into
logical categories that facilitate their use. Each solution pattern is mapped to a set of design
patterns. This two-tiered approach makes it easier to define solution requirements and
ensure traceability of implementation decisions to requirements.
important, but outside the scope of this document. The following are a few methodological
suggestions.
Step 1: Working with the client, the business architect defines the business requirements for
the case lifecycle. This can be accomplished using solution patterns to articulate potential
requirements. For example, there are several alternative solution patterns for initiating a
case. A requirements review with the client should then be held.
Step 2: The solution architect translates these requirements into an overall design for the
system. This requires detailed definition of data modelling, case policies, external interfaces
and monitoring. The design proceeds through a series of iterations. For example, a
preliminary case data model is defined early in the project, but the data model cannot be
completed until the data design is fleshed out. The solution architect identifies the
appropriate design pattern for each solution pattern and documents the reasons for these
design patterns. The solution architect then holds a design review.
Step 3: Implementation. The development manager assigns the selected design patterns to
individual developers for implementation. Each developer must understand how the design
patterns relate to the original business requirements, as reflected in the solution patterns.
System testers verify that the implementation actually meets these business requirements.
1.5 Benefits
Benefits of the Pattern Library include:
• defining business requirements more quickly and precisely
2 Basic Concepts
2.1 Case-Based Applications
Businesses and governmental agencies often make decisions and take action in the context
of a case. A case is a pattern of work with the following characteristics:
• an event that initiates the case
• processes for managing information flow, human decisions, and system interactions
One example of a case is an insurance claim. A case is triggered when a customer files a
claim for damage to his car. The case information comprises the forms, photographs of the
damaged car, and the body shop estimate. The case worker makes sure that all documents
are in order and that work estimates are appropriate. The outcome is the payment for the
damage.
A typical pattern approach allows great flexibility and variations (for example, highways are
planned with three-leaf and four-leaf interchanges).
Patterns were introduced into software design by Gamma, Helm, Johnson, and Vlissedes in
their book Design Patterns published in 1996. It showed that object-oriented software
applications can be constructed by using recurring patterns such as the factory pattern, the
facade pattern, and the observer pattern. As they say in the introduction, “Our solutions are
expressed in terms of objects and interfaces instead of walls and doors, but at the core of
both kinds of patterns is a solution to a problem in a context.”
The authors organized their design patterns into three major categories: creational patterns,
structural patterns, and behavioural patterns. In their treatment, each of these patterns has
four essential elements:
• Pattern Name
• Problem
1
See for example “A Timeless Way of Building” or “A Pattern Language” (1977)
• Solution
• Consequences
2.3.1 Approach
At a high level, the approach is as follows:
1. Divide the application into high-level functional modules (called solution pattern
categories)
2. Reduce each of these categories to a set of solution patterns, which are patterns at
the business level
3. Map each solution pattern to a set of one or more design patterns, which address the
technical implementation
It is important to emphasize that design patterns are defined at the technical level while
solution patterns are defined at the business level.
2. Lifecycle categories. These are visible in the active, ongoing case. This includes
five categories: Initiate Case, Manage, Review, Communicate, and Close Case 2.
2
The lifecycle categories consist of functions, not processes. A single activity in a case can
incorporate functions from the Manage, Review, and Communicate categories. Or a case can
interleave activities from all three categories. There is no fixed activity order implied by these
categories, except that Case Initiation comes at the beginning and Case Closure at the end.
xCP Pattern Library 6
Basic Concepts
3. Extension categories. These are optional but in practice can provide extreme value.
This includes two categories: External Interfaces and Monitoring.
Manage Review
Initiate Close
Case Case
Communicate
• Business Value: The value to the business that the Solution Pattern creates
• Description
• Prerequisites
• Solution
• Consequences
• Examples of use
• Related patterns
• Attachments
Invocation/
Initiation
This allows developers to investigate and learn about patterns from the bottom up. For
example, a developer who is building user interfaces might go directly to the User Interaction
category and review the user interface patterns. Design pattern categories allow developers
to focus on their areas of expertise.
Solution
Pattern
Design Design
Pattern Pattern
Note that the design patterns can occur in multiple design pattern categories.
To be specific, map the solution pattern “Initiate Process” to the design pattern “Initiate
process from document received via SMTP,” as follows.
Initiate Process
The mapping means that this particular design pattern is used in the implementation of the
requirement as defined by the solution pattern. This solution pattern is part of the solution
pattern category “Initiate Case.” The design pattern is part of the design pattern category
“Initiate/Invoke.”
Every design pattern falls into one of the design pattern categories. However, it is not
necessary that every design pattern have a mapping from the solution patterns. Some
Design patterns are generic and can apply across multiple solution patterns. For example,
the same user interaction design pattern might recur in the Manage, Review, and Close
Case categories.
3 Initiate Case
3.1 Overview
The lifecycle of a case begins with initiation. In order for a case to become a case, it must
execute a series of steps that ensure that it is valid and meets the prerequisite criteria. Upon
passing that validation, another series of steps prepares the case for the next phase in its
lifecycle: case work. Case work consists of three solution pattern categories: Manage,
Review, and Communicate.
3.2 Approach
A case is controlled by a process or series of processes. A process is invoked by a user
performing an action or by an external event. (It is important to note that these process
initiation patterns can be reused in other solution pattern categories). After invocation, the
initiation request is validated against defined guidelines. If successful, the case is set up and
enters the case work lifecycle phase.
When implementing a case initiation pattern, consider the following:
What mechanisms are available to invoke a process to begin case initiation?
Examples of trigger mechanisms include:
• a person completes and submits a form
If validation succeeds, are there mandatory data that must exist before the case can
move to the case work lifecycle phase?
• checklists for the case worker must be generated to guide their work
• sending a message to the system that submitted the request, passing on the unique
case ID
The grant applicant submits the request by completing an application form and
submitting it electronically via a variety of protocols.
• What constitutes a valid submission?
In addition to a completed submission form, the grant applicant must apply within the
eligibility window of January 1st to April 31st.
• Are there any criteria that would automatically cause case initiation to fail?
If the grant applicant is from a country that is a state sponsor of terrorism, the request
is rejected automatically and the case is not initiated.
• If validation succeeds, are there mandatory data which must exist before the case
can enter the case work lifecycle state?
The case must be assigned a unique identifier, and a folder structure must be
created and attached to the case to store supporting documentation and data for the
case.
• Is a reply to the requestor needed to acknowledge receipt of the request?
2. Validate Case
3. Set Up Case
4. Accept Case
The solution pattern “Validate Case” is automatic – it is performed by the system. “Accept
Case” refers to human-level validation and acceptance of the case. Some setup might be
required before Accept Case and can occur in Set Up Case. (For example, assigning user
roles to the case is part of setup, but it would not make sense to assign user roles if the case
were not accepted.)
3.4.1 Context
An external event (whether triggered by a human action, another system, or another
process) provides the signal to initiate a case. This solution pattern generalizes slightly from
“Initiate Case” to “Initiate Process,” since this general pattern recurs throughout the lifecycle
of a case.
3.4.3 Approach
Identify the conditions, data, and mechanisms by which a person or system can establish a
case.
3.4.4 Method
1. Determine if there are preconditions for initiation. For example, to submit an
automobile claims form, it is assumed that some damage to the car has occurred.
2. Identify the required case data for each type of initiation. What is the minimal
information that the case worker needs to begin working on a case?
3. Identify the mechanisms or protocols used to submit the case data. Is this done by a
human submitting a form? How should that form be submitted? Will an external
system event generate the case data? Will it be a combination of both?
5. Define the different types of case initiation failure that can occur and how each is
handled.
3.4.5 Variations
• Log all initiation attempts and identify those that were successful and unsuccessful.
• Some types of cases will be assigned case numbers at this point, while other types
will be assigned case numbers only after validation and acceptance are complete
3.5.1 Context
After process initiation completes successfully, the submission will often require validation
before becoming an official case. This can sometimes be done automatically, by a system
process. However, in many circumstances a manual review task will also be needed.
3.5.3 Approach
Define the minimum qualified data and criteria for case initiation to complete successfully.
Decide whether case validation is performed entirely by the system, or by a combination of
system and human action.
3.5.4 Method
1. Assemble all required submission data.
3.5.5 Variations
• Consider a two-tier validation in which a preliminary step is performed by the system
based on business rules, followed by a brief screening by a case worker.
• Send an email to the initiator if the validation fails. Provide some explanation for the
reason it failed.
3.6.1 Context
A case request is submitted and validated. Before case work begins, however, certain basic
setup activities must be completed.
3.6.3 Approach
Assemble all data required to begin case work automatically by means of a system process.
Assign an identifier to the case. Initiate communication to the person or system that
requested the case.
3.6.4 Method
1. Identify the folder hierarchy needed to support case processing.
2. Assign a unique case identifier to the case. This identifier is needed to coordinate
case-related activities across multiple users and processes.
3. Identify case data that can be created automatically, without human intervention.
4. Map any data received in the initiation to the case (for example, if the submitter fills
out a web form).
5. Import all documents submitted to the case (for example, if the submitter files a
document required to open the case).
6. Assign the case to an appropriate case manager (See the solution pattern category
“Case Policies” for details on how this is done).
3.6.5 Variations
• Based on business rules, send an automatic notification to the manager of this case.
For example, if a request is received from a government regulatory agency, notify the
department manager.
3.7.1 Context
In many business environments, a case must be reviewed by a human being to determine
that it is complete and accurate.
3.7.3 Approach
Use a utility process to automatically assemble all data required to begin the case. Assign an
identifier to the case. Initiate communication to the person or system that requested the
case.
3.7.4 Method
1. Create an acceptance task and send it to the appropriate decision maker.
2. Ensure that all required information about the case request is available and easily
accessible.
4. If necessary, allow the user to add comments explaining the reason if the case is not
accepted.
3.7.5 Variations
• Reject case. How will this be handled? One approach is to delete the case request
and associated information. A better approach is often to archive case related
information.
4 Manage
4.1 Category Overview
The Case Initiation category brings information from the outside world into the case. This
includes both structured data and unstructured content (documents, images, audio files, etc.)
In the Manage category, the case worker must be able to view, create, or update the
information. With this information, the case worker takes appropriate actions, such as
requesting more information, sending the case for review, or making decisions on the case.
Often these actions are then followed by Review or Communicate functions.
Case Work
Review
Initiate
Manage
Case
Communicate
The three solution patterns: Manage, Review, and Communicate constitute the “case work”
functions. They can occur in any order and can be iterated as necessary.
4.2 Approach
To manage a case, a case worker makes sure that it contains all required information,
progresses properly, and accomplishes its goal. This involves producing and consuming
case information, taking actions, and making decisions.
When implementing a case management pattern, consider the following:
Who manages the case? The case needs to be sent to a case worker to handle the details.
For example, in a typical insurance claims case, a case worker will be assigned to the case
based on a phone call from a claimant. In some cases, it might be necessary to assign
multiple case workers, or refer it to a supervisor for additional decision making.
How does the case worker find case information? Case workers need to view
information about the case. Ideally, the required case information is displayed on their
screen in a way that is clear and easy to navigate. Often they will need to search for
documents related to the case or to examine related cases. For example, the claims worker
might want to find and inspect previous automobile claims made by the claimant.
How does the case worker manage case data? Every case contains structured data
describing the details of the case. For example, for an insurance claim, the case worker
needs to have the name and policy details for the claimant and the description of the
damage. As further information is received about the extent of the damage, the case worker
may be required to enter or change this data.
How does the case worker manage documents associated with the case? A case may
contain a variety of documents, images, or video files. For example, the case worker might
receive a digital photograph of the damaged car that must be kept in the virtual case folder.
What actions can the case worker perform and when? Case workers can initiate actions,
such as asking for more information or requesting a review. For example, the claims worker
may decide to approve the automobile claim. The actions that a case worker can perform
often depend on the state of the case: for example, the ability to import a certain type of
document might be enabled in one phase of the case but not in another.
4.4.1 Context
The case worker needs to view the case in order to review case status, data, documents,
and actions. This view is especially important in the non-task-oriented cases, as work is
done in a “case command center” that is independent of tasks.
4.4.3 Approach
A good example of a case view (a “folder view”) is shown below.
3. User can enter and view other case metadata (shown on right).
4. The interface includes a set of action buttons, which depend on the case state. For
example, if the case worker makes a telephone call, she can press the Record Call
button to enter the details of the call.
4.4.4 Method
1. Display all relevant folders (for example in a tree structure, as shown in the left).
2. Provide relevant case metadata that can be entered, viewed, and changed.
3. Identify required actions for the case worker and implement them as action buttons.
4.4.5 Variations
• Perform a validity check on data entered in a form.
• Create conditional fields, in which the fields that are displayed in a form depend on
data entered (either in the same form or in other forms).
4.5.1 Context
This solution pattern addresses the creation and modification (and occasionally the deletion)
of case data (that is, information about people, objects, or events in the case).
4.5.3 Approach
Case data is presented to the user via forms (organized collections of data fields). Data is
automatically populated in the form and case performers can enter it manually. Performers
can view the data and update it as needed.
4.5.4 Method
1. Identify data that is relevant for the case (see the Case Modeling category).
2. Decide on the presentation format for the data (for example, text field, drop down,
check box).
3. Identify the case workers who need to work on the data and in which activities.
4. Group data fields together into forms if they are logically related.
5. Show or hide different data fields for each task and case worker (In some tasks, the
data will be invisible, in other tasks it will be grayed out). Display only the relevant
information in each task: irrelevant data distracts from the work that must be done,
and some data should not be shown for case policy reasons.
4.5.5 Variations
• Perform a validity check on data entered in a form.
• Make some fields mandatory and others optional.
• Create conditional fields, in which the fields displayed in one form depend on other
forms or affects fields in the same form.
4.5.6 Context
Case content refers to documents, video clips, photographs, scanned images and other
unstructured information. Content can play a critical role in a case (for example, a signature
in a legal document). Case workers must be able to create, access, and manage content.
4.5.8 Approach
Each type of content can have data associated with it (metadata). For example, document
metadata might include author, document type and date received. Often the management of
the content depends on the metadata.
4.5.9 Method
As appropriate for the case under consideration, create tasks that enable case workers to:
1. Import documents and other content into the case. This can be done automatically by
a utility process or manually by a case worker.
On the left is a list of folders for content. The contents of the Case Participants folder
are shown on the right, together with document metadata.
3. Display content (in this case an image) together with its associated metadata
8. Annotate documents.
4.5.10 Variations
• Number all documents in a case.
• If the content is received in paper format, scan it, index it, and import it into the case.
• Transform the format of the content (for example, render a MS Word document in
PDF format).
• Import content from external sources (for example, SharePoint).
• Hold all content in a single folder and use a filter mechanism to restrict the view.
4.6.1 Context
As part of their research, case workers often need to locate individual cases, documents,
person records, or other case information.
4.6.3 Approach
There are three ways to find case data:
• explicit search
o Full-text search
The following graphic shows an example of providing the user with the ability to select a
case from a drop-down list.
After selecting the case, the user presses the Open button. This is clearly simpler than
performing an explicit search.
Note: If this case had already been closed and the user selected it in the dropdown list, then
she would not see a button labelled “Open.” Instead, the button would change to “Re-open.”
This is a good example of case state-sensitive action buttons.
4.6.4 Method
1. Identify the type of item to find (for example, cases, documents).
2. Determine the technique to be used: explicit search, browsing, or select from list. If it
is an explicit search, specify the search criteria (possibly including wildcards).
3. Decide how the system should respond when the user makes a choice (for example,
how to display the hits, or what to do when the user selects an item from a list)
4.6.5 Variations
• Use full-text search for terms in a document or set of documents.
• Search a federated database.
• Select a case from a dropdown list on the Welcome screen.
4.7.1 Context
Case workers need to do more than view and enter case information. They need to be able
to take action based on this information. Case workers perform actions to request more
information, send the case to a reviewer, or approve the case.
4.7.3 Approach
The basic tool for performing actions is the action button.
Each button is configured to perform an action. For some cases, like “Approve,” pressing the
button is all that the case worker needs to do. For other actions, the button launches a form
for the case worker to fill out with details associated with the action. For example, the “Send
to Reviewers” button initiates a review activity. The case worker needs to select the
reviewers and provide some instructions, as shown in the following form:
Each action button has some result or consequence. In this example, the result is that the
system creates tasks for the selected reviewers to perform.
4.7.4 Method
1. For each role in the case, determine which actions and decisions that role needs to
perform and under what conditions (depending on the state of the case).
2. Decide which actions are needed in each activity performed by that role.
4. Specify the consequences of the action. For example, if the decision is to accept the
insurance claim, send an email to the claimant to that effect.
4.7.5 Variations
• Initiate an ad hoc task
• Initiate a task by supplying a URL instead of by pressing a button. (This might be
used for a scanning task or any task in which the user needs to supply data).
• Initiate a process.
• Cancel checkout.
5 Review
5.1 Category Overview
The purpose of a review is to make sure that the outcome of the business process or case
(be it a physical object, a document or a business decision) is correct and meets the desired
quality criteria. The verification is captured by the outcome of the review. The review
patterns have to be flexible enough to handle differences in the kinds of object being
reviewed, the outcome of the review, and the review policies.
The review phase can include a combination of human and system activities. For example, a
process may invoke a rules engine to determine eligibility, but also allow a human to
override that decision. However, it is unlikely that a real case review would contain only
system activities with no human activities.
Review patterns cannot be viewed in isolation, since they are dependent on solution patterns
in other categories. For instance:
• A review is typically preceded by case work (as in the Manage or Communicate
categories).
5.2 Approach
When implementing a review pattern, consider the following:
What is it that needs to be reviewed? What is the thing, object or information being
subjected to a review? This can be an object within the system, a physical object outside of
the system or both. Examples of objects that can be reviewed are:
• a document
• an image
• a collection of documents
• an audit trail
• a customer call
What are the review criteria? Review criteria are the principles and methods by which the
reviewer evaluates the object under review and produces review results. They can be
defined in a checklist, a test procedure, a corporate policy, or codified in a legal document.
The review criteria might exist outside of the system, as such, but govern how the review is
performed, who performs it, and what the outcome is.
Who performs the review? The reviewer performs the actual evaluation and produces an
outcome. How the reviewer is assigned is governed by an Assignment Policy Pattern. (See
the section on Case Policies). Examples of reviewers are:
• the manager of the employee who produced the object being reviewed
• a subject-matter specialist
• a steering committee
Under what circumstances is the review performed? This question captures two aspects
of the review. First, it asks when the review is performed. In certain circumstances, a review
is always performed at a certain point, while in others it depends on the context (for
example, the funding amount requested in a grant application). In other circumstances, an
external event triggers the need for the review (for example, a visit by a third-party auditor).
Second, this question asks whether the review is to be performed as part of normal case
processing,
or is performed only if requested by the case worker.
What is the outcome of the review? The purpose of the review is to produce a result.
Examples of common outcomes are:
• a decision or signoff (e.g. approved or not approved)
• a document
• comments
• a digital signature
What effect does the review have on the case? Within the context of a case or a business
process, the outcome of a review can influence the progress of the case or decide the future
activities that will take place within the business process. This question also captures how
the review interacts with case work, since the review might trigger additional case work until
a sufficient level of quality has been reached. Examples of the effect a review can have on a
case are:
• to move the case to a revision activity
• to effect a change in the state of the case (for example, a loan is approved)
Example
Consider a grant application process in which a grants manager reviews a request for the
purpose of approving or denying the grant, but he only needs to review it if the request is for
an amount greater than $10,000. The solution team might answer the questions above as
follows.
• Q: What needs to be reviewed?
A: The grant application.
2. Parallel Review
5.4.1 Context
This pattern occurs when case information (structured data or unstructured content) needs
to be validated in a series of one or more reviews. The simplest example of a sequential
review is the single review.
Multiple reviews can be formed by chaining together a series of single-step reviews. In many
cases, the downstream reviews depend in some way on the results of the upstream reviews.
5.4.3 Approach
The trivial sequential review involves only one review activity and is captured by the
following flow:
The information or work product that is to be reviewed is produced and handed over to the
reviewer. The reviewer evaluates the information or work product according to the review
criteria produces an outcome. The outcome of the review can then be used in downstream
activities in the case.
The sequential review becomes more complex as more steps are required. For example,
here is a process fragment with two review steps:
5.4.4 Method
1. Identify the work product that needs to be reviewed. Is it the entire case, a subset, an
audit trail or an object external to the system?
2. Identify the criteria against which the review is to be performed. Provide instructions
that explain the criteria to be used by the reviewer.
3. Identify the person or system responsible for performing the review. This could be a
specific individual (“VP, Loan Operations”), it could depend on the values of data
fields, it could be the performer of a previous task, or it might just be any individual
from a group.
4. Identify the circumstances under which the review takes place. Does the review
always take place, or only under certain conditions?
5. Identify the outcome of the review. Is the outcome a simple decision, a digital
signature, a document, or a report?
6. Identify the effect that the outcome has on the case. Does it influence the process
flow, or is simply a document stored within the case?
5.4.5 Variations
There are several important variations of the Sequential Review:
• Conditional Sequential Review
• Iterative Sequential Review
• Sequential Review with Delegation
It is not uncommon for these variations to be combined in the same process. For example, a
case might include an Iterative Conditional Sequential Review or an Iterative Sequential
Review with Delegation.
Sometimes the iterative review is restricted to a fixed number of iterations (or alternatively to
a certain time duration), after which the process either continues or is terminated.
Typically the performer of the “Revise” step is the same as the one who created the initial
work product, but this is a matter of case policy and is not invariably true.
Note that the decision point “Decision” can be a human decision, made by the same
reviewer in each review cycle. However, it could also be assigned to a different person for
each review. In some cases, it might even be an automatic activity.
• Feedback, Is the review outcome sent back to the original reviewer, or is the
outcome just forwarded to the next activity?
The essence of the sequential review with delegation is illustrated in the following process
fragment.
The issues concerning patterns of delegation are addressed in the Case Policy category.
5.5.1 Context
In some situations, it may be necessary for multiple people to perform reviews at the same
time, either because a group decision is needed or because different people are reviewing
independent aspects of the work product.
• Multiple outcomes are produced, and they must be combined in some way. This is a
question of policy. It can be that all decisions must be positive, or perhaps multiple
decisions will be merged into one by majority vote, or that multiple review reports will
simply be added to the case.
5.5.3 Approach
The essence of the parallel review is illustrated by the following process fragment:
5.5.4 Method
1. Specify the information or work product that needs to be reviewed (for example, a
document, a set of information, a decision, or the entire case).
2. Identify the different aspects of the information or work product that need to be
reviewed and ascertain if they can be reviewed independently.
3. Specify the criteria against which the review is to be performed. Provide instructions
on the criteria for the review for the reviewer (that is, by providing instructions for how
the review is to be performed).
4. Identify the persons responsible for each review. This might be a specific individual
(“VP, Loan Operations”) it might depend on case data, it could be the performer of a
previous task, or it might just be any individual from a group and is governed by an
assignment policy pattern.
5. Determine when the review takes place. Does the review always take place or only
under certain conditions?
6. Describe the outcome of the review. Is the outcome a simple decision, a digital
signature, a document, or a report?
8. Determine the effect that the outcome has on the case. Does it influence the process
flow, or is it a document stored within the case?
5.5.5 Variations
The variations of the parallel review are fundamentally the same as the variations for the
sequential review.
6 Communicate
6.1 Category Overview
Most cases require some form of communication between persons within the case, or with
external agents. Communication can occur at any phase of the case lifecycle. It can convey
a question or an answer, a request for information, a formal notification of a decision, or it
can be informal collaboration.
6.2 Approach
Different types of communication are needed and each has its own characteristics. When
implementing a communication pattern, consider the following:
1. Which parties are communicating? The communication can take place between
parties working on the case (for example, between a grants manager and a peer
reviewer), or the communication can be with an external party (for example, between
the grants manager and the applicant).
2. Who initiates the communication? In the case of communication with an external
party, the communication can be initiated by the external party or by a case worker.
The former is referred to as “receive external communication” and the latter as “send
external communication.”
3. What type of information is being communicated? This could be simple text, as in
an email, but it could also include data fields or documents. For example, a grant
applicant might send a project plan as a PDF document.
4. Is the communication formal or informal? External communication is generally
formal, but internal collaboration can be formal or informal. An example of informal
collaboration might be a collaborative discussion between a grants manager and
grants reviewer.
5. Is a legal signature required? This is an important special case, in which an
external party must sign and return a legal document. For example, if a party applies
for a loan of $500,000, then a wet signature is required on the loan application.
6. What is the mechanism of communication? Communication can take place in a
variety of ways, such as email, text message, a web form, a telephone call, or
standard paper mail. If paper mail is used, then conversion from paper to digital
format is generally required.
7. How can this communication be secured? For example, https can be used for
transport layer encryption.
3. Document Signature
6.3.1 Context
It is often necessary to send communications to the outside world. Some communications
are one-way, such as notifications, approvals, or document delivery. Others follow a request-
response model, as, for example, a request for tax forms. If the outgoing communication
contains documents, the documents can be automatically generated, based upon case data,
and personalized.
6.3.3 Approach
Begin by identifying the touch points in the case where it is necessary to send notifications
and receive responses. The designer can take advantage of pre-built activities and utility
processes for implementing the different forms of communication. If necessary, create new
interfaces for external communication. See the section of this document called “External
Integration” for more on this subject.
6.3.4 Method
Following are typical techniques for sending external communications:
1. Send outgoing email. In the following example, the user is prompted to fill out a form.
The process automatically transforms into an email.
Once the user presses the Send button, the system sends an email based on the
form to the recipient.
2. In many cases, it is necessary to attach documents or images to the email. Custom
documents can be automatically generated from case text and data. They can be
personalized for the recipient as shown in the following example:
6.3.5 Variations
• Send a reply to received external communications.
• Generate custom documents with barcodes.
• Send facsimiles.
6.4.1 Context
It is often necessary in a case to receive communication from the outside world. Examples
are filing documents, email with attachments, and responses to requests for information. In
some cases, the incoming communications will have to be correlated with previous outgoing
communications (as in a response to a request).
6.4.3 Approach
The designer can take advantage of pre-built activities in business processes to receive the
required types of communication. If necessary, create new mechanisms for external
communication. See the External Integration section for details.
6.4.4 Method
Following is the typical method for responding to a request sent by email:
1. The case-based application listens for incoming email,
6.4.5 Variations
• Receive an incoming paper communications. The incoming document is
commonly scanned and indexed.
6.5.1 Context
This particular pattern is a variation of the simple external communication. It occurs when an
organization requires a wet or electronic signature on a document.
6.5.3 Approach
The case sends an outgoing communication to the customer and waits for the response. The
incoming (paper) document with the signature is scanned and added to the case.
6.5.4 Method
1. Identify documents that require a wet signature.
4. When the document is received from the customer, scan and digitize it.
6.5.5 Variations
• Generate a barcode on the document.
• Ask the customer to attach additional paper documents (for example, a tax form).
• Configure a time-out on the incoming communication.
• Use a digital signature instead of a wet signature (for example, this can be done if the
document is in PDF format and the customer has Adobe Acrobat Pro).
6.6.1 Context
Case workers interact in a variety of ways. For example, managers assign tasks to case
workers, and case workers sometimes delegate tasks to other persons. There needs to be
some form of communication between these participants.
6.6.3 Approach
Formal communication is generally handled in the actual tasks that workers perform. The
tasks contain appropriate fields in which a worker provides input or response.
6.6.4 Method
Following are several techniques that are used in intra-case communications:
1. Instructions
3. Notes
Notes are comments entered by case workers and provide a running account of the
case.
4. Action Log
The Action Log keeps track of all significant business events in the lifetime of the
case. It provides a good communications vehicle for all case workers to understand
the history of the case.
6.6.5 Variations
Respond to a task request and provide an explanation
6.7.1 Context
Case Workers complete most tasks by themselves. However, some tasks require informal
interaction with other case workers or internal experts.
6.7.3 Approach
Collaborative activities can take place in different forms:
1. Joint activity: An activity in which two people work simultaneously together
6.7.4 Method
1. Joint Activity. Assign two workers to perform a single activity. They can interact on
this task in different ways: on the phone, in the same office, or by web-based
communication.
6.7.5 Variations
• Post communications to a wiki.
7 Close Case
7.1 Overview
After a case is finished it needs to be closed. In order to end a case, the system performs a
series of automated or manual activities. These activities update case status for reporting,
move case data to offline storage, and ensure the case meets compliance and audit
requirements.
7.2 Approach
During the lifecycle of a case, a set of case data, documents, and folders typically transition
from state to state. Once the case is complete, it is usually necessary to separate and
archive this information. In addition, most reports need to distinguish between active cases
and closed cases.
When implementing a case closing pattern, consider the following:
1. What case actions trigger case closure? A user may decide to initiate case
closure based on external events or predefined criteria might be set for automatic
case closure.
2. Does a final disposition document representing the case need to be
generated? For historical or audit purposes, there may be a requirement to generate
a read-only disposition document that contains a combination of different case
documents and data.
3. Do the case folders, documents, and data need to be moved? In many
situations, it is useful to store active case data in a separate physical location from
the data of closed cases. The data might be moved to a cheaper storage medium
since data access will be less frequent.
4. Will the case ever need to be reopened? If a case can be reopened after it has
been closed, then you might need to store the active state of the case, such as the
security applied to data or transient data such as the case actors.
5. Do external systems need to be updated with the results of the case? Case
management systems frequently interact with other systems to retrieve case data, to
make this data persistent, or to carry out case management functions.
6. Does the case information need to be published to a website? Once a case is
closed, there may be a requirement to publish the results to a broader audience. For
example, most modern judicial systems allow the public to view the case verdict after
it has been issued.
Depending on what decisions were taken to complete the case, the system might need to
execute specific business logic or perform updates to other systems in order to close the
case. It might also need to generate documents that represent the official verdict, outcome,
or summary of actions that lead to the conclusion of the case.
• Case Disposition
7.4.1 Context
All cases contain persistent data, documents, and folders that need to be maintained long
after the case is complete. Live case data is usually stored in different logical and physical
locations from completed case data. In order to bring proper closure, the system needs to
move this information to the proper locations.
7.4.3 Approach
Identify the data and documents associated with the case and determine the requirements
regarding auditing, retention, accessibility, security, and retrieval performance. The system
designer can take advantage of pre-built activities that assist in applying these requirements,
while others might require some degree of customization, depending on complexity.
7.4.4 Method
1. Identify the retention policy for case data. For example, you may be required to keep
all documents and data for a minimum period of 7 years from the time the case
completes but discard the case folder structure if it is not needed.
2. Identify a base location for archived data. For example, you might create a separate
cabinet that represents the year in which a case completed such that the retention
disposition for all data in the cabinet is the same.
3. Identify the format of the case archive. For example, you might place all documents
in an immutable virtual document, or you might render all documents to a single PDF
file.
7.4.5 Variations
• Allow for unexpected case termination.
7.5.1 Context
When a case is closed, there is a result based upon the decisions taken during the review
state of a case lifecycle. The system must capture that result for reporting purposes, and
take actions based upon the final case judgment.
7.5.3 Approach
Identify the different case actions and outcomes that must be taken in order to officially close
the case. Ensure the reporting system knows the case disposition. Execute these actions as
necessary by updating internal or external systems. Communicate the disposition to the
interested parties.
For example, the defendant in a court trial has been found not guilty. Case closure requires
the following actions: updating the district attorney’s performance statistics, clearing the
defendant’s record, releasing the defendant from custody, and informing the public of the
verdict.
7.5.4 Method
1. The case enters disposition after the final decision has been taken and the case data
has been archived.
2. Update the external systems that store the data related to the case.
3. Update the systems that gather and report the outcomes of cases.
7.5.5 Variations
• Manual or physical actions may be required as part of disposition (for example,
releasing the defendant)
8 Case Policies
8.1 Overview
Many solution patterns depend on establishing policies first. For example, the review
delegation patterns assume that policies for task delegation are defined.
Case Policies refers to decisions that govern the behavior of the case across all phases of
its lifecycle. In general, case policies are established at design time and enforced at run
time. Each type of case has its own policies, as appropriate. For example, policies important
for law enforcement are probably not relevant to opening a new account. In addition, policies
of the same type might be applicable in different parts of the same case. For example, a
case might use one assignment policy for document authoring, but a different assignment
policy for document reviewing.
8.2 Approach
When implementing case policy patterns, consider a series of questions about who, how,
when, and what. For example:
Who:
• Who has access to case information?
How:
• How are case workers assigned to cases?
• How can case workers seek assistance or delegate tasks to other workers?
• When should cases be removed from archival records? (In general, are there
other policies pertaining to archiving?)
What:
• What cases (if any) require special handling?
These questions affect the design and implementation of Case Initiation, Case Work
(Manage, Review, and Communicate), and Case Closure. Effective system designers
consider these questions early in the planning, well before the other Solution Pattern
Categories are finalized.
5. Business Logging
This is not a comprehensive list. With more experience, additional solution patterns in this
category might be identified.
8.4.1 Context
Some cases are linear and task oriented: one discrete task is performed after another.
However, other cases are more ad hoc. A case worker might do work as the need arises. Or
a group of people might share responsibility for working on the case. It is important to
determine which type of case is called for in the xCP application.
8.4.3 Approach
Consider the following questions:
Who can work on the case? Specify whether it is a single case worker or a group.
What information must be provided? This might include case data, access to folders
containing documents, an action log showing what has already happened in the case, and a
case comments tool in which to add descriptive notes.
What actions can the performer take? An example would be sending a message to the
case originator or importing documents into the case. Many of these functions can be
exposed as action buttons.
8.4.4 Method
1. Decide which type of case control is necessary by asking questions about the
sequence of tasks that must be done. If the answer is “well, it all depends…it varies
and is unpredictable,” then it is likely that the approach is not task oriented.
2. Describe the notion of a “command center” or “control panel” that provides the user a
workspace.
4. Identify the actions that users may need to take in the case.
5. Determine if the case is a group responsibility, where everyone in the group can see
everyone else’s work If so, then decide who will has access and with what rights..
8.4.5 Variations
• If a task is defined as a group responsibility and a user in that group claims the task,
then make sure that this task is removed from the inbox of all other workers in that
group.
8.5.1 Context
Throughout the life of a case, there can be several users performing different tasks in the
case. The assignment policy defines which performer is assigned to each task.
• making sure that the person who is most appropriate to handle a task is assigned to
it
Different organizations prioritize these criteria in different ways, depending on criteria such
as type of case, the nature of the work required, and the skills of their people. The goal of
case policies is to ensure that each organization achieves optimal assignments according to
their own criteria.
8.5.3 Approach
While trying to identify and define the different assignment policies, consider the following
questions:
Is the performer named? Certain tasks must be performed by a specific user, such as the
system owner, case owner, or a manager approving the work of a subordinate, while other
tasks can be performed by any user within a group.
Is the performer static or dynamic? Static performers are performers who never change. It
might be that a particular type of task is always done by one person, or a task is automated
(performed by a system). Dynamic performers are those that are determined by a rule. For
example, it might specify that a task should be performed by:
• the owner of a case
Is there a backup defined? When defining an assignment policy with a named user (either
static or dynamic) consider what happens if that user is not available. This typically involves
specifying a backup performer.
Sample assignment policies
There are different types of assignment policies; for example, a task can be assigned to:
Try to limit the number of policies to a small and consistent set that still covers your needs. If
you have dynamic policies, make sure that any data necessary for the business rules are
available, either within the process or through integration with a directory service.
8.5.4 Method
Decide how work is assigned to performers. Options include the following:
1. The manager (or some other designated individual) assigns performers by name.
2. The performer of a task assigns the performer of the next task.
3. A work queue automatically assigns the next performer.
4. A business rule determines the next performer.
o Define the business rule that determines the performer. This could be the
manager of the performer of the previous activity, the manager for the current
account, or some calculation made by the business rule.
o Make sure that all the data needed for the calculation are available in the
process.
8.5.5 Variations
• Select the performer by invoking a rule in a business rules engine.
8.6.1 Context
Information Access Control specifies the persons who can access a case and its contents,
the level of permissions associated with this access and the actions they can perform in the
case. Access control is generally based on the security group of the user and the state of the
case at the point in question.
8.6.3 Approach
Consider the following issues when defining access control policies:
What types of information require access control? Access control operates at different
levels:
• case
• dashboards
• documents
• data
For example, a case worker might not be allowed to view dashboards that show
performance metrics for other case workers.
What are the relevant security groups? Users are commonly assigned to security groups
for the purpose of defining access control. Examples of security groups include case worker,
clerk, reviewer, manager, and auditor. The access control capabilities for the auditor group
would likely be different than for the clerk group.
What is the granularity of the access policy? Access control can apply to a group of
cases, to an entire case, to selected objects within the case, or to individual data fields within
a case object. For example, in an insurance claim handling system, medical records are
viewed only by medical personnel while claim documents are viewed by all claim handlers.
What level of permission is allowed? Some individuals have the right to view information
but not to change it. Other individuals have the right to delete documents from a case. It is
important to specify the level of permissions for each user or group of users. For example, a
clerk may be able to change certain data fields but might be limited in terms of what data to
view, while the auditor would have wide scope in viewing data but could not change it.
Is the access static or dynamic? Static access does not change with time or circumstance.
Dynamic access changes over time: for example, once a decision is made in a case, a case
worker is no longer permitted to change certain data fields. Static access is easy to define,
maintain, and audit, but it might not always meet business needs.
When is access granted? This is closely related to the granularity and whether access is
static or dynamic. Access might be assigned to a case or an object within the case at design
time or at runtime. The latter can further depend on when the object is created, added to the
case, when a case worker is assigned to work on a case, or when an internal or external
event occurs.
How are exceptions handled? Sometimes access needs to be granted or restricted on an
individual basis. For instance, if a relative of a grants manager applies for a grant, then
access to that case might need to be restricted to prevent the grant manager from accessing
the case and influencing the decision. One should always strive to minimize the number of
exceptions, and it must be easy to audit any exceptions that arise.
Examples of access control policies
Below are common examples of access control policies:
• Case Based Access, in which all objects in the case have the same level of access
control.
• Confidential data fields, in which certain data fields in an object can be viewed only
by certain security roles.
8.6.4 Method
1. Define the security roles for the case (or group of cases).
3. Using a table, map the sensitive information to the security roles and specify the
appropriate permission levels for each.
5. Identify documents that are hidden from certain users (in some cases the users must
not be able to look inside these documents; in other cases the users must not even
be aware of the existence of these documents).
8.6.5 Variations
• Define procedures for auditing
• Define procedures for exception handling
8.7.1 Context
In some cases, a performer needs the assistance of other resources to complete a task. In
other cases, a manager might decide to reassign a task to a different performer.
8.7.3 Approach
When implementing task delegation, consider the following:
Who is allowed to delegate work? The delegation policy must determine if no one is
allowed to delegate work, if only certain roles can delegate, or if anyone can delegate.
To whom can a task be delegated? This question is closely coupled to the case
assignment policy. Delegation involves a transfer of responsibility, but the person doing the
delegation might be restricted in terms of to whom they can delegate a task. A manager
might be allowed to delegate work only to her subordinates, while an individual contributor
might only be able to delegate to his peers or to a designated group of people.
Is feedback required? Since delegation is a transfer of responsibility to another person, a
key consideration is who decides if that responsibility has been properly fulfilled or not. Is it
the person delegating or the person being delegated to? If the former case, the delegate
must report back, while in the latter case the person completes the task and the case
continues. The most common policy is delegation with feedback, which gives the
responsibility to the person doing the delegation (that is, the one who was originally assigned
the task). This policy difference is illustrated in the following two process patterns.
Figure 8–1 Delegation without feedback Figure 8–2 Delegation with feedback
Does the same delegation policy apply to all tasks? Within case management solutions
there are often multiple delegation policies, because certain tasks cannot be delegated (for
example, a decision) and the restrictions on further delegation and feedback might also vary
depending on the nature of the task.
8.7.4 Method
1. Decide whether to allow task delegation.
4. Specify which tasks can be delegated with feedback, and which tasks can be
delegated without feedback.
8.7.5 Variations
• Can a task be successively delegated? This might occur if the task was delegated to
a performer who was unable to complete it properly, and therefore needed to
delegate to a different performer.
• Can the task be delegated further? For instance, a manager might delegate the
review of a document to his employee and that employee might want to delegate the
review of the graphics to a graphic designer. The mandate given to the employee by
the manager might or might not allow this type of nested delegation.
• Address the situation in which a task is delegated but is never performed. This is
most relevant to the delegation without feedback pattern.
8.8.1 Context
A business log is similar to an audit trail, but it is focused on information of business interest,
such as case actions, events and decisions. The business log should be easily accessible by
authorized business users. Most business logs are created manually by users entering
comments; some business logs are generated automatically by the system, based on
specific events. Other business logs will contain a combination of system-generated and
human-entered information.
8.8.3 Approach
When defining a business log policy for a case management solution, consider the following.
What events should be logged? For example, it might be important to log all incoming
information, all phone calls, and all decisions in the case.
What information should be logged? This refers to the attributes associated with events.
For example:
• event identifier
What is the access policy of the business log? One issue of policy is which business
users should have access to the business log. Another important aspect of the business log
is whether or not it is editable. For example, can an error detected in the log be corrected? It
generally is not permissible to delete events from the business log, but that is also a matter
of policy.
8.8.4 Method
1. Define the event types in the case that need to be logged.
2. Decide if users will enter comments into the log, the system will record events
automatically, or both.
8.8.5 Variations
• Enable authorized business users to add comments to the business log, but not edit
the automatic entries.
9 Data Model
9.1 Category Overview
Case management solutions require facts, observations, statistics, measurements, and
items of information that allow users or systems to draw conclusions about a case
throughout its lifecycle. Without this information, a case cannot be defined, much less
executed.
Data can be structured, such as XML files or database tables, or unstructured, such as
images or video files. The definition of how, where, and for what duration this data is stored
will have consequences throughout the solution. Moreover, changes to the data model made
in later stages of a project will generally may require rework of those components that
depend on the data definition. It is important to understand how data are produced and
consumed by a case and to define the data model as fully as possible early in the project
lifecycle.
9.2 Approach
The data model is a holistic representation of all information needed to originate, execute,
and maintain a historically accurate representation of a case once it is completed.
When designing a data model, consider the following:
What content is required for case workers and reviewers to make appropriate
decisions? Case management systems require content to enable case work, review, and
completion. Examples of content include:
• Office Documents
• Audio/Video
• Images
• Emails
What metadata is needed to describe content? Metadata is structured data that describes
content. It enables searching, reporting, and system-to-system interaction. For example, the
following metadata could be used to describe a contract:
• Contract ID
• Client ID
Are there other entities needed by the process? Metadata can also describe entities that
contain no content. Examples of these entities include:
• Person
• Place
• Application
What data is needed for systems to make appropriate decisions? Some data are not
consumed by end-users, but instead enable systems to make decisions as the case
executes. Examples include:
• threshold levels that trigger alerts
What is the origin of case data? Data and content can originate from various sources, and
influence design decisions, determine the system of record, and affect security
requirements. Examples include:
• information ingested from external sources, such as incoming email
How will users, applications, and other systems interact with case data? This helps
drive requirements for other aspects of the application, particularly its interfaces with external
systems. Examples include:
• a case worker needs to create a MS Word document from a template
• an external system needs to ingest certain data fields from an approved application
When is information needed? This will help define security, audit, retention, and
persistence requirements. Examples include:
• a case worker needs access to all case documents until the case completes
• compliance requirements call for case documents to be stored for 7 years after the
case completes
Where should information be stored? Based on the nature of the data, there can be
several storage and format options. This decision might be constrained based on how that
data must be produced or consumed. Examples include:
• External database tables
• File storage
Example:
Consider a grant application process in which a formal review is required whenever the
funding amount requested is greater than $10,000.
• Q: What content is required for case workers and reviewers?
A: The funding amount; that is, the amount requested in the grant application
• Q: What data is needed for systems to make appropriate decisions?
A: The grant application is needed during case review and is archived for compliance
reasons. Upon completion of the case, the threshold amount is no longer needed and
is discarded.
• Q: Where is information stored?
A: The grant application is stored in a case folder and written to disk, with its
metadata stored in a database. The threshold amount is stored in a database.
• Q: What relationships exist between the case and the data?
A: A case can include only one grant application. The persistent amount of the grant
must be compared to the transient threshold amount.
In this example, the data model could be represented as follows.
9.4.1 Context
Business entities, such as customer, order, invoice, and product, are modelled as persistent
data. This persistent data is consumed by business processes. This data is ingested,
created, generated and transformed by the business processes. Its output is preserved after
a case is completed.
9.4.3 Approach
The basic approach is to identify the content, metadata, and case information that is
consumed (and created) during the case lifecycle and which, upon completion of the case, is
retained for future use.
9.4.4 Method
1. Define and model persistent entities. These data entities should accurately mirror
real business entities (contract, order, invoice, etc.).
3. Define and model the case folder structure, its metadata, and logical storage
locations.
4. Identify documents and other unstructured data that are necessary for case workers
to perform their tasks.
9.5.1 Context
Some data that are important in the case lifecycle are not needed once the case is complete.
These data elements are “transient process data.” They are kept in temporary storage and
discarded after the case completes. An example of transient process data is a counter, a
data structure that keeps track of the number of items in a list, such as a list of items
received from another system. Transitory data, even though it is not maintained in persistent
storage, is monitored by the Business Activity Monitor. See the chapter in this document on
Monitoring.
9.5.3 Approach
The basic approach is to look for data elements that are needed temporarily, during process
execution. Do not expect to identify all transitory data elements in the requirements phase.
This task will be completed during the design phase, when these elements will be mapped
into “Process Variables.”
9.5.4 Method
For each case:
1. Specify the data elements that are used for:
a) transition decisions
b) inter-process communication
c) inbound correlation events
d) environment-specific variables (i.e. is a the document generation system is
enabled)
e) communication with external systems
f) counters
g) variables that an Administrator can manually update mid-process (See
Managing Process Parameters in the Process Builder User Guide Release
6.6, page 61)
2. Map the elements into the appropriate process variables
9.6.1 Context
Data entities will often be related to other data entities. It is important to understand these
relationships when building solutions.
In this example, the cardinality of the relationship is 1-1. One customer has a unique
address. However, we may want to allow a customer to have multiple addresses (for
example, to include a summer home). In that case, the relationship would be 1-n. If the
household can contain several customers, then the cardinality would be modelled as n-n. In
general, the modelling is based on certain assumptions about the domain.
9.6.3 Approach
Identify and model the semantics of the entities and other data.
• Direct relationships – Entity Person of type Lawyer is assigned to a case
• Indirect relationships – Entity document of type docket is located in the case folder
9.6.4 Method
Given the data model:
1. Identify a relationship. Then determine
a. Cardinality
b. Space consumption
9.6.5 Variations
• Use a UML model to show data entities and relationships.
10 External Interfaces
10.1 Overview
Cases rarely exist in isolation from other systems and data in the enterprise (or beyond the
enterprise). There are often several points in the life of a case where interaction with external
systems occurs. For example:
• The case is initiated by an external user. An external client might submit a form from
a website, send an email to a case mailbox, or mail a paper form that is scanned and
ingested.
• During the life of a case, validation rules require access to an external database.
• When a task is assigned to a case worker, an assignment policy requires the name
of the user’s manager from the corporate directory for subsequent approval tasks.
• During case closure the case updates back office systems. For example, the case
sends account opening details to a CRM system.
Note that there is considerable overlap between External Integration and other solution
pattern categories; for example, sending an email is a communications function as well as a
form of external integration.
10.2 Approach
When designing integration points for a case management solution, consider the following:
What is the direction of the contact? There are four possibilities:
• incoming, unsolicited (i.e., not a response)
• incoming, response
• outgoing, response
• outgoing, unsolicited (i.e., not a response)
• Exchange of unstructured data (that is, content such as images and text documents).
These types are not mutually exclusive. For example, a request might involve acting on
content, such as a request to render a MS Word document into PDF format.
What is the timing of the interaction? Consider three types of interaction protocols:
• Content Integration
10.4.1 Context
Sometimes it is necessary to import content produced outside of the case. At other times, it
is necessary to publish content that exists within a case to an external system.
10.4.3 Approach
Consider the following questions when trying to identify and define content integration
needs:
What is the direction (incoming/outgoing) of the communication? Content can either be
sent out from the case (system) or received by the case (system).
What is the communication mechanism or protocol? There are many ways of
exchanging content between systems. For example:
• web-based submissions (HTTP)
• facsimile
• web services
content be sent out by a certain date. The solution must reflect the time constraints of the
interaction.
10.4.4 Method
1. Determine the direction of the communication.
10.5.1 Context
Sometimes it is necessary to retrieve from external systems data used in the processing of a
case. At other times, it is necessary to update an external system with data produced by the
case. Both involve data integration.
10.5.3 Approach
Consider the following questions when trying to identify and define the data integration for
your solution:
What is the nature of the data? The data could be of various types: customer data, product
data, data from industry databases, or data stored in systems of record.
What is the direction (incoming/outgoing) of the integration? As with content
integration, data can flow into or out of the case. A common pattern is for data to flow into
the case, be consumed and transformed by the case, and then flow from the case to the
external system.
When is the data communicated? The data might be sent or received based on an explicit
request by a case manager, or it might be received automatically (at any time).
What is the mechanism or protocol of communication? Data can be sent and received
using a variety of mechanisms. For example:
• database read or write
• web forms (HTTP), in which a user submits data from a form on a website
10.5.4 Method
1. Determine the direction of the communication.
10.6.1 Context
In the outbound pattern, the case requests external services. For example, it might request
that SAP perform a calculation and return the results. or it might request currency conversion
from Kronor to Euros.
10.6.3 Approach
Consider the following questions when identifying outbound service requests applicable to
your solution:
What is the mechanism or protocol of communication? The service can be invoked
using:
• web services
• HTTP
• an external program
What is the interface of the service? The interface of the service is defined by the service
name (or URL), parameter list, and the result produced. For example, consider a method,
openNewAccount, which is exposed by a back office system. This method might take a
complex parameter structure specifying the individual to open the account and the type of
account. It would then return the account ID of the newly constructed account.
When is the service invoked? The service might be invoked on demand when a case
worker seeks to change an account type. Alternatively, the case might send periodic updates
to another system about the progress of the case. The service might be invoked only when
an event happens in the case (for example, when the case enters the case closing phase).
Is the result of the invocation synchronous or asynchronous? Regardless of the
direction of the method invocation, the invocation can be either synchronous (a response is
produced immediately) or asynchronous (the response is delayed and either pushed back
later or polled for).
10.6.4 Method
1. Specify the mechanism of communication.
4. Specify the synchronicity of the service and, if it is asynchronous, specify how the
results are fetched/received.
10.7.1 Context
External systems sometimes need to control certain aspects of a case (for example, starting
a new case automatically when a web form is submitted). Inbound service requests specify
how external systems or external clients can direct and control case processing.
10.7.3 Approach
Consider the following questions when identifying inbound service requests that are
applicable to your solution:
What is the mechanism or protocol of communication? The service can be invoked
using:
• web services
• HTTP
• an external program
What is the interface of the service? The interface of the service is defined by the method
name (or URL), parameter list, and the result produced. For instance, a service
“startCaseWithDocument” exposed by a case management solution might take a single
parameter (the document) and return the case ID of the newly constructed case.
When is the method invoked? One possibility is that the service can be invoked on
demand at any time by another system. Alternatively, an existing case process might have to
wait in a suspended mode until a service is invoked. The service might only be available at
certain times.
Is the result of the invocation synchronous or asynchronous? Regardless of the
direction of the service invocation, the invocation can be either synchronous (a response is
produced immediately) or asynchronous (the response is delayed and either pushed back
later or polled for).
10.7.4 Method
1. Specify the mechanism of communication.
4. Specify the synchronicity of the service; if it is asynchronous, specify how the results
are fetched/received.
11 Monitoring
11.1 Category Overview
Case Monitoring gives workers, managers and executives visibility into cases, allows them
to see patterns and assess trends, and to take corrective actions. The benefits of business
activity monitoring (BAM) include faster response time to problems, better decision making,
and improved service to customers and partners.
11.2 Approach
When defining how the solution will be monitored, consider the following:
What real-time information about executing processes is needed? Typically, this
includes activities that have completed, the activity that is currently executing, the durations
of activities, the names of performers, and so forth.
Who needs this information? This could be an operational manager or a group of
operational managers, a case worker, or a business executive. Their responsibility is to
ensure that the processes are running smoothly and achieving the expected business
outcomes.
What types of historical reports are needed? Since the number of completed individual
processes can be very large, it is common to provide summary reports that aggregate this
information. For example, a summary report might show the number of new insurance
claims grouped by month, geographical location, or type.
How will this information be presented? Normally, summary reports are organized into
related groups and presented in dashboards. Some dashboards will be targeted at
operational managers, some at process owners, and others at line-of-business executives.
Individual reports can also be embedded in the workspaces of case workers.
What should happen if Service Level Agreements or Key Performance Indicators are
not met? The monitoring subsystem provides the ability to generate alerts based on various
conditions. For example, if an automobile claim takes more than five days to adjudicate, an
alert is raised and sent to the responsible claims supervisor.
Monitoring collects real-time information from executing business processes. This includes
information about the:
• activities in the process (for example, when each activity start and ends)
• performers of activities (for example, who performs the activities – both users and
queues)
• business data managed by activities (for example, order number, date of order, items
ordered)
2. Historical Reporting
3. Management by Exception
4. Publishing
11.4.1 Context
Assume that a process instance is in progress. Some activities may have completed while
others have yet to occur. Instance Monitoring allows you to:
1. see where the process instance is at this moment (which activity is executing)
11.4.3 Approach
A dashboard displays a list of in-flight processes. When the user selects a specific instance,
the process diagram shows the current state of the instance, with the current activity
indicated.
11.4.4 Method
1. Create a dashboard called “Instance Monitoring” (or something equivalent but more
meaningful for the business, like “Current Loans”).
2. Add a Process Instance list and a Process Diagram report to the dashboard.
3. Create a drilldown relationship between the Process Instance list and the Process
Diagram (meaning that the Process Diagram you see depends on the Process
Instance the user selects).
4. Decide if users want to filter the report results to their own department or region.
5. If you are monitoring a case that contains many processes, it might not be
convenient or helpful to monitor each and every case. In this situation, you need to
create a special BAM Control Flow to represent the progress of the case. This single
process collects significant events from the other processes, thereby allowing the
user to see them displayed in a single process diagram.
11.4.5 Variations
• Include a gauge report in the dashboard that shows the time elapsed (for the
specific case or process instance). You could also add a dial-gauge that shows
the average duration (for example, over a day, week, or month).
• For the current activity, provide a report detailing the performer, start time,
duration, and possibly the business data.
• Provide a report that shows the same information for all completed activities.
11.5.1 Context
When process instances finish, it is useful to summarize performance in the form of
analytical reports. These reports are displayed in dashboards.
2. Detail Reports – for example, for each order received this week, show the date of
the order, the name of the customer, the customer’s state, the products ordered, the
branch office responsible, and the total amount of the order.
3. Performer Reports – for example, how many cases is each performer working on,
what is the average case duration for that performer, and what is the total dollar
value of all orders for that performer (for example, over the last week)?
4. Trend Reports – for example, how many loan applications have been received each
week for the preceding month, and what is the average duration of the loan process
each month for the last year?
With this information, managers can accurately measure the efficiency of people and
processes, correct operational problems, and help performers succeed. Executives can
analyze costs, determine when to increase or decrease the workforce, and decide when to
restructure the underlying processes.
11.5.3 Approach
Plan the dashboards, based on the needs of the operational managers and other dashboard
users. Create the required reports and insert them in the appropriate dashboards.
11.5.4 Method
Proceed as follows:
1. Identify a set of potential dashboard users. This might include executives, line of
business managers, IT professionals, operational managers, and business analysts.
2. Interview the users to understand their reporting needs. Describe the four types of
summary report (described above) and ask what information they need.
3. Determine the time filter for each report (for example, data grouped by day, week, or
month).
4. Based on feedback from interviews, create prototype dashboards and hold another
review. For each report, discuss why this information is important and how it will be
used.
5. Periodically reconvene the users and assess the effectiveness of the dashboards.
Make any necessary changes, adding new reports, deleting reports, or changing the
content of reports.
Be careful about the number of reports per page. Do not include too many reports in a
dashboard, as usability may suffer.
11.5.5 Variations
• Reports can include the ability to click and drill down for more details. For example,
the user can click a segment in a pie chart and display a bar chart that provides the
next level of detail.
• Analytical reports can be inserted in the worker portal of individual task performers.
The information in these singleton reports is relevant to the tasks of the worker and
throws light on the task at hand. For example, the report might show the number of
orders that a customer has made over the last year, together with the date and
amount of each order. This provides context for the task performer.
• Reporting with data in external systems
11.6.1 Context
Management by exception involves the following functions:
1. Noticing that something exceptional has occurred, generally a weakness or
operational problem. For example, a certain process is not meeting its Service Level
Agreement.
2. Identifying the root cause of the problem, which could be a resource problem, a data
problem, a process problem, or a performer problem.
3. Taking appropriate corrective action, for example, to add more resources or change
the process.
11.6.3 Approach
1. Notice an exceptional situation. You might be able to detect a problem from a
summary report. For example, one branch office might have a much longer cycle
time than the others. You can also define alerts that indicate in real time a problem or
exceptional situation. These alerts are displayed in a dashboard.
2. Identify the root cause. This is generally done by reviewing a report to understand the
details. You might have to look at multiple reports to understand the full picture.
3. Take corrective action. When an alert occurs, an email is sent out to the responsible
parties. Alternatively, the alert can trigger a remediation process.
• activity duration
11.6.4 Method
1. Define SLAs: these are the thresholds set by business for alerts.
2. Based on the SLAs, define each alert and set its severity level.
3. For each alert, decide which users (by name) who should be alerted.
4. Define the alert resolution process. What must they do in order to close the alerts?
5. Create one or more alert reports and insert them into the appropriate dashboards.
11.6.5 Variations
• Add an Alert List Report to the Instance Monitoring dashboard
• An alert can automatically trigger a remediation business process. This process
would typically define the steps needed to investigate and resolve the alert
condition.
11.7.1 Context
Publishing is the means by which BAM reports are conveyed to the consumers of these
reports.
11.7.3 Approach
Publishing is based on the needs of the audience. Understand the audience for monitoring
reports and design a communication mechanism that best meets their needs. Different types
of user will have different needs. For example:
• An executive might only be interested in historical business metrics.
• A case supervisor might want to know the status of the work queues in her group.
• An operational manager might need to know what is happening at the moment.
• A heads-down case worker might need only a report that shows how many of his
cases are new, how many have been screened, and how many need screening.
11.7.4 Method
Proceed as follows:
1. Identify the users who require monitoring reports.
2. Interview the users to determine what type of monitoring reports they need.
4. Determine the reports that each dashboard will contain. Create mockups of the
dashboard. Review with the target users.
5. Decide if individual reports embedded in a user workspace are more appropriate for
a different group of target users. Which reports do these users need and in what
context? For example, the case worker may need to see a report on order history for
the customer they are servicing.
11.7.5 Variations
• Create a batch job that generates a set of reports and send them to users via email.
• Embed selected BAM reports in a custom web application.