2016-10-13 5 views
0

Я работаю над проектом JavaFx, связанным с хранилищем данных Documentum. И я пытаюсь настроить, как перемещать файл (позволяет вызывать его file1), помещенный в папку (позволяет вызвать Folder1) в другую папку (позволяет вызвать Folder2). Стоит отметить, что обе папки находятся в одном шкафу. Я реализовал следующий класс:Перенос файла или папки из одного репозитория в другой в Documentum

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.

+0

Я хотел бы задать вам еще один вопрос относительно этого. Что касается параметра, который я определил, называемого «destination», мне нужно правильно указать путь к папке назначения? –

+0

Я не уверен, как работает механизм перемещения, но обязательно укажите, где вы хотите переместить объекты. – Miki

 Смежные вопросы

  • Нет связанных вопросов^_^