使用 FileNet API 获取 DocumentSet 中最新版本文档的检索名称
Acquiring retrieval name for latest version of a document in a DocumentSet using FileNet API
我有这段代码:
Folder fold = Factory.Folder.fetchInstance(os, folderPath, null);
DocumentSet docs = fold.get_ContainedDocuments();
Iterator it = docs.iterator();
Document retr;
try {
while (it.hasNext()) {
retr = (Document)it.next();
String name = retr.get_Name();
System.out.println(name);
if(name.equals(fileName)) {
System.out.println("Match Found");
System.out.println("Document Name : " + retr.get_Name());
return retr;
}
}
} catch (Exception e) {
e.printStackTrace();
}
目前,这段代码可以很好地检索具有特定文件名的文档。我想添加到此,以便它也可以 select 具有该名称的文件的最新版本。我该怎么办?
我考虑过在现有的 if 中添加一个额外的 if,但我担心会影响性能。
如果您提交文档(或文档的子类),则包含的文档将是当前文档版本。在这种情况下,当前文档版本为(按使用顺序):
- 已发布的版本(如果有),否则
- 当前版本(如果有的话),否则,
- 预订版本。
您不能使用 Folder.file
方法将特定文档版本归档到文件夹中,因此您将始终拥有 DocumentSet
文件夹中的最新版本
这是获取最新版本文档的方法
Folder fold = Factory.Folder.fetchInstance(os, folderPath, null);
DocumentSet docs = fold.get_ContainedDocuments();
Iterator it = docs.iterator();
Document retr;
try {
while (it.hasNext()) {
retr = (Document)it.next();
String name = retr.get_Name();
System.out.println(name);
if(name.equals(fileName)) {
System.out.println("Match Found");
System.out.println("Document Name : " + retr.get_Name());
//here you are checking the document for the name. It also can happen that, this document might have more than version but the title remained same for each version. You can get the latest version like
return retr.get_CurrentVersion();
}
}
} catch (Exception e) {
e.printStackTrace();
}
我有这段代码:
Folder fold = Factory.Folder.fetchInstance(os, folderPath, null);
DocumentSet docs = fold.get_ContainedDocuments();
Iterator it = docs.iterator();
Document retr;
try {
while (it.hasNext()) {
retr = (Document)it.next();
String name = retr.get_Name();
System.out.println(name);
if(name.equals(fileName)) {
System.out.println("Match Found");
System.out.println("Document Name : " + retr.get_Name());
return retr;
}
}
} catch (Exception e) {
e.printStackTrace();
}
目前,这段代码可以很好地检索具有特定文件名的文档。我想添加到此,以便它也可以 select 具有该名称的文件的最新版本。我该怎么办?
我考虑过在现有的 if 中添加一个额外的 if,但我担心会影响性能。
如果您提交文档(或文档的子类),则包含的文档将是当前文档版本。在这种情况下,当前文档版本为(按使用顺序):
- 已发布的版本(如果有),否则
- 当前版本(如果有的话),否则,
- 预订版本。
您不能使用 Folder.file
方法将特定文档版本归档到文件夹中,因此您将始终拥有 DocumentSet
文件夹中的最新版本
这是获取最新版本文档的方法
Folder fold = Factory.Folder.fetchInstance(os, folderPath, null);
DocumentSet docs = fold.get_ContainedDocuments();
Iterator it = docs.iterator();
Document retr;
try {
while (it.hasNext()) {
retr = (Document)it.next();
String name = retr.get_Name();
System.out.println(name);
if(name.equals(fileName)) {
System.out.println("Match Found");
System.out.println("Document Name : " + retr.get_Name());
//here you are checking the document for the name. It also can happen that, this document might have more than version but the title remained same for each version. You can get the latest version like
return retr.get_CurrentVersion();
}
}
} catch (Exception e) {
e.printStackTrace();
}