/// <summary> /// 执行条件表达式 /// </summary> /// <param name="args"></param> public new bool Execute(BpmContext context) { ZSequence sequence = context.Element as ZSequence; bool result = this.eParser.GetResult <bool>(sequence.Express); if (!exeExpress || (exeExpress && result)) { Leave(context); return(true); } else { DestroyToken(context.Token); return(false); } }
/// <summary> /// 分支顺序流的处理 /// </summary> /// <param name="context"></param> public void SplitExecute(BpmContext context) { //获取网关所有输入连线 List <ZSequence> lines = fParser.FindOneSideLines(context.ProcessXml, context.Element.ID, true) as List <ZSequence>; bool exeResult = false; //连线上表达式的执行结果 foreach (ZSequence line in lines) { if (string.IsNullOrEmpty(line.Express)) { exeResult = eParser.GetResult <bool>(line.Express); if (exeResult) { outSequence = line; break; } } } }