Fehlerursachen
Die folgenden Kombinationen von Tools und Verbindungen müssen vermieden werden, weil die entstehenden Tool-Flows nicht ausführbar sind.
Nicht ausführbares Tool
Bei Verbindungen mit dem Tool Gemäß Bedingung verzweigen können nicht ausführbare Tools auftreten.
Im nachstehenden Beispiel löst das Tool Gemäß Bedingung verzweigen abhängig vom Ergebnis der Bedingung entweder das Tool T1 oder das Tool T2 aus. Daher wird nur eines der Tools ausgeführt, das dann Daten an das nachfolgende Tool T3 sendet. Da das Tool T3 aber auf Daten vom Tool T1 und vom Tool T2 wartet, wird es niemals ausgeführt.
Es gibt keine einwandfreie Lösung für dieses Problem. Die folgenden Beispiele zeigen jedoch mögliche Alternativen auf.
Abhängig von der Bedingung wird Tool T1 oder Tool T2 ausgeführt. Tool T3 wird daher entweder mit den Ergebniswerten von Tool T1 oder von Tool T2 ausgeführt.
Tool T2 wird parallel zu Tool T1 und unabhängig von der Bedingung ausgeführt. Tool T3 wird ausgeführt, wenn die Bedingung erfüllt ist, weil es die erforderlichen Eingabedaten vom Tool T1 erhält.
Laufzeitbedingte Konflikte
Laufzeitbedingte Konflikte treten auf, wenn der Status eines Tools logisch nicht definiert ist, weil ein Parameter oder Trigger des Tools über mehr als eine eingehende Verbindung von vorherigen Tools verfügt.
Im folgenden Beispiel sind die Ergebnisse von Tool T1 und Tool T2 mit demselben Parameter vom Tool T3 verbunden. Daher wird das Tool T3 mit Daten vom Tool T1 oder von Tool T2 ausgeführt. Dies hängt davon ab, welches Tool früher Ergebnisse an das Tool T3 sendet. Die Ausführung mit einer solchen Toolverbindung wird durch MERLIC verhindert.
Die folgenden Beispiele zeigen, wie laufzeitbedingte Konflikte gelöst werden können.
Das Tool T3 wird dann zweimal ausgeführt, einmal mit Daten vom Tool T1 und einmal mit Daten vom Tool T2.
Der Status von Tool T3 wird abhängig von der Verzweigungsbedingung definiert. Das Tool wird mit den Ergebniswerten von Tool T1 oder Tool T2 ausgeführt.