我正在实现Filenet Java Step Processor。我必须从对象库获取文档,moddify并将修改后的版本存储到同一个对象库。我有一个用于测试的工作小程序。我不能要求用户提供额外的发送登录名和密码,我必须使用VWSession
对象。我必须得到的文件作为步骤附件发送。我知道如何获得附加文档ID。如何使用VWSession
对象作为我与Object Store的连接点从Java Step Processor获取ID文档?
答案 0 :(得分:1)
获取一个ObjectStore实例(从VWSession获取domainId,并使用VWSession中的Connection构建域)并将Attachment传递给下面的方法:
private String getIdFromAttachment(VWAttachment att, ObjectStore os) {
if (att.getLibraryType() != 3) {
String libtype = String.valueOf(att.getLibraryType());
throw new VWException("hk.ibm.ecm.cpa.uwfcustomcomponent.InvalidLibraryType",
"Cannot convert object from non-CE repository, type {0}.", libtype);
}
String attId = att.getId();
switch (att.getType()) {
case 3:
case 4:
VersionSeries vs = (VersionSeries) os.getObject("VersionSeries", attId);
vs.refresh();
String ver = att.getVersion();
return getIdBasedOnVersion(vs, ver);
default:
return attId;
}
}
private String getIdBasedOnVersion(VersionSeries vs, String ver) {
if (ver == null) {
Document current = (Document) vs.get_CurrentVersion();
current.refresh();
return current.get_Id().toString();
} else if ("-1".equals(ver)) {
Document released = (Document) vs.get_ReleasedVersion();
released.refresh();
return released.get_Id().toString();
} else {
return ver;
}
}
答案 1 :(得分:-1)
获取用户凭据并不困难。在stepprocessor java模块中,只需注意以下内容:
String userName = controller.getDataStore().getServerCredentials().getUserId();
String userPwd = controller.getDataStore().getServerCredentials().getPassword();
要获取您的意思,通常您不会通过VWConnection而是通过内容引擎连接获得该文档。
通过ID获取您的文件:
Factory.Document.fetchInstance(objectStore, guid, null);
希望有所帮助