在 Documentum 中将文件或文件夹从一个存储库迁移到另一个存储库
Migrating a file or a folder from one repository to another in Documentum
我正在开发一个连接到 Documentum
数据存储的 JavaFx
项目。我正在尝试配置如何将放置在文件夹(我们称之为 Folder1)中的文件(我们称之为 file1)移动到另一个文件夹(我们称之为 Folder2)。值得一提的是,这两个文件夹都在同一个柜子里。我已经实施了以下 class :
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 cannot be cast to
com.documentum.fc.client.IDfDocument
有谁知道我的错误在哪里?或者我哪里做错了?
很明显,符合
IDfDocument doc = (IDfDocument) mySession . getObject(new DfId(docId));
docId 参数表示文件夹对象,而不是文档对象。首先进行类型检查以确定然后使用 IDfFolder
或 IDfDocument
。如果您确定要将文件夹移动到另一个文件夹,而不只是更改 IDfDocument
-> IDfFolder
。
我正在开发一个连接到 Documentum
数据存储的 JavaFx
项目。我正在尝试配置如何将放置在文件夹(我们称之为 Folder1)中的文件(我们称之为 file1)移动到另一个文件夹(我们称之为 Folder2)。值得一提的是,这两个文件夹都在同一个柜子里。我已经实施了以下 class :
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 cannot be cast to com.documentum.fc.client.IDfDocument
有谁知道我的错误在哪里?或者我哪里做错了?
很明显,符合
IDfDocument doc = (IDfDocument) mySession . getObject(new DfId(docId));
docId 参数表示文件夹对象,而不是文档对象。首先进行类型检查以确定然后使用 IDfFolder
或 IDfDocument
。如果您确定要将文件夹移动到另一个文件夹,而不只是更改 IDfDocument
-> IDfFolder
。