Shi*_*pal 5 filenet-p8 filenet filenet-content-engine
其中一个要求是用新内容更新文档也删除旧文档.文档ID和上一个文档的其他属性应该指向具有新内容的新文档.
有任何样本片段做同样的感谢.
无论您是需要创建新文档还是现有文档的新版本,我都无法理解.属性可以自动复制到新创建的版本,因此使用版本控制似乎更自然.要做到这一点:
// check out the document
Document currentVersion = .. // reference to existing document
currentVersion.checkout(ReservationType.EXCLUSIVE, null, null, null);
currentVersion.save(RefreshMode.REFRESH);
// obtain the reservation object (new version in progress)
newVersion = (com.filenet.api.core.Document) documentObject.get_Reservation();
// set content
InputStream inputStream = .. // obtain input stream with content
ContentElementList contentElements = Factory.ContentElement.createList();
ContentTransfer contentTransfer = Factory.ContentTransfer.createInstance();
contentTransfer.setCaptureSource(inputStream);
contentTransfer.set_RetrievalName("content name");
contentTransfer.set_ContentType("proper MIME type");
contentElements.add(contentTransfer);
newVersion.set_ContentElements(contentElements);
newVersion.checkin(AutoClassify.DO_NOT_AUTO_CLASSIFY, CheckinType.MINOR_VERSION);
newVersion.save(RefreshMode.NO_REFRESH);
// deleting obsolete version
currentVersion.delete();
currentVersion.save(RefreshMode.NO_REFRESH);
Run Code Online (Sandbox Code Playgroud)
指定用于传输到预留的属性(所有非对象属性的默认模式)将使其成为新版本,一旦保留对象,它实际上是保留对象.
需要注意的一点是新版本不能与前一版本具有相同的ID,因为每个版本都是一个独特的对象.要使用相同的ID,您需要手动创建具有此ID和复制属性的新文档(在保留新文档之前删除旧文档).
UPDATE
关于必须包含多个对象的原子更新,您有两个选择:
除非您有复杂的更新方案,否则使用批处理是您通常使用的常规方法.
| 归档时间: |
|
| 查看次数: |
7903 次 |
| 最近记录: |