Articoli

Login with OAuth 2.0

In questo articolo verrà illustrata la procedura tecnica per attivare il metodo di autenticazione OAuth2, questo tipo di connessione può essere utilizzato per connettersi alle API WebServices di Business Central 

È fondamentale prendere dimestichezza con questo tipo di metodologia in quanto sarà a breve l’unico metodo disponibile in BC poiché l’accesso con la chiave WebService base è definito come deprecato. 

La parte fondamentale per accedere ai servizi esposti è servirsi di un token che è possibile “richiedere” con diverse modalità. 

Requisiti per procedere:

  • Account Office 365
  • Account Azure

Configurazione nuova App Azure Active Directory

  • STEP 1 – Registrazione delle app nel portale di Azure

Per abilitare l’autenticazione OAuth2 per le app in Azure Active Directory (AAD), è necessario registrare un’app, configurarla, assegnarle le autorizzazioni. 

Per registrare un’app: cercare Registrazione app nel portale di Azure 

Verrà richiesto di assegnare un nome alla App, scegliere un nome che ci consenta di indentificare in modo sintetico l’app. 

In tipi di account supportati selezionare: “Tenant singolo”. 

  • STEP 2 – Assegnare autorizzazioni a un’app registrata

È fondamentale assegnare le autorizzazioni correttamente per portare a buon fine il procedimento. 

Le operazioni da seguire sono nell’ordine: 

  • Accedere al menu “Autorizzazioni API” 
  • Selezionare “Dynamics 365 Business Central” 
  • Selezionare “Autorizzazioni delegate” 
  • Aggiungere le autorizzazioni segnalate sotto (+) 

Per la gestione delle deleghe spuntiamo:  

  • User_impersonation 
  • Financias.ReadWrite.All 

  • STEP 3 – Genera Certificato e Segreto

Creare un Segreto Client (ID e nome), questo segreto client sarà la password per OAuth2. 

Per crearlo è sufficiente selezionare “Nuovo Segreto Client” e prelevare il valore generato, attenzione copiarlo in un posto sicuro perché successivamente verrà oscurato. 

Questa è l’operazione che ci garantisce la bontà e la sicurezza della procedura di autenticazione. 

  • STEP 4 – Apri e copia gli endpoint attivi (v1)

A questo punto la configurazione relativa all’app è terminata, il sistema rilascia diversi Parametri (chiamati endpoint) che utilizzeremo per richiedere il token e accedere con OAuth2. 

Per consultare gli endpoint attivi posizionatevi nella HomePage dell’app e trovare un’azione chiamata Endpoint con l’icona del “mondo” (accederete ad una schermata simile a quella sotto):  

Fondamentali sono i seguenti:  

  • Endpoint di Autorizzazione Oauth2.0 
  • Endpoint Token Oauth2.0 

Modalità di richiesta del Token di accesso

Configurato quanto visto in precedenza e prelevati gli endpoint, abbiamo tutto il necessario per ottenere il nostro TOKEN. 

È possibile utilizzare diverse metodologie per ottenerlo:  

  • Richiesta TOKEN Da POSTMAN (O software similare Insomnia ecc…) 

Assegnare gli endpoint esposti in Azure nei relativi spazi, e procedere con la funzione in basso a destra “GET NEW ACCESS TOKEN”. 

Se tutto sarà andato a buon fine apparirà una finestra con la dicitura Authtentication Complete. 

Se tutto funziona, il sistema avvierà la pagina di accesso Microsoft a cui vi chiederà di autenticarvi la prima volta, dopo di che verrà emesso il tanto desiderato token.

Questa modalità tramite Postman normalmente viene utilizzata per “testare” la corretta configurazione dell’app e dell’endpoint.

  • Richiesta TOKEN Da Business Central

Microsoft ha introdotto il nuovo modulo OAuth2, un nuovo modulo che ha l’obiettivo di fornire supporto OAuth per la connessione di Business Central a servizi esterni tramite codice AL.

Con questa modalità abbiamo già tutte le funzioni già scritte per richiedere il token internamente a BC con delle comode funzioni senza doverci riscrivere delle procedure custom.

Ottenuto il nostro Token a seconda della modalità scelta possiamo procedere con le chiamate dei relativi WS/API di cui abbiamo necessità specificandolo nei parametri di autenticazione.

 

 

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

 

new release

Il primo di aprile Microsoft ha rilasciato la prima main release annuale di Business Central, portando la versione alla 18 con il nome commerciale di 2021 Wave1.

L’introduzione della nuova main release ha portato con se alcune novità lato sviluppo, implementando alcune funzionalità richieste da tempo, alcune dal passaggio del linguaggio di programmazione da C-AL ad AL

Vediamo in dettaglio quali sono queste novità.

Report Extensibility

La possibilità di estendere i report, senza la necessità di dover duplicare l’intera struttura era una delle grosse mancanze delle precedenti versioni di Business Central. Tramite la 2021W1 Microsoft ha finalmente colmato questo gap dando la possibilità di estendere i report tramite un nuovo tipo di oggetto il “Report Extension”.

La logica applicata all’estensione del report è simile per molti versi a quella applicata agli altri tipi di oggetti simili come le page extension e le table extension permettendo quindi di aggiungere campi e dataitem al report originale, aggiungendoli poi nel layout del report.



dataset 
{
     add(“Sales Invoice Header”)
     {
          column(“vatregistrationno”; “vat registration no.”)
          {}
     }
     addafter(PaymentReportingArgument)
     {
          dataitem(“Sales Comment Line”; “Sales Comment Line”)
          {
               column(Comment; Comment)
               {}
          }
     }
}

Virtual Table for Dataverse

Nella continua integrazione tra Business Central e il Common Data Service, ora Dataverse, con l’aggiornamento alla Wave1 è stato reso disponibile un’applicazione per Business Central che permette di portare sul Dataverse qualsiasi tabella presente in Business Central senza passare da connettori personalizzati come mostrato negli articoli precedenti.

Aggiunta chiavi su Tabelle Standard.

Un’altra possibilità molto richiesta, anche più della possibilità di estendere i report, è quella di poter aggiungere chiavi secondarie alle tabelle standard tramite l’oggetto della table extension, permettendo quindi l’ottimizzazione di flussi rendendoli più veloci ed efficienti.

Aggiunta nuovi tipi di ritorno dalle funzioni.

Dalla 2021W1 è possibile far ritornare ad una funzione nuovi tipi di variabili compresi anche i tipi complessi come record, query ed altro, ottimizzando ulteriormente la scrittura del codice.

 

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

 

Business Central

Cosa valutare quando si considera il porting da Navision a Business Central

Durante la sua lunga storia, Navision è stato un prodotto di successo utilizzato da migliaia di aziende.

La soluzione di Microsoft è conosciuta per la sua continua evoluzione. Ogni anno è stata rilasciata la nuova versione con decine di aggiornamenti di funzionalità, di design e addon. L’evoluzione tecnologica ha diffuso il cloud tra le aziende, anche Navision si è progressivamente perfezionato verso le architetture più moderne creando il suo discendente: Dynamics 365 Business Central

Questa soluzione mantiene le stesse potenti funzionalità del vecchio NAV: contabilità, vendite, acquisti, commesse, produzione, logistica, gestione della supply chain e operation e la parte di analytics, ma Business Central è fruibile da web ed è disponibile in tre modalità: cloud (SaaS), On Premise o Azure hosted.

Dynamics 365 Business Central: perché migrare

Rispetto a Nav, Business Central:

  • Offre un’infrastruttura completa e potente in cloud per performance più veloci e una soluzione scalabile
  • Ha migliorato l’interfaccia, che è ottimizzata sia per la fruizione da web che tablet e mobile
  • Ha creato una più forte integrazione con Microsoft Azure, e le altre soluzioni Microsoft: Dynamics 365 CRM, Office 365, Power Platform
  • È facilmente integrabile con altri software aziendali
  • È più sicuro e allineato alla roadmap di Microsoft

Se la tua azienda è già cliente Microsoft e utilizza NAV ecco le cose da considerare prima di un passaggio:

  • Scegliere la Modalità Installazione che si sposa meglio con tuo business: la soluzione Business Central può essere installata On Premise presso il server del Cliente oppure usando l’infrastruttura Azure. Questa modalità blocca il sistema alla versione installata. La differenza tra queste due versioni sta nella gestione dell’infrastruttura, che nel caso di Azure è in carico al Vendor, sgravando l’IT interno dalle onerose attività sistemistiche. La terza modalità ovvero Saas, permette di essere sempre aggiornati con le nuove release del sistema, non necessita della gestione di nessuna infrastruttura, in cambio richiede lo sforzo di testare le personalizzazioni prima di ogni rilascio obbligatorio (2 volte all’anno).
  • Scegliere le Nuove funzionalità: In sede di migrazione è possibile valutare come alcune nuove funzionalità native possono sostituire vecchie customizzazioni. Spesso cambiando il gestionale (o facendo il porting) si vuole sfruttare l’opportunità di avvicinare la propria operatività allo standard, togliendo le personalizzazioni che erano necessarie per le versioni precedenti. Business Central essendo una soluzione più evoluta anche in termini di funzionalità previste, permette di utilizzare le features native non dovendo più ricorrere alle customizzazioni fatte sul vecchio sistema. Si ha un vantaggio sia economico, perché durante il porting non si deve re-sviluppare nulla, sia in termini di manutenzione perché non servono le ore di test successive. Stessa cosa vale per gli addon installati che con il tempo sono stati arricchiti o addirittura ne sono stati creati nuovi più efficaci.
  • Eliminare gli sviluppi obsoleti: il porting è un ottimo momento per fare anche la pulizia del sistema. Nel tempo le funzionalità sviluppate si sono dimostrate inefficaci o semplicemente l’azienda ha cambiato il suo modo di operare. Per questo motivo durante un assesment di porting quando verranno controllati gli oggetti (intesi come entità di sviluppo) si potrà decidere cosa non è più da utilizzare.
  • Aggiungere sicurezza: ultimo ma non meno importante è come e da dove fai accedere i tuoi utenti al sistema. Business Central è un sistema accessibile tramite browser (non più da desktop remoto) e per la sicurezza può essere esposto verso chi desideriamo, sfruttando la VPN. Inoltre, essendo integrato con tutto il mondo MS, Business Central permette di autentificarsi con SOO (single sign on) usando gli stessi accessi di Windows/Office. Per di più, in Business Central è stata prevista l’autentificazione a due fattori (GDPR compliant) che aiuta proteggere il sistema.

I tempi sfidanti che affrontiamo portano le aziende ad accelerare la loro digitalizzazione non solo dal punto di vista della sostituzione dei processi o della dematerializzazione dei documenti cartacei, ma soprattutto dal punto di vista tecnologico. Business Central è un’ottima soluzione per chi ha già scelto NAV, la soluzione di Microsoft, e vuole fare un salto di qualità.

 

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.

Microsoft Team Leader | Empoli

 

Business Central implementa un nuovo formidabile tool: le telemetrie.

Le telemetrie e il relativo ambiente “Application Insights” sono degli strumenti, utilissimi e semplici, indispensabili per investigare sulle segnalazioni di rallentamenti delle API e delle web service, sono inoltre strumenti ufficiali e non contestabili tramite i quali è possibile replicare a clienti e ad utenti ogni qual volta questi percepiscano problemi di affidabilità sugli ambienti sia SaaS che IaaS/PaaS.

Tramite l’analisi delle telemetrie è infatti possibile tenere sotto controllo tutti gli errori che si verificano durante le chiamate API, con particolare attenzione ai tipici errori che impattano sull’operatività, ovvero gli errori http 429, 5XX e 404.

La configurazione delle Telemetrie su Business Central è oltretutto una operazione semplice ed è possibile farla in pochi minuti.

In questo articolo verranno descritte le operazioni necessaria per ottenere un report che fornisca le informazioni che tipicamente sono utili per investigare sulle segnalazioni degli utenti, ovvero: numero errore http, tempo di esecuzione della chiamata, righe sql coinvolte nell’operazione ed endpoint http che ha causato l’errore.

How to: Creare un report delle informazioni utili sulle segnalazioni degli utenti

Su ambienti SaaS le telemetrie sono sicuramente presenti, su ambienti OnPrem sono supportate, per le API e le web service, solo dalla versione 16 e successive.

Le informazioni di telemetria sono trasferite in tempo reale da Business Central su Azure e sono quindi accessibili e consultabili sul portale stesso, oltre che manipolabili tramite script PowerShell.

Iniziamo quindi con la prima configurazione. La prima operazione consiste nell’aprire la pagina web di “Azure Portal” e creare un nuovo “Application Insights”. L’operazione è molto semplice e si conclude dopo tre click come in figura, la creazione guidata di “Application Insights” richiede l’immissione di poche informazioni e può essere conclusa lasciando le impostazioni di default.

Il risultato finale di questa operazione è una pagina che mostra due dati che ci serviranno successivamente: la “Istrumentation Key” e la “Connection String”.

Questi due dati andranno copiati sulla configurazione delle Telemetrie su Business Central.

Passiamo quindi a Business Central e vediamo come configurare un ambiente SaaS tramite “Admin Center”. Su ambienti SaaS l’admin center è accessibile aprendo la URL: https://businesscentral.dynamics.com/{your_tenant_id}/admin.

Sul blade Environment si procede quindi con la selezione dell’environment sul quale si desidera procedere con l’attivazione delle telemetrie.

Una volta selezionato l’environment, copiare  il valore della “Application Insights Key” da “Azure Portal” al relativo campo.

Su ambienti OnPremise di Business Central è necessario invece aprire la schermata della console “Administration Center” e nel tab “Generale” copiare il valore di “Application Insights Instrumentation Key” sulla relativa casella di configurazione.

Terminata la configurazione vediamo ora come accedere ai dati di Telemetria.

Gli strumenti a disposizione sono moltissimi, i principali sono il Portale Azure e PowerShell.

Il blade di “Log Analytics” di Azure consente di interrogare i dati con il nuovo linguaggio KQL.

Per filtrare gli eventi che coinvolgono le chiamate API/ODATA è possibile eseguire una query KQL molto semplice:

traces | where operation_Name == ‘Web Services Call’ and message contains  “(Api)”

Questa query darà in uscita un elenco di eventi delle chiamate a WebService eliminando altri tipi di eventi che non sono di interesse.

La finestra che viene mostrata sul blade “Log” di “Application Insights” mostra l’elenco degli eventi e nella parte superiore è possibile digitare ed eseguire la query KQL.

Per ogni riga del singolo evento è possibile espandere e visualizzare i dati dettagliati.

Il risultato HTTP della chiamata è presente all’interno della sottochiave “customDimensions”.

Dato che “customDimensions” è un oggetto di tipo “dynamic type” la query KQL che dobbiamo eseguire per isolare questa informazione è come in figura:

traces 
| extend httpStatusCode = parsejson(tostring(parsejson(tostring(customDimensions.httpStatusCode))))
| extend serverExecutionTime = parsejson(tostring(parsejson(tostring(customDimensions.serverExecutionTime))))
| extend serverExecutionTime = parsejson(tostring(parsejson(tostring(customDimensions.serverExecutionTime))))
| extend totalTime = parsejson(tostring(parsejson(tostring(customDimensions.totalTime))))
| extend category = parsejson(tostring(parsejson(tostring(customDimensions.category))))
| extend sqlRowsRead = parsejson(tostring(parsejson(tostring(customDimensions.sqlRowsRead))))
| extend sqlExecutes = parsejson(tostring(parsejson(tostring(customDimensions.sqlExecutes))))
| extend endpoint = parsejson(tostring(parsejson(tostring(customDimensions.endpoint))))
| where  operation_Name == 'Web Services Call' 
and message  contains "(Api)"
| project httpStatusCode, serverExecutionTime , totalTime , category , sqlRowsRead , sqlExecutes , endpoint , operation_Name

Il risultato finale della query è esattamente il report che ci eravamo prefissati di ottenere, ovvero un elenco di chiamate http ad API e Web Service con i principali dati per verificare eventuali malfunzionamenti o rallentamenti.

I dati di Telemetria sono consultabili anche attraverso PowerShell.

Per utilizzare PowerShell è necessario creare una chiave di consultazione sul Portale Azure.

Per fare questo accedere al blade “API Access” e cliccare su “Create API Key”.

La chiave generata deve essere copiata e salvata, non sarà mai più visualizzabile in futuro, quindi, è importante che venga salvata immediatamente in fase di creazione.

Questa chiave e il valore di “Application ID” ci serviranno successivamente in PowerShell.

Prima di procedere con Power Shell è possibile verificare che le API di Application Insights siano accessibili dall’esterno con applicazioni come Insomia o come PostMan.

Ecco un esempio di chiamata:

GET https://api.applicationinsights.io/v1/apps/{app-id}/query?query=

E la query da passare per avere un elenco di eventi:

?query=traces | where timestamp > ago(1d)

Come è possibile notare in figura l’autenticazione con le API di “Application Insights” avviene impostando l’header http “X-Api-Key” con la chiave ottenuta precedentemente sul portale Azure.

Se la verifica delle chiavi ha avuto esito positivo siamo pronti a manipolare i dati tramite script Power Shell.

Il linguaggio Power Shell permette di estrarre i dati e manipolarli come meglio si ritiene opportuno.

Ecco un esempio di script Power Shell che si connette ad Application Insights ed ottiene i dati e visualizza gli stessi:

$key = "{APP_KEY_FROM_AZURE}"
$appId = "{APP_ID_FROM_AZURE}"

$Query=[uri]::EscapeUriString("?query=traces | where timestamp > ago(1d)")

$filename = "{your_path}/{your_file}.kql"
$queryText = Get-Content $filename
$Query=[uri]::EscapeUriString("?query=$queryText")


$headers = @{ "X-Api-Key" = $key; "Content-Type" = "application/json" }

$response = Invoke-WebRequest -uri  "https://api.applicationinsights.io/v1/apps/$appId/query$Query" -Headers $headers -Method Get

$json = ConvertFrom-Json $response.Content

$headerRow = $null
$headerRow = $json.tables.columns | Select-Object name
$columnsCount = $headerRow.Count
$logData = @()
foreach ($row in $json.tables.rows) {
   $data = new-object PSObject
   for ($i = 0; $i -lt $columnsCount; $i++) {
      $data | add-member -membertype NoteProperty -name $headerRow[$i].name -value         $row[$i]
   }
   $logData += $data
   $data = $null
}

$logData

Lo script esegue un file KQL per filtrare i dati, lo script KQL è esattamente lo stesso che avevamo usato sul portale Azure:

traces 
| extend httpStatusCode = parsejson(tostring(parsejson(tostring(customDimensions.httpStatusCode))))
| extend serverExecutionTime = parsejson(tostring(parsejson(tostring(customDimensions.serverExecutionTime))))
| extend serverExecutionTime = parsejson(tostring(parsejson(tostring(customDimensions.serverExecutionTime))))
| extend totalTime = parsejson(tostring(parsejson(tostring(customDimensions.totalTime))))
| extend category = parsejson(tostring(parsejson(tostring(customDimensions.category))))
| extend sqlRowsRead = parsejson(tostring(parsejson(tostring(customDimensions.sqlRowsRead))))
| extend sqlExecutes = parsejson(tostring(parsejson(tostring(customDimensions.sqlExecutes))))
| extend endpoint = parsejson(tostring(parsejson(tostring(customDimensions.endpoint))))
| where  operation_Name == 'Web Services Call' 
and message  contains "(Api)"
| project httpStatusCode, serverExecutionTime , totalTime , category , sqlRowsRead , sqlExecutes , endpoint , operation_Name
| summarize OpNameCount=count() by tostring(httpStatusCode)

Oltre agli strumenti sopra descritti ne esistono molti altri ancora più potenti, uno di questi è “jupyter notebook”.
È possibile scaricare la guida di jupyter notebook
E gli esempi di query KQL

Inoltre, esiste uno strumento di monitoring che permette di mandare alert automaticamente: Azure Monitor.

Ecco alcuni riferimenti su Telemetrie, Application Insights e linguaggio KQL:

https://docs.microsoft.com/en-us/dynamics365/business-central/dev-itpro/administration/telemetry-enable-application-insights
https://dev.applicationinsights.io/documentation/Using-the-API/Query
https://docs.microsoft.com/it-it/azure/data-explorer/kql-quick-reference

 

Aumenta la produttività e migliora la percezione del tuo brand. Scopri le nostre soluzioni aziendali che ti consentono di gestire l’intera azienda e di offrire risultati migliori

Dynamics 365 Developer

 

Le principali features aggiunte all’applicazione e al client di Dynamics 365 Business Central

Con il primo ciclo di rilascio del 2021 sono stati introdotti dei miglioramenti che consentono l’utilizzo di Business Central  in modo più produttivo. Prosegue l’espansione geografica dell’app e l’evoluzione di prestazioni, usabilità e stampa. Migliorata l’efficienza dei processi aziendali collaborativi in Microsoft Teams e potenziati i componenti aggiuntivi di Excel e Outlook.

Ecco le aree dell’applicazione che beneficiano dei miglioramenti.

Dimensioni

Maggiore controllo sulle dimensioni predefinite

Invece di consentire agli utenti di selezionare qualsiasi valore di dimensione, quando la registrazione del valore della dimensione è impostata su Codice obbligatorio, si utilizzano i valori di dimensione consentiti nella pagina di configurazione.

Correzione delle dimensioni nei movimenti

È stato inserito un tool che consente la modifica delle dimensioni già registrate.

Finance

Importazione semplificato dell’estratto conto

È stata semplificata la funzionalità di importazione dell’estratto conto bancario, in modo da dare agli utenti la possibilità di prendere un file flat (.csv, .txt) e mappare le colonne del file ai campi in Business Central.

Miglioramenti alla registrazione di riconciliazione pagamenti

Gli utenti diventano più efficienti nell’utilizzo del giornale di registrazione della riconciliazione pagamenti grazie ai miglioramenti che consentono di utilizzare l’anteprima della registrazione nel giornale di registrazione. Inoltre, è possibile definire una serie di numeri per il giornale di registrazione e utilizzare diversi numeri di documento su righe diverse.

Inventory

Creazione automatica di schede informative sui numeri di serie e di lotto

Con la nuova funzionalità introdotta è possibile creare automaticamente la pagina delle informazioni numero lotto e informazioni numero seriale durante la creazione delle righe di tracciabilità. La funzionalità è stata estesa anche alla creazione di nr seriali e lotti in modo massivo.

Monitorare l’inventario e il flusso delle transazioni con la finestra Disponibilità per lotto

In questa versione sono state migliorate le funzionalità di tracciabilità degli articoli mediante l’introduzione di Disponibilità per lotto. Ora è possibile vedere un elenco di lotti con le quantità di scorte disponibili, oltre alle transazioni in entrata e in uscita previste, come ordini di vendita, acquisto, trasferimento, assemblaggio o produzione.

Manufacturing

Impostazione della DB di Produzione e del ciclo direttamente sulla scheda stockkeeping

Tale impostazione consente la differenziazione dei componenti e della fasi di lavoro legati alla produzione di una specifica variante dell’articolo.

Aggiunta del codice variante sulla testata dell’ordine di produzione

L’aggiunta del nuovo campo consente di creare l’ordine di produzione indicando direttamente in testata la variante scelta per la produzione dell’articolo.

Web Client in continuo miglioramento

Le funzionalità che migliorano l’usabilità del client offrendo una maggiore fruibilità all’utente sono:

  • Doppio clic su un record in un elenco

Un doppio click attiva l’azione predefinita per il record.

  • Selezione uniforme di tutto il testo facendo clic su un campo

Con un solo click sul campo, il valore viene evidenziato in modo da rendere più facile l’operazione di copia del valore del campo.

  • Utilizzo di una larghezza del browser ridotta o schermate ingrandite

L’interfaccia desktop è ora più reattiva e si adatta automaticamente allo spazio disponibile. Questa funzionalità offre diverse risoluzioni dello schermo.

I miglioramenti includono le seguenti novità:

  • Il riquadro di ispezione della pagina può essere ridotto a lato dello schermo.
  • La barra di scorrimento orizzontale è stata aggiunta ai controlli del layout fisso e del layout della griglia per impedire la compressione dei valori tabulari.
  • I pulsanti di azione nelle pagine di richiesta dei report e di tutte le finestre di dialogo sono sempre visibili e accessibili.
  • L’anteprima del report si estende fino a riempire lo spazio disponibile e i pulsanti della barra degli strumenti rimangono visibili e accessibili.
  • Con una larghezza ridotta, i margini della pagina si riducono automaticamente per visualizzare più contenuto.

 

Link di approfondimento:

Dynamics 365 Business Central – Applicazione – Dynamics 365 Release Plan | Microsoft Docs

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 Consultant

 

Agile Manufacturing

Agile Manufacturing con Business Central: configurazione dei processi personalizzata e flessibile

Nella scelta di un sistema gestionale, è fondamentale oltre a identificare le funzionalità necessarie, valutare il livello di flessibilità che questo strumento permetterà nel corso del tempo.

Questo è ancora più vero per la gestione della supply chain e del flusso operations di una azienda.

Unica costante il cambiamento

Una migliore gestione della supply chain può aumentare sensibilmente la redditività e ridurre al minimo le eccedenze di magazzino e le inefficienze.

A seconda del business sarà importante concentrarsi su tempi di consegna abbreviati, trasporti più puntuali piuttosto che su una reattività e una migliore previsione dei picchi di richiesta, o ancora su una corretta gestione della logistica interna, degli approvvigionamenti e della produzione.

La flessibilità è una delle caratteristiche principali di Dynamics 365 Business Central e questo è ancora più evidente nel modulo manufacturing.

Questo può essere implementato in maniera semplice e, in modo altrettanto semplice lo si può integrare con funzionalità avanzate.

La produzione contiene la gestione delle BOM (Bills of Materials), MRP (Material requirement planning), ordini di produzione, gestione delle aree e dei centri di lavoro, cicli di lavorazione.

In base al dettaglio e allo sviluppo del processo produttivo possono essere “dosate” queste funzionalità in base alle esigenze proprio come in una ricetta.

Aziende più flessibili e con minor focus sui tempi di produzione potrebbero non richiedere l’utilizzo dei cicli di produzione. Altre potrebbero richiedere l’approvvigionamento attraverso le proposte di MRP con step successivi dopo avere collaudato i flussi principali.

Altre ancora potrebbero richiedere l’utilizzo di una versione light del manufacturing attraverso la gestione degli assemblaggi.

Manufacturing Business Central: fattori di scelta

In sintesi, scegliete di implementare le funzionalità del manufacturing di Business Central quando, a diversi livelli di dettaglio:

  • Avete necessità di gestire i costi di produzione;
  • Avete necessità di conoscere la data di completamento e lo stato di avanzamento di un ordine di produzione;
  • Avete l’esigenza di modificare facilmente le BOM e i cicli di produzione di specifici ordini;
  • Gestite fornitori di conto lavorazioni all’interno del flusso produttivo;
  • Avete bisogno di proposte di MRP per approvvigionamento, trasferimento, assemblaggio componenti, o produzione;
  • Avete la necessità di gestire dei parametri di pianificazione quali la scorta, il lead time, le quantità di riordino, i periodi di accumulo, le SKU;
  • Utilizzate Forecast di vendita per preparare gli approvvigionamenti di un periodo.

La semplicità, infine, di effettuare data-driven analysis con Microsoft Power BI rende molto potente questo strumento anche per le valutazioni delle performance attraverso dashboard real-time sulla supply chain e sulla produzione.

 

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 Consultant

 

How to

Trello, uno strumento online per la gestione dei progetti e dei task personali.

Una delle richieste sempre più comuni è quella di integrare Business Central con altri software e portali. Oggi riportiamo l’esempio di un integrazione con il sito web di Trello.

Trello (https://trello.com/it) è uno strumento di base gratuito, formato da tre elementi chiave: la board, le list e le card.

  • Le board (possono essere private o pubbliche) sono il contenitore principale di tutti i task.
  • Le card, che contengono i vari task, sono organizzati all’interno di liste e rappresentano l’unità base.

L’obiettivo che ci siamo dati all’inizio di questo sviluppo è provare ad integrare Business Central con una bacheca creata su Trello per inviare verso il loro sito delle anagrafiche clienti (per esempio dei soggetti da contattare per campagne promozionali) e fornitori.

Per prima cosa abbiamo creato su Trello una bacheca con due list (Clienti\ Fornitori) seguendo la loro guida: https://trello.com/it/guide/trello-101.html

Sempre da Trello abbiamo poi preso alcune informazioni che ci serviranno per l’integrazione: la chiave API ed il Token: https://trello.com/app-key

Trello

A questo punto abbiamo consultato la documentazione sulle API di Trello che potete trovare a questo link: https://developer.atlassian.com/cloud/trello/rest/ ed abbiamo estratto da l’ultima informazione fondamentale: l’id della nostra board e list.

Per fare questo abbiamo creato una card di test ed abbiamo esportato il Json.

Le informazioni sono contenute nell’idBoard e l’idList.

A questo punto abbiamo tutte le informazioni per fare l’integrazione.

Ci spostiamo in Visual Studio Code, creiamo una page extension della customer card e un action che ci permette di inviare il cliente nella nostra bacheca su Trello

action(SENDTRELLO)
            {
                Caption = 'Send Customer To Trello';
               Visible = true;
               Image= Sendto;
               ApplicationArea = All;
                
                trigger OnAction()
                var
                    client: HttpClient;
                    Path: Text;
                    RequestContent: HttpContent;
                    ResponseMessage: HttpResponseMessage;
                    StatusCode: text;
                    AuthHeaderValue: HttpHeaders;
                    Content: HttpContent;
                    Result: Text;
                begin
  Path :='https://api.trello.com/1/cards?key=20fb8653332….&token=a1fca508d75689ba5f…&name=' + rec."No." + ' - ' + rec.Name + '&idList=5fe21834211dab1e01c005a2';
                    Client.SetBaseAddress(path);
                    Client.DefaultRequestHeaders.Add('User-Agent', 'Dynamics 365');

                    if Client.Post(path, RequestContent, ResponseMessage) then begin
                        if ResponseMessage.IsSuccessStatusCode then begin
                            StatusCode := '00';
                            AuthHeaderValue := ResponseMessage.Headers;
                            Content := ResponseMessage.Content;
                            Content.ReadAs(Result);
                        end else begin
                            AuthHeaderValue := ResponseMessage.Headers;
                            Content := ResponseMessage.Content;
                            Content.ReadAs(Result);
                            StatusCode := Format(ResponseMessage.HttpStatusCode);
                            Error(format(ResponseMessage.HttpStatusCode) + Result)
                        end;
                    end;
                end;
}

Pubblichiamo la page ext e ci troviamo la nostra azione sulla customer card

Clicchiamo sull’azione e sulla nostra bacheca ecco arrivare il cliente

Ripetendo la cosa per i fornitori (cambiando solo id della lista) raggiungiamo il nostro obiettivo.

Questo ovviamente è solo un esempio e un primo passo dell’integrazione e delle possibilità che offre Trello e delle potenzialità che Business Central ha per integrarsi con numerosi software disponibili su web.

 

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

 

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

 

Implementazioni ERP

Davo per scontato che …

Quante volte noi consulenti abbiamo sentito dire ai nostri clienti “davo per scontato che…” e lasciarsi andare ad un’infinita lista di funzionalità, report ed attività progettuali che ritenevano già inclusa nel progetto e che secondo loro ogni software da loro idealizzato avrebbe dovuto avere? Spesso la situazione diventa un vero e proprio punto di disaccordo, rischiando di mandare all’aria un intero progetto o far rivalutare il suo effort economico in modo significativo.  Andando ad analizzare le aspettative più comuni si può notare come esse siano ricorrenti e che spesso abbiano nulla a che fare con la specificità del settore nel quale opera il cliente.

Di seguito alcune delle incomprensioni più frequenti che si vengono a verificare quando implementiamo un ERP internazionale e i nostri consigli su come gestirle:

  • Quali report sono inclusi? Spesso il cliente quando va ad implementare un nuovo ERP si rende conto che non ci sono strumenti di reportistica a lui familiari o che ritenga utili. Questo accade perché il cliente è abituato al suo vecchio gestionale che magari in dieci anni di utilizzo è stato customizzato con una quantità di report di controllo sodisfacente o semplicemente si sia adattato ai report contabili già presenti, dando così per scontato che tutti i gestionali siano fatti nello stesso modo. Andando però verso la nuova soluzione, in particolar modo quella internazionale, il cliente non si rende conto che la reportistica non sia la stessa. Un sistema internazionale che serve a coprire le esigenze dei clienti di vari settori, non avrà mai la profondità della reportistica al quale siamo abituati. Il nostro consiglio è di verificare in fase di analisi se la reportistica a supporto di tutte le attività aziendali copra le esigenze di controllo. E’ importante prestare attenzione soprattutto ai report contabili utilizzati mensilmente, in quanto i vendor internazionali non hanno la percezione delle sfumature delle contabilità italiana.
  • Processo / Campo / Caso gestito: un ERP gestisce i processi basati sulle best practices internazionali. I processi sono stati studiati sul campione di migliaia di aziende in tutto mondo. Per questo motivo i processi ed i campi che offre sono quelli indispensabili. Spesso può accadere che un caso specifico o un campo preciso non siano inclusi nel sistema. Il nostro consiglio è di approcciare la fase di analisi e i successivi integration tests usando la regola di CRUD (Create, Read, Update, Delete) che permette di approfondire tutte le sfumature del processo aziendale. E’ molto meglio accorgersi che un piccolo particolare non sia stato gestito nella fase dei test piuttosto che riscontrare un malfunzionamento durante un periodo stressante come un Go Live.
  • Unico PM (cliente /fornitore): I consulenti senior che vengono coinvolti nell’implementazione del sistema ERP sono molto abili a gestire i progetti e spesso sono in grado di anticipare le problematiche dei clienti, proponendo validi consigli su come approcciare le varie fasi. Tuttavia, frequentemente il cliente da per scontato che il consulente diventi automaticamente PM del progetto interno, rimandando a lui anche la comunicazione con i propri dipendenti e i propri fornitori. Dare per scontato che il capo progetto del fornitore possa avere il tempo o la forza per gestire anche i colleghi interni può causare ritardi e perdita del focus sul progetto. Il nostro consiglio è di scegliere un capo progetto interno che preveda il tempo che sarà necessario per seguire gli avanzamenti del lavoro e che affianchi i key users interni nelle analisi e nei test.

Una corretta implementazione del sistema ERP può aiutare a rendere efficiente il lavoro dell’azienda; tuttavia anche piccole mancanze, come un campo o un report non automatizzato, possono creare tensioni o addirittura raddoppiare il lavoro dell’utente. Dare per scontato che tutto funzioni come vogliamo senza essere testato o analizzato può portare un progetto fuori strada.

 

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.

Microsoft Team Leader | Empoli

 

ERP Digital Transformation

Trasformarsi o scomparire

Viviamo e lavoriamo in Italia, il Paese in cui le piccole e medie imprese (Pmi) sono il cuore pulsante del tessuto imprenditoriale e rappresentano la quasi totalità delle imprese, generando il 75% del valore aggiunto totale del nostro Paese.

Prima del 2020, queste aziende in Italia erano circa 5,3 milioni – circa il 92% delle imprese attive –e impiegavano 15 milioni di lavoratori (82% del totale e valore che supera di molto la media Ue) e nel 2017 – ultimo dato Prometeia disponibile – generavano un fatturato complessivo di 2.000 miliardi di euro.

In Italia, quindi, la maggioranza delle aziende attive si trova oggi a dover iniziare o proseguire il percorso di trasformazione digitale, giocandosi una parte del proprio futuro sulla capacità di vivere l’era della proliferazione delle informazioni, dovendo gestire un’immensa mole di dati e provando ad estrarre valore da questi dati.

Solo con strumenti adeguati e partner affidabili è possibile gestire questa miniera di informazioni che aumenta con una progressione geometrica. Qualche anno fa si prevedeva che tra il 2013 e il 2020 la produzione di dati sarebbe cresciuta di 10 volte – passando da 4,4 milioni di miliardi di gigabytes a 44 – raddoppiando in volume ogni due anni: ma la realtà ci ha mostrato che la crescita è stata doppia rispetto alle previsioni.

Poiché la trasformazione digitale ha impatti rilevanti su ogni aspetto della strategia aziendale – dalla struttura organizzativa, all’esperienza del consumatore, alle strategie di marketing e comunicazione, così come l’integrazione dei processi back-end, della produzione e delle operations – le piccole e media imprese hanno di fronte a loro una decisione fondamentale e imprescindibile: trasformarsi o scomparire, perché se il software per la contabilità non ti consente di mantenerti al passo con le esigenze dei clienti, l’esistenza stessa della azienda è messa a rischio.

In che modo cambiare?

Adottando le giuste tecnologie, che permettano di monitorare ogni aspetto della catena del valore aziendale, offrendo strumenti di analisi aggregate, in grado di mostrare a chi deve prendere le decisioni di business dove andare a ottimizzare i processi – siano questi produttivi, finanziari o di vendita. E che siano versatili, adattabili alle esigenze specifiche dell’azienda ma facilmente scalabili qualora le necessità lo richiedano. Come permette di fare Dynamics 365 Business Central un potente software gestionale all-in-one, perfettamente integrato con l’ecosistema di Microsoft, che semplifica e migliora il modo di gestire il business.

Soprattutto potendo sfruttare tutta la sicurezza, l’affidabilità e la scalabilità della piattaforma Microsoft Azure. Perché il cloud è certamente l’elemento chiave per abilitare la digital transformation nelle aziende medie e piccole.

Secondo Gartner, infatti, per quasi il 75% dei CEO è necessario aumentare il ritmo della digitalizzazione della loro azienda per restare competitivi.

Come riuscirci, oggi, senza sfruttare il cloud? Come ottenere i benefici di una soluzione ERP potente e completa senza dover sostenere disagi e costi di una installazione hardware locale?

Decidendo di adottare Dynamics 365 Business Central, perché aggiornare i sistemi scegliendo una soluzione cloud moderna è più semplice e più conveniente di quanto si possa credere.

Come Business Central cambia lo scenario della produttività aziendale?

 Microsoft Dynamics 365 Business Central è una soluzione che consente alle imprese di connettere dati finanziari, vendite, servizi e operazioni in modo da snellire i processi aziendali, migliorare le interazioni con i clienti e prendere decisioni migliori.

Attraverso i consueti strumenti di produttività di Office come Outlook, Word ed Excel, Dynamics 365 Business Central riunisce i processi aziendali in un’unica applicazione e consente di risparmiare tempo, aumentando l’efficienza con attività e workflow automatizzati; a questo si aggiunge l’integrazione con Microsoft Teams, che consente di integrare i dati del tuo ERP con gli strumenti di collaboration.

In qualunque luogo e in qualunque momento è possibile ottenere una visione end-to-end della propria azienda.

Dynamics 365 Business Central mette la flessibilità al centro della tua attività, consentendoti di iniziare rapidamente, crescere al ritmo che desideri e adattarti alle esigenze in tempo reale.

Potrai personalizzare e ampliare facilmente Dynamics 365 Business Central in modo da soddisfare le tue esigenze aziendali o specifiche del settore.

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.

COO – Direttore Organizzativo