Prozessdatenänderungen auf dem Gerät
Das gesamte Synchronisationskonzept ist darauf ausgelegt, dass alle Daten, die von der mobilen App an Dynamics übertragen werden, zunächst in einer bestimmten Tabelle, den so genannten Receiving Tasks, gespeichert werden. Diese Tabelle garantiert, dass alle eingehenden Datensätze in strikter chronologischer Reihenfolge verarbeitet werden, so dass keine Daten übersprungen werden oder während des Prozesses verloren gehen.
Diese Methode bietet auch Schutz vor schlechten Internet-Verbindungen. Selbst bei instabilen oder unterbrochenen Verbindungen sorgt das System dafür, dass unvollständige oder verzögerte Datenübertragungen berücksichtigt werden. Die Daten werden erst verarbeitet, wenn alle Datensätze vollständig und erfolgreich von Microsoft Dynamics 365 Business Central empfangen wurden.
Alle vom mobilen Gerät empfangenen Daten werden in genau der gleichen Reihenfolge verarbeitet , in der sie in das Gerät eingegeben wurden. Egal, ob es sich um neu erstellte Datensätze, geänderte Daten oder Löschungen handelt, jede Änderung wird bei der Synchronisation über Web Services an die entsprechenden Dynamics-Tabellen übertragen und übernommen. Dies garantiert die Konsistenz, Integrität und genaue Wiedergabe der Aktionen des mobilen Benutzers’im zentralen ERP-System.
Darüber hinaus dient die TabelleReceiving Tasks als detailliertes Protokoll pro Gerät und bietet eine vollständige Rückverfolgbarkeit, die bestätigt, dass jedes Datenpaket zuverlässig empfangen wurde. Dieser Protokollierungsmechanismus gewährleistet volle Transparenz und Verantwortlichkeit innerhalb des Synchronisierungsprozesses. Es ist wichtig, dass die Benutzer diese Tabelle regelmäßig überwachen, um sicherzustellen, dass während der Datenverarbeitungsphase keine Probleme aufgetreten sind. Etwaige Probleme, die in dieser Phase auftreten, haben nichts mit Übertragungsfehlern zu tun, sondern mit Verarbeitungsschwierigkeiten innerhalb von Business Central, die in einem zweiten Schritt, nach dem Eingang, behandelt werden.
Daher ist der Synchronisationsprozess klar unterteilt: zuerst kommt der Empfang der Daten, dann die Verarbeitung. Wenn während der Verarbeitung Probleme in der Tabelle “ Receiving Tasks auftreten, muss unbedingt überprüft werden , wie Dateneigentum und Verantwortlichkeiten innerhalb des Geschäftsprozesses in der mobilen App definiert sind. Die Anvaigo Mobile App sollte so gestaltet sein, dass diese Eigentumsregeln eindeutig festgelegt und eingehalten werden. Dabei handelt es sich nicht um technische Fragen, sondern vielmehr um Fragen der Prozessgestaltung und der richtigen Konfiguration. Für eine zuverlässige und konsistente Synchronisierung ist es wichtig, dass diese Definitionen richtig eingerichtet sind.
Datenänderungen durch Benutzer
Bei allen Änderungen, die der Benutzer an Karten oder Listen vornimmt, werden in Dynamics die folgenden Befehle ausgeführt: VALIDATE, INSERT(true), MODIFY(true) und DELETE(true). Auf diese Weise wird Ihr Code in Ihren Tabellen ebenfalls ausgeführt.
Aufgrund der Verarbeitung von Daten mit DynamicsWeb Services sind einige Funktionen nicht verfügbar und erfordern möglicherweise einige Änderungen in Ihren Tabellen-Triggern. Weitere Informationen finden Sie hier.
Datenänderungen durch Anvaigo Script
Wenn Sie Anvaigo Script zum Hinzufügen, Ändern oder Löschen von Daten verwenden, können Sie entscheiden, ob Sie Dynamics-Tabellen-Trigger während eines Synchronisierungsprozesses ausführen möchten. Die Verwendung von SETVALUE gegenüber VALIDATE entscheidet, ob Sie den OnValidate-Trigger ausführen wollen, MODIFY(false) gegenüber MODIFY(true) entscheidet, ob Sie den Tabellen-Trigger OnModify ausführen wollen. Dasselbe gilt für OnInsert und OnDelete. Außerdem legen diese Parameter fest, ob Sie Ihre lokalen Anvaigo Mobile App-Trigger ausführen möchten.
[[ Do="" not="" run="" VALIDATE="" trigger.="" Equals="" Rec.Name="" :="" Name="" ]=""]]
Rec:SETVALUE('Name', 'new Name');
[[ Run="" VALIDATE="" trigger.="" Equals="" Rec.VALIDATE(="" Name="" ]=""]]
Rec:VALIDATE('Name', 'new Name');
[[ Do="" not="" run="" OnModify="" trigger.="" Equals="" Rec.MODIFY(false);="" ]=""]]
Rec:MODIFY(false);
[[ Run="" OnModify="" trigger.="" Equals="" Rec.MODIFY(true);="" ]=""]]
Rec:MODIFY(true);