Ein aus einem Service-Flow-Projekt generierter Web Service kann sich weder direkt noch indirekt selbst aufrufen. Im Allgemeinen lassen die Tools für Service-Flow-Projekte nicht zu, dass Sie einen rekursiven Aufruf für einen Flow, d. h. einen sich direkt oder durch Zwischenaufrufe selbst aufrufenden Flow, erstellen.
In dieser Situation gilt Folgendes: Der Flow-Editor erkennt die Rekursion nicht, wenn Sie sie erstellen, und zeigt keine Fehlernachricht an. Sie können erfolgreich Laufzeitcode für die CICS Service Flow Runtime erstellen und das Deployment für den Web Service (WS01) durchführen. Wenn Sie den Web Service (WS01) ausführen, wird der zweite Web Service (WS02) fehlerfrei aufgerufen. Der rekursive Aufruf (von WS02 zurück zu WS01) scheitert jedoch.
Problem: Falls Sie versehentlich Dateien mit Anzeigennachrichten löschen und versuchen, Anzeigen erneut zu importieren oder erneut zu erfassen, um die Dateien zu ersetzen, bleiben Verweise auf die Nachrichten in diesen Dateien möglicherweise beschädigt. Dies liegt daran, dass für jede Anzeigennachricht ein eindeutiger Bezeichner generiert wird, über den die Anzeigennachrichten in anderen Dateien identifiziert werden.
Problemumgehung: Erstellen Sie in kurzen Zeitabständen Sicherungskopien Ihrer Projekte. Falls Sie versehentlich Dateien mit Anzeigennachrichten gelöscht haben und Ihre Flows nicht neu modellieren möchten, stellen Sie die Anzeigennachrichten wieder her, indem Sie die gesicherten Versionen der Dateien importieren, anstatt die Anzeigen erneut zu importieren oder erneut zu erfassen.
Problem: Wenn Sie COBOL- oder PL/I-Quellcodedatenstrukturen mit Feldern des USAGE-Typs POINTER importieren, wird eine Nachricht mit einem entsprechenden Feld des Typs 'hexBinary' erstellt. Dies führt dazu, dass der Assistent 'Laufzeitcode generieren' fehlschlägt.
Problemumgehung: Bearbeiten Sie die Nachricht im Nachrichteneditor. Setzen Sie den Feldtyp auf der Registerseite 'Erweitert' des Editors von 'hexBinary' auf 'int'. Durch diese Änderung kann die Generierung erfolgreich durchgeführt werden.
Problem: Der Flow-Editor hindert Sie nicht daran, Wires hinzuzufügen, die den Ausführungspfad eines Flows mit sich selbst (einem früheren Punkt des Ausführungspfads) verbinden. Solche Wires müssen bei der Generierung des Laufzeitcodes nicht zu Fehlern führen. In der Laufzeitverarbeitung werden jedoch mit großer Wahrscheinlichkeit Fehler auftreten.
Problemumgehung: Wenn ein Flow-Abschnitt mehrfach iteriert werden soll, können Sie einen WHILE-Knoten verwenden, sofern eine bestimmte Bedingung erfüllt ist. (Lesen Sie hierzu den Abschnitt "Schleife erstellen" in der EST-Dokumentation.)
Problem: Wenn Sie einen Flow modellieren und ein Feld einer Nachricht denselben Namen wie eine andere Nachricht hat, kann der generierte COBOL-Code möglicherweise nicht kompiliert werden. Für einen Namenskonflikt wird ein Fehler IGYPS0037 gemeldet. Wenn der Flow beispielsweise (1) eine Nachricht 'X' mit einem Feld 'Y' und (2) eine Nachricht 'Y' referenziert, kann der COBOL-Compiler bei einem Verweis des generierten Codes auf 'Y' nicht erkennen, ob 'X' die Nachricht 'Y' oder das Feld 'Y' referenziert.
Problemumgehung: Refaktorisieren Sie die Nachricht oder das Feld, um den Namenskonflikt zu lösen. Wählen Sie im EST-Projekt-Explorer eines der Elemente mit identischem Namen aus. Öffnen Sie das Kontextmenü und wählen Sie 'Umbenennen' aus.
Problem: Wenn Sie versuchen, eine COBOL-Copybook-Datei zu importieren, und der Pfad- oder Dateiname nicht englische Zeichen enthält, scheitert der Import.
Problemumgehung: Benennen Sie die COBOL-Copybook-Datei so um, dass der Name nur englische Zeichen enthält. Stellen Sie die Datei in ein Verzeichnis, dessen Pfad nur englische Zeichen enthält.
Problem: Wenn Sie versuchen, eine PL/I-Include-Datei zu importieren, und der Pfad- oder Dateiname nicht englische Zeichen enthält, scheitert der Import.
Problemumgehung: Benennen Sie die PL/I-Include-Datei so um, dass der Name nur englische Zeichen enthält. Stellen Sie die Datei in ein Verzeichnis, dessen Pfad nur englische Zeichen enthält.