@@ -664,9 +664,16 @@ def get_next_node_list(self, current_node, current_node_result):
664664 f"{ edge .sourceNodeId } _{ current_node_result .node_variable .get ('branch_id' )} _right" == edge .sourceAnchorId ):
665665 if next_node .properties .get ('condition' , "AND" ) == 'AND' :
666666 if self .dependent_node_been_executed (edge .targetNodeId ):
667+ up_nodes = self .flow .get_up_nodes (edge .targetNodeId )
668+ up_node_id_list = current_node .up_node_id_list
669+ if up_nodes and len (up_nodes ) > 1 :
670+ up_nodes .sort (key = lambda node : node .id )
671+ first = up_nodes [0 ]
672+ up_node_id_list = [n_c for n_c in self .node_context if n_c .node .id == first .id ][
673+ 0 ].up_node_id_list
667674 node_list .append (
668675 self .get_node_cls_by_id (edge .targetNodeId ,
669- [* current_node . up_node_id_list , current_node .node .id ]))
676+ [* up_node_id_list , current_node .node .id ]))
670677 else :
671678 node_list .append (
672679 self .get_node_cls_by_id (edge .targetNodeId ,
@@ -678,9 +685,16 @@ def get_next_node_list(self, current_node, current_node_result):
678685 next_node = edge_node .node
679686 if next_node .properties .get ('condition' , "AND" ) == 'AND' :
680687 if self .dependent_node_been_executed (edge .targetNodeId ):
688+ up_nodes = self .flow .get_up_nodes (edge .targetNodeId )
689+ up_node_id_list = current_node .up_node_id_list
690+ if up_nodes and len (up_nodes ) > 1 :
691+ up_nodes .sort (key = lambda node : node .id )
692+ first = up_nodes [0 ]
693+ up_node_id_list = [n_c for n_c in self .node_context if n_c .node .id == first .id ][
694+ 0 ].up_node_id_list
681695 node_list .append (
682696 self .get_node_cls_by_id (edge .targetNodeId ,
683- [* current_node . up_node_id_list , current_node .node .id ]))
697+ [* up_node_id_list , current_node .node .id ]))
684698 else :
685699 node_list .append (
686700 self .get_node_cls_by_id (edge .targetNodeId ,
0 commit comments