首页 > 解决方案 > 在 FileNet P8 中更新 Creator 属性

问题描述

我正在尝试更新CreatorFileNetP8 实现中的属性。我尝试使用授权来更新它,"Modify Certain System Properties"但似乎该授权不适用于"Creator",而是适用于其他属性,例如"LastModifiedBy"等等。

我还尝试通过属性将我的类上的属性模板本身更改"propertyTemplate""Read-Write",但是当我尝试保存它时返回错误,说明

“该操作违反了实现的约束。继承了类的属性 Creator 的可设置性约束”

任何帮助表示赞赏。

标签: filenet-p8filenet-content-enginefilenet-cpe

解决方案


似乎 IBM Support 已经被问过这个问题,他们在这里提供了“Some How”并回答了这个问题:

https://www.ibm.com/support/pages/setting-selected-system-properties-ibm-filenet-p8-document-versions

正如他们在共享链接的摘要部分中强调的那样,IBM 对此的看法是

设置 Creator、DateCreated、LastModifier 和 DateLastModified 所需的代码并不复杂,但它们与通常用于更常见属性的代码有些不同。上述步骤应允许开发人员在需要时设置这些值。

总结他们遵循的方法:

  1. 创建一个新的Document,将Creator属性设置为所需的值
  2. 使用Method检出当前文档并将Reservation Properties参数设置为新的 Document 属性对象。Document.getProperties()
  3. 将签出文档的内容设置为新文件,在我的情况下,我使用下面的代码将内容从对象复制DocumentReservation对象。

    ContentElementList docContentList = oldVersion.get_ContentElements();
    ContentTransfer contentTransfer = (ContentTransfer) docContentList.get(0);
    
    ContentElementList docContentList = oldVersion.get_ContentElements();
    ContentTransfer contentTransfer = (ContentTransfer) docContentList.get(0);
    
    ContentTransfer updatedContentTransfer = Factory.ContentTransfer.createInstance();
    updatedContentTransfer.setCaptureSource(contentTransfer.accessContentStream());
    
    ContentElementList contentElementList = Factory.ContentElement.createList();
    contentElementList.add(updatedContentTransfer);
    reservation.set_ContentElements(contentElementList);
    
  4. 签入文档,Creator现在已更新

我并不完全相信这个解决方案,但它是 IBM 提供的,而且对我来说效果很好(除了添加一个额外的版本)


推荐阅读