从 IBM 知识中心取消存档文档代码
Unfiling a document code from IBM knowledge center
这仍然是从 filenet 取消归档文档的唯一方法或最有效的方法吗?
static PropertyFilter pf = new PropertyFilter();
pf.addIncludeProperty(new FilterElement(null, null, null, "Containers",
null));
// Get document to be unfiled.
Document doc = Factory.Document.fetchInstance(os, new Id("{8854236F-02D6- 40AB-B4B2-59B6756154D8}"), pf);
// Iterate all folders that contain the document, until the desired
folder is found.
ReferentialContainmentRelationshipSet rcrs = doc.get_Containers();
Iterator iter = rcrs.iterator();
while (iter.hasNext() )
{
ReferentialContainmentRelationship rcr =
(ReferentialContainmentRelationship)iter.next();
Folder folder = (Folder)rcr.get_Tail();
if (folder.get_Id().equals(new Id("{C40106FE-B510-4222-BB42- 6D2FD5D21123}")))
{
rcr.delete();
rcr.save(RefreshMode.REFRESH);
break;
}
}
此代码执行了它应该执行的操作,但有时取消归档一份文档最多需要 4 个小时。
从文件夹中取消归档对象只需要一件事:删除相应的 ReferentialContainmentRelationship
对象。后者可以通过多种方式获得,但假设您知道要从中取消归档的文件夹,最直接的方法是在 Folder
:
上使用 unfile
方法
ReferentialContainmentRelationship rcr = folder.unfile(document);
rcr.save(RefreshMode.NO_REFRESH);
您发布的代码似乎是对指定用于更通用任务的代码的改编。我不相信文档建议以这种方式从单个文件夹中取消归档。无论如何,除非您要取消归档的文档被归档到数千个文件夹中,否则即使有这种不必要的复杂情况,取消归档也只是几秒钟的事情,而不是几个小时。您的系统可能有问题。
这仍然是从 filenet 取消归档文档的唯一方法或最有效的方法吗?
static PropertyFilter pf = new PropertyFilter();
pf.addIncludeProperty(new FilterElement(null, null, null, "Containers",
null));
// Get document to be unfiled.
Document doc = Factory.Document.fetchInstance(os, new Id("{8854236F-02D6- 40AB-B4B2-59B6756154D8}"), pf);
// Iterate all folders that contain the document, until the desired
folder is found.
ReferentialContainmentRelationshipSet rcrs = doc.get_Containers();
Iterator iter = rcrs.iterator();
while (iter.hasNext() )
{
ReferentialContainmentRelationship rcr =
(ReferentialContainmentRelationship)iter.next();
Folder folder = (Folder)rcr.get_Tail();
if (folder.get_Id().equals(new Id("{C40106FE-B510-4222-BB42- 6D2FD5D21123}")))
{
rcr.delete();
rcr.save(RefreshMode.REFRESH);
break;
}
}
此代码执行了它应该执行的操作,但有时取消归档一份文档最多需要 4 个小时。
从文件夹中取消归档对象只需要一件事:删除相应的 ReferentialContainmentRelationship
对象。后者可以通过多种方式获得,但假设您知道要从中取消归档的文件夹,最直接的方法是在 Folder
:
unfile
方法
ReferentialContainmentRelationship rcr = folder.unfile(document);
rcr.save(RefreshMode.NO_REFRESH);
您发布的代码似乎是对指定用于更通用任务的代码的改编。我不相信文档建议以这种方式从单个文件夹中取消归档。无论如何,除非您要取消归档的文档被归档到数千个文件夹中,否则即使有这种不必要的复杂情况,取消归档也只是几秒钟的事情,而不是几个小时。您的系统可能有问题。