Inhaltsverzeichnis



Verknüpfen von Komplexen Typen mit TAA-Datenstrukturen oder Parameterobjekten

Das hier beschriebene Werkzeug ist noch in Entwicklung, und die Informationen auf dieser Seite sind nicht verbindlich!

Damit eine Verknüpfung möglich ist, muss der Typ folgende Voraussetzungen erfüllen:

Die Verknüpfung bewirkt, dass in Diensten, für die nicht nur die Wsdl, sondern auch der Programmrahmen generiert wird, die Felder in/aus der Datenstruktur bzw. dem Parameterobjekt gemäß der für sie angegebenen Verknüpfung bestückt werden.

Wenn die Verknüpfung nicht möglich ist, oder die Definition der Verknüpfung unvollständig ist, werden in der Liste Probleme die Punkte, die einer Verknüpfung im Wege stehen, aufgelistet. Wenn durch ein Problem keine Verknüpfung möglich ist, ist die Zeile durch eine Fehler-Symbol gekennzeichnet, sonst mit einem Warnsymbol:

publedge_cm_issues.jpg

Die Gruppenbox, die diese Liste enthält, ist zugeklappt, wenn keine Probleme gefunden wurden.

☞ Nähere Informationen zu erkannten Problemen und deren möglicher Behebung

Es stehen vier Verknüpfungsarten zur Verfügung: Datenstruktur, Parameter, Leer, oder Keine.

Wenn Sie die Verknüpfungsart ändern, werden alle aktuell zu diesem Typ definierten Verknüpfungsinformationen entfernt. Über Undo kann die Änderung rückgängig gemacht werden.

Die gängigste Art, Verknüpfungen zu definieren, ist die Kombination von Parameter-Verknüpfung am Dienst und Datenstruktur-Verknüpfung an den verwendeten komplexen Typen: Dadurch wird am Dienst festgelegt, welche Parameterobjekte bestückt werden sollen, und am komplexen Typ, wie die jeweiligen Inhalte in die Datenstruktur des angegebenen Parameters übernommen werden sollen.

Datenstruktur-Verknüpfung

Datenstruktur-Verknüpfung ist der Default für komplexe Typen (mit Ausnahme von Listentypen).

Bei der Datenstruktur-Verknüpfung werden Beziehungen zwischen den Bestandteilen des komplexen Typs und Feldern aus TAA-Datenstrukturen gelegt. Dabei werden die Elemente aus dem komplexen Typ, für die es in der Datenstruktur eine Entsprechung gibt, mit dem betreffenden Datenstrukturelement verknüpft.

Für einen komplexen Typ können Verknüpfungen auf mehrere unterschiedliche TAA-Datenstrukturen existieren. Bei der Verknüpfung von Diensten mit TAA-Modulen wird ausgewählt, welches Parameterobjekt des TAA-Moduls mit der Typ-Instanz aus dem Webservice verknüpft werden soll. Sofern das Parameterobjekt auf einer Datenstruktur basiert, für die für das komplexe Objekt eine Verknüpfung angelegt wurde, werden die Ein- bzw. Ausgabedaten gemäß dieser Datenstrukturverknüpfung unter Verwendung dieses Parameterobjekts bestückt.

publedge_cm.jpg

In der obigen Abbildung ist zu erkennen, dass für den Webdatentyp sowohl eigene Verknüpfungen von Elemente zu Feldern aus einer TAA-Datenstruktur existieren (schwarze Verbindungslinien) als auch Verknüpfungen, die über den darin enthalten komplexen Typ angelegt wurden (graue Linien).

Für eine neue Datenstruktur-Verknüpfung

  1. wählen Sie zunächst die Datenstruktur und ggf. die zu berücksichtigende Gruppe aus,
  2. nehmen Sie die Verknüpfungen für die Elemente vor, die auf einfachen Typen basieren, und
  3. wählen Sie die Verknüpfung für die Elemente aus, die auf komplexen Typen basieren.

Datenstruktur auswählen

Die Datenstrukturen, für die an diesem Datentyp bereits Verknüpfungen existieren, werden in der Combobox „Datenstruktur“ aufgelistet.

Um eine andere Datenstruktur auszuwählen, Klicken Sie auf den „…“-Knopf neben der Combobox. Wählen Sie hier den gewünschten Typ der Datenstruktur aus1) („OSTR“ für eine Datenstruktur, „STAB“ für eine SchlÜsseltabellenstruktur.)

Wenn für untergeordnete komplexe Typen bereits Verknüpfungen mit der gewählten Datenstruktur bestehen, werden dafür Verbindungslinien gezeichnet.

Beschränken auf Gruppe

Diese Combobox ist nur aktiv, wenn die gewählte Datenstruktur Gruppenstufen enthält. Die Beschränkung auf eine Gruppe bewirkt, dass nur die Felder dieser Gruppe mit Elementen aus dem komplexen Typ verknüpft werden können.

Die Beschränkung auf eine Gruppe ist notwendig, wenn bei der Generierung von Diensten eine mit Occurs definierte Gruppe innerhalb einer Datenstruktur aus einer Liste von Web-Elementen bestückt werden soll. Dadurch wird nicht für jeden Eintrag in der Liste ein neuer Satz in dem TAA-Objekt angelegt, sondern lediglich der nächste Eintrag in der Occurs-Gruppe im aktuellen Objektsatz bestückt.

Elemente verknüpfen

Es können nur Elemente, die auf einem einfachen Webdatentyp basieren, mit Datenelementen aus der Datenstruktur verknüpft werden.

Wenn Sie auf ein Element des Webdatentypes klicken, werden in dem Bereich „Eigenschaften“ Informationen zu dem Typ des Elements angezeigt. Um eine neue Element-Verknüpfung zu erstellen, ziehen Sie das Elemente aus dem Webdatentyp auf das zu verknüpfende Feld in der TAA-Datenstruktur.

publedge_m_mapping.jpg

Wenn Sie auf ein Element klicken, welches eine Instanz eines komplexen Datentyps ist, und für den Typ zu der gewählten Datenstruktur bereits eine Verknüpfung existiert, so werden beim Aufklappen des betreffenden Typs im Baum „Webdatentyp“ dessen Verbindungslinien einzeln sichtbar. Diese Verknüpfung kann hier nicht bearbeitet werden, sondern nur bei dem untergeordneten Typ selbst.

Nicht verknüpfte Elemente werden bei der Generierung nicht bestückt.

Besonderheiten

Bei der Verknüpfung von Timestamp Felder mit Elemente von Typ xs:String wird für deren Inhalt das allgemeine AL-Timestamp-Format verwendet, wie es z.B. auch in COBOL oder für Timestamp Offset benutzt wird.

Verknüpfung von untergeordnetem komplexem Typ

Elemente, die in einem Basistyp definiert sind, sind in der Liste grau dargestellt. Eine Verknüpfung hierfür muss in dem jeweiligen Basistyp vorgenommen werden. Auch für Elemente, die auf einem komplexen Typ basieren, muss die Verknüpfung an dem jeweiligen Typ vorgenommen werden. Sie können jedoch auswählen, welche von ggf. mehreren dort verfügbaren Verknüpfungen für diese Nutzung gelten soll.

Die Datenstrukturen, für die an diesem Datentyp bereits Verknüpfungen existieren, werden in der Combobox „Datenstruktur“ aufgelistet. Wenn Sie eine Verknüpfung zu einer anderen Datenstruktur benötigen, muss diese an dem betreffenden Typ definiert werden.

Wenn für den untergeordneten Typ keine Verknüpfung existiert, ist die Gruppe „Verknüpfung“ disabled.

Default besagt, dass für Elemente aus dem untergeordneten Typ dieselbe Datenstruktur verwendet wird wie für den aktuellen Typ. Wenn für diese Datenstruktur an dem untergeordneten Typ keine Verknüpfung vorhanden ist, ist „Default“ nicht möglich, sondern nur „Verlinkt“. Verlinkt bedeutet, dass anhand von Bedingungen entschieden wird, mit welcher Datenstruktur der untergeordnete Typ verknüpft wird. Anhand der Bedingungen, die in der Liste hinzugefügt werden können, kann festgelegt werden, welcher Eintrag aus der hier gewählten Datenstruktur zu dem Eintrag aus der Default-Datenstruktur gehört.ie Verknüpfung zu der gewählten Datenstruktur als Default verwendet wird, oder nur wenn bestimmte Bedingungen zutreffen (verlinkt). Dabei wird jeweils ein einfaches Element aus dem komplexen Typ mit einem Datenelement aus der Datenstruktur verglichen.

Eine Bedingung kann über das Kontextmenü hinzugefügt oder entfernt werden.

Zum Bearbeiten einer Bedingung doppelklicken Sie in die entsprechende Spalte der Liste, und wählen Sie das zu vergleichende Element aus. Als Vergleichsoperation ist zur Zeit nur Equals möglich.

Beispiel: Eine komplexer Typ enthält sowohl Partnerdaten als auch eine Liste von Vertragsdaten zu diesem Partner. Die Partnerdaten werden in der Struktur PARTNER-LISTE übergeben. Für den komplexen Typ Adresse existiert eine Verknüpfung zu derselben Datenstruktur, die für den aktuellen Typ verwendet wird. Für die Liste von Vertragsdaten wird eine Verknüpfung zu der Struktur VERTRAGDATEN angelegt, wobei das Feld KNR-NR in VERTRAGSDATEN gleich dem Feld PRS-ID-NR in PARTNER-LISTE sein muss.

publedge_m_submapping.jpg

Parameter-Verknüpfung

Bei der Parameter-Verknüpfung wird festgelegt, welches Element aus dem komplexen Typ mit welchem Feld aus welchem Parameterobjekt verknüpft werden soll. Parameter-Verknüpfung ist nur wirksam für Module, die das betreffende Parameterobjekt in der Schnittstelle für die ausgelöste Operation enthalten.

Parameter-Verknüpfung kann anstelle der Datenstruktur-Verknüpfung für komplexe Typen verwendet werden, allerdings ist die Nutzung des Typs dann auf Dienste beschränkt, in denen die entsprechenden Parameterobjekte zur Verfügung stehen.

Sie können das zu verknüpfende Parameterobjekt aus allen bekannten Parameterobjekten auswählen. Wenn bei der Generierung eines Dienstes, der diesen Webdatentyp verwendet, ein angegebenes Parameterobjekt nicht zur Verfügung steht, werden beim Generieren Warnungen ausgegeben.

publedge_m_parmmapping.jpg

Wenn es sich bei einem Element innerhalb des komplexen Typs um einen einfachen Webdatentyp handelt, können Sie die Verknüpfung zu einem Datenstrukturfeld direkt in der Liste vornehmen. Die in dem gewählten Parameterobjekt verfügbaren Datenelemente werden in einer Combobox zur Auswahl gestellt. Hierbei wird zur Zeit nicht überprüft, ob der Datentyp des gewählten Datenelements zu dem Typ des Web-Elementes passt.

Wenn es sich bei dem Element um einen komplexen Webdatentyp handelt, muss die Verknüpfung an dem Webdatentyp beschrieben werden.

Leere Verknüpfung

Dies ist der Default für Listentypen. Es bedeutet, dass für den Listentyp eine Klammer erzeugt wird, innerhalb derer die Inhalte des aufgelisteten Typs gemäß dessen Verknüpfung abgearbeitet werden. Es sind hier zu keine weiteren Angaben möglich.

Für andere Typen bewirkt „Leer“, dass leere Elemente erzeugt werden. Es erfolgt keine Bestückung von Elementen bzw. Feldern.

Keine Verknüpfung

Die Auswahl Keine besagt, dass keine Verknüpfung vorgenommen werden kann. Wenn der Generator auf Typnutzungen trifft, für die „keine“ Verknüpfung angegeben ist, führt dies zum Fehler. Diese Typen sind damit für Dienste, für die eine Verknüpfung mit einem TAA-Modul erzeugt werden soll, nicht nutzbar.

Verknüpfungsprobleme

Da in <Typ> für das inline Element <Elementname> ein Basistyp (<Typ>) angegeben ist, kann keine TAA-Verknüpfung erstellt werden.
Der angegebene Typ basiert auf einem anderen Typ; dies kann angegeben sein durch die Angabe Basistyp bei einem komplexen oder einfachen Typ, oder es kann sich um einen Typ handeln, der inline erweitert wurde. Wenn der Typ inline um weitere Element ergänzt wurde, können Sie die Meldung vermeiden, indem Sie den erweiterten Typ durch eine Inline-Gruppe ersetzen und den Typ als ein Bestandteil davon angeben. Die an dem vorgenommenen Erweiterungen werden dann zusätzliche Element an der Inline-Gruppe.

Da <Typ> als abstrakt definiert ist, kann keine TAA-Verknüpfung erstellt werden.
Verknüpfungen von abstrakten Typen sind zur Zeit nicht möglich.

1)
Es werden hier die generierten Datenstrukturen verwendet, die mit ihren Kurznamen aufgelistet werden