using System.Collections.Generic; using System.Threading; using TeamAAS.FlowEditor.Models; using TeamAAS.FlowEditor.Plugins; using Plugins.Standard.Models; namespace Plugins.Standard { /// /// 异常分支插件 - 前驱节点 Failed 时由 FlowExecutor 显式触发执行; /// 无可编辑属性,双击不弹窗。多前驱异常时串行排队执行。 /// 默认 PluginRun 返回 Success;具体异常处理逻辑由派生类重写。 /// [Plugin("异常分支", PluginCategory.逻辑判断, /*modelType*/ null, "AlertOutline", NodeShape = NodeCategory.ExceptionBranch, Description = "前置节点异常时执行的分支节点,多前驱异常时串行排队执行")] [System.Serializable] public class ExceptionBranchPlugin : BasePlugin { public override List DeclareOutputs() => new List { new OutputField("状态", typeof(string)), new OutputField("异常源", typeof(string)) }; public override NodeRunStatus PluginRun(CancellationToken token, out Dictionary results) { results = new Dictionary { ["状态"] = "异常分支已执行", ["异常源"] = Model?.NodeName ?? "" }; Log(2, $"异常分支已执行,异常源: {Model?.NodeName ?? "(未知)"}", TeamAAS.LogLevel.Warning); return NodeRunStatus.Success; } } }