Extensiones, una nueva forma de personalizar Dynamics NAV

Ismael Bautista Tutoriales Leave a Comment

Las extensiones son una nueva forma de ampliar y personalizar una implementación de Dynamics NAV sin necesidad de modificar los objetos de origen. Esto significa que se pueden realizar modificaciones en NAV sin programar ni modificar objetos .fob, o dicho de otra manera, no se crean campos en tablas ni se modifica la fecha del objeto donde se hayan instalado las extensiones.

Si desinstalamos la app programada con la extensión, se pierden las modificaciones de la extensión instalada. Sin embargo, en SQL se quedan estos datos en una tabla, la cual tiene en su nombre el ID de la extensión desinstalada.

Las extensiones surgieron en la versión de Microsoft Dynamics NAV 2016, y en esta última versión 2017 ha sufrido mejoras, lo cual demuestra que, junto a los Eventos, de los que ya hablamos en este blog (Cómo generar Eventos en Microsoft Dynamics NAV), Microsoft apuesta fuerte por este tipo de tecnología de desarrollo.

Una de estas mejoras ha sido que las extensiones están soportadas por más tipos de objetos que en NAV 2016: si en la versión de 2016 solo eran toleradas por tablas, páginas, codeunits y menusuites, en la versión de 2017 incluye el soporte de reports, XMLports y queries. Además, por defecto, en NAV 2017 vienen algunas extensiones instaladas, entre las que destaca una extensión para realizar pagos por PayPal.

¿Cómo funcionan las extensiones?

Las extensiones funcionan de la siguiente manera: primero, un partner desarrolla una extensión y la empaqueta. Tras esto, la extensión es publicada y finalmente instalada. Esto favorece que una misma extensión pueda ser aplicada n veces, esto es, un mismo “desarrollo a medida” puede ser fácilmente instalable en diferentes clientes, sin necesidad de tener que programar nuevo código ni tener que hacer “merges” de objetos.

Por el contrario, una de las limitaciones que tiene, es que ella misma limita la capacidad de desarrollo a medida, ya que su nacimiento está pensado para desarrollar un mismo código para poder ser distribuido por muchas empresas, siguiendo un funcionamiento similar al de las app’s actuales en los teléfonos móviles.

Actualmente la creación, manipulación y modificación de las extensiones se debe hacer mediante comandos de PowerShell. PowerShell es una herramienta qué ya viene de serie en Windows 10, y versiones modernas de Windows server, y como su nombre indica, su función es la de funcionar como un terminal del sistema operativo.

Algunos comandos importantes de PowerShell para Extensiones

GET-NAVAppInfo -> Obtiene información sobre una App de NAV (extensión) o sobre una instancia de servidor de Dynamics NAV especificada.

Install-NAVApp -> Instala una App (extensión) de NAV publicada. (ver más)

Extensiones para NAV, una nueva forma de personalizar el ERP

Ejemplo Install-NAVApp

Publish-NAVApp -> Publica una App (extensión) de NAV en la instancia de servidor de NAV especificada. (ver más)

Extensiones para NAV, una nueva forma de personalizar el ERP

Ejemplo Publish-NAVApp

Repair-NAVApp -> Repara una App (extensión) de NAV recompilándola contra la aplicación base actual.

Uninstall-NAVApp -> Desinstala una App (extensión) de NAV.

Unpublish-NAVApp -> Elimina la publicación del catálogo de extensiones especificado en la instancia de servidor de NAV.

Ejemplo de empaquetamiento y publicación de extensión con comandos de PowerShell

Export-NAVApplicationObject –Path original.txt –DatabaseName NAV90_STD –DatabaseServer AZ-SQL01 – Importa en un .txt todos los objetos de la base de datos NAV90_STD

Export-NAVApplicationObject –Path modificada.txt –DatabaseName NAV90_FORMACION –DatabaseServer AZ-SQL01 – Importa en un .txt todos los objetos de la base de datos NAV90_FORMACION.

Compare- NAVApplicationObject –OriginalPath .\original.txt –ModifiedPath .\modificada.txt –DeltaPath delta.txt – Compara los dos archivos y lo que es igual lo va a ignorar.

Split-NAVApplicationObjectFile –Source .\delta.txt –Destination extension  – Genera un txt’s con las diferencias anteriores separados por objetos, en la carpeta extensión.

Vamos a convertirlo en extensión

New-NAVAppManifest –Name “Extensión de prueba” –Publisher “Aitana Management” –Version “1.0.0.0” –Description “Una extensión de prueba” | New-NAVAppManifestFile –Path extensiondeprueba.xml

Ahora solo faltaría empaquetar la extensión

Get-NAVAppManifest –Path .\extensiondeprueba.xml | New-NAVAppPackage –Path ExtensionDePrueba.navx –SourcePath .\extension

Para publicar e instalar la extensión, se debe ejecutar el Powershell como administrador

Publish-NAVApp NAV90_STD –Path .\ExtensionDePrueba.navx
Install-NAVApp NAV90_STD –Name “Extensión de prueba”

 

Ismael Bautista Perales
Técnico de desarrollo MS Dynamics NAV

 

Si quieres ponerte en contacto con nosotros puedes usar este formulario o llamarnos al 902 500 358:

Deja un comentario