这段代码将所有当前版本的文件从一个文件夹移动到另一个文件夹,但保留所有旧版本不变。(上下文是 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);
}
我们在移动旧版本时遇到的错误是“文档不可变”。所以我们添加了这段代码,暂时禁用不可变标志,允许移动文件,然后将不可变标志重置为真。
curObj.setBoolean("r_immutable_flag", false);
然后的问题是这段代码在我们的开发机器(windows)上完美运行,而它在生产(windows)上崩溃(给出了链接错误)。关于为什么这样做以及解决此问题的其他代码的任何想法都会很棒。谢谢。