Cambiar o importar datos masivos en NAV & Business Central

0
357
Paquetes configuracion Business Central

Desde al menos NAV 2013, se incluyó la funcionalidad de paquetes de configuración en las distintas versiones posteriores de Dynamics NAV y también la encontramos en Business Central.

Los principales usos que se le pueden dar son:

  • Modificar datos de distintos campos de una entidad.
  • Incluir nuevos registros en una entidad.
  • Configuración de nueva empresa.

Es una herramienta muy potente que requiere de ciertos cuidados en su uso que son los que se centrará esta entrada.

Se puede utilizar con cualquier tabla y, aunque son los maestros su objeto principal, puede utilizarse de forma efectiva también con diarios particularmente.

En primer lugar, para poder usar esta herramienta es necesario conocer el ID interno de la tabla de la que queremos modificar o insertar datos.

Para ello nos situamos en una página que contenga sus datos, por ejemplo la lista de clientes:

Como dato, estando en una página, si se pulsa Control+Alt+F1 aparece esta misma información.

De esta forma obtenemos que, la tabla de datos de clientes es la tabla 18. Además, mediante este sistema, podemos obtener los valores de todos los campos de la tabla de clientes del cliente seleccionado, tanto los que se muestran como los que no, en la lista de debajo.

Una vez se conoce el ID de la tabla de clientes, se debe crear un paquete de configuración:

Hay que considerar, tanto para cambiar datos como para añadir registros, que la aplicación aporta una lógica de negocio interna y debe respetarse, lo que hace que a veces, segun qué tablas, esta tarea sea compleja de este modo.

Una vez creado, ya podríamos exportar e importar desde excel. No obstante revisaremos diversos casos para encontrar el método óptimo para llevar a cabo el trabajo. Vamos a revisar varios casos.

Cambiar datos de un campo de la tabla de clientes

En este ejemplo vamos a realizar un cambio en dos campos: En el nombre, que no tiene validaciones importantes, y en el código postal, que debería modificar otros datos como la ciudad.

En primer lugar, asegurarnos de que únicamente vamos a modificar esos dos campos y, para ello:

Se desactiva la exportación de todos los campos menos los que se desea modificar (y la clave primaria de la tabla que no puede eliminarse). De esta forma, al exportar el excel, solo se exportarán esos campos de todos los registros del cliente. También pueden establecerse filtros a la exportación pero, ante la posibilidad de utilizar el mismo paquete en varias ocasiones es mas cómodo realizar los filtros en el propio excel generado.

(No sólo la clave primaria no puede eliminarse sino que la modificacion de la misma no da lugar a una modificación de datos sino a la creación de un nuevo registro. Básicamente, si la clave primaria es la identificación de un registro, modificarla implica crear un nuevo registro. Los paquetes sirven para crear y modificar pero no para eliminar)

No óbice, para establecer un filtro en la exportación del excel, lo que coadyuva el uso de los paquetes de configuración como métodos de consulta de datos y exportación a excel:

Ahora, con el excel generado se pueden realizar las modificaciones que se deseen de los valores. Es muy importante destacar que, en caso de no querer modificar ciertos registros lo óptimo es eliminar dichas filas de la propia excel (Eliminar, nunca borrar los datos pues se importarían registros nuevos en blanco al conformar una tabla en excel).

La excel exportada:

Y la excel preparada para que todos los clientes con número múltiplo de 10.000 se modifique el nombre y el código postal. El resto de filas, con clientes que no van a ser modificados, están eliminadas:

Se procede a la importación de la excel:

El número de registros de la excel es 8 mientras que en la base de datos hay 68. Se puede proceder a aplicar el paquete.
El paquete también puede ejecutarse desde las líneas de las tablas, de forma que si tienes varias tablas en el paquete puedas aplicar cada importación de cada tabla de una en una.

En este ejemplo de modificación se ve que se ha modificado el nombre y el código postal y, gracias a que ese código postal existe en el maestro de códigos postales, también se ha modificado la población y Alias aunque no se ve en la captura:

Introducir registros nuevos en la tabla de clientes

La tabla de clientes, la numeración puede establecerse de forma manual o de forma automática. En este ejemplo vamos a tener en consideración la numeración automática para establecer un nuevo cliente. En este caso solo mostraré capturas que difieran de las anteriores.

Para empezar, el mismo paquete anterior pero, en este caso, se exportarán todos los campos que se van a cumplimentar:

Primero se eliminan todos los registros que se exporten dado que se busca agregar registros y no modificar los existentes:

Se creará un nuevo cliente utilizando la numeración automática y, para ello, se debe dejar el campo Nº en blanco:

Al importar la excel y aplicarla, habrá creado un cliente con la numeración que establezca la serie y con un problema con el código postal dado que, al no existir en el maestro, no se habrá cumplimentado la población y deberíamos seleccionar un campo mas en el paquete, volver a exportarlo y rellenárselo ahí si se requiere su cumplimentación.

El resultado es:

Errores al importar un paquete de configuración

Al tratar de modificar datos o generar nuevos datos, pueden haber diversos errores en la cumplimentación de la información. Por ejemplo, con el ejemplo de la importación anterior, si cumplimentasemos un código de forma de pago o de grupo contable que no existe aparecería un error.

Antes de aplicar los datos del paquete, es decir, de importarlos en la base de datos, se pueden validar los datos. Muchos errores salen a la luz con el lanzamiento de este proceso:

Para ver los errores se pulsa en el «2» de «Nº errores de paquete»:

Nos abre una pantalla con los registros que dan error pudiendo modificar los datos manualmente en el propio registro. Para ver concretamente el error se pulsará «Mostrar error»:

De esta forma solventamos los errores y ya podemos aplicar el paquete.

Si el error aparece tras aplicar el paquete, podemos solventar el error y volver a aplicar el paquete.

Configuración de una nueva empresa

En este caso el ejemplo va a brillar por su ausencia. El método, básicamente, consiste en generar un paquete con todas las tablas de configuración y maestros requerida para que la empresa funcione e importarlo en una nueva empresa vacía.

Para conocer esa miríada de tablas se requiere conocer bien la aplicación pues son alrededor de 150 tablas.

Una vez conoces las tablas, y si la versión de la empresa de la que se exporta la configuración es de la misma versión de la aplicación, no se sucederán mayores problemas.

Por otro lado, si esos condicionantes no se cumplen, puede ser mas complejo por los campos nuevos y tablas que Microsoft ha venido añadiendo en la aplicación y cambios de nombres de campos y valores en algunos de ellos, y controles de cumplimentación en configuraciones, que, aunque no se utilicen, ahora puedan comprobarse y ser objeto de error.

En resumen, los pasos establecidos en esta guía son los óptimos, no se debe importar un paquete con todos los campos para modificar sólo 1 de los campos ni tampoco importar una excel con todos los registros si no todos deben ser modificados. Con esto nos evitamos posibles problemas de validaciones ulteriores con la modificación de los campos que no se desea modificar.
Hay que tener en cuenta que algunas tablas son mas complejas que otras. Por ejemplo, clientes tiene muchas validaciones mientras que, por ejemplo, precios de venta, no tiene prácticamente ninguna pero tiene una clave primaria de todos los campos que no son modificables.