Opentext Documentum 16.7 PostgreSQL Developer Edition

This is a step-by-step guide to install Documentum 16.7 in a Linux environment with PostgreSQL 11.

Environment

Host:
Windows 10 x64 8GB RAM
VMware Workstation Player 15

Guest:
CentOS 7.7 x64 25GB HD 4GB RAM 2 cores
PostgreSQL 11
Documentum 16.7

VM Creation

Mount the CentOS 7 DVD image, boot the machine and follow the steps. You can choose to let EasyInstall do the work for you. I used minimal package install to save resources, named the machine dctm167, configured the network and set the root password as well as a “dmadmin” user.

OS Configuration

  • Install required packages:

[dmadmin@dctm167 ~]$ sudo yum -y install bash-completion kernel-devel rng-tools.x86_64
[dmadmin@dctm167 ~]$ sudo yum -y install bash-completion kernel-devel rng-tools.x86_64 policycoreutils policycoreutils-python selinux-policy selinux-policy-targeted libselinux-utils setroubleshoot-server setools setools-console mcstrans expect tcl
[dmadmin@dctm167 ~]$ sudo yum -y group install X\ Window\ System “Development Tools”
[dmadmin@dctm167 ~]$ sudo yum -y install open-vm-tools.x86_64

  • Stop and disable the firewalld service:

[dmadmin@dctm167 ~]$ sudo systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[dmadmin@dctm167 ~]$ sudo systemctl stop firewalld

  • Configure entropy and allow http connections through selinux:

[dmadmin@dctm167 ~]$ sudo /sbin/rngd -b -r /dev/urandom -p /dev/random
[dmadmin@dctm167 ~]$ sudo setsebool -P httpd_can_network_connect_db 1
[dmadmin@dctm167 ~]$ sudo chkconfig rngd on

PostgreSQL Configuration

  • Install required packages:

[dmadmin@dctm167 ~]$ sudo yum -y install https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-7-x86_64/pgdg-centos11-11-2.noarch.rpm
[dmadmin@dctm167 ~]$ sudo yum -y install postgresql11 postgresql11-server

  • Init the DB:

[dmadmin@dctm167 ~]$ sudo /usr/pgsql-11/bin/postgresql-11-setup initdb

  • Enable and start the PostgreSQL service:

[dmadmin@dctm167 ~]$ sudo systemctl enable postgresql-11
Created symlink from /etc/systemd/system/multi-user.target.wants/postgresql-11.service to /usr/lib/systemd/system/postgresql-11.service.
[dmadmin@dctm167 ~]$ sudo systemctl start postgresql-11

  • Configure the postgres user:

[dmadmin@dctm167 ~]$ sudo passwd postgres
Changing password for user postgres.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.

[dmadmin@dctm167 ~]$ su – postgres
-bash-4.2$ psql
psql (11.5)
Type “help” for help.

postgres=#
postgres=# \password postgres
Enter new password:
Enter it again:
postgres=# \q
-bash-4.2$ exit

  • Configure PostgreSQL:

[root@dctm167 ~]# vi /var/lib/pgsql/11/data/postgresql.conf
listen_addresses = ‘*’
port = 5432

[root@dctm167 ~]# vi /var/lib/pgsql/11/data/pg_hba.conf
host    all             all             127.0.0.1/32            md5
host all all ::/128 md5
host    all             all             dctm167              md5

  • Restart PostgreSQL service to apply the changes:

[dmadmin@dctm167 ~]$ sudo systemctl restart postgresql-11

phpPgAdmin Configuration

  • Install required packages:

[dmadmin@dctm167 ~]$ sudo yum -y install phpPgAdmin httpd

  • Configure phpPgAdmin:

[dmadmin@dctm167 ~]$ sudo vi /etc/httpd/conf.d/phpPgAdmin.conf

Alias /phpPgAdmin /usr/share/phpPgAdmin

# Apache 2.4
Require all granted
#Require host example.com

# Apache 2.2
Order deny,allow
Allow from all
#Allow from 127.0.0.1
#Allow from ::1
# Allow from .example.com

[dmadmin@dctm167 ~]$ sudo vi /etc/phpPgAdmin/config.inc.php-dist

$conf[‘servers’][0][‘host’] = ‘dctm167’;
$conf[‘extra_login_security’] = false;
$conf[‘owned_only’] = true;

[dmadmin@dctm167 ~]$ sudo cp /etc/phpPgAdmin/config.inc.php-dist /etc/phpPgAdmin/config.inc.php

  • Restart httpd service to apply the changes:

[dmadmin@dctm167 ~]$ sudo systemctl restart httpd

Now you should be able to login to the console from http://dctm167/phpPgAdmin/

ODBC Configuration

  • Install required packages:

[dmadmin@dctm167 ~]$ sudo yum -y install postgresql11-odbc.x86_64 unixODBC.x86_64

  • Configure .ini files:

[dmadmin@dctm167 ~]$ sudo vi /etc/odbcinst.ini
[PostgreSQL]
Description = ODBC for PostgreSQL
#Driver = /usr/lib/psqlodbcw.so
#Setup = /usr/lib/libodbcpsqlS.so
#Driver64 = /usr/lib64/psqlodbcw.so
#Setup64 = /usr/lib64/libodbcpsqlS.so
Driver = /usr/pgsql-11/lib/psqlodbcw.so
Driver64 = /usr/pgsql-11/lib/psqlodbcw.so
Setup64 = /usr/lib64/libodbcpsqlS.so
FileUsage = 1
[dmadmin@dctm167 ~]$ sudo vi /etc/odbc.ini
[MyPostgres]
Description=PostgreSQL
Driver=PostgreSQL
Database=postgres
Servername=dctm167
UserName=postgres
Password=dmadmin
Port=5432
Protocol=11
ReadOnly=No
RowVersioning=No
ShowSystemTables=No
ShowOidColumn=No
FakeOidIndex=No
UpdateableCursors=Yes
DEBUG=Yes

  • Test the connection:

[dmadmin@dctm167 ~]$ isql -v MyPostgres
+—————————————+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+—————————————+
SQL> quit

Documentum server

  • Create folders:

[dmadmin@dctm167 ~]$ sudo mkdir -p /opt/documentum && sudo chown dmadmin.dmadmin /opt/documentum && mkdir /opt/documentum/product && mkdir /opt/documentum/product/16.7 && mkdir -p /opt/documentum/sw/cs

  • Install openJDK 11 (remember to remove “anon” from the list of disabled algorithms or the installer will fail to connect to the repository)

[dmadmin@dctm167 cs]$ sudo yum -y install java-11-openjdk java-11-openjdk-devel
[dmadmin@dctm167 cs]$ echo $(dirname $(dirname $(readlink $(readlink $(which javac)))))
/usr/lib/jvm/java-11-openjdk-11.0.4.11-1.el7_7.x86_64

  • Set up environment variables:

[dmadmin@dctm167 ~]$ vi ~/.bash_profile
DOCUMENTUM=/opt/documentum
export DOCUMENTUM

DM_HOME=$DOCUMENTUM/product/16.7
export DM_HOME

POSTGRESQL_HOME=/usr/pgsql-11
export POSTGRESQL_HOME

JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.4.11-1.el7_7.x86_64
export JAVA_HOME

PATH=$PATH:$DM_HOME/bin:$POSTGRESQL_HOME/bin:$HOME/.local/bin:$HOME/bin:$JAVA_HOME/bin
export PATH

LC_ALL=C
export LC_ALL

LD_LIBRARY_PATH=$POSTGRESQL_HOME/lib:$DM_HOME/bin:$DOCUMENTUM/java64/JAVA_LINK/jre/lib/amd64/server:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH

  • Reserve ports for services:

[dmadmin@dctm167 ~]$ sudo vi /etc/services
dctm167 50000/tcp # dctm 16.7 repo
dctm167_s 50001/tcp # dctm 16.7 repo

  • Create symbolic link for later (configuration program):

[dmadmin@dctm167 ~]$ sudo ln -s /usr/lib64/libsasl2.so.3.0.0 /usr/lib64/libsasl2.so.2

  • Configure limits.conf:

[dmadmin@dctm167 ~]$ sudo vi /etc/security/limits.conf
dmadmin – core -1

  • Run the installer:

[dmadmin@dctm167 cs]$ tar -xvf content_server_16.7_linux64_postgres.tar
[dmadmin@dctm167 cs]$ chmod 777 serverSetup.bin
[dmadmin@dctm167 cs]$ ./serverSetup.bin

01020304050607

Docbroker and repository

  • Create the tablespace file for the repository (dctm167):

[dmadmin@dctm167 cs]$ su –
[root@dctm167 ~]# su – postgres
-bash-4.2$ mkdir /var/lib/pgsql/11/data/db_dctm167_dat.dat
-bash-4.2$ exit
[root@dctm167 ~]# exit

  • Run the configurator:

[dmadmin@dctm167 install]$ ./dm_launch_server_config_program.sh

0809101112131415161718192021222324252627282930

 

Documentum Administrator

Nothing special about this, same procedure as always. I’ve used the latest tomcat 9 to deploy running on the same openJDK 11 used for the repository:

31

Some notes:

  • Java is not bundled anymore, you need to install a JDK before running the installer. (Be aware of the issues with Java >1.8u201, as the “anon” algorithm has been disabled and if you choose any secure configuration you’ll face some issues while installing)
  • No lockbox!

Documentum 16.7 available

From the release notes:

  • Support for OpenSSL cryptography libraries
  • Support for newer IPv4/IPv6 networking functions
  • Oracle database schema owner lockout and restricted user privileges
  • S3 enhancements
  • LDAP authentication using Digest-MD5 mechanism
  • Basic authentication support for OpenStack Swift store
  • Support for installing iJMS on external Tomcat web server
  • Support for new infrastructure certifications
  • Support for Docker containers and Helm charts

Every other product from the stack has also been released as 16.7

DQL Tester FX

As you may or may not know, DQL Tester doesn’t work anymore with Documentum >= 16.4, as the support for dmcl.dll has been dropped. However, there’s a new project that tries to provide a similar tool that works with Documentum: DQL Tester FX

I’ve downloaded the code and done some modifications of my own (shortcuts, changed some button positions, etc.), and it’s quite easy (despite using JavaFX, which is not something that every Documentum developer is used to).

As the how-to to set up the project is done usgin IntelliJ, here you can find another how-to to configure the project on eclipse (without using maven, sorry):

  1. Download latest eclipse
  2. Download openJDK 11 (>=11.0.1+13)
  3. Download JavaFX SDK
  4. If you want to use the BPM/Workflow features, you’ll need to get a copy of the BPM libraries (bpm_infra/rt.jar)
  5. Get a copy of the following DFC libraries:
    • aspectjrt.jar
    • certj.jar
    • commons-lang-2.4.jar
    • cryptoj.jar
    • dfc.jar
    • log4j.jar
  6. Download the following jar files:
  7. Get a working dfc.properties
  8. Create a log4j.properties file as instructed in DQL Tester FX Github page
  9. Download DQL Texter FX code
  10. Launch eclipse, configure an additional JRE using openJDK 11
  11. Unzip DQL Tester FX code to the workspace, and create a new project using the name of the folder you just extracted (DQL-Tester-FX-master), this will detect the existing project and will import it.
  12. Change the default JRE with the OpenJDK created before, if it has been set to a different JRE/JDK.
  13. Add all the libraries to the project’s build path
  14. Create a new Run configuration:
    • Main class: nl.bos.Main
    • VM arguments: –module-path “<full_path_to_javafx-sdk>\javafx-sdk-11.0.2\lib” –add-modules=javafx.controls,javafx.fxml -Ddfc.properties.file=”<absolute_path_to_dfc.properties>” -Dlog4j.configuration=”<absolute_path_to_log4j.properties>”
    • Make sure openJDK is selected as JRE
    • Add the resources (src/main) folder in the dependencies tab as part of the classpath entries
  15. Run it!

This should get you going with the project in Eclipse.

D2 Config zip export without D2-Config

In a previous post I explained how to perform a full import of the D2 configuration without using D2-Config (D2-Config without ActiveX). You can also export the D2-Configuration to a XML file by using the bundled d2configutils in D2-Config. But how about exporting a full D2-Config as a zip file (including images, etc.)?. Well, here you go:

getSManager();
session=sm.getSession("repository");

D2Session.initTBOEx(session,false);
D2Config config=new D2Config(session);

//this will place the zip file in your temp folder
File zipConfigfile = config.getZipExport(null, null, false, new ArrayList());

sm.release(session);

If you want to export just a single application/configuration, just change the second parameter to the name of your application/configuration.

 

DCTM 16.4 Docker+Oracle installation guide

Since v16.4, Opentext doesn’t provide a “preconfigured” Docker image for Documentum running on Oracle. If you want to use a docker image running PostgreSQL you can use the same procedure as described for Full docker CS7.3 PostgreSQL + D2 4.7 installation guide or DCTM 7.3 PostgreSQL with Docker install guide, and you should not have too many issues 😀

This guide will help you setup a VM running CentOS 7 where we will install Oracle (Express) and docker, and will be building a Documentum image. We will split the build in several images to avoid having to do a full rebuild if something goes wrong 😀

Environment

Host:
Windows 10 x64 8GB RAM
VMware Workstation Player 12

Guest:
CentOS 7 x64 25GB HD 4GB RAM 2 cores
Docker 1.13.1

VM Creation

Mount the CentOS 7 DVD image, boot the machine and follow the steps. You can choose to let EasyInstall do the work for you. I used minimal package install to save resources, named the machine vm-dctmdocker, configure the network and set the root password.

Oracle XE setup

  • I copied every installer in $DOCUMENTUM/installers, so:

[dmadmin@vm-dctmdocker opt]$ sudo mkdir documentum
[dmadmin@vm-dctmdocker opt]$ sudo chown dmadmin.dmadmin documentum
[dmadmin@vm-dctmdocker documentum]$ mkdir installers
[dmadmin@dctmdocker installers]$ cp /mnt/hgfs/dctm72/oracle-xe-11.2.0-1.0.x86_64.rpm/Disk1/oracle-xe-11.2.0-1.0.x86_64.rpm .

  • Install needed libraries, run installer, run configuration tool (remember to change the default 8080 port to something else to avoid conflicts with tomcat if you want to use an application server):

[dmadmin@vm-dctmdocker installers]$ sudo yum install libaio bc
[dmadmin@vm-dctmdocker installers]$ sudo rpm -ivh oracle-xe-11.2.0-1.0.x86_64.rpm
[dmadmin@vm-dctmdocker installers]$ sudo /etc/init.d/oracle-xe configure

  • Launch sqlplus to enable remote access and remove the password expiration:

[dmadmin@vm-dctmdocker installers]$ . /u01/app/oracle/product/11.2.0/xe/bin/oracle_env.sh

[dmadmin@vm-dctmdocker installers]$ /u01/app/oracle/product/11.2.0/xe/bin/sqlplus system
EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE);
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
quit

Docker setup

We’ll just install docker, adding dmadmin user to the docker group so we don’t need to use sudo every time we want to run the “docker” command

[dmadmin@vm-dctmdocker installers]$ sudo yum install docker
[dmadmin@vm-dctmdocker installers]$ sudo usermod -a -G docker dmadmin
[dmadmin@vm-dctmdocker installers]$ systemctl restart docker.service

Centos docker image setup

This base image will just add required packages and minor configurations:

[dmadmin@vm-dctmdocker installers]$ docker pull centos
[dmadmin@vm-dctmdocker installers]$ docker build –no-cache -f ./customCentosDockerfile -t custom_centos .

customCentosDockerfile:

FROM centos

MAINTAINER aldago

RUN echo root:root | chpasswd

RUN yum install -y rng-tools.x86_64 unzip libaio sudo tail vi openssh-server; \
yum clean all; \
sed -i ‘s/PermitRootLogin without-password/PermitRootLogin yes/’ /etc/ssh/sshd_config; \
sed ‘s@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g’ -i /etc/pam.d/sshd

RUN /sbin/rngd -b -r /dev/urandom -p /dev/random

Documentum base image setup

This image will install Documentum binaries and Oracle client:

[dmadmin@vm-dctmdocker installers]$ docker build –no-cache -f ./dctmcentosDockerfile -t centos_dctm .

Dockerfile:

FROM custom_centos

MAINTAINER aldago

RUN echo root:root | chpasswd

ADD db/install/oracle-instantclient11.2-sqlplus-11.2.0.3.0-1.x86_64.rpm /tmp/oracle-instantclient11.2-sqlplus-11.2.0.3.0-1.x86_64.rpm
ADD db/install/oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm /tmp/oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm

RUN rpm -ivh /tmp/oracle-instantclient11.2-sqlplus-11.2.0.3.0-1.x86_64.rpm /tmp/oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm; \
rm /tmp/oracle-instantclient11.2-sqlplus-11.2.0.3.0-1.x86_64.rpm; \
rm /tmp/oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm

## create dmadmin user
RUN useradd dmadmin; \
passwd -f -u dmadmin; \
mkdir -p /home/dmadmin/.ssh; chown dmadmin /home/dmadmin/.ssh; chmod 700 /home/dmadmin/.ssh; \
echo “dmadmin ALL=(ALL) ALL” >> /etc/sudoers.d/dmadmin; \
sed -i -e ‘s/Defaults requiretty.*/ #Defaults requiretty/g’ /etc/sudoers

# Create folder structure
RUN mkdir /opt/documentum; \
mkdir /opt/documentum/product; \
mkdir /opt/documentum/product/16.4; \
mkdir /opt/documentum/install; \
mkdir /opt/documentum/db; \
chown -R dmadmin:dmadmin /opt/documentum

ADD cs/install/* /opt/documentum/install/
ADD cs/config/installProperties.properties /opt/documentum/install/
ADD cs/config/configProperties.properties /opt/documentum/install/
ADD cs/config/configPropertiesDoc.properties /opt/documentum/install/

ADD db/config/tnsnames.ora /opt/documentum/db/
ADD db/config/fix_tnsnames.sh /opt/documentum/
RUN chown dmadmin.dmadmin /opt/documentum/fix_tnsnames.sh; \
chown dmadmin.dmadmin /opt/documentum/db/tnsnames.ora; \
chmod u+x /opt/documentum/fix_tnsnames.sh; \
chmod u+g /opt/documentum/db/tnsnames.ora

RUN echo “#dctm services” >> /etc/services ; \
echo “dctm164 49001/tcp # 16.4 Repository native connection” >> /etc/services ; \
echo “dctm164_s 49002/tcp # 16.4 Repository secure connection” >> /etc/services ; \
ln /usr/lib64/libsasl2.so.3 /usr/lib64/libsasl2.so.2; \
ln -s /usr/lib/oracle/11.2/client64/lib/libclntsh.so.11.1 /usr/lib/oracle/11.2/client64/lib/libclntsh.so; \
ln -s /usr/lib/oracle/11.2/client64/lib/libocci.so.11.1 /usr/lib/oracle/11.2/client64/lib/libocci.so; \
chown -R dmadmin:dmadmin /opt/documentum/install; \
chmod u+x /opt/documentum/install/serverSetup.bin

USER dmadmin

ENV DOCUMENTUM /opt/documentum
ENV DM_HOME $DOCUMENTUM/product/16.4
ENV LC_ALL C
ENV JAVA_HOME /opt/documentum/java64/1.8.0_152
ENV ORACLE_HOME /usr/lib/oracle/11.2/client64
ENV ORACLE_SID XE
ENV PATH $ORACLE_HOME/bin:$DM_HOME/bin:$PATH
ENV NLS_LANG AMERICAN_AMERICA.AL32UTF8
ENV LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib:$DM_HOME/bin/FIPS/:$JAVA_HOME/jre/lib/amd64/server:$DM_HOME/bin:$LD_LIBRARY_PATH
ENV R_SHLIB_LD_LIBRARY_PATH=$DM_HOME/bin/FIPS
ENV PATH=/usr/lib/oracle/11.2/client64/bin:$PATH
ENV TNS_ADMIN=/opt/documentum/db

RUN $DOCUMENTUM/install/serverSetup.bin -f installProperties.properties

ENV DBHOST 192.168.231.135

RUN /opt/documentum/fix_tnsnames.sh; \
mv $DM_HOME/bin/dmdbtest $DM_HOME/bin/dmdbtest.bak; \
echo “exit 0” >> $DM_HOME/bin/dmdbtest; \
chmod u+x $DM_HOME/bin/dmdbtest

EXPOSE 22

Documentum repository:

This image will run the repository configuration:

[dmadmin@vm-dctmdocker installers]$ docker build –no-cache -t dctm164 .

Dockerfile:

FROM centos_dctm

MAINTAINER aldago

USER dmadmin

ENV DBHOST 192.168.231.135

RUN sed -i “/SERVER.PROJECTED_DOCBROKER_HOST/cSERVER.PROJECTED_DOCBROKER_HOST=$HOSTNAME” /opt/documentum/install/configProperties.properties; \
sed -i “/SERVER.SMTP_SERVER_NAME/cSERVER.SMTP_SERVER_NAME=$HOSTNAME” /opt/documentum/install/configProperties.properties; \
sed -i “/SERVER.FQDN/cSERVER.FQDN=$HOSTNAME” /opt/documentum/install/configProperties.properties; \
/opt/documentum/product/16.4/install/dm_launch_server_config_program.sh -f /opt/documentum/install/configProperties.properties

RUN sed -i “/dfc.session.secure_connect_default/cdfc.session.secure_connect_default=try_native_first” /opt/documentum/config/dfc.properties

EXPOSE 22 1489 1492 49001 49002

ADD cs/config/startup-dctm.sh /opt/documentum/startup-dctm.sh

USER root
RUN chown dmadmin.dmadmin /opt/documentum/startup-dctm.sh; \
chmod u+x /opt/documentum/startup-dctm.sh

USER dmadmin
CMD /opt/documentum/fix_tnsnames.sh; /opt/documentum/startup-dctm.sh ; bash

Additional information

Custom scripts created for the install:

  • startup-dctm.sh: updates hostname, dfc.properties, runs dm_crypto_boot and starts the repository services.
  • fix_tnsnames.sh: updates tnsnames with Oracle server public IP (which in this example is hardcoded)
  • configProperties.properties: Standard silent install script

If something goes wrong at some point, remember you’ll need to:

  • Delete docker dangling containers
  • Delete user created on database by the installer
  • Delete tablespaces created on database by the installer

 

 

Multiple environments with Composer

Similar to the previous posts about configuring dqMan/DQLTester (Multiple environments with dqMan/DQLTester) and tomcat (Multiple environments with Tomcat/DA), Composer can be launched the same way:

Folder structure:

  • composer.bat
  • properties
    • env1
      • dev
        • dfc.properties
      • prod
        • dfc.properties
    • env2
      • dev
        • dfc.properties
      • prod
        • dfc.properties
  • etc.

Composer.bat:

@Echo off
SETLOCAL ENABLEEXTENSIONS

SET composerfolder=path to composer folder<span id="mce_SELREST_start" style="overflow:hidden;line-height:0;">&#65279;</span>
SET folderbase=dfcproperties
SET parambase=-Ddfc.properties.file=

echo ****************
echo 1. env1 dev
echo 2. env2 prod
...
echo ****************

SET /p var= ^&gt; Choose option:

if "%var%"=="1" goto op1
if "%var%"=="2" goto op2
...

:op1
SET JAVA_TOOL_OPTIONS=%parambase%%cd%\%folderbase%\env1\dev\dfc.properties
goto finish

:op2
SET JAVA_TOOL_OPTIONS=%parambase%%cd%\%folderbase%\env1\prod\dfc.properties
goto finish
...

:finish

start "" /D %composerfolder% /B %composerfolder%\composer.exe
cls&amp;exit

Custom labels for column values in D2 queries

Problem: We have a query that is using aliases (r_object_type as cod) that shows documents on D2’s objectlist. We want to use a custom dictionary for those values, but the dictionary values are not applied.

Solution: This mappings are stored in d2_attribute_mapping_config, this table contains a list of repeating attributes that store those mappings:

  • type_name: type with the attribute to map
  • attr_name: name of the attribute that contains the values to map
  • dictionary_name: name of the dictionary with the values to show
  • alias_locale_name: auto/language of the values to show

So, this table stores in the repeating attributes the values of the type, attribute and dictionary. This means that you can only map columns that have attribute names.

Solution? Workaround? Append new values to those attributes, indicating the alias you are using, the type used in the “from” clause of the query and the dictionary, and you’re good to go.

Of course, this is completely unsupported by Opentext 🙂