Comunidad de usuarios y profesionales en:
Microsoft Dynamics NAV ® Navision


MasterVAR
 Buscar
  ..:: Noticias » Recientes ::.. viernes, 01 de julio de 2016     Registrarse    Entrar
         

         





10/10/2013
Microsoft Dynamics NAV 2013 R2
TdB
13/09/2013
SEPA in Microsoft Dynamics NAV Navision
TdB
26/08/2013
Tips dBits para Windows Phone
TdB
04/05/2013
Product Capabilities in Dynamics NAV 2013
TdB
06/02/2013
Que es Windows Azure
TdB
12/12/2012
Essentials vs Starter Pack
TdB
03/12/2012
Cloud e Implicaciones Legales
TdB
06/10/2012
PlannerOne - El componente de programacion de produccion
TdB
04/02/2012
Simple Notifications
TdB
28/02/2011
Samplon - Session Manager
TdB
01/01/2011
Gantt Manufacturing
TdB
01/01/2011
Dynamics NAV 2009 R2
TdB
14/01/2010
Nav-to-Net (Truely integrated e-Commerce for NAV)
TdB
29/10/2009
Navutilus Search and Replace
TdB
Mie, 26 Ago 2009
Cuadro de Mando Financiero
TdB
Mie, 24 Dic 2008
Dynamics NAV 2009
TdB
Mar, 24 Jul 2007
ExpandIT Backup Utility
TdB
Sab, 26 May 2007
Informacion de tablas
TdB
Lun, 6 Nov 2006
Copias de Navision automatizadas
TdB
Vie, 18 Ago 2006
ANSI a ASCII y viceversa
TdB
Lun, 17 Jul 2006
Mostrar solo la primera linea
TdB
Sab, 26 Abr 2006
SQL Server 2005 Report Pack for Microsoft Dynamics NAV 4.0
TdB
Jue, 20 Abr 2006
Herramienta de Renumeracion y Comparacion
TdB
Mar, 3 Ene 2006
Show Documentation v1.00
TdB
Sab, 24 Dic 2005
MultiStock v1.00
TdB
Mie, 26 Oct 2005
Diario oficial en Excel v1.00
TdB
Mie, 12 Oct 2005
Import. movs. tarjetas de credito v1.02
TdB
Sab, 1 Oct 2005
Vista Prov. / Prod. / Precio / Dto. v1.00
TdB
Lun, 19 Sep 2005
Mail with Word v1.02
TdB
Acceda a downloads



2013-12-30
Comparador de versiones de Dynamics NAV

2013-09-13
¿Como almacenar documentos en SkyDrive y compartirlos en Microsoft Dynamics NAV?

2012-03-13
¿Como saber si una fecha es de cierre?

2012-02-18
¿Como establecer si un registro se muestra o no en un form o page?

2011-09-01
Imprimir PDF por codigo desde Navision Classic

2010-01-14
Como enviar un email con un informe adjunto a través de Dynamics NAV

2009-12-22
Envío masivos de emails desde Navision

2008-06-14
ExpandIT Launch - Idioma de ejecución

2008-04-13
IVA aduanas

2007-10-30
Cambiar el Caption en tiempo de ejecución

2007-10-30
Error traceflag 4616 al iniciar NAV sobre SQL 2005

2007-06-13
Movimientos de corrección

2006-10-12
Enviar pulsaciones de teclas

2006-09-01
Ordenar un array

2006-08-18
Evitar caracteres extraños al importar / exportar

2006-07-21
Abrir formulario por defecto

2006-05-30
Enviar email desde Navision

2006-03-20
Pasar parámetros entre objetos

2006-02-27
Métodos de acceso a Navision

2006-02-12
Eliminar sesiones

2005-11-01
Reportar en Excel

2005-10-24
Variables globales y variables locales

2005-10-13
Asiento de apertura inexistente

2005-10-08
Acceder a Navision sin contraseña

2005-10-01
Enlace con varios subforms simultaneamente

Acceda a los trucos



2016-06-01T10:26
PEPPOL vs Facturae

2016-06-17T12:49
Dataport NAV2009 - eliminar cabecera en la importacion

2016-06-15T10:10
Problema idioma NAV 2013 R2

2010-06-07T15:06
Ejecutar programa externo

2016-06-01T14:36
hoja demanda de pedidos

2016-05-23T13:34
Modificar pie de página Word

2016-04-05T09:52
modificar nuevo campo creado en la tabla de movimientos de proveedor

2016-04-03T11:17
Aprender a programar en NAV

2016-03-14T08:50
Quitar el foco en un CONFIRM

2016-03-29T15:23
Confirmar si desea salir de la aplicación

2016-03-15T10:04
Importar desde Excel

2016-02-03T07:15
Calendario laboral

2016-02-19T16:44
Entendiendo las Funciones y Variables

2016-02-17T05:22
Abrir formulario para Nuevo registro

2016-02-09T11:29
Numero de meses transcurridos entre dos fechas

2016-02-10T08:12
Fechas traducidas

2016-02-10T10:22
enviar correo

2016-02-14T00:13
Abrir un formulario dada una condición.

2016-02-16T09:15
error configuration file required {0}

2016-01-29T12:06
Acceso a Microsoft Access

2016-01-28T13:18
Rol tabla y DatosTabla

2015-11-24T12:00
Imprimir Excel exportado desde Navision 2013 R2

2016-01-19T15:55
Relacion en base de datos albaran de venta y factura de venta

2016-01-08T11:06
Cambiar remitente al crear un mail

2015-02-23T13:06
Request form - traer un campo en el request form

2015-11-17T22:07
Tamaño de Visualización de Campo

2015-11-26T11:56
Lookup en FlowField

2015-11-15T02:28
Developer Aplicar Cambios sin reiniciar

2015-11-10T08:30
NAV 2015 Filtro de Page por USERID

2015-11-11T11:13
Validar direcciones de email en NAV 4.0

2015-11-04T12:58
Primer dia semana

2015-10-29T16:46
Visualización de varios idiomas de NAV 2015 con Windows 10

2015-10-04T19:22
Outlook integración

2015-10-08T11:46
2009 RTC - No se ven los page actions

2015-10-09T13:42
Documentos cobrar-pagar

2015-05-29T11:21
Export a Word

2015-10-01T11:15
Analista / Programador NAVISION oferta de empleo en Sevilla

2015-05-19T07:38
Nav 5.1 Lento

2015-09-17T09:37
Imprimir PDF

2015-09-18T09:45
Error Otro usuario ha modificado el registro de la tabla Cab. Ventas

2007-04-10T03:40
problema al modificar variable de una tabla

2015-09-11T08:23
No abrir 2 veces el mismo formulario

2015-05-18T10:57
NAV 5.0 error raro

2015-08-26T07:36
Error el registro ya existe

2015-08-24T08:33
formato pagarés la Caixa para impresoras matriciales

2015-08-16T09:43
Dynamics NAV 2015 y Windows 10

2015-08-14T09:20
Microsoft Dynamics Nav Classic

2015-07-23T13:47
Exportar Factura En XML

2015-07-16T17:06
Declaración IVA 303

2015-07-08T16:22
Sustituir CreateSheet en Nav 2013


More...

Acceda a los foros



En esta sección encontrará las últimas noticias sobre el ERP Microsoft Dynamics NAV (Navision)
Acceda al blog y participe comentando las noticias


Ir al Blog

 Noticias Minimizar
2016-06-27
Ley de morosidad y los cambios introducidos en las CUs de mayo


Como prometí, os paso a resumir un cambio incorporado en las actualizaciones (Cumulatives Updates) de Microsoft Dynamics NAV de mayo, relacionado con la Ley de morosidad y que es interesante conocer.

El objeto afectado por el cambio es el “Report 10748: Proveedor – Pagos vencidos”.


Fundamentos:

El pasado 4 de febrero de 2016, se publica la siguiente resolución en el BOE:


Que básicamente tiene como objeto principal sistematizar y aclarar la información que las sociedades mercantiles deben recoger en la memoria de sus cuentas anuales individuales y consolidadas, a efectos del deber de información previsto en la disposición adicional tercera de la Ley 15/2010, de 5 de julio, de modificación de la Ley 3/2004, de 29 de diciembre, por la que se establecen medidas de lucha contra la morosidad en las operaciones comerciales.

En su Artículo 5 se establecen las fórmulas de cálculo del período medio de pago a proveedores:

1.       Las sociedades mercantiles que elaboren el modelo normal de memoria, calcularán el periodo medio de pago a proveedores de acuerdo con la siguiente fórmula:

Periodo medio de pago a proveedores =
Ratio operaciones pagadas * importe total pagos realizados + Ratio operaciones pendientes de pago* importe total pagos pendientes
Importe total de pagos realizados + importe total pagos pendientes

2.       La ratio de las operaciones pagadas se calculará de acuerdo con la siguiente fórmula:

Ratio de las operaciones pagadas =
∑ (número de días de pago * importe de la operación pagada)
Importe total de pagos realizados

Se entenderá por número de días de pago, los días naturales que hayan transcurrido desde la fecha en que se inicie el cómputo del plazo hasta el pago material de la operación.

3.       La ratio de las operaciones pendientes de pago se calculará de acuerdo con la siguiente fórmula:

Ratio de las operaciones pendientes de pago
=
∑ (número de días pendientes de pago * importe de la operación pendiente de pago)
Importe total de pagos pendientes

Se entenderá por número de días pendientes de pago, los días naturales que hayan transcurrido desde la fecha en que se inicie el cómputo del plazo hasta el último día del periodo al que se refieran las cuentas anuales.

4.       Para el cálculo tanto del número de días de pago como del número de días pendientes de pago, la sociedad comenzará a computar el plazo desde la fecha de recepción de las mercancías o prestación de los servicios. No obstante, a falta de información fiable sobre el momento en que se produce esta circunstancia, se podrá tomar la fecha de recepción de la factura.

5.       Las sociedades mercantiles que elaboren la memoria en el modelo abreviado del Plan General de Contabilidad, o que opten por la aplicación del Plan General de Contabilidad de Pequeñas y Medianas Empresas, calcularán el periodo medio de pago a proveedores de acuerdo con la siguiente fórmula:

Periodo medio de pago =
Saldo medio acreedores comerciales
x 365
Compras netas y gastos por servicios exteriores

A estos exclusivos efectos, el concepto de acreedores comerciales engloba las partidas de proveedores y acreedores varios por deudas con suministradores de bienes o servicios incluidos en el alcance de la regulación en materia de plazos legales de pagos.

El concepto de compras netas y gastos por servicios exteriores engloba los importes contabilizados como tales en los subgrupos propuestos en la quinta parte del Plan General de Contabilidad y del Plan General de Contabilidad de Pequeñas y Medianas Empresas.


Los cambios introducidos en NAV se circunscriben al “Report 10748 – Proveedor – Pagos vencidos”, y son los siguientes:

1.       En el informe se cuentan los valores para Average payment period to Suppliersy Ratio of outstanding payment transactions (por proveedor y total).

2.       “Weighted average term exceeded” se muestra ahora como “Ratio of payed transactions” con un pequeño cambio en la forma en la cual que se calcula: el número de paydays será negativo (en vez de 0) si el pago se hace antes de la Fecha de Vencimiento. Las fórmulas para los 3 nuevos valores son las siguientes:



Average payment period to Suppliers =
Ratio of payed transactions x Total payments made + Ratio of pending payment transactions x Total pending payments
Total payments made + Total pending payments 

Ratio of payed transactions =
∑ (number of paydays* x amount of the payed transaction
Total amount of payments made 

Ratio of outstanding payment transactions =
∑ (number of outstanding payment days* x transaction pending payment amount)
Total pending payments


paydays = días naturales calculados desde la fecha de vencimiento al pago actual (este valor ya se calculaba, pero solo para pagos vencidos). Si el pago se hace antes de la fecha de vencimiento legal, este valor será negativo.
* outstanding payment days = (días de pago documentos abiertos) días naturales calculados desde la fecha de vencimiento legal hasta el día en que las cuentas anuales se cierran. En NAV, será la “End Date” que introducimos en la Request Page del informe.

Como ya había comentado estos cambios se han introducido desde los CUs de mayo, es decir:

-          NAV 2016:  Cumulative Update 07
-          NAV 2015: Cumulative Update 19
-          NAV 2013 R2: Cumulative Update 31
-          NAV 2013: Cumulative Update 38

Tenéis acceso a los CUs mencionados aquí: Cumulatives Updates de mayo.

Espero que os haya servido de ayuda y aclaración.


Salu2, Miguel Llorca.

Fuentes: 



2016-06-05
Actualizaciones de Junio para Microsoft Dynamics NAV 2016, 2015, 2013 R2 y 2013

Como es habitual a comienzos de cada mes, tenemos a nuestra disposición una nueva remesa de actualizaciones para las últimas versiones de Microsoft Dynamics NAV.

Aquí os dejo los enlaces directos:


En esta remesa de actualizaciones se incluyen específicamente para España algunas correcciones menores referentes al módulo de Tesorería, más concretamente relativas a SEPA.

Como siempre: no olvidéis hacer copia de seguridad previa a la actualización o contactar con vuestro partner de confianza.

Un saludo y hasta la próxima,

Miguel Llorca.


2016-05-11
Actualizaciones (CUs) de mayo para NAV 2016, 2015, 2013R2 y 2013





Este mes se han hecho de rogar… pero finalmente ya tenemos aquí las CUs.

Aquí están los enlaces:



MUY IMPORTANTE:se incluyen cambios que afectan al informe Informe 10748 – Proveedor – Pagos vencidos. En breve publicaré un post con un detalle más completo.

Como siempre: no olvidéis hacer copia de seguridadprevia a la actualización o contactar con vuestro partner de confianza.


Un saludo! Miguel Llorca.


2016-04-14
Qué es Project Madeira: Primeras impresiones

Microsoft acaba de lanzar la primera “beta” pública del nuevo ERP en la nube para PYMEs, al que ha llamado “Project Madeira”. Este nombre no es casual, como ya sabréis todos los que seguís de cerca la evolución de Microsoft Dynamics NAV. Básicamente, me estoy refiriendo a que precisamente el nombre en clave de la nueva versión de NAV que saldrá a finales de este año es “Madeira” (para NAV 2016 fue “Corfú” y para NAV 2015 fue “Sicilia”). ¿Significa que esto es la beta de la nueva versión de NAV? … pues no :-)

A lo largo de estos días estoy recibiendo muchísimas consultas sobre “Project Madeira”, así que intentaré despejar algunas de las más comunes.


¿Qué es Project Madeira?


Es el primer ERP en formato SaaS (Software como Servicio) de Microsoft y está muy orientado a PYMEs. Es un nuevo paso, acorde con la visión de “cloud-first, mobile-first” de Microsoft, ya que podremos trabajar desde cualquier dispositivo (Windows Phone, iOS y Android), así como desde cualquier navegador.




Para los que habéis trabajado con Microsoft Dynamics NAV 2015, os sonará aquello de los objetos "mini", que a grandes rasgos era una simplificación que se asociaba a un rol específico de "pequeña empresa", donde se eliminaban la mayoría de los campos y procesos de NAV que no eran estrictamente imprescindibles para completar unos ciclos "normales" de gestión. Pues bien, podríamos decir que la filosofía de "Project Madeira" es esta misma. Lo que se ofrece "out-of-the-box" es un producto que funciona casi desde el minuto 1… sencillo, ágil, accesible, intuitivo.


También hay que mencionar que está totalmente integrado con Office 365, de serie. Es decir, que si tenemos una suscripción de Office 365, podríamos por ejemplo ejecutar tareas de "Project Madeira" desde nuestro Outlook.




¿Cuándo estará disponible?
 
En principio se prevé que su lanzamiento será a lo largo del segundo semestre de este año, aunque mi opinión personal (basada sólo en intuición, no tengo información de esto) es que no estará antes de septiembre para EE.UU.

Para el resto de países no existe una previsión definitiva, aunque lo que se espera es que no exista un gran desfase entre su lanzamiento en EE.UU. y el resto de países.



¿"Project Madeira" es NAV 2017?
 
Como ya dije anteriormente, no. Este es un nuevo producto, y el desarrollo de NAV "Madeira" se lleva en paralelo, pero por supuesto, el nombre no es una mera coincidencia, ya que la base del producto es Microsoft Dynamics NAV.



¿Cómo podré adquirirlo?
 

A través de los partners Dynamics que están dentro del programa CSP (Cloud Solution Provider), que además podrán ofrecer sus propias configuraciones basadas en "Project Madeira", bien con "packs" que incluyan Office 365 + PowerBI, o por ejemplo ofreciendo una solución vertical incorporada.




¿Y cómo se puede desarrollar/personalizar?

Se hará siempre a través de "extensiones" de NAV.




¿Con extensiones? Pero… si existen limitaciones!
 
Os cuento, hasta donde puedo leer, y como ya he repetido en múltiples foros: NAV 2016 es sólo "la punta del iceberg". La forma en la que desarrollaremos desde esta versión en adelante va a suponer un gran punto de inflexión en la vida del producto (al igual que ya en su día lo supuso NAV 2009). Con la nueva versión de NAV, muchísimas de las restricciones y limitaciones actuales van a desaparecer… y estamos hablando sólo del principio (market de apps, …).

 
Ahora vamos con las primeras impresiones
 
Lo primero que me llama poderosamente la atención es la sencillez y la "limpieza" del área de trabajo, algo que ya se viene puliendo en las últimas versiones de NAV. Desde el punto de vista del usuario es tremendamente útil, poder tener acceso tan sólo a aquello que requiero para mis actividades diarias desde el principio.



 


Con muy poco esfuerzo, puedo personalizar mi área de trabajo, incorporando como decía aquella información que es relevante para el desempeño de mi trabajo.


 


La navegación, muy fluida, como en las últimas versiones del cliente Web:






Las fichas se han simplificado, como ya comentaba, ajustándose más a un rol de "pequeña empresa":





Por supuesto, toda la información está trazable, es decir, que se mantiene la funcionalidad de "navegar" en la aplicación.


Me ha gustado mucho el enfoque de los "productos", y esto sí que es un gran cambio. Si vamos al listado de producto, lo que nos encontramos en un primer pantallazo es esto:





Y además, con la posibilidad de cambiar el tipo de visualización:
 





Con la información del precio de venta y el stock.


Por supuesto, la gestión de roles de usuario y asignaciones de conjuntos de permisos puede hacerse también.

 
 
 

Y también tengo la posibilidad, como no podía ser de otra manera, de realizar algunas configuraciones, de forma muy sencilla.





Puedo cambiar los parámetros de la empresa, como en la página de "información empresa" de NAV, así como los números de serie, configuración contable, etc.

También realizar una reconfiguración completa con un asistente, importar datos,… y muchas cosas más.

Me ha parecido simplemente ESPECTACULAR la forma de implementar la extensiones. De una forma tan sencilla como esta:





En resumen, un producto con muchísimo recorrido y al que le deparo un gran futuro en mercados como el español. Tengo el pleno convencimiento de que es un "caballo ganador".
 
Cuando pueda trabajar con la solución algunas semanas más haré una revisión más profunda. Mientras tanto, confío en haber aclarado las principales dudas en torno a "Project Madeira".


Gracias y un saludo, Miguel Llorca.
 

 



2016-04-04
Cumulatives Updates de abril para NAV 2016, NAV 2015, NAV 2013 R2 y NAV 2013







Ya tenemos las CUs de abril para NAV 2016, NAV 2015, NAV 2013 R2 y NAV 2013.
Os dejo los enlaces:


Algunos apuntes reseñables:

- En el update de NAV 2013 se soluciona un problema conocico con la exportación de SEPA.
- En el update de NAV 2016 se incluyen modificaciones en la generación del modelo 349.
 
Como siempre: no olvidéis hacer copia de seguridad previa a la actualización o contactar con vuestro partner de confianza.

Un saludo! Miguel Llorca.


2016-03-22
La nube, el modelo “multi-tenant” y las extensiones de NAV 2016



Todo el mundo es consciente hoy en día de que estamos en la “era de la nube”… y lamento decir que quien no lo vea de esta forma, tiene un serio problema de realidad distorsionada.

Hace como 4 años, desde Microsoft se nos decía a los partners que teníamos que “cambiar el chip”, y nos mostraban aquellas gráficas impresionantes con curvas exponenciales basadas en datos de encuestas de Gartner e IDCsobre el mercado cloud.

Se comenzaba a hablar de cosas muy raras, con ejemplos tan gráficos y demostrativos como el ya famoso “pizza-as-a-service”:




 Todo comenzaba a girar sobre la “arquitectura orientada a servicio”.



Una nueva realidad

Como decía, nuestra realidad ha cambiado. En España, casi la totalidad de las empresas son PYMEs, y son más las “P’s” que las “M’s”. Además, fruto de la mal llamada “crisis”, existen multitud de personas que sin más alternativas, han apostado por el autoempleo.

Partiendo de este escenario: ¿Quién hoy en día realiza una importante inversión para poner en funcionamiento su Sistema de Gestión?

No digo que el modelo de negocio “clásico”, donde las consultoras realizaban proyectos de servicios de semanas esté acabado ni muchísimo menos, pero sí que estamos hablando de una cuota de mercado inferior, en comparación a años atrás. Es decir, que prácticamente se limita a las medianas y grandes empresas y a aquellas que han tenido la suerte de optar a alguna subvención.

Está claro que se requiere un modelo donde las personalizaciones se reduzcan y las implantaciones sean rápidas, repetibles y fácilmente actualizables. En definitiva, abaratar los costes para poder dar cobertura a las necesidades reales de nuestro mercado.

Dicho esto, me gustaría exponeros qué es el “multi-tenant” y por qué cobra ahora más sentido que nunca.


¿Qué es el “multi-tenant”?

Si nos ceñimos a la definición más terrenal (léase Wikipedia), encontramos esto:

<<Tenencia múltiple o multitenencia en informática corresponde a un principio de arquitectura de software en la cual una sola instancia de la aplicación se ejecuta en el servidor, pero sirviendo a múltiples clientes u organizaciones (tenedor o instancia). Este modelo se diferencia de las arquitecturas con múltiples instancias donde cada organización o cliente tiene su propia instancia instalada de la aplicación. Con una arquitectura de tenencia múltiple, la aplicación puede particionar virtualmente sus datos y su configuración para que cada cliente tenga una instancia virtual adaptada a sus requerimientos. Algunos expertos consideran la tenencia múltiple como un factor decisivo del paradigma de computación en la nube>>

Desde mi punto de vista, esta es una definición muy clara y correcta del concepto.


El “multi-tenant” en Microsoft Dynamics NAV

Esta nueva opción de implementación se introdujo en NAV en su versión 2013 R2, posibilitando por consiguiente su despliegue en Azure.

El fundamento principal es separar los “objetos de aplicación”, es decir, aquellos que son comunes para todas las empresas, de los “datos” específicos y particulares de cada una de ellas.

Esto significa que cuando realice un desarrollo o una actualización tan sólo lo haré 1 vez, y todas las empresas tendrán acceso dado que comparten los objetos de aplicación.

 







Obviamente, las ventajas están bien claras:


  • Reduzco costes de mantenimiento: como es lógico, al implementar los desarrollos una sola vez, reduzco enormemente los costes que supondrían mantener múltiples plataformas para múltiples empresas. 
  • Protejo mi propiedad intelectual: algo en lo que a veces no reparamos, pero que no es baladí. Cuando se programa en Microsoft Dynamics NAV todo el código va embebido en la base de datos. Por tanto, salvo que se trate de un “add-on”, todas las personalizaciones y desarrollos a medida son accesibles por cualquier partner o cliente con licencia de desarrollo. Evidentemente, esto es otro debate independiente y las opiniones son muy diversas al respecto. Yo personalmente considero que esto es sólo una parte, ya que detrás de todo desarrollo existe el “conocimiento del negocio”. 
  • Más clientes, más rentabilidad: una vez realizada la “inversión” en mi infraestructura y mis desarrollos, añadir nuevos clientes es casi un trámite. Mi rentabilidad irá aumentando significativamente conforme de servicio a más clientes.

Podríamos alargar esta lista bastante más, pero considero que “la idea” en líneas generales la tenemos ya.


Esto no es todo… ¿qué cambia con NAV 2016?

En NAV 2016, como muchos ya sabéis se ha introducido la posibilidad de crear “extensiones”, con el fin de ampliar la funcionalidad y con la filosofía de respetar el código original. Y lo bueno es que es aplicable tanto a escenarios clásicos “on-premise”, como a escenarios multi-tenant, es decir, puedo habilitar estos paquetes de extensión para tenants específicos o para todos mis tenants.

Es cierto que existen aún limitaciones, y que hay usuarios que se quejan de esto, pero pensemos en el gran cambio de filosofía, que seguro marcará un punto de inflexión en la historia del producto. La principal diferencia con el “desarrollo clásico” es que no están permitidas las modificaciones del código original, y en su lugar, utilizamos “eventos C/AL” para ampliar y personalizar los objetos.

La gestión de distribución de estos paquetes (que son ficheros .navx), la realizaremos con PowerShell, que a estas alturas siempre la tenemos en el “top 5” del listado de aplicaciones más usadas en Windows 10 :-)

Gráficamente, el concepto sería algo así:

En un entorno NAV 2015, tendríamos 1 servidor por cada solución personalizada de NAV:



En un entorno NAV 2016, podemos tener un solo servidor con múltiples personalizaciones gracias a las Extensiones:



Para terminar, voy a hacer una breve introducción sobre el funcionamiento de las extensiones, que espero que sea clarificadora.


¿Cómo funcionan las extensiones?

Las extensiones son, en términos simplificados, la aplicación de objetos y “objetos delta” en tiempo de ejecución para una combinación específica de un paquete de extensión y un tenant. Cuando se publica una extensión en un despliegue de NAV, lo que hace es compilar los objetos frente a la base de datos de “objetos de aplicación” (que mencionamos anteriormente en el post). De esta forma, cuando la extensión es instalada en un tenant, se almacena dicha asociación y construye el esquema de base de datos correspondiente. En tiempo de ejecución, Microsoft Dynamics NAV sencillamente carga los objetos asociados para esa extensión y el tenant (la combinación de ambos).

Es posible publicar múltiples extensiones a un despliegue de NAV y, en entornos multitenant, instalar cualquier combinación de extensiones publicadas para cada tenant, como podíamos observar en el gráfico de arriba. Al final, esto lo que nos brinda es un alto grado de elección de funcionalidad y al mismo tiempo maximiza el hardware existente y la carga de administración.


Profundizaré en el modelo de extensiones y en su gestión en próximas publicaciones. Confío en que la publicación haya sido de vuestro interés.


Un saludo, Miguel Llorca.



2016-03-16
NAVUG European Congress


Ya tenemos el primer gran evento europeo para la comunidad NAV, el NAVUG European Congress.


Esta conferencia, que se celebrará los días 9 y 10 de mayo de 2016 en Stuttgart (Alemania), está orientada a los usuarios de Dynamics NAV, con la idea de maximizar el retorno de su inversión en su herramienta de gestión.

Ya hay algunas sesiones interesantes programadas:

  • Why the Cloud? Options and Considerations for Full or Hybrid Hosting
  • Approaches to Managing Your Historical Data
  • Best Practices for Dynamics NAV Administration and Security
  • Power BI in Action
  • Global vs. Local: Localizations and Cultural Aspects
... y mucho más.

Las sesiones serán impartidas tanto por partners y MVPs, como por usuarios experimentados, viendo ejemplos prácticos, "how-to's",... y por supuesto se recogen tanto versiones nuevas como anteriores del producto.

Los beneficios que puede obtener al asistir son:

  • Ampliar su conocimiento del producto a través de sesiones prácticas de formación, preparados por los usuarios finales y socios ampliamente experimentados en la herramienta.
  • Mejorar su competencia con Microsoft Dynamics NAV para ser más eficientes en el lugar de trabajo.
  • Más información sobre la versión de Dynamics NAV que está utilizando actualmente, así como sobre las nuevas versiones si tiene en mente una actualización.
  • Hacer networking con otros compañeros del gremio, que utilizan el producto diariamente.

La conferencia se llevará a cabo en el Centro Internacional de Congresos de Stuttgart.

Más información en navugcongress.com

http://www.navugcongress.com
 




2016-03-14
Integrando Microsoft Dynamics NAV 2016 con Microsoft Dynamics CRM


Una de las novedades de la nueva versión de NAV es la integración nativa con Dynamics CRM.

En las versiones anteriores (desde NAV 2009 R2 hasta NAV 2015) teníamos que usar el “Connector for Microsoft Dynamics”, que tenía una serie de limitaciones, y que estaba fundamentalmente concebido para la sincronización de datos entre tablas de NAV y entidades de CRM.

Ahora, la integración se hace de forma muy rápida y con un elevado grado de automatización.
Los 4 pasos para integrar NAV con CRM son los siguientes:
  1. Configurar Dynamics CRM.
  2. Configurar la conexión desde Dynamics NAV a Dynamics CRM.
  3. Validar la configuración de sincronización de datos.
  4. Hacer el “mapeo” o emparejar los registros entre Dynamics NAV y Dynamics CRM.


1.       Configuración de Microsoft Dynamics CRM:

Lo primero es configurar los usuarios de Microsoft Dynamics CRM para la conexión y sincronización de Microsoft Dynamics CRM. Opcionalmente, se puede instalar la Solución de Integración de Microsoft Dynamics NAV que permite ver las estadísticas de los clientes de Microsoft Dynamics NAV y la navegación a los clientes a partir directamente de las cuentas de Microsoft Dynamics CRM, contactos, usuarios y productos.


Alta de usuario en CRM

Vamos a comenzar con la creación del usuario en CRM. La recomendación es dar de alta un usuario nuevo, con privilegios de escritura, lectura, modificación y eliminación de datos en las entidades que serán integradas con Dynamics NAV.

               IMPORTANTE: No se debe utilizar esta cuenta para iniciar sesión en Microsoft Dynamics CRM para modificar los registros de entidades que se integran con Microsoft Dynamics NAV porque los cambios serán ignorados por los trabajos de sincronización de integración de Microsoft Dynamics NAV.

Si estamos haciendo la integración con CRM Online, el alta debemos hacerla desde dentro del portal de Administración de Office 365, al que le asignaremos el rol de “usuario”.

Posteriormente, dentro de Dynamics CRM Online, en el apartado de “Configuración”, vamos a “Seguridad”y en el apartado de “Usuarios” lo seleccionamos:


Una vez en la ficha del usuario, en la pestaña de “Administración” os recomiendo asignarle el Modo de acceso de “No interactivo”

OPCIONAL: Instalación de la Solución de Integración de Microsoft Dynamics NAV:

Microsoft Dynamics NAV incluye una solución que permite a los usuarios acceder a los registros asociados en Microsoft Dynamics NAV, como clientes y artículos, de los registros en Microsoft Dynamics CRM, como las cuentas y productos. La solución agrega un enlace en las páginas de registro de Microsoft Dynamics CRM que abre el registro de Microsoft Dynamics NAV asociado. La solución también se utiliza para mostrar información de Microsoft Dynamics NAV en una parte de ciertos registros de entidad en Microsoft Dynamics CRM, como las cuentas. La instalación de esta solución es opcional, no es un requisito para la integración… pero mola :-)
Para realizar la instalación, lo primero es localizar el fichero “DynamicsNAVIntegrationSolution.zip”, que está ubicado en el DVD de instalación de NAV 2016, dentro de la carpeta “CrmCustomization”.


Con las opciones que nos ofrece por defecto, continuamos hasta que se completa el proceso, quedándonos tal que así:

Esto añade 2 roles de seguridad adicionales, uno de Administrador y otro de Usuario de integración (para usar la funcionalidad):


Y, por supuesto, se generan las nuevas entidades  “Conexión a Dynamics NAV” y “Estadísticas de cuentas de Dynamics NAV”.

Podemos hacer que se muestren modificando las propiedades de la entidad, dentro de “Configuración” -> “Personalización” -> “Personalizar el sistema”:


En este sentido, se puede mostrar la entidad en “Configuración”, de forma que el usuario que tenga el rol de “Admin” pueda personalizar la entidad:


Lo siguiente que debemos hacer ahora es asignar los nuevos roles, de tal forma que asociaremos el rol “Dynamics NAV Integration Administrator” al usuario que conectará con NAV, y el rol “Dynamics NAV Integration User” a todos nuestros usuarios de CRM que requieran hacer uso de las características de la solución de integración instalada.

               IMPORTANTE: Si instalamos la solución de integración después de haber configurado la conexión con Dynamics CRM desde Dynamics NAV, tendremos que modificar la configuración de la conexión para que apunte a la URL del cliente Web de Dynamics NAV.



2.       Configurar la conexión desde Dynamics NAV a Dynamics CRM

Para realizar la configuración en Dynamics NAV, necesitaremos al menos 2 cosas: la URL del servidor de Microsoft Dynamics CRM, que normalmente será HTTPS o HTTP y el FQDN (esquema URI), y un usuario (si es dedicado para la integración mejor).

Para una conexión como la de este ejemplo, donde nuestro servidor está basado en Dynamics CRM Online, la conexión será del tipo https://mi-organizacion.crm4.dynamics.com.

Para comenzar con la configuración, dentro de Dynamics NAV, debemos ir a “Departamentos” -> “Administración” ->“Administración de IT” ->“Servicios”. Una vez aquí vamos a “Configuración de conexión de Microsoft Dynamics CRM”:


Esto nos abre la página de configuración, donde debemos especificar los datos comentados con anterioridad: la URL de Dynamics CRM y el usuario y password:


Lo siguiente que haremos será darle a “Probar conexión”, que nos dará un mensaje diciendo si es correcta o no. Normalmente, si no consigue conectar, el informe de error es lo suficientemente descriptivo como para que nos oriente sobre cómo solucionarlo :-)

               NOTA: Lo más normal es que salte un aviso advirtiendo sobre el cifrado de datos, ya que no lo hemos configurado. No es necesario configurarlo para que funcione, y lo podemos configurar cuando queramos desde la sección de “Cifrado”, en Administración del cifrado”


Lo siguiente que haremos será marcar el checkbox de “Activado”:


Este checkbox podemos marcarlo o desmarcarlo a demanda, en cualquier momento. Evidentemente, mientras que no esté marcado como “Activado” no funcionará la sincronización.

Cuando marcamos este checkbox la primera vez, si no tenemos una configuración previa de la conexión, NAV nos preguntará si queremos usar la configuración de sincronización “por defecto”.

Nuevamente, si por el motivo que sea no hacemos esto, tenemos la opción de “regenerar” la configuración a sus valores predeterminados desde la pestaña de “Acciones”, haciendo click en “Usar configuración de sincronización predeterminada”.


Con esto, podríamos decir que podríamos comenzar a trabajar con datos de Dynamics CRM en Dynamics NAV :-)

Tenemos otra serie de campos que aparecen ahora, en las pestañan que se habilitan cuando está activada la sincronización:

  • Solución de integración de Dynamics NAV importada: básicamente se marca como “Sí” si hemos realizado el paso opcional de importar la solución del paso anterior dentro de Dynamics CRM.
  •  URL del cliente web de Dynamics NAV: es la URL de acceso al cliente Web. Es necesaria para que funcione la solución de integración.
  •  Versión: responde a la versión de Dynamics CRM.

Luego tenemos 2 campos interesantes:


Si hacemos click en “No” en cualquiera de ellos, el sistema lo cambiará a “Sí” ejecutando la acción correspondiente:
  • El usuario de conexión de Dynamics CRM es el usuario de integración: si marcamos esto como “Sí” nos pedirá las credenciales de administrador de Dynamics CRM y modificará la configuración del usuario en CRM, convirtiéndolo en “No interactivo”.


  • Integración del pedido de venta habilitado: esto permite que los pedidos de venta generados en Dynamics CRM sean importados en NAV.


  • Los usuarios de Dynamics NAV deben asignar a los usuarios de Dynamics CRM: esto implica que todo usuario de NAV debe tener en su cuenta un “mapeo” entre el email de autenticación de Office 365 de su cuenta de usuario de Dynamics NAV, con la dirección de correo principal de Dynamics CRM. Si desmarcamos esto, lo que entiende el sistema es que cualquier usuario de NAV puede acceder a los datos de integración, y es el “usuario de integración” el que interactúa con los datos en su nombre.


En este ejemplo, dado que en la cuenta de mi usuario no está habilitado, nos aparece como resultado “No” en el campo “El usuario de Dynamics NAV actual está asignado a un usuario de Dynamics CRM”.


Podemos comprobar el estado de la conexión desde “Conexiones de servicio”, que podemos encontrar dentro de “Administración de IT” -> “Servicios”


Llegados a este punto ya tenemos nuestra integración funcionando.

 

Nota importante sobre el proceso de sincronización:

Mientras que la sincronización está activa, cuando generamos nuevos registros (clientes, contactos, etc.) se les asigna automáticamente un “Id. de integración”, pero… ¿qué ocurre si los doy de alta con la sincronización deshabilitada?

 Pues sencillamente tendremos que lanzar un proceso de forma manual, que encontramos dentro de la pestaña “Acciones”, en el grupo “General” -> “Generar id. de integración”:


Con esto hacemos la tarea de rellenar manualmente los Identificadores de integración que han quedado “huérfanos” en el período que ha estado la sincronización desactivada.


3.       Validar la configuración de sincronización de datos

Ya que hemos realizado una parametrización con los valores predeterminados, deberíamos al menos verificar que los mapeos son correctos.

Esto podemos hacerlo desde “Asignación” -> “Lista de asignaciones de tablas de integración”:


Esto nos abre la siguiente ventana:


Básicamente podemos ver la equivalencia entre tablas de Dynamics NAV y entidades de CRM, así como sus diferentes filtros aplicados.

Por supuesto, estas asignaciones son las predeterminadas, pero el sistema está totalmente abierto a conectar otras tablas adicionales, incluso si pertenecen a algún desarrollo o personalización propia, siempre que tengamos bien definida su equivalencia en Dynamics CRM.

Cabe destacar las 3 últimas columnas:

  • Código de plantilla de config. de tabla: Especifica una plantilla de configuración que se utilizará para crear registros nuevos en la tabla de Dynamics NAV (que especifica el campo Id. tabla) durante la sincronización. Cuando accedemos para su edición, podemos ver cuáles son los valores predeterminados:


  • Código de plantilla de config. de tab. int.: Especifica una plantilla de configuración que se utilizará para crear nuevos registros en la tabla de base de datos externa, como Microsoft Dynamics CRM. Lo que vemos es algo así.


  • Sincronizar solo reg. Emparejados: Especifica cómo administrar los registros desacoplados en entidades de Microsoft Dynamics CRM y tablas de Microsoft Dynamics NAV cuando la sincronización la realizada un proyecto de sincronización de integración. 
    • Si selecciona esta casilla, solo se sincronizarán los registros de Microsoft Dynamics CRM y Microsoft Dynamics NAV que están acoplados. Ésta es la configuración predeterminada.
    • Si desactiva esta casilla, para cualquier registro del origen que no está acoplado a un registro en el destino, se creará automáticamente un registro nuevo que se acoplará en el destino. Por ejemplo, al sincronizar datos desde los clientes de Microsoft Dynamics NAV a cuentas de Microsoft Dynamics CRM, si un cliente no está acoplado a una cuenta, se creará automáticamente una cuenta nueva en Microsoft Dynamics CRM que se acoplará al cliente. Por otro lado, al sincronizar datos desde clientes de Microsoft Dynamics CRM a clientes de Microsoft Dynamics NAV, si una cuenta no está acoplada a un cliente, se creará un cliente nuevo en Microsoft Dynamics NAV que se acoplará a la cuenta.

Por otro lado, tenemos que verificar los trabajos “programados” de sincronización. Esto lo tenemos en el grupo de “Sincronización” de la pestaña “General”:


Esto básicamente son movimientos de la cola de proyectos, que tenemos disponible en el estándar de NAV para las tareas programadas.


Desde aquí podemos poner en espera, reiniciar, ver los movimientos de registro, etc. Si damos a editar cualquiera de los movimientos, tenemos esta pantalla:


Como se observa, aquí especificamos si queremos ejecutar un “Codeunit” (módulo) o un informe, se le pueden pasar parámetros en la ejecución, establecerle un calendario de ejecución, periodicidad, etc.


Vale, pero… ¿cómo funciona el proceso de sincronización?:

Cada movimiento de cola de proyectos de sincronización utiliza una asignación de tabla de integración concreta que especifica qué tabla de Microsoft Dynamics NAV y entidad de Microsoft Dynamics CRM se deben sincronizar. Las asignaciones de tabla también incluyen configuraciones que controlan qué registros de la tabla de Microsoft Dynamics NAV y de la entidad de Microsoft Dynamics CRM se deben sincronizar.

Para sincronizar datos, los registros de entidad de Microsoft Dynamics CRM deben emparejarse o “acoplarse” a los registros de Microsoft Dynamics NAV. Por ejemplo, un cliente de Microsoft Dynamics NAV debe acoplarse a una cuenta de Microsoft Dynamics CRM. Puede configurar los acoplamientos manualmente, antes de ejecutar los proyectos de sincronización o permitir que los proyectos de sincronización configuren acoplamientos automáticamente.

La lista siguiente describe cómo los datos se sincronizan entre Microsoft Dynamics CRM y Microsoft Dynamics NAV cuando se utilizan los movimientos de la cola de proyectos de sincronización:
  • De manera predeterminada, solo se sincronizan los registros de Microsoft Dynamics NAV que están acoplados a registros de Microsoft Dynamics CRM. Se puede cambiar la asignación de tabla entre una entidad de Microsoft Dynamics CRM y una tabla de Microsoft Dynamics NAV, de manera que los proyectos de sincronización de integración creen los registros nuevos en la base de datos de destino para cada registro de la base de datos de origen que no esté acoplado. Los registros nuevos también se acoplan a los registros correspondientes en el origen. Por ejemplo, al sincronizar los clientes con cuentas de Microsoft Dynamics CRM, se crea un registro de cuenta nuevo para cada cliente en Microsoft Dynamics NAV. Las cuentas nuevas se acoplan automáticamente a clientes en Microsoft Dynamics NAV. Como la sincronización en este caso es bidireccional, se crea un cliente nuevo y se acopla para cada cuenta de Microsoft Dynamics CRM que aún no está acoplada.
  • Cuando se crean registros nuevos en Microsoft Dynamics NAV, los registros utilizan la plantilla que se define para la asignación de tabla de integración o la plantilla predeterminada que está disponible para el tipo de registro. Los campos se rellenan con datos de Microsoft Dynamics NAV o Microsoft Dynamics CRM según la dirección de sincronización.
  • En las sincronizaciones posteriores, solo se actualizarán los registros que se hayan modificado o agregado después de la última sincronización correcta. En el caso de los registros nuevos de Microsoft Dynamics CRM, los registros se agregan en Microsoft Dynamics NAV. Si los datos de los campos de los registros de Microsoft Dynamics CRM se han modificado, los datos se copian en el campo correspondiente de Microsoft Dynamics NAV.
  • Con la sincronización bidireccional, el proyecto se sincroniza de Microsoft Dynamics NAV a Microsoft Dynamics CRM y, a continuación, de Microsoft Dynamics CRM a Microsoft Dynamics NAV.


4.       Hacer el “mapeo” o emparejar los registros entre Dynamics NAV y Dynamics CRM

Ya lo último que nos falta es ver cómo podemos emparejar los registros y sincronizarlos manualmente.

Para acoplar un registro específico, nos vamos por ejemplo a un cliente cualquiera, y en la pestaña “Navegar”, dentro del grupo “Dynamics CRM”, elegimos “Acoplamiento” ->“Configurar acoplamiento”:


Esto nos abre la siguiente ventana, donde podemos ver el acople con la entidad de nuestro Dynamics CRM:

(En este caso, puesto que aún no he lanzado una “sincronización completa”, la cuenta de Dynamics CRM está sin datos).

Para Sincronizar un registro específico, nos vamos por ejemplo a un cliente cualquiera, y en la pestaña “Navegar”, dentro del grupo “Dynamics CRM”, elegimos “Sincronizar ahora”:


Por último, para sincronizar múltiples registros, debemos irnos a la lista, seleccionar los registros que queremos sincronizar, y desde la pestaña “Navegar”, en el grupo “Dynamics CRM” -> “Sincronizar ahora”.


Para hacer la sincronización inicial:

Nos tenemos que ir a la “Configuración de conexión de Microsoft Dynamics CRM”, en la pestaña “Acciones” -> “Ejecutar sincronización completa”

Esto nos muestra la siguiente ventana:


Nos advierte de que los vendedores deben estar emparejados con los usuarios de Dynamics CRM, ya que de no ser así tendremos errores en la sincronización.

Si aceptamos, comienza el proceso:


Y concluye transcurridos unos minutos:


Aceptamos, y podemos comprobar el resultado, navegando desde “Lista de asignaciones de tablas de integración”:


Veremos que existen errores, puesto que no hemos realizado el emparejamiento entre vendedores y usuarios de Dynamics CRM (en el caso de que hayamos realizado el ejemplo con los datos por defecto de Dynamics CRM y los datos de la empresa “Cronus” de Dynamics NAV).


Por tanto, debemos dar de alta los usuarios en Office 365, irnos a Dynamics CRM y asignarle los roles pertinentes… y para concluir, establecer manualmente el emparejamiento entre “vendedor” de Dynamics NAV y “usuario” de Dynamics CRM:


Y hacemos la asignación:


Tras esto tan sólo debemos volver a ejecutar el proceso de “Ejecutar sincronización completa” que había mencionado al inicio.

Una vez concluido… LISTO!! Ya tenemos terminado nuestro proceso.

Podemos comprobarlo desde cualquier registro:


Espero que os haya servido!!

Un saludo! Miguel Llorca.


2016-03-07
Cumulatives Updates de marzo para NAV 2016, NAV 2015, NAV 2013 R2 y NAV 2013

En la dinámica habitual, Microsoft ha lanzado a comienzos del mes una nueva hornada de CUs para los productos dentro de “ciclo de soporte”.

A continuación os facilito los enlaces:
Cabe destacar que se incorpora en estas CUs una actualización específica para el modelo 340, además por supuesto de las habituales correcciones menores de plataforma y aplicación.

Como siempre: no olvidéis hacer copia de seguridad previa a la actualización o contactar con vuestro partner de confianza.

Salu2 ;-)


2016-03-01
Webinar: Integrando MS Dynamics NAV 2016 con MS Dynamics CRM
Me gustaría invitarte al webinar que haré el próximo jueves 3 de marzo a las 16:00h, con los amigos de ComunidadCRM.

http://www.comunidadcrm.com/blog/event/03-de-marzo-integrando-microsoft-dynamics-nav-2016-con-microsoft-dynamics-crm/

En esta sesión vamos a realizar una introducción y posicionamiento de Microsoft Dynamics NAV 2016, conoceremos las principales novedades introducidas en la versión 2016, así como las capacidades de CRM que vienen incorporadas en la herramienta. Después de esto profundizaremos en la integración nativa de NAV 2016 con Dynamics CRM, que nos permitirá sustituir el “Dynamics Connector” necesario hasta esta versión. Todo ello a través de una demostración, basada en un servidor de NAV 2016 alojado en Microsoft Azure y CRM Online.

Agenda:
  • Introducción a Microsoft Dynamics NAV.
  • Novedades NAV 2016.
  • Demo funcionalidad CRM de Dynamics NAV.
  • Integración nativa NAV-CRM.
  • Conclusiones y Preguntas.
Más información y registro aquí!!

En breve publicaré un post con el proceso detallado de integración. Espero que te apuntes y sea de tu interés.

Salu2!


2016-02-19
Vista previa de registro en NAV 2016


Una funcionalidad históricamente demandada por los usuarios de NAV y que por fin tenemos ya incorporada en NAV 2016 es la “vista previa de registro”, o lo que es lo mismo, puedo “simular” como me quedaría una operación si la registrase en ese momento (aunque obviamente sólo es a título informativo).

Esta opción la tenemos disponible desde cualquier documento de venta, compra, servicio o los diarios.

Está accesible desde la cinta de opciones, en la sección de “Registro”:



Una vez ejecutado, realiza un “registro simulado”, marcando como es lógico el nº de documento con ***, puesto que se trata de un registro ficticio. 

El resultado es un resumen de movimientos relacionados, al igual que si le diésemos a “navegar” desde cualquier documento en NAV:



Si, por ejemplo, echamos un ojo a los movimientos de contabilidad, veremos cómo quedarán los asientos una vez que realicemos el registro “real”:




Esta misma funcionalidad, como he mencionado al comienzo del post, está igualmente disponible en los documentos de compra, servicio y en los diarios.




En resumen, se trata de una interesante novedad introducida en esta nueva versión, esperada y demandada durante años por los usuarios (especialmente en Finanzas y Administración).


Salu2, Miguel Llorca.


2015-12-05
Profundizando en los FlowFields
Para mí una de las funcionalidades de la plataforma NAV más útil son los FlowFields. Son fáciles de construir, rápidos de ejecutar, exactos en cuanto al resultado, seguros en cuanto a las transacciones y funcionalmente potentes.

Vamos a ver en detalle como NAV conjuntamente con SQL utilizan esta tecnología.

Creación de un FlowField

Para ello vamos a crear una tabla en la que anotaremos los rappels que otorgamos a los clientes de forma periódica por haber alcanzado un determinado volumen de ventas o de margen comercial. Omitiremos el proceso de cálculo y nos centraremos sólo en la tabla.

Diseño de la tabla:


















Veámosla en SQL:










Y ahora añadimos el FlowField correspondiente en la tabla de clientes:



















Veamos que ha sucedido con nuestra tabla de rappels en SQL:










Efectivamente. ¡No ha sucedido nada!
El único índice continua siendo la Primary Key del campo ID.

Entonces ¿que hará NAV y SQL cuando se le pida un listado de, por ejemplo, los clientes 10000 y 30000 con los rappels para el mes de enero de 2017? Pues construir una sentencia SQL parecida a esta:








Está claro que si la tabla de rappels tiene muchos registros, al SQL le costará filtrar los registros por los campos en los que no dispone de ningún índice. (Aunque SQL tiene sus propios trucos, como las estadísticas).

Creación de un SumIndexField

Antes, en versiones anteriores, recuerdo que al crear el campo "Rappel Amount (LCY)" en la tabla de clientes, NAV hubiera obligado a construir un SumIndexField en la tabla "Customer Rappel" para no penalizar el rendimiento.

Pero desde hace algunas versiones esta obligación se ha eliminado, supongo que se confía en que SQL será suficientemente eficiente, ya que SQL incorpora cierto grado de inteligencia para saber qué datos pueden ser optimizados, según la frecuencia y forma de las consultas realizadas.

En nuestro caso, procederemos a crear un SumIndexField en la tabla "Customer Rappel" tal como se indica:


















Veámosla en SQL:











Efectivamente, ahora sí se ha añadido un nuevo índice que contiene los campos "Customer No." y Date. ¿Que hará ahora NAV y SQL cuando se le pida el listado anterior, recordemos, los clientes 10000 y 30000 con los rappels para el mes de enero de 2017?

















Podemos observar como ahora la consulta se ejecutará el doble de rápido al poder aprovechar el nuevo índice e iniciar así 2 procesos en paralelo.

Aunque también deberemos tener en cuenta que si se van a producir muchas alteraciones (altas, bajas, etc.) en esta tabla se va a penalizar el rendimiento de estas operaciones ya que para cada transacción SQL deberá mantener los índices.

Y entonces ¿por qué hemos indicado los campos que se van a calcular en la creación del índice si no han intervenido?

Las SIFT (SumIndexField Tables)

Antiguamente en NAV, al crear un SumIndexField se creaba una tabla en la BBDD con una estructura de combinación de campos y sus correspondientes subtotales.

En nuestro ejemplo anterior, NAV hubiera creado una tabla con los campos "Customer No.", "Date" y "Amount (LCY)". Los 2 primeros porque son los que van a intervenir en los filtros de la consulta y el tercero a modo de subtotal, o sea, 1 solo registro para cada coincidencia en cliente y fecha.

Actualmente estas tablas ya no se crean, en su lugar se crea una consulta indizada, o lo que es lo mismo, una vista junto con un índice.




La utilización de vistas indizadas tiene como ventaja, entre otras, que las agregaciones pueden calcularse previamente y almacenarse en el índice para minimizar los costosos cálculos durante la ejecución de consultas. Además, el optimizador de consultas puede seleccionar la vista si determina que ésta puede sustituirse por parte o por toda la consulta del plan de consultas si es de un coste menor.

Si volvemos al diseño de la tabla y en el SumIndexField accedemos a sus propiedades, aparecerá la siguiente ventana:


Apreciamos como la propiedad MaintainSQLIndex nos indica que sí existe índice en la tabla y como la propiedad MaintainSIFTIndex nos indica que sí existe una vista indizada. Además existen otras propiedades que nos permiten alterar las propiedades del índice directamente en SQL desde NAV.

Como se ha mencionado anteriormente cabe destacar que el rendimiento completo no existe, o primamos las consultas o primamos las modificaciones, pero todo a la vez es imposible. Por tanto en un NAV en producción hay que buscar el equilibrio en cada caso.

Por ejemplo, en una migración o un upgrade, es conveniente desactivar claves o propiedades de los índices con el objetivo de que las altas en la tabla se produzcan los más rápido posible. Posteriormente ya activaremos o no estas propiedades en función del uso que se vaya a hacer (muchas altas o muchas consultas).

Conclusiones

Al crear FlowFields deberemos tener en cuenta que la tabla sobre la que se efectúa el cálculo no se halla optimizada, deberemos hacerlo nosotros.

En dicha optimización NAV utiliza un índice de tabla y una vista indizada, ambos orientados a facilitar el trabajo a SQL siempre que se consultan datos, en nuestro caso, mediante FlowFields.

Si se va a priorizar el rendimiento para las consultas, desde NAV se deberá crear un índice y adicionalmente un SumIndexField, que es el que indica que se va a crear la vista indizada.

Si se van a primar las altas hay que desactivar los índices, ya que éstos se han de actualizar al realizar transacciones en la tabla, a más índices menos rendimiento.

Las propiedades del índice en NAV nos permitirán hacer combinaciones (índice sin vista o vista sin índice).

Es muy recomendable desactivar los índices al realizar migraciones o upgrades ya que en ese momento sabemos de cierto que se van a producir muchísimas altas y pocas consultas.

Más tarde, en fase de producción y tuning, se activarán los índices que procedan.

NOTA: Antes existían los "Database Key Groups" que se utilizaban para activar y desactivar conjuntos de índices, pero ahora están obsoletos.



2015-08-21
Integrando código en Dynamics NAV
Supongo que muchos conocéis las AMU (Application Merge Utilities) que son geniales para las migraciones de código estándar modificado.

A partir de la versión actual sin modificar (ORIGINAL) comparado con esta misma modificada (MODIFIED) se obtienen los archivos diferenciales (DELTA) que se aplican a la nueva versión estándar (TARGET) y finalmente se obtiene la nueva versión modificada (RESULT).

Más en: https://www.linkedin.com/pulse/integrando-c%C3%B3digo-en-dynamics-nav-josep-pages


2015-08-10
Controlando código en Dynamics NAV
Como probablemente sabréis, Dynamics NAV no dispone de ningún componente para control ni versionado de código, ni lo va a tener de momento. Hay que hacerlo manualmente a base de exportar los objetos, depositarlos en algún repositorio donde los programadores del proyecto tengan acceso controlado, y posteriormente si se desea restaurar a un punto anterior, o incorporar alguna nueva funcionalidad, trabajar con el “version list”, la fecha y hora de modificación, y utilizar una buena herramienta de comparación de ficheros.

Está claro que en este escenario el propietario del código del proyecto tiene serias dificultades para controlar las ramas, puntos de restauración, copias y saber cuál es la última versión buena conocida (Master). Además, estas dificultades se trasladan a los distintos programadores que tampoco saben con exactitud si el código con el que están trabajando es el adecuado y cuál es el bueno.

Más en https://www.linkedin.com/pulse/controlando-c%C3%B3digo-en-dynamics-nav-josep-pages


2015-08-01
¿Cómo acceder directamente a SQL Server desde Dynamics NAV?

En ocasiones se necesita acceder desde Navision a alguna base de datos de SQL Server. Vamos a ver cómo hacerlo.

Hay que tener en cuenta las siguientes consideraciones:
- Este codigo utiliza .NET Interoperability para interfasar con componentes propios de Windows.
- Estos componentes se ejecutan en el NST, es decir, en el servidor de NAV, por lo tanto, es éste el que debe tener acceso a SQL Server.
- El control de transacciones va totalmente a parte del propio control de transacciones de NAV.

Declaración de variables:
SqlConnection : DotNet "System.Data.SqlClient.SqlConnection"
SqlCommand : DotNet "System.Data.SqlClient.SqlCommand"
SqlDataReader : DotNet "System.Data.SqlClient.SqlDataReader";

Codigo para abrir una conexión:
connString := 'Data Source=TheSQLsrv\AndInstance;Initial Catalog=TheBBDD;Integrated Security=false;User ID=TheUsername;Password=ThePassword';
SqlConnection := SqlConnection.SqlConnection(connString);
SqlConnection.Open();

Código para ejecutar un comando:
SQLstring := 'SELECT * FROM TheTableOrView ORDER BY TheOrderField';
SqlCommand := SqlConnection.CreateCommand();
SqlCommand.CommandText := SQLstring;
SqlDataReader := SqlCommand.ExecuteReader();

Codigo para leer un DataReader:
WHILE SqlDataReader.Read() DO BEGIN 
      myVar := SqlDataReader.Item(SomeField);
END;

Cerrar la conexión:
SqlConnection.Close();


2015-07-03
10 años para estar convencido...

El día en que Navision entró en mi vida recuerdo como me sorprendió su "beauty of simplicity" y aún hoy, cuando en el Master de Dynamics NAV explico los FlowFields y FlowFilters, o las relaciones condicionales, o los triggers a nivel de campo, o la automatización de transacciones, veo la cara de los agradablemente sorprendidos recién titulados en informática o de los experimentados profesionales, la misma cara que debía tener yo aquel día en que puse mis manos encima de un Navision.

En este tiempo he tenido el honor de conocer algunas eminencias del mundo Navision, como Alejandro Pradas, una gran persona al que le debo innumerables buenos consejos, que fue el que empezó a distribuir Navision en España y por lo tanto el culpable de que tantos de nosotros nos ganemos la vida en esto. Y por supuesto que he hecho muchos amigos entre mis clientes y colaboradores, aunque también algún enemigo, también he conocido a grandes personas y profesionales. Hay mucho talento repartido en el canal.

Hoy, a mis 49, Microsoft me ha reconocido por décima vez consecutiva como MVP en Dynamics NAV, y (permitidme la broma) es hoy cuando empiezo a estar convencido de que alguna cosa habré aprendido durante este tiempo y por lo tanto alguna cosa hago bien en el desempeño de mi trabajo diario.

En fin, que quiero dar las gracias a todos, a Microsoft, clientes, colaboradores, amigos, competidores y enemigos. Sin vosotros estoy seguro que no habría conseguido este reconocimiento número 10.

http://mvp.microsoft.com/es-es/mvp/Josep%20Pages-35659



2015-06-13
¿Cómo utilizar activos fijos presupuestados para comparar con la realidad?
Hace unos días me encontré con la necesidad de utilizar activos fijos presupuestados para posteriormente compararlos con la realidad. Vamos a explicar como:

Primero deberemos crear la ficha del activo presupuestado utilizando para ello el "check" correspondiente y posteriormente le añadimos coste mediante el diario de activos fijos, no por el diario contable de activos fijos, ya que no debe tener integración con contabilidad.































Más adelante, al comprar definitivamente el activo fijo, se deberá crear la ficha del activo fijo definitiva.































Para registrarle coste mediante la factura de compra correspondiente. Se deberá indicar en este momento el activo fijo presupuestado que se va a liquidar.




























Si el coste de la compra es superior al presupuestado, Dynamics NAV nos informará del error y no será posible continuar hasta que no se regularice la situación.












Una vez la factura haya sido registrada, el activo fijo presupuestado ya no le "quedará" coste para asignar a otros activos fijos reales.































El coste se ha "movido" al activo fijo real recien comprado.































Curiosamente, en Dynamics NAV no existe un informe que compare los activos fijos presupuestados con sus activos fijos reales, aunque como puede observarse en los movimientos de los activos fijos, éstos quedan relacionados, con lo que diseñar un nuevo informe para este propósito es perfectamente posible.








Incluso podría añadirse esta información el la ficha de estadísticas de los activos fijos para poder navegar con facilidad.





























2015-03-30
¿Cómo montar un tenant en Dynamics NAV en 8 pasos?

Desplegar un tenant mediante PowerShell a partir de la instalación básica de Microsoft Dynamics NAV (Navision)


En este artículo voy a explicar los pasos a seguir para, a partir de una instancia de Dynamics NAV, montar un tenant y tener así el código de la aplicación albergado por la instancia y poder tener cuantos tenants queramos en esa misma instancia, cada tenant con su propia base de datos (de datos), compartiendo el codigo fuente.

Figura 1: Escenario multi-instancia


Figura 2: Escenario multi-tenant


Para ello vamos a utilizar Windows PowerShell ISE.

1er paso: Importar el módulo de administración de Dynamics NAV
Set-ExecutionPolicy RemoteSigned -Force
Import-Module 'C:\Program Files\Microsoft Dynamics NAV\80\Service\NAVAdminTool.ps1'

2do paso: Parar el servicio que está ejecutando la instancia a exportar.
Set-NAVServerInstance -ServerInstance 'DynamicsNAV80' -Stop

3er paso: Exportar el código fuente de la base de datos actual y separarlo en una base de datos independiente.
Export-NAVApplication -DatabaseServer 'MySQLServer' -DatabaseInstance 'NAVDEMO' -DatabaseName 'Demo Database NAV (8-0)' -DestinationDatabaseName 'NAV App'

4to paso: Quitar el código fuente de la base de datos para dejarla preparada para tenant.
Remove-NAVApplication -DatabaseName 'Demo Database NAV (8-0)' -Force

5to paso: Modificar el setting de la instancia para quitar la base de datos (de datos) y albergar multi-tenant.
Set-NAVServerConfiguration -ServerInstance 'DynamicsNAV80' -Element appSettings -KeyName 'DatabaseName' -KeyValue ''
Set-NAVServerConfiguration -ServerInstance 'DynamicsNAV80' -Element appSettings -KeyName 'MultiTenant' -KeyValue 'True'

6to paso: Iniciar el servicio parado en el paso 2 pero que ahora está preparado para multi-tenant.
Set-NAVServerInstance -ServerInstance 'DynamicsNAV80' -Start

7mo paso: Montar la base de datos del código fuente que será utilizado por todos los tenants.
Mount-NAVApplication -ServerInstance 'DynamicsNAV80' -DatabaseServer 'MySQLServer' -DatabaseInstance 'NAVDEMO' -DatabaseName 'NAV App'

8vo paso: Montar el tenant. Cada tenant de la instancia alberga una base de datos (de datos).
Mount-NAVTenant -ServerInstance 'DynamicsNAV80' -Id tenant1 -DatabaseServer 'MySQLServer' -DatabaseInstance 'NAVDEMO' -DatabaseName 'Demo Database NAV (8-0)' -OverwriteTenantIdInDatabase

Finalmente sólo nos queda acceder a NAV para comprobar que todo funciona correctamente. Ahora deberemos añadir a la cadena de conexión al servidor el tenant al que deseamos conectar. Por ejemplo: MyNAVSERVER.cloudapp.net:7046/DynamicsNAV80/tenant1


2015-03-12
Movilidad en Microsoft Dynamics NAV
Adjunto breve presentación sobre la movilidad en Dynamics NAV 2015 (Navision)
http://www.slideshare.net/JosepPag/movilidad-en-microsoft-dynamics-nav


2015-02-14
El primer Posgrado Universitario en Dynamics NAV a punto para empezar

Gracias a la universidad UVIC-UCC y Quonext, junto con otras entidades como el Ayuntamiento y CREACCIÓ, el próximo día 20 de febrero va a empezar el primer Posgrado Universitario en Dynamics NAV, del cual Josep Pages, MVP en Dynamics NAV desde el año 2006, es el impulsor y formador.


Es interesante destacar que los estudiantes tendran asegurados 6 meses de contrato remunerado en el CEDART, el Centro de Desarrollo de Alto Rendimiento, que se está creando al lado de la universidad y gracias al convenio con estas entidades.


2015-02-12
Microsoft lanza herramienta de traducción para NAV y AX
Microsoft Dynamics ERP Translation Solution utiliza el formato estandar XLIFF y automatiza la traducción a través de Microsoft Translator Hub de Microsoft Research.

Más info: http://blogs.msdn.com/b/nav/archive/2015/02/12/announcing-the-microsoft-dynamics-erp-translation-solution.aspx


2015-02-06
Dynamics NAV Especificaciones Técnicas

Lista de especificaciones técnicas en Navision

Recientemente un cliente me pidió que le rellenara una hoja de requisitos sobre especificaciones técnicas de Navision y aprovecho para reproducirla. (He cambiado los enunciados de las preguntas). Espero que os sirva.

https://www.linkedin.com/pulse/dynamics-nav-tech-specs-josep-pages


2015-01-23
Continuan las promociones 'Give me 5'

Debido al éxito obtenido, Microsoft decide continuar y ampliar  las promociones ‘Give me 5’ & 'Give me 5+2' para Microsoft Dynamics NAV

Las promociones "Give me 5" que terminaron el pasado 27 de diciembre se han visto prorrogadas y mejoradas para estos 2 próximo trimestres.
Este es el detalle:

1er trimestres 2015
- "Give Me 5 Starter" - Starter Pack mas 2 Usuarios full por EUR 3.750 para clientes en España.
- "Give Me 5 + 2 Extended" - Starter Pack mas el Extended Pack mas 4 Usuarios Full por EUR 12.000 para clientes en España.

2do trimestre 2015
- "Give Me 5 Starter" - Starter Pack mas 2 Usuarios Full por EUR 4.500 para clientes en España.
- "Give Me 5 + 2 Extended" - Starter Pack mas el Extended Pack mas 4 Usuarios Full por EUR 12.750 para clientes en España.

Además, para el 1er semestre de 2015, existe una promoción para los clientes existentes:

- "Extend NAV For Less" – Clientes existentes pueden licenciar Microsoft Dynamics NAV Extended Pack mas 1 Usuario Full por EUR 7.200

Si quieres ampliar esta información, contacta con Quonext


2015-01-23
Modificaciones en 340 y 347 según IVA de Caja
Os dejo unos links al blog del equipo español de Soporte de Dynamics NAV en donde explican las modificaciones del 340 y 347 para cumplir con las últimas normas de la Agencia Tributaria.

Para 340: http://blogs.msdn.com/b/eneauve/archive/2015/01/22/modelo-340-modificaciones-adicionales-en-cuanto-al-criterio-de-iva-de-caja.aspx

Para 347: http://blogs.msdn.com/b/eneauve/archive/2015/01/22/modelo-347-iva-de-caja.aspx


2015-01-10
Y II, mejorar y extender el diseño de cualquier cliente de Dynamics NAV
Siguiendo con el post anterior, que recomiendo su lectura, de cómo mejorar y extender el diseño de Dynamics NAV, se nos plantea la necesidad evidente de permitir que el control Add-in sea accesible desde cualquier cliente, incluido Web y Tablet. Para ello seguí la siguiente documentación de MSDN.

Las diferencias con el control Windows Forms indicado en el post anterior es que aquí sólo utilizaremos el código C# como interfase para, desde C/AL, ejecutar el código Java Script que, éste sí, es ejecutable desde los clientes que no son nativos Windows.

Creando un Add-in para cualquier cliente

Empezaremos creando un proyecto C# desde Visual Studio de tipo Biblioteca de clases y añadiremos la referencia a la librería del cliente NAV que encontraras en el directorio donde tengas instalado el cliente:

Microsoft.Dynamics.Framework.UI.Extensibility

Ahora deberemos referenciarla en el código de la clase:

using Microsoft.Dynamics.Framework.UI.Extensibility;

Y empezamos a definir el interfase:

namespace CEDARTjs500x150
{
    [ControlAddInExport("CEDART.controls.labelJs500x150")]
    public interface CDRTlabelJs500x150
    {
        [ApplicationVisible]
        event ApplicationEventHandler ControlAddInReady;
 
        [ApplicationVisible]
        void SetHtml(string value);
        [ApplicationVisible]
        void SetImage(string name);
    }
}

Una vez definido el interfase, necesitamos dotar de código al control para que haga ciertas cosas, en nuestro caso, muy básico, lo que hace es que visualiza cualquier código HTML con la función SetHtml o visualiza una imagen con la función SetImage.

Siguiendo este ejemplo de MSDN podrás ver que es necesario crear una estructura de carpetas en el proyecto:


Me refiero a la carpeta Resources en la que podremos poner, básicamente 3 carpetas más, una con imágenes, otra con el código Java Script y otra con hojas de estilo. Fijaros también que en la carpeta Resources deberemos tener un fichero Manifest.xml que es el que indica donde está cada cosa.

Como veremos más adelante esta carpeta y su contenido empaquetado en un archivo .zip se deberá incluir al registrar el control en Dynamics NAV.

<?xml version="1.0" encoding="utf-8"?>
<Manifest>
  <ScriptUrls>
    <ScriptUrl>http://ajax.aspnetcdn.com/ajax/jQuery/jquery-2.1.3.min.js</ScriptUrl>
  </ScriptUrls>

  <Resources>
    <Image>LogoCEDART150.png</Image>
    <Script>Script.js</Script>
    <StyleSheet>Stylesheet.css</StyleSheet>
  </Resources>

  <Script>
    <![CDATA[
        $(document).ready(
           function() {
               InitializeLabel();
               Microsoft.Dynamics.NAV.InvokeExtensibilityMethod('ControlAddInReady', null);
           });
    ]]>
  </Script>

  <RequestedHeight>150</RequestedHeight>
  <RequestedWidth>500</RequestedWidth>
  <VerticalStretch>true</VerticalStretch>
  <HorizontalStretch>true</HorizontalStretch>
</Manifest>

En ScriptUrls podremos indicar scripts externos, que como podeis suponer podemos utilizar cualquiera de las librerías externas existentes, en mi caso he utilizado la conocidísima jQuery.

En Resources definiremos todos nuestros archivos utilizados en el proyecto, posteriormente lo veremos más en profundidad.

La parte Script es el código JavaScript que se va a ejecutar (jQuery en nuestro caso). Evidentemente que podríamos poner todo el código en esta sección, pero por cuestiones de Readability es preferible ponerlo en los archivos de script externos.

Como veies, en mi caso, lo que hace es que cuando el documento está "ready" se ejecuta una función para inicializar el control y acto seguido se dispara el evento ControlAddInReady. Fijaos que con la función InvokeExtensibilityMethod podemos disparar cualquier evento en NAV, previamente definido en el interfase en C#.

Finalmente en las 4 últimas propiedades definimos las dimensiones mínimas que debe tener el control y si debe permitir Stretch. Vuelvo a insistir en este punto que las capacidades de resizing tienen mucho por mejorar.

Es importante destacar que los controles diseñados en JavaScript no pueden disponer de propiedades, sólo métodos.

Contenido del paquete .zip de la carpeta Resources

Vamos ahora a centrarnos en los 3 tipos de ficheros que podemos incluir.

El primer tipo de contenido que podemos incluir en Resources son imágenes que podremos recuperar desde el código, tal como veremos más adelante.

El segundo tipo de contenido es Script que evidentemente contiene las funciones. Veamos un ejemplo:

function InitializeLabel() {
    SetHtml("controlId");
}

function SetHtml(value) {
    $('#controlAddIn').html(value);
}

function SetImage(name) {
    var imageURL = Microsoft.Dynamics.NAV.GetImageResource(name);
    $('#controlAddIn').html("<div><img src='" + imageURL + "'/></div>");
}

La primera función es la que se llama desde el Manifest.xml y es la encargada de inicializar el control.
La segunda es la que inserta cualquier texto o código HTML en el control.

La tercera nos permite tener acceso a cualquier imagen, que hayamos incluido en el paquete, mediante la función GetImageResource.

El tercer tipo de contenido son hojas de estilo. En StyleSheet incluiremos las hojas de estilo que vayamos a utilizar, creadas por nosotros o conseguidas de los numerosos recursos externos. Un ejemplo:

body
{
    font-family: Verdana;
    color: black;
    background-color: white;
}

p
{
    padding: 10px;
}

.title
{
    font-size: 14;
    font-weight: bold;
}

.normal
{
    font-size: 12;
    font-weight: normal;
}

.forbr
{
    font-size: 6;
}

Esto es todo lo que necesitamos para nuestro sencillo ejemplo. Vamos a compilarlo y a registrarlo en Navision.

Compilar el control Add-in y registrarlo en Dynamics NAV

Para compilar, deberéis seguir el ejemplo propuesto en el post anterior, toda la parte que explica cómo firmar y compilar el proyecto.

La parte donde explica como registrar el control hay que hacer lo mismo y adicionalmente lo siguiente: Como los controles Add-in pueden replicarse desde el servidor al cliente deberemos cargar la carpeta Resources para que pueda descargarse y ejecutarse localmente.

Para ello lo que haremos será empaquetarla en un archivo .zip y al registrar el control, mediante la acción de Importar importaremos el archivo.

Diseñar utilizando nuestro control Add-in

Diseñaremos una Page en la que incluiremos un Field que incluirá el control Add-in diseñado anteriormente:


Ya añadiremos el siguiente código en el evento Label3::ControlAddInReady()

CurrPage.Label3.SetHtml(
  '<p>' +
  '<span class="title">Ratios de liquidez</span>' +
  '<span class="forbr"><br /><br /></span>' +
  '<span class="normal">' +
  'La liquidez es la capacidad potencial que tiene la empresa para pagar sus obligaciones. ' +
  'La comparación entre la cantidad de riqueza disponible (activo circulante) y las deudas ' +
  'que habrá que atender a corto plazo ' +
  '(pasivo circulante) proporciona una medida de esta liquidez.</span>' +
  '<span class="forbr"><br /><br /></span>' +
  '<span class="normal">' +
  'Dependerá del grado de realización de los elementos del activo, ' +
  'es decir, si están cerca de su conversión en liquidez (derechos de cobro que venzan ' +
  'a corto plazo, existencias que se vayan a vender, etc.), y del grado de exigibilidad del pasivo, ' +
  'es decir, vencimiento de las deudas y necesidad de su devolución.</span>' +
  '</p>');

Compilamos y ejecutamos. Este es el resultado:


Y probamos desde el cliente Web, en mi caso: http://localhost/DynamicsNAV80/WebClient/list.aspx?page=60199 y este es el resultado:


Y desde el cliente tablet:


Vamos a probar ahora la visualización de una imagen incluida en el paquete, para ello vamos a sustuir el código de la Page por este:

CurrPage.Label3.SetImage('LogoCEDART150.png');

Compilamos y ejecutamos en los diferentes clientes:




Objetivo conseguido

Ahora somos capaces de visualizar cualquier contenido, utilizando comandos Html5, programando en JavaScript utilizando librerías como jQuery y hojas de estilos en cualquiera de los clientes de Dynamics NAV.



  

         
Copyright 2003-2016 Tips dBits   Términos de Uso  Declaración de Privacidad