Versions Compared

Key

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

En este apartado se describe cómo implementar los principales casos de uso que se pueden dar en la integración con SNT

...


Code Block
languagejava
firstline1
titleEjemplo de código
collapsetrue
// Objetos del servicio
ParamCreateIssueRegisterNotificationWithOrganism paramCreateIssueRegisterNotification = new ParamCreateIssueRegisterNotificationWithOrganism();
ResultCreateIssueRegisterNotification resultCreateIssueRegisterNotification;

// 1) SE INDICAN LOS RECEPTORES DE LA NOTIFICACIÓN
//Se crea la lista de Receivers
DraftReceiver[] draftReceivers = new DraftReceiver[1];

// Se crea un receiver
DraftReceiver draftReceiver = new DraftReceiver();
draftReceiver.setReceiverId("11111111H");
draftReceiver.setName("name");
draftReceiver.setSurname1("surname1");
draftReceiver.setSurname2("surname2");
draftReceiver.setAddress("address");
draftReceiver.setEmail("correo@electronico.com");
draftReceivers[0] = draftReceiver;

// 2) SE INDICAN LOS DATOS ESPECÍFICOS DE LA NOTIFICACIÓN
Data[] specificDataList=new Data[4];
specificDataList[0] = new Data(SNTClientConstants.PARAM_NAME_CSV_NOTIFICATION_EXTERNAL,"CSV0W0P5HO55JXXXYPFI"); // Indicamos el documento de la notificacion (obligatorio)
specificDataList[1] = new Data("CSV_Attached_1","CSV0W0P5HO55JXXXXPFI"); // Indicamos adjunto 1 (no obligatorio)
specificDataList[2] = new Data("CSV_Attached_2","CSV0W0P5HO55JXXXXPFI"); // Indicamos adjunto 2 (no obligatorio)
specificDataList[3] = new Data("keyA3","valueA3"); // Podemos indicar otros valores 

// 3) SE INDICA EL ORGANISMO APORTADOR DE LA NOTIFICACIÓN
Organism organism = new Organism(); // Organismo aportador de la notificación
organism.setCode("ORG14668");
organism.setName("Departamento de Economía y Hacienda");

// 4) SE INDICAN LOS ORGANISMOS GESTORES DE LA NOTIFICACIÓN
// Se crea la lista de organismos gestores para que sea un borrador de tipo visibilidad compartida
// (si la lista estuviese vacía, la notificación se crearía con visibilidad limitada)
OrganismVisibility[] organismVisibilities = new OrganismVisibility[1];

OrganismVisibility organismVisibility = new OrganismVisibility();
organismVisibility.setOrganismCode("ORG14668"); 
organismVisibility.setTipoRelacion("ORGANISMO_GESTOR");
organismVisibilities[0] = organismVisibility; // Primer organismo gestor

// 5) SE RELLENA EL OBJETO DRAFT
DraftCreateIssueWithOrganism draft = new DraftCreateIssueWithOrganism();
draft.setDossier("20110224-01");
draft.setIssuerId("00000000T"); // Usuario emisor de la notificación
draft.setCreatorId("00000000T"); // Usuario creador de la notificación
draft.setDescription("20110224-01");
draft.setOrganism(organism);
draft.setSpecificDataList(specificDataList);
draft.setDraftReceiversList(draftReceivers);
draft.setExpireTime(new Integer(10));
draft.setProcedure("1");
draft.setOrganismVisibilityList(organismVisibilities);

//Se rellena el objeto ParamCreateIssueNotification 
paramCreateIssueRegisterNotification.setDraft(draft);

// 6) SE HACE LA INVOCACIÓN
try {
    System.out.println("Se llama a SNT para emitir la notificación...");
    resultCreateIssueRegisterNotification = draftClient.createIssueRegisterNotificationWithOrganism(paramCreateIssueRegisterNotification);
    System.out.println("Fin llamada a SNT");

    if(resultCreateIssueRegisterNotification!=null &&resultCreateIssueRegisterNotification.getNotificationId()!=null){
        System.out.println("Se ha emitido correctamente la notificación, con ID: "+resultCreateIssueRegisterNotification.getNotificationId());
    } 

} catch (SNTException e) {
    System.out.println("Se ha producido un error en la emisión: ["+e.getCode()+"] "+e.getExtraInfo());
}


...

draftClient hace referencia al cliente de borradores de notificaciones que se habrá configurado previamente siguiendo el ejemplo de Anexo I

2.1.- Creación del borrador

...

3.1.- Consulta de notificación por ID

En este ejemplo vamos a consultar una notificación a través de su ID. La ID la obtenemos en el momento de creación de la notificación en la respuesta del servicio.

notificationClient hace referencia al cliente de borradores de notificaciones que se habrá configurado previamente siguiendo el ejemplo de Anexo I



Code Block
languagejava
firstline1
titleEjemplo de invocación
collapsetrue
Long id = 1385L; // ID de la notificación
ParamGetNotification paramGetNotification = new ParamGetNotification();
paramGetNotification.setNotificationId(id);
ResultGetNotification resultGetNotification = notificationClient.getNotification(paramGetNotification);
if(resultGetNotification!=null && resultGetNotification.getNotification()!=null){
	System.out.println(resultGetNotification.getNotification().toString());
} else {
	System.out.println("No se han encontrado resultados");
}


...

3.2.- Consulta de notificaciones por filtro

En este ejemplo vamos a consultar una lista de notificaciones a través de filtros.

Se van a filtrar todas las notificaciones creadas por el usuario 00000000T en los dos días anteriores a la fecha actual.

notificationClient hace referencia al cliente de borradores de notificaciones que se habrá configurado previamente siguiendo el ejemplo de Anexo I


Code Block
languagejava
firstline1
titleEjemplo de invocación
collapsetrue
// FILTROS
String creatorId = "00000000T";
Calendar calendar = Calendar.getInstance();
Calendar hoy = calendar; // Día actual
Calendar calendarAltered = Calendar.getInstance();
calendarAltered.add(Calendar.DATE, -2); // Se restan 2 días a la fecha actual
Calendar diaAnterior = calendarAltered;
		
ParamGetNotificationList paramGetNotificationList = new ParamGetNotificationList();
NotificationSearch notificationSearch = new NotificationSearch();
notificationSearch.setCreatorId(creatorId);
notificationSearch.setMaxNotificationDate(hoy);
notificationSearch.setMinNotificationDate(diaAnterior);
		
paramGetNotificationList.setNotificationSearch(notificationSearch);
		
ResultGetNotificationList resultGetNotification = notificationClient.getNotificationList(paramGetNotificationList);
if(resultGetNotification!=null && resultGetNotification.getNotificationList() != null && resultGetNotification.getNotificationList().length > 0){
	for (Notification notification : resultGetNotification.getNotificationList()) {
		System.out.println(notification.toString());
	}
} else {
	System.out.println("No se han encontrado resultados");
}


...

En primer lugar realizaremos la creación del borrador:

communicationNTDraftClient hace referencia al cliente de borradores de notificaciones que se habrá configurado previamente siguiendo el ejemplo de Anexo I


Code Block
languagejava
firstline1
titleEjemplo de código
collapsetrue
// objetos del servicio
ParamCreateCommunicationNTDraftWithOrganism paramCreateDraft = new ParamCreateCommunicationNTDraftWithOrganism();
ResultCreateCommunicationNTDraft resultCreateDraft;
 
// 1) SE INDICAN LOS RECEPTORES DE LA COMUNICACIÓN
//Se crea un receiver
DraftReceiver draftReceiver = new DraftReceiver();
draftReceiver.setReceiverId ("11111111H");
draftReceiver.setName("name");
draftReceiver.setSurname1("surname1");
draftReceiver.setSurname2("surname2");
draftReceiver.setAddress("address");
draftReceiver.setEmail("email@email.com");
	 
// Se crea la lista de Receivers
DraftReceiver[] draftReceivers = new DraftReceiver[1];
draftReceivers[0] = draftReceiver;
		 
// 2) SE INDICAN LOS DATOS ESPECÍFICOS DE LA COMUNICACIÓN
Data[] specificDataList=new Data[4];
specificDataList[0] = new Data(SNTClientConstants.PARAM_NAME_CSV_NOTIFICATION_EXTERNAL,"CSV0W0P5HO55JXXXYPFI"); // Indicamos el documento de la notificacion (obligatorio)
specificDataList[1] = new Data("CSV_Attached_1","CSV0W0P5HO55JXXXXPFI"); // Indicamos adjunto 1 (no obligatorio)
specificDataList[2] = new Data("CSV_Attached_2","CSV0W0P5HO55JXXXXPFI"); // Indicamos adjunto 2 (no obligatorio)
specificDataList[3] = new Data("keyA3","valueA3"); // Podemos indicar otros valores 
		 
// 3) SE INDICA EL ORGANISMO APORTADOR DE LA COMUNICACIÓN
Organism organism = new Organism();
organism.setCode("ORG14668");
	  
// 4) SE INDICAN LOS ORGANISMOS GESTORES DE LA COMUNICACIÓN
// Se crea la lista de organismos gestores para que sea un borrador de  tipo visibilidad compartida
// (si la lista estuviese vacía, la comunicación se crearía con visibilidad limitada)
OrganismVisibility[] organismVisibilities = new OrganismVisibility[1];
			 
OrganismVisibility organismVisibility = new OrganismVisibility();
organismVisibility.setOrganismCode("ORG14668");        
organismVisibility.setTipoRelacion("ORGANISMO_GESTOR");
organismVisibilities[0] = organismVisibility;
 
// 5) SE RELLENA EL OBJETO DRAFT
CommunicationNTDraftWithOrganism draftCreate = new CommunicationNTDraftWithOrganism();
draftCreate.setCreatorId("00000000T");
draftCreate.setDescription("20110224-01");
draftCreate.setOrganism(organism);
draftCreate.setSpecificDataList(specificDataList);
draftCreate.setDraftReceiversList(draftReceivers);
draftCreate.setContent("20110224-01");
draftCreate.setProcedure("1" );
draftCreate.setOrganismVisibilityList(organismVisibilities);
 
// Se rellena el objeto ParamCreateDraft
paramCreateDraft.setCommunicationNTDraft(draftCreate);
 
// 6) SE HACE LA INVOCACIÓN
try {
	System.out.println("Se llama a SNT para crear el borrador...");
	resultCreateDraft = communicationNTDraftClient.createCommunicationNTDraftWithOrganism(paramCreateDraft);
	System.out.println("Fin llamada a SNT");
	
	if(resultCreateDraft!=null && resultCreateDraft.getCommunicationNTDraftId()!=null){
		System.out.println("Se creado correctamente el borrador, con ID: "+resultCreateDraft.getCommunicationNTDraftId());
		return resultCreateDraft.getCommunicationNTDraftId();
	} 
	
} catch (SNTException e) {
	System.out.println("Se ha producido un error en la creacion: ["+e.getCode()+"] "+e.getExtraInfo());
	
}

return null;


...

En este paso realizamos la emisión y registro del borrador

communicationNTDraftClient hace referencia al cliente de borradores de notificaciones que se habrá configurado previamente siguiendo el ejemplo de Anexo I


Code Block
languagejava
titleEjemplo de código
collapsetrue
//1) SE EMITE LA NOTIFICACION Y SE REALIZA ASIENTO REGISTRAL DE SALIDA
// Objetos del servicio
ParamSendRegisterCommunicationNTDraft paramIssueRegisterNotification = new ParamSendRegisterCommunicationNTDraft();
ResultSendRegisterCommunicationNTDraft result = new ResultSendRegisterCommunicationNTDraft();	

// Se indica el Id de la solicitud a actualizar
paramIssueRegisterNotification.setCommunicationNTDraftId(actualizacionBorradorComunicacion());
// Se indica el emisor de la comunicacion
paramIssueRegisterNotification.setIssuerId("00000000T");
// Se indica el identificador de la persona invocante
paramIssueRegisterNotification.setInvokingId("00000000T");
// Se indica el organismo de registro de salida
paramIssueRegisterNotification.setOrganismRegister("ORG11335");
		
// 2) SE HACE LA INVOCACIÓN
try {
	System.out.println("Se llama a SNT para emitir el borrador...");
	result = communicationNTDraftClient.sendRegisterCommunicationNTDraft(paramIssueRegisterNotification);
	System.out.println("Fin llamada a SNT");
	
	if(result!=null && result.getCommunicationNTId()!=null){
		System.out.println("Se creado correctamente la comunicación, con ID: "+result.getCommunicationNTId());
	
	} 
	
} catch (SNTException e) {
	System.out.println("Se ha producido un error en el envío: ["+e.getCode()+"] "+e.getExtraInfo());
	
}	


...

5.1.- Consulta de comunicación por ID

En este ejemplo vamos a consultar una comunicación a través de su ID. La ID la obtenemos en el momento de creación de la comunicación en la respuesta del servicio.

communicationNTClient hace referencia al cliente de borradores de notificaciones que se habrá configurado previamente siguiendo el ejemplo de Anexo I


Code Block
languagejava
firstline1
titleEjemplo de invocación
collapsetrue
Long id = 1411L; // ID de la comunicación
ParamGetCommunicationNT paramGetCommunicationNT = new ParamGetCommunicationNT();
paramGetCommunicationNT.setCommunicationNTId(id);
ResultGetCommunicationNT resultGetCommunication = communicationNTClient.getCommunicationNT(paramGetCommunicationNT);
if(resultGetCommunication!=null && resultGetCommunication.getCommunicationNT()!=null){
	System.out.println(resultGetCommunication.getCommunicationNT().toString());
} else {
	System.out.println("No se han encontrado resultados");
}


...

5.2.- Consulta de comunicaciones por filtro

En este ejemplo vamos a consultar una lista de comunicaciones a través de filtros

Se van a filtrar todas las comunicaciones creadas por el usuario 00000000T en los dos días anteriores a la fecha actual.

communicationNTClient hace referencia al cliente de borradores de notificaciones que se habrá configurado previamente siguiendo el ejemplo de Anexo I


Code Block
languagejava
firstline1
titleEjemplo de invocación
collapsetrue
// FILTROS
String creatorId = "00000000T";
Calendar calendar = Calendar.getInstance();
Calendar hoy = calendar; // Día actual
Calendar calendarAltered = Calendar.getInstance();
calendarAltered .add(Calendar.DATE, -2); // Se restan 2 días a la fecha actual
Calendar diaAnterior = calendarAltered ;
		
ParamGetCommunicationNTList paramGetCommunicationList = new ParamGetCommunicationNTList();
CommunicationNTSearch notificationSearch = new CommunicationNTSearch();
notificationSearch.setCreatorId(creatorId);
notificationSearch.setMaxNotificationDate(hoy);
notificationSearch.setMinNotificationDate(diaAnterior);
		
paramGetCommunicationList.setCommunicationNTSearch(notificationSearch);
		
ResultGetCommunicationNTList resultGetNotification = communicationNTClient.getCommunicationNTList(paramGetCommunicationList);
if(resultGetNotification != null && resultGetNotification.getCommunicationNTList() != null && resultGetNotification.getCommunicationNTList().length > 0){
	for (CommunicationNT communication : resultGetNotification.getCommunicationNTList()) {
		System.out.println(communication.toString());
	}
} else {
	System.out.println("No se han encontrado resultados");
}


6.- ANEXO I - Configuración del cliente
Anchor
anexoI
anexoI

...

A continuación ofrecemos dos modos de configurar las instancias de los agentes de acceso

6.1.- Configuración del framework Spring y librerias Maven

...