【问题标题】:Migrating a file or a folder from one repository to another in Documentum在 Documentum 中将文件或文件夹从一个存储库迁移到另一个存储库
【发布时间】:2016-10-13 03:09:09
【问题描述】:

我正在处理一个连接到Documentum 数据存储的JavaFx 项目。我正在尝试配置如何将放置在文件夹(我们称之为 Folder1)中的文件(我们称之为 file1)移动到另一个文件夹(我们称之为 Folder2)。值得一提的是,这两个文件夹都在同一个柜子里。我已经实现了以下类:

package application;

import com.documentum.com.DfClientX;
import com.documentum.com.IDfClientX;
import com.documentum.fc.client.DfClient;
import com.documentum.fc.client.IDfDocument;
import com.documentum.fc.client.IDfFolder;
import com.documentum.fc.client.IDfSession;
import com.documentum.fc.common.DfException;
import com.documentum.fc.common.DfId;
import com.documentum.operations.IDfMoveNode;
import com.documentum.operations.IDfMoveOperation;

public class Migrate {
    public Migrate(){}
    public String move ( IDfSession mySession,String docId, String destination){
        String str ="";
        try{

              IDfClientX clientx = new DfClientX();

              IDfMoveOperation mo = clientx . getMoveOperation();


              IDfFolder destinationDirectory = mySession . getFolderByPath(destination);

              //Here is the line that causes error
              mo.setDestinationFolderId(destinationDirectory . getObjectId());

              IDfDocument doc = (IDfDocument) mySession . getObject(new DfId(docId));

              IDfMoveNode node = (IDfMoveNode)mo.add(doc);

                 if (mo.execute()) {
                     str= "Move operation successful . ";
                     }
                     else {
                     str = "Move operation failed . ";
                     }
        }catch(DfException e){
            System.out.println(e.getLocalizedMessage());
        }


    return str;


    }


    }

我正在传递我希望移动的文件的 r_object_id 而不是 docId,但出现以下错误:

com.documentum.fc.client.DfFolder___PROXY 不能转换为 com.documentum.fc.client.IDfDocument

有人知道我的错误在哪里吗?或者我在哪里做错了?

【问题讨论】:

    标签: java javafx documentum dfc


    【解决方案1】:

    很明显,符合要求的

    IDfDocument doc = (IDfDocument) mySession . getObject(new DfId(docId));
    

    docId 参数代表文件夹对象,而不是文档对象。首先进行类型检查以确保然后使用IDfFolderIDfDocument。如果您确定要将文件夹移动到另一个文件夹,而不仅仅是更改 IDfDocument -> IDfFolder

    【讨论】:

    • 我想再问你一个关于这个的问题。至于我定义的名为“destination”的参数,我需要正确传递目标文件夹的路径吗?
    • 我不确定移动机制是如何工作的,但可以肯定的是,您需要指定要移动对象的位置。
    猜你喜欢
    • 2013-01-02
    • 2012-04-15
    • 2015-08-21
    • 1970-01-01
    • 2020-10-16
    • 1970-01-01
    • 2016-02-10
    • 2022-01-11
    • 1970-01-01
    相关资源
    最近更新 更多