Tag Archivio per: #Business Central

9Ways | Extra Accounting

E’ noto a tutti che la contabilità generale debba conformarsi a disposizioni normative previste dal legislatore sia per la redazione del Bilancio d’esercizio, sia per la corretta tenuta dei libri civilistici e fiscali.
Non sussiste una simile obbligatorietà per la contabilità analitica ed industriale che può svilupparsi su sistemi di rilevazione extra contabile e su strumenti di raccolta ed elaborazione di dati aziendali senza “preoccuparsi” costantemente del concetto di partita doppia sui cui si fonda la contabilità generale.
Tuttavia, ciò che diventa necessario o quanto meno auspicabile, è una convergenza tra le “due contabilità” in modo da confrontare sempre gli stessi dati, anche se osservati da prospettive diverse.
Tutti i moderni ERP si basano appunto su questo principio, ma quello che fa la differenza è il modo in cui sono stati progettati e configurati per ottenere questo risultato.
Business Central, ad esempio, utilizza la logica del “Sistema Patrimoniale” come unico sistema integrato di rilevazione di Reddito e Patrimonio ed include sia la contabilità generale, sia quella analitica in un unico sistema di conti. Il sistema patrimoniale produce però un’esplosione di scritture contabili, poiché il risultato finale è rappresentato dalla somma di singole transazioni di natura civilistica ma anche gestionale.
Pe queste motivazioni, in Italia, il modello anglosassone è poco utilizzato e si preferisce utilizzare il “Sistema Reddituale” in modo da confrontare principalmente i costi ed i ricavi di esercizio.
Trovano spazio in questo approccio la rilevazione di componenti stimati e congetturati (es rimanenze, accantonamenti, ammortamenti) per la determinazione del risultato di esercizio, ma anche per la redazione di bilanci infrannuali di competenza.

Come si colloca in questo contesto l’app Extra Accouting?

L’Extra Accounting è stato sviluppato con l’obiettivo di soddisfare le esigenze delle aziende italiane che attuano la contabilità analitica in un modo più snello rispetto al modello anglosassone su cui è basato Business Central.
L’app consente infatti di gestire:

  • scritture extra contabili che non confluisco nel libro giornale;
  • generazione automatica di scritture di rettifica ed integrazione di fine periodo (ratei, risconti, fatture da emettere e da ricevere);
  • ammortamenti infrannuali;
  • situazioni contabili di competenza con focus su valori actual (effettivi e simulati), budget e scostamenti;
  • ed ancora molto altro…

Scopri la soluzione su AppSource Microsoft


9Ways | Extra Accounting

9Ways Extra Accounting for Microsoft Business Central

🚀 Siamo entusiasti di annunciare il lancio della nostra ultima innovazione certificata Microsoft: 9Ways Extra Accounting per Microsoft Business Central! 🌐

Far quadrare il bilancio non è mai stato così facile! Scopri 9Ways Extra Accounting e redigi bilanci infra annuali grazie al calcolo automatico delle competenze.

Scopri la soluzione su AppSource Microsoft


9Ways | La mia prima Model Driven App

Una guida introduttiva all’implementazione di app su Power Apps

Creare la vostra prima model-driven app su Power Apps è un’impresa senza dubbio entusiasmante che apre un mondo di possibilità per ottimizzare i processi aziendali e aumentare la produttività attraverso uno strumento complesso ma intuitivo e dalle estese potenzialità. In questo articolo verrà condivisa una guida all’implementazione di una model-driven app basata su una prima esperienza personale di creazione di un app di questo tipo ripercorrendone le fasi cardinali: dalla comprensione dei fondamenti allo sviluppo pratico e strutturato del data model, dalla progettazione dell’interfaccia utente all’implementazione della logica di business, fino al rilascio e application maintenance.

Introduzione alle Model-Driven Power App

La base indispensabile da cui partire è la conoscenza del prodotto utilizzato per realizzare il nostro progetto. Costruito sulla base di Microsoft Power Platform, Power Apps consente alle organizzazioni di semplificare le operazioni, migliorare il coinvolgimento dei clienti e promuovere la crescita aziendale attraverso una piattaforma unificata. Fornisce strumenti per la creazione di applicazioni personalizzate, l’automazione dei processi, l’analisi dei dati e l’integrazione con altri servizi Microsoft e di terze parti.

Sono disponibili due tipi distinti di Power Apps all’interno della Microsoft Power Platform, ciascuno dei quali si rivolge a casi d’uso e approcci di sviluppo diversi: model-driven e canvas. Le app model-driven sono incentrate su entità di dati e componenti precostituiti all’interno della piattaforma, offrendo un approccio strutturato allo sviluppo delle applicazioni. Questo framework semplifica le attività di sviluppo ed è ideale per la creazione di applicazioni aziendali che richiedono strutture di dati e flussi di lavoro standardizzati. Le app canvas, invece, offrono una maggiore flessibilità nella progettazione, consentendo agli sviluppatori di creare interfacce utente e flussi di lavoro personalizzati partendo da zero. Se le model-driven app sono data-first e process focused, le canvas app si possono definire task and screen focused. In questo articolo si approfondirà il processo di implementazione di app appartenenti alla prima tipologia, ossia model-driven.

Fase di analisi

Il secondo step consiste nella comprensione approfondita dei requisiti di progetto. L’identificazione degli obiettivi chiave, delle parti interessate, dei vari flussi e processi permette di realizzare un design logico dell’applicazione perfettamente allineato ai requisiti.

Una volta quindi identificati i requisiti di business, è essenziale definire l’ambito e gli obiettivi del progetto Power Apps. Si tratta di delineare le caratteristiche e le funzionalità che l’applicazione includerà, oltre a stabilire obiettivi chiari e criteri di successo al fine di avere una visione chiara e comprensiva del progetto. Questo step risulta chiaramente fondamentale perché assicura la qualità e buon riuscita del prodotto da realizzare.

Data Modeling e progettazione delle entità

Con una chiara comprensione dei requisiti, è ora possibile passare alla fase di data modeling. Ciò comporta l’identificazione delle entità di dati rilevanti e dei loro attributi, nonché la definizione delle relazioni tra le stesse entità, organizzando la struttura dei dati in modo logico e intuitivo. Il modello dati deve inoltre essere concepito in modo tale da essere flessibile per eventuali cambiamenti futuri e nuove funzionalità e regole di business. E’ consigliabile, in un primo momento, tracciare il modello dati su carta in modo da chiarirne la struttura e individuare eventuali modifiche o aggiunte da fare prima di passare alla sua implementazione in Power Apps, qui infatti, eventuali modifiche comporterebbero più passaggi, a volte anche l’eliminazione e la ricreazione di intere entità e relazioni.
Power Apps offre una vasta gamma di entità standard che possono essere personalizzate per soddisfare specifiche esigenze di business. Le entità standard sono predefinite dalla piattaforma e coprono scenari aziendali comuni come contatti, account e opportunità. Sfruttando queste entità come elementi costitutivi, si traccia la struttura dei dati necessaria per l’applicazione. Si creano inoltre entità personalizzate, ove necessario, per gestire attributi e relazioni di dati unici. Le relazioni tra entità definiscono il modo in cui le entità dei dati sono collegate tra loro, stabilendo dipendenze e associazioni tra i record.

Progettazione dell’interfaccia utente

La progettazione di un’interfaccia utente (UI) intuitiva è fondamentale per il successo di qualsiasi applicazione. Nel caso delle model-driven app, l’interfaccia utente viene automaticamente generata in base al modello di dati sottostante. Tuttavia, le opzioni di personalizzazione abbondano, consentendo la creazione di viste, form e dashboard personalizzate. Lo scopo è quello di concentrarsi sulla creazione di un’esperienza utente fluida, senza interruzioni, organizzando gli elementi in modo logico e ottimizzando i percorsi di navigazione.
Per progettare e personalizzare form, viste e dashboard è necessario conoscere le caratteristiche e le particolarità di questi elementi. Le form sono utilizzate per acquisire e visualizzare i dati, mentre le viste forniscono diverse prospettive sui dati, come elenchi o griglie. Le dashboard offrono una panoramica di alto livello delle metriche e delle informazioni principali, vengono utilizzate per monitorare le prestazioni e i progressi.
Anche la personalizzazione della navigazione è importante in quanto svolge un ruolo cruciale nel guidare gli utenti attraverso l’applicazione e nel facilitare l’interazione con le diverse caratteristiche e funzionalità. Per ottimizzare l’esperienza dell’utente e semplificare l’accesso ai contenuti rilevanti si agisce quindi anche sui menu di navigazione, sui pulsanti e sui collegamenti.

Implementazione della logica di business

L’implementazione della logica di business all’interno dell’app comporta la configurazione di processi, flussi di lavoro e regole di business. Power Apps offre una serie di strumenti per automatizzare i processi aziendali, tra cui Cloud Flow Power Automate e Workflow che possono essere utilizzati per definire flussi di lavoro di approvazione, l’invio di notifiche automatiche, l’attivazione di azioni basate su eventi specifici e regole di convalida dei dati, garantendo l’integrità dei dati e l’efficienza dei processi minimizzando gli errori.

Integrazione con sistemi esterni

L’integrazione di dati provenienti da fonti esterne, ad esempio Microsoft Dynamics 365 Business Central, attraverso connettori e API arricchisce le funzionalità dell’app e fornisce agli utenti informazioni complete in modo manuale o automatizzato.

Test e validazione

Una fase di test accurati è essenziale per identificare e correggere eventuali problemi prima di rilasciare l’app in produzione. Questa fase garantisce che l’app funzioni come previsto e soddisfi i requisiti specificati. Devono essere identificati gli scenari di test, creati quindi i casi di test e infine l’app deve essere validata rispetto ai criteri predefiniti. Si tratta di un processo iterativo.

Rilascio, formazione degli utenti e maintenance

A seguito dell’esito positivo dei test, si può procedere con il rilascio in produzione dell’app. L’app risulterà quindi disponibile agli utenti finali che possono anche essere formati per un corretto utilizzo del prodotto. Il nostro percorso, però, non finisce con la consegna dell’app, ma procede con le attività di maintenance: vengono raccolti i feedback degli utenti e implementate nuove funzionalità. Vengono inoltre monitorate le metriche di utilizzo e di prestazioni per identificare le tendenze, individuare le aree di miglioramento e prendere decisioni basate sui dati per migliorare l’efficacia dell’app.

Conclusione!

Siamo dunque arrivati al termine di questa breve guida introduttiva all’implementazione di model-driven app. Creare la prima model-driven app su Power Apps è un’esperienza sfidante, ma gratificante e a tutto tondo in quanto si utilizza uno strumento che permette di tradurre requisiti di business in una soluzione tangibile e fruibile. Attraverso una pianificazione, una progettazione e un’implementazione meticolose, è possibile sviluppare con successo applicazioni che semplificano i processi di business e che permettono agli utenti di svolgere le loro attività in modo più efficiente.
Questa prima esperienza insegna lezioni preziose sul processo di sviluppo, sulla modellazione dei dati e sul design della user experience secondo le funzionalità di Power Apps, aprendo la strada allo sviluppo di nuove applicazioni sempre più ottimizzate ed efficienti grazie all’impiego di tutte le potenzialità che Power Apps ha da offrire. Mentre le aziende continuano ad abbracciare la trasformazione digitale, il ruolo di questo strumento per promuovere l’innovazione e la produttività non potrà che crescere di importanza.


Luisa Comisso
Junior Consultant


Scopri maggiori dettagli sulla soluzione

9Ways Electronics Docs

9Ways Electronic Docs for Microsoft Business Central

🚀 Siamo entusiasti di annunciare il lancio della nostra ultima innovazione certificata Microsoft: 9Ways Electronic Docs per Microsoft Business Central! 🌐

Da BC al sistema di interscambio (SDI) in un batter di ciglio.
Scopri 9Ways Electronic Docs la soluzione pensata per la gestione della fatturazione elettronica e facilmente integrabile con qualsiasi provider.

Scopri la soluzione su AppSource Microsoft


9Ways Extendend Procurement for Microsoft Business Central

🚀 Siamo entusiasti di annunciare il lancio della nostra ultima innovazione certificata Microsoft: 9Ways Extendend Procurement per Microsoft Business Central! 🌐

Dimenticati pure della carta e scopri come favorire l’automazione dei processi ed avere una maggiore tracciabilità dei flussi attraverso la standardizzazione delle procedure ed il miglioramento della comunicazione e collaborazione tra i diversi attori coinvolti nel ciclo passivo grazie all’Extended Procurement.

Scopri la soluzione su AppSource Microsoft


Il primo passo è un efficiente monitoraggio del processo di acquisto. L’azienda deve sapere chi acquista, per quale importo, per quale scopo e da chi.
In secondo luogo, è fondamentale chiedersi qual è il budget che si ha a disposizione per concludere una trattativa con il fornitore e chi, in azienda, può e deve assumersi la responsabilità di approvare l’iter di acquisto.

Ma quali sono gli strumenti che possono favorire l’automazione dei processi, dare maggiore visibilità e tracciabilità ai flussi garantendo una standardizzazione delle procedure ed un miglioramento della comunicazione e collaborazione tra i diversi attori coinvolti nel ciclo passivo?

La risposta è semplice: digitalizzare il processo di acquisto utilizzando l’app 9Ways Extended Procurement, soluzione certificata per Business Central.

Digitalizzazione di una richiesta di acquisto:

Processo di acquisto tradizionale:

Senza digitalizzazione, il ciclo di acquisto parte sempre da un addetto preposto all’approvvigionamento che sceglie i prodotti da un catalogo, spesso anche cartaceo.

Successivamente viene creata e stampata una richiesta di acquisto per essere poi inviata via e-mail al superiore. A quel punto, una volta concessa l’autorizzazione, la richiesta viene indirizzata all’ufficio approvvigionamento, che verifica il prezzo prima di generare l’ordine di acquisto. Per importi significativi, spesso è richiesta una seconda approvazione da parte del responsabile di budget.

infine, l’ordine di acquisto deve essere firmato dal responsabile degli acquisti per poi essere inviato per posta elettronica al fornitore.

Tutti questi passaggi causano perdite di tempo ed erano fonte di numerosi errori.

Processo di acquisto digitale:

Le cose cambiano notevolmente ricorrendo ad un processo di approvvigionamento digitale che parte dalla creazione di una richiesta di acquisto.
La richiesta di acquisto può innanzitutto essere creata direttamente dal soggetto richiedente e, se necessario, essere completata dall’ente gestore sottostante.

Il processo di approvazione non è cartaceo ma si basa su un workflow di approvazione basato su natura e tipologia di beni acquistati, l’importo della richiesta di acquisto, budget di spesa per quel centro di costo.

Alla richiesta possono essere legati pdf, schede tecniche dei prodotti, visualizzabili da chiunque ne abbia l’autorizzazione.
Una volta selezionati i fornitori, si può creare un catalogo personalizzato contenente i prodotti e i servizi accompagnati da un’accurata descrizione, dalle caratteristiche ai prezzi, dai tempi di consegna alle condizioni commerciali pattuite.

Più richieste di acquisto possono confluire all’interno di un unico ordine di acquisto in modo da ottimizzare i flussi di approvvigionamento e facilitare la riconciliazione delle fatture ricevute dai fornitori.

E se l’azienda dispone già di uno strumento per la raccolta di richieste di acquisto?
Nessun problema, l’app 9Ways Extended Procurement è predisposta per interagire con il vasto ecosistema di connettori SaaS previsti nell’offerta di Microsoft.


Giovanni Botta
Team leader ERP

 

Se vuoi maggiori informazioni

Dalla versione Business Central 2023 Wave 2 è stata introdotta una nuova funzionalità che facilita l’utente nella gestione delle scorte di magazzino di un articolo e relativo inventario.

La funzionalità “Consenti rettifica magazzino”, è attivabile o disattivabile nel Setup Magazzino.
Per tutti gli ambienti Business Central SaaS migrati alla nuova versione sarà di default già abilitata.

Una volta attivata, nell’anagrafica articolo comparirà una nuova azione “Rettifica magazzino”.

Selezionando la funzionalità, il sistema provvede ad aprire una paginetta in cui, per l’articolo selezionato, viene visualizzata la relativa giacenza attuale per ogni magazzino presente in Business Central.
Da questa paginetta l’utente ha la possibilità di indicare, attraverso l’apposita colonna “Nuovo inventario”, la giacenza attuale, per articolo-ubicazione, riscontrata fisicamente dall’operatore. Di default tale colonna è valorizzata con la quantità risultante in Business Central.
Se la quantità in magazzino del sistema è differente rispetto alla quantità rilevata e inserita dall’utente, il sistema mostrerà nella colonna “Qtà da rettificare” la relativa differenza.

Infine, cliccando sul pulsante “OK”, in caso di presenza di quantità da rettificare, il sistema provvederà automaticamente alla creazione e registrazione delle rettifiche di magazzino necessarie (rettifica positiva o negativa).

La medesima pagina risulta accessibile anche dal pulsantino (“”) posizionato accanto al campo “Inventario” in anagrafica articolo.

Questo strumento risulta molto vantaggioso e utile per chi ha una gestione del magazzino basilare e semplice, con gestione della giacenza articoli “a quantità”.

Chiaramente l’utilizzo di questa funzionalità è sconsigliato per tutti gli articoli che hanno attiva la tracciabilità articolo (lotto/seriale/collo) e per i magazzini che hanno una gestione a warehouse, ovvero con le collocazioni. La giacenza mostrata dalla funzionalità è “semplificata”, con la sola indicazione delle quantità a giacenza per articolo-ubicazione, senza una suddivisione per tracciabilità e/o collocazione e, di conseguenza, anche le rettifiche effettuate dal sistema sono semplicemente “a quantità” per articolo-ubicazione. In relazione a ciò, nei casi di gestione avanzata del magazzino o l’utilizzo della tracciabilità articolo, è consigliabile utilizzare altri strumenti messi a disposizione dal sistema per la conta inventariale.

Indipendentemente dalla gestione del magazzino adottata, questo strumento risulta comunque estremamente utile per avere un visione generale della quantità a giacenza per magazzino.


Marica Piazzalunga
PM & Consultant

 

Se vuoi maggiori informazioni

Si tratta di una nuova funzionalità messa a disposizione dallo standard in “Public Preview” dalla versione Business Central 2023 Wave 1 e successivamente integrata e disponibile dalla versione Business Central Wave 2.

La modalità di analisi rapida consente di analizzare i dati direttamente dalle pagine di Business Central, senza eseguire eventuale reportistica e senza switchare in altre applicazioni esterne al gestionale, per esempio Excel.
Fornisce una modalità interattiva e versatile per calcolare, sommare ed esaminare i dati presenti in Business Central. Anziché eseguire report usando filtri e opzioni, è possibile aggiungere multipli “tab” che rappresentano task o visualizzazioni (views) differenti dei dati. Esempi possono essere “Statistiche di vendita”, “Analisi di magazzino”, “Follow up articoli” o qualsiasi altra view. La funzionalità è disponibile in qualsiasi pagina di Business Central di tipo “lista”, ovvero una qualsiasi pagina che mostra un elenco di dati (per esempio movimenti contabili, lista ordini, lista articoli…).

Di seguito un breve esempio delle potenzialità di tale strumento, sicuramente molto apprezzato da chi effettua statistiche o semplicemente effettua estrazioni in Excel per raggruppamento e analisi dati.

Aprendo la pagina dei movimenti contabili articolo, in alto all’interno della barra d’azione è presente il pulsante “Analizza”.

Attivando la modalità di analisi, i dati vengono aperti in un’esperienza ottimizzata per l’analisi del dato. In questa esperienza la “normale” barra di azione viene sostituita con una barra speciale della modalità di analisi.


  1. Rappresenta l’area dei dati, dove vengono mostrate le righe e colonne e dove i dati vengono raggruppati.

    È similare all’area relativa al foglio di lavoro in Excel. In caso di somme, comparirà anche una riga relativa ai sotto totali di ogni singolo gruppo.

    Tramite un apposito pulsante è possibile spostare le colonne, bloccarle (il cosiddetto “Freeze Pane”), ridimensionarle, applicare dei filtri o effettuare direttamente un raggruppamento per tale colonna.
    Inoltre, è sempre possibile provvedere all’esportazione in Excel dei dati analizzati.

  2. Rappresenta la barra di riepilogo.

    Di default vengono mostrati i dati relative alle righe presenti nell’analisi e al numero di righe eventualmente filtrate. Oltre a ciò, se si seleziona un set di record tramite un campo numerico o decimale (per esempio il campo “Quantità”), la barra mostra anche uno specchietto relativo alla somma, media, valore minimo e valore massimo per quel campo e per i record selezionati.

  3. La sezione “Colonne” consente di effettuare il raggruppamento dei dati sulla base di uno o più campi, in relazione a quelli disponibili.

    Trascinando per esempio la colonna “Nr. Articolo” nella sezione “Gruppi di righe”, il sistema provvederà a raggruppare i dati per appunto il codice. In aggiunta, il sistema provvederà a mostrare in automatico, per ogni raggruppamento, la somma relativa a ogni colonna numerica o decimale presente nella visualizzazione. È possibile poi anche esplodere ogni singolo raggruppamento per vederne i dettagli. Nella sezione “Valori” vengono mostrate le colonne per cui il sistema ha provveduto ad effettuare la somma. Da qui è possibile escludere determinate colonne o modificare anche la tipologia di calcolo (per esempio da somma a media).

    Una nota importante riguarda i campi date. Per ogni campo data presente nella pagina visualizzata, sono disponibili in aggiunta dei singoli campi che consentono all’utente di effettuare raggruppamenti per anno, trimestre o mese. Per esempio, per il campo “Data di registrazione” sono disponibili altri 3 campi, Anno Data di registrazione, Trimestre Data di registrazione e Mese Data di registrazione, che rispettivamente forniscono la possibilità di raggruppare i dati per anno, trimestre o mese. Tali campi possono essere inseriti anche nella visualizzazione dell’area dati stessa.

    Il pulsante disponibile “Modalità pivot” consente di visualizzare i dati raggruppati appunto come il formato Pivot in Excel, senza che vi sia la possibilità, per esempio, di esplosione del dati e andando a rimuovere dalla visualizzazione tutti quelli che sono i campi “superflui”, lasciando esclusivamente a video i campi di raggruppamento e i campi oggetto di calcolo nella sezione “Valori”.

    Infine, tramite questa sezione è possibile includere o escludere eventuali colonne dalla visualizzazione.

  4. La sezione “Filtri Analisi” fornisce semplicemente la possibilità di applicare filtri alla visualizzazione.

    Per ciascun campo disponibile (per esempio la possibilità di filtrare i movimenti contabili articolo per Data Registrazione.
    Nota importante: se l’utente provvede ad applicare dei filtri alla pagina prima di aprire la modalità di analisi, il sistema terrà conto dei filtri precedentemente applicati, senza doverli re-inserire.

  5. La quinta e ultima sezione rappresenta l’area “Tabs”.

    L’area “Tabs”, che consente di salvare qualsiasi visualizzazione e configurazione creata (Analisi), di modo da poterla riconsultare e utilizzare in qualsiasi momento, senza doverla ricreare e rigenerare.

    Per ogni analisi è possibile procedere con la sua duplicazione, cancellazione oppure rinomina.
    Per esempio, nell’immagine di cui sotto sono state create e salvate 3 tipologie di analisi: la prima con raggruppamento dati per codice articolo, la seconda con raggruppamento dati per ubicazione e la terza rappresenta un’analisi più strutturata relativa alle vendite in modalità Pivot.

Questa funzionalità rappresenta, quindi, un importante e potente strumento di analisi del dato rapida che lo standard Business Central ha deciso di mettere a disposizione dell’utente affinché quest’ultimo rimanga all’interno del gestionale, senza che debba, per esempio, spostarsi su Excel e senza la necessità di richiedere ogni volta delle reportistiche aggiuntive al partner di riferimento.


Marica Piazzalunga
PM & Consultant

 

Se vuoi maggiori informazioni

Ma effettivamente quando le nostre modifiche vengono salvate sul database?

Stavo facendo formazione ad un ragazzo che inizia a muoversi ora su Business Central e gli stavo spiegando le basi di inserimento e modifica dati sul database. Mentre lo facevo mi sono reso conto che, nel corso degli anni, si sono accumulati n livelli di complessità che hanno reso il salvataggio di un dato non esattamente una operazione che avviene in un solo punto e che, volendo tenere conto anche degli eventi sottoscrivibili, la risposta può essere molto articolata.

Perciò, visto che mi era stato chiesto di buttare giù due righe per il blog ho pensato che potesse essere un argomento utile da ripassare.
Per prima cosa va fatta una importante distinzione nell’affrontare l’argomento ovvero di quale versione di Business Central si stia parlando e che feature siano attive nella gestione funzionalità.

Nel caro vecchio Navision e nelle prime versioni di Business Central, infatti il dato veniva salvato all’uscita dalla pagina dove il record veniva modificato o allo spostamento su un record successivo. Per qualcosa come due decenni questa è stata una regola sacra di cui tenere conto. Tutti gli eventi legati alla modifica di un scattavano solo in quel momento.

Nell’ottobre del 2022 però, Microsoft ha introdotto un cambiamento radicale nella gestione del salvataggio dati su Business Central, una funzionalità che ha chiamato SAVE AS YOU TYPE.

Business Central salva immediatamente le modifiche ai singoli campi non appena si esce dal campo o si imposta lo stato attivo su un altro elemento della pagina, invece di salvare solo alla chiusura della pagina. Le modifiche vengono salvate nel database senza alcun impatto evidente sulle prestazioni.

Questa modifica ovviamente, ha stravolto dei flussi che erano attivi da anni e anni per moltissimi flussi ed ha avuto un impatto così dirompente che Microsoft ha dovuto rendere disabilitabile la funzionalità e addirittura non renderla attiva di default sugli ambienti preesistenti onde evitare problematiche non previste.

Aggiornamento: questa funzionalità viene controllata in Gestione funzionalità e potrebbe essere necessaria l’attivazione da parte dell’amministratore, poiché è disattivata per impostazione predefinita in tutti gli ambienti aggiornati al secondo ciclo di rilascio del 2022. In questo modo amministratori e partner hanno un maggiore controllo.


Tenendo a mente questa variazione, per spiegare bene il flusso di modifica di un dato ho creato una tabella molto semplice:

Un intero campo come chiave primaria e tre campi A B e C con il solo scopo di verificare il comportamento su campi multipli.

Quando si crea una nuova tabella c’è subito a disposizione un trigger di modifica:

Il codice all’intero di questa funzionalità viene eseguito solo se la modifica viene effettuata da una pagina o se il comando MODIFY viene eseguito con il parametro TRUE.

La tabella è estendibile e nella sua estensione sono definibili tre trigger aggiuntivi:

Creando una pagina editabile associata alla tabella stessa c’è la possibilità di avere un trigger:

il codice all’interno di questo trigger viene eseguito solo se la modifica è effettuata dall’interno di quella pagina.

Se la pagina è estendibile nella sua estensione è possibile aggiungere un ulteriore trigger:

il codice all’interno di questo trigger viene eseguito solo se la modifica è effettuata dall’interno di quella pagina.

È poi possibile sottoscrivere da una codeunit gli eventi onbefore:

e onafter:

È interessante notare come questi due eventi vengano cmq sempre eseguiti ma uno dei parametri (runtrigger) sia legato appunto al valore passato al comando MODIFY.

È poi possibile sottoscrivere l’evento modify sulla pagina specifica associata al record:

il codice in questo evento viene eseguito solo se la modifica avviene dall’interno della pagina.
A questi eventi sottoscritti si possono teoricamente aggiungere altri due eventi pubblicati in quella che era la vecchia codeunit 1 è che ora è stata scorporata in più codeunit.

In particolare, nella GlobalTriggerManagement si possono sottoscrivere:

Perchè questi due trigger scattino è necessario che la tabella da analizzare sia stata definita nell’evento OnAfterGetDatabaseTableTriggerSetup sempre nella global triggermanagement e va inoltre notato che, dato che il parametro è un generico recref, TUTTI i record configurati in questo modo eseguiranno il codice all’interno ed è quindi auspicabile che il codice verifichi chi è il mittente effettivo dell’esecuzione dell’operazione.

A parità di evento sottoscritto non c’è possibilità di sapere quale sia l’ordine di esecuzione, ma è invece molto chiara la sequenzialità con cui questi eventi vengono triggerati.


Supponiamo di avere una versione di Business Central dove la funzionalità SAVE AS YOU TYPE è disabilitata.

Dato un record

Supponendo di modificarlo dalla pagina in cui abbiamo inserito il trigger facendolo diventare:

La sequenza di esecuzione è la seguente:

Prima viene eseguito il codice sulla pagina, quello nella page extension e quello nella sottoscrizione dell’evento della pagina. Una volta finita la parte relativa alla gui si passa al codice legato alla tabella.

Scattano in sequenza i due eventi onbefore, prima sull’oggetto e poi sulla estensione.

Gli eventi modify prima sull’oggetto e poi sull’estensione.

Solo a questo punto il sistema sta per effettuare la modifica e viene scatenato l’evento globale.

Infine vengono scatenati i due eventi onafter: prima l’estensione e poi sulla tabella, in ordine opposto rispetto a quanto avviene sull’onbefore.

Supponendo di modificare tutti i 3 campi senza lasciare il record o uscire dalla pagina i trigger in esecuzione sarebbero i seguenti:

In pratica il flusso di modifica viene eseguito una sola volta.

Attivando la funzionalità SAVE AS YOU TYPE il sistema si comporta in modo diverso.
Se per la modifica di un solo campo non sembra esserci differenza:

Modificando i tre campi, pur senza uscire dal record o abbandonare la pagina:

L’intera sequenza di trigger viene eseguita per ogni singolo campo. Questo, ovviamente, ha un impatto sostanziale e bisogna tenerne conto in fase di scrittura del codice.

Se per esempio in fase di modifica di una testata ordine si vuole eseguire una operazione di ricalcolo di un valore sulle righe non va messo del codice in uno qualsiasi di questi trigger senza tenere conto di questa esecuzione multipla.

Oppure, se non è possibile adattare il codice a questa modalità di gestione del dato, in attesa che Microsoft aggiunga un evento che sostituisca la vecchia gestione, disabilitare la funzionalità.
Non c’è una risposta corretta per tutte le situazioni perché l’adeguamento non è immediato.


Marco Costanza
Senior Software Developer

 

9Ways Integration Broker for Microsoft Business Central

Integration Broker Microsoft Business Central

🚀 Siamo entusiasti di annunciare il lancio della nostra ultima innovazione certificata Microsoft: 9Ways Integration Broker per Microsoft Business Central! 🌐
Scopri come rendere un gioco da ragazzi l’integrazione tra il tuo ERP e i servizi esterni. Dimentica la scrittura di codice personalizzato o la creazione di API su misura, ora puoi configurare il sistema per adattarsi al formato dello scambio dati specifico in modo rapido e senza sforzo.

Scopri la soluzione su AppSource Microsoft