这仍然是从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个小时。
答案 0 :(得分:0)
从文件夹中解除对象的归档仅需一件事情:删除相应的ReferentialContainmentRelationship
对象。可以通过多种方式获得后者,但是假设您知道要从中取消归档的文件夹,最直接的方法是在Folder
上使用unfile
方法:
ReferentialContainmentRelationship rcr = folder.unfile(document);
rcr.save(RefreshMode.NO_REFRESH);
您发布的代码似乎是为更通用的任务指定的内容的改编。我不认为文档建议以这种方式从单个文件夹中取消归档。无论如何,除非将要归档的文档归档到成千上万个文件夹中,否则即使没有不必要的麻烦,也要花几秒钟的时间来取消归档,而不是几个小时。您的系统可能有问题。