ProcessBuilder: Process Correlation

Process Correlation

xCP 1.x compatible

You can use external systems or technologies using a variety of transmission protocols (e.g. SMTP, FTP or Java Messaging Services).
Correlation identifiers are similar to the r_object_id attribute and implemented as a 32 character string containing hexadecimal letters.

The Process Integrator handel two types of communication:

  • Synchronous – a request is sent and the response is immediately received (no real time, negligible delay)
  • Asynchronous a request is sent, but the answer might never be received or will be received at a later time

Correlation ID vs. Correlation Set

Correlation ID explained using the example of the email activity.

The correcation idenifier can be embedded in the subject header of an outgoing email. The email inbound activity parsed the Subject header and extract the correlaction identifier.

The correlation identifier is embedded in the email subject. The correlation ID must be set in the Input Message Mapping window of the SMTP activity.
The name of the correlation ID, in this example $transaction must be set in the email inbound activity.

Positve: easy and fast to use
Negative: Subject header of the incomming email could only contain the correlation identifier and no other additional text. If the matching process instance is not found a correlation error occurs:

ERROR com.documentum.bps.email.inbound.runtime.EmailTask - Could not process the message for 'Process - simple_email_action Activity - Email Inbound - Step'
Listener: 'Process - simple_email_action Activity - Email Inbound - Step'
Workflow: 'null' - 'null'
Workitem: 'null'
Process: 'simple_email_action' - '4bde75d18000853d'
Activity: 'Email Inbound - Step' - '4cde75d1800082b2' - Activity Template: 'Email Inbound - Step'

com.documentum.bps.inbound.WorkflowNotAvailableException: Workflow not found

Correlation Set

Only process variables or properties of the SDT are selectable.

The correlation set can be defined in the Process Properties in the Advanced tab. The set can contain process variables and structured data taypes. Process Parameters or Package informations are not allowed and available.

The Process integrator will always attempt to use a correlation identifier (not correlation set). If the ID is not available the preconfigured correlation set will be used.
Remember: a correltion identifier in the email subject is not an effective way to match the correct process instance.
Best practice is to create a additional set of Process variables. One of these variables is named message_ID or transaction_ID and contains the internal identifier of the outbound SMTP activity.  In the email inbound step the email attribute Reference will be mapped to the Correlation Set attribute transaction_ID (ref. screenshot).

Displayed the second page of the activity Inspector of the Email inbound activity. The attribute ‘Reference’ is mapped to the correlaction set attribute ‘transaction_ID’

 

Table: Protocol and correlation ID

protocolcommunication typeCorrelation ID
EmailasynchronousCorrelation Header
FTPasynchronousCorrelation Pattern
HTTPsynchronous *Correlation Property
Web Servicessynchronous *
Java Messaging Servicesasynchronous
DQLsynchronous
SQLsynchronous
* can be uses in an asynchronous fashion

Additional information: Process Integrator page and Understanding Process Data article

WF vs Lifecycle

Here you can find a short overview of two of the automation features that documentum offers. It helps you keep in mind the most important differences. In combination with aliases they even can be transferred from one repository to another. For further information please refer to the corresponding documentation.

LifecycleWorkflow
A lifecycle is what happens to an object.A workflow is what people do to an object.
A lifecycle is a set of linearly connected states.A workflow is a network of activities.
artifact in a Documentum project, to be installed or uninstallednot implemented as a project. Using Project builder WFs can be changed using a checkin / checkout function.
Documentum ComposerWorkflow manager and Process Builder, but not in Documentum Composer.
instance of dm_policyinstance of dm_process
without run-time instanceswith run-time instances (When a user starts a workflow, the server uses the definition in the dm_process object to
create a runtime instance of the workflow. Runtime instances of a workflow are stored
in dm_workflow objects for the duration of the workflow. )
definition states: draft, validated, installed (states that have absolutely nothing to do with the states in the LC which are stored in attributes i_state_no, state_* and others in dm_policy object)definition states: draft, validated, installed

short tutorial: upgrading Content Server

short tutorial: upgrading Content Server

Upgrading your Content Server on Windows Server OS

The current version of xCelerated Composition Platform (xCP) is version 1.5 (6.6 release). It is not possible to update the entire software platfrom 1.5 to 1.6 (6.7 release).

Note: Due to changes in the licensing of some 3rd party components that are used in the xCP Developer Edition, the 1.6 release has been delayed.  Please watch this page for an announcement of its availability. 

https://community.emc.com/docs/DOC-7850

The first step is to upgrade the Content Server from the released version 6.6 to the current version 6.7 SP1. Here is the upgrade checklist with additional screenshots and comments.

checklist

  1. Back up the repository.
  2. Back up  customized formats(dm_format objects)

    Content Server 6.7 SP1 start installation
  3. Run the consistency checker job or dmbasic syntax (optional, if you are not upgrading an new xCP installation)
  4. Disable all jobs in the Documentum Administrator
  5. Shut down the repository and the connection broker (docbroker) in the Server Manager
  6. Shut down the Documentum Java Method Server services. Switch the start up method from automatic to manual to ensure that the services does not start automatically after a host restart.
  7. Start the installation
  8. install xPlore or FAST search engine (FAST is not supported)

    Content Server 6.7 SP1 select search engine
  9. select upgraderepository and docbrocker

    Content Server 6.7 SP1 upgrade repository
  10. don’t select create additional repository or docbrocker and finish the section

    Content Server 6.7 summary information
  11. finish installation, check install logfile in the source folder
  12. restart the environment (check Java memory size in Windows Task Manager, check the Documentum Services in the Windows Services, check the log files in the new JBoss 5.1 folder)
  13. stop the Application Server Service
  14. deploy JBoss war files for Taskspace, Administrator etc. in the deploy folder
  15. restart Application Server Service
  16. install DAR applications (Taskspace, Administrator etc.) using Composer 6.7 DARInstaller

short tutorial: create list of values

Create a list of values (LOVs)

You can set default values for every standard or custom type. The possible values can be predefined or the result of a DQL query.
Every entry in the drop down list is a single custom object child of the custom type lov_entry. So you set or change the properties for each entry: e.g. valid or visible or change the display label individually. It is easy to administrate the values via DFS, because the entries will be maintained by the departments not by the administrators.

Lov_entry is a custom object based on dm_document. All dm_documents attributes are inherited. Additional attributes depend on your individual requirements. In this example we have lov_type, lov_code and lov_label etc. This is the parent object of all lov_entry value. You can mark the property Attribute cannot be blank, so the user must set a value for the attribute.

So,second create the lov_entry objects using DQL:

create "lov_entry" OBJECT  set "object_name" = 'Department sector seven blue' set "lov_type" ='department' set "lov_code" = '7 blue' set "lov_label" ='Sektor Sieben Blau' set "lov_depend"=  '0'  set "is_valid" = 1 set "lov_lang" = 'de'

is_valid: 0 (FALSE)
is_valid:1 (TRUE)

Check all your entries in the DQL Tester:
select * from lov_entry WHERE lov_type ='department'

Value mapping

The type lable is the name of the custom object displaying in the dropdown list. If you create a dm_document related object this is will be shown on the document type list.

Use the Conditional Assistance and inset a tested DQL query like
select lov_label from lov_entry WHERE lov_type ='department' AND is_valid = 1 ORDER BY lov_label ASC
Check your DQL carefully! The install process will stop with an error message, if the query result is not valid.

Display Configuration

Configure the visible display values

Configure the visible object attributes. It is possible to create a custom properties label. Add all custom attributes from the left to the right. You can reorder the attributes if you move the selected value up or down.

Select only the custom attributes

Installing

Finally install the custom type and the value mapping into your environment.
If the changes are not visible after installing run the Data Dictionary Publisher job manually.

additional information on the properties tab for the custom object