jBPM4.4:RepositoryService服务

RepositoryService 包含了用来管理发布资源的所有方法。

Deploying a process部署流程

Java代码
String deploymentid = repositoryService.createDeployment()
    .addResourceFromClasspath("org/jbpm/examples/services/Order.jpdl.xml")
    .deploy();


•通过上面的addResourceFromClass 方法, 流程定义XML的内容可以从文件, 网址,字符串,输入流或zip输入流 中获得。
•每次部署都包含了一系列资源。每个资源的内容都是一个字节数组。 jPDL流程文件都是以.jpdl.xml 作为扩展名的。 其他资源是任务表单和java类 。
•部署时要用到一系列资源, 默认会获得多种流程定义和其他的归档类型。 jPDL发布器会自动识别后缀名是.jpdl.xml 的流程文件。
•在部署过程中,会把一个id 分配给流程定义。 这个id 的格式为{key}-{version} , key和version之间使用连字符连接。
•如果没有提供key(指在流程定义文件中,对流程的定义), 会在名字的基础自动生成。 生成的key会把所有不是字母和数字的字符替换成下划线 。
•同一个名称只能关联到一个key, 反之亦然 。
•如果没有为流程文件提供版本号, jBPM会自动为它分配一个版本号。 请特别注意那些已经部署了的名字 相同的流程文件的版本号。 它会比已经部署的同一个key的流程定义 里最大的版本号还大。 没有部署相同key的流程定义的版本号会分配为1。


删除流程定义
删除一个流程定义会把它从数据库中删除。

Java代码
repositoryService.deleteDeployment(deploymentId);


如果在发布中的流程定义还存在活动的流程实例, 这个方法就会抛出异常。

如果希望级联删除一个发布中流程定义的所有流程实例, 可以使用deleteDeploymentCascade 。

你可能感兴趣的:(jbpm,process,deploying)