Перенос файла или папки из одного хранилища в другое в Documentum

Я работаю над JavaFx проект подключен к Documentum хранилище данных. И я пытаюсь настроить, как переместить файл (назовем его file1), помещенный в папку (назовем его Folder1), в другую папку (назовем его 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;


    }


    }

вместо docId я передаю r_object_id файла, который я хочу переместить, но получаю следующую ошибку:

com.documentum.fc.client.DfFolder ___ PROXY не может быть приведен к com.documentum.fc.client.IDfDocument

Кто-нибудь знает, где моя ошибка? Или где я делаю это неправильно?

1 ответ

Решение

Это очевидно, в соответствии

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

параметр docId представляет объект папки, а не объект документа. Сначала проверьте тип, а затем используйте либо IDfFolder или же IDfDocument, Если вы уверены, что перемещаете папку в другую, чем просто изменить IDfDocument -> IDfFolder,

Другие вопросы по тегам