删除任务时删除业务数据
平台默认在任务中心可以删除任务或者调用API删除任务,删除的时候会触发deletePIAction动作。在删除任务的时候默认只是删除对应的流程实例的数据不会删除流程表单关联的业务数据,如果要删除业务数据可以通过监听deletePIAction动作实现。具体如下:
定义全局事件
{
"listeners": [{
"action": "deletePIAction",
"event": "after",
"handler": "invokeHttpProcedure",
"params": {
"template": [{
"method": "POST",
"url": "/vuedemo/main/fuwu/deletebusdata",
"headers": {
"Accept": "application/json",
"Content-Type": "application/json"
},
"body": {
"condition": {
"sData1": ["${sData1}"],
"dataUrl": ["${dataUrl}"]
},
"option":{
"cascade":true
}
}
}]
}
}]
}
特别说明
- 示例中的/vuedemo/main/fuwu/deletebusdata全局事件调用的请求路径,需要替换为自行定义的服务请求路径
定义全局事件调用的服务请求
特别说明
- 请求需要是post类型
- 请求添加参数params:参数数据类型是字符串,传参方式是请求体(RequestBody)
在请求的具体实现中可以通过params参数默认提供的数据进行业务数据的删除,具体逻辑可自行实现
public void deletebusdata(String params) throws Exception {
//请添加你的业务代码
/** params参数值
{"condition":{"dataUrl":["/vuedemo/main/dbrest/liuchengsj"],"sData1":["CAED80A4C2F0000141E7CCB010A01DB2"]},"option":{"cascade":true}}
*/
JSONObject flowParams = JSONObject.parseObject(params);
JSONObject condition = flowParams.getJSONObject("condition");
String dataUrl = condition.getString("dataUrl");
String sData1 = condition.getString("sData1");
}
特别说明
- params中返回的dataUrl就是业务数据的dbrest请求路径
- params返回的sData1就是此流程实例关联的业务数据的主键值