Business Central tools for performant code

,
Business Central

Business Central 2020 Wave2: Nuove funzionalità per ottimizzare il codice.

Il rilascio di Business Central 2020 Wave2 ad inizio ottobre ha portato con sé numerose migliorie “sotto al cofano”, tra queste alcune funzionalità che permettono allo sviluppatore di ottimizzare ulteriormente il proprio codice, riducendo così i tempi di esecuzione delle varie procedure.

Le nuove funzionalità introdotte sono:

  • Caricamento di record parziali
  • Tabelle temporanee
  • Proprietà QueryCategory.

La prima funzionalità è la possibilità di caricare un record parzialmente, ovvero selezionare preventivamente i soli campi che serviranno nella procedura seguente. Questo fa sì che il sistema vada a leggere solo pochi campi rispetto a tutti quelli presenti nella tabella, le differenze utilizzando questa funzione si noteranno soprattutto quando si caricano record con numerosi campi ad esempio caricando record riferiti a tabelle come la Sales Header.

Il caricamento parziale dei record si attiva tramite il metodo SetLoadFields indicando quali campi del record caricare.

La sintassi è la seguente:

local procedure tprocedure()
var
        SalesHeader: Record "Sales Header";
begin
        SalesHeader.SetLoadFields("VAT Registration No.");
        SalesHeader.FindFirst();
end;

In questo modo verrà caricato nel record solo il campo relativo alla partita iva senza caricare tutti gli altri campi presenti nella tabella.

Questo tipo di chiamata non deve essere utilizzata nel caso si effettuino inserimenti, cancellazioni o modifiche al record.

Un’altra utile funzionalità, richiesta da molti sono le tabelle temporanee, la gestione di record temporanei esiste da sempre in Business Central ma mancava la possibilità di dichiarare una tabella temporanea già nella struttura tramite l’abilitazione della proprietà TableType.

La proprietà va impostata in questo modo nella dichiarazione della tabella:

table 80074 MyTable
{
    DataClassification = ToBeClassified;
    TableType = Temporary;

Il grosso vantaggio generato da questa proprietà è dato dal fatto che lo schema di una tabella impostata in questo modo non viene mai sincronizzato con il database questo fa sì che sarà possibile eliminare campi e fare modifiche che di norma richiederebbero una forzatura della sincronizzazione dello schema della tabella e quindi proibite soprattutto nel SaaS.

L’ultima novità non è una funzionalità riguardante l’ottimizzazione del codice, riguarda invece una funzionalità che aiuta lo sviluppatore ad implementare le funzionalità richieste dall’utente.

Questa funzionalità è una nuova proprietà presente negli oggetti di tipo Query si chiama QueryCategory e permette l’inserimento al suo interno dei nomi delle pagine dove dovrà essere richiamata.

La proprietà va richiamata in questo modo:

query 93200 "Top 20 Customer for Sales Test"
{
    Caption = 'Top 20 Customer Sales Test';
    OrderBy = Descending(Sum_Sales_LCY);
    TopNumberOfRows = 20;
    QueryCategory = 'Customer List';

    elements
    {
        dataitem(Cust_Ledger_Entry; "Cust. Ledger Entry")
        {
            filter(Posting_Date; "Posting Date")
            {
            }
            column(Customer_No; "Customer No.")
            {
            }
            column(Sum_Sales_LCY; "Sales (LCY)")
            {
                Method = Sum;
            }
        }
    }
}

dichiarando nella Query le pagine dove dovrà essere richiamata, la query apparirà in automatico nella pagina indicata senza dover aggiungere altro codice nella pagina stessa:

questa è una piccola funzionalità che permette una migliore integrazione delle modifiche con lo standard offerto da Business Central allineando l’user experience a quella voluta da Microsoft.

Queste nuove funzionalità rilasciate da Microsoft per gli sviluppatori non sono fondamentali ma devono essere sempre considerate come opportunità da uno sviluppatore per rendere il proprio codice più veloce ed efficiente migliorando notevolmente l’user experience dell’utente finale.

Semplifica i processi, prendi decisioni più informate e accelera la crescita con Dynamics 365 Business Central, una soluzione di gestione aziendale completa progettata per le piccole e medie imprese.

 

Dynamics 365 Developer

 

0 commenti

Lascia un Commento

Vuoi partecipare alla discussione?
Sentitevi liberi di contribuire!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *