在一个流程中或以嵌入子流程步骤:
子流程:选择在子流程步骤要发起的流程。
子流程策略:
子流程完成才能提交:当子流程的任务完成后,子流程步骤才能提交到下一步。
子流程发起即可提交:子流程任务发起后,子流程步骤就可以提交到下一步。
子流程发起后自动提交:当子流程任务发起后,这一步任务自动提交到下一步。
子流程完成后自动提交:当子流程任务实例审批完成后,这一步任务自动提交到下一步。
实例类型:
所有人同一实例:只发起一个子流程实例,如果这一步接收人是多个也是多人同一个实例。
每个人单独实例:这一步接收人每个人单独一个对应的子流程实例。
激活前事件:在上一步发送到子流程步骤时执行的c#方法(激活前事件是必须的,不然无法发起子流程任务。)。
方法中返回一个JSON字符串:
{code:0(不为0表示有错误,将不会发起子流程),msg:'有错误时的错误信息',users:[{id:1(接收人id),title:'任务标题',instanceId:'实例id'}...]}
示例:
/// <summary> /// 测试子流程激活前事件 /// </summary> /// <param name="flowEventParameter"></param> /// <returns>返回json字符串:{code:0(不为0表示有错误,将不会发起子流程),msg:'有错误时的错误信息',users:[{id:1(接收人id),title:'任务标题',instanceId:'实例id'}...]}</returns> public string TestSubflowActiveBefore(RoadFlow.Model.FlowRunModel.FlowEventParameter flowEventParameter) { //处理子流程业务数据 Dictionary<string, object> keyValues = new(); keyValues.Add("title", "测试子流程-" + flowEventParameter.TaskTitle); keyValues.Add("f1", "11111111111"); keyValues.Add("f2", "22222222222"); keyValues.Add("f3", "33333333333"); long instanceId = RoadFlow.Service.DbConnection.InsertData(186620774965317, keyValues, "rf_form_test", "id", true); //设置子流程任务第一步接收人的待办标题和业务数据id。 JArray jArray = new(); if (flowEventParameter.Other is List<RoadFlow.Model.User> receiverList) { foreach (var receiver in receiverList) { jArray.Add(new JObject() { { "id", receiver.Id }, { "title", "测试子流程-"+ instanceId.ToString() }, { "instanceId", instanceId.ToString() }, }); } } JObject jObject = new() { { "code", 0 }, { "msg", string.Empty }, { "users", jArray } }; return jObject.ToString(); }
联系QQ:493501010电话:136 0832 5512(微信同号)邮箱:road@roadflow.net
Copyright 2014 - 2024 重庆天知软件技术有限公司 版权所有
|