2016-10-13 9 views
0

Documentumデータストレージに接続されたJavaFxプロジェクトで作業しています。そして、私はファイルを移動する方法を設定しようとしている(それを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

もう一度質問したいと思います。私が定義した "目的地"と呼ばれるパラメータに関しては、目的地のフォルダのパスを正しく渡す必要がありますか? –

+0

私はどのように移動機構が動作するのか分かりませんが、確かに、あなたはあなたのオブジェクトを移動させたいところを指定する必要があります。 – Miki

関連する問題