Sincronización de la Base de Datos Distribuida

Nota: Este capítulo de la documentación es bastante técnico y va dirigido al personal de sistemas que va a tener a su cargo el manejo de la sincronización en XpertMart ®). Se ha optado por explicar como hacemos la sincronización y no solo dar unos pasos mecánicos a seguir para operarlo. Aunque es algo complejo lo que ocurre en la sincronización de los datos, cuando el sistema esta configurado y operando bien, todo esto ocurre de forma automático y no es necesario preocuparse de los detalles.

Una de las características importantes de XpertMart ® es su habilidad de manejar y coordinar datos en la oficina central con los datos en cada uno de las tiendas e inclusive con la tienda en Internet. Técnicamente se le llama a esto una Base de Datos Distribuida, esto es una base de datos que existe en más de un lugar. Inclusive en un momento dado es probable que parte de la base de datos solo existe en un lugar y otra parte de la base de datos exista solo en otro lugar. Un ejemplo común de esto es que a las 11:00 de la mañana en las oficinas centrales probablemente se haya agregado a la base de datos un nuevo estilo que se va a comercializar. En ese momento este estilo solo existe en la base de datos de la oficina central. Simultáneamente con esto esperamos que en cada una de las tiendas ya se hayan efectuado  ventas y la información de estas ventas solo existe en ese momento en la base de datos de cada tienda. Así que la labor de XpertMart ® es asegurar que esta base de datos este correctamente sincronizada entre sí. Es importante que en su oportunidad, las tiendas tengan en su base de datos toda la información acerca de este nuevo estilo que se dio de alta, inclusive su foto y párrafos descriptivos. De igual modo es importante en su momento tener en la base de datos de la central todos los datos de las ventas y demás movimientos de todas las tiendas. Como beneficio agregado a este esquema esta el poder ver en todas las tiendas las existencias de toda la cadena.

En XpertMart ® existen cuatro acciones principales para lograr esta sincronía de la base de datos distribuida. Estas acciones son: Inicialización de Catálogos, Regeneración de Documentos, Sincronización de Catálogos y Sincronización de Documentos. Veamos en que consiste cada uno de ellos.

Inicialización de Catálogos - La Inicialización de Catálogos consisten en vaciar toda la información contenida en un catálogo (normalmente en la central) a un archivo que se puede transportar a otra computadora (normalmente una tienda). Al recibir este archivo en la tienda se lee toda la información contenida y se actualiza o agrega al catálogo correspondiente. La ventaja de hacer esto es que en el sistema remoto tenemos toda la información del sistema central. La desventaja de esto es que el archivo a transportar puede ser bastante grande, sobre todo si contiene fotos y descripciones de los productos.

Regeneración de Documentos - La Regeneración de Documentos es parecida a la Inicialización de Catálogos, solo que estamos vaciando únicamente cierto rango de fechas de documentos (aunque el rango de fechas puede cubrir todo el periodo en que ha operado el sistema). Se vacían al archivo transportable todos los datos de todos los documentos que tengan fecha dentro del rango especificado. Normalmente se regeneran documentos en la tienda para transportarlos a la central. XpertMart ® ignora en la central documentos que le llegan si estas ya han sido aplicadas en la central. La ventaja de hacer esto es que aseguramos tener en el sistema central toda la información de los documentos regenerados en la tienda. La desventaja de esto es que el archivo a transportar puede ser bastante grande.

Sincronización de Catálogos - La Sincronización de Catálogos consiste en crear un archivo que contiene los cambios hechos a un catálogo en cierto día. Se hace un archivo para cada día. La idea es muy sencilla, si partimos el primero del mes con el mismo catálogo en la central y en una tienda basta que la central le avise a la tienda de los cambios que hizo a este catálogo el día 1 y que la tienda los aplique para que al final del día tengan de nuevo el mismo contenido en sus catálogos, la central y la tienda. XpertMart ® llevan el control de que días ha enviado la central y que días ha recibido la tienda. La ventaja de hacer esto es que son archivos mucho más pequeños que el enviar todo el catálogo cada vez. Hay una regla importante en esta sincronización por fechas de los catálogos o archivos de documentos. Se da el caso en que de un mismo artículo le ponga el precio de $10 el martes, y luego el jueves lo cambie a $9. Si yo aplico los cambios en el orden de fechas en que se dieron no tengo problema. Pero si llego a procesar el cambio que se dio el jueves y posteriormente el cambio que se dio el martes, el precio quedaría en el catálogo como $10 en lugar de $9. La regla entonces es que se tienen que procesar los archivos de sincronización en su orden de fechas. Por esta razón XpertMart ® no va a procesar un archivo de sincronización posterior si falta procesar el archivo de algún día anterior.

Sincronización de Documentos - La Sincronización de Documentos es exactamente igual que la sincronización de catálogos solo que en este caso son las tiendas las que envían los cambios hechos a sus registros de documentos.

Transporte de Archivos - XpertMart ® usa el protocolo FTP (File Transfer Protocol) para transportar archivos de inicialización o sincronización de una máquina a otra. Para esto se requiere de un servidor de FTP que puede estar conectado al internet o bien puede ser una máquina en la oficina central o la misma máquina de la central en que corren XpertMart ®. Si el servidor de FTP que se usa esta conectado al Internet, se va a hacer la transferencia de archivos vía Internet. Si el servidor de FTP esta en una máquina no conectada a Internet, se va a hacer la transferencia de archivos mediante una llamada por modem a esta máquina o mediante una red local o de área extendida (WAN). Cuando cualquier máquina sea central o remota desea enviar un archivo, lo sube al FTP y cuando cualquier máquina desea recibir un archivo lo baja del FTP.

¿Cómo se Logra la Sincronización? - Antes de pasar a una explicación detallada de como configurar y usar la sincronización en XpertMart ®) vale la pena explicar como es que logramos hacer esta sincronización. XpertMart ® guarda un campo de fecha llamada DLM (Date Last Modified) en cada registro de cada tabla que se va a sincronizar, sean tablas de catálogos o tablas de documentos. Cada vez que XpertMart ® cambia un registro, actualiza el campo DLM para señalar el día en que se hizo el cambio. Usando el DLM, XpertMart ® extrae entonces los registros cambiados en cierto día para crear los archivos de sincronización que corresponden a cualquier día. XpertMart ® registra tanto en central como en tiendas la última fecha en que envió o recibió los archivos de sincronización de cada tabla sea de catálogos o de documentos. De esta forma sabe que archivos le faltan en un momento dado para estar al día de su información. (NOTA: Si el usuario hace cambios a la base de datos que usa XpertMart ® sin pasar por XpertMart ® , debe inicializar de nuevo los catálogos en cuestión para que lleguen los cambios a las tiendas, ya que el DLM no va a señalar la fecha de estos cambios. )

XpertMart ® contempla que se quiera sincronizar la información más de una vez en el mismo día. Para esto usa el mismo esquema, solo que los archivos de sincronización que se generan para el día actual se señalan como temporales. Se consideran temporales, porque como no ha terminado el día, todavía puede haber cambios de ese mismo día a la información. Los archivos que se generan de días pasados (aunque sea por minutos) se marcan como definitivos porque se considera que una vez que ha finalizado el día ya no se van a hacer cambios en e l.

Nombres de Archivos - XpertMart ® asigna nombres a los archivos transportables que permiten conocer el tipo de información contenida en ellos sobre la base del nombre. Para archivos de inicialización de catálogos, el nombre se forma del nombre de la tabla (en inglés) seguido del número de la tienda en dónde se genera en tres dígitos, un punto y luego la extensión "xin" que indica XpertMart ® inicialización. Estos archivos no llevan la fecha por fuera porque la tienda no tiene manera de saber de que fecha va a haber un archivo de inicialización. Estos archivos llevan la fecha dentro del archivo. Como ejemplo un archivo de inicialización del catálogo de estilos se llamaría asi:

STYLES000. xin

En dónde "STYLES" es el nombre de la tabla, "000" es el número de tienda que se usa para la central y la extensión que indica que es una inicialización.

Para archivos de regeneración de documentos el esquema es el mismo que para inicialización de catálogos. El nombre se forma del nombre de la tabla (en inglés) seguido del número de la tienda en dónde se genera en tres dígitos, un punto y luego la extensión"xin" que indica XpertMart ® initialization. En el caso de documentos es importante notar que van a existir dos o tres archivos para cada tipo de documento. Un archivo lleva la información de la cabecera y pie del documento y otro archivo lleva la información del detalle del documento. Estos archivos no llevan la fecha por fuera porque la central no tiene manera de saber de que fechas va a recibir un archivo de regeneración. Estos archivos llevan la fecha dentro del archivo. Como ejemplo los archivos de regeneración de recibos se llamarían asi:

RECEIPTS001. xin
RECDET001. xin

El primero contiene la información de la cabecera y pie de los recibos. Su nombre es el nombre de esta tabla "RECEIPTS" seguido del número de la tienda "001" que es el número de la tienda que creó esta regeneración de recibos. Al final lleva un punto y "xin" que indica que es una regeneración de documentos.

Para archivos de sincronización de catálogos el nombre del archivo se forma del nombre de la tabla del catálogo seguido del número de tienda que lo generó en tres dígitos seguido del año en cuatro dígitos, el mes en dos dígitos y el día en dos dígitos. Si el archivo es el definitvo del día lleva una terminación de  ". xfn" para indicar que es un archivo final. Si el archivo es temporal lleva la terminación ". xtm" para indicar que es temporal. De esta forma tendríamos nombres de archivos asi:

COLORS00020010214. xfn
COLORS00020010215. xtm

El primer ejemplo es una sincronización del catalogo "COLORS" generado en la tienda "000" que es la central, el año 2001 el mes 02 el día 14 y es la sincronización definitiva de ese día. El segundo ejemplo es casí igual pero es del día 15 y es un archivo de sincronización temporal.

Los archivos de sincronización de documentos siguen el mismo esquema en sus nombres que los de sincronización de catálogos, solo recordando que debe haber dos o más archivos para cada tipo de documento.

Sincronización de Catálogos en la Central

En el caso de los catálogos en casi todos los casos, es la central la que hace cambios a los catálogos y por lo tanto la central tiene que emitir archivos de sincronización. Por lo tanto en la central se usa una pantalla para llevar un control de cuando se generó el último archivo de sincronización de cada catálogo y cuando se envio al FTP la sincronización de cada catálogo.

Para abrir esta pantalla de control de fechas de sincronización de catálogos se usa la siguiente opción en la pantalla principal:

 

Al escoger esta opción nos presenta esta pantalla de control:


En esta pantalla podemos ver o modificar la fecha de proceso de cada tabla de cada catálogo asi como su fecha de envio al FTP. Mediante las pestañas escojemos que tabla queremos ver y  en el espacio abajo nos despliega las fechas correspondientes a esa tabla. Normalmente no es necesario hacer nada en esta pantalla. El sistema lo maneja de forma automática. Si sincroniza cualquier catálogo o envia el archivo de sincronización de cualquier catálogo al FTP,  registra aqui la fecha en la que lo hizo. Si deseamos cambiar una fecha le damos un click en la flecha a la derecha de la fecha y nos aparece un componente XpertDate ® para que podamos modificar la fecha.

Como sería bastante trabajo modificar las fechas correspondientes a todas las tablas de los catálogos,  tenemos un proceso que pone a cierta fecha todas las tablas. Usamos el siguiente opción del menú para correr este proceso:

 

Al escoger esta opción nos aparece la siguiente ventana:

Basta fijar aqui una fecha para que esa fecha se fije como la última fecha de generación y envió de sincronización para todas las tablas de todos los catálogos.

Para crear los archivos de sincronización de catálogos en la central se entra a esta opción:

 

Al hacer esto el sistema empieza a generar los archivos de sincronización necesarios.   Aparece este cuadro informativo de las actividades que va haciendo:

 

Para entender mejor que hace en este momento el sistema, tomemos un ejemplo. Supongamos que la fecha de última sincronización del catálogo Lineas (cuya tabla se llama LINES) fue el día14 del mes y actualmente estamos al día 16 del mismo mes. El sistema va a generar un archivo final para el día 14 (esto porque el que hizo el día 14 fue un archivo temporal). Luego también generaría un archivo final para el día 15, porque ya paso el día 15. Para el día 16, generaría un archivo temporal, porque todavía no ha terminado el día 16 y puede haber todavía cambios al catálogo de Líneas. Al terminar en el registro de fechas dejaría la fecha 16 de este mes en vez de la fecha 14 que tenía antes. Esto lo haría para cada catálogo. Cabe señalar que también anota este proceso en la bitácora de comunicación.

Los archivos de sincronización que se generan se guardan en el archivo especificado como de salida para la sincronización. Normalmente es C:\Main\out

El siguiente paso de la sincronización de catálogos en la central es el envío de los archivos de sincronización al FTP. Si se escogió la opción de compresión, se hace la compresión de archivos antes de enviar los al FTP.

Para enviar los archivos de sincronización de catálogos al FTP se escoje la siguiente opción:

Una vez que se escoje esta opción el sistema empieza a hacer el proceso de envío al FTP de los catálogos de sincronización. Aparece la siguiente ventana en dónde nos informa de lo que va haciendo:

Compresión de Archivos - Si se escogió la opción de compresión de archivos, el sistema primero va a tomar los archivos de sincronización del directorio de salida y comprimirlos y dejarlos en el subdirectorio "comp" debajo del directorio de salida. Normalmente esto sería C:\Main\out\comp.

El siguiente paso es enviar en si los archivos al FTP. Si no se escogió la opción de compresión va a buscar los archivos de sincronización directamente en el directorio de salida. Si se escogió la opción de compresión va a buscar los archivos en el subdirectorio "comp" debajo del directorio de salida.

Aqui de nuevo va a usar la fecha grabado para cada catálogo como la última fecha en que se envió al FTP para hacer la transferencia. Tratará de enviar todos los archivos desde esa fecha hasta la fecha actual al FTP. Pero por diseño si no encuentra un archivo definitivo de un día anterior, entonces buscaría un archivo temporal para ese día. Si no encuentra un archivo de cierto día o sólo encuentra un archivo temporal de un día, ya no procede a días posteriores. Esto porque como ya se explico, hay que utilizar los archivos de sincronización en órden de fechas. De nada sirve un archivo de sincronización del día 15 si no hay un archivo definitivo del día 14.

Una vez que los archivos de sincronización de catálogos esten en el FTP, ha terminado la parte de sincronización de catálogos que corresponde a la central. Se termina el proceso en la remota.

Sincronización de Catálogos en la Remota

En la remota, la secuencia de procesos es la inversa de la central. Primero se tienen que bajar los archivos de sincronización del FTP, luego si se escogió comprimir los archivos hay que descomprimirlos. Una vez que los archivos se hayan bajado y descomprimido si es el caso, se tienen que procesar los archivos de sincronización para agregar o actualizar la información en la base de datos remota. Afortunadamente todo esto lo hace el sistema.

Normalmente en la Remota se reciben cambios a los catálogos. Por lo tanto en la remota se usa una pantalla para llevar un control de cuando se recibio del FTP la sincronización de cada catálogo y cuando se aplico el último archivo de sincronización de cada catálogo.

Para abrir esta pantalla de control de fechas de sincronización de catálogos se usa la siguiente opción en la pantalla principal:

Al escoger esta opción nos presenta esta pantalla de control:

 

En esta pantalla podemos ver o modificar la fecha de proceso de cada tabla de cada catálogo asi como su fecha de recepción del FTP. Mediante las pestañas escojemos que tabla queremos ver y  en el espacio abajo nos despliega las fechas correspondientes a esa tabla. Normalmente no es necesario hacer nada en esta pantalla. El sistema lo maneja de forma automática. Si sincroniza cualquier catálogo o recibe el archivo de sincronización de cualquier catálogo del FTP,  registra aqui la fecha en la que lo hizo. Si deseamos cambiar una fecha le damos un click en la flecha a la derecha de la fecha y nos aparece un componente XpertDate ® para que podamos modificar la fecha.

Como sería bastante trabajo modificar las fechas correspondientes a todas las tablas de los catálogos,  tenemos un proceso que asigna cierta fecha a todas las tablas. Usamos el siguiente opción del menú para correr este proceso:

Al escoger esta opción nos aparece la siguiente ventana:

Basta fijar aqui una fecha para que esa fecha se fije como la última fecha de generación y envió de sincronización para todas las tablas de todos los catálogos.

Para bajar los archivos de sincronización del FTP se selecciona esta opción del menú principal en la remota:

Una vez que escoges esta opción el sistema empieza a bajar del FTP los archivos de sincronización de los catálogos. Al hacer esto despliega la siguiente ventana en dónde informa lo que esta haciendo:

Si el sistema esta configurado para usar compresión de archivos va a bajar los archivos y dejarlos en el subdirectorio "comp" debajo del directorio de entrada. Normalmente esto sería C:\Main\in\comp. Si no esta configurado para usar compresión de archivos entonces bajaría los archivos directamente a C:\Main\in\. Es muy importante que tanto la central como las remotas tengan seleccionado ya sea compresión o no compresión de archivos. Si la central esta comprimiendo los archivos y la remota no los esta esperando como comprimidos no va a funcionar la sincronización.

XpertMart ® sigue el mismo esquema de fechas aqui que la que se explico arriba. Trata de bajar un archivo definitivo para cada fecha empezando con la última fecha anotada en el registro de fechas FTP hasta el día actual. Para el primer día que no encuentra un archivo definitivo busca uno temporal. Al encontrar un archivo temporal de cierto día ya no sigue porque tiene que seguir la secuencia de fechas. Va anotando todos los pasos que ejecuta en la bitacora de sincronización.

Si el sistema esta configurado para usar compresión de archivos después de bajar los archivos va a descomprimirlos del subdirectorio "comp" y dejar la copia descomprimida en  C:\Main\in.

Una vez que los archivos esten en el directorio de entrada se puede pasar a aplicar los cambios en estos archivos a la base de datos de la remota. Para hacer esto se escoje esta opción:

Una vez que escoge esta opción el sistema empieza a procesar los archivos de sincronización. Al hacer esto nos presenta esta ventana informativo de lo que va haciendo:

XpertMart ® sigue el mismo esquema de fechas aqui que la que se explico anteriormente. Trata de procesar un archivo definitivo para cada fecha empezando con la última fecha anotada en el registro de fechas de sincronización hasta el día actual. Para el primer día que no encuentra un archivo definitivo busca uno temporal. Al encontrar un archivo temporal de cierto día ya no sigue porque tiene que seguir la secuencia de fechas. Va anotando todos los pasos que ejecuta en la bitacora de sincronización.

Al terminar este proceso los catálogos de la remota tiene el mismo contenido que la que contenían los catálogos de la central cuando genero sus archivos de sincronización.

Sincronización de Documentos en la Remota

En el caso de los documentos en casi todos los casos, es la remota la que crea los documentos y por lotanto la remota tiene que emitir los archivos de sincronización. Por lo tanto en la remota se usa una pantallapara llevar un control de cuando se generó el último archivo de sincronización de cada documento y cuando se envio al FTP la sincronización de cada documento.

De hecho se usa la misma pantalla que se usa para los catálogos. Para abrir esta pantalla de control de fechas de sincronización de catálogos y documentos se usa la siguiente opción en la pantalla principal:

Al escoger esta opción nos presenta esta pantalla de control:

  

En esta pantalla podemos ver o modificar la fecha de proceso de las tablas de cada documento asi como su fecha de envio al FTP. Mediante las pestañas escojemos que tabla queremos ver y  en el espacio abajo nos despliega las fechas correspondientes a esa tabla. Normalmente no es necesario hacer nada en esta pantalla. El sistema lo maneja de forma automática. Si sincroniza cualquier documento o envia el archivo de sincronización de cualquier documento al FTP,  registra aqui la fecha en la que lo hizo. Si deseamos cambiar una fecha le damos un click en la flecha a la derecha de la fecha y nos aparece un componente XpertDate ® para que podamos modificar la fecha.

Como sería bastante trabajo modificar las fechas correspondientes a todas las tablas de los documentos, tenemos un proceso que pone a cierta fecha todas las tablas. Usamos la siguiente opción del menú para correr este proceso:

Al escoger esta opción nos aparece la siguiente ventana

 

Basta fijar aqui una fecha para que esa fecha se fije como la última fecha de generación y envió de sincronización para todas las tablas de todos los documentos.

Para crear los archivos de sincronización de documentos en la remota se entra a esta opción:

Al hacer esto el sistema empieza a generar los archivos de sincronización necesarios. Aparece este cuadro informativo de las actividades que va haciendo:

 

Para entender mejor que hace en este momento el sistema, tomemos un ejemplo. Supongamos que la fecha de última sincronización del documento Facturas (cuyas tablas se llaman: INVOICES, INVDET y INVPAY) fue el día14 del mes y actualmente estamos al día 16 del mismo mes. El sistema va a generar un archivo final para el día 14 (esto porque el que hizo el día 14 fue un archivo temporal). Luego también generaría un archivo final para el día 15, porque ya paso el día 15. Para el día 16, generaría un archivo temporal, porque todavía no ha terminado el día 16 y todavía se pueden agregar facturas. Al terminar en el registro de fechas dejaría la fecha 16 de este mes en vez de la fecha 14 que tenía antes. Esto lo haría para cada tipo de documento. Cabe señalar que también anota este proceso en la bitácora de comunicación. Los archivos de sincronización que se generan se guardan en el archivo especificado como de salida para la sincronización. Normalmente es C:\Main\out.

El siguiente paso de la sincronización de documentos en la remota es el envío de los archivos de sincronización al FTP. Si se escogió la opción de compresión, se hace la compresión de archivos antes de enviarlos al FTP.

Para enviar los archivos de sincronización de documentos al FTP se escoje la siguiente opción:

 

Una vez que se escoje esta opción el sistema empieza a hacer el proceso de envío al FTP de los archivos de sincronización de documentos. Aparece la siguiente ventana en dónde nos informa de lo que va haciendo:

Compresión de Archivos - Si se escogió la opción de compresión de archivos, el sistema primero va a tomar los archivos de sincronización del directorio de salida y comprimirlos y dejarlos en el subdirectorio "comp" debajo del directorio de salida. Normalmente esto sería C:\Main\out\comp.

El siguiente paso es enviar en si los archivos al FTP. Si no se escogió la opción de compresión va a buscar los archivos de sincronización directamente en el directorio de salida. Si se escogió la opción de compresión va a buscar los archivos en el subdirectorio "comp" debajo del directorio de salida.

Aqui de nuevo va a usar la fecha grabado para cada tabla de cada documento como la última fecha en que se envió al FTP para hacer la transferencia. Tratará de enviar todos los archivos desde esa fecha hasta la fecha actual al FTP. Pero por diseño si no encuentra un archivo definitivo de un día anterior, entonces buscaría un archivo temporal para ese día. Si no encuentra un archivo de cierto día o sólo encuentra un archivo temporal de un día, ya no procede a días posteriores. Esto porque como ya se explico, hay que utilizar los archivos de sincronización en órden de fechas. De nada sirve un archivo de sincronización del día 15 si no hay un archivo definitivo del día 14.

Una vez que los archivos de sincronización de documentos esten en el FTP, ha terminado la parte de sincronización de documentos que corresponde a la remota. Se termina el proceso en la central.

Sincronización de Documentos en la Central

En la central, la secuencia de procesos es la inversa de la remota. Primero se tienen que bajar los archivos de sincronización de documentos del FTP, luego si se escogió comprimir los archivos hay que descomprimirlos. Una vez que los archivos se hayan bajado y descomprimido si es el caso, se tienen que procesar los archivos de sincronización para agregar o actualizar la información en la base de datos central. Afortunadamente todo esto lo hace el sistema.

Normalmente en la central se reciben cambios a los documentos. Pero en este caso hay una diferencia importante. La central va a recibir documentos de "n" número de tiendas. Por lo tanto en la central se usa un catálogo de sincronización de documentos de la central. En este catálogo hay un registro para cada tienda para llevar el control de cuando se recibio del FTP la sincronización de cada tabla de documento y cuando se aplico el último archivo de sincronización de cada documento.

Para abrir este catalogo de sincronización de documentos de las tiendas se usa la siguiente opción en la pantalla principal de la central:

Al escoger esta opción nos presenta esta pantalla del catálogo de Sincronización de Tiendas remotas:

 

En esta pantalla podemos ver o modificar la fecha de proceso de cada documento asi como la fecha de recepción del FTP de cada tabla de cada documento. Mediante los controles normales de un catálogo escojemos que tienda queremos ver en el los registros abajo nos despliega las fechas correspondientes a cada documento y sus tablas. Normalmente no es necesario hacer nada en esta pantalla. El sistema lo maneja de forma automática. Si sincroniza cualquier documento o recibe el archivo de sincronización de cualquier tabla de documento del FTP, el sistema registra aqui la fecha en la que lo hizo. Si deseamos cambiar una fecha le damos un click en la flecha a la derecha de la fecha y nos aparece un componente XpertDate ® para que podamos modificar la fecha.

Como se contempla que puede haber tiendas que no esten sincronizando sus documentos por cualquier razón también existe al lado del número de la tienda una cajita en dónde podemos señalar que la tienda es inactivo en cuanto a la sincronización. Si esta opción esta seleccionado, el sistema no va a tratar de bajar archivos de documentos de esta tienda del FTP, ni va a tratar de procesar archivos de documentos de esta tienda.

Como sería bastante trabajo modificar las fechas correspondientes a todas las tablas de los documentos, tenemos un proceso que pone a cierta fecha todas las tablas y documentos de una tienda. Usamos la siguiente opción del menú para correr este proceso:

Al escoger esta opción nos aparece la siguiente ventana:

Basta fijar aqui el número de la tienda que queremos modificar y una fecha para que esa fecha se fije como la última fecha de generación y envió de sincronización para todas las tablas de todos los documentos de esa tienda.

Para bajar los archivos de sincronización de documentos del FTP se selecciona esta opción del menú principal en la central:

Una vez que escogemos esta opción el sistema empieza a bajar del FTP los archivos de sincronización de los documentos. Va a hacer esto para cada tienda que este en el catálogo de sincronización de tiendas y que no este marcado como inactivo. Al hacer esto despliega la siguiente ventana en dónde informa lo que esta haciendo:

Si el sistema esta configurado para usar compresión de archivos va a bajar los archivos y dejarlos en el subdirectorio "comp" debajo del directorio de entrada. Normalmente esto sería C:\Main\in\comp. Si no esta configurado para usar compresión de archivos entonces bajaría los archivos directamente a C:\Main\in\. Es muy importante que tanto la central como las remotas tengan seleccionado ya sea compresión o no compresión de archivos. Si la remota esta comprimiendo los archivos y la central no los esta esperando como comprimidos no va a funcionar la sincronización.

XpertMart ® sigue el mismo esquema de fechas aqui que la que se ha explico anteriormente. Trata de bajar un archivo definitivo para cada fecha empezando con la última fecha anotada en el registro de fechas FTP hasta el día actual. Para el primer día que no encuentra un archivo definitivo busca uno temporal. Al encontrar un archivo temporal de cierto día ya no sigue porque tiene que seguir la secuencia de fechas. Va anotando todos los pasos que ejecuta en la bitacora de sincronización.

Si el sistema esta configurado para usar compresión de archivos después de bajar los archivos va a descomprimirlos del subdirectorio "comp" y dejar la copia descomprimida en  C:\Main\in.

Una vez que los archivos esten en el directorio de entrada se puede pasar a aplicar los cambios en estos archivos a la base de datos de la central. Para hacer esto se escoje esta opción:

Una vez que escoge esta opción el sistema empieza a procesar los archivos de sincronización. Al hacer esto nos presenta esta ventana informativo de lo que va haciendo:

XpertMart ® sigue el mismo esquema de fechas aqui que la que se explico anteriormente. Trata de procesar un archivo definitivo para cada fecha empezando con la última fecha anotada en el registro de fechas de sincronización hasta el día actual. Para el primer día que no encuentra un archivo definitivo busca uno temporal. Al encontrar un archivo temporal de cierto día ya no sigue porque tiene que seguir la secuencia de fechas. Va anotando todos los pasos que ejecuta en la bitacora de sincronización.

Habiendo terminado estos procesos para la primer tienda del catálogo de sincronización de documentos de tiendas que no se encuentra marcada como inactivo, va a hacer esto para la siguiente tienda que este en el catálogo de sincronización de tiendas y que no este marcado como inactivo.

Al terminar de hacer este proceso para todas las tiendas, los documentos de la central tienen el mismo contenido que la que contenían los catálogos de la remota cuando genero sus archivos de sincronización.

Secuencia de Procesos de Sincronización en una Cadena

Ya hemos repasado como funciona la sincronización de catálogos y documentos. XpertMart ® permite usar el XpertScheduler ® para automatizar todos estos procesos para que la sincronización de catálogos sea algo automático. Es importante entender en que órden se deben hacer estos procesos para mayor eficiencia. Vamos a usar el caso clásico en el que se quiera hacer la sincronización total de las bases de datos en la noche. Para facilitar el ejemplo vamos a asignar ciertas horas a los procesos. Estas horas solamente son como ejemplo, las horas reales que quieran usar pueden variar según los horarios de sus oficinas y tiendas.

22:00 Horas - Las remotas crean los archivos de sincronización de sus documentos. Suponemos a esta hora que han terminado su actividad del día y esta sincronización va a contener todos los movimientos del día.

23:00 Horas - Las remotas suben sus archivos de sincronización de documentos al servidor FTP.

00:00 Horas - La central baja los archivos de sincronización de las tiendas del servidor FTP.

01:00 Horas - La central procesa los archivos de sincronización de documentos de todas las tiendas. Después de esto la central va a tener registrado todos los movimientos del día de todas las tiendas y bodegas.

03:00 Horas - La central crea los archivos de sincronización de catálogos. Dentro de los catálogos que sincroniza esta el de existencias. Como ya aplico todos los movimientos de todas las tiendas, el catálogo de existencias marca la existencia con la que termino cada tienda y bodega.

04:00 Horas - La central sube los archivos de sincronización de catálogos al servidor FTP.

05:00 Horas - Las remotas bajan los archivos de sincronización del servidor FTP.

06:00 Horas - Las remotas aplican los archivos de sincronización a sus catálogos.

Podemos apreciar bajo este esquema que al iniciar un nuevo día, la central tiene toda la información de las tiendas y las tiendas tiene todos los cambios a los catálogos hechos en la central. Como ya se señalo en este esquema, toda la cadena tiene el archivo de existencias actualizado de todos los inventarios de la cadena.

Automatización de la Sincronización en una Cadena

Para automatizar todo el proceso de sincronización, basta determinar los horarios que se desean utilizar y usar el XpertScheduler ® para programar estos procesos a las horas deseadas.

Siguiendo los horarios del ejemplo arriba citado, la programación de la tienda remota se vería asi:

La programación de la central se vería asi:


Empresas en México, Guatemala, El Salvador, Panama, Honduras, Paraguay, Colombia y USA diariamente usan nuestro software XpertMart (mr) para sus operaciones de venta al detalle. Atendemos todos los países de Latino América y el Caribe. Disponible en Chile, Venezuela, Uruguay, Argentina y Costa Rica.