在一个流程中或以嵌入子流程步骤:


子流程:选择在子流程步骤要发起的流程。
子流程策略:
子流程完成才能提交:当子流程的任务完成后,子流程步骤才能提交到下一步。
子流程发起即可提交:子流程任务发起后,子流程步骤就可以提交到下一步。
子流程发起后自动提交:当子流程任务发起后,这一步任务自动提交到下一步。
子流程完成后自动提交:当子流程任务实例审批完成后,这一步任务自动提交到下一步。
实例类型:
所有人同一实例:只发起一个子流程实例,如果这一步接收人是多个也是多人同一个实例。
每个人单独实例:这一步接收人每个人单独一个对应的子流程实例。
激活前事件:在上一步发送到子流程步骤时执行的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 - 2025 重庆天知软件技术有限公司 版权所有
|