ANVEDI Integration
Die ANVEDI Integration enthält alle öffentlichen API-Aufrufe an das EDI-Modul, die Sie möglicherweise von Ihrem eigenen Code aus aufrufen möchten. Alle Funktionen in dieser Codeunit sollen verwendet werden, wenn Sie direkt eine EDI-Aktion per Code starten wollen.
Allgemeine Konzepte
In diesem Abschnitt werden wir zunächst die Kernbegriffe besprechen, die Sie verstehen sollten, um die Code-Beispiele lesen zu können.
Benutzer-Transaktionen
Anveo EDI Connect hat ein Konzept namens „Benutzertransaktionen“, das mehrere Datenbanktransaktionen umfassen und mehrere Fehler sammeln kann. Die meisten Aktionen in Anveo EDI Connect erfordern eine offene Benutzertransaktion, um sie auszuführen. Sie können eine Benutzertransaktion durch Aufruf starten:
Der Aufruf von END_USER_TRANSACTION ermöglicht es Ihnen, entweder Fehler anzuzeigen, die aktuelle Datenbanktransaktion abzubrechen oder einen Rückgabewert zu erhalten, unabhängig davon, ob ein Fehler aufgetreten ist. Wir werden das später im Detail besprechen.
BEGIN_USER_TRANSACTION
Startet eine neue Benutzertransaktion. Bitte beachten Sie, dass Sie Aufrufe nur an den Stellen in das EDI-Modul integrieren, an denen ein COMMIT stattfinden kann. In vielen Fällen wird das Modul alle Datenbankänderungen festschreiben, bevor die EDI-Logik ausgeführt wird. Ziehen Sie auch in Betracht, die Daten nur zu markieren und einen Hintergrundjob zur Ausführung der EDI-Logik zu verwenden.
Der angegebene Text wird dem Benutzer angezeigt, wenn ein Wartedialog geöffnet wird, da der Vorgang Zeit benötigt.
Sie sollten einen Aufruf von BEGIN_USER_TRANSACTION immer mit einem Aufruf von END_USER_TRANSACTION beenden.
SHOWDIALOGS
Mit dieser Funktion können Sie beliebige EDI-Dialoge ausblenden.
Der Parameter gibt an, ob die Dialoge angezeigt werden oder nicht. Ein Aufruf dieser Funktion muss innerhalb einer Benutzertransaktion erfolgen. Diese Funktion wird normalerweise direkt nach BEGIN_USER_TRANSACTION aufgerufen.
ISPROCESSING
Diese Funktion gibt zurück, ob Sie sich innerhalb einer Mapping befinden. Sie können diesen Wert bei der Validierung von Triggern überprüfen, um z.B. ein anderes Verhalten bei der Verarbeitung von EDI-Prozessen zu erreichen. Sie können diesen Wert auch verwenden, um Eingabedialoge nur dann anzuzeigen, wenn Sie nicht gerade EDI verarbeiten.
END_USER_TRANSACTION
Diese Funktion beendet eine Benutzertransaktion.
Wenn bei der Transaktion Fehler aufgetreten sind, zeigen Sie diese in einem Dialog dem Endbenutzer an. Dieser Parameter hat keine Wirkung, wenn GUIALLOWED False ist.
Ob das Modul einen Fehler auslösen und den aktuellen Prozessfluss unterbrechen soll. Der gesamte Code nach dieser Zeile wird nicht ausgeführt, wenn bei der Transaktion ein Fehler aufgetreten ist. Wenn Sie diesen Parameter auf True setzen, wird eine Fehlermeldung angezeigt, dass ein oder mehrere Fehler aufgetreten sind, falls es welche gab. In diesem Fall kann der Benutzer nicht die vollständige Liste der Fehler sehen.
Ein Rückgabewert, unabhängig davon, ob ein Fehler aufgetreten ist oder nicht. Kehrt bei Erfolg True zurück, d.h. es gab keine Fehler; ansonsten False.
Der Rückgabewert war in älteren Versionen des Moduls anders benannt, hatte aber die gleiche Funktion. Der alte Rückgabewertname war falsch, die Funktion gab bei Erfolg immer True zurück.
Arbeit mit Geschäftstransaktionen
RUN_BUSINESSTRANSACTION_JOB
Führt den Datenerfassungsauftrag einer bestimmten Geschäftsvorgangsart aus. Diese muss aus einer Benutzertransaktion heraus aufgerufen werden.
Code des Geschäftstransaktionstyps.
START_BT_WITH_REC
Startet eine neue Geschäftstransaktion für den angegebenen Code und die Datensatz-ID.
RUN_BT_BATCH_JOB
Führt den Batch-Sammelauftrag mit dem angegebenen Namen aus. Diese muss aus einer Benutzertransaktion heraus aufgerufen werden.
Aktionen
Manchmal möchten Sie auf einer Seite eine Schaltfläche zum Starten eines EDI-Prozesses erstellen oder Sie möchten diese z.B. in den Freigabeprozess integrieren. Für diese Fälle können Sie fast alle Aktionen des Moduls aus dem Code heraus ausführen. Bitte beachten Sie, dass EDI-Prozesse in der Regel automatisiert sein und im Hintergrund laufen sollten. Bevor Sie also Aktionen im Code hinzufügen, sollten Sie die Möglichkeit eines Hintergrundjobs als Alternative in Betracht ziehen.
EDI Mapping ausführen
Um ein EDI Mapping auszuführen, müssen wir eine Benutzertransaktion starten. Danach möchten wir vielleicht Daten an das Mapping weitergeben. Wir können dann das Mapping ausführen und das Ergebnis überprüfen, wenn wir die Benutzertransaktion beenden. Die detaillierte Beschreibung der Befehle finden Sie nach dem Codebeispiel.
RESET_TABLEVIEWS
Setzt alle vorhandenen gespeicherten Tabellenansichten zurück. Muss aus einer Benutzertransaktion heraus aufgerufen werden.
SET_TABLEVIEW
Speichert eine Tabellenansicht unter einem angegebenen Namen. Muss aus einer Benutzertransaktion heraus aufgerufen werden.
Ein Code, der den Namen des Filters darstellt. Sie müssen in der EDI Mapping genau denselben Namen angeben, um den Filter abzurufen.
Der Filtertext in Form einer Anveo EDI Connect-Tabellenansicht. Sie sollten nach Möglichkeit die in Microsoft Dynamics NAV 2013R2 eingebaute Funktion GETVIEW verwenden, um die korrekt formatierte Zeichenfolge zu erhalten.
GET_TABLEVIEW
Ruft einen gespeicherten Filter ab. Muss aus einer Benutzertransaktion heraus aufgerufen werden.
RUN
Führen Sie eine oder mehrere EDI-Abbildungen aus. Muss aus einer Benutzertransaktion heraus aufgerufen werden.
Der Code des Projekts oder eine zum Projektcode passende Filterzeichenfolge.
Der Code des Mapping oder eine zum Formatcode passende Filterzeichenfolge.
Der Code des Mapping oder ein Filter, der den gewünschten Mapping entspricht.
Ob mehrere Zuordnungen ausgeführt werden sollen, falls ein Filter angegeben wird. Dies ist eine Sicherheitsfunktion, die verhindert, dass Sie mehr als ein Mapping ausführen.
ob die Nachbearbeitung ausgeführt werden soll. Normalerweise möchten Sie dies auf True setzen.
Ein Filter auf die Nachbearbeitungen. Normalerweise können Sie eine leere Zeichenkette einreichen wollen.
Andere Aktionen
RECEIVE_ALL
Veraltete Funktion. Sie sollten es vermeiden, die allgemeine Funktion aufzurufen, und eine der spezifischeren Funktionen unten aufrufen.
Empfängt alle Kommunikationskanäle. Diese Funktion muss aus einer Benutzertransaktion heraus aufgerufen werden.
RECEIVE_FOLDER
Empfängt die Daten aus dem angegebenen Übertragungsordner oder den Ordnern. Diese Funktion muss aus einer Benutzertransaktion heraus aufgerufen werden.
Der Code des Übertragungsfilters oder eine Filterzeichenfolge auf dem Codefeld.
ob die Nachbearbeitung ausgeführt werden soll. Normalerweise möchten Sie dies auf True setzen.
Ein Filter auf die Nachbearbeitungen. Normalerweise können Sie eine leere Zeichenkette einreichen wollen.
RECEIVE_COMMUNICATIONCHANNEL
Empfängt Daten von dem angegebenen Kommunikationskanal. Diese Funktion muss aus einer Benutzertransaktion heraus aufgerufen werden.
Der Code des Kommunikationskanals oder eine Filterzeichenfolge auf dem Codefeld.
ob die Nachbearbeitung ausgeführt werden soll. Normalerweise möchten Sie dies auf True setzen.
Ein Filter auf die Nachbearbeitungen. Normalerweise können Sie eine leere Zeichenkette einreichen wollen.
SEND_ALL
Veraltete Funktion. Sie sollten es vermeiden, die allgemeine Funktion aufzurufen, und eine der spezifischeren Funktionen unten aufrufen.
Sendet alle Kommunikationskanäle. Diese Funktion muss aus einer Benutzertransaktion heraus aufgerufen werden.
ob die Nachbearbeitung ausgeführt werden soll. Normalerweise möchten Sie dies auf True setzen.
Ein Filter auf die Nachbearbeitungen. Normalerweise können Sie eine leere Zeichenkette einreichen wollen.
SEND_FOLDER
Sendet offene Übertragungen des angegebenen Übertragungsordners. Diese Funktion muss aus einer Benutzertransaktion heraus aufgerufen werden.
Der Code des Übertragungsordners oder eine Filterzeichenfolge auf dem Codefeld.
ob die Nachbearbeitung ausgeführt werden soll. Normalerweise möchten Sie dies auf True setzen.
Ein Filter auf die Nachbearbeitungen. Normalerweise können Sie eine leere Zeichenkette einreichen wollen.
SEND_COMMUNICATIONCHANNEL
Sendet offene Übertragungen des angegebenen Kommunikationskanals. Diese Funktion muss aus einer Benutzertransaktion heraus aufgerufen werden.
Der Code des Kommunikationskanals oder eine Filterzeichenfolge auf dem Codefeld.
ob die Nachbearbeitung ausgeführt werden soll. Normalerweise möchten Sie dies auf True setzen.
Ein Filter auf die Nachbearbeitungen. Normalerweise können Sie eine leere Zeichenkette einreichen wollen.
PROCESS
ob die Nachbearbeitung ausgeführt werden soll. Normalerweise möchten Sie dies auf True setzen.
Ein Filter auf die Nachbearbeitungen. Normalerweise können Sie eine leere Zeichenkette einreichen wollen.
ob nur Nachbearbeitungen aus der aktuellen Benutzertransaktion verarbeitet werden sollen.
Einstellung des Empfängers / Absenders
SET_COMMUNICATION_CHANNEL
Setzt den Kommunikationskanal für den folgenden Mapping innerhalb der Benutzertransaktion.
Der Code des Kommunikationskanals.
SET_RECEIVER_PARTNER
Setzt den Empfängerpartner für den folgenden Mapping innerhalb der Benutzertransaktion.
Der Partnercode des Empfängers.
SET_RECEIVER_IDENTIFICATION
Setzt die Empfänger-Identifikation für den folgenden Mapping innerhalb der Benutzertransaktion.
Die Empfängeridentifikation. Dies ist ein Freitext, der auf bestimmten Kommunikationskanälen eine besondere Bedeutung haben könnte.
SET_SENDER_PARTNER
Setzt den Senderpartner für den folgenden Mapping innerhalb der Benutzertransaktion.
Der Partnercode des Absenders.
SET_SENDER_IDENTIFICATION
Setzt die Absenderkennung für den folgenden Mapping innerhalb der Benutzertransaktion.
Die Empfängeridentifikation. Dies ist ein Freitext, der auf bestimmten Kommunikationskanälen eine besondere Bedeutung haben könnte.
Protokollierung und Fehlerbehandlung
Die folgenden Funktionen können nur während eines laufenden Mapping aufgerufen werden. Diese Funktionen sind für benutzerdefinierte Fehlerbehandlungen aus dem Code heraus gedacht.
LogError
Protokolliert eine Fehlermeldung.
Die Fehlermeldung. Die Ausführung wird nach diesem Aufruf fortgesetzt. Um den Kontrollfluss zu unterbrechen, verwenden Sie die native Funktion ERROR.
LogWarning
Protokolliert eine Warnung.
Der Text der Warnung.
LogInformation
Protokolliert Informationen.
Die zu protokollierenden Informationen.
LogDocumentError
Protokolliert einen Fehler, der zu einem EDI-Dokument gehört. Es gibt eine universellere Funktion namens LogRecIDErrorWithCode.
Die Fehlermeldung.
Das EDI-Dokument, zu dem der Fehler gehört.
LogDocumentWarning
Protokolliert eine Warnung, die zu einem EDI-Dokument gehört. Es gibt eine universellere Funktion namens LogRecIDWarningWithCode.
Die zu protokollierende Warnung.
Das EDI-Dokument, zu dem der Fehler gehört.
LogDocumentInformation
Protokolliert eine Information, die zu einem EDI-Dokument gehört. Es gibt eine universellere Funktion namens LogRecIDInformationWithCode.
Die zu protokollierenden Informationen.
Das EDI-Dokument, zu dem der Fehler gehört.
LogDocumentLineError
Protokolliert einen Fehler, der zu einer EDI-Belegzeile gehört. Es gibt eine allgemeinere Funktion namens LogRecIDErrorWithCode.
Die zu protokollierende Fehlermeldung.
Die EDI-Belegzeile, zu der der Fehler gehört.
LogDocumentLineWarning
Protokolliert eine Warnung, die zu einer EDI-Dokumentenzeile gehört. Es gibt eine allgemeinere Funktion namens LogRecIDWarningWithCode.
Die Warnung, die protokolliert werden sollte.
Die EDI-Belegzeile, zu der der Fehler gehört.
LogDocumentLineInformation
Protokolliert eine Information, die zu einer EDI-Dokumentenzeile gehört. Es gibt eine allgemeinere Funktion namens LogRecIDInformationWithCode.
Die zu protokollierenden Informationen.
Die EDI-Belegzeile, zu der der Fehler gehört.
LogErrorWithCode
Protokolliert einen Fehler mit einem zusätzlichen Fehlercode.
ob der Kontrollfluss unterbrochen oder die Ausführung fortgesetzt werden soll
Die zu protokollierende Fehlermeldung.
Ein Code zur Identifizierung des Fehlers.
LogWarningWithCode
Protokolliert eine Warnung mit einem zusätzlichen Fehlercode.
Die Warnung, die protokolliert werden sollte.
Ein Code zur Identifizierung des Fehlers.
LogInformationWithCode
Protokolliert eine Information mit einem zusätzlichen Fehlercode.
Die Informationen, die protokolliert werden sollten.
Ein Code zur Identifizierung des Fehlers.
LogRecIDErrorWithCode
Protokolliert eine Fehlermeldung, die zu einem bestimmten Datensatz gehören sollte.
Ob der Kontrollfluss unterbrochen oder die Ausführung fortgesetzt werden soll.
Die zu protokollierende Fehlermeldung.
Die Datensatz-ID, zu der der Fehler gehört.
Ein Fehlercode zur Identifizierung des Fehlers.
Ob der Fehler vom Endbenutzer akzeptiert werden kann. Dies erfordert einen nicht leeren Fehlercode.
LogRecIDWarningWithCode
Protokolliert eine Warnung, die zu einem Datensatz gehören sollte.
Die Warnung, die protokolliert werden sollte.
Der Datensatz, zu dem die Warnung gehören soll.
Ein Code zur Identifizierung des Protokolleintrags.
LogRecIDInformationWithCode
Protokolliert eine Information, die zu einem Datensatz gehören sollte.
Die Informationen, die protokolliert werden sollten.
Die Datensatz-ID, zu der die Informationen gehören sollten.
Ein Code zur Identifizierung des Protokolleintrags.