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