一种不大合适的文档存储功能的实现

        对一些刚刚引入FileNet平台的应用迁移来讲,原应用的一些功能有简单的文档存储,例如在模板中可能会有除了属性之外的模板附件的存在,而它们仅仅是做为一个单一内容,再如单据在Maximo和SAP间的传递除了附件内容和唯一性标志(如单据号)一致外,其他的业务属性均不同,而此时的文档在非FileNet的基础上管理较为复杂,往往没有版本或真正意义上的文档管理,一旦将文档的存储转移到FileNet上,则应充分考虑转移的必要性(分清原先实现问题所在)和将来的扩展性。下文展示了在同一单据下的文档更新时,仅仅是文档内容向一个新的文档内容的转移,而没有考虑其利用内容管理的意义。

Connection conn = CEHelper.getConnection();
		CEHelper.pushSubject(conn, "Administrator", "filenet");
		ObjectStore os = CEHelper.getObjectStore(conn);
		
		Document doc0 = Factory.Document.fetchInstance(os, new Id("{320A3450-7F78-4B2A-B642-422282E2243D}"), null);
		
		if(!doc0.get_IsCurrentVersion()){
			doc0 = (Document)doc0.get_CurrentVersion();
		}
		
		
		Document doc = Factory.Document.createInstance(os, "Document");
		
		ContentElementList newCEL = Factory.ContentElement.createList();
		ContentTransfer ct = Factory.ContentTransfer.createInstance();
		try{
			ct.setCaptureSource(new FileInputStream("c:\\log4j1.log"));
		}catch(FileNotFoundException e){
			e.printStackTrace();
		}
		newCEL.add(ct);
		
		InputStream is = doc0.accessContentStream(0);
		ContentTransfer ct2 = Factory.ContentTransfer.createInstance();
		ct2.setCaptureSource(is);
		newCEL.add(ct2);

		InputStream is3 = doc0.accessContentStream(0);
		ContentTransfer ct3 = Factory.ContentTransfer.createInstance();
		ct3.setCaptureSource(is3);
		newCEL.add(ct3);

		
		doc.set_ContentElements(newCEL);
		
		doc.getProperties().putValue("DocumentTitle", "log4j_7");
		
		doc.save(RefreshMode.REFRESH);
		
		doc.checkin(AutoClassify.DO_NOT_AUTO_CLASSIFY, CheckinType.MAJOR_VERSION);
		doc.save(RefreshMode.REFRESH);
			
		Folder folder = Factory.Folder.fetchInstance(os,"/Test", null);
		ReferentialContainmentRelationship rcr = folder.file(doc, AutoUniqueName.AUTO_UNIQUE, null, DefineSecurityParentage.DO_NOT_DEFINE_SECURITY_PARENTAGE);
		rcr.save(RefreshMode.REFRESH);
		
		doc0.delete();
		doc0.save(RefreshMode.NO_REFRESH);
		
		CEHelper.popSubject();

           上述代码功能单就一个功能而言无可非议,而要从客户的长远需求和业务扩展来看,它不利于为客户提供成型的解决方案。客户最初需要的是简单的跨平台间的文档共享,但那也许仅是停留在对原系统低效影响下的一种肤浅需求或认知,充分考虑后应做部分调整。无论采用哪种实现对目前而言都不影响客户的使用,但不利于解决方案的思维,更不利于扩大对客户的服务范围。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值