public override void Build(IAbpStepBodyDefinitionContext context) { var step1 = new AbpWorkflowStepBody(); step1.Name = "FixedUserAudit"; step1.DisplayName = "指定用户审核"; step1.StepBodyType = typeof(GeneralAuditingStepBody); step1.Inputs.Add(new WorkflowParam() { InputType = new SelectUserInputType(), Name = "UserId", DisplayName = "审核人" }); context.Create(step1); var step2 = new AbpWorkflowStepBody(); step2.Name = "FixedRoleAudit"; step2.DisplayName = "指定角色审核"; step2.StepBodyType = typeof(RoleAuditingStepBody); step2.Inputs.Add(new WorkflowParam() { InputType = new SelectRoleInputType(), Name = "RoleName", DisplayName = "审核角色名" }); context.Create(step2); }
protected virtual void BuildWorkflow(IEnumerable <WorkflowNode> allNodes, DefinitionSourceV1 source, IEnumerable <AbpWorkflowStepBody> stepBodys, WorkflowNode node) { if (source.Steps.Any(u => u.Id == node.Key)) { return; } var stepSource = new StepSourceV1(); stepSource.Id = node.Key; stepSource.Name = node.Key; AbpWorkflowStepBody stepbody = stepBodys.FirstOrDefault(u => u.Name == node.StepBody.Name); if (stepbody == null) { stepbody = new AbpWorkflowStepBody() { StepBodyType = typeof(NullStepBody) }; } stepSource.StepType = $"{stepbody.StepBodyType.FullName}, {stepbody.StepBodyType.Assembly.FullName}"; foreach (var input in stepbody.Inputs) { var value = node.StepBody.Inputs[input.Key].Value; if (!(value is IDictionary <string, object> || value is IDictionary <object, object>)) { value = $"\"{value}\""; } stepSource.Inputs.TryAdd(input.Key, value); } source.Steps.Add(stepSource); BuildBranching(allNodes, source, stepSource, stepBodys, node.NextNodes); }