jbpm流程开发:jpdl语言详解

需积分: 15 1 下载量 177 浏览量 更新于2024-07-27 收藏 691KB DOC 举报
"jbpm流程开发中的jpdl建模语言详解" jbpm (Java Business Process Management) 是一个开源的工作流管理系统,它允许开发者设计、执行和管理业务流程。jpdl (jBPM Process Definition Language) 是jbpm使用的流程定义语言,用于描述业务流程的逻辑和结构。在jbpm 4.3版本中,jpdl是用于创建和配置流程的核心工具。 **jpdlProcess(流程)** `process` 是流程定义的根元素,它代表了一个具体的流程定义。在jbpm中,每个流程都有一个唯一的标识,这通常通过`name`和`key`属性来实现。 1. **属性:name** - 类型:文本 - 默认值:无(必须提供) - 描述:`name` 属性用于在与用户交互时显示流程的名称或标签,它是流程的人性化标识。 2. **属性:key** - 类型:字母或数字,下划线 - 默认值:如果省略,key默认与name相同,但会将非字母和非数字字符替换为下划线 - 描述:`key` 用于区分不同的流程定义。虽然流程定义可以有相同的`key`,但它们必须有不同的`name`,以便在发布多个版本时进行区分。对于所有已发布的版本,`key-name`组合必须保持一致。 3. **属性:version** - 类型:整型 - 默认值:从1开始,每次新部署时增加1 - 描述:`version` 属性表示流程的版本号,用于跟踪不同部署之间的变更。每次新部署都会在之前部署的最高版本号基础上加1。 在jbpm流程的部署和查询示例代码中: ```java ProcessEngine pe = Configuration.getProcessEngine(); RepositoryService re = pe.getRepositoryService(); String deployId1 = re.createDeployment() .addResourceFromClasspath("org/sklse/test/process/sample1.jpdl.xml") .deploy(); ProcessDefinition pd1 = re.createProcessDefinitionQuery() .deploymentId(deployId1) .uniqueResult(); System.out.println(pd1.getName() + "" + pd1.getKey() + "" + pd1.getVersion() + "" + pd1.getId()); ``` 这段代码展示了如何使用jbpm API部署一个包含jpdl流程定义的资源(如`sample1.jpdl.xml`),并获取其相关信息,包括流程的名称、键、版本和ID。 **结论:** 同一份`jpdl.xml`文件可以被部署多次,这意味着即使同一个流程定义文件也可以通过重新部署来创建新的版本。每次部署都会生成一个新的部署ID,并且流程定义的版本号会自动递增。这样,即使在不改变流程定义的情况下,也可以通过版本控制来区分不同的部署实例。 通过深入理解jpdl,开发者能够更有效地构建和管理复杂的企业级业务流程,确保流程的灵活性、可维护性和版本控制。在jbpm中,jpdl是实现这一目标的关键工具。
2014-05-01 上传