A continuación vamos a ver ejemplos de implementación java de los casos de uso principales de la aplicación TTO. Para ubicarlos en el proceso general, vamos a mostrar de nuevo el esquema del inicio que muestra cómo integrarse con TTO.
Ejemplo 1: recibir evento de un trámite TTO por medio de SGA
Para poder recibir eventos de trámites se deberán realizar los pasos descritos en el apartado 2.- Permisos y consideraciones previas para integración con TTO y suscribirse al evento finishedProcedure de SGA-Eventos.
El ciudadano habrá creado un trámite y TTO generará eventos para las aplicaciones integradoras. Para la recepción de los eventos a los que se haya suscrito la aplicación integradora, debe implementar un servicio rest, accesible por SGA, que implemente la interfaz NotificationManager
/** * Interfaz REST común para las aplicaciones que integren el sistema de eventos * */ public interface NotificationManager{ @PUT @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) Map<Long, Boolean> processNotification(RestEvent eventData); }
La aplicación obtendrá un objeto JSON como el siguiente:
{ number=10073; requestCode=100737Q9AYWCNQ9; signature=1774; }
Los datos que nos interesan son requestCode y signature. Con estos datos:
Comprobaremos si la signatura se corresponde con la de un trámite que sea de interés.
- En el caso de que la solicitud sea de interés, realizar una invocación al servicio get/getXml de TTO utilizando como parámetro de entrada requestCode. En el Ejemplo 3 se muestra cómo realizar esta invocación.
Una vez terminado todo el proceso, el servicio tiene que devolver a SGA un mapa donde la clave sea ese id único y el valor el resultado de procesar los datos asociados (true → procesado con éxito; false → se ha producido algún error).
Para más información acerca de los eventos, consulte la documentación de SGA.
Ejemplo 2: recibir evento de una subsanación o aportación de TTO por medio de SGA
Para poder recibir eventos de trámites se deberán realizar los pasos descritos en el apartado 2.- Permisos y consideraciones previas para integración con TTO y suscribirse al evento finishedProcedureWithOrigin de SGA-Eventos.
El ciudadano habrá realizado una subsanación o aportación y TTO generará eventos para las aplicaciones integradoras. Para la recepción de los eventos a los que se haya suscrito la aplicación integradora, debe implementar un servicio rest, accesible por SGA, que implemente la interfaz NotificationManager
/** * Interfaz REST común para las aplicaciones que integren el sistema de eventos * */ public interface NotificationManager{ @PUT @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) Map<Long, Boolean> processNotification(RestEvent eventData); }
La aplicación obtendrá un objeto JSON como el siguiente:
{ number=10073; requestCode=100737Q9AYWCNQ9; signature=1774; origin="SUBSANACION"; // Puede tomar los valores APORTACION, RECURSO, SUBSANACION y TODOS }
Los datos que nos interesan son requestCode, signature y origin. Con estos datos:
Comprobaremos si la signatura se corresponde con la de un trámite que sea de interés.
- En el caso de que la solicitud sea de interés o se necesiten más datos para determinarlo, realizar una invocación al servicio get/getXml de TTO utilizando como parámetro de entrada requestCode. En el Ejemplo 3 se muestra cómo realizar esta invocación.
Una vez terminado todo el proceso, el servicio tiene que devolver a SGA un mapa donde la clave sea ese id único y el valor el resultado de procesar los datos asociados (true → procesado con éxito; false → se ha producido algún error).
Para más información acerca de los eventos, consulte la documentación de SGA.
Ejemplo 3: construcción de la URL para subsanar con parámetros adicionales
Cuando se necesite asociar solicitudes existentes con nuevos trámites de tipo subsanación o aportación se utilizará la siguiente URL:
Los parámetros para poder construir la URL correctamente son los siguientes:
- entorno: el entorno en el que se necesite asociar.
- alias-tramite: el tipo de trámite nuevo que se va a asociar. Los tipos de trámite existentes son "subsanaciones" y "aportaciones".
- requestSignature (opcional)1: signatura de la solicitud que se va a subsanar.
- requestCode (opcional)1: código de la solicitud que se va a subsanar.
- numExpediente (opcional): número de expediente de la solicitud a subsanar. Se indica en el caso en el que la solicitud a subsanar no haya sido tramitada por el tramitador.
- otros parámetros opcionales: otros parámetros adicionales personalizados que las aplicaciones integradoras deseen asociar a las solicitudes.
1Los parámetros requestSignature y requestCode son excluyentes. Sólo se puede indicar uno de los dos parámetros.
Tanto el número de expediente como otros parámetros adicionales se guardaran en el bloque queryParams:
queryParams {numExpediente: "555",miCosa: "otroIdentificador"}
Ejemplos de invocación
Asociar una subsanación en el entorno de DES a la solicitud con signatura 1774 y número de expediente 500027674637846764 y un identificador personalizado "unIdentificador" 123456789:
http://desaplicaciones.aragon.es/tramitar/subsanaciones/1774?numExpediente=500027674637846764&unIdentificador=123456789
Asociar una aportación en el entorno PRE a la solicitud con código 100737Q9AYWCNQ9 y número de expediente 50736786324876427836 y un identificador personalizado "otroIdentificador" AAAAAAAA:
http://preaplicaciones.aragon.es/tramitar/aportaciones/100737Q9AYWCNQ9?numExpediente=50736786324876427836&otroIdentificador=AAAAAAAA
Asociar una aportación en el entorno PRO a la solicitud con número de expediente 50736786324876424554 y un identificador personalizado "tercerIdentificador" BBBBBBB:
Ejemplo 4: consultar una solicitud, subsanación o aportación finalizada
Una vez recibido un SGA-Evento de TTO, comprobaremos si el trámite es de interés para la aplicación. En el caso de que la solicitud sea de interés, realizar una invocación al servicio get/getXml de TTO utilizando como parámetro de entrada requestCode.
Ejemplo 5: obtener la información de un listado de solicitudes de un día concreto
El servicio de consulta de un listado de solicitudes puede tener diversas aplicaciones puntuales.
El ejemplo de invocación que se muestra a continuación será de utilidad para consultar las solicitudes finalizadas en un día concreto. Así se podrá consultar si, por algún fallo técnico, la aplicación integradora no ha recibido alguna solicitud finalizada del trámite que nos interesa. Se va a tomar como ejemplo la signatura 1903 y el día 26/03/2020.
Ejemplo 6: obtener la información de un listado de subsanaciones de un día concreto
El servicio de consulta de un listado de solicitudes puede tener diversas aplicaciones puntuales.
El ejemplo de invocación que se muestra a continuación será de utilidad para consultar las subsanaciones finalizadas en un día concreto. Así se podrá consultar si, por algún fallo técnico, la aplicación integradora no ha recibido alguna subsanación finalizada del trámite que nos interesa. Se va a tomar como ejemplo la signatura 1903 y el día 26/01/2021.