Events Codeunit

Das Anveo Mobile App stellt die Codeunit ACF App Events in Dynamics zur Verfügung, an die alle eingehenden Datenänderungen während der Synchronisation von mobilen Geräten gesendet werden. In dieser Codeunit können Sie festlegen, was mit Datenänderungen von mobilen Benutzern geschehen soll. Erkennen und lösen Sie hier Datenkonflikte, falls zwei Benutzer aufgrund von Offlinefähigkeiten denselben Datensatz geändert haben. Darüber hinaus können Sie individuellen C/AL-Code ausführen. Dieser Unterabschnitt beschreibt seine Merkmale.

Globale Eigenschaften

Die Codeunit stellt einen großen Satz von globalen Variablen zur Verfügung. Je nachdem, welche Funktion ausgeführt wird, werden die Variablen mit Werten gesetzt. Welche Variablen gesetzt sind, sehen Sie in der ersten Kommentarzeile jeder Funktion.

RecRef

Diese Variable enthält den Datensatz des Dynamics einschließlich aller Felder. Es wurde zuvor mit GET(Primary Key) aus der SQL-Datenbank abgerufen. Es ist dasjenige, das in dieser Codeunit geändert werden soll. RecRef ist die wichtigste Variable, mit der Sie Ihre Änderungen setzen können – mit oder ohne Änderung der eingehenden Daten.
In dieser Codeunit legen Sie fest, welche Daten von einem in DeviceRecRef gespeicherten mobilen Gerät an Ihr RecRef übertragen werden sollen. Schritt für Schritt können Sie Ihre Werte in RecRef einstellen, bis sie später mit INSERT oder MODIFY in Ihre SQL-Datenbank zurückgeschrieben werden.

DeviceRecRef

Aufzeichnung des mobilen Gerätes. Sie enthält nur Daten von Feldern, die in Synchronisationspaketen für den aktuellen Benutzer enthalten sind. Dieses RecordRef ist eine Datenquelle, um Werte in RecRef einzustellen.

xDeviceRecRef

Vorheriger Datensatz des mobilen Geräts. Sie enthält nur Daten von Feldern, die in Synchronisationspaketen für den aktuellen Benutzer enthalten sind. Dieser RecordRef enthält die Daten, bevor der Benutzer oder Anveo Script Änderungen an der mobilen Vorrichtung vorgenommen hat.

Dies ist sehr wichtig, um Datenkonflikte zu erkennen: Durch den Vergleich von RecRef. und xDeviceRecRef Sie erhalten die Information, wenn zwei Personen gleichzeitig die gleichen Daten geändert haben. In RecRef erhalten Sie den aktuellen Wert von Dynamics, in xDeviceRecRef sehen Sie den Datensatz, bevor er in der App geändert wurde. Wenn sie sich unterscheiden, hat der Benutzer möglicherweise beschlossen, Werte für alte Daten zu ändern.
Für jede Tabelle und jedes Feld können Sie entscheiden, ob Sie Werte von Feldern vergleichen möchten und welche Felder zum Vergleichen einbezogen werden sollen – einige Felder oder alle Felder des Datensatzes.

CalledBy

Diese Eigenschaft gibt Ihnen die Information, ob ein Wert in der Benutzeroberfläche oder durch Anveo Script geändert wurde.
Optionswerte sind: Benutzer, Skript.

Sie können dies für das Feld Sell-to Name in der Tabelle Sales Header verwenden: Eine von Anveo Scripte vorgenommene Änderung muss von Ihrem mobilen Tabellen-Trigger stammen und kann ignoriert werden, da C/AL-Code in Dynamics dasselbe tut. Änderungen in der Benutzeroberfläche durch den Benutzer sind jedoch individuelle Änderungen, die akzeptiert werden müssen.

NAVAction

Für INSERT, MODIFY und DELETE definiert der Wert NAVAction, ob eingehende Datenänderungen akzeptiert werden sollen und ob die Tabellentrigger OnInsert, OnModify oder OnDelete in Ihrer Dynamics-Tabelle ausgeführt werden sollen. Darüber hinaus können Sie Datenänderungen auf Ihrem mobilen Gerät ablehnen und ein Aktualisierungspaket an das mobile Gerät senden, das die Änderung ablehnt.
Wenn Sie einen Wert auf ein Feld setzen, entscheidet diese Eigenschaft, ob Sie die Änderung akzeptieren und die Funktion VALIDATE in Dynamics ausführen möchten.

CallTrigger

Datenänderungen werden akzeptiert und Dynamics führt seinen Tabellen-Trigger aus.

NoTrigger

Datenänderungen werden akzeptiert, aber es wird kein Tabellen-Trigger im Dynamics ausgeführt.

Ignore

Datenänderungen werden nicht akzeptiert, und es wird keine Ablehnung an das mobile Gerät gesendet. In diesem Fall müssen Sie auf die Datenkonsistenz zwischen Dynamics und dem mobilen Gerät achten.

Reject

Datenänderungen werden nicht akzeptiert und eine Ablehnungsnachricht an die mobile Vorrichtung gesendet.
Wenn Sie eine Löschung eines Datensatzes erhalten haben, wird eine Nachricht zur Datensatzerstellung an das mobile Gerät gesendet. Bei einem neuen Datensatz wird eine Löschnachricht gesendet. Dadurch wird die Datenkonsistenz gewährleistet.

RemoteAction

In der Funktion OnSetValue können Sie mit der Eigenschaft RemoteAction sehen, ob eine Datenänderung im Anveo-Skript durch SETVALUE oder VALIDATE durchgeführt wurde. Änderungen des Benutzers in der Benutzeroberfläche werden als GÜLTIG gekennzeichnet.

Zum besseren Verständnis der Verarbeitung eingehender Daten empfehlen wir, ein detailliertes Textprotokoll zu aktivieren. Dies geschieht durch die Einrichtung der Protokollierungsstufe in Anveo User auf (weitere Infos hier). Sie erhalten ein detailliertes Schritt-für-Schritt-Protokoll der Datenverarbeitung.

Funktion OnSyncRequest

Diese Funktion wird ausgeführt, bevor der Initialisierungs- und Synchronisierungsprozess ausgeführt wird. Der Parameter IsInit zeigt an, ob es sich um die erste Initialisierung oder eine Synchronisation handelt.

Eine Synchronisation beginnt, nachdem alle eingehenden Daten von der mobilen Vorrichtung verarbeitet wurden.

Funktion OnSetValue

Diese Funktion wird ausgeführt, wenn der Benutzer einen Wert in der Benutzeroberfläche ändert oder Anveo Script die Befehle SETVALUE oder VALIDATE verwendet. Mit dieser Funktion kann entschieden werden, ob eingehende Wertänderungen akzeptiert oder ignoriert werden sollen. Die Option NAVAction wird verwendet, um zu entscheiden, ob der Tabellen-Trigger OnValidate für dieses Feld ausgeführt werden soll.

Funktion OnBeforeInsert

Diese Funktion wird ausgeführt, bevor ein Datensatz in die Dynamics-Datenbank eingefügt wird. Es wird von OnInsertRecord nur zur Strukturierung von Code verwendet.

Funktion OnInsertRecord

Diese Funktion wird ausgeführt, wenn Anveo Script den Befehl Record:INSERT() verwendet. Die Option NAVAction wird verwendet, um zu entscheiden, ob RecRef.INSERT() und sein Tabellentrigger OnInsert am Ende der Funktion ausgeführt werden sollen.

Funktion OnModifyRec

Diese Funktion wird ausgeführt, wenn der Benutzer einen Wert in der Benutzeroberfläche geändert hat oder wenn Anveo Script den Befehl Record:MODIFY() verwendet hat. Die Option NAVAction wird verwendet, um zu entscheiden, ob RecRef.MODIFY() und sein Tabellentrigger OnModify am Ende der Funktion ausgeführt werden soll.

Funktion OnDeleteRec

Diese Funktion wird ausgeführt, wenn Anveo Script den Befehl Record:DELETE() verwendet. Die Option NAVAction wird verwendet, um zu entscheiden, ob RecRef.DELETE() und sein Tabellentrigger OnDelete am Ende der Funktion ausgeführt werden soll.

Funktion PrintReport

Diese Funktion ist dafür verantwortlich, Reportergebnisse als PDF-Dokument zu speichern und über die Tabelle ACF File Repository an den Benutzer zu senden.

Funktion GetMatchedRecRefRef

Diese Funktion ist Teil des mobilen Rufnummernreihenmanagements. Es ist verantwortlich für die Transformation von RecRefs mit Mobilfunk-Nummernreihen in endgültige Nummernserien von Dynamics.

Funktion LanguageIDMapping

Für einige Sprachen ist es erforderlich, dass das mobile Gerät die Windows-Sprache der Tabelle Language in einen anderen Windows-Sprachwert umwandelt.

Funktion SETVALUES/GETVALUES

Diese Funktionen werden intern verwendet, um Werte aus dieser Codeunit zu setzen und zu erhalten.