如何将.bpmn格式XML流程部署至Camunda Engine?含API请求及术语疑问
部署BPMN文件到Camunda Engine的方法与常见疑问解答
一、POST /deployment/create 请求示例(multipart格式)
该接口要求使用multipart/form-data格式提交,无法直接用纯JSON请求体,以下是具体请求结构与命令示例:
请求头
Content-Type:multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW(boundary可自定义,需与请求体中标识一致)Authorization:Basic YWRtaW46YWRtaW4=(默认admin账号的Base64编码,可根据实际配置调整)
请求体(multipart格式示例)
------WebKitFormBoundary7MA4YWxkTrZu0gW Content-Disposition: form-data; name="deploymentName" MyCamundaProcessDeployment ------WebKitFormBoundary7MA4YWxkTrZu0gW Content-Disposition: form-data; name="enableDuplicateFiltering" true ------WebKitFormBoundary7MA4YWxkTrZu0gW Content-Disposition: form-data; name="file"; filename="my-process.bpmn" Content-Type: application/xml <?xml version="1.0" encoding="UTF-8"?> <definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" id="Definitions_1" targetNamespace="http://bpmn.io/schema/bpmn"> <process id="MySampleProcess" name="Sample Approval Process" isExecutable="true"> <startEvent id="StartEvent_1"/> <!-- 此处为你的BPMN流程具体内容 --> </process> </definitions> ------WebKitFormBoundary7MA4YWxkTrZu0gW--
curl命令示例(更易直接测试)
curl -X POST "http://localhost:8080/engine-rest/deployment/create" \ -H "Authorization: Basic YWRtaW46YWRtaW4=" \ -H "Content-Type: multipart/form-data" \ -F "deploymentName=MyCamundaProcessDeployment" \ -F "enableDuplicateFiltering=true" \ -F "file=@my-process.bpmn;type=application/xml"
二、deploymentName 与 processName 的区别
二者完全不是同一概念:
- deploymentName:是整个部署包的标识,一个部署可包含多个BPMN、DMN或其他资源文件,用于管理一组部署资源的集合(比如查询、删除部署操作)。
- processName:是单个BPMN流程定义的名称,定义在BPMN XML文件的
<process>标签的name属性中。一个部署包内可以包含多个不同的process,每个process都有独立的processName。
你可以用同一个deploymentName部署多个不同processName的流程,也可以在升级流程版本时复用相同的deploymentName。
内容的提问来源于stack exchange,提问作者Lev_D
相关产品推荐
相关产品推荐

