Tag Archives: dfc

DFC Lifecycle Promotion Failure at End of Lifecycle

Finding issues like the following is one of the amusing things about navigating APIs.  In DFC 6.5SP1 IDfSysObject.canPromote() will return true for an object that is at the end of it’s lifecycle.

Wait.  That isn’t right!  Yet, that is what happens.

It appears to get DfPolicy.canPromot() to do the real task.  There’s clearly a bug in how that computes the subsequent state and identifies a terminal state.

But there is a workaround:  IDfSysObject.getNextStateName().  The following test proved to work in all of the situations I needed it to, including not attempting to promote a object already at the end of its lifecycle:

if (!sysObj.canPromote() ||
     sysObj.getNextStateName() == null) {
   ... yell about not being able to promote
}

And that’s that.

Advertisements

Documentum Foundation Classes on Linux

EDIT:  These steps were specifically for 5.3, but I would expect something similar for D6 (and up) since there is still a DFC installer.  The primary trick is to get the DFC to work with eclipse.

This is a pretty esoteric post and is largely for my own memory.

1.    Add to your .bashrc and .profile:

DOCUMENTUM_SHARED=/ThePathYouWantToUse/Documentum/share; export DOCUMENTUM_SHARED
DOCUMENTUM=/ThePathYouWantToUse/Documentum; export DOCUMENTUM
LD_LIBRARY_PATH=/ThePathYouWantToUse /Documentum/share/dfc; export LD_LIBRARY_PATH

2.    Then you can install the DFC (only the first two are required by the installer, but you’ll need the 3rd to execute anything)

3.    Install the following (fixes an unsatisfied link error in the libdmcl40.so):

sudo apt-get install gcc-3.3-base libstdc++5

4.    You might need to fiddle with other things like the CLASSPATH if you want to run anything from the command line.  These steps allowed me to get the JUnit tests to execute from Eclipse.

You can use the JARs to write the code, but to actually run anything, you need the native libraries for Linux (the .so files).  The installer works fine on Linux, and you can change the setting of DOCUMENTUM_SHARED and DOCUMENTUM in a shell to get different versions installed in different locations.

1. Add to your .bashrc and .profile:

DOCUMENTUM_SHARED=/ThePathYouWantToUse/Documentum/share; export DOCUMENTUM_SHARED

DOCUMENTUM=/ThePathYouWantToUse /Documentum; export DOCUMENTUM

LD_LIBRARY_PATH=/ThePathYouWantToUse /Documentum/share/dfc; export LD_LIBRARY_PATH

2. Then you can install the DFC (only the first two are required by the installer, but you’ll need the 3rd to execute anything)

3. Install the following (fixes an unsatisfied link error in the libdmcl40.so):

sudo apt-get install gcc-3.3-base libstdc++5

4. You might need to fiddle with other things like the CLASSPATH if you want to run anything from the command line.  These steps allowed me to get the JUnit tests to execute from Eclipse.

You can use the JARs to write the code, but to actually run anything, you need the native libraries for Linux (the .so files).  The installer works fine on Linux, and you can change the setting of DOCUMENTUM_SHARED and DOCUMENTUM in a shell to get different versions installed in different locations 🙂