Instalación Réplica de Ficheros


Debe ser varchar (100).
Código para el Mappings:


Etiqueta:

<prop name="MAP_algo" group="6" visible="1" type="TL" labelwidth="40" bgcolor="#5599FF" fieldsize="0">Firma:</prop>
 
<!-- Campo para guardar la firma. -->
<prop name="FIRMA" group="6" visible="1" type="IMG" readonly="false" fieldsize="23" lines="5" width="100%" height="50%" onchange="Refresh"/>
 
<!-- Campo para guardar una foto. -->
<prop name="FOTO" group="4"  visible="1" type="PH" labelwidth="8" fieldsize="15" size="15" left="0" top="10%" width="80%" height="60%" />
 
<!-- Campo para guardar un fichero añadido. -->
<prop name="ATTACH" group="4"  visible="1" type="AT" labelwidth="8" fieldsize="15" size="15" left="0" top="10%" width="80%" height="60%" />


FILEPATH varchar (128)
Contendrá la ruta LOCAL en que el cliente almacena los ficheros en el servidor. P.ej: “c:\replica\files”
Nos aseguramos de que la ruta es correcta.
La carpeta debe tener permisos.

Hay que configurar también la ruta de los ficheros en el campo FILEPATH del slave para los MID de sistema (0,-1), puesto que son los que se miran por defecto, por ejemplo, cuando entran operaciones de réplica de ficheros por interface.



TBL: contiene el nombre de la tabla donde se encuentra el campo.
FLD : Contiene el nombre del campo que contiene el fichero a replicar.

Este campo es Case Sensitive, no es lo mismo “FICHERO” que “fichero”



Esta tabla únicamente tiene que existir, no se configura nada, es el historial, como si dijésemos, el master_replica_queue de la réplica de ficheros.
Valor Descripción
0 FS_OK: El fichero está completo y sin errores.
1 FS_READY_TO_GO: El fichero está listo para viajar del servidor al cliente. BLOCKS contiene la cantidad de bloques BLOCK=0 o NULL.
2 FS_READY_TO_COME: El fichero está listo para viajar del cliente al servidor. BLOCKS contiene la cantidad de bloques BLOCK=0 o NULL.
3 FS_OUTGOING: El fichero está bajando del servidor al cliente. BLOCK con tiene el bloque último enviado correctamente y confirmado por el cliente (el primero es cero).
4 FS_INCOMING: El fichero está subiendo del cliente al servidor. BLOCK contiene el bloque último recibido correctamente y escrito en el fichero temporal indicado en TMPFILE. Si BLOCK==BLOCKS-1 se han recibido todos los bloques y el fichero debería haberse movido hacia su destino permanente.
5 FS_FILENOTFOUND: No se encuentra el fichero en el servidor para mandarlo al cliente. El servidor reintentará estos ficheros cada cierto tiempo por si se han movido temporalmente.
6 FS_CANNOTCREATE: No se puede crear el fichero en el cliente. Este estado no se usa en el servidor.
7 FS_CANNOTOPEN: No se puede abrir el fichero para enviar al servidor. Este estado no se usa en el servidor, solo en los clientes.
8 FS_CANNOTREAD: No se puede leer el fichero para enviar al servidor. Este estado no se usa en el servidor.
9 FS_COMPLETE_PENDING: El fichero se ha marcado como pendiente por alguna causa relacionada con su uso en el cliente (i.e. está abierto por otro proceso) y el cliente ha decidido enviar el siguiente y posponer este. No todos los clientes soportan este estado.
200 FS_PENDING: El fichero está en la cola del servidor para enviarlo al cliente, pero el cliente aún no lo ha confirmado.
201 FS_COMPLETE: El fichero se ha terminado de enviar o de recibir. Se eliminará de la cola dentro de unos minutos.
202 FS_NOTIFIED: Fichero notificado.
220 FS_NO_SUPPORT: No soporte de ficheros.
221RPLR_NO_FILERPL: No hay tablas de réplica de ficheros.
222FS_BAD_SEQ:
223FS_BAD_CRC:
224FS_SERVER_ERROR: Error del servidor.
225FS_SERVER_ACCESS: Acceso al servidor.
226 FS_OBSOLETE: El fichero que se estaba subiendo hacia el servidor ha cambiado en el cliente y se va a reiniciar el envío.
229FS_CANTCREATE: No se puede crear el archivo.
-1 FS_FAILED: Ha ocurrido algún error leyendo o escribiendo en el fichero. El servidor intentará la operación cuando no tenga más ficheros pendientes bien sea poniéndolo a 200 ó indicándole al cliente que vuelva a enviarlo. Se puede hacer a mano por un administrador.
-2 FS_FAILED_UP: Ha fallado el envío de cliente a servidor. El servidor lo reintentará posteriormente poniéndolo a 200 para reiniciar el ciclo.
Se puede hacer a mano por un administrador si se quiere forzarlo y no esperar por el servidor.
-3FS_STOPPED: Archivo parado.
-4FS_DELAYED: Archivo retrasado.




<coll name="ReplicaFiles" fontsize="8" title="ReplicaFiles" objname="master_replica_files" updateobj="master_replica_files" progid="ASData.CASBasicDataObj" 
sql="SELECT * FROM ##PREF##master_replica_files" filter="STATUS!=201 AND REPLICATYPE=1" 
cell-bgcolor="#FFFFFF" cell-height="50" show-selected-item="false" 
check-owner="false" dependent="false" connection="Info_ReplicaFiles" loadall="false" show-toolbar="true" editmask="8">
     <connection prefix="" name="Info_ReplicaFiles" connstring="Provider=Xone Remote Provider;Data Source=local;ProgID=com.xone.db.impl.replicafiles.RplFilesConnection;DBMS Name=LOQUESEA;User Name=LOQUESEA;Password=LOQUESEA;appname=LOQUESEA;Timeout=60" />
      <group name="General" id="1" />
      <frame name="page_contact" width="100%" height="100%" bgcolor="#FFFFFF" />
      <frame name="progress_frame" frame="page_contact" width="100" height="30" framebox="true" bgcolor="#505050" align="left|center" />
      <frame name="progress_bar" frame="progress_frame" width="##FLD_MAP_CALCULOBLOCK##" height="28" framebox="true" bgcolor="#FF0000" align="left|center" />
      <prop name="LICENSE" title="Licencia" labelwidth="0" textfont-size="10" forecolor="#000000" text-border="false" fieldsize="14" size="150" type="T" visible="7" group="1" frame="page_contact" />
      <prop name="FILENAME" title="Nombre" labelwidth="0" textfont-size="10" forecolor="#000000" text-border="false" fieldsize="14" size="150" type="T" visible="7" group="1" frame="page_contact" />
      <prop name="STATUS" title="Status" labelwidth="6" textfont-size="10" forecolor="#000000" text-border="false" fieldsize="6" size="150" type="N" visible="7" group="1" frame="page_contact" />
      <prop name="MAP_IMAGEN" title="B.Tras" path="./icons/progress.png" width="##FLD_MAP_CALCULOBLOCK##" height="60" labelwidth="0" fieldsize="6" size="150" type="IMG" visible="0" group="1" frame="progress_frame" />
      <prop name="MAP_TL" title="" labelwidth="1" fieldsize="6" size="150" type="TL" visible="0" group="1" frame="progress_bar" />
      <prop name="MAP_CALCULOBLOCK" title="Porciento" labelwidth="6" textfont-size="10" forecolor="#000000" text-border="false" fieldsize="6" size="150" type="N" visible="7" group="1" frame="page_contact" />
      <prop name="BLOCK" title="B.Tras" labelwidth="6" textfont-size="10" forecolor="#000000" text-border="false" fieldsize="6" size="150" type="N" visible="7" group="1" frame="page_contact" />
      <prop name="BLOCKS" title="Total" labelwidth="6" textfont-size="10" forecolor="#000000" text-border="false" fieldsize="6" size="150" type="N" visible="7" group="1" frame="page_contact" newline="false" />
      <load>
        <action name="runscript">
          <script language="VBScript">
            if this("BLOCKS")&gt;0 then
                  this("MAP_CALCULOBLOCK")=this("BLOCK")*100/this("BLOCKS")
            else
                  this("MAP_CALCULOBLOCK")=0
            end if
            </script>
        </action>
      </load>
    </coll>




  • Cambiamos el dbms de la web.

<defaultdir value=“http://www.cgsoft.es/replica”/> NO se pone /files/, ya que lo pone el solito.
Las imágenes deben estar en una carpeta llamada files dentro de la web. Si no fuera así, entonces habría que crear un directorio virtual en el IIS, dentro de la web que se llame “files”, con la ruta real hacia la carpeta donde se almacenen las imágenes por réplica. Basta que sea de solo lectura.


  • Configuramos ruta de ficheros en la configuración de la réplica, para lo cual está el fichero license.ini, que es donde se ponen las claves oportunas. Aquí tenemos dos formas de realizarlo, en la que la forma de hacerlo solo depende del dispositivo a utilizar, y que nosotros no podremos elegir entre uno u otro:


Android Para subir los archivos no es necesario poner nada, pero para descargar, este framework dispone de un mecanismo distinto al resto de dispositivos. Para poder realizar la descarga de los archivos es necesario poner la clave FileDownloadURL en el license.ini con la ruta de donde se descargarán los ficheros. P.Ej: FileDownloadURL=http://80.80.80.80:1234/files.
Windows Mobile se tiene que poner la clave DocPath, donde se indica la ruta del dispositivo donde se guardan los ficheros a replicar.
BlackBerry, iPhone o Symbian No es necesario poner nada en el license.ini para replicar, tan solo es necesario poner las tablas de réplica.


OJO! Si estamos ejecutando la aplicacion desde storage card, entonces hay que ponerle la ruta de fichero a storage card y no a archivos de programa, porque el framework guarda los ficheros en una carpeta “files“ dentro de la carpeta donde esté ubicada la aplicación, con esta ruta lo que le indicamos al replicador es donde están los ficheros.



  • Cambiamos el dbms.xml.

<defaultdir value=“c:\rutadondeestalaaplicacion\replica”/> NO se pone /files/, ya que el framework lo pone automáticamente.

  • En la configuración del replicador del cliente hay que ponerle la ruta donde se encontrarán los ficheros, que como ya sabemos es una carpeta/files dentro de la carpeta donde se encuentre el programa.



La carpeta donde se almacenan los ficheros no existe o no tiene permisos suficientes.
Si se produce algún cambio en cualquiera de las tablas master_replica_xxx, en la tabla rl o en el replicator.ini, hay que reiniciar el servicio de réplica.
No se ha definido el FILEPATH para los MID “de sistema” (0,-1), puesto que ésta es la ruta “por defecto”, por ejemplo para los ficheros que entran por interface.