错误原因
必须避免以下工具和连接的组合,因为它们生成的工具流程不可执行。
不可执行的工具
不可执行的工具可能与工具条件分支的连接有关。
在以下示例中,工具条件分支 触发工具 T1 或工具 T2,具体取决于条件的结果。在因此,仅其中一个工具会执行并发送数据到后续工具 T3。但是,由于工具 T3 会等待来自工具 T1 和工具 T2 的数据,它肯定不会被执行。
没有解决此问题的明确解决方案,但以下示例中显示了可能的替代方案。
根据条件,工具 T1 或工具 T2 会执行。因此,工具 T3 会根据来自工具 T1 或工具 T2 的结果值执行。
工具 T2 与工具 T1 并行执行且独立于条件。如果满足条件,则会执行工具 T3,因为它从工具 T1 接收所需的输入数据。
竞争条件
如果没有以符合逻辑的方式定义工具的状态,则会出现竞争条件,因为工具的参数或触发器拥有来自上一个工具的多个传入连接。
在以下示例中,工具 T1 和工具 T2 的结果均连接至工具 T3 的同一参数。因此,工具 T3 根据来自工具 T1 或工具 T2 的数据执行,具体取决于哪个工具更早地将其结果发送到工具 T3。具有此类工具连接的执行会被 MERLIC 阻止。
以下示例展示如何解决竞争条件问题。
这样一来,工具 T3 会执行两次,一次根据来自工具 T1 的数据,一次根据来自工具 T2 的数据。
工具 T3 的状态根据分支条件进行定义。工具会根据来自工具 T1 或工具 T2 的结果值执行。