Deleted document participating in a workflow

October 29th, 2008 Sarath Akkineni Posted in DCTM | 2 Comments »

Many of you would have already encountered this issue dealing with workflows in Documentum. Deleted documents in a workflow can be an administrative nightmare! Documentum does not gracefully handle deleted documents participating in a workflow.

The following errors are encountered when users try to complete tasks with deleted documents in them:

[DM_WORKFLOW_E_MANU_PACKAGE]error:  ”Failed to manufacture packages for activity Review (20) of workflow (4dxxxxxxx0002500).”

[DM_WORKFLOW_E_BINDING_PACKAGE]error:  ”Package binding failed because no object could be identified by package ID (09xxxxxxx000b3a9) with package label CURRENT.”

4d01817c80002500 – Identifies the workflow in progress and

0901817c8000b3a9 – Identifies the document that was deleted

The following procedures can be followed to handle this issue:

Procedure 1:

This procedure is executed strictly using Documentum DQL and API with no direct updates to the database.

  • Removing the packages affected from the work items
  • Add existing documents into new packages
  • Attach the package to the work items
  • Attach the existing comments (notes) to the packages
  1. Get the workitem detailsselect wi.r_object_id from dmi_workitem wi, dm_activity act where wi.r_workflow_id=’4d01817c80002500′ and act.object_name = ‘<name of the task that >’ and wi.r_act_def_id = act.r_object_id
  2. Get the package details and

select r_object_id, r_component_id, r_note_id, r_package_name, r_package_type, r_port_name, r_note_flag from dmi_package WHERE r_object_id IN (select pack.r_object_id from dmi_workitem wi, dm_activity act, dmi_package pack where wi.r_workflow_id=’4d01817c80002500′ and act.object_name = ‘OPS Review’ and wi.r_act_def_id = act.r_object_id and pack.r_workflow_id = wi.r_workflow_id and pack.r_act_seqno = wi.r_act_seqno)

Remove the package
removepackage,c,4a01817c80002d04,’DocumentPackage’

addpackage,c,4a01817c80002d04,’DocumentPackage’,'gf_document’,’0901817c8000b3c0,0901817c8000b3a9,0901817c8000b53d’

addnote,c,4101817c8000bd13,4901817c80002d0b

Procedure 2:

This procedure involves retrieving all the packages that contain the deleted document and updating the database.

Execute the following DQL statements:

  1. Retrieve the Chronicle ID of the document deleted.SELECT DISTINCT r_component_chron_id FROM dmi_package WHERE ANY r_component_id = ‘09xxxxxxx000b3a9

  2. Review the state of the workflow and gather the list of activity sequence numbers of the packages and the list of work items that need to be cleaned up.SELECT wi.r_object_id, act.object_name, wi.r_act_seqno, pack.r_object_id FROM dmi_workitem wi, dm_activity act, dmi_package pack WHERE wi.r_workflow_id=’4dxxxxxxx0002500‘ AND wi.r_act_def_id = act.r_object_id AND pack.r_workflow_id = wi.r_workflow_id AND pack.r_act_seqno = wi.r_act_seqno

  3. Query the packages that need to be cleaned up using the list of activity sequence numbers and the chronicle ID of the document retrieved above.SELECT pack.r_object_id FROM dmi_workitem wi, dm_activity act, dmi_package pack WHERE wi.r_workflow_id=’4dxxxxxxx0002500‘ AND wi.r_act_def_id = act.r_object_id AND pack.r_workflow_id = wi.r_workflow_id AND pack.r_act_seqno = wi.r_act_seqno AND wi.r_act_seqno IN (list of activity sequence numbers retrieved above) AND ANY pack.r_component_chron_id = ‘Chronicle ID retrieved above

The r_component_id and r_component_chronicle_id in the package play the following roles:

  • r_component_id is used by Documentum Webtop to list all the documents in the package
  • r_component_chron_id is used by the Documentum Webtop to group workflow comments displayed in the task manager

Both these attributes need to be updated to NULL for Documentum Webtop to process the workflow without any problems.

Execute the following SQL statements on the database:

  1. Update the package list retrieved aboveUPDATE dmi_package_r
    SET r_component_id = NULL, r_component_chron_id = NULL
    WHERE
    r_object_id IN (List of Package IDs retrieved above)
    AND r_component_chron_id = ‘Chronicle ID retrieved above
AddThis Social Bookmark Button

Intelligent Documents

January 24th, 2008 Sarath Akkineni Posted in ECM, Microsoft | No Comments »

Many ECM vendors have tried integrating their systems with Microsoft Office Applications, building custom plug-ins, and add-ons to have users work with content/meta-data from the office applications. This was the only feasible solution with pre-Office 2003 limitations to develop intelligent documents.

With Microsoft Office 2007 (MOSS), Microsoft offers a framework which is more usuable and in-line with the business needs. Intelligent documents can be developed in organizations using the following features:

  • InfoPath 2007 extended capabilities
  • Visual Studio support for Office Applications
  • Document Information Panels
  • Custom Task Pane (CTP)
  • Custom Ribbons
AddThis Social Bookmark Button

Installing multiple Apache Tomcat instances for WDK Applications

December 21st, 2007 Sarath Akkineni Posted in DCTM, ECM | No Comments »

Let us assume that an Apache Tomcat instance (Tomcat1) is currently installed as a windows service on an application server that uses port 80. There is a need to launch another Apache Tomcat instance (Tomcat2) as a windows service that uses port 7001.   

The following steps need to be performed:

  1. Download the Tomcat deployment package and extract it onto the application server, say C:\jakarta-tomcat-5.0.28 (Tomcat2)
  2. Modify the server.xml (Tomcat2) changing the port numbers making sure they do not colliode with the port numbers specified in server.xml (Tomcat1)
  3. Create a environment variable CATALINA_HOME2=C:\jakarta-tomcat-5.0.28
  4. Modify the Tomcat startup/shutdown scripts to change the CATALINA_HOME to CATALINA_HOME2
  5. Install the windows service using the following command:

    Tomcat5.exe //IS//Tomcat51 –StartClass org.apache.catalina.startup.Bootstrap –StopClass org.apache.catalina.startup.Bootstrap –StartParams “-config;C:\jakarta-tomcat-5.0.28\conf\server.xml;start” –StopParams stop –StartMode jvm –StopMode jvm –Startup Manual –Description “Another Tomcat Instance” –DisplayName “Apache Tomcat51″ –JvmOptions “-Dcatalina.home=C:\jakarta-tomcat-5.0.28;-Djava.endorsed.dirs=C:\jakarta-tomcat-5.0.28\common\endorsed;-Djava.io.tmpdir=C:\jakarta-tomcat-5.0.28;-Djava.library.path=C:\Program Files\Documentum\shared” –LogPath “C:\jakarta-tomcat-5.0.28\logs” –LogPrefix “tomcat51_” –StdOutput “C:\jakarta-tomcat-5.0.28\logs\Tomcat51_out.log” –StdError “C:\jakarta-tomcat-5.0.28\logs\Tomcat51_err.log” –Jvm “C:\j2sdk1.4.2_05\jre\bin\server\jvm.dll” –JvmSs 256KB –JvmMx 128MB –JvmMs 256MB –JavaHome “C:\j2sdk1.4.2_05\jre” –Classpath “C:\jakarta-tomcat-5.0.28\bin\bootstrap.jar;C:\Documentum\config”

  6. Install the WDK applications
AddThis Social Bookmark Button

Deleting a user from the Documentum repository

September 28th, 2007 Sarath Akkineni Posted in DCTM | 1 Comment »

  • Deleting a user from the repository is highly not recommended
  • Prior to deleting an user from the repository, the ownership of all the objects owned by the user needs to be changed
  • When a user is deleted from the repository, his memberships in groups and permission sets are not effected. The memberships need to be altered by using DQL and API
AddThis Social Bookmark Button

DQL to uninstall Workflows

September 12th, 2007 Sarath Akkineni Posted in DCTM, ECM | No Comments »

  1. Retrieve the workflow that needs to be uninstalled

    SELECT r_object_id, object_name, r_definition_state FROM dm_process WHERE object_name = ‘<Name of Workflow>

  2. Change the definition of the workflow to DRAFT (0 = Draft)

    UPDATE dm_process OBJECT SET r_definition_state = 0 WHERE r_object_id = ‘<r_object_id retrieved in step 1>

  3. Change the definition of the activities corresponding the above workflow to DRAFT (0 = Draft)

    UPDATE dm_activity OBJECT SET r_definition_state = 0 WHERE r_object_id IN (SELECT r_object_id FROM dm_activity WHERE r_object_id IN (SELECT r_act_def_id FROM dm_process WHERE r_object_id = ‘<r_object_id retrieved in step 1>‘))

  4. Verify that all activities are in the DRAFT state

    SELECT object_name, r_definition_state FROM dm_activity WHERE r_object_id IN (SELECT r_act_def_id FROM dm_process WHERE r_object_id = ‘<r_object_id retieved in step 1>‘)

AddThis Social Bookmark Button

Install DCTM on Ubuntu

July 27th, 2007 Sarath Akkineni Posted in ECM, Open Source | 3 Comments »

Finally got Documentum successfully installed on an Ubuntu platform.

  • The Content Server software got installed with no issues.
  • Keep in mind to run the dm_root_task before configuring any repositories

When configuring a new repository, the installation fails to execute the scripts after creating the database for the repository. Failure – Authentication failure for the repository owner with a blank password. Follow the following steps to turn off authentication, until the repository is successfully installed:

  1. Change directory to the Documentum dba location ($DOCUMENTUM/dba in a default installation):

    cd $DOCUMENTUM/dba

  2. Create a script that will be called by the server to validate passwords and always return success. Create a file named ‘dm_nocheck_password’ with the following lines:

    #!/bin/sh
    exit 0

  3. Change permissions on this file so it is executable and read/write by the dmadmin account:

    chmod 4750 dm_nocheck_password

  4. If the headstar.dql, formats.dql and wsconfig.api script have been executed (or a custom version of them) then skip to the next step. Otherwise, execute these scripts now. The script ‘dm_apply_headstart’ in DOCMENTUM/dba/config/ will execute all three. If you cannot connect to the docbase, log into the UNIX host machine directly as the docbase owner. You will then not have to supply a password for IDQL or IAPI since you already did logging into the server.
  5. In IDQL execute the following DQL as the Docbase owner or dmadmin superuser:# Substitute in the full path for the file_system_path directory

    create dm_location object
    set object_name=’novalidate_user’,
    set path_type=’file’,
    set file_system_path=’<file_system_path>/dba/dm_nocheck_password’
    goupdate dm_server_config object
    set user_validation_location = ‘novalidate_user’
    goexec reinit
    go

  6. This changes the user validation location in the server config object to point to a new location object which is the file we created in step 2.

To turn the password validation back on, do the following:

  1. In IDQL execute the following DQL as the Docbase owner or dmadmin superuser:

    update dm_server_config object
    set user_validation_location = ‘validate_user’
    goexec reinit
    go

Note: Sometimes the validation does not work as expected! You will have to keep logging into the repository using IDQL or IAPI so you could keep a session active for the installer to use. Try re-executing the scripts until success.

AddThis Social Bookmark Button

SAS 70 in ECM World

July 17th, 2007 Sarath Akkineni Posted in Compliance, ECM | 2 Comments »

Statement on Auditing Standards (SAS) No. 70, Service Organizations, is a widely recognized auditing standard developed by the American Institute of Certified Public Accountants (AICPA). Service organizations or service providers must demonstrate that they have adequate controls and safeguards when they host or process data belonging to their customers.

  • The issuance of a service auditor’s report prepared in accordance with SAS No. 70 signifies that a service organization has had its control objectives and control activities examined by an independent accounting and auditing firm.
  • SAS No. 70 provides guidance to enable an independent auditor (“service auditor”) to issue an opinion on a service organization’s description of controls through a Service Auditor’s Report.
  • SAS No. 70 is generally applicable when an independent auditor (“user auditor”) is planning the financial statement audit of an entity (“user organization”) that obtains services from another organization (“service organization”).

In addition, the requirements of Section 404 of the Sarbanes-Oxley Act of 2002 make SAS 70 audit reports even more important to the process of reporting on the effectiveness of internal control over financial reporting.

Source: http://www.sas70.com

AddThis Social Bookmark Button