flowable是一款开源流程软件,可以将flowable-ui部署在tomcat上,它提供一个web服务器,可以创建流程,授权和使用流程。一些简单的流程可以不用借助其他应用环境,在flowable-ui里就可以完成。flowable也提供rest api,可以让其他应用开发者调用访问,实现对flowable流程的交互。
认证采用Basic HTTP access authentication方式,可以将认证信息写在header中的authentication属性中,大致是这样的,Authorization: Basic [base64编码的"username:password"字符串],也可以直接将账号密码放在url中,https://username:password@flowableserver:port/apipath 。当然更推荐前一种方式。
以流程定义Key来启动一个flowable流程,它的rest api大致定义是这样的:
Request body (start by process definition key):
{
"processDefinitionKey":"oneTaskProcess",
"variables": [
{
"name":"myVar",
"value":"This is a variable"
}
]
}
下面以nodejs代码示例一下启动flowable流程:
let postData=`{ "processDefinitionKey":"myprocesskey", "variables": [ \
{ "name":"reqid", "value": "${reqid}"},\
{ "name":"reqtime", "value": "${reqtime}"},\
{ "name":"euser", "value": "${euser}"},\
{ "name":"ename", "value": "${ename}"},\
{ "name":"reviewer", "value": "${reviewer}"},\
{ "name":"reviewername", "value": "${reviewername}"},\
{ "name":"content", "value": "${content}"}\
]}`
axios({
url:'https://flowable.demo.com.cn:8443/flowable-ui/process-api/runtime/process-instances',
method: 'post',
headers: {"Authorization": "Basic Zmxvd2FibGVyZXN0YXBpdXNlcjpmbG93YWJsZXJlc3RhcGlwYXNzb3dyZA==", "Content-Type": "application/json"},
data: postData
})
.then(respf => { console.log(respf); })
.catch(err => { console.log(err); });