文章结束给大家来个程序员笑话:[M]

在XT上可以设预条目模板(EntryTemplate)来到达模板化制控上传文档安全性和属性等信息的作用。而EntryTemplate本身可以与Folder相干联(一个Folder可以关联多个EntryTemplate),这样我们在XT上的某个Folder下上传便可按照我们所要设置的值行进设置文档安全性和属性信息了,而省去了手动作操,这对zhy天津分公司的业务很有必要,原因是户客在这里体总上有三个基本组,是对全部Folder下的document备具雷同权限,而另外另个殊特的组,可能根据不同Folder的不同即不同。

这些任务在XT上可以松轻通过配置来实现,但作为制定化开辟的应用程序,在最初实现时户客并无此求要,最初有种这殊特需求满可以制定殊特的权限管理来实现,但这仅能标指,原因是这样也会是户客做两套作动,一个是在XT上行进,另一个则是在制定的应用上行进。最好的法办是后行进的应用可以直接读取XT的相干EntryTemplate权限在对应folde下传documet时,行进相干设置。

不过,由于FileNet本身并没有供给直接的根据Folder获得EntryTemplate的API。而如果要通过遍历整个EntryTemplate来处理获得folder对应的EntryTemplate,一者须要应用维持一种关系(从定一意义上讲,还是得户客行进两套作动,而不是不时致一的状态),者二遍历的任务量也相当大。

经过分析zhy天津分公司EntryTemplate和Folder的特色,可以发在现Folder的Annotations中包含着EntryTemplate对应文档的列序号,可以根据它来获得相干EntryTemplate的内容,从而解析出相干权限,行进设置。本例案的殊特性在于Folder的Annotations中仅存在EntryTemplate的列序号(以件文式形存储,须要解析出特定notes的值)。体具作操过程意示代码如下所示:

每日一道理
记不清有多少个夜晚,在我翻阅纸张的指间滑落;记不清有多少支蜡烛,在我的凝视中化为灰烬。逝者如斯,我不时刻刻会听见自己对生命承诺的余音,感到岁月的流转在渐渐稀释我的年少无知,我愿自己是一只上足了发条的时钟,在昼夜不停的流转中留下自己充实的每一刻。
//获得folder关联entry template 的列序的idpublic void testWhatIsFolderAnnotationsTextId(){Connection connection = CEHelper.getConnection();CEHelper.pushSubject(connection);ObjectStore os = CEHelper.getObjectStore(connection);try{Folder folder = Factory.Folder.fetchInstance(os, new Id("{F78C8CE7-94FE-47CA-94E4-19A78EEBBF9E}"), null);AnnotationSet get_Annotations = folder.get_Annotations();Iterator iterator = get_Annotations.iterator();while(iterator.hasNext()){Annotation annotation = (Annotation)iterator.next();logger.info("annotation.get_Name() = " + annotation.get_Name());DocumentBuilderFactory docBuilderFactory = javax.xml.parsers.DocumentBuilderFactory.newInstance();DocumentBuilder docBuilder = null;docBuilder = docBuilderFactory.newDocumentBuilder();org.w3c.dom.Document doc = docBuilder.parse(annotation.accessContentStream(0));NodeList parameters = doc.getElementsByTagName("object");Node rootNode = null;if (parameters != null) {rootNode = parameters.item(0);}Element ele = (Element)rootNode;NodeList elementsByTagName = ele.getElementsByTagName("setting");Node item = elementsByTagName.item(1);logger.info("item.getNodeName() = " + item.getNodeName());logger.info("item.getNodeValue() = " + item.getNodeValue());logger.info("item.getTextContent() = " + item.getTextContent());}}catch(Exception e){e.printStackTrace();}finally{CEHelper.popSubject();}}//根据列序ID获得应相entry template的安全性等内容public void testGetVersionSeries(){Connection connection = CEHelper.getConnection();CEHelper.pushSubject(connection);ObjectStore os = CEHelper.getObjectStore(connection);try{String docId = "{60CFDD81-C2DA-46F3-A98E-B49A125930F9}";VersionSeries fetchInstance = Factory.VersionSeries.fetchInstance(os, new Id(docId), null);logger.info(fetchInstance.get_Id().toString());Document doc = (Document)fetchInstance.get_CurrentVersion();org.w3c.dom.Document w3cDoc = WcmXMLUtil.getDocumentFromInputStream(doc.accessContentStream(0));EntryTemplateParser parser = new EntryTemplateParser(w3cDoc);String className = parser.getClassName();String classId = parser.getId();List permissionList = parser.getPermissionList();List propertyList = parser.getPropertyList();Iterator iterator = permissionList.iterator();while(iterator.hasNext()){String item = (String)iterator.next();logger.info(item.toString());}}catch(Exception e){e.printStackTrace();}finally{CEHelper.popSubject();}}//设置文档安全性public void testPermission(){Connection connection = CEHelper.getConnection();CEHelper.pushSubject(connection);ObjectStore os = CEHelper.getObjectStore(connection);try{Document doc = Factory.Document.createInstance(os, "GeneralClass");AccessPermissionList createList = Factory.AccessPermission.createList();AccessPermission createInstance2 = Factory.AccessPermission.createInstance();createInstance2.set_AccessMask(131073);createInstance2.set_AccessType(AccessType.ALLOW);createInstance2.set_GranteeName("#AUTHENTICATED-USERS");createInstance2.set_InheritableDepth(-1);AccessPermission createInstance3 = Factory.AccessPermission.createInstance();createInstance3.set_AccessMask(998871);createInstance3.set_AccessType(AccessType.ALLOW);createInstance3.set_GranteeName("fnadmins");createInstance3.set_InheritableDepth(-1);createList.add(createInstance2);createList.add(createInstance3);doc.getProperties().putValue("DocumentTitle", "log4j_3.log");String minType = "application/octet-stream";doc.set_MimeType(minType);doc.checkin(AutoClassify.DO_NOT_AUTO_CLASSIFY, CheckinType.MAJOR_VERSION);doc.save(RefreshMode.REFRESH);Folder folder = Factory.Folder.fetchInstance(os, new Id("{0BCA05B3-6A0A-407C-B17A-503FA4070193}"), null);ReferentialContainmentRelationship rcr = folder.file(doc, AutoUniqueName.NOT_AUTO_UNIQUE, null, DefineSecurityParentage.DO_NOT_DEFINE_SECURITY_PARENTAGE);rcr.save(RefreshMode.REFRESH);doc.set_Permissions(createList);doc.save(RefreshMode.NO_REFRESH);}catch(Exception e){e.printStackTrace();}finally{CEHelper.popSubject();}}

文章结束给大家分享下程序员的一些笑话语录: 爱情观
  爱情就是死循环,一旦执行就陷进去了。
  爱上一个人,就是内存泄露--你永远释放不了。
  真正爱上一个人的时候,那就是常量限定,永远不会改变。
  女朋友就是私有变量,只有我这个类才能调用。
  情人就是指针用的时候一定要注意,要不然就带来巨大的灾难。

转载于:https://www.cnblogs.com/jiangu66/archive/2013/04/29/3050654.html

设置安全性根据Folder关联的条目模板设置上传文档安全性相关推荐

  1. excel补充操作技能3--日期函数、表格、文档安全性、邮件合并

    12)使用日期函数 1,推算日期 已知开始日期和间隔,求结束日期 如果给的间隔天数N,直接日期加上天数. 但如果给的间隔月份: 先拆后组.year().month() .day()分别挑出年月日 da ...

  2. word模板生成word报表文档

    主要功能为根据word模板生成word报表文档,注意引用Interop.Word.dll; 首先要生成word程序对象 Word.Application app = new Word.Applicat ...

  3. Freemarker - 根据模板动态生成word文档

    文章目录 Freemarker 根据模板动态生成word文档 Freemarker 介绍: Freemarker 使用: freemarker加载模板目录的方法 参考资料 Freemarker 根据模 ...

  4. java-制作flt模板,导出word文档带图片循环

    java-制作flt模板,导出word文档带图片循环 模板制作 制作xml 编辑xml文档 将xml模板转换为flt 编写工具类 导出word工具类 获取远程图片 使用示例 使用示例--springb ...

  5. 网页服务器日期格式,网站模板如何上传到主机上,用django定义自动插入的时间示格式如何调整...

    网站模板如何上传到主机上?用django定义自动插入的时间示格式如何调整?php如何调用html文件,我的PHP文件是网页整体的模板,中途想放html文件,谁有好方法?下面就来一起看看吧~ 网站模板如 ...

  6. 都爱云支付首页模板(上传即可使用)

    简介: 上次给大家分享了个仿写都爱云模板因为只是发的index.php很多小白站长不知道如何使用,今天给大家分享一个直接上传到模板文件的插件版都爱云首页模板(上传即可使用) 网盘下载地址: http: ...

  7. ftl模板生成的word文档打不开

    使用ftl用ftl模板生成的word文档打不开,一直未响应的可能问题如下: 1.word模板另存为xml格式文件的时候,选择Word 2003 XML格式(兼容问题) 2.模板中有图片的时候,将ftl ...

  8. 【推荐】产品经理需求模板,案例等文档合集15篇

    产品经理的职责描述仍然分歧很多,因人.因公司而异.即使是在相对较为一致的高科技行业,不同公司中的职位描述也是很不同的.但通常认为产品经理的职责主要包括:产品经理负责调查并根据用户的需求,确定开发何种产 ...

  9. 在Qt中使用已有模板创建新Word文档

    简 在这篇帖子中我将详细讲述如何在Qt环境下使用已有Word模板文件创建新的文档,并对模板文档内容填充.目前,我只对替换文字和对表格进行操作进行了介绍,如何在文档插入图片未在本文中提及. 述 开发环境 ...

最新文章

  1. python调用dll时路径问题_IDEA 使用 JNA 时,DLL 文件路径问题
  2. android 支付宝月账单 统计图_2019年你抢了多少微信红包?花了多少?(微信账单查看教程)...
  3. linux中运行.pro文件,Linux下pro*c运行配置
  4. 光伏电站清扫机器人_轻型光伏电站清扫机器人的制作方法
  5. linux常用网络命令详解,linux网络命令详解(鸟哥)
  6. [Web Chart系列之五] 2. 实战draw2d 之Label 放大,缩小的问题(raphael的text类似问题)
  7. 黑马程序员C++学习笔记(第一阶段:基础)
  8. DR模式 + keepalived
  9. 探索SQL Server元数据(一)
  10. 离散考试题计算机,离散数学试题及答案_离散数学试题库_离散数学试卷及答案...
  11. 安装chrome Jsonview插件
  12. 数据库分库分表可扩展及数据倾斜/热点问题(二)
  13. 盘点美颜api中的基本算法与开发难点
  14. 驾驶员疲劳监测系统DMS
  15. Python期末复习
  16. dau、mau、pcu、dnu、wau、acu、uv的意思是什么?
  17. java判断输入的格式化_java安全编码指南之:输入校验 - flydean - 博客园
  18. 简单的检索式问答系统
  19. Android Activity与local service的交互
  20. 区块链技术助力甘肃建食安信息追溯平台 为食品安全“立规矩”

热门文章

  1. python源码多平台编译_ubuntu编译python源码的坑
  2. 快放弃你的管家软件吧! Part 2 强制删除
  3. 数学--数论--HDU - 6322 打表找规律
  4. [深度学习] Keras 如何使用fit和fit_generator
  5. 研发项目管理中需注意的人性弱点(Z)
  6. 如何用dds实现线性调频_用神经网络生成线性调频
  7. 完美下巴标准_平行下颚抓
  8. 藉上帝之旨,行时代之命的文学长征
  9. PIC32单片机harmony开发环境搭建并新建harmony工程
  10. rdd转换成java数据结构_如何将CSV文件转换为RDD