第13章 文档管理
这仍然是一个试验性的属性。
为了使用这个属性,你需要取消hibernate.cfg.xml文件中的下列行的注释:
<mapping resource="org/jbpm/context/exe/variableinstance/JcrNodeInstance.hbm.xml"/> |
jBPM的文档管理支持基于Java内容资料库(Java Content Repository)。它是一个用来将文档管理系统集成进入Java的标准java规范。基本的思想是jBPM支持JCR节点像流程变量一样存储。
为了存储一个节点、会话、资料库(repository)和从节点提取的路径,如下:
Session session = node.getSession(); Repository repo = session.getRepository(); Workspace wspace = session.getWorkspace();
// THE NODE REPOSITORY AND WORKSPACE NAME GOT TO CORRESPOND WITH A JBPM SERVICE NAME repository = repo.getDescriptor(Repository.REP_NAME_DESC); workspace = wspace.getName(); path = node.getPath(); |
重要提示:jbpm上下文件服务的名称必须和资料库名称(repository.getDescriptor(Repository.REP_NAME_DESC))相一致。这是为了当节点变量从jBPM数据库中加载时存储jbpm流程变量的引用和资料库之间相匹配。当JCR流程变量被检索时,在jbpm上下文中的每个服务名将匹配被存储的资料库和工作空间名称。在jbpm上下文服务和JCR会话/资料库名的匹配像下面这样:
l 如果有一个名叫“jcr”的jbpm上下文服务,那么它将被处理
l 一个服务名同资料库名配对相等
l 一个以资料库名起始、以工作空间名称结尾配对的服务并且通过使用资料库名的服务处理配置。
这个属性的典型用例是文档审批流程。一个文档需要被审批并更新。那个文档(例如,word文档),能够被存储在一个JCR内容资料库节点(JCR-content-repository-node)里。这个节点包含所有文档的版本号。以便在流程的后面部分,人们仍然能查阅文档的历史版本。
这个属性只使用Jackrabbit测试过。关于库依赖性的更多内容请参考JCR实现文档。
:-) skip chapter 12,as soon paste it!