我正在开发一个连接到 Documentum 数据存储的 JavaFx 项目。我正在尝试配置如何将放置在文件夹(我们称之为 Folder1)中的文件夹(我们称之为 folder11)移动到另一个文件夹(我们称之为 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);
mo.setDestinationFolderId(destinationDirectory . getObjectId());
IDfFolder doc = (IDfFolder) mySession . getObject(new DfId(docId));
//System.out.println(doc); The output is : com.documentum.fc.client.DfFolder___PROXY@ec9178
//System.out.println(mo.execute); output is : true
IDfMoveNode node = (IDfMoveNode)mo.add(doc);
// System.out.println(node); the output : com.documentum.operations.nodes.impl.DfMoveNode@1ad8a67
//System.out.println(mo.execute); output is : false
if (!mo.execute()) {
str= "Move operation faild . ";
}
else {
str = "Move operation success . ";
}
}catch(DfException e){
System.out.println(e.getLocalizedMessage());
}catch(Exception e){
System.out.println(e.getLocalizedMessage());
}
return str;
}
}
这就是我所说的:
Migrate test = new Migrate();
System.out.println(test.move(_session, "0b01b66980028599" ,"Cabinet/LEXOPEDIA/Sateri/Hong Kong" ));
但问题是无论如何mo.execute
总是返回 false 并且迁移总是失败。有谁知道我的错误在哪里?:)