Elaborazione delle modifiche dei dati sul dispositivo
L’intero concetto di sincronizzazione è progettato per garantire che tutti i dati trasmessi dall’applicazione mobile a Dynamics siano prima memorizzati in una tabella designata, nota come Receiving Tasks. Questa tabella garantisce che tutti i record in arrivo vengano elaborati in ordine strettamente cronologico, assicurando che nessun dato venga saltato o perso durante il processo.
Questo metodo offre anche la possibilità di resistere alla scarsa connettività a Internet. Anche in caso di connessioni instabili o interrotte, il sistema assicura che i trasferimenti di dati incompleti o ritardati siano tenuti in considerazione. I dati vengono elaborati solo quando tutti i record sono stati ricevuti completamente e con successo da Microsoft Dynamics 365 Business Central.
Tutti i dati ricevuti dal dispositivo mobile vengono elaborati esattamente nello stesso ordine in cui sono stati inseriti nel dispositivo. Che si tratti di nuovi record, di dati modificati o di cancellazioni, ogni modifica viene trasmessa e applicata alle tabelle Dynamics corrispondenti utilizzando i servizi Web durante la sincronizzazione. Questo garantisce la coerenza, l’integrità e l’accuratezza delle azioni dell’utente mobile’all’interno del sistema ERP centrale.
Inoltre, la tabella dei Receiving Tasks funge da registro dettagliato per ogni dispositivo, fornendo una tracciabilità completa che conferma che ogni pacchetto di dati è stato ricevuto in modo affidabile. Questo meccanismo di registrazione garantisce piena trasparenza e responsabilità nel processo di sincronizzazione. È fondamentale che gli utenti controllino regolarmente questa tabella per verificare che non si siano verificati problemi durante la fase di elaborazione dei dati. Gli eventuali problemi che si verificano in questa fase non sono legati a difetti di trasmissione, ma piuttosto a difficoltà di elaborazione all’interno di Business Central, che vengono gestite in una seconda fase, dopo la ricezione.
Pertanto, il processo di sincronizzazione è chiaramente diviso: prima viene la ricezione dei dati, poi l’elaborazione. Se durante l’elaborazione compaiono problemi nella tabella Receiving Tasks, è essenziale rivedere il modo in cui la proprietà dei dati e le responsabilità sono definite all’interno del processo aziendale sull’applicazione mobile. L’App mobile di Anvaigo deve essere progettata in modo tale che queste regole di proprietà siano chiaramente stabilite e rispettate. Non si tratta di questioni tecniche, ma piuttosto di questioni di progettazione del processo e di corretta configurazione. La corretta impostazione di queste definizioni è fondamentale per una sincronizzazione affidabile e coerente.
Modifiche dei dati per utente
Tutte le modifiche effettuate dall’utente su schede o elenchi eseguono i seguenti comandi in Dynamics: VALIDATE, INSERT(true), MODIFY(true) e DELETE(true). In questo modo, anche il codice delle tabelle verrà eseguito.
A causa dell’elaborazione dei dati tramite DynamicsWeb Services, alcune funzioni non sono disponibili e potrebbero richiedere alcune modifiche ai trigger delle tabelle. Maggiori informazioni qui.
Modifiche dei dati da parte di Anvaigo Script
Se si utilizza Anvaigo Script per l’aggiunta, la modifica o l’eliminazione dei dati, si può decidere se eseguire i trigger delle tabelle Dynamics durante un processo di sincronizzazione. L’uso di SETVALUE rispetto a VALIDATE decide se si vuole eseguire il OnValidate, MODIFY(false) rispetto a MODIFY(true) decide se si vuole eseguire il trigger OnModify della tabella. Lo stesso vale per OnInsert e OnDelete. Inoltre, questi parametri definiscono se si desidera eseguire i Trigger Anvaigo Mobile App locali.
[[ 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);