Articoli

TradingView

Come implementare un widget e collegarlo a TradingView

In Business Central può essere utile inserire un widget personalizzato che in tempo reale ci tenga aggiornati sulla situazione finanziaria di azioni, criptovalute e ci mostri grafici finanziari.

Business Central può comunicarci tramite widget il prezzo e il grafico di qualsiasi azione che abbiamo configurato. Il widget verrà mostrato nel RoleCenter per consultarlo in qualsiasi momento.

Il Rolecenter è la pagina iniziale assegnata ad una specifica categoria di utenti, in cui vengono esposte le principali funzionalità necessarie per quei determinati utenti.

Questo widget potrebbe essere personalizzato anche per altri fini come ottenere informazioni in tempo reale da altre piattaforme inerenti News, meteo, altri servizi di finanza ecc..

In questo articolo nello specifico prenderemo in considerazione come inserire dei grafici di finanza avvalendoci del noto portale: TradingView.

Come implementare il widget

Per implementare il widget partiremo utilizzando due diversi elementi:

  • ControlAddins
  • Jquery

Come primo step dovremo creare un contenitore JavaScript:

Successivamente avremo bisogno di due file

  1. Un file “.js” – Javascript
  2. Un file “.al” – AL extension,
  • Nel file “.js” dovremo configurare qualsiasi Azione/titolo che potremmo voler monitorare, nessuno ci vieta di adeguare il codice per renderlo dinamico e modificabile tramite setup in modo da consentire all’utente di scegliere in auotonomia anche le dimensioni e il colore del widget.

Di seguito un esempio di codice:

  • Nel file “al” andremo a definire ChartAddin, che indicherà a Business Central come modellare il nostro widget. TradingView come abbiamo detto sarà il sito a cui punteremo per le informazioni finanziarie in tempo reale.

Come ultima operazione incorporeremo il ControlAddin nel RoleCenter di riferimento creando un altro file .al:

Nel RoleCenter apparirà il widget che abbiamo costruito e potremo anche interagire con esso, cambiare periodicità.

Nell’esempio creato troviamo 4 titoli :

  • Microsoft
  • Tesla
  • Due Cryptovalute (Dogecoin e Bitcoin)

Di seguito il risultato ottenuto:

Il widget finanziario è ora pronto per essere sistemato nella pagina di Business Central che scegliamo, è possibile personalizzarlo e posizionarlo dove preferiamo.

 

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

 

token OAuth2

Vediamo come utilizzare alcune delle funzionalità introdotte da Microsoft negli ultimi aggiornamenti di Business Central riguardo l’utilizzo e la gestione dei token.

Nello scorso articolo (Business Central Autenticazione oAuth2 e ottenimento di un token) si è parlato di come ottenere un token OAuth2 dalla Azure Directory per accedere alle API di Business Central, in questo verrà mostrato uno dei possibili modi di gestione dei Token OAuth all’interno di BC.

Ipotizziamo di volerci collegare ad un Business Central Saas impostato come mostrato nel precedente articolo, ma la procedura vale per qualsiasi altro servizio che utilizza questo tipo di autenticazione.

Il primo passo da eseguire è l’inserimento dell’app creata su Azure in Business Central inserendola in questa pagina chiamata ”Applicazione di Azure Directory”

In questa pagina è necessario inserire nel campo ID Client lo stesso id dell’applicazione creata sul portale Azure.

Business Central

Nel campo descrizione poi si inserirà una descrizione di quello che l’applicazione deve fare in modo da identificarla e poi andremo ad inserire i vari permessi esattamente come per gli utenti di Business Central.

A questo punto l’applicazione è censita in Business Central e possiamo passare alla parte di codice.

Negli ultimi tempi Microsoft ha arricchito la parte di codeunit riguardante la gestione dei token OAuth al fine di migliorare la vita ai programmatori e standardizzare il più possibile il metodo con cui vengono richiesti.

In questo caso verrà utilizzata la codeunit “OAuth2” che contiene la funzione “AcquireTokenWithClientCredentials” che permette di acquisire il token da utilizzare poi per le richieste http.

La procedura ha bisogno di alcuni parametri in ingresso:

  • ClientID, è l’id dell’app che è stata creata su Azure e censita in Business Central
  • SecretID, è l’id segreto che viene staccato al momento della creazione dell’applicazione su Azure
  • TokenUrl, è l’indirizzo del portale a cui viene richiesto il token nel caso di Business Central è composto in questo modo, dove tenantID è l’id del tenant a cui è necessario collegarsi: ‘https://login.microsoftonline.com/’ + TenantID() + ‘/oauth2/v2.0/token’
  • Scopes è una lista di testi e in questo caso va inserito l’indirizzo delle api di Business Central: https://api.businesscentral.dynamics.com/.default
  • Token è il parametro più importante in quanto la variabile passata come var conterrà il token ottenuto dalla funzione e che servirà poi per le richieste http che verranno fatte dall’Extension che si sta creando

Questo è solo uno dei possibili modi per ottenere un token OAuth tramite le funzioni standard di Business Central e molte altre verranno aggiunte coi prossimi aggiornamenti per ottimizzare ancora di più lo scambio di informazioni tramite Api migliorandone notevolmente la possibilità di connessioni tra Business Central e sistemi terzi.

 

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

 

Dynamics 365 Business Central

Che cosa è Business Central

Un software ERP efficace riunisce tutti i processi aziendali per migliorare la collaborazione, supportare l’azienda nella scelta delle decisioni basate sui dati e aumentare la produttività.

La soluzione di gestione aziendale Microsoft Dynamics 365 Business Central, evoluta da Dynamics Nav, è nata per soddisfare questi bisogni.
Tramite questo ERP, funzionale e personalizzabile, Microsoft Dynamics 365 Business Central migliora le prestazioni aziendali grazie alla tecnologia ed ai servizi cloud di Microsoft, supporta la collaborazione in azienda e aiuta a prendere decisioni in maniera più mirata ed efficace.

Microsoft Dynamics 365 Business Central offre le stesse opzioni di NAV: contabilità, finanza, vendite, produzione, magazzino, gestione progetti e clienti per citarne alcune, permette di avere una visione completa del business, grazie al reporting e ad analytics. La soluzione è scalabile e nativamente integrabile con i servizi di Microsoft 365.

Cosa permette di fare Microsoft Dynamics 365 Business Central

In quali processi aziendali Microsoft Dynamics 365 Business Central può dare supporto? Di seguito un macro excursus di quello che può fare per la tua azienda:

  • Gestione finanziaria: attraverso la connessione dei dati aziendali, migliora il controllo sulle risorse aziendali, sul flusso di cassa e sulla contabilità. Grazie alla gestione finanziaria si possono ridurre i rischi, integrare i dati, ridurre i costi per mezzo dell’impatto strategico che l’ERP esercita. Microsoft Dynamics 365 Business Central aiuta ad aumentare la redditività nel rispetto della conformità.
    È possibile usufruire di dashboard integrate con Power BI e quindi avere un reporting rapido ed accurato per poter fare previsioni precise, permette una riduzione del data entry manuale, automatizzando attività quotidiane.
  • Supply Chain: grazie al controllo sui processi legati alla catena distributiva, è possibile semplificare l’acquisto, la produzione, l’inventario e l’elaborazione degli ordini di vendita. Le scorte vengono calcolate in modo automatico per essere sempre ottimizzate e massimizzarne la redditività, la produzione sarà adeguatamente tarata per rispondere alle esigenze del mercato, ed i prodotti opportunamente stoccati. Inoltre, grazie alla tecnologia Internet delle Cose (IoT) si può usufruire di un importante aiuto per la gestione dell’inventario.
  • Servizio clienti: con il modulo CRM integrato è possibile migliorare il servizio clienti, dedicandosi a lead mirate e perfezionando il cross selling, ottimizzando la customer journey del consumatore e migliorando le tempistiche di risposta in caso di richieste di supporto.
  • Gestione dei progetti: è possibile gestire progetti ed attività complesse, impostare e monitorare budget di progetto, gestirne in maniera opportuna la fatturazione e analizzarne le performance mediante un processo continuo di pianificazione e controllo delle risorse, tenendo presente i vincoli costi, tempi e qualità.
  • Business Intelligence: grazie a strumenti facili da consultare, è possibile usufruire di reportistica mirata legata ai processi aziendali gestisti da Microsoft Dynamics 365 Business Central rispettando la sicurezza dei dati.
    Con Microsoft Dynamics 365 Business  Central, si evitano perdite e duplicazioni di dati e si risparmia molto tempo altrimenti impiegato in importazione, controllo e validazione: l’automazione di tutti quei processi di analisi delegabili al software permette al team di concentrarsi sull’interpretazione degli output ottenuti e sulle strategie per migliorare le performance.
  • Risorse Umane: è facile gestire i dati aziendali e semplificare le attività di gestione dei dipendenti come il pagamento delle retribuzioni, l’assunzione di nuovo personale e la rendicontazione dei progetti. In questo modo è possibile identificare eventuali problematiche legate alle risorse umane prima che si verifichino.

Ci sono poi vantaggi globali che un ERP come Microsoft Dynamics 365 Business Central garantisce:

Collaborazione e Distribuzione – La collaborazione viene favorita sia internamente che con altri operatori quali partner o fornitori. È inoltre facile supportare nuovi settori su nuove aree geografiche con un minimo sforzo.

Scalabilità – L’onere dell’investimento può essere adeguatamente commisurato alle dimensioni della azienda ed alle esigenze specifiche, capitalizzando in una unica soluzione ERP gli investimenti IT esistenti: è infatti possibile integrare facilmente Microsoft Dynamics 365 Business Central con altri software in essere.

Valore – La possibilità di disporre di dati in real time e di poter prendere decisioni puntuali, massimizza il valore delle risorse umane in azienda e permette di ottenere performance di maggior pregio.

Si può personalizzare ed integrare Microsoft Dynamics 365 Business Central?

Il prodotto Microsoft Dynamics 365 Business Central è altamente personalizzabile. Le customizzazioni sono molte ad esempio un utente può, all’interno di una pagina qualsiasi, spostare o aggiungere dei campi senza necessità di scrivere codice, può modificare la vista di alcuni elementi e spostarne altri.
Il prodotto Microsoft Dynamics 365 Business Central può essere personalizzato tramite prodotti certificati scaricabili da Microsoft Appsource, Var Prime ha un catalogo prodotti con oltre trenta soluzioni di personalizzazione, oppure usando la Power Platform di Microsoft o creando delle extensions.

Inoltre, può essere facilmente integrato con altri prodotti 365, nativamente con le applicazioni Dynamics 365, con Office 365 e con Microsoft Power BI.

Microsoft Dynamics 365 Business Central on cloud

Perché oggi è il caso di considerare una soluzione in cloud? Le soluzioni ERP cloud utilizzano il modello Software as a Service (SaaS), in cui il provider fornisce l’accesso al sistema ai suoi clienti semplicemente tramite il web.
Sicuramente ci sono diversi vantaggi che rendono questa scelta preferenziale:

  • Risparmio economico: evitando acquisto di SW e HW e non dovendo impiegare ulteriori risorse IT che si possono concentrare su attività a maggior valore.
  • Sicurezza: la sicurezza dei dati viene garantita e il sistema favorisce l’integrazione con i sistemi legacy, semplificando la conformità a livello globale.
  • Flessibilità: la soluzione cloud è implementabile rapidamente e si può distribuire agevolmente in locale

Da Navision a Microsoft Dynamics 365  Business Central, il perché di una scelta

Come abbiamo visto in precedenza, Microsoft Dynamics 365  Business Central è l’evoluzione di Dynamics Nav.

Se hai Navision nella tua azienda, ti consigliamo di passare a Microsoft Dynamics 365 Business Central per alcuni semplici motivi:

  • Performance più veloci e soluzione scalabile. Aumentate policy di sicurezza
  • Integrato nativamente con le soluzioni Microsoft e facilmente integrabile con altri tipi di software aziendali
  • Interfaccia responsive e semplice da usare

Per  approfondire il tema della migrazione da Nav a Business Central leggi il nostro articolo: Da Nav a Dynamics 365 Business Central: cosa valutare quando si considera l’upgrade

 

Fonti e approfondimenti:

Dynamics 365 Business Central

 

 

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.

 

Team Marketing

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.

Jagoda Saccucci

 

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