如何使用DFC将Documentum中所有**版本的文件从一个文件夹移动到另一个文件夹

时间:2009-09-28 20:54:47

标签: java documentum dfc

这段代码会将所有当前版本的文件从一个文件夹移动到另一个文件夹,但所有旧版本保持不动。 (Context是DFC访问Documentum的java代码。)

 String strObjId = versionColl.getString("r_object_id");
        com.documentum.fc.common.IDfId curObjectID = new DfId(strObjId);
        IDfSysObject curObj = (IDfSysObject)sess.getObject(curObjectID);
        versionlabel = curObj.getAllRepeatingStrings("r_version_label", ",");
        System.out.println("Moving document with Name:" + objName + "  and version:" + versionlabel);
        if (runMode.equals("1")) {
         curObj.unlink(oldpath);
         curObj.link(newpath);
         curObj.setString("a_special_app", curObj.getString("r_modifier"));
         curObj.setTime("a_last_review_date", curObj.getTime("r_modify_date"));
         curObj.setString("a_category","MOVED");
         curObj.save();
         System.out.println("Successfully Moved document with Name:" + objName + " and version:" + versionlabel);
        }

我们在移动旧版本时遇到的错误是“文档不可变”。所以我们添加了这段暂时禁用不可变标志的代码,允许移动文件,然后将immutable标志重置为true。

curObj.setBoolean("r_immutable_flag", false);

问题是这个代码在我们的开发机器(windows)上运行完美,而它在生产(窗口)上崩溃(给出了链接错误)。关于为什么这样做的原因以及解决这个问题的其他代码的任何想法都会很棒。感谢。

1 个答案:

答案 0 :(得分:1)

基于给出的小信息,它几乎可以是任何东西,但我的猜测是它是一个权限问题。具体来说,运行此代码的用户没有适当的权限来移动您尝试移动的一个(或多个)文档,或者运行代码的用户没有足够的权限将对象链接到目标文件夹。