xCP Design Pattern Catalog

 

Pattern

Purpose

The xCP Design Pattern Catalog allows the xCP community to share xCP Patterns in a collaborative fashion. it is a subset of the xCP Pattern Library.  An xCP Design Pattern is a description of how to solve a particular business or functional need within xCP. Posts can come from anyone, both from within EMC and externally. The purpose is to promote the sharing of knowledge within the community to further reduce xCP implementation time and to explore new ideas on how to use xCP following best practices.

 

NEW!  To approach xCP solution development from the business perspective first, be sure to start by fully understanding the complete xCP Pattern Library, which you can find here.

 

How to Submit

For instructions on how to submit a Design Pattern, refer to the following page: xCP Patterns - How to Submit.

 

 

 

How to use this Page

There are two options when searching for information. The first is to browse through the Patterns listed below. This would be useful when educating oneself on working with xCP and to come up with new ideas. The second option would be to use the Search field at the top right corner of this page. This would be helpful once the below list of contents becomes long and when searching for specific information. Be sure to use the keyword xcppattern when searching, in order to only return information from the xCP Design Pattern Catalogue.

 

Pattern CategoriesWhat's new?

Activity Pattern

NameDescription
Wait Activity Template in a ProcessThis pattern describes how you can configure a process to wait for a specific duration before it continues.
Creating HTML Email TemplateThis pattern describes how to create and send a HTML email from within a process
Creating a Business LogThis pattern shows how to create a business log, where users or the system can enter business events that take place within a case and where they can later be reviewed.
Configure Custom TimerThis pattern describes how to create timers based on custom date fields within Process Builder.
Configure Transition Based on Data Change (DQL)This pattern describes how you can transition from one activity to the next based on a data change in the repository.
Generate outgoing email communication by SMTPThis design pattern describes how to use the out of the box existing SMTP activity template which allows the process designer to configure custom emails to be sent, optionally attaching case documents and including case data.
Configuring pre-timersThis pattern describes how to configure the process to take an action on any activity if that activity has not begun after a certain period of time has elapsed.
Configuring post-timersThis pattern describes how to configure the process to take an action on any activity if that activity has not completed after a certain period of time has elapsed since the activity began.
Initiate a Process From a BAM AlertThis Design Pattern details how a process can be started when BAM generates an alert.
Receive Incoming File (FTP)This Design Pattern describes how to ingest a file placed on a local or remote file system into a case.
Generate Case NumberThis Design Pattern describes how to use the GenerateNumber activity to generate a case number. It also describes how to set up a number sequence retirement scheme.

 

 

 

Data Structures

NameDescription
Layered SDTsThis data modeling pattern describes how to structure your runtime process data (i.e. transient data) to achieve a consistent and re-usable design that does not negatively impact performance by minimizing the number of SDTs used in processes and Task Lists.
Establish object relationships using relation objectsThis design pattern addresses the different options one has when creating relationships using relation objects.
Establish object relationships using folder containmentThis pattern describes how to model relationships using the logical location of an object.
Identify data storage mediaThis design pattern shows you how to configure two different storage areas and direct documents to their storage location based upon their type.

 

 

 

Integration

NameDescription
PDF Forms with xCPThis document will step you through how to use Adobe Professional to create a simple form, correctly configure a submit button on the form, and configure xCP Process Integrator to ingest the form for archival to the xCP content store and for processing in an xCP case.
Connect to External Database Using Data Source AdaptorsThe pattern describes how to connect to an external database to retrieve values from within an xForm.
Update External DatabaseThis Design Pattern details on how to insert, update or delete data and execute a stored procedure on external database.
Access Data from External XML FilesThis Design Pattern shows how to parse and extract data from external xml-files within a process.

 

 

 

Invocation/Initiation

NameDescription
Process Initiation by Package Form TemplateThis is a process initiation pattern where the process is started by a user.  It describes how you can leverage the form template of a package as the initiation screen bypassing the standard task manager.
Process Initiation by Process Initiation TemplateThis is a process initiation pattern where the process is started by a user. It describes how you can leverage the process initiation template as the initiation screen bypassing the standard task manager.
Process Initiation by DQL QueryThis is a process initiation pattern where the process is started by a change in the repository, the change can be anything that can be picked up by a query, a document is linked to a folder, a date on an object is the current date etc. It describes how you can leverage such changes to automatically start a process.
Launching a Workflow from a High Fidelity FormThis is a process initiation pattern where the process is started when a users submits a high fidelity form. The form can be placed on an internal or external website and the user does not have to be logged into TaskSpace.
Launching a workflow on recieving an emailThis is a process initiation pattern where the process is started when an email is received. For example, an email received to create a Service Request, an email received for vacation approval, an email received to register a user to the database.
xCP and Mobile Devices - Process Initiate by HTML FormThis pattern shows you how to create a simple HTML Form that can collect input from a mobile device, any unit with a web browser, and launch or interact with a workflow.
Initiate Process From Document Received via FTPThis is a process initiation pattern where the process is started by a file being copied to a file system directory. The pattern describes how you can detect when the file is added to the directory and how to start a process with that file as the attachment.
Process Initiation by Form SubmissionThis is a process initiation pattern where the process is started by a user. It describes how you can leverage a form template to allow the user to fill in the information required and to start a process with that form attached to it.
Initiate Process from Data Received via HTTPThis is a process initiation pattern where the process is started by a HTTP request. It allows for users to fill out HTML-based forms and submit attachments but does not require authentication to TaskSpace or other Documentum client.
Invoke a Web ServiceThis pattern shows how invoke a web service to perform some work within a process.
BAM Alerts and Process InvocationThis Design Pattern describes an approach to starting a process when a BAM alert is raised through the Database Inbound Initiate activity.
Start Processes from BAM DashboardThis Design Pattern describes how to allow a user to start a process from an BAM report by clicking a button.
Process Initiation by Map LocationThis is a process initiation pattern where the process is started by a non-TaskSpace user by marking a location on a map and providing some details regarding that location.
Passing additional parameters with an invoke process buttonThis Design Pattern describes one approach to passing additional parameters via an invoke process button to a process by extending the start a process standard action.
Initiate Process by SQL QueryThis Design Pattern illustrates how to invoke a process when a row is added to a external database table.

 

 

 

Look and Feel

NameDescription
Displaying External Content in a Form This user interface pattern describes how to leverage the RichTextField to display content from an external site within a form.
Rounded Corner StyleThis user interface pattern describes how a rounded corner style can be created with images within FormsBuilder.
Rounded Corner Style with BorderThis user interface pattern describes how a rounded corner style can be created without images within FormsBuilder.
Square Corner Style with Border and ShadowThis user interface pattern describes how a square corner style can be created within FormsBuilder.
Mixed Corner Style with Border and ShadowThis user interface pattern describes how a mixed corner style can be created within FormsBuilder.

 

 

 

Process Pattern

NameDescription
Process Pattern: Exclusive ChoiceThis is a process flow pattern which describes how to design a flow where several paths from an activity are offered but only one path forward can be taken.
Adding documents or folders to a workflow at runtimeA process template can define packages during design time but these are static in number and type, this pattern describe how to dynamically attach documents or folders to a workflow at runtime.
Advance a workflow via inbound emailAn xCP application sends an email as part of a workflow.  In order to advance the workflow, the recipient needs to reply to the email. This pattern describes how to have an external collaborator perform a workflow step via email.
Looping in Process BuilderThis pattern describes how to set up an automatic loop within a process.
Inter-process communicationThis pattern describes how to delegate work and pass information from a parent process to a child process and have the parent process wait until the child process completes.
Process Pattern: Simple MergeThe pattern describes how to transition each of the paths emerging from an Exclusive Choice into a single activity.
Task Escalation PatternThis pattern describes how to implement task escalation logic, i.e. when a pending task is automatically assigned to task performer's manager after N days
Receive Unsolicited Email in a CaseThis pattern describes how to automatically add unsolicited emails to a case at any time during the life of a case. Since this is unsolicited emails where there is no automatic correlation id that can be used we must rely on other means of correlating the email to the right case.
Static M out of N JoinThis process flow pattern describes how to perform a M out of N join where the M and N are known at design time.
Configure an Iterative ReviewThis process pattern shows how to configure an iterative review (i.e. a review where the work - review cycle is performed until the review is positive) in process builder.
Configure a Conditional ReviewThis process pattern shows how to configure an conditional review (i.e. review only when amount > 100) in process builder.
Configure Queuing DisciplinesThis Design Pattern describes how to configure work queue policies to assign an initial priority and to age the priority of tasks based on different values in the policy.
Process Delegation and ControlThis Design Pattern describes how to configure a parent process that invokes multiple subprocesses to perform work, then waits until they have all completed.
Configure a Group ReviewThis Design Pattern describes how to configure a group review, which enables multiple people to review the same object, all providing input to the final result.
Multi Instance LoopingThis Design Pattern shows how to configure a loop within a process where each value of a repeating data set is processed in parallel, and the main process waits for all the parallel instances to finish.
Determination of Work Queue, Skill Value & Priority at runtimeThis Design Pattern describes how to determine the work queue, skill value and priority of a task at runtime.
Advance a workflow based on HTTP stepThis Design Pattern describes how to construct a mechanism to allow user to advance task in one ore many directions by simple click in his e-mail client.

 

 

 

Reporting

NameDescription
Process instance dashboard with multi-drillAn xCP application contains a Business Activity Monitor (BAM) control process and operational managers need to be able to monitor in-flight workflows.
Configure a BAM control processThis Design Pattern describes how to configure a BAM control process which shows a simplified view of the case for monitoring purposes.
Start Process from BAM DashboardThis Design Pattern describes how to invoke a process from a BAM Dashboard, enabling a user to take immediate action based on a report.
Create a report using Crystal ReportsThis Design Pattern demonstrates how to create BAM report using Crystal Reports. It also covers how to export these reports to use them outside of TaskSpace application.
BAM Alerts and Process InvocationThis Design Pattern demonstrates how to invoke a process with parameters from a BAM alert in order to handle an exceptional situation.
Sorting data in non alphabetical way in BAM reportsThis Design Pattern describes how to configure a report to display the contents sorted in a non alphabetical way.
Advanced Drill Down Technique for Data Analysis in BAM ReportsThis Design Pattern describes how to configure multi-level drill down reports within BAM.
View BAM reports in a third party applicationThis Design Pattern shows how to publish a BAM report in a web application other than Taskspace.

 

 

 

User Interaction

NameDescription
Creating a Business LogThis pattern shows how to create a business log, where users or the system can enter business events that take place within a case and where they can later be reviewed.
Creating Dependent Drop-Down ListsThis Forms Builder pattern shows how to configure dependent drop-down lists, i.e. where one drop-down list is used to limit the values of another drop-down list.
Custom WDK Actions in TaskSpaceThis user interface pattern describes how you can make regular WDK actions available within TaskSpace so they can be triggered from an invoke button on a form or a menu option in a context menu.
Hide and Show Controls on FormsThis Design Pattern describes how to conditionally hide or display form fields based on user role and/or the values of other form fields and workflow attributes.
Display a choice of cases in a Welcome screenThis Design Pattern describes how to configure a welcome screen that displays a list of open cases to the user.
Creating a Filtered Single Select List BoxThis Design Pattern describes how to confingure a filtered single select list box.
How to configure Fly-Out menus in TaskSpaceThis Design Pattern describes how to configure Fly-Out menus in a Folder tab in TaskSpace to give the user access to several actions without cluttering the user interface.
Configuring Task Space selectorThis Design Pattern describes how configure a selector in TaskSpace.
Passing data from a search result to a formThis Design Pattern describes how to automatically populate a form based in data data returned from a search query.

 

 

 

Documentum D2

NameDescription
Configuration naming rulesThis Design Pattern outlines a way to organize large Documentum D2 configurations by applying a consistent and easy to use naming convention.
Factorize and optimize document setsThis Design Pattern describes how to optimize the runtime evaluation of the Documentum D2 configuration matrix for a specific document.
Options to build choice lists within D2This Design Pattern looks at the pros and cons of the various options Documentum D2 provides for building choice lists in property pages.
Useful shortcuts and URLs for Documentum D2This is not really a Design Pattern but a list of useful shortcuts you can use within Documentum D2, for both end-users and administrators.
Avoid trailing spaces in autolinkThis Design Pattern describes how to properly define auto-linking in D2-Config to avoid trailing spaces which prevents folders from being created.

 

 

 

 

 

Design Pattern Disclaimer:

Design Patterns are technology focused and can be samples, examples, starting points, or guides that accelerate the creation of an xCP solution. They can be submitted by anyone who is a part of the xCP Developer Community and will not be tested, proven, or supported by EMC. While EMC may manage the content accessible from this homepage, it will be the community who should ensure that the content is valid.