Está en la página 1de 17

Manual

Web Service Control de tráfico.

2016/05/12
Tabla de contenido
1. Objetivo .................................................................................................................................................................... 3
2. Descripción de los métodos del Web Services ............................................................................................. 3
2.1. ProgramarItinerarioXML:......................................................................................................................... 3
2.2. ProgramarItinerarioDateTable: ............................................................................................................. 7
2.4 ConsultarPlacasFechaXml ........................................................................................................................ 8
2.5 ConsultarPlacasFechaDataTable ........................................................................................................ 11
2.6 ConsultarPlacasIdentificadorXml ....................................................................................................... 11
2.7 ConsultarPlacasIdentificadorDataTable .......................................................................................... 12
2.8 ConsultarOperacionConsolidadoXml ................................................................................................ 13
2.9 ConsultarOperacionConsolidadoDataTable ................................................................................... 14
3 URL Web Service ................................................................................................................................................. 15
4 Tablas de Códigos ............................................................................................................................................... 15
5 Consumo del WebService ................................................................................................................................ 15
1. Objetivo

Se presentó la necesidad de crear un Web Services para los módulos de asignación de itinerarios del
Control de Tráfico, para realizar las programaciones de las unidades consumiendo un Web Services.

2. Descripción de los métodos del Web Services

2.1. ProgramarItinerarioXML:

Por medio de este método se va a realizar la programación de las unidades, recibe 3 parámetros los
cuales son: UserName, password, XML, la respuesta que devuelve este método es un documento
XML (Tipo XmlNode).

• UserName: Parámetro de entrada de tipo string, donde se especifica el usuario con el cual el
cliente ingresa a la pagina de Satrack.
• Password: Parámetro de entrada de tipo string, donde se especifica la contraseña con la
cual el cliente ingresa a la pagina de Satrack.
En el caso que el usuario y/o contraseña no sean correctos la respuesta que se devuelve es
la siguiente.
La respuesta como XML es
<nodeppal>
<item>
<placa>*-*</placa>
<ruta>*-*</ruta>
<codigo>-999</codigo>
<descripcion>El usuario y/o contraseña ingresados no existe</descripcion>
<campo1>*-*</campo1>
</item>
</nodeppal>
Ver tabla de códigos.
• Xml: Parámetro de entrada de tipo string, en este parámetro se ingresa una cadena de
texto de tipo xml, donde se van a tener todas las programaciones de los vehículos, a
continuación se describe la conformación del archivo XML.

<programacion>
<itinerario>
<placa>AAA</placa>
<ruta>BBB</ruta>
<parametros>
<trafico>
<agencia>CCC</agencia>
<planviaje>DDD</planviaje>
<campo1>EEE</campo1>
<nombreconductor>FFF</nombreconductor>
<telefonoconductor>GGG</telefonoconductor>
</trafico>
<canbus>
<canpeso>HHH</canpeso>
</canbus>
<disponible>III</disponible>
<fechadespacho>JJJ</fechadespacho >
<regionescargue>
<codigoregion>KKK</codigoregion>
</regionescargue>
<placatemporal>PPP</placatemporal>
</parametros>
</itinerario>
</programacion>

A continuación se detalla el documento XML


Cada programación lleva los siguientes parámetros:
• placa: Parámetro de entrada tipo Varchar(16), donde se especifica el vehículo al que se le va
a programar el itinerario.

• ruta: Parámetro de entrada tipo Varchar(50), donde se especifica el código de la ruta que se
va a programar.

• parámetros: Parámetros no obligatorios, donde se encuentran configuraciones avanzadas


para el control de tráfico.

o trafico: Parámetros no obligatorios, donde se encuentran campos opcionales que el


usuario puede utilizar para almacenar información referente a sus itinerarios.
▪ agencia: Parámetro de entrada tipo Int, donde se especifica la agencia que
realiza el despacho de vehículo.

▪ planviaje: Parámetro de entrada tipo Int, donde se especifica el plan de viaje


que se va a realizar.

▪ campo1: Parámetro de entrada tipo Varchar(100).

▪ nombreconductor: Parámetro de tipo Varchar(500).

▪ telefonoconductor: Parámetro de tipo Varchar(500).

o canbus: Parámetro no obligatorio, donde se encuentra la configuración del peso para


el canBus. Solo aplica para vehículos que cuenten con unidades habilitadas para
enviar información del can. (No aplica para todos los clientes).

▪ canpeso: Parámetro de entrada tipo float, donde se especifica el peso en


toneladas que lleva el vehículo.

o disponible: Parámetro de entrada no obligatorio tipo Int, donde se especifica si se


debe verificar la disponibilidad del vehículo al programar la ruta. (No aplica para
todos los clientes). Este valor debe ser:

- 0, Indica que se debe realizar la programación del vehículo sin


importar su disponibilidad.

- 1, Indica que se debe verificar la disponibilidad del vehículo antes de


realizar la programación. En caso de que este ya tenga una ruta
asignada, el sistema no realiza la programación enviada.

o fechadespacho: Parámetro de entrada no obligatorio tipo Varchar(15), donde se


especifica la hora del despacho del vehículo, esta fecha debe ser ingresada con el
siguiente formato yyyy-MM-ddTHH:mm:ss, ejemplo, para el día 20 de mayo de 2012
a las 10 y 30 pm se ingresa 2012-05-20T22:30:00. (No aplica para todos los clientes).

o regionescargue: Parámetros no obligatorios, donde se encuentra la configuración de


las regiones de cargue/descargue que se van a programar en cada itinerario.

▪ codigoregion: Parámetro de entrada tipo Varchar(100), donde se


especifica el nombre de la región de cargue/descargue que se va a
programar en el itinerario.

o placatemporal: Parámetro de entrada no obligatorio tipo Varchar(100), donde se


especifica una placa temporal, la cual solo se vera reflejada por itinerario creado.
Ejemplo para la programación por medio del Web Services:

<programacion>
<itinerario>
<placa>placaEjemplo1</placa>
<ruta>rutaEjemplo1</ruta>
<parametros>
<trafico>
<agencia>123</agencia>
<planviaje>1234567</planviaje>
<campo1>001457-0051;C02311245</campo1>
<nombreconductor>Javier Gonzales</nombreconductor>
<telefonoconductor>30156987415</telefonoconductor>
</trafico>
<canbus>
<canpeso>8</canpeso>
</canbus>
<disponible>1</disponible>
<fechadespacho>2012-05-20T22:30:00</fechadespacho >
<regionescargue>
<codigoregion>Region1</codigoregion >
<codigoregion>Region2</codigoregion >
</regionescargue>
<placatemporal>PlacaTemporal1</placatemporal>
</parametros>
</itinerario>
<itinerario>
<placa> placaEjemplo2</placa>
<ruta>rutaNoExiste</ruta>
</itinerario>
<itinerario>
<placa>placaEjemplo3</placa>
<ruta>rutaEjemplo3</ruta>
<parametros>
<trafico>
<campo1>001457-0051;C02311245</campo1>
</trafico>
<disponible>0</disponible>
<fechadespacho>2012-05-20T22:30:00</fechadespacho >
</parametros>
</itinerario>
</programacion>
La respuesta que se envía después de ser procesada la información en la base de datos es (Formato
XML):
<nodeppal>
<item>
<placa>placaEjemplo1</placa>
<ruta>rutaEjemplo1</ruta>
<codigo>1</codigo>
<descripcion>Ok</descripcion>
<campo1>001457-0051;C02311245</campo1>
</item>
<item>
<placa> placaEjemplo2</placa>
<ruta> rutaNoExiste </ruta>
<codigo>-2</codigo>
<descripcion>La ruta ingresada no existe</descripcion>
<campo1></campo1>
</item>
<item>
<placa> placaEjemplo3</placa>
<ruta>rutaEjemplo1</ruta>
<codigo>1</codigo>
<descripcion>Ok</descripcion>
<campo1></campo1>
</item>
</nodeppal>
Ver tabla de códigos.

2.2. ProgramarItinerarioDateTable:

Se implementa igual que el método ProgramarItinerarioXML, con la diferencia que en lugar de


retornar un archivo XML, este método retorna una DataTable.

2.3 FinalizarItinerario:
Por medio de este se método, se realiza la cancelación del itineario programado a los vehículos;
recibe 3 parámetros los cuales son: UserName, Password, strPlacas.

• UserName: Parámetro de entrada de tipo string, donde se especifica el usuario con el cual el
cliente ingresa a la página de Satrack.
• Password: Parámetro de entrada de tipo string, donde se especifica la contraseña con la
cual el cliente ingresa a la página de Satrack.
En el caso que el usuario y/o contraseña no sean correctos la respuesta que se devuelve es
la siguiente.
La respuesta como XML es
<nodeppal>
<item>
<placa>*-*</placa>
<ruta>*-*</ruta>
<codigo>-999</codigo>
<descripcion>El usuario y/o contraseña ingresados no existe</descripcion>
</item>
</nodeppal>
Ver tabla de códigos.
• strPlacas: Parámetro de entrada de tipo string, donde se especifican las placas a las cuales se
van a cancelar los itinerarios. Se ingresa una o varias placas, separadas por el carácter coma
(,).

La respuesta que se envía después de ser procesada la información en la base de


<nodeppal>
<item>
<placa>Placa1</placa>
<descripcion>Descripcion1</descripcion>
<codigo>codigo1</codigo>
</item>
</nodeppal>
Ver tabla de códigos.

2.4 ConsultarPlacasFechaXml

Por medio de este se realiza la consulta de las placas que tiene asignada un usuario teniendo en
cuenta un rango de fechas; recibe 15 parámetros los cuales son: UserName, Password, strPlacas,
InitialYear, InitialMonth, InitialDay, InitialHour, InitialMinute, InitialSecs, FinalYear, FinalMonth,
FinalDay, FinalHour, FinalMinute, FinalSecs.

La respuesta que devuelve este método es un documento XML (Tipo XmlNode).

• UserName: Parámetro de entrada de tipo string, donde se especifica el usuario con el cual el
cliente ingresa a la página de Satrack.
• Password: Parámetro de entrada de tipo string, donde se especifica la contraseña con la
cual el cliente ingresa a la página de Satrack.
En el caso que el usuario y/o contraseña no sean correctos la respuesta que se devuelve es
la siguiente.
La respuesta como XML es
<nodeppal>
<item>
<placa>*-*</placa>
<ruta>*-*</ruta>
<codigo>-999</codigo>
<descripcion>El usuario y/o contraseña ingresados no existe</descripcion>
</item>
</nodeppal>
Ver tabla de códigos.
• strPlacas: Parámetro de entrada de tipo string, donde se especifican las placas que se desea
consultar. En caso de que el valor de este parámetro sea *, el sistema retornara todas las
palcas asociadas al usuario.

• InitialYear: Parámetro de tipo int que indica el año que conforma la fecha inicial con el que
se desea realizar la consulta.

• InitialMonth: Parámetro de tipo int que indica el mes que conforma la fecha inicial con el
que se desea realizar la consulta.

• InitialDay: Parámetro de tipo int que indica el día que conforma la fecha inicial con el que se
desea realizar la consulta.

• InitialHour: Parámetro de tipo int que indica la hora que conforma la fecha inicial con el que
se desea realizar la consulta.

• InitialMinute: Parámetro de tipo int que indica los minutos que conforma la fecha inicial con
el que se desea realizar la consulta.

• InitialSecs: Parámetro de tipo int que indica los segundos de la fecha inicial con el que se
desea realizar la consulta.

• FinalYear: Parámetro de tipo int que indica el año que conforma la fecha final con el que se
desea realizar la consulta.

• FinalMonth: Parámetro de tipo int que indica el mes que conforma la fecha final con el que
se desea realizar la consulta.
• FinalDay: Parámetro de tipo int que indica el día que conforma la fecha final con el que se
desea realizar la consulta.

• FinalHour: Parámetro de tipo int que indica la hora que conforma la fecha final con el que se
desea realizar la consulta.

• FinalMinute: Parámetro de tipo int que indica los minutos que conforma la fecha final con el
que se desea realizar la consulta.

• FinalSecs: Parámetro de tipo int que indica los segundos que conforma la fecha final con el
que se desea realizar la consulta.

La respuesta que se envía después de ser procesada la información en la base de


<nodeppal>
<item>
<clave>claveejemplo1</clave>
<codigocliente>codigoclienteejemplo1</codigocliente>
<identificador>identificadorejemplo1</identificador>
<placa>placaejemplo1</placa>
<fechahoragps>fechaejemplo1</fechahoragps>
<fechahorasistema>fechasistemaejemplo1</fechahorasistema>
<dato>inicio datoejemplo1</dato>
<latitud>latitudejemplo1</latitud>
<longitud>longitudejemplo1</longitud>
<idcontrolviaje>controlviajeejemplo1</idcontrolviaje>
<direccion>direccionejemplo1</direccion>
<tipodato>tipodatoejemplo1</tipodato>
<velocidad>velocidadejemplo1</velocidad>
<numeroplanviaje> numeroplanviaje1</numeroplanviaje>
</item>
<item>
<clave> claveejemplo2</clave>
<codigocliente> codigoclienteejemplo2</codigocliente>
<identificador> identificadorejemplo2</identificador>
<placa> placaejemplo2</placa>
<fechahoragps> fechaejemplo2</fechahoragps>
<fechahorasistema> fechasistemaejemplo2</fechahorasistema>
<dato> datoejemplo2</dato>
<latitud> latitudejemplo2</latitud>
<longitud> longitudejemplo2</longitud>
<idcontrolviaje> controlviajeejemplo2</idcontrolviaje>
<direccion> direccionejemplo2</direccion>
<tipodato> tipodatoejemplo2</tipodato>
<velocidad>velocidadejemplo2</velocidad>
<numeroplanviaje> numeroplanviaje1</numeroplanviaje>
</item>
</nodeppal>

2.5 ConsultarPlacasFechaDataTable

Se implementa igual que el método ConsultarPlacasFechaXml, con la diferencia que en lugar de


retornar un archivo XML, este método retorna los datos de respuesta en un DataTable.

2.6 ConsultarPlacasIdentificadorXml

Por medio de este se realiza la consulta de las n placas que tiene asignada un usuario teniendo en
cuenta el campo identificar, clave y la cantidad de registros solicitados (n); recibe 4 parámetros los
cuales son: UserName, Password, string Identificador, strPlacas, NumReg..

La respuesta que devuelve este método es un documento XML (Tipo XmlNode).

• UserName: Parámetro de entrada de tipo string, donde se especifica el usuario con el cual el
cliente ingresa a la página de Satrack.

• Password: Parámetro de entrada de tipo string, donde se especifica la contraseña con la


cual el cliente ingresa a la página de Satrack.
En el caso que el usuario y/o contraseña no sean correctos la respuesta que se devuelve es
la siguiente.
• Identificador: Parámetro de entrada de tipo string, donde se especifica el identificador con
el cual se realiza la consulta de placas que el usuario tiene asignadas.

• Identificador: Parámetro de entrada de tipo string, donde se especifica el identificador con


el cual se realiza la consulta de placas que el usuario tiene asignadas.

• strPlacas: Parámetro de entrada de tipo string, donde se especifican las placas que se desea
consultar. En caso de que el valor de este parámetro sea 0, el sistema retornara todas las
palcas asociadas al usuario.

• NumReg: Parámetro de entrada de tipo int, donde se especifican la cantidad de registros


que se desea consultar. El valor de este parámetro debe ser menor o igual a 300, en caso de
que este sea mayor, el sistema tomara por defecto el valor 300.

<nodeppal>
<item>
<clave>claveejemplo1</clave>
<codigocliente>codigoclienteejemplo1</codigocliente>
<identificador>identificadorejemplo1</identificador>
<placa>placaejemplo1</placa>
<fechahoragps>fechaejemplo1</fechahoragps>
<fechahorasistema>fechasistemaejemplo1</fechahorasistema>
<dato>inicio datoejemplo1</dato>
<latitud>latitudejemplo1</latitud>
<longitud>longitudejemplo1</longitud>
<idcontrolviaje>controlviajeejemplo1</idcontrolviaje>
<direccion>direccionejemplo1</direccion>
<tipodato>tipodatoejemplo1</tipodato>
<velocidad>velocidadejemplo1</velocidad>
<numeroplanviaje> numeroplanviaje1</numeroplanviaje>
</item>
<item>
<clave> claveejemplo2</clave>
<codigocliente> codigoclienteejemplo2</codigocliente>
<identificador> identificadorejemplo2</identificador>
<placa> placaejemplo2</placa>
<fechahoragps> fechaejemplo2</fechahoragps>
<fechahorasistema> fechasistemaejemplo2</fechahorasistema>
<dato> datoejemplo2</dato>
<latitud> latitudejemplo2</latitud>
<longitud> longitudejemplo2</longitud>
<idcontrolviaje> controlviajeejemplo2</idcontrolviaje>
<direccion> direccionejemplo2</direccion>
<tipodato> tipodatoejemplo2</tipodato>
<velocidad>velocidadejemplo2</velocidad>
<numeroplanviaje> numeroplanviaje1</numeroplanviaje>
</item>
</nodeppal>

2.7 ConsultarPlacasIdentificadorDataTable

Se implementa igual que el método ConsultarPlacasIdentificadorXml, con la diferencia que en lugar


de retornar un archivo XML, este método retorna los datos de respuesta en un DataTable.
2.8 ConsultarOperacionConsolidadoXml

Por medio de este método se realiza la de la operación consolidada de las n placas que tiene
asignada un usuario teniendo en cuenta el campo identificar, clave y la cantidad de registros
solicitados (n); recibe 4 parámetros los cuales son: UserName, Password, string Identificador,
strPlacas, NumReg..

La respuesta que devuelve este método es un documento XML (Tipo XmlNode).

• UserName: Parámetro de entrada de tipo string, donde se especifica el usuario con el cual el
cliente ingresa a la página de Satrack.

• Password: Parámetro de entrada de tipo string, donde se especifica la contraseña con la


cual el cliente ingresa a la página de Satrack.
En el caso que el usuario y/o contraseña no sean correctos la respuesta que se devuelve es
la siguiente.
• InitialDate: Parámetro de entrada de tipo int, donde se especifica la fecha en el siguiente
formato AAAAMMDD (20160801).

• FinalDate: Parámetro de entrada de tipo int, donde se especifica la fecha en el siguiente


formato AAAAMMDD (20160901).

• strPlacas: Parámetro de entrada de tipo string, donde se especifican las placas que se desea
consultar. En caso de que el valor de este parámetro sea 0, el sistema retornara todas las
palcas asociadas al usuario.

• Tipofiltro: Parámetro de entrada de tipo string, donde se especifica el tipo de filtro los
cuales son: Grupo ó Placa y se complementa ingresando en el campo ValorFiltro.

• ValorFiltro: Parámetro de entrada tipo string donde se especifica el nombre del grupo o la
placa individual a consultar.

<nodeppal><item><Placa>AEB147</Placa><NombreRuta>057000011000001-
057000019000698-
000225</NombreRuta><RegionOrigen>BS_BOGOTA</RegionOrigen><RegionDestino>BS_SA
NTANDER DE QUILICHAO</RegionDestino><RegionRuta>BS_BOGOTA (CUNDINAMARCA) -
SANTANDER DE QUILICHAO (CAUCA) POR IBAGUE</RegionRuta><NumeroViaje>ebs-BOG-
116314</NumeroViaje><FechaHoraAsignacion>Aug 9 2016
12:21PM</FechaHoraAsignacion><FechaHoraInicio>Aug 9 2016
4:37PM</FechaHoraInicio><FechaHoraFin>Sin reporte</FechaHoraFin><DuracionReal>Sin
reporte</DuracionReal><DuracionEstimada>02D:15H:43M:35S</DuracionEstimada><Cumpl
imiento>Sin
reporte</Cumplimiento><ParadasRealizadas>0</ParadasRealizadas><TiempoTotalParadas>
Sin
reporte</TiempoTotalParadas><ExcesosDeVelocidad>0</ExcesosDeVelocidad><IngresoRegi
ones>0</IngresoRegiones><PausasRealizadas>0</PausasRealizadas><DuracionPausa>0</Du
racionPausa></item><item><Placa>AYK302</Placa><NombreRuta>057000076000520-
057000076000892-
001434</NombreRuta><RegionOrigen>BS_PALMIRA</RegionOrigen><RegionDestino>BS_Y
UMBO</RegionDestino><RegionRuta>BS_PALMIRA (VALLE) - YUMBO
(VALLE)</RegionRuta><NumeroViaje>ebs-YUMB-
59598</NumeroViaje><FechaHoraAsignacion>Aug 8 2016
7:21PM</FechaHoraAsignacion><FechaHoraInicio>Aug 8 2016
9:10PM</FechaHoraInicio><FechaHoraFin>Aug 8 2016
9:41PM</FechaHoraFin><DuracionReal>00D:00H:30M:54S</DuracionReal><DuracionEstima
da>00D:00H:30M:00S</DuracionEstimada><Cumplimiento>00D:00H:00M:54S</Cumplimien
to><ParadasRealizadas>0</ParadasRealizadas><TiempoTotalParadas>Sin
reporte</TiempoTotalParadas><ExcesosDeVelocidad>0</ExcesosDeVelocidad><IngresoRegi
ones>0</IngresoRegiones><PausasRealizadas>0</PausasRealizadas><DuracionPausa>0</Du
racionPausa></item><nodeppal>

2.9 ConsultarOperacionConsolidadoDataTable

Se implementa igual que el método ConsultarOperacionConsolidadoXml, con la diferencia que en


lugar de retornar un archivo XML, este método retorna los datos de respuesta en un DataTable.
3 URL Web Service

http://webcloud.satrack.com/WebServiceControlTrafico/WSControlTrafico.asmx

4 Tablas de Códigos

Tabla 1.
Código Descripción
1 Ok
-1 La placa ingresada no existe
-2 La ruta ingresada no existe
-3 Problemas con la ruta
-4 La placa ingresada no esta asignada al usuario
-5 Vehículo no disponible
-998 Error inesperado, no se programo el itinerario
-999 El usuario y/o contraseña ingresados no son correctos
0/1 Disponible
-6 Itinerario cancelado exitosamente
-7 No se pudo cancelar el itinerario, intentelo nuevamente.

5 Consumo del WebService

Ejemplo para crear el consumidor del WebServices


Paso 1.
Creación de la conexión al Servicio Web
En un nuevo proyecto en Visual Studio.NET en el explorador de soluciones, hacemos click derecho
sobre el nombre del proyecto y seleccionamos: Agregar referencia Web..., a continuación aparecerá
el siguiente cuadro:
En el cuadro de texto URL escribimos:
http:// webcloud.satrack.com/WebServiceControlTrafico/WSControlTrafico.asmx
y hacemos clic en el icono verde para acceder a la referencia Web. En el cuadro de texto Nombre de
referencia Web escribimos el nombre de la referencia con el cual crearemos la instancia del servicio
Web, en este caso podemos utilizar el nombre CT, ahora presionamos el botón Agregar Referencia,
esto cerrará automáticamente el cuadro de diálogo anterior y creará la referencia a el servicio Web
en el proyecto actual.

Paso 2.
Invocar el método que devuelve los datos desde el Servicio Web

En Visual Studio.NET en vista diseño insertamos un nuevo botón y le ponemos el texto


probar, con éste invocaremos el servicio Web desde nuestra aplicación.
Desde el cuadro de herramientas, insertamos un objeto datagrid en el cual mostraremos los
registros devueltos por el Servicio Web.
Hacemos doble clic sobre el botón para ir a la vista código y crear la instancia del servicio Web y así
poder invocar sus métodos.
A continuación debemos tener algo como:
private void btnTry_Click(object sender, System.EventArgs e)
{
//Acá escribiremos el código necesario para instanciar el servicio web

try
{
//instanciamos la variable servicio como un objeto del tipo CLT
CT. WSControlTrafico ctWeb = new CT. WSControlTrafico();

//Asignamos al DataSet ds el resultado de la llamada al método revisarEstado


DataSet ds = ctWeb.AgregarItinerario("usuario", "clave","Ruta", "Placa" , Agencia,planviaje,
"Factura");

//Validamos que el DataSet tenga datos veriifcando la colección Tables.


if (ds.Tables.Count == 0)
TextBox1.Text = "No hay datos desde el Ws...";
else
//Validamos que el dataset en la colección columns tenga más de una, esto
//equivale al número de campos por registro que retorna el servicio.
if (ds.Tables[0].Columns.Count > 1)
{
GridView1.DataSource = ds;
GridView1.DataBind();
}
else
TextBox1.Text = TextBox1.Text + " - No se trajeron datos";
}
catch (Exception ex)
{
//Controlamos algún posible error ex.Message contiene la descripción del error.
TextBox1.Text = ex.Message;
}
}

También podría gustarte