Burned by a TBO

I upgraded a client’s Documentum system from 6.0 to 6.7 SP1 and re-platformed it on a more powerful infrastructure using the ‘cloning’ method.  The migration and update went well, but when we started our validation testing, none of the customer’s custom code worked properly.  I was surprised by this since we had done a review of the code (TBOs, automated workflow activities, and WDK modules) to ensure they would migrate and upgrade properly.  In particular, we were looking for the use of any deprecated methods, hard-coded passwords, user accounts, storage paths, etc.

After a painful week of tracing and debugging, we figured out the problem.  The TBO writer overrode the getFileEx2() and setFileEx() methods in numerous TBOs.  This is not a recommended approach for writing TBOs.  Documentum apparently changed the internal workings of the checkin, checkout and save operations in the DFC between D6 to D6.7 — as is their prerogative.  As a result, the getFileEx2() and setFileEx() methods were no longer being called in the proper order for the TBO logic to function properly.  In a TBO, only the doXXX() methods should ever be overridden.

We were able to fix the problems by relocating some of logic in the forbidden methods to the proper doXXX() methods, but it took some time, and introduced the potential for bugs.  As a result, our testing had to be much more thorough.

Two important take-aways here:
1. As emphasized above, in BOF objects, stick to only overriding sanctioned, doXXX() methods.
2. When reviewing code for migration, do more than just look for deprecated method calls, make sure the developers didn’t deviate from known best practices.


About Scott
I have been implementing Documentum solutions since 1997. In 2005, I published a book about developing Documentum solutions for the Documentum Desktop Client (ISBN 0595339689). In 2010, I began this blog as a record of interesting and (hopefully) helpful bits of information related to Documentum, and as a creative outlet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: