====== Sincronización de datos entre empresas ====== ===== Configuración ===== La configuración la tiene que realizar el usuario //SYSDBA// desde el menú //Herramientas/Sincronización/Sinc. interna//. Solo se puede configurar tablas que están preparadas para la sincronización (a través de un disparador), que con fecha de 01/09/2016 son: ^Nombre ^Tabla ^ |Categorías |CATEGORIA | |Plazos de pago |CC_PLAZOS_PAGO | |Direcciones de tercero |DIRECCION_TERCERO | |Divisas |DIVISA | |Formatos de productos |FORMATO_PROD | |Formas de pago |FORMA_PAGO | |Tipos de productos |GGM_TIPO_PROD | |Grupos contables de productos |GRUPO_CONTAB_PRODUCTO | |Grupos contables de terceros |GRUPO_CONTAB_TERCERO | |Grupos de facturación |GRUPO_FACTURACION | |Iva de productos |IVA_PRODUCTO | |Iva de terceros |IVA_TERCERO | |Productos |PRODUCTO | |Terceros |TERCERO | |Tipos de periodo |TIPO_PERIODO | |Tipos de retención |TIPO_RETENCION | |Unidades |UNIDAD | {{ :usu:guia_de_usuario:sincinternaprod.png?600 | Sinc. interna productos}} ==== Cabecera ==== ^Campo ^Descripción ^ |Grupo instalación |El grupo de instalación. | |Nombre tabla |El nombre de la tabla a sincronizar.\\ Se ignora cualquier tabla que no aparece en el listado de arriba. | |Clave inst. a sincronizar |La o las claves de empresas que deben sincronizar cualquier cambio con las demás empresas del grupo.\\ Se puede listar varias claves separados por coma. | |Clave inst. denegar modif. |Las clave de empresas en las que se debería denegar cualquier modificación de un dato sincronizado.\\ Se puede listar varias claves separados por coma. | |Cód. grupo inst. |El grupo de empresas a las que se tiene que sincronizar cualquier cambio hecho en una de las bases de datos del campo //Clave inst. a sincronizar//.\\ El grupo de empresas se define en //Archivo/Base de datos/Conexiones externas// (ver también la siguiente imagen).\\ En este caso el grupo se llama ''OTROS'' y tiene que existir en la empresa //gla//. | |Insertar |Si se pone en ''N'' este campo, entonces no se van a crear códigos nuevos en las empresas de destino. | |Actualizar |Si se pone en ''N'' este campo, entonces no se van a modificar los datos en las empresas de destino.\\ Si //Insertar// y //Borrar// están en ''S'' entonces solo se van a crear códigos nuevos o borrar códigos borrados en la empresa de origen (//gla//). | |Borrar |Si se pone en ''N'' este campo, entonces no se van a borrar códigos en las empresas de destino al borrar un código en la empresa de origen. | |Ignorar errores |''N'': Si ocurre un error al sincronizar cualquier cambio con una de las empresas de destino, se le mustra el error al usuario de Smart y tiene que deshacer su cambio con ''Escape''. O dicho con otras palabras, solo se permite una modificación en la empresa de origen (//gla//) si se puede sincronizar sin problemas con las empresas de destino.\\ ''S'': Cualquier error en la sincronización se protocoliza y el usuario solo recibe un mensaje informativo (//mensajero//). Para ver el error se puede usar el menú **//Sinc. interna/Errores//**. | |Patrón cód. 1-6 |Aquí se puede definir un patrón para los códigos que se deben tomar en cuenta en la sincronización, en este ejemplo son códigos con exáctamente 8 dígitos.\\ La tabla de los productos solo tiene 1 código, pero en Smart existen tablas con hasta 6 códigos, por lo cual necesitamos 6 campos para los patrones.\\ Si se deja en blanco, se sincroniza cualquier código.\\ Los patrones permitidos son los que están permitidos en la operación ''SIMILAR'' de Firebird (ver documentación de Firebird).| {{ :usu:guia_de_usuario:sincinternaotros.png?300 |Empresas a sincronizar}} ==== Líneas ==== En las líneas del formulario se pueden añadir los campos que se deberían tomar en cuenta en la sincronización. Si no se añade ningún campo, se sincronizan las modificaciones de cualquier campo, en caso contrario solo se sincronizan modificaciones de los campos añadidos. **Si un campo incluido en la sincronización depende de otra tabla (//foreign key//), entonces también se debería incluir esta otra tabla en la sincronización, o se debería asegurar de alguna otra forma que los códigos sincronizados existan en las empresas de destino.** Un ejemplo es el campo ''COD_TIPO_PROD'', que depende de la tabla //Tipos de productos//. ==== Menús ==== **Menú: Sinc. interna/Errores\\ Tecla: -** Se mustran los errores ocurridos en la sincronización para la tabla actual. Esto solo afecta a tablas definidas con //Ignorar errores// = ''S''. **Menú: Sinc. interna/Sincronizar\\ Tecla: F10** Se ejectua una sincronización instantánea de todos los datos de la tabla. Internamente se realizar un ''update tabla set codigo = codigo''. ===== Sincronización ===== Si trabajamos en una empresa que sincroniza sus cambios con otras empresas, al realizar un cambio en una de las tablas afectadas, **este cambio puede tardar un rato, especialmente al principio de una sesión**. Esto se debe a que el motor de la base de datos tiene que abrir conexiones a todas las empresas de destino y entonces repetir allí los cambios hechos en la empresa de origen. Después del primer cambio, las siguientes modificaciones deberían acabar más rápidas. Cualquier sincronización terminada se le muestra al usuario con el mensaje ''Cambios sincronizados'' al usuario: {{ :usu:guia_de_usuario:sincinternacambiossinc.png?600 |Cambios sincronizados}} Si trabajamos en una empresa que es el destino de una sincronización, y esta empresa aparece en el listado //Clave inst. denegar modif.// (ver arriba), entonces SmartOffice nos muestra el siguiente error si intentamos modificar un dato de una tabla de sincronización. {{ :usu:guia_de_usuario:sincinternacambiosprohib.png?600 |Cambios prohibidos}} **El usuario //SYSDBA// sí puede realizar cualquier cambio en cualquier empresa.**