Releaseinformationen sowie bekannte Probleme und Einschränkungen mit Lösungsvorschlägen für Service-Flow-Projekte (SFM)

Aus einem Service-Flow-Projekt generierter Web Service kann sich nicht selbst aufrufen (rekursiver Aufruf)

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.

Allerdings können die Tools für Service-Flow-Projekte zurzeit folgende Rekursionsarten nicht erkennen:
  • Sie generieren einen Web Service (z. B. WS01) aus einem Service-Flow-Projekt.
  • Der generierte Web Service (WS01) ruft einen anderen Web Service (z. B. WS02) auf. (In den Enterprise Service Tools wird WS02 übrigens als "abgehender Web Service" bezeichnet, weil er für den aufrufenden Web Service ein externer Web Service ist.)
  • Der aufgerufene Web Service (WS02) ruft wiederum den ursprünglichen Web Service (WS01) auf.

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.

Anzeigennachrichten können nicht einfach ersetzt werden

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.

Einschränkung für importierten Quellcode mit USAGE-Klausel POINTER

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.

Einschränkung bei Flow mit einer Verbindung, die per Wire mit sich selbst verbunden ist

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.)

Kompilierungsfehler durch Namenskonflikt bei Nachrichten- und Feldnamen

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.

Import einer COBOL-Copybook-Datei scheitert bei nichtenglischen Zeichen im Pfad- oder Dateinamen

Problem: Wenn Sie versuchen, eine COBOL-Copybook-Datei zu importieren, und der Pfad- oder Dateiname nichtenglische 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.

Import einer PL/I-Include-Datei scheitert bei nichtenglischen Zeichen im Pfad- oder Dateinamen

Problem: Wenn Sie versuchen, eine PL/I-Include-Datei zu importieren, und der Pfad- oder Dateiname nichtenglische 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.