4/5 Crear una colección de tablas

Eliminar el DataAreaId no es lo habitual porque haciéndolo de la manera que lo acabamos de hacer, se ha compartido la tabla para todas las empresas, ¿y si quisiéramos compartirla solo para algunas empresas?

Para este ejemplo, de la multitud de empresas que tiene el sistema , quiero compartir la tabla MedGroup para las empresas CEE y CEU.



Para este fin utilizaré las table Collections de Ax.

Para crear una nueva nos dirigiremos al nodo

AOT > DataDictionary > Table Collections



Botón derecho sobre el nodo Table Collections y Nuevo Table Collection.

.


Luego arrastraremos la/s tablas que queramos compartir desde el nodo AOT > DataDictionary > Tablas al table Collections.




Una vez realizado esto ya tendremos todo el trabajo hecho en el AOT

El siguiente paso será crear una cuenta de empresa virtual. Lo haremos desde la siguiente ruta:

Administración del sistema > Configurar > Cuentas de empresa virtuales




Crearemos una nueva ya sea mediante el botón nuevo o con la combinación de teclas Crtrl + N. Esto lo que hará es crear una cuenta virtual (Yo la he llamado 'vir') que será tratada como si fuera una empresa del sistema.



Para realizar este proceso sólo un usuario administrador puede estar conectado, en caso de que haya más de uno, nos aparecerá un mensaje como éste.



Una vez guardemos el registro nos aparecerán las pestañas Cuentas de la empresa Recopilación de tablas.



En la pestaña de cuentas de la empresa agregaremos las empresas para las que queramos compartir las tablas.



En la pestaña Recopilación de tablas agregaremos todas las colecciones de tablas que queramos agregar a esta cuenta virtual.



El sistema nos advertirá de que no migra los datos de las tablas que forman la colección de tablas, con esto nos avisa que los registros que estaban en la empresa cee seguirán en ella y no se migrarán a la nueva cuenta virtual creada.


Una vez finalizado al cerrar el formulario nos reiniciará Ax.




Si abrimos Ax y nos dirigimos al formulario MedGroup veremos que no tenemos datos. Esto es debido a que ahora en las empresas cee y ceu para la tabla MedGroup buscará en el SQL por los registros que tengan como DataAreaId 'vir' y como los datos del SQL no los hemos migrado seguirán en la empresa cee y ceu como vemos en las siguientes imágenes.




Lo que deberemos hacer es actualizar el campo DataAreaId por el nombre identificativo de la cuenta de la empresa virtual en mi caso 'vir', de la tabla/s para las empresas que forman la cuenta de empresa virtual, en este caso en la table collection solo tenía la tabla MedGroup, así que únicamente actualizaré esta tabla.



Ahora si entramos en la empresa cee o ceu veremos los datos que se han actualizado y que antes formaban parte de estas dos empresas.



Si ahora creamos un nuevo registro desde las empresas cee o ceu, las que forman la colección de tablas, éste se creará con el dataAreaId vir.




Pero si creamos un registro en cualquiera de las otras empresas que no están en la cuenta de la empresa virtual, su DataAreaId será el de su empresa y sólo se mostrará el registro en ésta.


Como podemos ver en el SQL.




Comentarios