【问题标题】:How do you move **all** versions of files from one folder to another in Documentum using DFC如何使用 DFC 在 Documentum 中将文件的**所有**版本从一个文件夹移动到另一个文件夹
【发布时间】:2016-11-22 23:52:46
【问题描述】:

这段代码将所有当前版本的文件从一个文件夹移动到另一个文件夹,但保持所有旧版本不动。 (上下文是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);
        }

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

curObj.setBoolean("r_immutable_flag", false);

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

【问题讨论】:

  • 也许您可以在生产中遇到的错误中包含更多详细信息。
  • 如果代码相同,则说明 dev 配置和 prod 配置存在差异。给我们您的确切错误以帮助我们了解问题所在(写入许可、不存在的目标文件夹......)

标签: java documentum dfc


【解决方案1】:

根据所提供的少量信息,这可能是任何事情,但我猜这是权限问题。具体来说,运行此代码的用户没有适当的权限来移动您尝试移动的一个(或多个)文档,或者运行代码的用户没有足够的权限将对象链接到目标文件夹。

【讨论】:

  • 我怀疑这是一个权限问题。要设置r_immutable_flag 属性,您必须 是超级用户。系统管理员是不够的,即使你有对象的 DELETE 权限也不行。由于他没有收到[DM_API_E_UPDATE_BAD_ATTR]error: "The attribute 'r_immutable_flag' is not updateable." 错误,我怀疑他已经在使用超级用户帐户了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-08
相关资源
最近更新 更多