FileNet P8:咨询为已有文档添加内容且不修改ID的方法
在FileNet P8中为无内容文档添加内容且不生成新版本的解决方案
核心前提
首先要确认目标文档类的版本策略设置:必须是「无版本(No Versioning)」或「仅显式签出时版本化(Version On Checkout Only)」。如果是自动版本化类,任何修改都会触发版本生成,无法绕过。
具体实现步骤(以Java API为例)
无需执行checkout/checkin操作,直接修改文档的内容集合即可:
- 获取文档实例时,指定刷新模式确保拿到最新状态:
Document doc = Factory.Document.fetchInstance(objectStore, docId, null, RefreshMode.REFRESH); - 创建
ContentTransfer对象并设置要添加的内容:ContentTransfer contentTransfer = Factory.ContentTransfer.createInstance(); contentTransfer.set_RetrievalName("target-filename.ext"); contentTransfer.set_Content(new FileInputStream(new File("local-file-path"))); - 将内容对象添加到文档的内容集合,然后保存修改:
doc.get_ContentElements().add(contentTransfer); doc.save(RefreshMode.REFRESH);
之前操作无效的常见原因排查
- 若使用了checkout操作,且文档类是自动版本化策略,checkin时必然生成新版本;非自动版本化类无需checkout即可直接修改
fetchInstance()未指定刷新模式,导致操作的是缓存的旧实例,修改未同步到服务器- 文档处于锁定状态,无法执行修改操作
内容的提问来源于stack exchange,提问作者Jose Miguel Caballero
相关产品推荐
相关产品推荐

