Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

En este apartado se van a explicar diferentes casos de uso y cómo podría implementarlos una aplicación integradora.

Table of Contents


Ejemplo 1: Crear un aviso por correo electrónico

...

En este ejemplo planteamos el caso en que una aplicación, PFI por ejemplo,  desea enviar un correo al firmante propuesto cuando se crea un documento para que lo firme.

1.1 Ejemplo utilizando el método createAdvice:

Para que PFI pueda realizar la petición a SGA debe cumplir los siguientes requisitos:

...

Code Block
languagejava
titleVer invocación
collapsetrue
// Se definen los objetos a usar
ParamCreateAdvice pca = new ParamCreateAdvice();
Advice advice = new Advice();
ResultError resultError;
 
// Aplicación que realizará la petición a SGA
paramCreateAdvice.setIdApplication("PFI");

// Se rellenan los datos del aviso
advice.setApplication("PFI"); // aplicación dada de alta en SGA
advice.setEntityId(0L); // si no se especifica entidad, la entidad por defecto será la del Gobierno de Aragón (0)

// Datos del correo
advice.setAnagrama("tucorreo@oesia.com"); // correo o NIF de usuario de SIU con correo asociado
advice.setMailSubject("Asunto del correo"); // Asunto del correo enviado
advice.setDate("11/12/2018"); // Fecha en la que será enviado
 
// Datos del aviso
advice.setType("Tipo de aviso"); // Las avisos se agrupan y titulan en función a este campo
advice.setSubject("Asunto del aviso"); // Título del aviso
advice.setDescription("Descripción del aviso"); // Descripción del aviso
 
// Asignar aviso a los parámetros
pca.setoAdvice(advice);
// Indicar el usuario que genera el aviso
pca.setUser("00000000T");
 
// Petición a SGA
resultError = adviceServiceWS.createAdvice(pca);
 
// Gestión de la respuesta
if ("false".equals(resultError.getError())) {
    System.out.println("Se ha enviado el aviso");
} else {
    System.out.println("Se ha producido un error en la petición");
    if (resultError.getErrorCode() != null) {
        System.out.println("Error: " + resultError.getErrorCode() + ". Mensaje: " + resultError.getErrorMsg());
    }
}


1.2.- Ejemplo utilizando el método createAdviceSMS

Para que PFI pueda realizar la petición a SGA debe cumplir los siguientes requisitos:

...

Code Block
languagejava
titleVer invocación
collapsetrue
// Se definen los objetos a usar
ParamCreateAdviceSMS paramCreateAdviceSMS = new ParamCreateAdviceSMS();
AdviceSMS adviceSMS = new AdviceSMS();

// Aplicación que realizará la petición a SGA
paramCreateAdviceSMS.setIdApplication("PFI");
         
// Se rellenan los datos del aviso
adviceSMS.setApplication("PFI"); // aplicación dada de alta en SGA
adviceSMS.setEntityId(0L); // si no se especifica entidad, la entidad por defecto será la del Gobierno de Aragón (0)

// Datos del correo
adviceSMS.setAnagrama("tucorreo@oesia.com"); // correo o NIF de usuario de SIU con correo asociado
adviceSMS.setMailSubject("Asunto del correo"); // Asunto del correo enviado
adviceSMS.setDate("11/12/2018"); // Fecha en la que será enviado
 
// Datos del aviso
adviceSMS.setType("Tipo de aviso"); // Las avisos se agrupan y titulan en función a este campo
adviceSMS.setSubject("Asunto del aviso"); // Título del aviso
adviceSMS.setDescription("Descripción del aviso"); // Descripción del aviso

// Indicamos que la petición es para enviar un correo
adviceSMS.setRequestType(AdviceSMS.RequestType.MAIL.toString());

// Asignar aviso a los parámetros
paramCreateAdviceSMS.setAdviceSMS(adviceSMS);
// Indicar el usuario que genera el aviso
paramCreateAdviceSMS.setUser("00000000T");

// Petición a SGA
ResultErrorAdviceSMS resultErrorAdviceSMS = adviceServiceWS.createAdviceSMS(paramCreateAdviceSMS);
         
if(resultErrorAdviceSMS.getError().equals(ResultErrorAdviceSMS.NO_ERROR)) {
    System.out.println("Proceso por canal MAIL realizado correctamente");
} else {
    System.out.println("Error al realizar el proceso por canal MAIL");
    System.out.println("Código Error: " + resultErrorAdviceSMS.getMailErrorCode());
    System.out.println("Mensaje Error: " + resultErrorAdviceSMS.getMailErrorMsg());
}



Ejemplo 2: Crear un aviso con adjunto

...

Envío del documento al creador del mismo en PFI que se acaba de firmar.

...

Code Block
languagejava
titleVer invocación
collapsetrue
// Se definen los objetos a usar
ParamCreateAdviceWithAttachment pca = new ParamCreateAdviceWithAttachment();
Advice advice = new Advice();
ResultError resultError;

// Aplicación que realizará la petición a SGA
pca .setIdApplication("PFI");
         
 
// Se rellenan los datos del aviso
advice.setApplication("PFI"); // aplicación dada de alta en SGA
advice.setEntityId(0L); // si no se especifica entidad, la entidad por defecto será la del Gobierno de Aragón (0)
 
// Datos de correo
advice.setAnagrama("tucorreo@oesia.com"); // correo o NIF de usuario de SIU con correo asociado
advice.setMailSubject("Asunto del correo"); // Asunto del correo enviado
advice.setDate("11/12/2018"); // Fecha en la que será enviado
 
// Datos del aviso
advice.setType("Tipo de aviso"); // Las avisos se agrupan y titulan en función a este campo
advice.setSubject("Asunto del aviso"); // Título del aviso
advice.setDescription("Descripción del aviso"); // Descripción del aviso
 
// Asignar aviso a los parámetros
pca.setoAdvice(advice);
// Indicar el usuario que genera el aviso
pca.setUser("00000000T");
 
// Insertamos, en los parámetros, los códigos CSV de los adjuntos
List<String> attachments = new ArrayList<>();
attachments.add("CSVL916KYX34D1601PFI");
attachments.add("CSVIW2QR9J65T1C01PFI");
pca.setAttachments(attachments);
 
// Petición a SGA
resultError = adviceServiceWS.createAdviceWithAttachment(pca);
 
// Gestión de la respuesta
if ("false".equals(resultError.getError())) {
    System.out.println("Se ha enviado el aviso");
} else {
    System.out.println("Se ha producido un error en la petición");
    if (resultError.getErrorCode() != null) {
        System.out.println("Error: " + resultError.getErrorCode() + ". Mensaje: " + resultError.getErrorMsg());
    }
}




Ejemplo 3: Crear un aviso por sms

...

En este ejemplo planteamos el caso en que una aplicación, por ejemplo SSS, quiere enviar un SMS al interesado cuando se abra un periodo de subsanación a su nombre.

...

Code Block
languagejava
titleVer invocación
collapsetrue
// Se definen los objetos a usar
ParamCreateAdviceSMS paramCreateAdviceSMS = new ParamCreateAdviceSMS();
AdviceSMS adviceSMS = new AdviceSMS();

// Aplicación que realiza la petición a SGA
paramCreateAdviceSMS.setIdApplication("SSS");
         
adviceSMS.setPhoneNumber("6XXXXXXXX"); // Número de teléfono. Actualmente se permite envío a móviles españoles con 9 dígitos
adviceSMS.setTextSMS("SMS de prueba"); // Texto del SMS, máximo 160 caracteres
adviceSMS.setRequestType(AdviceSMS.RequestType.SMS.toString()); // Indicamos que es un SMS, ya que este método createAdviceSMS permite también enviar correos o ambos (correo y sms en una misma petición)

// Asignar aviso a los parámetros     
paramCreateAdviceSMS.setAdviceSMS(adviceSMS);
// Indicar el usuario que genera el aviso
paramCreateAdviceSMS.setUser("00000000T");

// Realizar petición a SGA
ResultErrorAdviceSMS resultErrorAdviceSMS = adviceServiceWS.createAdviceSMS(paramCreateAdviceSMS);

// Gestión de la respuesta
if(resultErrorAdviceSMS.getError().equals(ResultErrorAdviceSMS.NO_ERROR)) {
    System.out.println("Proceso por canal SMS realizado correctamente");
} else {
    System.out.println("Error al realizar el proceso por canal SMS");
    System.out.println("Código Error: " + resultErrorAdviceSMS.getSmsErrorCode());
    System.out.println("Mensaje Error: " + resultErrorAdviceSMS.getSmsErrorMsg());
}



Ejemplo 4:  Generar un evento

...

En este ejemplo planteamos el caso en que una aplicación, SNT por ejemplo,  quiere generar un evento cuando un ciudadano acepte o rechace una notificación electrónica, con el fin de que la aplicación que ha enviado la notificación tenga conocimiento de esto.

...

Code Block
languagejava
titleVer método de invocación
collapsetrue
public boolean sendEvent(NotificationData data){
    // Crea el objeto de la petición
    Map<String String> dataMap = new LinkedHashMap<String, String>();
    // Asignamos datos que queremos enviar en el evento. Clave y valor. La aplicación receptora sabrá las claves para obtener los valores
    dataMap.put(data.getKey1(), data.getVal1());
    
	// Crear evento (aplicación que envía, método que provoca el evento de la aplicación que envía, mapeo de datos) 
    Event event = new Event(data.getAppFrom(), data.getMethod(), dataMap);
    // Asignar evento a los parámetros e indicar la aplicación que va a recibir (si se quiere enviar a varias aplicaciones habrá que dejar el campo a null)
    ParamCreateEvent param = new ParamCreateEvent(event, data.getAppTo());
    // Aplicación que realiza la petición a SGA
    param.setIdApplication("SNT");
    
    // Realizar petición a SGA
	ResultError response = eventService.sendNotification(paramCreateEvent);
     
     if (response.getError().equals(Boolean.FALSE.toString().toLowerCase())) {
        System.out.println("Evento enviado correctamente.);			
		return Boolean.TRUE;
	} else {
		System.out.println("Error al enviar evento. Código error: " + response.getErrorCode() + ". Mensaje error: " + response.getErrorMsg());
		return Boolean.FALSE;	
	}
    
}


Ejemplo 5: Procesar un evento de una aplicación

...

SNT genera un evento cuando se acepta o rechaza una notificación. En este ejemplo planteamos el caso en que una aplicación 'APP_B' tiene un servicio REST publicado y está suscrito a estos eventos

...