Verbesserungen bei Mapping-Dokumenten Im Mendix Plattform - Beispiel

Direkt zum Inhalt

Verbesserungen bei Mapping-Dokumenten in Mendix 6

Mapping von Dokumenten in Mendix helfen Ihnen beim Verbinden Ihrer Mendix Apps an andere Systeme wie externe Webdienste. Sie tun dies, indem sie Ihnen helfen, anzugeben, wie zwischen Mendix Objekte und XML, basierend auf einem XML-Schema oder WSDL-Dokument. In Mendix 6.1: Diese Dokumente wurden erheblich verbessert. In diesem Blog erkläre ich, wie Sie dadurch komplexere Situationen bewältigen, die Verwendung von Mapping-Dokumenten vereinfachen und wertvolle Zeit sparen können.

Inhaltsverzeichnis

  1. Der Wert von Mapping-Dokumenten in Mendix
  2. Namensänderungen und Richtung der Pfeile
  3. So verwenden Sie Importzuordnungen
  4. So verwenden Sie Exportzuordnungen
  5. Verbesserter Auswahlbaum zum Auswählen von Elementen
  6. Wichtige weitere Verbesserungen
  7. Fazit

1. Der Wert von Mapping-Dokumenten in Mendix

Mit Mendix Sie können voll funktionsfähige Standalone-Anwendungen entwickeln. Viele reale Anwendungen existieren jedoch nicht im Vakuum und müssen in die Außenwelt integriert werden und mit ihr kommunizieren. Dazu müssen Daten aus Ihrem Mendix app. Weil Mendix und andere Anwendungen andere Domänenmodelle haben, muss ein Format für die Daten vereinbart werden. Eine standardisierte Möglichkeit, ein solches Format für Ihre Daten anzugeben, ist ein XML-Schema (XSD). Dieses Format wird auch im Webdienststandard als Teil einer WSDL-Datei (Web Service Description Language) verwendet. Mendix unterstützt sowohl XML-Schemas als auch WSDLs.

Nachdem Sie ein Format gewählt haben, müssen Sie angeben, wie die Daten in Ihrem Mendix Domäne muss transformiert werden, um diesem Datenformat zu entsprechen. Hier kommen Mapping-Dokumente ins Spiel. Die Festlegung, wie Daten transformiert werden sollen, ist keine leichte Aufgabe. Die Mapping-Dokumente in Mendix sind so konzipiert, dass sie die Transformation durch Visualisierung vereinfachen. Dies ist sehr wichtig, da es den Business-Analysten ermöglicht, die Zuordnungen zu lesen und zu verstehen. Auf diese Weise können sie die Richtigkeit der Zuordnungen überprüfen und die Zuordnungen sogar selbst erstellen. Dies ist entscheidend, da die Business-Analysten diejenigen mit dem Geschäftswissen sind. Wenn jemand anderes die Implementierung durchführen muss, können Informationen verloren gehen. Die größte Herausforderung der Integration ist die Semantik, nicht die Syntax.

Ein weiterer Vorteil der Definition von Zuordnungen als separate Einheiten in Mendix ist, dass sie wiederverwendet werden können. Die Wiederverwendung von Zuordnungen spart Zeit und senkt die Kosten. Wenn ein Problem bereits behoben wurde, muss dies nicht noch einmal gemacht werden. Darüber hinaus kann die Wiederverwendung vorhandener Zuordnungen dazu beitragen, Fehler zu vermeiden, da dadurch die Größe Ihres Projekts verringert wird. Je größer das Projekt ist, desto wahrscheinlicher ist es, dass es Fehler enthält. Schließlich sind größere Projekte schwieriger zu verwalten und zu erweitern, sodass dies mehr Zeit in Anspruch nimmt. Die Wiederverwendung von Zuordnungen hält Ihr Projekt kleiner und vermeidet daher diese Probleme.

Schließlich erleichtern Mappings die Arbeit mit großen und komplexen Schnittstellen. Dies gilt bei der erstmaligen Implementierung, insbesondere aber bei der Wartung. Dies ist wichtig, da große und komplexe Schnittstellen in der Unternehmenslandschaft und bei der Integration von ERP-Systemen sehr häufig vorkommen.

In Mendix 6.1 haben wir Mapping-Dokumente verbessert und ihre Nutzung noch einfacher gemacht. In den nächsten Abschnitten gehe ich auf die wichtigsten Änderungen ein.

2. Namensänderungen und Richtung der Pfeile

In früheren Versionen von Mendix Die beiden Arten von Mapping-Dokumenten wurden XML-zu-Domäne- und Domänen-zu-XML-Mapping genannt. Wir haben uns entschieden, sie in Import- und Export-Mapping umzubenennen. Wir haben dies getan, um sofort klarzustellen, ob ein Dokument angibt, wie aus Ihnen ausgehende Daten zu übersetzen sind. Mendix App nach außen (Export) oder Daten von außen in Ihre Mendix app (Import). Um dies noch deutlicher zu machen, haben wir auch die Richtung geändert, in der der Datenfluss gezeichnet wird. Wir haben jetzt die Mendix Domäne auf der linken Seite und die Außenwelt auf der rechten. Aus diesem Grund zeigen die Pfeile bei Exportzuordnungen von links nach rechts und bei Importzuordnungen von rechts nach links. Bisher zeigten die Pfeile immer von links nach rechts. Im weiteren Verlauf dieses Artikels werde ich die Beispielimportzuordnung in Abbildung 1 und die Beispielexportzuordnung in Abbildung 2 verwenden, um die anderen Änderungen in den Zuordnungsdokumenten zu veranschaulichen.

Beispiel für eine Importzuordnung

Abbildung 1. Beispiel einer Importzuordnung

Beispiel für eine Exportzuordnung

Abbildung 2. Beispiel einer Exportzuordnung

3. So verwenden Sie Importzuordnungen

Der Prozess zum Importieren von Daten in Mendix besteht aus drei Schritten:

  1. Erhalten ein Mendix Objekt (erstellen, per Schlüssel oder per Mikrofluss suchen).
  2. Ordnen Sie dem erhaltenen Objekt XML-Attribute zu.
  3. Legen Sie optional die Zuordnung zum übergeordneten Objekt fest.

Die Sichtbarkeit dieser Schritte im Mapping-Dokument wurde verbessert, um das Verständnis und die Konfiguration zu erleichtern. In diesem Abschnitt werde ich dies genauer erläutern.

3.1 So erhalten Sie eine Mendix Betreff

Bei Importmappings zeigen die eingehenden Pfeile nun an, wie man ein Mendix Objekt, das in späteren Schritten verwendet werden soll. In Abbildung 1 können Sie sehen, dass über allen Pfeilen „Neues Objekt erstellen“ steht. Das bedeutet, dass für jedes der Elemente ein neues Mendix Objekt wird erstellt. Anschließend werden die Attribute diesem Mendix Objekt, wie in den Zuordnungsdetails angegeben. Um zu ändern, wie das Mendix Objekt erhalten wird, können Sie auf eines der Zuordnungselemente doppelklicken. Wenn wir beispielsweise auf die Entität „ReceivedClient“ doppelklicken, wird der in Abbildung 3 dargestellte Bildschirm angezeigt.

Import_mapping_edit

Abbildung 3. Zuordnungsdetails für die Entität „ReceivedClient“

Oben auf diesem Bildschirm können Sie festlegen, wie Sie die Mendix Objekt, dem die Attribute im eingehenden XML zugeordnet werden sollen, und was zu tun ist, wenn dies fehlschlägt. Außer „Objekt erstellen“ können Sie „Objekt suchen“ oder „Mikroflow aufrufen“ wählen. Wenn Sie „Objekt suchen“ wählen, müssen Sie auch ein oder mehrere Attribute im Abschnitt „Attribute zuordnen“ als Schlüssel auswählen. Wenn die Zuordnung ausgeführt wird, sucht sie in der Datenbank nach einem Objekt mit den ausgewählten Attributen als Schlüssel. In der Zuordnung wird über dem Pfeil „Nach Schlüssel suchen“ angezeigt, wie in Abbildung 4 dargestellt.

Suche nach Schlüssel

Abbildung 4. Das Objekt wird in dieser Importzuordnung anhand des Schlüssels gefunden

Wenn Sie „Microflow aufrufen“ wählen, wird das Mapping bei der Ausführung den ausgewählten Microflow aufrufen, um den Mendix Objekt. Diese Attribute und übergeordneten Objekte werden an den von Ihnen ausgewählten Mikrofluss übergeben. Beachten Sie, dass die Zuordnung der Attribute in Schritt 2 die Werte der Attribute überschreiben kann, die Sie für das Objekt im Mikrofluss festgelegt haben. In Abbildung 5 können Sie sehen, wie der Pfeil aussieht, wenn Sie „Aufruf per Mikrofluss“ auswählen. Wenn Sie den Mikrofluss auswählen, werden alle Parameter hervorgehoben. In diesem Fall ist dies die übergeordnete Entität „ReceivedOrder“ und alle Attribute des Client-XML-Elements.

Importaufruf per Microflow

Abbildung 5. Die Mendix Das Objekt wird über einen Mikrofluss in diesem Import-Mapping erhalten.

Wir haben es außerdem möglich gemacht, zum Mikrofluss zu navigieren oder die Bezeichnung des Mikroflusses zu ändern, indem Sie mit der rechten Maustaste auf den Pfeil klicken und die Option auswählen, wie in Abbildung 6 gezeigt.

Kontextmenü-Aufruf-Mikroflow

Abbildung 6. Das Kontextmenü von „Microflow aufrufen“

3.2 Mappen Sie XML-Attribute auf das erhaltene Objekt

Wir haben keine Änderungen daran vorgenommen, wie Sie definieren, wie Attribute aus der XML-Zuordnung den Attributen des Mendix Objekt. Dies geschieht immer noch in dem Raster, das unten in Abbildung 3 angezeigt wird. Im Mapping-Dokument selbst haben wir es jedoch deutlicher gemacht. Wenn Sie ein Attribut im XML-Element auswählen, wird das entsprechende Attribut automatisch im Mendix-Objekt ausgewählt und umgekehrt. In Abbildung 7 ist ein Beispiel dafür zu sehen. Das Attribut „dati“ wird im XML-Element Client ausgewählt und das entsprechende Element „dati“ im Mendix Entität 'ReceivedClient' ist ebenfalls ausgewählt. Beachten Sie, dass der Name des Attributs in der Mendix Objekt und XML-Element müssen nicht übereinstimmen.

Importieren von zugeordneten Attributen

Abbildung 7. Die Attributzuordnung wird durch Hervorheben von Attributen angezeigt, die einander zugeordnet sind.

3.3 Zuordnung festlegen

Schließlich müssen Sie für jedes Zuordnungselement entscheiden, ob Sie eine Assoziation zu seinem übergeordneten Element festlegen möchten. Dies geschieht mithilfe des in Abbildung 3 gezeigten Bildschirms mit den Zuordnungsdetails. Wenn Sie sich für die Festlegung einer Assoziation entscheiden, wird diese in die Zuordnung eingezeichnet, siehe beispielsweise Abbildung 1. Wenn Sie sich gegen die Festlegung einer Assoziation entscheiden, wird diese in der Zuordnung einfach weggelassen. In Abbildung 8 habe ich die Assoziation zwischen den Entitäten „ReceivedOrder“ und „ReceivedClient“ weggelassen. Beachten Sie, dass alle Objekte trotzdem erstellt werden. Nur die Assoziation zwischen ihnen wird nicht festgelegt.

Import-Mapping ohne Assoziation

Abbildung 8. Zwischen ReceivedClient und ReceivedOrder ist keine Zuordnung festgelegt.

4. So verwenden Sie Exportzuordnungen

Der Prozess zum Exportieren von Daten aus Mendix besteht aus zwei Schritten:

  1. Erhalten ein Mendix Objekt (durch Assoziation oder durch Mikrofluss).
  2. Ordnen Sie Attribute aus dem erhaltenen Objekt XML zu.

Da der zweite Schritt derselbe ist wie bei Importzuordnungen, werde ich mich darauf konzentrieren, wie wir zeigen, wie ein Objekt erhalten wird. Wenn Sie im Beispiel von Abbildung 2 auf die Entität „Orderlines“ doppelklicken, wird der in Abbildung 9 dargestellte Bildschirm angezeigt.

Details zur Exportzuordnung

Abbildung 9. Zuordnungsdetails Bestellposten

In diesem Bildschirm sehen Sie, dass die Methode auf „Durch Assoziation abrufen“ eingestellt ist. Wenn Sie sich Abbildung 2 ansehen, können Sie tatsächlich sehen, dass zwischen „Orderlines“ und „ReturnListOrderlines“ eine Assoziation namens „Orderlines_InputOrderlinesList“ erstellt wird. Wenn wir stattdessen „Durch Microflow abrufen“ auswählen und einen Microflow auswählen, wird der Microflow wie in Abbildung 10 dargestellt erstellt.

Export-Mapping erhalten durch Microwflow

Abbildung 10. Durch Microflow erhaltene Exportzuordnung

5. Verbesserter Auswahlbaum für ausgewählte Elemente

Bevor Sie definieren, welche XML-Elemente welchen Elementen zugeordnet werden, Mendix Objekte und welche Attribute einander zugeordnet werden, müssen Sie zunächst auswählen, welche Elemente Sie zuordnen möchten. Bei Importzuordnungen können Sie entscheiden, dass Sie an einem großen Teil des empfangenen XML nicht interessiert sind. Bei Exportzuordnungen können Sie nur optionale Elemente weglassen. Optionale Elemente sind Elemente mit einem Mindestvorkommen von 0 (z. B. 0..1 oder 0..*). Um deutlicher zu machen, welche Elemente und Attribute Sie in eine Zuordnung aufnehmen oder weglassen können und welche nicht, wurden Verbesserungen am Bildschirm „Elemente auswählen“ vorgenommen. Um diesen Bildschirm zu öffnen, klicken Sie auf „Elemente auswählen…“ und ein Bildschirm wie in Abbildung 11 wird angezeigt.

Elemente für die Exportzuordnung auswählen

Abbildung 11. Elemente für eine Exportzuordnung auswählen

In diesem Beispiel können Sie sehen, dass einige der Kontrollkästchen deaktiviert sind, während andere aktiviert sind. Wenn ein Kontrollkästchen deaktiviert ist, bedeutet dies, dass der Wert des Kontrollkästchens nicht geändert werden kann. So ist es beispielsweise nicht möglich, das Attribut „bool“ des XML-Elements „Orderlines“ zu deaktivieren, da das XML-Element „Orderlines“ ausgewählt ist und das Attribut „bool“ 1 Mal vorkommt. Ebenso ist es nicht möglich, das Attribut „HighPriority“ des XML-Elements „Order“ auszuwählen (da das XML-Element „Order“ nicht ausgewählt ist). Wie in Abbildung 12 dargestellt, wird Ihnen in einem Tooltip der Grund für die Deaktivierung angezeigt, wenn Sie den Mauszeiger über ein deaktiviertes Kontrollkästchen bewegen.

QuickInfo „Elemente auswählen“

Abbildung 12. Ein Tooltip ist verfügbar, wenn ein Kontrollkästchen deaktiviert ist

6. Wichtige weitere Verbesserungen

Neben den bisher besprochenen Verbesserungen gibt es noch weitere Verbesserungen in den Mapping-Dokumenten. Diese möchte ich euch nicht vorenthalten und gehe deshalb in diesem Abschnitt darauf ein.

6.1 Auto-Map für Export-Mappings

Wenn Sie ein neues Mapping-Dokument erstellen, kann es recht mühsam sein, die XML-Elemente zunächst mit Entitäten, Assoziationen und Attributen zu verbinden. Das ist viel Arbeit, insbesondere wenn das Mapping groß ist und Sie kein vorhandenes Domänenmodell zum Mapping haben. Hier kommt die Hilfsfunktion „Automatisch zuordnen“ ins Spiel. Sie findet oder erstellt Domänenmodell-Entitäten und Assoziationen und fügt sie dem Mapping hinzu, um Ihnen viel manuelle Arbeit abzunehmen. Nachdem Sie die Funktion ausgeführt haben, wird Ihnen ein detaillierter Bericht über die an Ihrem Projekt vorgenommenen Änderungen angezeigt. Bisher war diese Hilfsfunktion nur für Import-Mappings verfügbar. Jetzt ist sie auch für Export-Mappings verfügbar.

6.2 Unterstützung für XML-Vererbung durch Erweiterung

XML-Schemata können eine Vererbungsbeziehung enthalten, indem ein complexType als Erweiterung eines anderen complexType definiert wird. Dies wird als XML-Vererbung bezeichnet. Mendix hat dies schon seit langem teilweise unterstützt, aber mit Version 6.1 wird es vollständig unterstützt. Dies ist wichtig, da einige weit verbreitete Standards XML-Vererbung verwenden (z. B. die ACORD-Standards für elektronische Daten zum elektronischen Austausch von Versicherungsdaten zwischen Handelspartnern). Von nun an müssen Sie in Ihrem Domänenmodell eine ähnliche Vererbungsstruktur zuordnen, wie im XML-Schema definiert. Sie müssen auch entscheiden, welche Untertypen Sie zuordnen möchten. Aufgrund dieser Änderungen können wir jetzt gemischte Listen eines bestimmten übergeordneten Typs in Import- und Exportzuordnungen unterstützen. Weitere Informationen zu dieser Verbesserung finden Sie unter dieser spezielle Blog-Beitrag.

6.3 Leistungsverbesserung im Modellierer

In früheren Versionen konnte der Mapping-Editor bei besonders großen Mappings mit mehr als 100 Elementen langsam werden. Dies ist jetzt deutlich besser und wichtig, da große und komplexe Schnittstellen in der Enterprise-Landschaft und bei der Integration von ERP-Systemen häufig vorkommen.

6.4 Mendix Entitätskontextmenü

Sie können nun auch mit der rechten Maustaste auf das Mendix Entität im Mapping-Dokument, um ein Kontextmenü zu erhalten, wie in Abbildung 13 zu sehen ist. Bisher war dieses Menü nur durch einen Rechtsklick auf das XML-Element verfügbar.

Kontextmenü

Abbildung 13. Kontextmenü für Entitäten in Mapping-Dokumenten

6.5 Zusammenklappbare Zuordnungen

Mapping-Dokumente können aufgrund ihrer tiefen Verschachtelung und der vielen XML-Elemente und -Attribute recht groß werden. In diesem Fall kann es schwierig sein, beim Arbeiten den Überblick über Ihr Mapping zu behalten. Aus diesem Grund haben wir es möglich gemacht, Teile Ihres Mappings auszublenden. Durch das Ausblenden wird ein Teil des Mappings ausgeblendet. Dies ist möglich, indem Sie auf das Minuszeichen unter dem Kompositionssymbol unter den XML-Elementen klicken. Um dies zu veranschaulichen, habe ich in Abbildung 14 alles unter dem XML-Element „Client“ ausgeblendet.

Zusammenfassende Zuordnungen

Abbildung 14. Einen Teil einer Zuordnung ausblenden

6.6 Optionaler Parameter „Importmapping“

Für Exportmappings muss immer ein Eingabeparameter definiert sein: der Mendix Objekt, das exportiert werden muss. Für Importmappings ist die Definition eines Eingabeparameters optional. Wenn Sie sich dafür entscheiden, einen für ein Mapping zu definieren, können Sie das übergebene Objekt auf zwei Arten verwenden. Erstens können Sie es als Parameter verwenden, wenn Sie einen Mikrofluss aufrufen. Zweitens können Sie eine Zuordnung zwischen den Objekten festlegen, die durch das Mapping erstellt werden, und der Parameterentität. In früheren Versionen des Modelers war diese Funktionalität eher im Eigenschaftenraster versteckt, aber jetzt wird ein Platzhalter für den Parameter gezeichnet und eine Entität kann wie für jeden anderen Entitätsplatzhalter dorthin gezogen werden. Ein Beispiel für einen solchen Platzhalter für eine optionale Parameterentität finden Sie in der oberen linken Ecke von Abbildung 1.

6.7 Attribut-Mappings zwischen XML-Strings und Mendix Aufzählungen

Bei Attributzuordnungen können Sie nur zwischen kompatiblen Datentypen zuordnen. Datentypen sind kompatibel, wenn der Datentyp, von dem Sie zuordnen, anstelle des Datentyps verwendet werden kann, zu dem Sie zuordnen. Wenn Sie zwischen inkompatiblen Attributen zuordnen möchten, müssen Sie einen Konvertierungsmikroflow erstellen. Wenn Sie zuvor zwischen XML-Attributen vom Typ Zeichenfolge und Mendix Aufzählungen benötigen Sie einen solchen Mikrofluss. Da Sie dies für jede Aufzählung tun müssen, die Sie zuordnen möchten, könnten Sie gezwungen sein, eine große Anzahl dieser Mikroflüsse zu erstellen. Dies wurde behoben und XML-Attribute vom Typ String können jetzt zugeordnet werden auf Mendix Aufzählungen direkt.

7. Fazit

In diesem Blogbeitrag habe ich einen Überblick über die Verbesserungen des Mapping-Dokuments gegeben, die wir für Mendix 6.1. Ich hoffe, Sie sind genauso gespannt wie wir, diese auszuprobieren. Wir glauben, dass es für Sie viel einfacher sein wird, selbst Zuordnungen vorzunehmen und die Zuordnungen anderer zu verstehen. Gefallen Ihnen die Änderungen? Haben Sie noch weiteres Feedback? Informieren Sie uns bitte.

Wählen Sie Ihre Sprache