Häufig gestellte Fragen / Anveo EDI Connect / Wie Sie eine IF-Bedingung zu Ihrem Mapping hinzufügen können
Diese Seite wurde automatisch übersetzt. Ursprünglich wurde der Inhalt auf Englisch verfasst.

Wie Sie eine IF-Bedingung zu Ihrem Mapping hinzufügen können

Wenn Sie über einige Kenntnisse in einer Programmiersprache verfügen, werden Sie sicherlich die IF-THEN-ELSE-Anweisung kennen: Wenn ein Tabellenfeld oder eine Variable einen bestimmten Wert X hat, dann tun Sie dies, wenn Sie nicht etwas anderes tun. Es ist möglich, dieses Verhalten in einem Mapping zu reproduzieren, es gibt mehrere Möglichkeiten, dies zu tun, und in diesem Artikel wollen wir sie erklären.

Für den ersten Fall nehmen wir an, dass Sie eine gebuchte Verkaufsrechnung exportieren möchten. Sie haben einen Verkaufsrechnungskopf und mehrere Rechnungszeilen. Die Rechnungszeilen enthalten einige Positionen und einige Kommentare über und zwischen den Zeilen. Ohne tief in Ihre Mapping-Struktur einzutauchen, bin ich sicher, dass Sie eine Schleifenzeile für Ihren Verkaufsrechnungskopf und einige Datenmappingzeilen unterhalb der Zeile haben, gefolgt von einer Schleifenzeile für Ihre Vertriebslinien und deren Mappingzeilen:

Verkaufsrechnungskopf
– EDI-Dokument
– Rechnungskopfdaten Mapping-Linie 1
– Rechnungskopfdaten Mapping-Linie 2
– Rechnungskopfdaten Mapping-Linie….
– Verkaufsrechnungszeile
— Rechnungszeile Datenabbildung Zeile 1
— und so weiter…..
Die Bindestriche müssen den Grad der Einrückung aus der Zuordnung angeben.

Die Frage ist: Wie trennt man die Positionszeilen von den Zeilen mit den Kommentaren? Es ist gefährlich anzunehmen, dass die Reihenfolge der Positions- und Kommentarzeilen immer gleich ist, weshalb Sie eine vom Auftrag unabhängige Lösung benötigen.

Die Lösung besteht darin, zwei neue Schleifenzeilen hinzuzufügen, die unterhalb der Verkaufsrechnungszeile eingerückt sind. In dem oben abgebildeten Szenario haben alle Kommentarzeilen den Typ „leer“, alle anderen Zeilen haben einen bestimmten Typ, der die Zeilen unterscheidbar macht. Die erste neue Schleifenzeile ist eine Schleife über die Zeilen-Tabelle der Verkaufsrechnung, mit der gleichen Verknüpfung von Datenelementen und Filtern wie Ihre erste Schleife, aber Sie fügen einen neuen Filter hinzu: Typ=CONST(‚ ‚ ‚). Sie können dies als „Wenn der Zeilentyp der Verkaufsrechnung leer ist“ lesen – Ihr erster Teil der IF-Anweisung!
Nun zum „THEN“-Teil: Alle Mapping-Linien, die unterhalb dieser neuen Zeile eingerückt sind, bilden den „THEN“-Teil und Sie können die Kommentare z.B. in die Tabelle „EDI-Zusatzinformationen“ eintragen, mit allen notwendigen Datenelement-Links und Filtern.

Und was ist mit all den anderen Zeilen mit Ihren Positionen (und Sachkonten und Ressourcen)? Nun, unabhängig von Ihren allgemeinen Exportregeln, die für Ihr Mapping gelten, haben diese Zeilen einen anderen Typ als leer. Das bedeutet, dass Sie eine zweite neue Zeile zu Ihrem Mapping unterhalb der IF-Linie hinzufügen können, mit der gleichen Datenelementverbindung und Filtern wie Ihre erste Schleife, aber jetzt fügen Sie den Filter auf den Typ wie diesen hinzu: Typ=FILTER(0). Sie können es als „wenn der Zeilentyp der Verkaufsrechnung etwas ELSE als leer ist“ lesen – Ihren ELSE-Teil der Abrechnung. In diesem Fall möchten Sie wahrscheinlich einige EDI-Dokumentzeilen anlegen, die die Informationen zu den Positionen (und Ressourcen und Sachkonten) enthalten, so dass Sie die Mappingzeile der EDI-Dokumentzeilen unter dieser anderen Zeile einrücken und die Datenmappingzeilen entsprechend hinzufügen.

Wenn Sie sich dieses Beispiel genauer ansehen möchten, können Sie die Vorlage für den Export gebuchter Verkaufsrechnungen aus dem Assistenten verwenden: Erstellen Sie eine neue leere NAV-Mapping mit Projektcode und -code, führen Sie dann den Assistenten aus der Multifunktionsleiste „Aktion“ über „Erstellungs- und Aktualisierungsassistent ausführen“ aus und wählen Sie die erste Option:


Anstatt die zweite Verkaufsrechnungszeile einzufügen, können Sie auch eine Zeile mit bedingtem Typ eingeben. Gehen wir einen Schritt zurück zur Schleifenzeile „Sales Invoice Line“: Sie durchläuft jede Rechnungszeile, d.h. Jede Rechnungszeile wird nacheinander an das Mapping übergeben. Handelt es sich um eine Kommentarzeile, werden die Informationen in die Tabelle EDI-Zusatzinformationen geschrieben – das heißt, es befindet sich ein Datensatz im Filter.

Mit der bedingten Typzeile können Sie den Vorteil nutzen, dass der oben genannte Filter bei einer Nicht-Kommentarzeile keinen Datensatz findet. Die bedingte Linie kann diesen Fall mit der Funktion „ISEMPTY“ überprüfen. Der Name ist buchstäblich, wenn es keinen Datensatz im Filter der Zeile Kommentar zur Verkaufsrechnung gibt, werden alle Mappingzeilen ausgeführt, die unter der bedingten Zeile eingerückt sind. Hier werden die EDI-Dokumentzeilen geschrieben. Die kompletten Eigenschaften der Mapping-Linie sehen in etwa so aus:

Wenn Sie die Vorlage in ein neues Mapping importiert haben, können Sie die Mapping-Linie „ELSE“ in diese bedingte Linie ändern.

Eine weitere Möglichkeit, eine Bedingung zu erstellen, ist die Verwendung einer Wertumrechnung. Beispielsweise müssen Sie die Mengeneinheitscodes für Ihre Artikel in eine EDIFACT-artige Nachricht exportieren. Es ist sehr wahrscheinlich, dass die Codes in Ihrem NAV-System nicht mit denen übereinstimmen, die in EDIFACT erwartet werden, also müssen Sie sie übersetzen: Wenn der Code „PALLET“ ist, schreiben Sie „PAL“ in die Puffertabelle. Wenn es „PIECE“ ist, dann schreiben Sie „PCE“. Wenn „HOUR“, schreiben Sie „HUR“. Und so weiter.

Sie KÖNNEN die oben beschriebene Filterung verwenden und für jeden Mengeneinheitscode eine Verkaufszeile (Lieferung wahrscheinlich in diesem Fall) unterhalb der ursprünglichen hinzufügen und den entsprechenden Code in die EDI-Dokumentleitung schreiben, aber es ist viel einfacher, eine Wertumrechnung zu verwenden. Jeder „Quell“-Maßeinheit wird eine „Ziel“-Maßeinheit zugeordnet, diese wird in das Zielfeld in der Mapping-Linie geschrieben. Um eine Wertübersetzung einzurichten, lesen Sie bitte den Knowledge Base-Artikel [insert link=““ here]=““]