MICROSOFT DYNAMICS NAV EXTENSIONS
- On 20 Dicembre, 2017
- automation, deploy, dynamics, dynamics nav, erp, microsoft dynamics nav, navision, powershell, tech docs
Le Extensions rappresentano un modo di personalizzare una distribuzione di Microsoft Dynamics NAV senza modificare gli oggetti originali. È possibile installare, aggiornare o disinstallare una singola funzionalità nelle distribuzioni locali, o per determinati tenant in una distribuzione multi-tenant.
Gli utenti possono facilmente aggiungere o rimuovere funzionalità orizzontali o personalizzate per la loro soluzione, che possono essere aggiornate molto più frequentemente e facilmente.
In Microsoft Dynamics NAV 2017, è possibile creare extensions per personalizzare pagine e tabelle. La principale differenza rispetto allo sviluppo classico è che le modifiche al codice sorgente non sono consentite. Invece, si utilizzano gli eventi C/AL per estendere e personalizzare gli oggetti.
In figura sono riportati le principali caratteristiche e vantaggi nell’uso delle extensions:
Le extensions sono costituite da pacchetti (.navx). il file .navx contiene al suo interno:
- Un file xml detto Manifest, che contiene informazioni circa la versione, l’autore, la descrizione, il logo etc.
- uno o più oggetti in formato txt, modifiche a oggetti esistenti, permission sets (xml).
- I pacchetti possono essere firmati.
Le extensions possono essere possono essere installate o disinstallate dall’Extensions Manager presente in Dynamics NAV.
Con Dynamics Nav 2017 sono installate le extensions riportate nell’immagine seguente:
Vediamo ora nel dettaglio come creare un’extensions.
Nella guida che segue verrà illustrato il procedimento per la creazione di un’extension, senza soffermarsi sulla sua funzionalità specifica.
Per facilitare la creazione, la pubblicazione, l’installazione e la gestione delle estensioni, Microsoft Dynamics NAV 2017 include numerose cmdlet di Windows PowerShell, utilizzate anche nel seguente esempio.
Requisiti di Sistema
Prima di procedere è bene preparare l’ambiente di sviluppo predisponendo tre db:
- DB Originale, GestioneClienti
- DB su cui eseguire gli sviluppi, GestioneClientiDEV
- DB su cui eseguire i test, GestioneClientiTEST
A cui sono collegate le seguenti istanze:
TIPS: Per facilitare la preparazione dell’ambiente è possibile procedere alla creazione dei db e delle istanze utilizzando le relative cmdlet di PowerShell, così come mostrato nel precedente articolo:
Nel DB GestioneClientiDEV, verifichiamo quali sono gli oggetti modificati:
In particolare vediamo che è stata modificata la page dei Clienti, aggiungendo il pulsante Calcola Codice:
E il campo Codice Cliente Riclassificato:
NB: Se l’extension modifica lo schema di una tabella esistente o aggiunge nuove tabelle, sarà necessario un codice di aggiornamento per gestire i dati che sono stati archiviati nelle tabelle durante l’installazione. A tale scopo è necessario creare una codeunit che contiene le seguenti funzioni:
- OnNavAppUpgradePerDatabase()
- OnNavAppUpgradePerCompany()
Il codice di aggiornamento dipenderà da ciò che si desidera fare con i dati archiviati, oltre a fattori aggiuntivi come la versione dei dati di archivio, se lo schema è stato modificato e se i dati possono essere modificati dagli utenti.
In ogni caso è necessario che tale codeunit ci sia per poter finalizzare l’esportazione del pacchetto. Se non si intende gestire in alcun modo i dati presenti nelle tabelle modificate dall’extension, è possibile lasciare vuote le funzioni.
Iniziamo il processo di creazione del package importando i comandi necessari per il compimento del processo.
Una volta caricati i moduli, proseguiamo esportando tutti gli oggetti in formato txt del db originale GestioneClienti, all’interno del percorso C:\Extension:
Ripetiamo l’operazione esportando questa volta gli oggetti del db GestioneClientiDEV, al cui interno sono contenuti gli sviluppi. La cartella di esportazione è sempre C:\Extension.
Possiamo passare ora a creare il delta, ovvero il file che contiene le differenze tra gli oggetti della versione originare e quelli del db modificato.
Arrivati a questo punto possiamo creare il file xml (manifest) che contiene le informazioni generali sull’extension:
Creiamo il pacchetto (.navx)
Al termine delle operazioni la cartella C:\Extension sarà così strutturata. Abbiamo creato l’extension CustomerClassification.
Passiamo a pubblicare e installare il pacchetto sull’istanza di test GestioneClientiTEST:
Tramite il comando Start avviamo il client di Microsoft Dynamics NAV 2017, e cerchiamo l’Extension Manager.
Possiamo verificare come tra le extensions installate risulti ora anche il pacchetto appena creato:
Infatti aprendo la lista dei clienti vediamo come sia presente il campo Codice Cliente Riclassificato:
0 Comments