User Tools

Site Tools


en:wiki:4.-cliente:4.5.-cliente-replica:d.-seguimiento-estado-replica:start

Monitorizar estado de Réplica


Consola de réplica

Para ver en que estado se encuentra la Réplica, es posible crear una colección que monitorice los datos que va manejando la Réplica.

Colección de ejemplo:

<coll name="ConsolaReplica" fontsize="8" title="ConsolaReplica" objname="Empresa" updateobj="Empresa" progid="ASData.CASBasicDataObj" sql="SELECT t1.*
	FROM ##PREF##Empresa t1" filter="" sort="" notab="true" editmask="2">
	<group name="General" id="1" />
	<!-- frames -->
	<frame name="borde" framebox="true" height="100%" width="100%" bgcolor="#e4eefd" />
	<frame name="frame1" frame="borde" bgcolor="#00000000" align="center|top" width="100%" height="50%" scroll="true" />
	<frame name="fversion" frame="borde" framebox="true" align="left" width="100%" height="30%" bgcolor="#ffffd8" />
 
	<!-- ESTADO REPLICA -->
	<prop name="MAP_TL1" group="1" type="TL" frame="borde" title="CONSOLA DE REPLICA" visible="1" lmargin="1%" labelshadow="false" labelbox="true" labelfont-bold="true" fontsize="12" align="center" labelwidth="40" />
	<prop name="MAP_RECORDSRX" title="Operaciones Recibidas" type="T" labelwidth="15" fontsize="15" visible="15" group="1" frame="borde" locked="true" />
	<prop name="MAP_RECORDSTX" title="Operaciones Enviadas" tmargin="1%" type="T" labelwidth="15" fontsize="15" visible="15" group="1" frame="borde" locked="true" />
	<prop name="MAP_RECORDSPEND" title="Operaciones Pendientes" tmargin="2%" type="T" labelwidth="15" fontsize="15" visible="15" group="1" frame="borde" locked="true" />
	<prop name="MAP_LOG" title="Log" type="T" labelwidth="0" fontsize="15" fieldsize="80" visible="15" group="1" frame="frame1" locked="true" />
 
	<!-- VERSION DE LA APLICACION -->
	<prop name="MAP_VERSIONAPP" frame="fversion" group="1" locked="true" type="T" visible="1" labelwidth="9" fieldsize="18" title="Aplicacion" labelshadow="false" labelbox="false" />
	<prop name="MAP_VERSIONFRAME" frame="fversion" group="1" locked="true" type="T" visible="1" labelwidth="9" fieldsize="18" title="FrameXOne" labelshadow="false" labelbox="false" />
	<prop name="MAP_VERSIONXONELIVE" frame="fversion" group="1" locked="true" type="T" visible="1" labelwidth="9" fieldsize="18" title="XOneLive" labelshadow="false" labelbox="false" />
	<prop name="MAP_DISPOSITIVO" frame="fversion" group="1" locked="true" type="T" visible="1" labelwidth="9" fieldsize="18" title="Dispositivo" labelshadow="false" labelbox="false" />
	<prop name="REPLICADOR" group="1" frame="fversion" type="B" visible="1" labelwidth="80" lmargin="25%" width="80" height="50" title="REPLICAR" method="ExecuteNode (replicar)" />
	<prop name="BTSALIR" group="1" frame="fversion" type="B" width="80" height="50" labelwidth="80" lmargin="5%" visible="1" title="SALIR" method="ExecuteNode (salir)" newline="false" />
 
	<before-edit>
		<action name="setval" field="MAP_VERSIONAPP" value="##VERSION##" />
		<action name="setval" field="MAP_VERSIONFRAME" value="##FRAME_VERSION##" />
		<action name="setval" field="MAP_VERSIONXONELIVE" value="##LIVEUPDATE_VERSION##" />
		<action name="setval" field="MAP_DISPOSITIVO" value="##DEVICE_MODEL##" />
		<action name="runscript">
			<script language="VBScript">
				this("MAP_RECORDSRX")=cstr(Replica.RecordsRX)+"/"+cstr(Replica.TotalRecordsRX)
				this("MAP_RECORDSTX")=cstr(Replica.RecordsTX)+"/"+cstr(Replica.TotalRecordsTX)
				this("MAP_RECORDSPEND")=Replica.RecordsPend
				this("MAP_LOG")=CStr(Replica.Log)
				<!-- Se programa para que se ejecute "refresh" en 5 segundos -->
				ui.ExecuteActionAfterDelay "refresh",5
			</script>
		</action>
	</before-edit>
 
	<refresh>
		<action name="runscript">
			<script language="VBScript">
				this("MAP_RECORDSRX")=cstr(Replica.RecordsRX)+"/"+cstr(Replica.TotalRecordsRX)
				this("MAP_RECORDSTX")=cstr(Replica.RecordsTX)+"/"+cstr(Replica.TotalRecordsTX)
				this("MAP_RECORDSPEND")=Replica.RecordsPend
				this("MAP_LOG")=CStr(Replica.Log)
				<!-- Se vuelve a llamar a sí mismo en 5 segundos, para hacerse recursivo. -->
				ui.ExecuteActionAfterDelay "refresh",5
			</script>
		</action>
	</refresh>
 
	<salir>
		<action name="runscript">
			<script language="VBScript">
				appdata.failwithmessage -11888,"##EXIT##"
			</script>
		</action>
	</salir>
 
	<replicar>
		<action name="runscript">
			<script language="VBScript">
				Replica.Start
			</script>
		</action>
	</replicar>
 
</coll>

Métodos de script

Los siguientes métodos de la clase Replica son los que usamos en el ejemplo de arriba.

RecordsRX

Este método devuelve un entero con las operaciones recibidas desde la última vez que se entró en la aplicación.

TotalRecordsRX

Este método devuelve un entero con el total de operaciones recibidas, sin importar cuando hayan entrado al dispositivo.

RecordsTX

Este método devuelve un entero con las operaciones transmitidas desde la última vez que se entró en la aplicación.

TotalRecordsTX

Este método devuelve un entero con el total operaciones transmitidas, sin importar cuándo hayan entrado al dispositivo.

RecordsPend

Este método devuelve un entero con los registros pendientes de enviar desde el dispositivo al servidor. Es la bandeja de salida del dispositivo.

Log

Este método devuelve una cadena con los mensajes de debug del replicador del framework, mostrando lo que va haciendo y mostrando posibles errores de conexión.

Start

Indica al dispositivo que comience a replicar en este instante.

en/wiki/4.-cliente/4.5.-cliente-replica/d.-seguimiento-estado-replica/start.txt · Last modified: 2017/09/26 09:39 (external edit)