Filenet 文档 属性 重新上传后未修改
Filenet Document property not modifying after re-upload
我测试了一个简单的程序来更改 class 并再次上传文档。当我用我的管理员帐户正常使用它时它工作正常,但是当我从非管理员帐户登录时它不允许我编辑 属性.
public void senddoc(String send,String clas){
System.out.println(send);
Document docn = Factory.Document.createInstance(os, null);
InputStream input = null;
ContentElementList contEleList = Factory.ContentElement.createList();
ContentTransfer ct = Factory.ContentTransfer.createInstance();
Folder folder = Factory.Folder.fetchInstance(os,send, null);
ContentElementList contEleList2 = Factory.ContentElement.createList();
ContentTransfer ct2 = Factory.ContentTransfer.createInstance();
contEleList= doc.get_ContentElements();
ct=(ContentTransfer) contEleList.get(0);
input = ct.accessContentStream();
System.out.println(input);
ct2.setCaptureSource(input);
ct2.set_ContentType("image/tiff");
ct2.set_RetrievalName("New File Title");
contEleList2.add(ct2);
docn.set_ContentElements(contEleList2);
Properties properties = doc.getProperties();
String Title = properties.getStringValue("DocumentTitle");
//read other
docn.checkin(AutoClassify.DO_NOT_AUTO_CLASSIFY, CheckinType.MAJOR_VERSION);
docn.save(RefreshMode.REFRESH);
ReferentialContainmentRelationship rcr = folder.file(docn,
AutoUniqueName.AUTO_UNIQUE, "New File Title",
DefineSecurityParentage.DO_NOT_DEFINE_SECURITY_PARENTAGE);
rcr.save(RefreshMode.REFRESH);
docn.changeClass(clas);
docn.save(RefreshMode.REFRESH);
docn.getProperties().putValue("DocumentTitle",Title);
//input other
docn.save(RefreshMode.REFRESH);
rcr.save(RefreshMode.REFRESH);
}
但问题是,当我重新上传文档时,它只能由管理员用户编辑,原始文档作者部分已被删除。那么如何才能像原文档一样进行修改呢?
感谢任何输入。 :)
经过几次尝试,我发现了问题并解决了它,这可能不是这样做的最佳方式,但这解决了我的问题。我只是将访问权限映射到文档到文档。
docn.set_Permissions(doc.get_Permissions());
我之前尝试过一些批量上传程序(如 IBM 中的演示代码),但我没有将其添加到其中,但它工作正常,因为所有文档都具有对所有 users.but 的正确权限(服务转换文档 class 和索引)我必须映射它。
希望这能帮助任何人面对这个问题。
Tnx
我测试了一个简单的程序来更改 class 并再次上传文档。当我用我的管理员帐户正常使用它时它工作正常,但是当我从非管理员帐户登录时它不允许我编辑 属性.
public void senddoc(String send,String clas){
System.out.println(send);
Document docn = Factory.Document.createInstance(os, null);
InputStream input = null;
ContentElementList contEleList = Factory.ContentElement.createList();
ContentTransfer ct = Factory.ContentTransfer.createInstance();
Folder folder = Factory.Folder.fetchInstance(os,send, null);
ContentElementList contEleList2 = Factory.ContentElement.createList();
ContentTransfer ct2 = Factory.ContentTransfer.createInstance();
contEleList= doc.get_ContentElements();
ct=(ContentTransfer) contEleList.get(0);
input = ct.accessContentStream();
System.out.println(input);
ct2.setCaptureSource(input);
ct2.set_ContentType("image/tiff");
ct2.set_RetrievalName("New File Title");
contEleList2.add(ct2);
docn.set_ContentElements(contEleList2);
Properties properties = doc.getProperties();
String Title = properties.getStringValue("DocumentTitle");
//read other
docn.checkin(AutoClassify.DO_NOT_AUTO_CLASSIFY, CheckinType.MAJOR_VERSION);
docn.save(RefreshMode.REFRESH);
ReferentialContainmentRelationship rcr = folder.file(docn,
AutoUniqueName.AUTO_UNIQUE, "New File Title",
DefineSecurityParentage.DO_NOT_DEFINE_SECURITY_PARENTAGE);
rcr.save(RefreshMode.REFRESH);
docn.changeClass(clas);
docn.save(RefreshMode.REFRESH);
docn.getProperties().putValue("DocumentTitle",Title);
//input other
docn.save(RefreshMode.REFRESH);
rcr.save(RefreshMode.REFRESH);
}
但问题是,当我重新上传文档时,它只能由管理员用户编辑,原始文档作者部分已被删除。那么如何才能像原文档一样进行修改呢?
感谢任何输入。 :)
经过几次尝试,我发现了问题并解决了它,这可能不是这样做的最佳方式,但这解决了我的问题。我只是将访问权限映射到文档到文档。
docn.set_Permissions(doc.get_Permissions());
我之前尝试过一些批量上传程序(如 IBM 中的演示代码),但我没有将其添加到其中,但它工作正常,因为所有文档都具有对所有 users.but 的正确权限(服务转换文档 class 和索引)我必须映射它。
希望这能帮助任何人面对这个问题。
Tnx