1. Introducción
El objetivo del módulo de delegaciones es la intercomunicación "off-line" de dos o más instalaciones que no están conectadas físicamente, o que lo están de forma discontinua. Mediante este módulo, la información se transmite de unas instalaciones a otras periódicamente (por medio de Internet, una WAN, o de un soporte de datos transportable), con el objeto de que todas las bases de datos de las delegaciones contengan los mismos datos, tal como si estuvieran conectadas físicamente por medio de una red local. El sistema funciona definiendo una carpeta (o varias), que denominaremos "buzón", a la que todas las delegaciones tendrán acceso. Cada una de las delegaciones irá recogiendo la información necesaria para actualizar su base de datos, y depositando la información para que las demás hagan lo mismo. Por lo tanto, no es necesario que las delegaciones accedan al "buzón" simultáneamente, ni que estén en comunicación directa en ningún momento.
Limitaciones
Para sacar el máximo provecho de este módulo, es muy importante tener en cuenta las siguientes limitaciones, derivadas en su mayoría de la naturaleza "off-line" del sistema de comunicaciones.
Actualización diferida
Como es evidente, la información generada en las demás delegaciones del sistema sólo estará disponible en cada delegación cuando se realice el proceso de transferencia de datos, con lo cual cierta información, como el stock actual de los artículos, o el riesgo de un cliente, corre el riesgo de estar desactualizada en el momento de consultarla. Por lo tanto, si la actualización simultánea de esta información es imprescindible, es aconsejable utilizar una red de área extendida (WAN), o un producto de terminales, como Terminal Server (www.microsoft.com) o Citrix (www.citrix.com).
Ausencia de bloqueos
Como puede comprenderse fácilmente, es físicamente imposible bloquear los registros entre delegaciones, como ocurre si se utilizara la aplicación en una red local. Es decir, puede ocurrir que en dos delegaciones se modifique, por ejemplo, la ficha del mismo cliente, o la misma factura, sin que el sistema advierta tal situación hasta el momento de la transferencia de datos.
Ausencia de control de claves duplicadas
Igualmente, el sistema no tiene manera de detectar claves duplicadas, como ocurre si se utilizara la aplicación en una red local. Por ejemplo, si en una red local se da de alta el cliente Nº 57 desde un puesto, y desde otro puesto se intenta dar de alta otro cliente con el mismo número, el sistema no lo permitirá, dando un error del tipo "Ya existe otro cliente con ese número". Por el contrario, como es lógico, es posible dar de alta un cliente Nº 57 en cada delegación, sin que el sistema advierta tal situación hasta el momento de la transferencia de datos. De esta manera, cuando el sistema actualice las bases de datos, combinará las fichas de ambos clientes en una sola, y asignará, por ejemplo, todas las facturas de ambos clientes a esta única ficha.
Sólo un enlace por cada empresa
Debido a la estructuración del sistema, sólo puede haber un enlace entre delegaciones para cada empresa de SQL OBRAS. Es decir, si en una empresa de SQL OBRAS la información está separada en diferentes ejercicios, sólo es posible enlazar con otras delegaciones uno de esos ejercicios. Esto no debería suponer ningún problema, ya que en SQL OBRAS no es necesario separar la información según los años, y la existencia de diferentes períodos o ejercicios sólo está pensada para organizar un histórico de la información. Por lo tanto, sólo debería estar enlazado el ejercicio activo.
Planificación
Para superar las limitaciones antes descritas, es necesario planificar las actividades de cada delegación.
Si bien el sistema permite modificar cualquier dato de la base de datos en cualquiera de las delegaciones, suele ser una buena idea realizar la actualización de la información que podría denominarse "fija" (porque no varía habitualmente), desde una sola de las delegaciones. Estos datos "fijos" son diferentes según los casos, pero se podrían citar Tipos de clientes, Zonas, Familias de artículos, Series de documentos, etc.
También, en los casos en los que sea posible, los mantenimientos de datos como las tarifas de precios, o la propia tabla de artículos, deberían dejarse a cargo de una sola delegación, para evitar posibles errores o solapamientos de modificaciones.
Para los demás datos, a los que es necesario modificar desde todas las delegaciones, debe establecerse una planificación. Por ejemplo, en caso de que sea necesario dar de alta clientes en todas las delegaciones, debería asignarse un rango de códigos diferentes para cada una de ellas: 1-10000 para la delegación 1, 2-20000 para la delegación 2, etc., o algún sistema parecido, con el fin de evitar que se repitan inadvertidamente los códigos. En el caso de los documentos, como albaranes o facturas, se recomienda utilizar una serie diferente para cada delegación.
Para organizar mejor las jerarquías en la organización de los datos, se sugiere utilizar el sistema de Permisos de Acceso disponible en SQL OBRAS (Opciones/Permisos de Acceso), para restringir el acceso a los diferentes apartados de la aplicación, en cada una de las delegaciones.
Como puede verse, los consejos citados anteriormente deben interpretarse y adaptarse a cada caso, con el objeto de lograr una mayor consistencia de la información. No obstante, es importante destacar que, en cualquier momento, según las necesidades, es posible modificar o añadir cualquier dato desde todas las delegaciones.
2. Consideraciones previas
Antes de proceder con la instalación y configuración de un sistema de delegaciones, es necesario elaborar una lista de todas las delegaciones que formarán parte del sistema, asignando un código a cada una de ellas. Esta codificación deberá respetarse en todas las delegaciones. Se considera una delegación a un equipo individual o un conjunto de equipos conectados entre sí mediante una red local. Pueden interconectarse hasta 127 delegaciones, numeradas de la 1 a la 127. Es importante destacar que la delegación designada con el código 1 es la única que podrá realizar enlaces con contabilidad, por lo que se debe tener especial cuidado al asignar los códigos a las delegaciones. A lo largo de este documento, vamos a analizar un caso supuesto de una empresa, que tiene un local donde se sitúa la administración central, y dos locales comerciales dedicados a la venta minorista. Así, la lista de delegaciones quedaría, por ejemplo, conformada de la siguiente manera:
Código Nombre Descripción de la delegación Licencias requeridas
1 Administración Red local compuesta por cuatro equipos.
- SQL OBRAS con licencia para cuatro usuarios.
- Módulo de Delegaciones.
2 Tienda Milano Dos TPV conectados en red local.
- SQL OBRAS con licencia para dos usuarios.
- Módulo de Delegaciones.
3 Tienda Firenze Un TPV.
- SQL OBRAS con licencia monousuario.
- Módulo de Delegaciones.
3. Selección del método de comunicaciones
Una vez determinada la lista de delegaciones, es necesario decidir de qué manera se realizarán las comunicaciones, o dicho de otra manera, dónde estará ubicado el "buzón" y de qué manera las distintas delegaciones accederán a él. Es muy importante destacar que el buzón debe tener capacidad suficiente para almacenar una copia de seguridad de la base de datos completa, más un 20% como margen de seguridad. Si desea saber el tamaño de una copia de seguridad, seleccione Procesos/Generar copia de seguridad, y consulte las propiedades del archivo resultante. No olvide que si su base de datos está encriptada, el volumen de la copia de seguridad será mucho mayor; si desea desencriptar su base de datos, seleccione Herramientas/Utilidades/Cambiar clave externa, y deje en blanco la clave solicitada. Si bien es posible configurar el sistema de múltiples maneras, podemos citar, como ejemplo, las siguientes tipologías más habituales:
Enlace a través de Internet
Se utiliza como "buzón" una carpeta situada en una dirección FTP, como las que proporcionan la mayoría de los proveedores de acceso a internet para alojar páginas web. Para instalar el sistema de esta manera, es necesario que al menos un equipo en cada delegación tenga acceso a Internet, y como ya se ha explicado, un espacio disponible en un servidor de Internet, al que todas las delegaciones tengan acceso. Cabe destacar que no es necesario que todas las delegaciones tengan acceso simultáneamente a Internet, por lo que bastará con una sola cuenta, que cada delegación utilizará por turnos. Esta solución es la más sencilla de implementar, y la de menor coste, ya que la contratación de un acceso a Internet con un espacio web puede obtenerse incluso de forma gratuita (aunque se recomienda contratar un acceso de calidad), y el coste de las llamadas a internet es siempre local, independientemente de la localización de las delegaciones. En nuestro ejemplo, podríamos contratar un acceso a internet con el proveedor CTV, con lo que tendríamos asignados 5 MB de espacio en disco en sus servidores, y podríamos disponer de ellos accediendo a ftp://ftp.ctv.es con nuestro nombre de usuario y contraseña.
Enlace directo a través del Servidor de Acceso Remoto
Se utiliza como "buzón" una carpeta de algún equipo del sistema. En la delegación donde se encuentre el buzón, deberá instalarse y configurarse el Servidor de Acceso Remoto de Windows, para aceptar llamadas entrantes de las otras delegaciones. En las demás delegaciones, deberá configurarse el Acceso Telefónico a Redes para acceder a la delegación "buzón". Tal como en el caso anterior, ya que no es necesario el acceso simultáneo de las delegaciones, sólo sería necesario disponer de una línea telefónica en la delegación "buzón", para atender a todas las delegaciones. Esta solución es más segura que la anterior, ya que la información se transmite directamente y no a través de internet. Sin embargo, su configuración es más complicada, y los costes telefónicos aumentan en función de la ubicación de las delegaciones. En nuestro ejemplo, podríamos ubicar el "buzón" en la delegación 1-Administración, y configurar las delegaciones 2-Tienda Milano y 3-Tienda Firenze para efectuar llamadas a la delegación 1-Administración. Observemos que, en este caso, la delegación 1 no tendría que establecer ninguna comunicación, ya que podrá acceder al "buzón" directamente.
Enlace directo a través de enrutadores (routers)
Se utiliza como "buzón" una carpeta de algún equipo del sistema. Se instala y configura un enrutador en cada delegación, de tal manera que el proceso de comunicación se realice de forma transparente, y desde todas las delegaciones se accede al "buzón" como si se tratase de un equipo en red local, dejando a los enrutadores efectuar los enlaces telefónicos. Esta solución es de configuración compleja, y de alto coste, por lo que sólo es recomendable cuando ya se disponga de estos recursos, o los mismos se vayan a utilizar en algún otro proceso. En nuestro ejemplo, podríamos ubicar el "buzón" en la delegación 1-Administración, y acceder a ella desde las delegaciones 2Tienda Milano y 3-Tienda Firenze, como si el equipo "buzón" estuviese en red local.
Enlace a través de un soporte de datos
Se utiliza como "buzón" un soporte de datos que pueda transportarse físicamente entre las diferentes delegaciones, tal como un disco duro extraíble, una unidad zip, o un disco óptico. En cada delegación, se efectuará la transmisión de datos cuando el soporte de datos esté disponible. Esta es la solución menos aconsejable, ya que exige el desplazamiento físico del medio de almacenamiento, con la consiguiente incomodidad y riesgo de pérdida de datos. NOTA: Desaconsejamos expresamente el uso de diskettes para realizar este proceso, debido a su limitada capacidad, y sobre todo, a su escasa fiabilidad como medio de almacenamiento.
4. Instalación de la aplicación
Ahora, debe procederse a la instalación y configuración de SQL OBRAS en cada una de las delegaciones, como si de instalaciones independientes se tratasen. Es fundamental que las versiones de la aplicación en cada una de las delegaciones sea exactamente la misma. ya que de lo contrario el sistema puede no funcionar correctamente, e incluso comprometer la integridad de sus datos. En caso de actualizar la versión de SQL OBRAS, el proceso debe realizarse de manera simultánea en todas las delegaciones, sin efectuar trasferencias de datos durante el proceso de actualización.
Para determinar la versión de SQL OBRAS, seleccione Ayuda/Acerca de, y aparecerá una ventana similar a la siguiente:
5. Introducción de la lista de delegaciones
Una vez instalada la aplicación, deberá introducirse la lista de delegaciones. Para ello, debe seleccionar Procesos/Transferir datos entre delegaciones, e introducir los datos, tal como se indica en el ejemplo. Este proceso debe repetirse en cada una de las delegaciones, de tal manera que en todas ellas la lista sea exactamente igual.
6. Identificación de las delegaciones
En este paso, se identificará a cada delegación en la lista, para lo cual se seleccionará la solapa Configurar, se posicionará el cursor en la delegación de la lista que corresponda, y se pulsará el botón Indicar esta delegación. En nuestro ejemplo, el resultado sería el siguiente:
En la delegación 1: Administración
En la delegación 2: Tienda Milano
En la delegación 3: Tienda Firenze
NOTA: Es muy importante realizar este proceso cuidadosamente, ANTES DE COMENZAR A UTILIZAR LA APLICACIÓN, ya que si dos delegaciones estuvieran identificadas con el mismo código, o no estuvieran identificadas, el proceso de transferencia de datos puede comprometer la integridad de sus datos en todas las delegaciones.
7. Configuración del envío y recepción de datos
En este paso, se indicará a cada delegación la ubicación del "buzón", y de qué manera accederá al mismo. El sistema permite, si fuese necesario, indicar un buzón diferente para el envío y la recepción de datos, para cada una de las demás delegaciones. No obstante, en la mayoría de los casos, la solución preferida por su simplicidad es utilizar un solo "buzón" para envío y recepción de todas las delegaciones. En todos los ejemplos que figuran a continuación, vamos a proceder de esta manera. Este proceso se lleva a cabo en la solapa Configurar, en la que se podrá acceder a la configuración del "buzón" de esta delegación con la delegación que esté seleccionada en la lista superior. Por lo tanto, si el cursor está posicionado sobre la propia delegación (en amarillo), todos los controles estarán desactivados, ya que, como es lógico, la delegación no va a intercambiar datos consigo misma. Los valores se fijarán separadamente para el envío y la recepción. No obstante, dado que en la mayoría de los casos serán los mismos, la aplicación copiará los valores indicados en "Enviar", a sus equivalentes en "Recibir".
Método
En este apartado, se define la forma de acceso al buzón. Existen las siguientes opciones:
Acceso telefónico a redes
Para acceder al "buzón", puede ser necesario establecer previamente una comunicación telefónica, ya sea con Internet o con un equipo remoto, a través del Acceso Telefónico a Redes (RAS) provisto por Windows. En este caso, deberá seleccionarse en este apartado el nombre del acceso telefónico deseado. Este campo es opcional. Si se deja en blanco este apartado, la aplicación intentará acceder directamente al "buzón", sin establecer previamente ninguna comunicación. Este es el caso de una conexión a través de enrutadores, o de una delegación que acceda al "buzón" a través de la red local. Si se indica un valor en este apartado, la aplicación establecerá la comunicación antes de enviar (o recibir) datos, y finalizará la misma una vez finalizado el proceso.
Usuario
Si se especifica el apartado anterior, en este apartado deberá indicarse el nombre del usuario que debe suministrarse al acceso telefónico a redes, para iniciar la conexión. Este valor es el mismo que debe indicarse si se inicia la conexión desde Mi PC/Acceso telefónico a redes. En caso de no especificar el apartado Acceso telefónico a redes, este apartado no se utilizará.
Clave
Si se especifica el apartado anterior, en este apartado deberá indicarse la contraseña del usuario que debe suministrarse al acceso telefónico a redes, para iniciar la conexión. Este valor es el mismo que debe indicarse si se inicia la conexión desde Mi PC/Acceso telefónico a redes. En caso de no especificar el apartado Acceso telefónico a redes, el contenido de este apartado no se utilizará.
Ruta
Si el método seleccionado es Red Local, deberá indicar en este apartado la ruta del buzón, de acuerdo con las especificaciones de Windows. Si lo desea, puede utilizar el botón que se encuentra a la derecha para seleccionar esta ruta. Si la ruta indicada no existe, la aplicación la creará en el momento de necesitarla. Algunos ejemplos de rutas válidas son "F:\Buzon", "\Servidor\C\Buzon", o "\195.160.1.207\C\Buzon".
Dirección FTP
Si el método seleccionado es FTP, deberá indicar en este apartado la ruta del buzón, indicando en primer término el nombre del servidor FTP o su dirección IP, y luego, separados por barras, la ruta de directorios, si se desea. Si la ruta indicada no existe, la aplicación la creará en el momento de necesitarla. Para más información con respecto a este apartado, consulte a su proveedor de internet, o al administrador de su sistema. Algunos ejemplos de rutas válidas son "ftp.ctv.es/buzon", "servidor/buzon", o "194.179.1.100/datos/buzon".
Usuario
Si el método seleccionado es FTP, deberá indicar en este apartado el nombre del usuario que tiene acceso al servidor FTP indicado en el apartado Dirección FTP. Para más información con respecto a este apartado, consulte a su proveedor de internet, o al administrador de su sistema.
Clave
Si el método seleccionado es FTP, deberá indicar en este apartado la contraseña del usuario que tiene acceso al servidor FTP indicado en el apartado Dirección FTP. Para más información con respecto a este apartado, consulte a su proveedor de internet, o al administrador de su sistema.
Botón Por defecto
Si desea que todos los parámetros de envío (o recepción) indicados en esta delegación, se copien en el resto de las delegaciones de la lista (a excepción de la propia, como es lógico), debe pulsar este botón. Esto facilita la tarea de la configuración, cuando la lista contiene más de dos delegaciones, y los valores son iguales en todos los casos.
Una vez configurados los parámetros de envío y recepción de esta delegación con las demás delegaciones, será necesario repetir este proceso en cada una de las delegaciones, teniendo especial cuidado, como es lógico, que el método y la ruta indicados en el envío de una delegación a otra, coincida con el método y la ruta indicados en la recepción de esta otra de los datos de la primera. De otra manera, será imposible la transferencia de datos entre esas dos delegaciones. En nuestro ejemplo, si indicamos en la delegación 1-Administración que el método de envío de datos a la delegación 2-Tienda Milano es FTP a "ftp.ctv.es/buzon", cuando configuremos la delegación 2-Tienda Milano, debemos indicar que el método de recepción de datos de la delegación 1-Administración es FTP de "ftp.ctv.es/buzon".
7.1 Ejemplo: Enlace a través de Internet
A continuación, veremos cómo habría que configurar el envío y recepción de datos a través de Internet, para nuestra empresa de ejemplo. Suponemos que se ha contratado una cuenta con el proveedor de internet CTV, que nos brinda, además del acceso a internet, un espacio web de 5MB, que utilizaremos como "buzón". Los datos de configuración se han obtenido del contrato con CTV, y se ha creado un Acceso Telefónico a Redes llamado CTV.
Configurar delegación 1-Administración
-
En la delegación 1-Administración, acceder a Procesos/Transferir datos entre delegaciones. - Seleccionar la solapa Configurar. - Si el cursor en la lista de delegaciones está en 1-Administración, los controles estarán desactivados, como es lógico, ya que ninguna delegación puede enviar o recibir datos de sí misma. Por ello debemos, por ejemplo, posicionar el cursor en 2-Tienda Milano en la lista de delegaciones. - Introducir los datos de la conexión, tal como se muestra a continuación:
-
Pulsar los botones "Por defecto" en Enviar y en Recibir, para copiar los datos de configuración en la delegación 3-Tienda Firenze. Si, a continuación, seleccionamos la delegación 3-Tienda Firenze en la lista de delegaciones, deberían aparecer los mismos datos que la delegación 2-Tienda Milano.
Configurar delegación 2-Tienda Milano
Para configurar esta delegación, deberemos repetir el proceso indicado en el apartado anterior. En este caso, como es lógico, si el cursor en la lista de delegaciones está en 2-Tienda Milano, los controles estarán desactivados, ya que ninguna delegación puede enviar o recibir datos de sí misma. Por lo tanto, posicionamos el cursor, por ejemplo, en la delegación 1-Administración, e introducimos los datos de la conexión, que serán iguales que en el caso apartado anterior, y luego pulsamos los botones "Por defecto" para copiar los datos de configuración en la delegación 3-Tienda Firenze. Si, a continuación, seleccionamos la delegación 3-Tienda Firenze en la lista de delegaciones, deberían aparecer los mismos datos que la delegación 1-Administración.
Configurar delegación 3-Tienda Milano
Para configurar esta delegación, deberemos repetir el proceso indicado en el apartado anterior, con lo que el envío y recepción de datos estará totalmente configurado en las tres delegaciones. 7.2 Ejemplo: Enlace directo a través de enrutadores (routers)
A continuación, veremos cómo habría que configurar el envío y recepción de datos a través de enrutadores, para nuestra empresa de ejemplo. Vamos a situar el "buzón" en un equipo de la delegación 1-Administración; por lo tanto, deberemos configurar los enrutadores para que las delegaciones 2-Tienda Milano y 3-Tienda Firenze pueden "encontrar" a la delegación 1-Administración. Suponemos, en este ejemplo, que la dirección IP del equipo donde se encuentra el "buzón" es 195.160.1.1.
Configurar delegación 1-Administración
-
En la delegación 1-Administración, acceder a Procesos/Transferir datos entre delegaciones. - Seleccionar la solapa Configurar. - Si el cursor en la lista de delegaciones está en 1-Administración, los controles estarán desactivados, como es lógico, ya que ninguna delegación puede enviar o recibir datos de sí misma. Por ello debemos, por ejemplo, posicionar el cursor en 2-Tienda Milano en la lista de delegaciones. - Dado que la delegación 1-Administración tiene acceso permanente al "buzón", podemos indicar su ruta directamente, tal como se muestra a continuación:
-
Pulsar los botones "Por defecto" en Enviar y en Recibir, para copiar los datos de configuración en la delegación 3-Tienda Firenze. Si, a continuación, seleccionamos la delegación 3-Tienda Firenze en la lista de delegaciones, deberían aparecer los mismos datos que la delegación 2-Tienda Milano.
Configurar delegación 2-Tienda Milano
En este caso, esta delegación debe conectarse al "buzón" a través del enrutador, que gestionará las comunicaciones de forma transparente. Como podemos ver a continuación, el apartado "Ruta" no tendrá exactamente el mismo contenido que en el caso anterior, pero sí estará indicando la misma ruta, que es lo que queremos lograr. Si no contáramos con enrutadores, y utilizaríamos el acceso telefónico a redes para comunicarnos con el servidor de la delegación 1-Administración, bastaría con cumplimentar los apartados Acceso Telefónico a Redes, Usuario y Clave.
Los datos de conexión quedarán de la siguiente manera:
Finalmente, no olvidemos pulsar los botones "Por defecto" para copiar los datos de configuración en la delegación 3-Tienda Firenze. Si, a continuación, seleccionamos la delegación 3-Tienda Firenze en la lista de delegaciones, deberían aparecer los mismos datos que la delegación 1-Administración.
Configurar delegación 3-Tienda Firenze
El caso de esta delegación es idéntico al de la delegación 2-Tienda Milano, por lo que procederemos de idéntica manera. Con esto, el envío y recepción de datos estará totalmente configurado en las tres delegaciones. 8. Sincronización de todas las delegaciones
Dado que el objetivo de este sistema es que las bases de datos de todas las delegaciones contengan exactamente los mismos datos, debe tener, como punto de partida, todas las bases de datos exactamente iguales. Una vez configurados los accesos al "buzón", por lo tanto, es necesario realizar un proceso de sincronización inicial de todas las delegaciones.
Este proceso "consolida" la información existente en todas las delegaciones, y distribuye una copia idéntica de la base de datos "consolidada" a todas las delegaciones; elimina además toda la información existente en el "buzón", y en las bandejas de entrada y de salida de cada delegación. El proceso de sincronización debe iniciarse en la delegación que contenga la mayor cantidad de información, o en la que ésta sea más fiable y correcta. Este se debe a que, en caso de "colisión", es decir, que coincidan los datos de una o más delegaciones, tendrán prioridad los datos existentes en la delegación que ha iniciado el proceso.
Si se trata de la sincronización inicial, suele darse el caso de que toda la información se encuentre en una delegación, y que las demás delegaciones no contengan datos. De cualquier manera, la forma de proceder es exactamente la misma.
Para explicar los pasos a seguir, vamos a realizar el proceso de sincronización inicial en nuestro ejemplo. Para ello, vamos a suponer que en la base de datos de 1-Administración se han incorporado datos iniciales, por ejemplo, a través de una importación de datos de una aplicación anterior. Por lo tanto, vamos a iniciar la sincronización desde esta delegación.
Fase 1: Iniciar la sincronización
En la delegación 1-Administración, accedemos a Procesos/Transferir datos entre delegaciones, y pulsamos el botón Iniciar transferencia. NOTA: Al iniciar una transferencia de datos, es indiferente la posición del cursor en la lista de delegaciones. Aparecerá el siguiente cuadro de diálogo:
A continuación, pulsamos en botón Sincronizar, y la aplicación nos informará de la tarea que está a punto de realizar, mediante el siguiente mensaje:
Respondiendo afirmativamente, se inicia el proceso de sincronización, que realizará las siguientes tareas:
- Enviará una notificación al "buzón" para cada una de las demás delegaciones, informando que ha iniciado un proceso de sincronización.
- Bloqueará la base de datos en esta delegación, hasta que el proceso se haya completado.
La aplicación irá informando de los pasos que va realizando, y de los posibles errores que fueran ocurriendo, en una ventana como la que se muestra a continuación:
Si ocurriese algún error durante el proceso, la aplicación nos informará del mismo en esta ventana. Deberemos entonces pulsar el botón Salir, solucionar el problema que nos indica, y volver a intentar la operación. En este caso, dado que el proceso de sincronización ya se ha iniciado, al pulsar el botón Iniciar transferencia, el proceso comenzará directamente, sin mostrar los cuadros de diálogo indicados más arriba.
A partir de este momento, y hasta que se complete el proceso, cada vez que se intente acceder a la empresa, la aplicación mostrará el siguiente mensaje, y casi todas las opciones del menú permanecerán desactivadas.
Si una vez iniciada una sincronización, por cualquier motivo es necesario interrumpirla, deberá acceder a la aplicación indicando el nombre de usuario "Administrador", y la clave suministrada por su proveedor, tal como se muestra a continuación:
Ahora, al acceder a Procesos/Transferir datos entre delegaciones, estará disponible un nuevo botón, Anular sincronización, que interrumpirá el proceso de sincronización. NOTA: Al anular un proceso de sincronización, el sistema quedará en un estado inestable, por lo que es recomendable no realizar transmisiones "habituales" de datos hasta no realizar un proceso de sincronización que finalice correctamente. Fase 2: Enviar bases de datos
Ahora, en la delegación 2-Tienda Milano, accedemos a Procesos/Transferir datos entre delegaciones, y pulsamos el botón Iniciar transferencia. Aparecerá el siguiente cuadro de diálogo:
A continuación, pulsamos el botón Iniciar, para que esta delegación reciba la solicitud de sincronización enviada por la delegación 1-Administración. NOTA: Es muy importante resaltar que NO DEBEMOS pulsar el botón Sincronizar en esta delegación, porque si lo hiciéramos, esta delegación iniciaría otro proceso de sincronización en vez de continuar con el que ha iniciado la delegación 1Administración. En este caso, deberíamos interrumpir el proceso tal como se indica en la Fase 1.
Al pulsar el botón Iniciar, el proceso realizará las siguientes tareas:
- Recibirá la solicitud de sincronización.
- Bloqueará la base de datos en esta delegación, hasta que el proceso se haya completado.
- Generará una copia comprimida de la base de datos
- Enviará dicha copia al "buzón" para ser recogida por la delegación 1-Administración.
La aplicación irá informando de los pasos que va realizando, y de los posibles errores que fueran ocurriendo, en una ventana como la que se muestra a continuación:
Si ocurriese algún error durante el proceso, la aplicación nos informará del mismo en esta ventana. Deberemos entonces pulsar el botón Salir, solucionar el problema que nos indica, y volver a intentar la operación. En este caso, dado que el proceso de sincronización ya se ha iniciado, al pulsar el botón Iniciar transferencia, el proceso comenzará directamente, sin mostrar los cuadros de diálogo indicados más arriba.
Este proceso deberá realizarse también en las demás delegaciones, en nuestro ejemplo la delegación 3-Tienda Firenze. Fase 3: Recibir, consolidar y enviar base de datos
Ahora, en la delegación 1-Administración, accedemos a Procesos/Transferir datos entre delegaciones, y pulsamos el botón Iniciar transferencia. Dado que el proceso de sincronización ya se ha iniciado, al pulsar el botón Iniciar transferencia, el proceso comenzará directamente, sin mostrar ningún cuadro de diálogo. En esta fase, la delegación 1-Administración recogerá las copias comprimidas enviadas por las demás delegaciones. Por lo tanto, si iniciamos esta fase antes de que las demás delegaciones hayan completado la anterior, veremos un mensaje de error similar al siguiente:
Si, por el contrario, hemos finalizado correctamente la Fase 2 en todas las demás delegaciones, veremos una lista de mensajes similar a la siguiente:
El proceso llevará a cabo las siguientes tareas:
- Recibirá las copias comprimidas enviadas por las demás delegaciones.
- Incorporará estas bases de datos a la de esta delegación.
- Generará una copia comprimida de la base de datos "consolidada".
- Enviará dicha copia al "buzón" para ser recogida por las demás delegaciones.
- Finalizará el proceso, desbloqueando la base de datos en esta delegación.
Al finalizar esta fase, el proceso de sincronización habrá concluido para esta delegación, y la delegación 1-Administración quedará totalmente operativa.
Si ocurriese algún error durante el proceso, la aplicación nos informará del mismo en esta ventana. Deberemos entonces pulsar el botón Salir, solucionar el problema que nos indica, y volver a intentar la operación.
Fase 4: Recibir base de datos consolidada
Finalmente, en la delegación 2-Tienda Milano, accedemos a Procesos/Transferir datos entre delegaciones, y pulsamos el botón Iniciar transferencia. Dado que el proceso de sincronización ya se ha iniciado, al pulsar el botón Iniciar transferencia, el proceso comenzará directamente, sin mostrar ningún cuadro de diálogo.
En esta fase, la delegación 2-Tienda Milano recogerá la copia comprimida enviada por la delegación 1-Administración. Por lo tanto, si iniciamos esta fase antes de que la delegación 1 haya completado la anterior, veremos un mensaje de error similar al ya indicado en la anterior fase.
El proceso llevará a cabo las siguientes tareas:
- Recibirá la copia comprimida enviada por la delegación 1-Administración.
- Reemplazará su base de datos por la que acaba de recibir.
- Finalizará el proceso, desbloqueando la base de datos en esta delegación.
Veremos una lista de mensajes similar a la siguiente:
Al finalizar esta fase, el proceso de sincronización habrá concluido para esta delegación, y la delegación 2-Tienda Milano quedará totalmente operativa.
Este proceso deberá realizarse también en las demás delegaciones, en nuestro ejemplo la delegación 3-Tienda Firenze. 9. Transferencia de datos entre delegaciones
Durante el uso cotidiano de la aplicación, en cada delegación se irá generando un archivo que registra los cambios que se van produciendo en su base de datos. Este archivo se denomina CAMBIOS.LOG y se encuentra en la carpeta correspondiente a la empresa. Periódicamente, cada delegación deberá realizar una transferencia de datos, con el objetivo de enviar a las demás delegaciones los cambios que se hayan producido, y de recibir e incorporar los cambios que, a su vez, generen y envíen las demás. A diferencia de una sincronización, este proceso es muy sencillo y rápido, ya que sólo se transfieren pequeños archivos con los cambios producidos, y no toda la base de datos. Por lo tanto, las transferencias de datos pueden ser todo lo frecuente que se desee, a fin de mantener las respectivas bases de datos lo más "al día" posible. No hay ninguna limitación a la hora de determinar la frecuencia de las transferencias, y existe total flexibilidad para que cada delegación realice el proceso cuantas veces lo considere necesario. Por lo tanto, la organización de las transferencias dependerá solamente de la necesidad de contar con datos actualizados de las diferentes delegaciones.
Una transferencia de datos se compone de tres etapas, que pueden seleccionarse a voluntad en el momento de iniciar el proceso. Estas etapas son las siguientes:
Enviar
En esta etapa, la aplicación realiza los siguientes pasos: - Incorpora el registro de cambios actual, CAMBIOS.LOG, a la Bandeja de Salida, una carpeta que se denomina SALIDA y se encuentra en la carpeta correspondiente a la empresa. - Envía al "buzón" correspondiente a cada delegación, todos los archivos existentes en la Bandeja de Salida que aún no hayan sido enviados. Para realizar esta tarea, la aplicación se conectará a los equipos "buzón", según lo configurado para las diferentes delegaciones. Esta tarea puede llevarse a cabo de forma totalmente simultánea con el resto de actividades de la aplicación, tanto en el equipo en el que se desarrolla como en los demás puestos de la red local, si los hubiera.
Recibir
En esta etapa, la aplicación realiza los siguientes pasos: - Verifica si alguna de las delegaciones ha iniciado un proceso de sincronización (ver capítulo anterior), y si es así responde automáticamente a dicho proceso. - Recoge del "buzón" correspondiente de cada delegación, todos los archivos existentes en el mismo que aún no hayan sido recogidos, almacenándolos en la Bandeja de Entrada, una carpeta que se denomina ENTRADA y se encuentra en la carpeta correspondiente a la empresa. Dentro de la Bandeja de Entrada, existe una carpeta destinada a almacenar los archivos correspondientes a cada delegación, denominada con el código de la misma: 00000001, 00000002, etc. Para realizar esta tarea, la aplicación se conectará a los equipos "buzón", según lo configurado para las diferentes delegaciones. Esta tarea puede llevarse a cabo de forma totalmente simultánea con el resto de actividades de la aplicación, tanto en el equipo en el que se desarrolla como en los demás puestos de la red local, si los hubiera.
Procesar
En esta etapa, la aplicación realiza el siguiente paso: - Incorpora todos los archivos de la Bandeja de Entrada que aún no han sido procesados, a la base de datos de la delegación. Para realizar esta tarea, la aplicación no necesita realizar ninguna conexión, ya que los archivos que procesa se encuentran, como se ha dicho, en la Bandeja De Entrada. Esta tarea requiere un acceso exclusivo a la base de datos, por lo que es necesario que, en el momento de efectuarse, todas las ventanas de la aplicación estén cerradas, y que no haya ningún usuario en esta empresa en los demás puestos de la red local, si los hubiera.
Para iniciar una transferencia de datos, se selecciona Procesos/Transferir datos entre delegaciones, y se pulsa el botón Iniciar transferencia. NOTA: Al iniciar una transferencia de datos, es indiferente la posición del cursor en la lista de delegaciones. Aparecerá el siguiente cuadro de diálogo:
En este cuadro de diálogo, es posible limitar el proceso a un rango de delegaciones, indicando sus códigos en los apartados Delegación: De - a. Si estos apartados se dejan en blanco, se aplicará el proceso a todas las delegaciones. Además, es posible seleccionar cuáles de las tres etapas anteriormente descritas se realizarán, seleccionando las marcas correspondientes.
Al pulsar el botón Iniciar, dará comienzo el proceso, con las opciones indicadas. La aplicación irá informando de los pasos que va realizando, y de los posibles errores que fueran ocurriendo, en una ventana como la que se muestra a continuación:
Si ocurriese algún error durante el proceso, la aplicación nos informará del mismo en esta ventana. Deberemos entonces pulsar el botón Salir, solucionar el problema que nos indica, y volver a intentar la operación. La aplicación repetirá los pasos, a partir de los que hayan provocado fallos, hasta conseguir que el proceso finalice satisfactoriamente.
Evidentemente, es necesario realizar este proceso frecuentemente en cada una de las delegaciones, para mantener "al día" las bases de datos de todas ellas. 10. Programación de transferencias de datos
Esta utilidad ofrece la posibilidad de iniciar transferencias de datos a unas horas determinadas, de forma automática, de la misma manera y con las mismas opciones que el botón Iniciar transferencia, descrito anteriormente, pero sin intervención alguna del usuario.
Así, se evita que el usuario sea el responsable de realizar periódicamente el proceso, a la vez que permite reducir los costes de comunicación y el uso de las líneas telefónicas, si se programan las transferencias en horarios de tarifa reducida y fuera de las horas habituales de uso de las líneas para otros fines. Además, en caso de efectuar las comunicaciones a través de Internet, y eligiendo las franjas horarias de menor utilización de los recursos de la red, pueden reducirse los tiempos de conexión.
Para realizar la programación, debemos seleccionar la solapa Programar, que tiene el siguiente aspecto:
Es posible agregar hasta 20 líneas de programación, utilizando para ello los botones habituales de navegación. El significado de cada una de las columnas es el siguiente:
Procesos
E Si se selecciona, efectuará el proceso con la marca "Enviar" seleccionada. R Si se selecciona, efectuará el proceso con la marca "Recibir" seleccionada. P Si se selecciona, efectuará el proceso con la marca "Procesar" seleccionada.
Días
L a D Se efectuará el proceso sólo en los días de la semana seleccionados.
Horas
Desde Se intentará efectuar el proceso por primera vez aproximadamente a esta hora Hasta En caso de no tener éxito, se reintentará el proceso hasta esta hora.
Delegaciones Desde Si se indica, sólo se procesarán las delegaciones a partir de ésta Hasta Si se indica, sólo se procesarán las delegaciones a hasta ésta
Ejemplo de utilización
A continuación, vamos a configurar nuestra empresa de ejemplo para realizar las transferencias de datos una vez al día, a partir de las 22:00 horas, de tal manera que al finalizar los procesos, las bases de datos de todas las delegaciones queden actualizadas. Como esta empresa no trabaja los domingos, vamos a suspender las comunicaciones ese día. Vamos a suponer, para este ejemplo, que las delegaciones están enlazadas a través de Internet, como se explica en el apartado 7.1 de este documento.
La programación de la delegación 1-Administración quedaría de la siguiente manera:
En tanto, la programación de la delegación 2-Tienda Milano, como se indica a continuación:
Finalmente, la programación de la delegación 3-Tienda Firenze, como sigue:
Como podemos ver, hemos escalonado las comunicaciones para que nunca coincidan dos delegaciones a un tiempo, ya que sólo disponemos de un acceso telefónico a Internet. Obsérvese que hemos definido dos etapas. La primera, en la cual las delegaciones envían sus datos al "buzón", y la segunda, en la que las delegaciones recogen los datos enviados por las demás. Con el margen de seguridad de 20 minutos entre comunicaciones, nos aseguramos que, en caso de algún fallo en las comunicaciones, cada delegación tenga tiempo suficiente para reintentar la operación hasta llevarla a cabo correctamente, sin ser "interrumpida" por la siguiente delegación.
Por supuesto, para que el sistema de programación funcione correctamente, debemos dejar la aplicación funcionando en la empresa correspondiente, con todas las ventanas cerradas (para que se ejecute correctamente la etapa "Procesar"), y con los dispositivos de conexión (módems, en este caso) perfectamente operativos.
Es muy importante destacar que, independientemente de la programación que podamos realizar, existe la posibilidad de iniciar, en cualquier momento, una transferencia de datos de forma manual, tal como se describe en el capítulo 9. 11. Estadísticas de comunicaciones
Para obtener información concreta acerca del estado actual de las comunicaciones con las demás delegaciones, debemos consultar la solapa General:
A continuación, se explica el significado de la información que se visualiza en esta ventana. NOTA: Si se accede a la aplicación con privilegios de administrador, podrá modificar el valor de estos apartados. Esta posibilidad debe utilizarse con mucha precaución.
Ultimo registro de cambios
En este apartado, se muestra el código, así como la fecha y hora de generación, del último registro de cambios que ha generado esta delegación. Esta información es independiente de la delegación seleccionada en la lista.
Bandeja de salida
En este apartado, se muestran los archivos que se encuentran en la Bandeja de Salida. Esta información es independiente de la delegación seleccionada en la lista. Al hacer doble click sobre un archivo de la Bandeja de Salida, podrá guardar un extracto del contenido del mismo en formato texto, para su posterior visualización. Es importante aclarar que la aplicación conserva en la Bandeja de Salida los 5 últimos archivos enviados, por razones de seguridad, por lo tanto la existencia de archivos en esta lista no implica necesariamente que estén pendientes de envío. Si se desea cambiar el número de archivos que conserva la Bandeja de Salida, actualice la siguiente entrada en SQL OBRAS.INI:
[Delegaciones] Conservar =5
Ultimo envío En este apartado, se muestra el código, así como la fecha y hora de envío, del último registro de cambios que se ha enviado al "buzón" de la delegación indicada en la lista. Por lo tanto, si el cursor está posicionado sobre la propia delegación (en amarillo), este apartado siempre estará vacío, como es lógico. Bandeja de entrada
En este apartado, se muestran los archivos que se encuentran en la Bandeja de Entrada de la delegación indicada en la lista. Al hacer doble click sobre un archivo de la Bandeja de Entrada, podrá guardar un extracto del contenido del mismo en formato texto, para su posterior visualización. En condiciones normales, la Bandeja de Entrada estará vacía, ya que los archivos recibidos suelen procesarse inmediatamente. Si el cursor está posicionado sobre la propia delegación (en amarillo), este apartado siempre estará vacío, como es lógico.
Ultima recepción
En este apartado, se muestra el código, así como la fecha y hora de recepción, del último registro de cambios que se ha recogido del "buzón" de la delegación indicada en la lista. Por lo tanto, si el cursor está posicionado sobre la propia delegación (en amarillo), este apartado siempre estará vacío, como es lógico.
Ejemplo de utilización
Vamos a utilizar nuestra empresa de ejemplo para ver cómo interpretar correctamente esta información. Por ejemplo, se desea saber si la delegación 1-Administración se encuentra "al día", es decir, si ha recibido toda la información enviada por las demás delegaciones. En primer lugar, debemos acceder a Procesos/Transferir datos entre delegaciones en la delegación 2-Tienda Milano, para verificar el apartado Ultimo registro de cambios. Vemos, en el ejemplo, que el último registro de cambios generado por esta delegación es el Nº 2.
Repetimos la operación en la delegación 3-Tienda Firenze, y vemos que el último registro de cambios generado por esta delegación es el Nº 1.
Ahora, en la delegación 1-Administración, vamos a verificar que la información generada por las restantes delegaciones se ha recibido y procesado correctamente. Para ello, accedemos a Procesos/Transferir datos entre delegaciones, y situamos el cursor de la lista de delegaciones en la delegación 2-Tienda Milano, y obtenemos lo siguiente:
Finalmente, situamos el cursor de la lista de delegaciones en la delegación 3-Tienda Firenze, y obtenemos lo siguiente:
Como podemos ver, la última recepción de la delegación 2-Tienda Milano es la Nº 2, y la última recepción de la delegación 3Tienda Firenze es la Nº 1. Viendo, además, que en ningún caso tenemos archivos pendientes de procesar en la Bandeja de Entrada, concluimos que la delegación 1-Administración ha incorporado a su base de datos la última información generada por las restantes delegaciones, y por lo tanto, está al día. 12. Especificaciones técnicas
Ubicación de archivos en cada delegación
En cada una de las delegaciones, la aplicación genera unas carpetas y archivos que necesita para su correcto funcionamiento. A continuación, se detallan los nombres y ubicaciones de los mismos. Se supone que los datos de la empresa están ubicados en la carpeta Empresa.
Archivo donde se registran los cambios que se van produciendo en la base de datos.
Archivo donde se registran las incidencias del proceso de transferencia de datos.
Carpeta de base de datos de la empresa.
Bandeja de entrada de la delegación 2
Archivo Nº 8 de la delegación 2, que todavía no ha sido procesado
Bandeja de entrada de la delegación 3
Bandeja de salida
Archivo Nº 2 de esta delegación
En caso de un proceso de sincronización, pueden aparecer, tanto en la Bandeja de Entrada como en la Bandeja de Salida, los siguientes archivos, que desaparecerán cuando finalice el proceso:
Sync.1 Archivo de notificación de sincronización Data.1 Copia comprimida de base de datos *.?B Archivos extraídos de una copia comprimida
Ubicación de archivos en el buzón En la ruta indicada como buzón, la aplicación genera unas carpetas y archivos que necesita para su correcto funcionamiento. Esta distribución es idéntica, tanto si se acceder al buzón a través de red local, como a través de FTP. A continuación, se detallan los nombres y ubicaciones de los mismos.
Carpeta especificada como "buzón"
Carpeta que contiene los archivos enviados por la delegación 1
Archivo Nº 2 enviado por la delegación 1, que está pendiente de recoger por una delegación (este último dato viene indicado por la extensión del archivo).
Archivo Nº 3 enviado por la delegación 1, que está pendiente de recoger por dos delegaciones.
En caso de un proceso de sincronización, pueden aparecer, en las carpetas de las delegaciones, los siguientes archivos, que desaparecerán cuando finalice el proceso:
Sync.1 Archivo de notificación de sincronización Data.1 Copia comprimida de base de datos
NOTA: Al finalizar el proceso de sincronización, en la carpeta de la delegación que ha iniciado el proceso se conservará el archivo Data.1, que contiene la copia comprimida de la base de datos ya consolidada. Este archivo se conserva como copia de seguridad, pero puede eliminarse, ya que el sistema no lo utiliza.
Tablas y campos cuyos cambios no se transfieren entre delegaciones
Existen algunas tablas cuyo contenido no se envía en las transferencias de datos, y en las sincronizaciones. En otras tablas, sólo se envía el contenido de algunos de los campos.
Las siguientes tablas no se envían en las transferencias de datos:
ACC_ACC: Esta tabla, y la siguiente, contienen los datos del sistema de Permisos de Acceso, que se define separadamente para cada delegación.
ACC_USR: Esta tabla, y la anterior, contienen los datos del sistema de Permisos de Acceso, que se define separadamente para cada delegación.
CATALOGO: Esta tabla contiene la información sobre los formatos de edición, impresión, etc, y los catálogos de artículos. Dado que los archivos referenciados por esta tabla pueden ser diferentes en cada delegación, esta información se define separadamente en cada delegación.
CAREXIST: Esta tabla contiene las existencias actuales de las características de los artículos. Esta información no se transmite literalmente, ya que estos datos son estadísticos, y se actualizan al incorporar los documentos que lo modifican.
De las siguientes tablas sólo se envían los campos indicados: EMPRESA: Esta tabla contiene la información de configuración de la aplicación. Los campos que se envían son todos los anteriores al campo CodDelegacion, según la estructura física de la tabla. El resto de los campos se definen separadamente para cada delegación.
DELEGAC: Esta tabla contiene la información de configuración del módulo de delegaciones; por lo tanto, sólo se envían los campos Codigo y Nombre, ya que los campos restantes, como es evidente, se definen separadamente para cada delegación.
ARTICULO: Esta tabla contiene la información de los artículos. Se envían todos los campos excepto PrecioUltCompra, PrecioDestinoUltCompra, SumaPrecioCoste y CuentaPrecioCoste, ya que estos datos son estadísticos y se actualizan al incorporar los documentos que los modifican.
COMPRA: Esta tabla contiene la información de los artículos relativa a los proveedores. Se envían todos los campos excepto PrecioUltCompra, PrecioDestinoUltCompra, SumaPrecioCoste y CuentaPrecioCoste, ya que estos datos son estadísticos y se actualizan al incorporar los documentos que los modifican.
EXISTENC: Esta tabla contiene la información de los artículos relativa a los almacenes. Se envían todos los campos excepto Stock1, Stock2, PendServir1, PendServir2, PendRecibir1 y PendRecibir2, ya que estos datos son estadísticos y se actualizan al incorporar los documentos que los modifican.
ESTADIST: Esta tabla contiene la información de todas las estadísticas y las previsiones indicadas en ese contexto. Se envían todos los campos, excepto Coste y Venta, ya que estos datos son estadísticos y se actualizan al incorporar los documentos que los modifican.
NOTA: La información indicada en este apartado está sujeta a cambios, según la estructura de la base de datos de SQL OBRAS evolucione como consecuencia de futuras versiones. CAMBIO DE PRECIOS DE ARTÍCULOS.
Comentarios
0 comentarios
Inicie sesión para dejar un comentario.