Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Pgina 1 de
Tabla de contenido
GENERACIN DE TRAMAS...............................................................................................................................3 1.Archivo de Transferencia de las EMV al CCMF............................................................................................3 2.Anexo 01..........................................................................................................................................................4 3.Anexo 02..........................................................................................................................................................7
Pgina 2 de
GENERACIN DE TRAMAS
1. ARCHIVO DE TRANSFERENCIA DE LAS EMV AL CCMF Se requiere que las EMV (Empresas de Monitoreo Vehicular) generen archivos XML de dos tipos, uno para la transmisin de tramas estndar es decir las de ubicacin permanente de las unidades de transporte y otra para el evento de botn de pnico (emergencias).
La frecuencia de envio para mensajes "estndar" sera mximo en intervalos de 1 minuto y para botnes de pnico de inmediato, o como sea dispuesto por el Ministerio de Transportes y Comunicaciones (MTC). Cada generacin nueva contendr solo las ultimas ocurrencias del ltimo periodo de tiempo, si no hubo ninguna ocurrencia no se genera nada en este intervalo de tiempo (o si se prefiere se genera un XML vaco). La conformacin de dichas tramas es la siguiente:
a) La trama responde a la siguiente estructura:
<REPORTE>
<TRAMA PLACA="AD385" LONGITUD="-76.85263100" LATITUD="-11.69777400" RUMBO="233" VELOCIDAD="0" FECCOMUN="2009-05-08T13:21:46"/> <TRAMA PLACA="AD385" LONGITUD="-71.55220000" LATITUD="-16.39697200" RUMBO="311" VELOCIDAD="12" FECCOMUN="2009-05-08T13:22:46"/>
</REPORTE>
b) La trama del evento (botn de pnico) responde a la siguiente estructura:
REPORTE>
<TRAMA PLACA="AD785" LONGITUD="-76.85263100" LATITUD="-11.69777400" RUMBO="233" VELOCIDAD= 0 " FECCOMUN= 2009-05-08T13:21:46 "/> " " <TRAMA PLACA="HD384" LONGITUD="-71.55220000" LATITUD="-16.39697200" RUMBO="233" VELOCIDAD="0" FECCOMUN="2009-05-08T13:22:46" />
</REPORTE> NOTA: ordenar las tramas por fecha de forma cronolgica (desde la mas antigua a la mas reciente)
c) Descripcin de campos:
Definicin de Campos:
Se presenta los campos con las caractersticas requeridas y seguidamente la tabla-01, que resume lo dicho.
caracteres. LONGITUD: Punto en el plano cartesiano, en formato decimal. LATITUD: Punto en el plano cartesiano junto con la LONGITUD arman una coordenada geogrfica, en formato decimal. RUMBO: Direccin en grados de 0 a 360, indicar la orientacin del vehculo, en formato decimal. VELOCIDAD: Velocidad del vehculo Km/h, en formato decimal. FECCOMUN: Fecha y hora generada por el aparato GPS instalado en la unidad de transporte.
Pgina 3 de
Tabla-01
CAMPO TIPO MIN MAX REQUERID O
Si Si Si Si Si Si
Existen varias formas de generar archivos .xml el siguiente es un ejemplo de una de ellas con MSTSQL 2005
A. Se debe habilitar las siguientes opciones con un usuario con privilegios.
EXEC sp_configure 'show advanced options', 1; GO RECONFIGURE; GO EXEC sp_configure 'xp_cmdshell', 1; GO RECONFIGURE; GO Crear una tabla FECHATRANS que contenga un solo campo :ultima fecha de trasmision, este tiene el nico objeto de guardar la ultima fecha de reporte.
B. Se debe crear un archivo que contenga la sentencia que genere las tramas a ser transmitidas,
(Slo aquellas que no han sido transmitidas ya, y cada intervalo de 5 minutos), por ejemplo: C:\Agente\Sentencia.SQL este archivo puede estar en cualquier ubicacin del disco y tener cualquier nombre pero debe considerarse este en el procedimiento almacenado; se recomienda crearlo en el mismo ubicacin del agente de comunicaciones. C:\Agente\Sentencia.SQL :XML ON USE BASE_DE_DATOS GO SET NOCOUNT ON SELECT @ULTIMA_TRANSMISION = DATE_ULTIMA_TRANSMISION FROM FECHATRANS --- Nota la tabla FECHATRANS tiene como campo DATE_ULTIMA_TRANSMISION cuyo valor es la ---- ultima fecha de transmicion. --- Modificar segn la los nombres de campos para generar la trama, transmite solo la ultima trama valida por unidad en ese intervalo de tiempo
Pgina 4 de
SELECT PLACA, LONGITUD, LATITUD, RUMBO, VELOCIDAD, FECCOMUN FROM TABLA T WHERE FECCOMUN IN( SELECT MAX(MEC_FECCOMUN) FROM TABLA WHERE PLACA = T.PLACA AND MEC_FECCOMUN > ULTIMA_TRANSMISION) ORDER BY FECCOMUN FOR XML RAW('TRAMA'), ROOT('REPORTE') SET NOCOUNT OFF --C. Crear un procedimiento que ejecute el archivo C:\Agente\Sentencia.SQL
SET ANSI_NULLS ON SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Autor: Nombre Apellido -- Fecha de creacin: 01/01/2009 -- Descripcin: Generar xml -- Usuario: Cambiar por un usuario con privilegios -- Password: Cambiar por el password del usuario -- Considerar el archivo de salida para este ejemplo esta en C:\Agente\XML_TRAFICO_NORMAL\ -- y concatenado como se solicita el archivo NAOMESDIAHHMMSS -- ej.: N20090601102315 -- ============================================= CREATE PROCEDURE generaxml AS BEGIN SET NOCOUNT ON; DECLARE @cmd0 VARCHAR(100) DECLARE @cmd1 VARCHAR(100) DECLARE @cmd2 VARCHAR(100) -- Cambiar Usuario y Password por el usuario y pass de la BD SET @cmd1 = 'SQLCMD -U Usuario -P Password -i " C:\Agente\Sentencia.SQL" -o' SELECT @cmd2 = 'C:\Agente\XML_TRAFICO_NORMAL\N' + CONVERT(varchar(30), GETDATE(), 112) + SUBSTRING(CONVERT(varchar(30), GETDATE(), 108), 1, 2) + SUBSTRING(CONVERT(varchar(30), GETDATE(), 108), 4, 2) + SUBSTRING(CONVERT(varchar(30), GETDATE(), 108), 7, 2) +'.xml' SELECT @cmd0 = @cmd1 + @cmd2 EXEC master..xp_cmdshell @cmd0 END Nota: usar una ruta sin espacios en @cmd2, ya que el agente solo puede leer rutas sin espacios.
D. Generar un Job que ejecute el procedimiento almacenado cada TRES minutos o al intervalo de
Pgina 5 de
1) En new Job en la ficha General llenar los datos de Name, Owner, Categoria, Description y
2) En new Job en la ficha Step crear uno nuevo New y en la siguiente pantalla llenar StepName,
Pgina 6 de
3) En new Job en la ficha Schedules crear uno nuevo New en la siguiente pantalla llenar Name,
3.
ANEXO 02 Existen varias formas de generar archivos .xml el siguiente es un ejemplo de una de ellas con ORACLE DATABASE XE
A. Se debe habilitar las siguientes opciones con un usuario con privilegios, en caso no lo estn.
que se selecciono cuando se instalo el agente de comunicaciones para nuestro ejemplo ser C:\Agente\XML_TRAFICO_NORMAL. create directory filesdir as ' C:\Agente\XML_TRAFICO_NORMAL'; grant read on directory filesdir to public; grant write on directory filesdir to public; --o a un Usuario
C. Crear el procedimiento que genere las tramas.
Pgina 7 de
--------
============================================= Autor: Nombre Apellido Fecha de creacin: 01/01/2009 Descripcin: Generar xml Considerar el archivo de salida para este ejemplo esta en C:\Agente\XML_TRAFICO_NORMAL\ y concatenado como se solicita el archivo NAOMESDIAHH24MMSS -- ej.: N20090601102315 =============================================
create or replace PROCEDURE CREAXML AS v_file Utl_File.File_Type; v_xml xmltype; RESULT1 clob; v_NomArc varchar2(19); BEGIN SELECT xmlelement("DATOS", xmlagg( xmlelement( "TRAMA", XMLAttributes(t.PLACA,t.LONGITUD,t.LATITUD,t.RUMBO,t.VELOCIDAD, t.FECCOMUN) ) ) ) INTO v_xml FROM TABLA t; RESULT1 := v_xml.getclobval(); -- Nombre del archivo -SELECT 'N'||to_char(sysdate, 'yyyymmddHH24mmss')||'.xml' INTO v_NomArc FROM dual; -- Escribe el archivo -v_file := Utl_File.FOpen('FILESDIR', v_NomArc, 'w'); Utl_File.Put(v_file, RESULT1); Utl_File.FClose(v_file); END CREAXML; D. Generar el job. DECLARE X NUMBER; BEGIN SYS.DBMS_JOB.SUBMIT ( job => X ,what => 'BEGIN CREAXML; END;' ,next_date=> to_date('24/06/2008 10:30:00','dd/mm/yyyy hh24:mi:ss') ,interval => 'SYSDATE+1/1440' -- intervalo de tiempo ,no_parse => FALSE ); DBMS_OUTPUT.PUT_LINE(to_char(X)); END;
Pgina 8 de