一、问题描述
在某个聊天工具中,因场景涉及较多,产生了多个主干分支,主干分支下又有多个小分支。仔细比较,发现部分分支里面的节点可以通过变量聚合的方式进行归并,减少重复度。一整子倒腾之后,节点数量减少了一半,一下子神清气爽了。但是,接下来的调试中,发现高度去重聚合后的ChatFlow并没有按照我想要的流程走,出现了几处混乱不堪的情况.
二、问题排查
一步步调试,发现有两个分支,这里分别叫做分支A,分支B,其中B分支的某个分支(命名为B1)可以与分支A直接进行变量聚合,B分支的另外一个分支(命名为B2)经过几个节点之后,某个新节点的变量可以与A节点再次进行变量聚合。B1分支和A进行变量聚合的参数,在B2分支中,也会走到,这种情况下,如果逻辑走到B2分支再和A聚合,B2分支使用的是B1分支之前的变量。我调整了聚合参数的顺序,将B2分支参与A分支j聚合的变量放到了B1分支参与A分支聚合的变量之上。发现问题消失。但是实际上,这个聚合点,不止这三个变量参与聚合。所以这个办法并不能根除这个问题。于是只能将B1分支之后聚合取消,采用重复节点。
三、总结
1、变量聚合时,按照参数的顺序选择输出,会输出第一个非空的变量值;
2、编排时,并非聚合度越高越好,该重复的时候可以重复。