Copiar la configuración de usuario de Navision RTC

Nav123: Navision, Showare, OrderApp

Print Friendly, PDF & Email

¿Dónde almacena Navision o Business Central la configuración del usuario?

Antes del RTC, esto era bastante sencillo: En fin.zup en la carpeta %AppData%. Al Navision nativo (fin.exe o finsql.exe) también le gustaba descartar la configuración en cada oportunidad. Y la panacea para el Navision atascado era simplemente borrar este zup (pronunciado: Z-UP, ZETT-Up = setup).

En Navision y Business Central RTC, la configuración del usuario se distribuye entre estos tres almacenes:
* Entradas en la tabla 2000000075 Metadatos de usuario
* Contenido binario en el archivo %AppData%\Microsoft\Microsoft Dynamics NAV\PersonalisationStore.xml
* Configuración del cliente en el archivo %AppData%\Microsoft\Microsoft Dynamics NAV\Version\ClientUserSettings.config

La configuración del cliente (tercer punto) no puede copiarse de forma significativa utilizando los recursos integrados de Navision. Por una razón muy simple: para que Navision y Business Central funcionen, debe existir un ClientUserSettings.config que funcione. Por lo tanto, una función de copia integrada en Navision o Business Central para esta configuración de usuario - o más bien de cliente - no es especialmente útil.

En Business Central a partir de la versión 15 (2019 Fall Release), el archivo de configuración local PersonalisationStore se elimina por completo. Se trata de cambios de diseño que se almacenan en los metadatos.

Así que sólo es realmente difícil con Navision / Business Central RTC desde la versión 2009R2/2013 hasta la versión 2019 Spring Release, porque aquí el PersonalisationStore.xml se añade a la tabla 2000000075 User Metadata.

Este artículo trata precisamente de estas versiones de Business Central y Navision.

¿Por qué copiar la configuración?

Es una pregunta muy importante. Y desgraciadamente la respuesta es: porque no has trabajado bien de antemano.

El resultado de la configuración digna de copiar es una configuración limpia de Navision en la que muchas columnas se muestran u ocultan de forma sensata y se disponen en un buen orden. Entrada rápida, salto de campos innecesarios con la tecla Intro o Tabulador, menús, anchos de columna... Todo esto ya está bien configurado y, por tanto, debería transferirse a un empleado nuevo o diferente.

Pero el error aquí se cometió mucho antes.

En realidad, estos ajustes de validez general deberían hacerse de forma generalizada para todos los usuarios. Lo que se hacía en el Navision nativo hasta la versión 2009R2: Simplemente abrir las máscaras de pantalla directamente con CTRL+F2 en el Diseñador, configurar rápidamente las propiedades "Siguiente Control" & Visible, guardar, listo.

Al Navision nativo le gustaba descartar los ajustes por formulario (el predecesor de la página) de todos modos, como en este caso. Y bang, todos los usuarios tenían el mismo orden de columnas, anchos y visibilidad.

Puedo hacerlo de nuevo en Business Central. Aquí se llama InPlace Designer. ¿Y RTC Business Central y Navision? También tiene una función muy chula.
Basta con llamar a Business Central o Navision, por ejemplo, a través de un archivo Lnk con

Microsoft.Dynamics.Nav.Client.exe -configurar -perfil: "Contabilidad"
inicio. En este modo de configuración especial, todos los ajustes realizados (secuencia de columnas, visibilidad, entrada rápida, menús...) no se guardan en la tabla de metadatos de usuario 2000000075, sino en la tabla de metadatos de perfil 2000000074.

Y sorpresa: todos los usuarios que se conecten posteriormente con este perfil recibirán la misma configuración, que podrán perfeccionar a su gusto.

La copia real

...no es fácil debido a la división entre el archivo de configuración y los datos de los metadatos de usuario de 2000000075.
En %AppData%\Microsoft\Microsoft Dynamics NAV\PersonalisationStore.xml, se almacenan cosas pequeñas como el ancho de las columnas , mientras que cosas como las columnas visibles, secuencias, etc. se almacenan en la tabla 2000000075 User Metadata. Sin embargo, esto cambia en las diferentes versiones RTC de Business Central y Navision.

Regla general: Cuanto más nueva sea la versión de Navision / Business Central, más contenido tendrá la tabla de metadatos. La tecnología cada vez mejor que hay detrás de esto es también la base de las extensiones de página actuales. Un problema adicional es que este PersonalisationStore.xml se encuentra en el cliente y, por lo tanto, no es visible ni accesible para la capa Tier 2 de ejecución.

La tabla 2000000075 User Metadata es una tabla Navision de pura cepa, que como tal también puede copiarse con bastante facilidad. El archivo PersonalisationStore.xml, en cambio, es realmente molesto de copiar. Sobre todo porque Navision y Business Central siempre reescriben este archivo al salir, a partir de los ajustes que Navision o Business Central han memorizado en la memoria de trabajo durante el tiempo de ejecución.

¡Así que no podemos acceder a este archivo con los recursos de a bordo! Podríamos sobrescribirlo. Pero incluso entonces, Navision o Business Central lo sobrescribirán de nuevo con los valores no deseados cuando se cierre.

Mi solución es, por tanto, un poco más complicada:
Cuando se cierra un cliente, una función de activación comprueba si el usuario actual está autorizado a escribir en la tabla de configuración de usuarios, al menos indirectamente.

Si este es el caso, el archivo %AppData%\Microsoft\Microsoft Dynamics NAV\PersonalisationStore.xml actual al inicio de la sesión(!) se escribe en un campo blob en la configuración de usuario.

De este modo, Navision "conoce" gradualmente todos los PersonalisationStores de todos los usuarios para los que también existe una configuración de usuario. Atención. Esto siempre se origina en la sesión anterior, ya que las configuraciones que se hayan podido modificar sólo se escriben cuando se cierra completamente Microsoft.Dynamics.Nav.Client.exe .

Pero: ¡Mejor que nada!

El resto es trabajo puramente rutinario:

Screenshot von der neuen Option "Benutzereinrichtung kopieren" in den RTC-Versionen von Navision / Business Central

En la configuración de usuario, vaya a la configuración de usuario desde la que se van a copiar los ajustes al usuario actualmente conectado.
Utilice el comando de acción "Copiar configuración" para iniciar la copia.
Navision le preguntará de nuevo si la dirección es correcta:

Si selecciona Sí, Navision & Business Central comprueba primero si se dispone de los derechos necesarios y si ya se ha escrito un PersonalisationStore tanto en el origen como en el destino. Esto es importante, ya que actualmente no existe una forma "limpia" de leer la ruta %Appdata%. Cuando se guardó el archivo PersonalisationStore.xml como se ha descrito anteriormente, esto se hizo al mismo tiempo.

A continuación, Business Central & Navision copia el último archivo de configuración válido y las entradas actualmente válidas de la tabla 2000000075 User Metadata del origen a la misma tabla del usuario conectado.
Por consiguiente, el nuevo usuario que se vaya a crear también deberá tener los derechos que se describen a continuación, al menos para este proceso.

El PersonalisationStore previamente guardado desde el origen también se copia en la ruta %appdata% actual. Pero con el identificador de archivo ".new", por ejemplo PersonalisationStore.xml.new. A continuación, Business Central y Navision abren un explorador en este directorio.

Ahora debe finalizar la ejecución de Business Central o Navision de este usuario de destino. Recordatorio: ¡Sólo ahora Business Central o Navision (sobre)escriben el antiguo PersonalisationStore.xml!

Después de salir, el PersonalizationStore.xml ahora simplemente puede ser eliminado en el navegador que ya está abierto, y el PersonalizationStore.xml.new que ya está disponible simplemente puede ser renombrado a PersonalizationStore.xml.

Para ello, hay que desactivar la opción de la carpeta "Ocultar configuración para tipos de archivo conocidos" (como suelo recomendar).

Bildschirmfoto der Option "Einstellungen bei bekannten Dateitypen ausblenden", um die neu geschriebene PersonalizationStore.xml.new einfach zu PersonalizationStore.xml umzubenennen

Derechos de usuario necesarios

Tabla 2000000120 Autorización de lectura del usuario
Tabla 91 Configuración de usuario (Indirecta) derechos de modificación y derechos de lectura
Tabla 2000000075 Metadatos de usuario Permisos (indirectos) de escritura, permisos (indirectos) de eliminación, permisos (indirectos) de modificación