Definieren von SOAP-Webservice-Fehlern
Eine-WSDL-Datei kann ein fault-Element für eine Operation und ein Message-Attribut, das die Fehlermeldung enthält, enthalten. Sie können daher, wenn Sie einen SOAP-Webservice in MapForce erstellen, eine "Fault"-Komponente zu Ihrem Mapping hinzufügen. Dadurch löst der Webservice bei Erfüllung einer bestimmten Bedingung eine Ausnahme aus.
Um ein Fault-Element in ein Mapping einzufügen, muss in der WSDL-Datei ein fault-Element vorhanden sein. |
Sie können die Fehlerbedingung sowie den Text der Fehlermeldung im Mapping selbst definieren. Wenn die Bedingung zutrifft, kommt es zum folgenden Webservice-Fehler:
•In einer Live-Umgebung (wenn der Webservice auf einem Server bereitgestellt wurde und ausgeführt wurde) kommt es zu einem Webservice-Fehler und der Caller erhält die benutzerdefinierte Meldung.
•In MapForce (bei der Erstellung des Designs) wird die Mapping-Ausführung beendet und Sie sehen die Meldung im Fenster Meldungen.
So fügen Sie eine Fehlerkomponente zu einem MapForce Mapping hinzu:
1.Klicken Sie im Menü Einfügen auf Ausnahme. (Klicken Sie alternativ dazu auf die Symbolleisten-Schaltfläche Ausnahme .)
2.Wählen Sie WSDL-Fehler erzeugen aus.
Anmerkung: | Wenn die Option WSDL-Fehler erzeugen deaktiviert ist und Sie die Meldung "Keine Fehler für diese Operation" sehen, bedeutet dies, dass in der WSDL-Datei keine Fehler definiert sind und daher auch keine in MapForce hinzugefügt werden können. |
Ein Beispiel für ein Mapping, das einen Webservice-Fehler enthält, finden Sie im folgenden MapForce-Beispielprojekt: <Dokumente>\Altova\MapForce2025\MapForceExamples\TimeService\TimeService.mfp. Doppelklicken Sie auf die Mapping-Operation getTimeZoneTime.mfd.
Im obigen Beispiel sollte ein Ausnahmeereignis ausgelöst werden, wenn n0:timezone nicht gleich "UTC" ist.
•Die equal-Komponente überprüft, ob timezone gleich UTC ist, das bool-Ergebnis wird an die filter-Komponente weitergegeben.
•Wenn die Bedingung false ist, d.h. ein anderer Wert als UTC ist, aktiviert der on-false-Parameter der filter-Komponente das Ausnahmeereignis Fehler:errorSoapOut und der Mapping-Vorgang wird gestoppt. (Beachten Sie, dass Sie das Ausnahmeereignis bei Bedarf auch mit dem on-true-Parameter verbinden können.)
•Die SoapFault-Message liefert zwei Fehlertext-Gruppen.
Es ist äußerst wichtig, wo Sie in diesem Beispiel die filter-Komponente platzieren:
•Es müssen beide Parameter der filter-Komponente, sowohl on-true als auch on-false, gemappt werden! Einer muss auf die fault-Komponente gemappt werden und der andere auf die Zielkomponente, an die die gefilterten Daten der Quellkomponente übergeben werden. Andernfalls wird die fault-Komponente nie ausgelöst. • Die Ausnahmeereigniskomponente und die Zielkomponente müssen direkt mit der filter-Komponente verbunden werden. Zwischen die filter-Komponente und die Ausnahmeereignis- bzw. die Zielkomponente dürfen keine Funktionen oder andere Komponenten platziert werden. |