从IBM知识中心解压缩文档代码

时间:2019-02-04 16:20:16

标签: java filenet-p8 filenet-content-engine containment

这仍然是从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个小时。

1 个答案:

答案 0 :(得分:0)

从文件夹中解除对象的归档仅需一件事情:删除相应的ReferentialContainmentRelationship对象。可以通过多种方式获得后者,但是假设您知道要从中取消归档的文件夹,最直接的方法是在Folder上使用unfile方法:

ReferentialContainmentRelationship rcr = folder.unfile(document);
rcr.save(RefreshMode.NO_REFRESH);

您发布的代码似乎是为更通用的任务指定的内容的改编。我不认为文档建议以这种方式从单个文件夹中取消归档。无论如何,除非将要归档的文档归档到成千上万个文件夹中,否则即使没有不必要的麻烦,也要花几秒钟的时间来取消归档,而不是几个小时。您的系统可能有问题。