During a recent Active Wizard development effort, we noticed that major versioning a Documentum object was acting differently in D6.5 vs. 5.3. No errors were thrown in the 6.5 environment, but it didn’t appear that the CURRENT label was being moved properly to the new major version. It turns out that the DFC in 6.x changed the way version labels are interpreted in the IDfSysObject#checkin method when you want to check in a major version. Before D6, the wizard did something like this (obviously without the hardcoded 2.0):
doc.checkin(false, “2.0, CURRENT”);
That works great in 5.3, but fails in D6 and D6.5. As mentioned above, it actually doesn’t throw an error – the 2.0 version is created, but the CURRENT label is left on the previous version. Because no errors are thrown, was tricky to track down. Fortunately there’s a subtle fix that works for both 5.3 and D6:
doc.checkin(false, “2.0,CURRENT”);
The problem was the extra space before the CURRENT label. Basically, in D6, Documentum is interpreting that space literally. So the 2.0 version is created, but with a “ CURRENT” label. The real CURRENT label is left on the previous version. Without the space, both D6 and 5.3 interpret the label correctly, and the 1.x version is not left with the CURRENT label.