3

我是Documentum DFC的新手,我使用DFC API编写了一个代码来签出一个文档并且它工作正常。但现在我想用我本地电脑驱动器中存在的新文件签入同一个文件。我试图搜索它,但没有找到任何好的和简单的答案。

如果有人在这里为我提供指导,我将不胜感激。

4

3 回答 3

6

新版本(需要 VERSION 权限):

boolean keepLock = false;
String versionLabels = "";
IDfSysObject doc = (IDfSysObject) session.getObject(new DfId("0900000000000000"));
doc.checkout();
doc.setFile("C:\\temp\\temp.jpg"); // assuming you're using windows
doc.checkin(keepLock, versionLabels);
  • keepLo​​ck - 签入操作后是否保持文档签出
  • versionLabels - 标签(除了在别处配置的内置标签)

相同版本(需要 WRITE 权限):

IDfSysObject doc = (IDfSysObject) session.getObject(new DfId("0900000000000000"));
doc.fetch(null);
doc.setFile("C:\\temp\\temp.jpg"); // again, assuming the worst ;)
doc.save();

请注意,需要fetch(null)来确保您手头有文档的最新版本。

对于上面的两个示例,内容文件被替换而没有任何进一步的魔法。请务必根据需要重命名文档,并在必要时设置正确的格式,例如:

doc.setObjectName("new_name");
doc.setContentType("new_format");
于 2014-02-06T23:33:03.587 回答
2
public void checkinDoc(String objectId) throws Exception 
{
    sysObject = (IDfSysObject) idfSession.getObjectByID(objectId);
    //sysObject = (IDfSysObject) idfSession.getObjectByPath("/Cabinet/Folder/Document");
    if (sysObject.isCheckedOut() ) { // if it is checked out
        sysObject.checkin(false,”CURRENT”);
    }
}
于 2013-10-28T15:11:02.077 回答
1

Use setFile on the checked out document, then checkin.

于 2013-11-28T13:30:11.567 回答