# Documentum InPlace Adapter

## Introduction

The Documentum InPlace importer takes the objects processed in migration-center and imports them back in a Documentum repository. Documentum InPlace importer works together only with Documentum scanner.

Documentum InPlace adaptor supports a limited amount of Documentum features such as changing the object types of the documents, changing the links of the documents and changing the attributes. Changing object’s relations is not supported, neither is changing the Virtual documents or Audit trails.

## Supported Documentum Content Server versions

The supported Documentum Content Server versions are 5.3 – 20.2, including service packs. For accessing a Documentum repository Documentum Foundation Classes 5.3 or newer is required. Any combinations of DFC versions and Content Server versions supported by EMC Documentum are also supported by migration-center’s Documentum InPlace Importer, but it is recommended to use the DFC version matching the version of the Content Server targeted for import. The DFC must be installed and configured on every machine where migration-center Server Components is deployed.

## DFC (Documentum Foundation Classes) configuration

Starting from version 3.9 of migration-center additional configurations need to be made for the Documentum adapter to be able to locate Documentum Foundation Classes. This is done by modifying the ***dfc.conf*** file, located in the Job Server installation folder.

There are two settings inside the file that by default match the paths of a standard DFC install. One needs to have the path for the ***config*** folder of DFC and the other needs the path to the **dctm.jar**.

See below example:

`wrapper.java.classpath.dfcConfig=C:/Documentum/config`\
`wrapper.java.classpath.dfcDctmJar=C:/Program Files/Documentum/dctm.jar`

{% hint style="info" %}
The `dfcConfig` parameter must point to the configuration **folder**. The `dfcDctmJar` parameter must point to the dctm.jar **file**!
{% endhint %}

## DFC compatibility issues

If the DFC version used by the migration-center Jobserver is not compatible with the Java version or the Content Server it is connecting to, errors might be encountered when running a Documentum adapter.&#x20;

When encountering the following error, the first thing to check is the DFC - Java - DCTM compatibility matrixes.

![](https://122685853-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fge8LkDR3OXyAF12ebwQq%2Fuploads%2Fx5rTGWZTSAEdyN3Jvepc%2Fimage.png?alt=media\&token=9121afd1-b2f7-4339-94f9-3bbd00d037ff)

## Configuring Documentum scanner

For scanning the data from the Documentum repository, Documentum Scanner is used. As Documentum InPlace is not altering the content, only the metadata of the files, the parameter "skipContent" should be checked in the scanner’s configuration. For more details regarding the configuration of the scanner please check [Documentum Scanner](https://docs.migration-center.com/3.17-update-4/scanners/documentum-scanner) user guide.

## Changing the types of the documents

Changing the types of the documents is possible with the Documentum InPlace Importer, by setting the value of the r\_object\_type attribute to a new type. In order to update the target type of the document, the new target type needs to be created beforehand in migration-center in Manage > Object types section and the attributes need to be associated in the Associations tab of the Transformation rules window.

![](https://122685853-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2Fhelp%2F-M7JNOUYX3OoBTEHuS8n%2F-M7JPUTuXH7VEEF_DUUP%2F2.png?generation=1589480390108891\&alt=media)

migration-center Client does not connect directly to any source or target system to extract information about r\_object\_type thus object type definitions can be exported from Documentum to a CSV file which in turn can be imported to migration-center Object Types definition window.

![](https://122685853-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2Fhelp%2F-M7JNOUYX3OoBTEHuS8n%2F-M7JPUTvPf2SSe5qn_W8%2F3.png?generation=1589480390110050\&alt=media)

DqMan is recommended to connect to Documentum to extract the object type definition. DqMan is an administration Tool for EMC Documentum supporting DQL queries and API commands and much more. **dqMan is free** and can be downloaded at [http://www.fme.de](http://www.fme.de/). Other comparable administration tools can also be used, provided they can output a compatible CSV file or generate some similar output, which can be processed to match the required format using other tools.

1. Start dqMan and connect to the **target** DOCUMENTUM repository. dqMan normally starts with the interface for working with DQL selected by default. Press the \[DQL] button in the toolbar if not already selected.
2. In the “DQL Query” box, paste the following command and replace **dm\_document** with the targeted object type: ***select distinct t.attr\_name, t.attr\_type, '0' as min\_length, t.attr\_length, t.attr\_repeating, a.not\_null as mandatory from dm\_type t, dmi\_dd\_attr\_info a where t.name=a.type\_name and t.attr\_name=a.attr\_name and t.name='dm\_document' enable(row\_based);*** Press the \[Run] button.
3. Click somewhere in the “Results” box. Use {CTRL+A} to select all. Right-click to open the context menu and choose \<Export to> \<CSV>.
4. The extracted object type template is now ready to be imported to migration-center 3.x as described in the chapter *Object Types (or object type template definitions)* in the *migration-center Client User Guide*

## Updating the attributes of documents

The attributes of documents can be updated, with the values provided by the user, through the associations tab.

Removing a value for an attribute is possible by not providing a value for that attribute and associating it.

The attributes r\_creation\_date and r\_creator\_name cannot be modified, however r\_modify\_date and r\_modifier can.

In order to set the r\_modify\_date and r\_modifier attributes they need to have the values associated in Associations section. If the attributes r\_modify\_date and r\_modifier are not set, the current date and current user will be set to the documents.

![](https://122685853-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2Fhelp%2F-M7JNOUYX3OoBTEHuS8n%2F-M7JPUTwFvqeUHAUJITO%2F4.png?generation=1589480390119219\&alt=media)

Permissions can be assigned to documents by setting and associating the attributes *group\_permit, world\_permit and owner\_permit*. For setting ACLs, the attributes *acl\_domain* and *acl\_name* must be used. The user must set either *\*\_permit* attributes or *acl\_\** attributes. If bot&#x68;*\*\_permit* attributes or *acl\_\** attributes are configured to be migrated together the *\*\_permit* attributes will override the permissions set by the *acl\_\** attributes. Because Documentum will not throw an error in such a case migration-center will not be able to tell that the *acl\_\** attributes have been overridden and as such it will not report an error either, considering that all attributes have been set correctly.

## **Changing the links of the documents**

For changing the links of the documents, dcmt\_obj\_link rule for system attribute is used. The rule is multi value thus a document can be linked in multiple locations.

If the dctm\_obj\_links attribute is set, the old links of the documents will be replaced with the new links.

If the dctm\_obj\_links attribute is not set, the links will not be updated, and the document will be linked in the original location.

![](https://122685853-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2Fhelp%2F-M7JNOUYX3OoBTEHuS8n%2F-M7JPUTxdDgsKz_gD6TP%2F5.png?generation=1589480390157311\&alt=media)

As other migration-center paths, InPlace Importer has some predefined system attributes:

* *dctm\_obj\_link* this must be filled with the links where the objects should be placed.
* *r\_object\_type* must be set to a valid Documentum object type. This is normally “dm\_document” but custom object types are supported as well.

## Moving the content to another storage

The importer allows moving the content from the actual storage to another storage. This can be done by setting the target storage name in the attribute “a\_storage\_type”. When this attribute is set, the importer will use the MIGRATE\_CONTENT server method for moving the content to the specified storage. The importer parameters allow you to specify if the renditions or checked out content will be moved and if the content will be removed from the original storage. For more details regarding these configurations see [Documentum InPlace importer parameters](#documentum-inplace-importer-parameters).

In case of any error that may occur during the content movement a generic error is logged in the importer run log but another log with the root cause of the error is created on the content server in the location specified in the importer parameter “moveContentLogFile”.

If the storage name specified in the rule “a\_storage\_type” is the same as the storage where content is already stored, the importer will just mark the object as being successfully processed, so no error or warning is logged in this case.

## Documentum InPlace Properties

\
To create a new Documentum InPlace Importer job, specify the respective adapter type in the importer’s Properties window – from the list of available adapters, “DocumentumInPlace” must be selected. Once the adapter type has been selected, the Parameters list will be populated with the parameters specific to the selected adapter type, in this case the Documentum.

The Properties window of an importer can be accessed by double-clicking an importer in the list, by selecting the Properties button from the toolbar or from the context menu.

![](https://122685853-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2Fhelp%2F-M7JNOUYX3OoBTEHuS8n%2F-M7JPUTy9X9nseSWffEB%2F6.png?generation=1589480390121273\&alt=media)

### Common importer parameters

| **Configuration parameters** | **Values**                                                                                                                                                                                                                                                            |
| ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Name                         | <p>Enter a unique name for this scanner</p><p><strong>Mandatory</strong></p>                                                                                                                                                                                          |
| Adapter type                 | <p>Select the “DocumentumInPlace” adapter from the list of available adapters</p><p><strong>Mandatory</strong></p>                                                                                                                                                    |
| Location                     | <p>Select the Job Server location where this job should be run. Job Servers are defined in the Jobserver window. If no Job Server migration-center will prompt the user to define a Job Server Location when saving the Scanner.</p><p><strong>Mandatory</strong></p> |
| Description                  | Enter a description for this job (optional)                                                                                                                                                                                                                           |

### Documentum InPlace importer parameters

| **Configuration parameters** | **Values**                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| username\*                   | <p>Username for connecting to the target repository.</p><p>A user account with super user privileges must be used to support the full Documentum functionality offered by migration-center.</p><p><strong>Mandatory</strong></p>                                                                                                                                                                                                                                      |
| password\*                   | <p>The user’s password.</p><p><strong>Mandatory</strong></p>                                                                                                                                                                                                                                                                                                                                                                                                          |
| repository\*                 | <p>Name of the target repository. The target repository must be accessible from the machine where the selected Job Server is running.</p><p><strong>Mandatory</strong></p>                                                                                                                                                                                                                                                                                            |
| moveContentOnly              | Flag indicating if the metadata will not be updated but only the content should be moved. This will save some processing in case there is no need to update any metadata.                                                                                                                                                                                                                                                                                             |
| autoCreateFolders            | <p>This option will be used for letting the importer automatically create any missing folders that are part of “dctm\_obj\_link” or “r\_folder\_path”.</p><p>Use this option to have migration-center re-create a folder structure at the target repository during import. If the target repository already has a fixed/predefined folder structure and creating new folders is not desired, deselect this option</p>                                                 |
| defaultFolderType            | String. The Documentum folder type name used when automatically creating the missing object links. If left empty, “dm\_folder” will be used as default type.                                                                                                                                                                                                                                                                                                          |
| moveRenditionContent         | Flag indicating if renditions will be moved to the new storage. If checked, all renditions and primary content are moved otherwise only the primary content is moved.                                                                                                                                                                                                                                                                                                 |
| moveCheckoutContent          | Flag indicating if checkout documents will be moved to new storage. If not checked, the importer will throw an error if a document is checked out.                                                                                                                                                                                                                                                                                                                    |
| removeOriginalContent        | Flag indicating if the content will be removed from the original storage. If checked, the content is removed from the original storage, otherwise the content remains there.                                                                                                                                                                                                                                                                                          |
| moveContentLogFile           | The file path on the content server where the log related to move content operations will be saved. The folder must exist on the content server. If it does not exist, the log will not be created at all. A value must be set when move content feature is activated by the setting of attribute “a\_storage\_type”.                                                                                                                                                 |
| numberOfThreads              | The number threads that will be used for importing objects. Maximum allowed is 20.                                                                                                                                                                                                                                                                                                                                                                                    |
| loggingLevel\*               | <p>Sets the verbosity of the log file.</p><p>Values:</p><p>1 - logs only errors during scan</p><p>2 - is the default value reporting all warnings and errors</p><p>3 - logs all successfully performed operations in addition to any warnings or errors</p><p>4 - logs all events (for debugging only, use only if instructed by fme product support since it generates a very large amount of output. Do not use in production)</p><p><strong>Mandatory</strong></p> |

On the **| Migsets |** tab, the user can select the migration sets to be imported with this importer. Depending on the chosen Adapter Type only the migration sets compatible with this type of importer will be displayed and can be selected for import. In addition, only migration sets containing at least one object in a validated state will be displayed (since objects that have not been validated cannot be imported). Available migration sets can be moved between the two columns by double clicking or using the arrows buttons.

![](https://122685853-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2Fhelp%2F-M7JNOUYX3OoBTEHuS8n%2F-M7JPUTzrbgYkaYG6Tcs%2F7.png?generation=1589480390125487\&alt=media)

## **“Rule-to-Attribute” associations supported for dm\_document and subtypes**

This list displays which Documentum attributes can be associated with a migration-center transformation rule.

| **dm\_document**          |          |            |                  |                          |
| ------------------------- | -------- | ---------- | ---------------- | ------------------------ |
| **Attribute Name**        | **Type** | **Length** | **Is Repeating** | **Association Possible** |
| a\_application\_type      | String   | 32         | No               | Yes                      |
| a\_archive                | Boolean  | 0          | No               | No                       |
| a\_category               | String   | 64         | No               | Yes                      |
| a\_compound\_architecture | String   | 16         | No               | No                       |
| a\_content\_type          | String   | 32         | No               | Yes                      |
| a\_controlling\_app       | String   | 32         | No               | No                       |
| a\_effective\_date        | DateTime | 0          | Yes              | No                       |
| a\_effective\_flag        | String   | 8          | Yes              | No                       |
| a\_effective\_label       | String   | 32         | Yes              | No                       |
| a\_expiration\_date       | DateTime | 0          | Yes              | No                       |
| a\_extended\_properties   | String   | 32         | Yes              | No                       |
| a\_full\_text             | Boolean  | 0          | No               | No                       |
| a\_is\_hidden             | Boolean  | 0          | No               | Yes                      |
| a\_is\_signed             | Boolean  | 0          | No               | No                       |
| a\_is\_template           | Boolean  | 0          | No               | Yes                      |
| a\_last\_review\_date     | DateTime | 0          | No               | No                       |
| a\_link\_resolved         | Boolean  | 0          | No               | No                       |
| a\_publish\_formats       | String   | 32         | Yes              | No                       |
| a\_retention\_date        | DateTime | 0          | No               | No                       |
| a\_special\_app           | String   | 32         | No               | No                       |
| a\_status                 | String   | 16         | No               | Yes                      |
| a\_storage\_type          | String   | 32         | No               | No                       |
| acl\_domain               | String   | 32         | No               | Yes                      |
| acl\_name                 | String   | 32         | No               | Yes                      |
| authors                   | String   | 48         | Yes              | Yes                      |
| group\_name               | String   | 32         | No               | Yes                      |
| group\_permit             | Number   | 0          | No               | Yes                      |
| i\_antecedent\_id         | ID       | 0          | No               | No                       |
| i\_branch\_cnt            | Number   | 0          | No               | No                       |
| i\_cabinet\_id            | ID       | 0          | No               | No                       |
| i\_chronicle\_id          | ID       | 0          | No               | No                       |
| i\_contents\_id           | ID       | 0          | No               | No                       |
| i\_direct\_dsc            | Boolean  | 0          | No               | No                       |
| i\_folder\_id             | ID       | 0          | Yes              | No                       |
| i\_has\_folder            | Boolean  | 0          | No               | No                       |
| i\_is\_deleted            | Boolean  | 0          | No               | No                       |
| i\_is\_reference          | Boolean  | 0          | No               | No                       |
| i\_is\_replica            | Boolean  | 0          | No               | No                       |
| i\_latest\_flag           | Boolean  | 0          | No               | No                       |
| i\_partition              | Number   | 0          | No               | No                       |
| i\_reference\_cnt         | Number   | 0          | No               | No                       |
| i\_retain\_until          | DateTime | 0          | No               | No                       |
| i\_retainer\_id           | ID       | 0          | Yes              | No                       |
| i\_vstamp                 | Number   | 0          | No               | No                       |
| keywords                  | String   | 48         | Yes              | Yes                      |
| language\_code            | String   | 5          | No               | Yes                      |
| log\_entry                | String   | 120        | No               | No                       |
| object\_name              | String   | 255        | No               | Yes                      |
| owner\_name               | String   | 32         | No               | Yes                      |
| owner\_permit             | Number   | 0          | No               | Yes                      |
| r\_access\_date           | DateTime | 0          | No               | No                       |
| r\_alias\_set\_id         | ID       | 0          | No               | No                       |
| r\_aspect\_name           | String   | 64         | Yes              | No                       |
| r\_assembled\_from\_id    | ID       | 0          | No               | No                       |
| r\_component\_label       | String   | 32         | Yes              | No                       |
| r\_composite\_id          | ID       | 0          | Yes              | No                       |
| r\_composite\_label       | String   | 32         | Yes              | No                       |
| r\_content\_size          | Number   | 0          | No               | No                       |
| r\_creation\_date         | DateTime | 0          | No               | Yes                      |
| r\_creator\_name          | String   | 32         | No               | Yes                      |
| r\_current\_state         | Number   | 0          | No               | Yes                      |
| r\_frozen\_flag           | Boolean  | 0          | No               | No                       |
| r\_frzn\_assembly\_cnt    | Number   | 0          | No               | No                       |
| r\_full\_content\_size    | Double   | 0          | No               | No                       |
| r\_has\_events            | Boolean  | 0          | No               | No                       |
| r\_has\_frzn\_assembly    | Boolean  | 0          | No               | No                       |
| r\_immutable\_flag        | Boolean  | 0          | No               | No                       |
| r\_is\_public             | Boolean  | 0          | No               | Yes                      |
| r\_is\_virtual\_doc       | Number   | 0          | No               | Yes                      |
| r\_link\_cnt              | Number   | 0          | No               | No                       |
| r\_link\_high\_cnt        | Number   | 0          | No               | No                       |
| r\_lock\_date             | DateTime | 0          | No               | No                       |
| r\_lock\_machine          | String   | 80         | No               | No                       |
| r\_lock\_owner            | String   | 32         | No               | No                       |
| r\_modifier               | String   | 32         | No               | Yes                      |
| r\_modify\_date           | DateTime | 0          | No               | Yes                      |
| r\_object\_type           | String   | 32         | No               | Yes                      |
| r\_order\_no              | Number   | 0          | Yes              | No                       |
| r\_page\_cnt              | Number   | 0          | No               | No                       |
| r\_policy\_id             | ID       | 0          | No               | No                       |
| r\_resume\_state          | Number   | 0          | No               | No                       |
| r\_version\_label         | String   | 32         | Yes              | Yes                      |
| resolution\_label         | String   | 32         | No               | Yes                      |
| subject                   | String   | 192        | No               | Yes                      |
| title                     | String   | 400        | No               | Yes                      |
| world\_permit             | Number   | 0          | No               | Yes                      |

| **Custom object types**        |          |            |                  |                          |
| ------------------------------ | -------- | ---------- | ---------------- | ------------------------ |
| **Attribute Name**             | **Type** | **Length** | **Is Repeating** | **Association Possible** |
| \<custom\_attribute\_number>   | Number   | -          | -                | Yes                      |
| \<custom\_attribute\_string>   | String   | -          | -                | Yes                      |
| \<custom\_attribute\_dateTime> | DateTime | -          | -                | Yes                      |
| \<custom\_attribute\_double>   | Double   | -          | -                | Yes                      |
| \<custom\_attribute\_ID>       | ID       | -          | -                | No                       |
| \<custom\_attribute\_boolean>  | Boolean  | -          | -                | Yes                      |
