====== Mappings bearbeiten ======
Um eine detaillierte Darstellung eines Mappings zu erhalten, doppelklicken Sie einfach in der [[transformation:mappings:start#mapping_liste|Mappings-Liste]] auf das zu bearbeitende Mapping, daraufhin öffnet sich die [[transformation:mappings:anlegen:tab_properties|Detailansicht]]. In dieser Ansicht((Per default sehen Sie den [[transformation:mappings:anlegen:tab_properties|]].)) können sie das Mapping bearbeiten.
{{:images:mappingdefinition.png?900|}}
===== Kontextmenüs =====
Je nach Mappingelement bietet das Kontextmenü unterschiedliche Möglichkeiten an:
- {{:images:folder.png|}} auf Regelsätzen können weitere Regelsätze oder Regeln hinzugefügt werden. Regelsätze können deaktiviert oder aktiviert werden.:\\ {{:images:kontextmenu_mapping_regelsatz.png|}}\\
- {{:images:note_pinned.png|}}auf Regeln können weitere Regelsätze, Regeln oder Selektoren hinzugefügt werden. Regeln können deaktiviert oder aktiviert werden.:\\ {{:images:kontextmenu_mapping_regel.png|}}\\
- {{:images:document_page_number.png|}}auf Selektoren können nur weitere Selektoren hinzugefügt werden. Selektoren können **nicht** deaktiviert oder aktiviert werden.:\\ {{:images:kontextmenu_mapping_selektor.png|}}\\
- Bezeichner von Quell oder Zielobjekten können kopiert werden:\\ {{:images:kontextmenu_mapping_objektdefinition.png|}}\\
- Arrays von Quell oder Zielobjekten können im Tab Objektinstanz oder im Tab Abfrageergebnis Aufgeklappt werden:\\ {{:images:kontextmenu_mapping_objektinstanz.png|}}\\
===== Regelsätze =====
Regelsätze sind eine Sammlungen von Mappingregeln welche innerhalb des **Regelsatzes** ausgeführt werden und zwar so oft wie die XPath-Selektion im Regelsatz auf die Quellinstanz angewendet werden kann.
Das **Ziel** eines Regelsatzes muss immer ein Datenelement vom Typ **ArrayList** sein.
Regelsätze müssen aber nicht zwingend ein **Ziel** bedienen sondern werden auch gebraucht um die Hierarchie der Datenquelle mit der Hierarchie des Datenziels zu harmonisieren.
Regelsätze erkennt man am {{:images:folder.png|}} Symbol.
==== Regelsatz bearbeiten ====
Wählen Sie den zu bearbeitenden Regelsatz durch linken Mausklick aus((Die Zeile wird dann grau hervorgehoben.)). Sie können nun, rechts neben dem {{:images:folder.png|}} Symbol, den Namen des Regelsatzes, die Datenquelle((Hier können XPath-Selektionen, Mappingfunktionen, Konstanten oder Kombinationen aus allen eingetragen werden.)) oder das Ziel bearbeiten.\\
Regelsätze und deren Eigenschaften können auch in den [[transformation:mappings:anlegen:extended_properties|]] bearbeitet werden siehe: [[transformation:mappings:anlegen:extended_properties#element_eigenschaften_von_mapping_regelsaetzen|Regelsatz]].
==== Regelsatz hinzufügen ====
Um einen neuen Regelsatz hinzuzufügen verwenden Sie das Kontextmenü, welches per rechtem Mausklick auf einem bestehenden Regelsatz((Bei Neuanlage eines Mappings wird per default immer ein Regelsatz als Root angelegt.)) zur Verfügung steht. Hier wählen Sie **Regelsatz hinzufügen**.
Es wird ein neuer Regelsatz unter der aktuellen Cursor-Position eingefügt und mit dem Prefix **rs_**((rs = Regelsatz)) benannt.
Geben Sie dem Regelsatz einen Namen((z.B. **rs_Header**.)). Klicken Sie hierfür auf das erste Feld rechts neben dem Symbol {{:images:folder.png|}} und drücken Sie anschließend die Enter-Taste\\
Klicken Sie dann im Bereich **Quelle** auf das Feld rechts neben dem Namensfeld und markieren Sie nun links neben der Mappingtabelle ein //Source-Object//, z.B. **ORDHDR**. Halten Sie die linke Maustaste gedrückt und ziehen Sie das ORDHDR-Objekt in das Feld **Selection**. Nach dem Loslassen der linken Maustaste wird der zugehörige Wert mit den richtigen Pfadangaben in das Qellfeld des Regelsatzes eingetragen.\\
Falls im Zielobjekt eine passende Datenstruktur ist, verfahren Sie auf die gleiche Weise mit dem **ZIEL** und ziehen sie die passende Struktur den in das **Ziel-Feld**((Im gezeigten Beispiel ist dies nicht notwendig, da das Datenziel **Oder** bereits im Wurzel-Regelsatz angetriggert wird.)).
{{:images:mapping_bearbeiten_regelsatz_anlegen.gif|}}
==== Regelsatz hinzufügen per Drag&Drop ====
Beim Erzeugen neuer Mappings bietet es sich an komplette Strukturen von Datenquelle oder Datenziel im Mapping abzubilden. Dies kann rasch per[[wpde>Drag_and_Drop|Drag&Drop]] Methode realisiert werden. Hierzu wird die gewünschte Struktur einfach per Drag&Drop im Mapping abgelegt. Siehe Demonstration:
{{:images:mapping_bearbeiten_regelsatz_perdragndrop_anlegen.gif|}}
Jetzt können die halbfertigen Regeln schnell auf die Datenziele gemappt werden.
===== Regeln =====
Mapping-**Regeln** verknüpfen i.d.R. ein eindeutiges Datenelement des Quellobjekts mit einem eindeutigen Datenelement im Zielobjekt.
Der Ausdruck in der Spalte **Quelle**((Hier können XPath-Selektionen, Mappingfunktionen, Konstanten oder Kombinationen aus allen eingetragen werden.)) bestimmt dabei welcher Wert in das Ziel gemappt wird.
Regeln sind durch das Symbol {{:images:note_pinned.png|}} gekennzeichnet.
==== Regel hinzufügen ====
Um eine neue Regel hinzuzufügen verwenden Sie das Kontextmenü, welches per rechtem Mausklick im mittleren Bereich zur Verfügung steht. Hier wählen Sie **Regel hinzufügen**.
Es wird eine neue Regel unter der aktuellen Cursor-Position eingefügt und mit dem Prefix **r_**((r = Regel)) benannt.
Rechtsklicken Sie auf den Regelsatz und wählen Sie **Regel hinzufügen** aus dem Kontextmenü aus um dem Regelsatz eine **Regel** hinzuzufügen. Klicken Sie rechts neben das Symbol {{:images:note_pinned.png|}} und geben Sie der Regel einen für Sie sprechenden Namen.
Ziehen sie das DocumentNumber-Objekt in das **Quell** Feld. Klappen Sie dann, die ORDER(im Zielobjekt) auf, wählen das Feld **DocNumber** und ziehen Sie es ins **Ziel** Feld. Beachten sie hierbei, dass unten rechts eine Beschreibung zu den jeweiligen Feldern angezeigt wird.
==== Regel hinzufügen per Drag&Drop ====
Alternativ kann auch eine [[wpde>Drag_and_Drop|Drag&Drop]] Methode angewendet werden um neue Regeln anzulegen. Dabei wählen Sie das gewünschte Datenelement in Quellobjekt aus und ziehen es per Drag&Drop auf das entsprechende Datenelement in dem Zielobjekt. Die Regel wird als neues Element innerhalb des aktuell ausgewählten Regelsatzes bzw. unter der aktuell markierten Regel eingefügt.
Siehe folgende Demonstration:\\
{{:images:mapping_bearbeiten_regel_anlegen.gif|}}
Schließen Sie Ihre Eingaben durch einen Klick auf die Schaltfläche {{:images:floppy_disk.png|}} ab, damit Ihre Änderungen in die eBiss Datenbank übernommen werden.\\
==== Regel bearbeiten ====
Wählen Sie die zu bearbeitende Regel durch linken Mausklick aus((Die Zeile wird dann grau hervorgehoben.)). Sie können nun den Namen der Regel, die Datenquelle((Hier können XPath-Selektionen, Mappingfunktionen, Konstanten oder Kombinationen aus allen eingetragen werden.)) oder das Ziel bearbeiten.\\
Regeln und deren Eigenschaften können auch in den [[transformation:mappings:anlegen:extended_properties|]] bearbeitet werden siehe: [[transformation:mappings:anlegen:extended_properties#element_eigenschaften_von_mapping_regeln|Regel]]
===== Selektoren =====
Selektoren bieten die Möglichkeit **alternativer Selektionen** an. Dies kommt in folgenden Situationen zum Einsatz:
- Ein Zielelement soll aus alternativ aus verschiedenen Quellelementen mit dem ersten Treffer bedient werden((Selektionsmodus = FirstResult)).
- Ein Zielelement soll aus verschiedenen Quellelementen zusammengesetzt werden((Selektionsmodus = Concatenate)).
Die Funktionsweise der **Selektoren** wird in den **erweiterten Eigenschaften**, unter dem Tab **Element-Eigenschaften**, beim **Selektionsmodus**, der übergeordneten **Regel** eingestellt.
Der Selektionsmodus bietet folgende Möglichkeiten an:
- Concatenate((Verbindet alle Ergebnisse zu einem String.))
- Evaluate all
- FirstResult((default Wert))
- None((deaktiviert alle eventuell vorhandenen Selektoren))
Selektoren sind durch das Symbol {{:images:document_page_number.png|}} gekennzeichnet.
==== Selektor hinzufügen ====
Um einen alternativen **Selektor** hinzuzufügen verwenden Sie das Kontextmenü, welches per rechtem Mausklick auf einer **Regel** zur Verfügung steht. Hier wählen Sie **Selektor hinzufügen**. Es wird ein neuer **Selektor** unter der aktuellen **Regel** eingefügt((Selektoren haben keine Namen.)).
==== Selektor bearbeiten ====
Um einen **Selektor** zu bearbeiten, klicken Sie auf die entsprechende Zeile und ändern die Datenquelle((Hier können XPath-Selektionen, Mappingfunktionen, Konstanten oder Kombinationen aus allen eingetragen werden.)). in der Spalte **Quelle**.\\
Selektoren und deren Eigenschaften können auch in den [[transformation:mappings:anlegen:extended_properties|]] bearbeitet werden siehe: [[transformation:mappings:anlegen:extended_properties#element_eigenschaften_von_mapping_selektoren|Selektor]]
===== Kopieren und Einfügen =====
**Copy&Paste**: Alle Mappingelemente können per Tastaturshortcut kopiert((STRG+c oder via Kontextmenü)) und an anderer Stelle wieder eingefügt ((STRG+v oder via Kontextmenü)) werden. Hierbei muss allerdings die Zeile(n) als ganzes markiert sein. Mehrfachselektion ist auch möglich.
===== Verschieben =====
Alle Mappingelemente können per **Drag & Drop** an anderer Stelle verschoben werden. Wenn während des Verschiebens auch die Umschalttaste gedrückt wird ändert sich der Cursor und das zu verschiebende Element wird oberhalb des markierten Elements in das Mapping eingefügt. Ein Loslassen über einer Regel lässt das zu verschiebende Element unterhalb der Regel einfügen. Lässt man das verschobene Element über einem Regelsatz fallen, so wird es als letztes "Kind" in dem Regelsatz eingefügt.
===== Erweiterte Eigenschaften =====
Um Regeln bzw. Regelsätze besser editieren zu können, kann auch innerhalb der Erweiterte Eigenschaften editiert werden. Klicken Sie auf das Symbol {{:images:windows.png|}} um die [[transformation:mappings:anlegen:extended_properties#tab_element_eigenschaften|Element Eigenschaften]] zu öffnen und danach auf das Element das bearbeitet werden soll, daraufhin erhalten Sie eine detaillierte Auflistung mit allen Eigenschaften.\\
{{:images:sign_warning.png?nolink|}}**Hinweis:** Generell sind die Mappings beliebig erweiterbar. Durch die **Selektoren** können zusätzliche Selektionen vorgenommen und die Zuweisungen über XPath beliebig verwendet werden. Auch direkte Zuweisungen von Werten aus den Mappings in die Felder des Target-Objects sind möglich oder das Einspeichern von Variablen die anderweitig verwendet werden.\\
===== XPath Abfrage =====
Die XPath Abfrage bietet die Möglichkeit einzelne [[wpde>XPath]] Ausdrücke und [[transformation:mappings:funktionen:start|]] direkt auf die Quellobjektinstanz anzuwenden. Hierzu kann man einen XPath Ausdruck in das Textfeld eingeben und die Abfrage mit {{images:eye.png?nolink}}((Die Schaltfläche {{images:eye.png?nolink}} **Apply Query**, rechts neben dem **XPath Abfrage** Textfeld.)) ausführen. Das Resultat der Abfrage wird dann im linken Bereich im Tab **Abfrageergebnis** angezeigt.
{{:images:sign_warning.png?nolink|}}**Hinweis:** bei der Eingabe von XPath Selektionen muss dieser immer mit einem doppelten Forward-Slash beginnen.
**Beispiele:**
//Order/Items[1]
//SG_7[1]/SG_5[1]/PIA[@DE_4347='1' and DG_C212/@DE_7143 ='LN']/DG_C212/@DE_7140
Translate(//@Wert[1], '1;2;3;4', 'A;B;C;D')
===== Suche im Mapping =====
In umfangreichen Mappings ist es mitunter schwierig bestimmte Inhalte rasch aufzufinden. Darum bietet eBiss 3 ein Suchfunktion an.
Die Hilfe kann mit dem Tastatur Kurzbefehl [Strg]+[f] gestartet werden. Es erscheint dann ein kleines Dialogfenster:\\
{{:images:suche_im_mapping.png}}
Hier kann man den Suchbegriff eingeben und mit dem Button **123** die Vorkommnisse des Suchbegriffs zählen.
Gibt es Treffer, dann kann mit den Schaltfächen **Nächstes Ergebnis** und **Vorheriges Ergebnis** durch die Treffer getoggelt werden.
Es wird dann zur Zeile gesprungen, in welcher der Suchbegriff gefunden wurde. Hierbei ist es empfehlenswert alle Regelsätze zuvor zu expandieren.
{{:images:sign_warning.png?nolink|}}**Hinweis:** Die Suche macht keine Unterscheidung zwischen Groß- und Kleinschreibung.
===== Datenelement Eigenschaften =====
Datenelemente die **mandatory** sind werden in der Objektdefinition mit einem roten ***** gekennzeichnet.
Weitere Eigenschaften sind im unteren Teil der Objektdefinition zu sehen und zeigen die Eigenschaften des per Mausklick oder Cursor Tasten ausgewählten Datenelementes an.
Zusätzlich werden die in der Objektklasse spezifizierten **Frame-[[transformation:mappings:objektdefinition:attribute|Attribute]]** ausgewiesen. Anahnd dier Information kann zweifelsfrei und ohne Umwege erkannt welche Werte im **Nachrichten-Umschlag**((Frame)) zu erwarten sind.
{{:images:mapping_editor_datenelement_eigenschaften.png|}}