INDICE
1.- Servicios SOAP
1.1.- Servicio EntryService
En los siguientes apartados se especifican tanto los tipos de datos utilizados, como los métodos que la componen, detallando los parámetros y mostrando ejemplos de uso.
1.1.1- Método 'listEntry'
Devuelve el listado con los datos de los asientos registrales que se corresponden a los criterios de búsqueda especificados.
...
1.1.1.1- Signatura
ResultListEntries listEntry(String idApplication, ParamListEntries param) throws RemoteException, SRTException
1.1.1.2.- Parámetros de invocación
...
Ordenación de las columnas
ASCENDENTE = true
DESCENDENTE = false
...
El emisor (Sender), representante del emisor (SenderAgent), receptor/es (Receivers) y representante del receptor(ReceiverAgent) pueden ser de tipo Person, Organism, Company y UndefinedActor
Solamente se debería utilizar UndefinedActor para el Sender.
...
NOTA: En métodos en los que se cree un asiento registral, solamente se debería utilizar este tipo UndefinedActor para el Sender. Por ejemplo, en un caso en el que el interesado es menor, el Sender (el menor) sería de tipo UndefinedActor y el representante del menor (SenderAgent) que presenta el documento sería de tipo Person.
...
1.1.1.3.- Parámetros de respuesta
...
1.1.1.4.- Validaciones
...
1.1.1.5.- Códigos error
...
1.1.1.6.- Ejemplo de invocación
Code Block |
---|
language | java |
---|
title | Ejemplo de invocación |
---|
collapse | true |
---|
|
ParamListEntries paramListEntries = new ParamListEntries();
ResultListEntries entries = new ResultListEntries();
Info info = new Info();
// Código de organismo, es un atributo que el integrador deberá pedir
al responsable funcional que le ha solicitado la aplicación
info.setOrganism("ORGXXXXX");
//Código de Libro de registro
info.setRegister("REG_XXX");
// Código de procedimiento, es un atributo que el integrador deberá
pedir al responsable funcional que le ha solicitado la aplicación
info.setProcessType("xxx");
//Tipo de Entry (Entrada(0), Salida(1))
info.setRequestType(SRTClientConstants.REQUEST_TYPE_INPUT);
//Fecha de creación del Entry
Calendar requestTime = Calendar.getInstance();
info.setRequestTime(requestTime);
paramListEntries.setInfo(info);
entries = entryClient.listEntry(paramListEntries); |
1.1.2.- Método 'getEntryDetails'
Obtiene los datos sobre un asiento registral, a partir del identificador de su libro de registro y del número de asiento registral.
...
1.1.2.1.- Signatura
ResultGetEntryDetails getEntryDetails(String idApplication, ParamGetEntryDetails param) throws RemoteException, SRTException
1.1.2.2.- Parámetros de invocación
...
1.1.2.3.- Parámetros de respuesta
...
1.1.2.4.- Validaciones
...
1.1.2.5.- Códigos error
...
1.1.2.6.- Ejemplo de invocación
Code Block |
---|
language | java |
---|
title | Ejemplo de invocación |
---|
collapse | true |
---|
|
ParamGetEntryDetails paramGetEntryDetails = new
ParamGetEntryDetails();
ResultGetEntryDetails resultGetEntryDetails = new
ResultGetEntryDetails();
//Identificador de Libro de Registro
paramGetEntryDetails.setRegisterId("REG_XXX");
//Código del Asiento Registral
paramGetEntryDetails.setEntryId("PREF_XXXXXXXXXX/SUF");
//Tipo de Entry (Entrada(0), Salida(1))
paramGetEntryDetails.setRequestType(SRTClientConstants.REQUEST_TYPE_INPUT);
//paramGetEntryDetails.setInvokginId(null);
paramGetEntryDetails.setInvokginId("NIF"));
resultGetEntryDetails = entryClient.getEntryDetails(paramGetEntryDetails); |
1.1.3.- Método 'getEntryAttachment'
Devuelve los bytes del fichero adjunto indicado en el criterio. (Método DEPRECADO). La recomendación es realizar esta integración mediante CCSV como se indica en ANEXO I: PROCESO DE INTEGRACIÓN MEDIANTE CCSV
...
1.1.3.1.- Signatura
DataHandler getEntryAttachment(String idApplication, ParamGetEntryAttachment param) throws RemoteException, SRTException
1.1.3.2.- Parámetros de invocación
...
1.1.3.3.- Parámetros de respuesta
...
1.1.3.4.- Validaciones
...
1.1.3.5.- Códigos error
...
1.1.3.6.- Ejemplo de invocación
Code Block |
---|
language | java |
---|
title | Ejemplo de invocación |
---|
collapse | true |
---|
|
ParamGetEntryAttachment paramGetEntryAttachment = new
ParamGetEntryAttachment();
//Identificador de Libro de Registro
paramGetEntryAttachment.setRegisterId("REG_xxx");
//Código del Asiento Registral
paramGetEntryAttachment.setEntryId("PREF_XXXXXXXXX/SUF");
//Identificador del adjunto
paramGetEntryAttachment.setIdAttachment("idAttachment");
//Tipo de Entry (Entrada(0), Salida(1))
paramGetEntryAttachment.setRequestType(SRTClientConstants.REQUEST_TYPE_INPUT);
paramGetEntryAttachment.setInvokingId(null);
InputStream inputStream = entryClient.getEntryAttachment(paramGetEntryAttachment); |
1.1.4.- Método 'getEntryAttachmentByFileRef'
...
1.1.4.1.- Signatura
String getEntryAttachmentByFileRef(String idApplication,ParamGetEntryAttachment param) throws RemoteException, SRTException
1.1.4.2.- Parámetros de invocación
...
1.1.4.3.- Parámetros de respuesta
...
1.1.4.4.- Validaciones
...
1.1.4.5.- Códigos error
...
1.1.4.6.- Ejemplo de invocación
Code Block |
---|
language | java |
---|
title | Ejemplo de invocación |
---|
collapse | true |
---|
|
ParamGetEntryAttachment paramGetEntryAttachment = new
ParamGetEntryAttachment();
//Identificador de Libro de Registro
paramGetEntryAttachment.setRegisterId("REG_XXX");
//Código del Asiento Registral
paramGetEntryAttachment.setEntryId("PREF_XXXXXXXXX/SUF");
//Identificador del adjunto
paramGetEntryAttachment.setIdAttachment("idAttachment");
//Tipo de Entry (Entrada(0), Salida(1))
paramGetEntryAttachment.setRequestType(SRTClientConstants.REQUEST_TYPE_INPUT);
paramGetEntryAttachment.setInvokingId(null);
InputStream inputStream = entryClient.getEntryAttachmentByFileRef(paramGetEntryAttachment); |
1.1.5.- Método 'getEntrySpecificData'
Información general del asiento y datos específicos en 'specificdata'
...
1.1.5.1.- Signatura
ResultGetEntrySpecificData getEntrySpecificData(String idApplication, ParamGetEntryDetails param)throws RemoteException, SRTException
1.1.5.2.- Parámetros de invocación
...
1.1.5.3.- Parámetros de respuesta
...
1.1.5.4.- Validaciones
...
1.1.5.5.- Códigos error
...
1.1.5.6.- Ejemplo de invocación
Code Block |
---|
language | java |
---|
title | Ejemplo de invocación |
---|
collapse | true |
---|
|
ResultGetEntrySpecificData result = new ResultGetEntrySpecificData();
ParamGetEntryDetails param = new ParamGetEntryDetails();
//Identificador de Libro de Registro
paramGetEntryAttachment.setRegisterId("REG_xxx");
//Código del Asiento Registral
paramGetEntryAttachment.setEntryId("PREF_XXXXXXXXX/SUF");
//Tipo de Entry (Entrada(0), Salida(1))
paramGetEntryAttachment.setRequestType(SRTClientConstants.REQUEST_TYPE_INPUT);
result = entryClient.getEntrySpecificData(param); |
1.1.6.- Método 'sendEntry'
Alta del asiento registral. (Método DEPRECADO). Se recomienda utilizar el método sendFullEntry (apartado 1.1.7)
...
1.1.6.1.- Signatura
ResultSendEntry sendEntry(String idApplication, ParamSendEntry param, FileInfo fileInfo, DataHandler file)throws RemoteException, SRTException
1.1.6.2.- Parámetros de invocación
...
Clave → 255 caracteres
Valor → 255 caracteres
...
Organismo productor u organismo responsable del procedimiento (en SIU). USOS:
1) Se utiliza para obtener el órgano productor de un documento asociado a un procedimiento, con el fin de introducirlo como metadato de los documentos asociados a ese procedimiento (a la hora de guardar en el gestor documental - a través de CCSV). NO Titulo: Manual Integración
SRT v3.12 Página 44 de 129 Construyendo Europa desde Aragón
2) Saber qué procedimientos tiene asignados un organismo.
...
El emisor (Sender), agente emisor (SenderAgent) y receptor/es (Receivers) pueden ser de tipo Person, Organism, Company y UndefinedActor
Solamente se debe utilizar UndefinedActor para el Sender.
...
NOTA: En métodos en los que se cree un asiento registral, solamente se debería utilizar este tipo UndefinedActor para el Sender. Por ejemplo, en un caso en el que el interesado es menor, el Sender (el menor) sería de tipo UndefinedActor y el representante del menor (SenderAgent) que presenta el documento sería de tipo Person.
...
1.1.6.3.- Parámetros de respuesta
...
1.1.6.4.- Validaciones
...
1.1.6.5.- Códigos error
...
1.1.6.6.- Ejemplo de invocación
Code Block |
---|
language | java |
---|
title | Ejemplo de invocación |
---|
collapse | true |
---|
|
ResultSendEntry resultSendEntry = new ResultSendEntry ();
ParamSendEntry paramSendEntry = new ParamSendEntry();
Info info = new Info();
Request request = new Request();
Person receiver = new Person();
Actor senderAgent = new Actor();
// Asunto del Entry
info.setSubject("Asunto");
// Código de Organismo, es un atributo que el integrador deberá pedir
al responsable funcional que le ha solicitado la aplicación
info.setOrganism("ORGXXXXX");
// Tipo de Entry (Entrada(0)/Salida(1))
info.setRequestType("1");
// Fecha de creación del Entry
Calendar requestTime = Calendar.getInstance();
info.setRequestTime(requestTime);
// Código de Procedimiento, es un atributo que el integrador deberá
pedir al responsable funcional que le ha solicitado la aplicación
info.setProcessType("tramite_pruebas");
// Fichero a enviar
byte[] arrayFile = FileCopyUtils.copyToByteArray(new File("URL
Fichero"));
String fileSoli = BASE64Encoder.encode(arrayFile);
// Firma del fichero a enviar
byte[] arraySign = FileCopyUtils.copyToByteArray(new File("URL
Firma"));
String detachedSignature = BASE64Encoder.encode(arraySign);
// Formato del fichero
request.setMimeType("Formato");
// Fichero
request.setRequest(fileSoli);
// Nombre del fichero
request.setFileName("Nombre.Extension");
// Firma
request.setDetachedSignature(detachedSignature);
// Formato de Firma
request.setFormatSignature("Formato Firma");
// Organismo Emisor
Organism sender = new Organism("ORGXXXXX", "Nombre Organismo");
// Datos del Emisor
senderAgent = new Person("NIF/CIF","Name","Surname1","Surname2", "Email","Address");
// Datos del Destinatario
receiver.setAddress("Address");
receiver.setGivenName("Name");
receiver.setMail("Email");
receiver.setNif("NIF/CIF");
receiver.setSurname1("surname1");
receiver.setSurname2("surname2");
Actor[] receiverList = new Actor[1];
receiverList[0] = (Actor)receiver;
// Datos especificos
Data[] dataList = new Data[2];
dataList[0] = new Data("Name1","Value1");
dataList[1] = new Data("Name2","Value2");
paramSendEntry.setInfo(info);
paramSendEntry.setRequest(request);
paramSendEntry.setSender(sender);
paramSendEntry.setReceiver(receiverList);
paramSendEntry.setSpecificData(dataList);
paramSendEntry.setSenderAgent (senderAgent);
paramSendEntry.setInvokingId(null);
// Fichero Adjunto
FileDataSource dataSource = new FileDataSource(new File("URLAdjunto"));
DataHandler file = new DataHandler(dataSource);
FileInfo fileInfo = new FileInfo();
// Nombre del Fichero Adjunto
fileInfo.setName("Nombre.Extension");
// Descripción del Fichero Adjunto
fileInfo.setDescription ("testing document");
// Tamaño del Fichero Adjunto
fileInfo.setFileSize(new Long(dataSource.getFile().length()));
// Formato del Fichero Adjunto
fileInfo.setMimeType("Formato");
resultSendEntry = entryClient.sendEntry(paramSendEntry, fileInfo, file); |
1.1.7.- Método 'sendFullEntry'
Alta de asiento registral. Permite hacerlo tanto con ficheros adjuntos (bytes), que es la forma no recomendada, como mediante la integración a través de CCSV (la recomendada y descrita en el apartado ANEXO I:PROCESO DE INTEGRACIÓN MEDIANTE CCSV)
...
1.1.7.1.- Signatura
ResultSendFullEntry sendFullEntry(String idApplication,ParamSendFullEntry param, FileInfo fileInfo, DataHandler file) throws RemoteException, SRTException
1.1.7.2.- Parámetros de invocación
...
Clave → 255 caracteres
Valor → 255 caracteres
...
El emisor (Sender), representante del emisor (SenderAgent), receptor/es (Receivers) y representante del receptor(ReceiverAgent) pueden ser de tipo Person, Organism, Company y UndefinedActor
Solamente se debería utilizar UndefinedActor para el Sender.
...
NOTA: En métodos en los que se cree un asiento registral, solamente se debería utilizar este tipo UndefinedActor para el Sender. Por ejemplo, en un caso en el que el interesado es menor, el Sender (el menor) sería de tipo UndefinedActor y el representante del menor (SenderAgent) que presenta el documento sería de tipo Person.
...
1.1.7.3.- Parámetros de respuesta
...
1.1.7.4.- Validaciones
...
1.1.7.5.- Códigos error
...
1.1.7.6.- Ejemplo de invocación
Code Block |
---|
language | java |
---|
title | Ejemplo de invocación |
---|
collapse | true |
---|
|
// IMPORTANTE: Para más información ver anexo I
ResultSendFullEntry resultSendFullEntry = new ResultSendFullEntry ();
ParamSendFullEntry paramSendFullEntry = new ParamSendFullEntry();
Info info = new Info();
// Asunto del Entry
info.setSubject("Asunto");
// Código de Organismo, es un atributo que el integrador deberá pedir
al responsable funcional que le ha solicitado la aplicación
info.setOrganism("ORGXXXXX");
// Tipo de Entry (Entrada(0)/Salida(1))
info.setRequestType(SRTClientConstants.REQUEST_TYPE_xxx);
// Fecha de creación del Entry
Calendar requestTime = Calendar.getInstance();
info.setRequestTime(requestTime);
// Código de Procedimiento, es un atributo que el integrador deberá
pedir al responsable funcional que le ha solicitado la aplicación
info.setProcessType("xxx");
// Fichero a enviar
byte[] arrayFile = FileCopyUtils.copyToByteArray(new File("URL
Fichero"));
String fileSoli = BASE64Encoder.encode(arrayFile);
// Firma del fichero a enviar
byte[] arraySign = FileCopyUtils.copyToByteArray(new File("URL
Firma"));
String detachedSignature = BASE64Encoder.encode(arraySign);
RequestPromoter request = new RequestPromoter();
//Formato del Documento
request.setMimeType("Formato");
//Documento
request.setRequest(fileSoli);
//Nombre del Documento
request.setFileName("Name");
//Firma
request.setDetachedSignature(detachedSignature);
//Formato de Firma
request.setFormatSignature(SRTClientConstants.SIGN_TYPE_xxx);
//Organismo Emisor
Organism sender = new Organism("ORGXXXXX");
Actor senderAgent = new Actor();
//Datos Emisor
senderAgent = new
Person("NIF/CIF","Name","surmane1","surname2","Email","Adress");
Person receiver = new Person();
//Datos Destinatario
receiver.setAddress("Adress");
receiver.setGivenName("Name");
receiver.setMail("Email");
receiver.setNif("NIF/CIF");
receiver.setSurname1("surname1");
receiver.setSurname2("surname2");
Actor[] receiverList = new Actor[1];
receiverList[0] = (Actor)receiver;
// Datos especificos
Data[] dataList = new Data[3];
dataList[0] = new Data("TypeRegister ", "E");
dataList[1] = new Data("Name2", "Value2");
dataList[2] = new Data(SRTClientConstants.SPECIFIC_DATA_NAME_XXX,"Value3");
paramSendFullEntry.setInfo(info);
paramSendFullEntry.setRequestPromoter(request);
paramSendFullEntry.setSender(sender );
paramSendFullEntry.setReceiver(receiverList);
paramSendFullEntry.setSpecificData(dataList);
paramSendFullEntry.setSenderAgent(senderAgent);
paramSendFullEntry.setInvokingId("NIF");
// Adjunto Firmado
FileDataSource dataSource = new FileDataSource(new File("URLAdjunto"));
DataHandler file = new DataHandler(dataSource);
FileInfo fileInfo = new FileInfo();
// Nombre del Documento
fileInfo.setName("Nombre+"."+Extension");
// Descripción del Documento
fileInfo.setDescription ("Descripcion");
// Tamaño del Documento en bytes
fileInfo.setFileSize("Tamaño");
// Formato del Documento (mime-type)
fileInfo.setMimeType("Formato");
// Formato de Firma
fileInfo.setFormatSignature(SRTClientConstants.SIGN_TYPE_xxx);
resultSendFullEntry = entryClient.sendFullEntry(paramSendFullEntry,fileInfo, file); |
1.1.8.- Método 'sendEntryOnlySaveReceipt'
Alta de asiento registral, sin que se almacene la solicitud (bytes) ni sus posibles adjuntos en el Sistema de Registro Telemático. Sólo se almacena en CCSV el fichero del recibo de registro, devolviéndose su contenido a la aplicación invocante. Se describe la integración con este método en ANEXO II: PROCESO DE INTEGRACIÓN MEDIANTE SISTEMA EXTERNO
...
1.1.8.1.- Signatura
public ResultSendEntryOnlySaveReceipt sendEntryOnlySaveReceipt(String idApplication,ParamSendEntryOnlySaveReceipt param) throws SRTException
1.1.8.2.- Parámetros de invocación
...
Clave → 255 caracteres
Valor → 255 caracteres
...
El emisor (Sender), representante del emisor (SenderAgent), receptor/es (Receivers) y representante del receptor(ReceiverAgent) pueden ser de tipo Person, Organism, Company y UndefinedActor
Solamente se debería utilizar UndefinedActor para el Sender.
...
NOTA: En métodos en los que se cree un asiento registral, solamente se debería utilizar este tipo UndefinedActor para el Sender. Por ejemplo, en un caso en el que el interesado es menor, el Sender (el menor) sería de tipo UndefinedActor y el representante del menor (SenderAgent) que presenta el documento sería de tipo Person.
...
1.1.8.3.- Parámetros de respuesta
...
1.1.8.4.- Validaciones
...
1.1.8.5.- Códigos error
...
1.1.8.6.- Ejemplo de invocación
Code Block |
---|
language | java |
---|
title | Ejemplo de invocación |
---|
collapse | true |
---|
|
ResultSendEntryOnlySaveReceipt resultSendEntryOnlySaveReceipt = new
ResultSendEntryOnlySaveReceipt ();
ParamSendEntryOnlySaveReceipt paramSendEntryOnlySaveReceipt = new
ParamSendEntryOnlySaveReceipt();
//Se rellena el 'Info'
Info info = new Info();
info.setSubject(“Asunto”);
// Código de organismo, es un atributo que el integrador deberá pedir al
responsable funcional que le ha solicitado la aplicación
info.setOrganism(“ORGXXXXX”);
// Tipo de Entry (Entrada(0)/Salida(1))
info.setRequestType(SRTClientConstants.REQUEST_TYPE_INPUT);
Calendar requestTime = Calendar.getInstance();
info.setRequestTime(requestTime);
// Código de procedimiento, es un atributo que el integrador deberá
pedir al responsable funcional que le ha solicitado la aplicación
info.setProcessType(“xxx”);
//Se rellena el 'sender'
Organism sender = new Organism(“ORGXXXXX”);
//Se rellena el 'senderAgent'
Actor senderAgent = new Actor();
senderAgent = new Person(“NIF/CIF”, “Name”, “surmane1”, “surname2”,“Email”, “Adress”);
//Se rellena el 'receiver'
Actor[] receiver = new Actor[1];
Person person = new Person();
person.setAddress (“Adress”);
person.setGivenName(“Name”);
person.setMail(“Email”);
person.setNif(“NIF/CIF”);
person.setSurname1(“surmane1”);
person.setSurname2(“surname2”);
receiver[0] = person;
//Se rellena el 'dataSpecific'
Data[] dataList = new Data[3];
dataList[0] = new Data("TypeRegister ", "E");
dataList[1] = new Data("Name2", "Value2");
dataList[2] = new Data(SRTClientConstants.SPECIFIC_DATA_NAME_XXX,"Value3");
//Se rellena el 'request'
RequestPromoter request = new RequestPromoter();
request.setMimeType (“Formato”);
request.setRequest (null);
request.setFileName (“Name”);
request.setDetachedSignature(null);
request.setFormatSignature (null);
paramSendEntryOnlySaveReceipt.setInfo(info);
paramSendEntryOnlySaveReceipt.setReceiver(receiver);
paramSendEntryOnlySaveReceipt.setSender(sender);
paramSendEntryOnlySaveReceipt.setSpecificData(dataList);
paramSendEntryOnlySaveReceipt.setInvokingId("NIF");
if(sendSenderAgent){
paramSendEntryOnlySaveReceipt.setSenderAgent(senderAgent);
}
paramSendEntryOnlySaveReceipt.setRequestPromoter(request);
resultSendEntryOnlySaveReceipt = entryClient.sendEntryOnlySaveReceipt(paramSendEntryOnlySaveReceipt);
return resultSendEntryOnlySaveReceipt; |
1.1.9.- Método 'sendEntryByFileRef'
...
INDICE
1.- Registro Electrónico General (servicios SOAP)
...
1.1.- Servicio EntryService
En los siguientes apartados se especifican tanto los tipos de datos utilizados, como los métodos que la componen, detallando los parámetros y mostrando ejemplos de uso.
1.1.1- Método 'listEntry'
Devuelve el listado con los datos de los asientos registrales que se corresponden a los criterios de búsqueda especificados.
Expand |
---|
|
1.1.1.1- SignaturaResultListEntries listEntry(String idApplication, ParamListEntries param) throws RemoteException, SRTException 1.1.1.2.- Parámetros de invocaciónNombre | Tipo | Longitud máxima | Descripción | Obligatorio |
---|
info | Info | - | Filtro de búsqueda en función de la información básica del asiento. Son obligatorios los campos organism, requestType y register. | Sí | consolidatedValue | Int | - | Filtro para seleccionar los asientos consolidados (en Registro Físico), los no consolidados ó indistinto INDISTINTO = 0 NO CONSOLIDADOS = 1 CONSOLIDADOS = 2 | No | sender | Actor | - | Interesado que envía el asiento | No | senderAgent | Actor | - | Aportador (Agente emisor) | No | receiver | Actor | - | Destinatario al que va dirigido el asiento | No | receiverAgent | Actor | - | Representante del destinatario al que va dirigido el asiento | No | dateStart | Date | - | Fecha (y hora) de presentación a partir de la cual se desea listar los asientos | No | dateEnd | Date | - | Fecha (y hora) de presentación hasta la que se desea listar los asientos | No | specificData | Data[] | - | Datos específicos asociados | No | sortColumn | String | - | Ordenación por el nombre de la columna | Sí | ascending | Boolean | - | Ordenación de las columnas ASCENDENTE = true DESCENDENTE = false | Sí | fromIndex | Int | - | Valor desde el cual se busca | Sí | toIndex | Int | - | Valor de búsqueda | Sí |
El emisor (Sender), representante del emisor (SenderAgent), receptor/es (Receivers) y representante del receptor(ReceiverAgent) pueden ser de tipo Person, Organism, Company y UndefinedActor Solamente se debería utilizar UndefinedActor para el Sender. Person extends Actor | Tipo | Longitud máxima | Descripción | Obligatorio |
---|
Nif | String | 255 caracteres |
| Sí | Name | String | 255 caracteres | Nombre | No | Surname1 | String | 255 caracteres | Primer apellido | No | Surname2 | String | 255 caracteres | Segundo apellido | No | Mail | String | 255 caracteres | Correo | No | Address | String | 255 caracteres | Dirección | No |
Organism extends Actor | Tipo | Longitud máxima | Descripción | Obligatorio |
---|
Code | String | 255 caracteres | Código del organismo | Sí | Name | String | 255 caracteres | Descripción del organismo | Sí |
Company extends Actor | Tipo | Longitud máxima | Descripción | Obligatorio |
---|
Cif | String | 255 caracteres | Cif | Sí | Name | String | 255 caracteres | Nombre | Sí |
UndefinedActor extends Actor | Tipo | Longitud máxima | Descripción | Obligatorio |
---|
NOTA: En métodos en los que se cree un asiento registral, solamente se debería utilizar este tipo UndefinedActor para el Sender. Por ejemplo, en un caso en el que el interesado es menor, el Sender (el menor) sería de tipo UndefinedActor y el representante del menor (SenderAgent) que presenta el documento sería de tipo Person. | code | String | 255 caracteres | Código | Sí | name | String | 255 caracteres | Nombre | Sí |
1.1.1.3.- Parámetros de respuestaNombre | Tipo | Descripción |
---|
entries | Entry[] | Listado de asientos que cumplen los filtros de búsqueda establecidos. |
1.1.1.4.- ValidacionesNombre | Descripción |
---|
InternalCoreException | Se agrupan todos aquellos errores internos de funcionamiento del SRT. |
1.1.1.5.- Códigos errorTipo | Descripción |
---|
SRTException | Error en la operación. | RemoteException | Error remoto. |
1.1.1.6.- Ejemplo de invocación Code Block |
---|
language | java |
---|
title | Ejemplo de invocación |
---|
collapse | true |
---|
| ParamListEntries paramListEntries = new ParamListEntries();
ResultListEntries entries = new ResultListEntries();
Info info = new Info();
// Código de organismo, es un atributo que el integrador deberá pedir
al responsable funcional que le ha solicitado la aplicación
info.setOrganism("ORGXXXXX");
//Código de Libro de registro
info.setRegister("REG_XXX");
// Código de procedimiento, es un atributo que el integrador deberá
pedir al responsable funcional que le ha solicitado la aplicación
info.setProcessType("xxx");
//Tipo de Entry (Entrada(0), Salida(1))
info.setRequestType(SRTClientConstants.REQUEST_TYPE_INPUT);
//Fecha de creación del Entry
Calendar requestTime = Calendar.getInstance();
info.setRequestTime(requestTime);
paramListEntries.setInfo(info);
entries = entryClient.listEntry(paramListEntries); |
|
1.1.2.- Método 'getEntryDetails'
Obtiene los datos sobre un asiento registral, a partir del identificador de su libro de registro y del número de asiento registral.
Expand |
---|
|
1.1.2.1.- SignaturaResultGetEntryDetails getEntryDetails(String idApplication, ParamGetEntryDetails param) throws RemoteException, SRTException 1.1.2.2.- Parámetros de invocaciónNombre | Tipo | Longitud máxima | Descripción | Obligatorio |
---|
registerId | String | - | Identificador del libro de registro en el que se va a realizar la consolidación de los asientos. | Sí | requestType | Int | - | Tipo de asiento ENTRADA = 0 SALIDA = 1 | Sí | entryId | String | - | Nº de registro del asiento asociado al sistema telemático | Sí | consolidatedId | String | - | Nº de registro del asiento asociado al sistema físico con el que se consolida | No | invokingId | String | - | Identificador (NIF) de la persona que origina la petición desde la aplicación invocante. Si se trata de una aplicación web será la persona autenticada en el mismo. | No |
1.1.2.3.- Parámetros de respuestaNombre | Tipo | Descripción |
---|
entry | Entry | Información general del asiento y datos específicos en 'specificdata' | request | String | Contenido del documento de solicitud de alta de asiento (fichero PDF, XML, etc.) codificado en Base64 | receipt | String | Contenido del documento de justificante de asiento (fichero PDF, XML, etc.) codificado en Base64 y firmado electrónicamente por el sistema telemático | attachments | AttachmentInfo[] | Datos generales de los documentos adjuntos |
1.1.2.4.- ValidacionesNombre | Descripción |
---|
idApplication | Se valida que existe una aplicación dada de alta con ese código. |
1.1.2.5.- Códigos errorTipo | Descripción |
---|
SRTException | Error en la operación. | RemoteException | Error remoto. |
1.1.2.6.- Ejemplo de invocación Code Block |
---|
language | java |
---|
title | Ejemplo de invocación |
---|
collapse | true |
---|
| ParamGetEntryDetails paramGetEntryDetails = new
ParamGetEntryDetails();
ResultGetEntryDetails resultGetEntryDetails = new
ResultGetEntryDetails();
//Identificador de Libro de Registro
paramGetEntryDetails.setRegisterId("REG_XXX");
//Código del Asiento Registral
paramGetEntryDetails.setEntryId("PREF_XXXXXXXXXX/SUF");
//Tipo de Entry (Entrada(0), Salida(1))
paramGetEntryDetails.setRequestType(SRTClientConstants.REQUEST_TYPE_INPUT);
//paramGetEntryDetails.setInvokginId(null);
paramGetEntryDetails.setInvokginId("NIF"));
resultGetEntryDetails = entryClient.getEntryDetails(paramGetEntryDetails); |
|
1.1.3.- Método 'getEntryAttachmentByFileRef'
Expand |
---|
|
1.1.3.1.- SignaturaString getEntryAttachmentByFileRef(String idApplication,ParamGetEntryAttachment param) throws RemoteException, SRTException 1.1.3.2.- Parámetros de invocaciónNombre | Tipo | Longitud máxima | Descripción | Obligatorio |
---|
registerId | String | - | Identificador del libro de registro en el que se va a realizar la consolidación de los asientos. | Sí | requestType | int | - | Tipo de la solicitud Entrada = 0 Salida = 1 | Sí | entryId | String | - | Identificador del tramite | Sí | idAttachment | String | - | Identificador del documento adjunto | Sí | invokingId | String | - | Identificador (NIF) de la persona que origina la petición desde la aplicación invocante. Si se trata de una aplicación web será la persona autenticada en el mismo. | No |
1.1.3.3.- Parámetros de respuestaNombre | Tipo | Descripción |
---|
idRef | String | Identificador (“id”) del contenido del fichero dentro de la petición SOAP de invocación |
1.1.3.4.- ValidacionesNombre | Descripción |
---|
idApplication | Se valida que existe una aplicación dada de alta con ese código. |
1.1.3.5.- Códigos errorTipo | Descripción |
---|
SRTException | Error en la operación. | RemoteException | Error remoto. |
1.1.3.6.- Ejemplo de invocación Code Block |
---|
language | java |
---|
title | Ejemplo de invocación |
---|
collapse | true |
---|
| ParamGetEntryAttachment paramGetEntryAttachment = new
ParamGetEntryAttachment();
//Identificador de Libro de Registro
paramGetEntryAttachment.setRegisterId("REG_XXX");
//Código del Asiento Registral
paramGetEntryAttachment.setEntryId("PREF_XXXXXXXXX/SUF");
//Identificador del adjunto
paramGetEntryAttachment.setIdAttachment("idAttachment");
//Tipo de Entry (Entrada(0), Salida(1))
paramGetEntryAttachment.setRequestType(SRTClientConstants.REQUEST_TYPE_INPUT);
paramGetEntryAttachment.setInvokingId(null);
InputStream inputStream = entryClient.getEntryAttachmentByFileRef(paramGetEntryAttachment); |
|
1.1.4.- Método 'getEntrySpecificData'
Información general del asiento y datos específicos en 'specificdata'
Expand |
---|
|
1.1.4.1.- SignaturaResultGetEntrySpecificData getEntrySpecificData(String idApplication, ParamGetEntryDetails param)throws RemoteException, SRTException 1.1.4.2.- Parámetros de invocaciónNombre | Tipo | Longitud máxima | Descripción | Obligatorio |
---|
registerId | String | - | Identificador del libro de registro en el que se va a realizar la consolidación de los asientos. | Sí | requestType | int | - | Tipo de la solicitud Entrada = 0 Salida = 1 | Sí | entryId | String | - | Identificador del tramite | Sí | consolidatedId | String | - | Nº de registro del asiento asociado al sistema físico con el que se consolida | No | invokingId | String | - | Identificador (NIF) de la persona que origina la petición desde la aplicación invocante. Si se trata de una aplicación web será la persona autenticada en el mismo. | No |
1.1.4.3.- Parámetros de respuestaNombre | Tipo | Descripción |
---|
Entry | Entry | Información general del asiento y datos específicos en 'specificdata' |
1.1.4.4.- ValidacionesNombre | Descripción |
---|
idApplication | Se valida que existe una aplicación dada de alta con ese código. |
1.1.4.5.- Códigos errorTipo | Descripción |
---|
SRTException | Error en la operación. | RemoteException | Error remoto. |
1.1.4.6.- Ejemplo de invocación Code Block |
---|
language | java |
---|
title | Ejemplo de invocación |
---|
collapse | true |
---|
| ResultGetEntrySpecificData result = new ResultGetEntrySpecificData();
ParamGetEntryDetails param = new ParamGetEntryDetails();
//Identificador de Libro de Registro
paramGetEntryAttachment.setRegisterId("REG_xxx");
//Código del Asiento Registral
paramGetEntryAttachment.setEntryId("PREF_XXXXXXXXX/SUF");
//Tipo de Entry (Entrada(0), Salida(1))
paramGetEntryAttachment.setRequestType(SRTClientConstants.REQUEST_TYPE_INPUT);
result = entryClient.getEntrySpecificData(param); |
|
1.1.5.- Método 'sendFullEntry'
Alta de asiento registral. Permite hacerlo tanto con ficheros adjuntos (bytes), que es la forma no recomendada, como mediante la integración a través de CCSV (la recomendada) Mediante la integración con CCSV, SRT recibe un documento almacenado en CCSV. Para almacenar un documento en CCSV, es necesario integrarse con el método createDocument. CCSV asocia un identificador único a cada documento y el cual debe indicarse a SRT en la petición. Además, también es posible recuperar datos del documento almacenado (hash, algoritmo...) a través del método getDocument de CCSV. La integración tanto con el método createDocument como con el método getDocument de CCSV puede verse en Servicios para la gestión de documentos
Expand |
---|
|
1.1.5.1.- SignaturaResultSendFullEntry sendFullEntry(String idApplication,ParamSendFullEntry param, FileInfo fileInfo, DataHandler file) throws RemoteException, SRTException 1.1.5.2.- Parámetros de invocaciónNombre | Tipo | Longitud máxima | Descripción | Obligatorio |
---|
info | Info | - | Información básica y común | Sí | requestPromoter | RequestPromoter | - | Datos del Promotor | No | sender | Actor | - | Interesado que envía el asiento | Sí | senderAgent | Actor | - | Aportador (Agente emisor). Si se indica para asientos de salida, debe ser de tipo Person. | No | receiver | Actor | - | Destinatario al que va dirigido el asiento | Sí | receiverAgent | Actor | - | Representante del destinatario al que va dirigido el asiento | No | specificData | Data[] | Clave → 255 caracteres Valor → 255 caracteres | Datos específicos asociados | No | invokingId | String | 255 caracteres | Identificador (NIF) de la persona que origina la petición desde la aplicación invocante. Si se trata de una aplicación web será la persona autenticada en el mismo. | No | fileInfo | FileInfo | - | Datos del fichero adjunto. Nos permite enviar un documento adjunto sin necesidad de indicar código CCSV. | No | file | DataHandler (no es propio de SRT. forma parte de la librería javax.activation) | - | Flujo de datos (bytes) para la transmisión de forma eficiente del fichero adjunto desde la aplicación invocante al sistema telemático. SRT obtiene los bytes del documento adjunto a través de este objeto. SRT asignará un código CCSV a este documento adjunto y lo guardará en la tabla de datos específicos junto a los otros documentos adjuntos. | No |
Info | Tipo | Longitud máxima | Descripción | Obligatorio |
---|
subject | String | 255 caracteres | Asunto | Sí | reportCode | String | 255 caracteres | Código de informe | No | requestType | Integer | 1 | Tipo de petición (0 = entrada y 1 = salida) | Sí | requestTime | Calendar | - | Fecha de presentación | No | processTime | Calendar | - | Fecha de registro | No | organism | String | 255 caracteres | Código de organismo | Sí | register (No se usa, se debe indicar en datos específicos con clave TypeRegister y valor I (interno) o E (externo). Si no se indica, será por defecto externo) | String | 255 caracteres | Tipo de registro (I = Interno y E = externo). Si no se indica, el valor por defecto es nulo. | No | processType | String | 255 caracteres | Código de procedimiento | Sí |
RequestPromoter (opcional): Si el documento principal CSV_Request indicado en datos específicos no existe en CCSV, SRT creará el documento de solicitud con los datos proporcionados en el RequestPromoter. | Tipo | Longitud máxima | Descripción | Obligatorio |
---|
request | String | - | Bytes del documento principal en base 64 | Sí | fileName | String | 255 caracteres | Nombre del documento principal | Sí | detachedSignature | String | - | Firma del documento en base 64 | Sí | formatSignature | Long | 19 | Formato de la firma | Sí | mimeType | String | 255 caracteres | Tipo de archivo | Sí | Promoter: Se utiliza para crear una relación de metadatos para el documento de solicitud en CCSV. | Promoter/identifierNumber | String | 255 caracteres | Número de identificación | Sí | Promoter/name | String | 255 caracteres | Nombre | Sí | Promoter/surname1 | String | 255 caracteres | Primer apellido | No | Promoter/surname2 | String | 255 caracteres | Segundo apellido | No |
FileInfo | Tipo | Longitud máxima | Descripción | Obligatorio |
---|
name | String | 255 caracteres | Nombre del archivo | Sí | fileSize | Long | 19 dígitos | Tamaño del archivo | No | description | String | 255 caracteres | Descripción del archivo | Sí | detachedSignature | String | - | Firma del archivo en base64 | Sí | formatSignature | Long | 19 dígitos | Formato de la firma | Sí | mimeType | String | 255 caracteres | Tipo de archivo | Sí |
El emisor (Sender), representante del emisor (SenderAgent), receptor/es (Receivers) y representante del receptor(ReceiverAgent) pueden ser de tipo Person, Organism, Company y UndefinedActor Solamente se debería utilizar UndefinedActor para el Sender. Person extends Actor | Tipo | Longitud máxima | Descripción | Obligatorio |
---|
nif | String | 255 caracteres | Nif | Sí | givenName | String | 255 caracteres | Nombre | No | surname1 | String | 255 caracteres | Primer apellido | No | surname2 | String | 255 caracteres | Segundo apellido | No | mail | String | 255 caracteres | Correo | No | address | String | 255 caracteres | Dirección | No |
Organism extends Actor | Tipo | Longitud máxima | Descripción | Obligatorio |
---|
code | String | 255 caracteres | Código del organismo | Sí | name | String | 255 caracteres | Descripción del organismo | Sí |
Company extends Actor | Tipo | Longitud máxima | Descripción | Obligatorio |
---|
cif | String | 255 caracteres | Cif | Sí | name | String | 255 caracteres | Nombre | Sí |
UndefinedActor extends Actor | Tipo | Longitud máxima | Descripción | Obligatorio |
---|
NOTA: En métodos en los que se cree un asiento registral, solamente se debería utilizar este tipo UndefinedActor para el Sender. Por ejemplo, en un caso en el que el interesado es menor, el Sender (el menor) sería de tipo UndefinedActor y el representante del menor (SenderAgent) que presenta el documento sería de tipo Person. | code | String | 255 caracteres | Código | Sí | name | String | 255 caracteres | Nombre | Sí |
AuthorizedOfficer extends Actor | Tipo | Longitud máxima | Descripción | Obligatorio |
---|
NOTA: En asientos de entrada (requestType = 0), debe utilizarse solamente para el SenderAgent y el tipo de registro debe ser externo (registerType = E). Si se intenta utilizar para otro actor y/o se indica registro interno (registerType = I), se obtendrá error.
En asientos de salida (requestType = 1), debe utilizarse solamente para el ReceiverAgent y el tipo de registro debe ser externo (registerType = E). Si se intenta utilizar para otro actor y/o se indica registro interno (registerType = I), se obtendrá error. | name | String | 255 caracteres | Nombre del funcionario habilitado | Sí | surname1 | String | 255 caracteres | Primer apellido del funcionario habilitado | Sí | surname2 | String | 255 caracteres | Segundo apellido del funconario habilitado | No | nif | String | 9 caracteres | Nif del funcionario habilitado | Sí | rpt | String | 10 caracteres | Código RPT del funcinario habilitado | Sí | organismCode (código organismo de SIU) | String | 10 caracteres | Código organismo SIU del funcionario habilitado | Sí | organismName | String | 255 caracteres | Nombre de organismo SIU del funcionario habilitado | Sí | departmentCode (código departamento de SIU) | String | 10 caracteres | Código de departamento del funcionario habilitado | Sí | departmentName | String | 255 caracteres | Nombre de departamento SIU del funcionario habilitado | Sí | role | String | 255 caracteres | Rol del funcionario habilitado | Sí | mail | String | 255 caracteres | Dirección de correo electrónico del funcionario habilitado | Sí |
El SenderAgent pasa a ser opcional en asientos de salida. En caso de indicarlo, deberá ser obligatoriamente de tipo Person. 1.1.5.3.- Parámetros de respuestaNombre | Tipo | Descripción |
---|
id | String | Número de registro correspondiente al asiento registral realizado | receipt | Receipt | Contenido del documento de justificante de asiento (fichero PDF, XML, etc.) codificado en Base64 y firmado electrónicamente por el sistema telemático | processTime | Date | Fecha y hora de proceso, primer día hábil desde el alta (pudiendo coincidir), en Registro Telemático | CSVReceipt | String | CSV del recibo (justificante) de alta de asiento registral |
Info |
---|
| Para obtener la fecha efectiva de registro, revisar los casos de uso. |
1.1.5.4.- ValidacionesNombre | Descripción |
---|
idApplication | Se valida que existe una aplicación dada de alta con ese código. | sender | Si el asiento es de Salida, el sender debe ser de tipo Organism y su valor estar en info.organism | senderAgent | Para realizar un registro de salida es necesario identificar al aportador (Agente emisor) | receiver | Si el asiento es de Entrada, el receiver debe ser de tipo Organism y su valor estar en info.organism | info.organism | Se valida que exista el organismo en SIU, debe coincidir con el receiver en los de entrada y con el sender en los de salida | info.register | No es obligatorio ni se tiene en cuenta, será eliminado en un futuro | info.processType | Se valida que exista el tipo de procedimiento y que se pueda registrar en el organismo indicado | specificData[SRTClientConstants.SPECIFIC_DATA_NAME_TYPE_REGISTER] | El código de registro debe ser verificable. Puede tener los valores “I” para registro interno o “E” para registro externo. Para crear un asiento en un libro de registro interno es necesario que el organismo asociado al asiento tenga como dato extendido "InternalRegister" igual a libro de registro usado para hacer los asientos internos. | specificData[SRTClientConstants.SPECIFIC_DATA_NAME_CSV_REQUEST] | El estado de la solicitud enviada debe ser de tipo original o copia, no se permite registrar si el estado del documento en CCSV es de otro tipo. | specificData[SRTClientConstants.SPECIFIC_DATA_NAME_CSV_ATTACHED] | El estado de los adjuntos enviados debe ser de tipo original o copia, no se permite registrar si el estado de alguno de los documentos en CCSV es de otro tipo | org_code_list_reg_in | Es un alfanumérico, código de registro , son los organismos de registro de entrada asociados al procedimiento. Si no aparece no esta ligado a ningún organismo en concreto este caso se permite registrar en cualquier organismo. Si aparece el atributo y esta ligado a un organismo concreto de la estructura de organismos se comprueba que el organismo indicado en el atributo coincida con el organismo contra el que se quiere registrar. | org_code_list_reg_out | Es un alfanumérico, código de registro , son los organismos de registro de salida asociados al procedimiento. Si no aparece no esta ligado a ningún organismo en concreto este caso se permite registrar en cualquier organismo. Si aparece el atributo y esta ligado a un organismo concreto de la estructura de organismos se comprueba que el organismo indicado en el atributo coincida con el organismo contra el que se quiere registrar. |
1.1.5.5.- Códigos errorTipo | Descripción |
---|
SRTException | Error en la operación. | RemoteException | Error remoto. |
1.1.5.6.- Ejemplo de invocación Code Block |
---|
language | java |
---|
title | Ejemplo de invocación |
---|
collapse | true |
---|
| // IMPORTANTE: Para más información ver anexo I
ParamSendFullEntry paramSendFullEntry = new ParamSendFullEntry();
//InvokingId
paramSendFullEntry.setInvokingId("00000000T");
//Info
Info info = new Info();
// Asunto
info.setSubject("Prueba");
// Organismo. Atributo que el integrador deberá pedir al responsable funcional que le ha solicitado la aplicación
info.setOrganism("ORG07458");
// Tipo de asiento (entrada o salida)
info.setRequestType(SRTClientConstants.REQUEST_TYPE_INPUT);
// Procedimiento. Atributo que el integrador deberá pedir al responsable funcional que le ha solicitado la aplicación
info.setProcessType("1");
paramSendFullEntry.setInfo(info);
//Sender (datos emisor)
Organism sender = new Organism();
sender.setCode("ORG14668");
sender.setName("SERVICIO DE ADMINISTRACIÓN ELECTRÓNICA");
paramSendFullEntry.setSender(sender);
//SenderAgent (aportador)
Person senderAgent = new Person();
senderAgent.setGivenName("NOMBRE");
senderAgent.setSurname1("APELLIDO");
senderAgent.setAddress("DIRECCION");
senderAgent.setNif("00000000T");
senderAgent.setMail("cotal@oesia.com");
paramSendFullEntry.setSenderAgent(senderAgent);
//Receiver (datos destinatario)
Actor[] receivers = new Actor[1];
Organism receiver = new Organism();
receiver.setCode("ORG07458");
receiver.setName("VICEPRESIDENCIA");
receivers[0] = receiver;
paramSendFullEntry.setReceiver(receivers);
//SpecificData
Data[] specificData = new Data[8];
Data data1 = new Data("Asunto","Prueba");
specificData[0] = data1;
// Código CSV del documento principal
Data data2 = new Data("CSV_Request","CSVDD1X36L2V6A200SRT");
specificData[1] = data2;
// Hash del documento principal
Data data3 = new Data("CSV_hash_Request","/QzejY7NqZu8uZXDH9Y3D3Fbwb8=");
specificData[2] = data3;
// Algoritmo del documento principal
Data data4 = new Data("CSV_algorithm_Request","SHA-1");
specificData[3] = data4;
// Código CSV del adjunto 1
Data data5 = new Data("CSV_Attached_1","CSVI281DXS57F1H0BENT");
specificData[4] = data5;
// Hash del adjunto 1
Data data6 = new Data("CSV_hash_Attached_1","o2CgxBb1DLKk+i5rF4YnOYmM7v4=");
specificData[5] = data6;
// Algoritmo del adjunto 1
Data data7 = new Data("CSV_algorithm_Attached_1","SHA-1");
specificData[6] = data7;
Data data8 = new Data("TypeRegister", "E");
specificData[7] = data8;
paramSendFullEntry.setSpecificData(specificData);
// Fichero a enviar (fichero principal que se guardará en SRT en caso de que el documento CSV_Request indicado anteriormente no exista en CCSV)
byte[] arrayFile = FileCopyUtils.copyToByteArray(new File("URL
Fichero"));
String fileSoli = BASE64Encoder.encode(arrayFile);
// Firma del fichero a enviar
byte[] arraySign = FileCopyUtils.copyToByteArray(new File("URL
Firma"));
String detachedSignature = BASE64Encoder.encode(arraySign);
RequestPromoter request = new RequestPromoter();
//Formato del Documento
request.setMimeType("Formato");
//Documento
request.setRequest(fileSoli);
//Nombre del Documento
request.setFileName("Name");
//Firma
request.setDetachedSignature(detachedSignature);
//Formato de Firma
request.setFormatSignature(SRTClientConstants.SIGN_TYPE_xxx);
Promoter promoter = new Promoter();
promoter.setIdentifierNumber("00000000T");
promoter.setName("Nombre");
promoter.setSurname1("Apellido 1");
promoter.setSurname2("Apellido 2");
request.setPromoter(promoter);
// Adjunto Firmado
FileDataSource dataSource = new FileDataSource(new File("URLAdjunto"));
DataHandler file = new DataHandler(dataSource);
FileInfo fileInfo = new FileInfo();
// Nombre del Documento
fileInfo.setName("Nombre+"."+Extension");
// Descripción del Documento
fileInfo.setDescription ("Descripcion");
// Tamaño del Documento en bytes
fileInfo.setFileSize("Tamaño");
// Formato del Documento (mime-type)
fileInfo.setMimeType("Formato");
// Formato de Firma
fileInfo.setFormatSignature(SRTClientConstants.SIGN_TYPE_xxx);
// Realizar petición
ResultSendFullEntry resultSendFullEntry = client.sendFullEntry(paramSendFullEntry, fileInfo, file);
// Se recomienda enviar todos los adjuntos en datos específicos por lo que no se aconseja utilizar fileInfo ni file. La llamada quedaría de la siguiente forma: ResultSendFullEntry resultSendFullEntry = client.sendFullEntry(paramSendFullEntry, null, null);
|
|
1.1.6.- Método 'sendEntryOnlySaveReceipt'
Alta de asiento registral, sin que se almacene la solicitud (bytes) ni sus posibles adjuntos en el Sistema de Registro Telemático. Sólo se almacena en CCSV el fichero del recibo de registro, devolviéndose su contenido a la aplicación invocante. Se describe la integración con este método en ANEXO II: PROCESO DE INTEGRACIÓN MEDIANTE SISTEMA EXTERNO
Expand |
---|
|
1.1.96.1.- SignaturaResultSendEntry sendEntryByFileRefpublic ResultSendEntryOnlySaveReceipt sendEntryOnlySaveReceipt(String idApplication,ParamSendEntry param, FileInfo fileInfo, String fileRefParamSendEntryOnlySaveReceipt param) throws RemoteException, SRTException 1.1.96.2.- Parámetros de invocaciónNombre | Tipo | Longitud máxima | Descripción | Obligatorio |
---|
info | Info | - | Información básica y común | Sí | request | Request | - | Contenido del documento de solicitud de alta de asiento (fichero PDF, XML, etc.) codificado en Base64común | Sí | requestPromoter | RequestPromoter | - | Datos del Promotor | No | sender | Actor | - | Interesado que envía el asiento | Sí | senderAgent | Actor | -Representante del interesado que envía el asiento | Aportador (Agente emisor). Si se indica para asientos de salida, debe ser de tipo Person. | No | receiver | Actor | - | Destinatario al que va dirigido el asiento | Sí | receiverAgent | Actor | - | Representante del destinatario al que va dirigido el asiento | No | specificData | Data[] | Clave → 255 caracteres Valor → 255 caracteres | Datos específicos asociados |
| NoSí | invokingId | String- | 255 caracteres | Identificador (NIF) de la persona que origina la petición desde la aplicación invocante. Si se trata de una aplicación web será la persona autenticada en el mismo. | No | fileInfo | FileInfo | - | Datos del fichero adjunto | Sí | fileRef | String | 255 caracteres | Identificador (“id”) del contenido del fichero dentro de la petición SOAP de invocación SI 5.5.4.3 ResultSendEntry | Sí |
Info | Tipo | Longitud máxima | Descripción | Obligatorio |
---|
subject | String | 255 caracteres | Asunto | Sí | reportCode | String | 255 caracteres | Código de informe | No | requestType | Integer | 1 | Tipo de petición (0 = entrada y 1 = salida) | Sí | requestTime | Calendar | - | Fecha de presentación | No | processTime | Calendar | - | Fecha de registro | No | organism | String | 255 caracteres |
Código de organismo | Sí | register | | Código de organismo | Sí | register (No se usa, se debe indicar en datos específicos con clave TypeRegister y valor I (interno) o E (externo). Si no se indica, será por defecto externo) | String | 255 caracteres | Tipo de registro (I = Interno y E = externo). Si no se indica, el valor por defecto es nulo. | No | processType | String | 255 caracteres | Código de procedimiento | Sí |
RequestRequestPromoter | Tipo | Longitud máxima | Descripción | Obligatorio |
---|
request | String | - | Bytes del archivo en base64 | Sí | fileName | String | 255 caracteres | Nombre del archivo | Sí | detachedSignature | String | - | Firma del archivo en base64 | Sí | formatSignature | Long | 19 dígitos | Formato de la firma | Sí | mimeType | String | 255 caracteres | Tipo de archivo | Sí | FileInfo | Tipo | Longitud máxima | Descripción | Obligatorio |
---|
name | String | 255 caracteres | Nombre del archivo | Sí | fileSize | Long | 19 dígitos | Tamaño del archivo | Sí | descriptionPromoter | Promoter/identifierNumber | String | 255 caracteres | Descripción del archivoNúmero de identificación | Sí | detachedSignature- | Firma del archivo en base64formatSignatureLong19 dígitos | Formato de la firma | Sí | mimeType255 caracteres | Primer apellido | No | Promoter/surname2 | String | 255 caracteres |
Tipo de archivo | Sí
El emisor (Sender), representante del emisor (SenderAgent), receptor/es (Receivers) y representante del receptor(ReceiverAgent) pueden ser de tipo Person, Organism, Company y UndefinedActor Solamente se debería utilizar UndefinedActor para el Sender. Person para el Sender. Person extends Actor | Tipo | Longitud máxima | Descripción | Obligatorio |
---|
Nif | String | 255 caracteres | Nif | Sí | Name | String | 255 caracteres | Nombre | No | Surname1 | String | 255 caracteres | Primer apellido | No | Surname2 | String | 255 caracteres | Segundo apellido | No | Mail | String | 255 caracteres | Correo | No | Address | String | 255 caracteres | Dirección | No |
Organism extends Actor | Tipo | Longitud máxima | Descripción | Obligatorio |
---|
NifCode | String | 255 caracteresNif | Código del organismo | Sí | Name | String | 255 caracteres | Nombre | No | Surname1 | Descripción del organismo | Sí |
Company extends Actor | Tipo | Longitud máxima | Descripción | Obligatorio |
---|
Cif | String | 255 caracteres | Primer apellidoCif | NoSí | Surname2Name | String | 255 caracteres | Segundo apellido | No | Mail | Nombre | Sí |
UndefinedActor extends Actor | Tipo | Longitud máxima | Descripción | Obligatorio |
---|
NOTA: En métodos en los que se cree un asiento registral, solamente se debería utilizar este tipo UndefinedActor para el Sender. Por ejemplo, en un caso en el que el interesado es menor, el Sender (el menor) sería de tipo UndefinedActor y el representante del menor (SenderAgent) que presenta el documento sería de tipo Person. | code | String | 255 caracteres | CorreoCódigo | NoSí | Addressname | String | 255 caracteres | DirecciónNombre | NoSí | Organism extends Actor | Tipo | Longitud máxima | Descripción | Obligatorio | Code
AuthorizedOfficer extends Actor | Tipo | Longitud máxima | Descripción | Obligatorio |
---|
NOTA: En asientos de entrada (requestType = 0), debe utilizarse solamente para el SenderAgent y el tipo de registro debe ser externo (registerType = E). Si se intenta utilizar para otro actor y/o se indica registro interno (registerType = I), se obtendrá error.
En asientos de salida (requestType = 1), debe utilizarse solamente para el ReceiverAgent y el tipo de registro debe ser externo (registerType = E). Si se intenta utilizar para otro actor y/o se indica registro interno (registerType = I), se obtendrá error. | name | String | 255 caracteres | Nombre del funcionario habilitado | Sí | surname1 | String | 255 caracteres | Código Primer apellido del | organismofuncionario habilitado | Sí | Namesurname2 | String | 255 caracteres | Descripción Segundo apellido del | organismofunconario habilitado | SíNo | Company extends Actornif | TipoString | Longitud máxima | Descripción | Obligatorio | Cif9 caracteres | Nif del funcionario habilitado | Sí | rpt | String | 255 10 caracteres | CifCódigo RPT del funcinario habilitado | Sí | NameorganismCode (código organismo de SIU) | String | 255 10 caracteres | NombreCódigo organismo SIU del funcionario habilitado | Sí | UndefinedActor extends ActorTipoLongitud máxima | Descripción | Obligatorio | NOTA: En métodos en los que se cree un asiento registral, solamente se debería utilizar este tipo UndefinedActor para el Sender. Por ejemplo, en un caso en el que el interesado es menor, el Sender (el menor) sería de tipo UndefinedActor y el representante del menor (SenderAgent) que presenta el documento sería de tipo Person. | code255 caracteres | Nombre de organismo SIU del funcionario habilitado | Sí | departmentCode (código departamento de SIU) | String | 10 caracteres | Código de departamento del funcionario habilitado | Sí | departmentName | String | 255 caracteres | Nombre de departamento SIU del funcionario habilitado | Sí | role | String | 255 caracteres | CódigoRol del funcionario habilitado | Sí | nameNombre | SíDirección de correo electrónico del funcionario habilitado | Sí |
El SenderAgent pasa a ser opcional en asientos de salida. En caso de indicarlo, deberá ser obligatoriamente de tipo Person. 1.1.96.3.- Parámetros de respuestaNombre | Tipo | Descripción |
---|
id | String | Número de registro correspondiente al asiento registral realizado | receipt | Receipt | Contenido del documento de justificante de asiento (fichero PDF, XML, etc.) codificado en Base64 y firmado electrónicamente por el sistema telemático | processTime | Date | Fecha y hora de | presentaciónproceso, primer día hábil desde el | alta(pudiendo coincidir), en Registro Telemáticoalta (pudiendo coincidir), en Registro Telemático | CSVReceipt | String | CSV del recibo (justificante) de alta de asiento registral |
Info |
---|
| Para obtener la fecha efectiva de registro, revisar los casos de uso. |
1.1.96.4.- ValidacionesNombre | Descripción |
---|
idApplication | Se valida que existe una aplicación dada de alta con ese código. | IdRequest | Se valida para que este identificador nunca venga vacío | sender | Si el asiento es de salida, el sender debe ser de tipo organism y valor param.info.organism | receiver | Si el asiento es de entrada, el receiver debe ser de tipo organism y valor infovalor info.organism | info.organism | Se valida que exista el organismo en SIU | info.register | No es obligatorio ni se tiene en cuenta, será eliminado en un futuro | info.processType | Se valida que exista el tipo de procedimiento y que se pueda registrar en él organismo indicado. | specificData[SRTClientConstants.SPECIFIC_DATA_NAME_TYPE_REGISTER] | El código de registro debe ser verificable. Puede tener los valores “I” para registro interno o “E” para registro externo. Para crear un asiento en un libro de registro interno es necesario que el organismo asociado al asiento tenga como dato extendido "InternalRegister" igual a libro de registro usado para hacer los asientos internos. | org_code_list_reg_in | Es un alfanumérico, código de registro , son los organismos de registro de entrada asociados al procedimiento. Si no aparece no esta ligado a ningún organismo en concreto este caso se permite registrar en cualquier organismo. Si aparece el atributo y esta ligado a un organismo concreto de la estructura de organismos se comprueba que el organismo indicado en el atributo coincida con el organismo contra el que se quiere registrarde registro usado para hacer los asientos internos. | org_code_list_reg_outin | Es un alfanumérico, código de registro , son los organismos de registro de salida asociados al procedimiento. Si no aparece no esta ligado a ningún organismo en concreto este caso se permite registrar en cualquier organismo. Si aparece el atributo y esta ligado a un organismo concreto de la estructura de organismos se comprueba que el organismo indicado en el atributo coincida con el organismo contra el que se quiere registrar. |
1.1.9.5.- Códigos error |
Tipo | Descripción |
---|
SRTException | Error en la operación. |
RemoteException | Error remoto. |
1.1.9.6.- Ejemplo de invocación
Code Block |
---|
language | java |
---|
title | Ejemplo de invocación |
---|
collapse | true |
---|
|
ResultSendEntry resultSendEntry = new ResultSendEntry ();
ParamSendEntry paramSendEntry = new ParamSendEntry();
ResultSendEntry resultSendEntry = new ResultSendEntry ();
ParamSendEntry paramSendEntry = new ParamSendEntry();
Info info = new Info();
Request request = new Request();
Person receiver = new Person();
Actor senderAgent = new Actor();
// Asunto del Entry
info.setSubject("Asunto");
// Código de organismo, es un atributo que el integrador deberá pedir
al responsable funcional que le ha solicitado la aplicación
info.setOrganism("ORGXXXXX");
// Tipo de Entry (Entrada(0)/Salida(1))
info.setRequestType(SRTClientConstants.REQUEST_TYPE_INPUT);
// Fecha de creación del Entry
Calendar requestTime = Calendar.getInstance();
info.setRequestTime(requestTime);
// Código de procedimiento, es un atributo que el integrador deberá
pedir al responsable funcional que le ha solicitado la aplicación
info.setProcessType("xxx");
// Fichero a enviar
byte[] arrayFile = FileCopyUtils.copyToByteArray(new File("URLFichero"));
String fileSoli = BASE64Encoder.encode(arrayFile);
// Firma del fichero a enviar
byte[] arraySign = FileCopyUtils.copyToByteArray(new File("URL
Firma"));
String detachedSignature = BASE64Encoder.encode(arraySign);
// Formato del fichero
request.setMimeType("Formato");
// Fichero
request.setRequest(fileSoli);
// Nombre del fichero
request.setFileName("Nombre.Extension");
// Firma
request.setDetachedSignature(detachedSignature);
// Formato de Firma
request.setFormatSignature("Formato Firma");
// Organismo Emisor
Organism sender = new Organism("ORGXXXXX");
// Datos del Emisor
senderAgent = new Person("NIF/CIF","Name","Surname1","Surname2","Email","Address");
// Datos del Destinatario
receiver.setAddress("Address");
receiver.setGivenName("Name");
receiver.setMail("Email");
receiver.setNif("NIF/CIF");
receiver.setSurname1("surname1");
receiver.setSurname2("surname2");
Actor[] receiverList = new Actor[1];
receiverList[0] = (Actor)receiver;
// Datos específicos
Data[] dataList = new Data[2];
dataList[0] = new Data("TypeRegister","E");
dataList[1] = new Data("Name2","Value2");
// Archivo Adjunto
File file = new File("URL Adjunto");
FileInfo fileInfo = new FileInfo();
// Nombre Archivo Adjunto
fileInfo.setName("Nombre.Extension");
// Descripción Archivo Adjunto
fileInfo.setDescription("testing document");
// Tamaño Archivo Adjunto
fileInfo.setFileSize(new Long(file.length()));
// Formato Archivo Adjunto
fileInfo.setMimeType("Formato");
paramSendEntry.setInfo(info);
paramSendEntry.setRequest(request);
paramSendEntry.setSender(sender);
paramSendEntry.setReceiver(receiverList);
paramSendEntry.setSpecificData(dataList);
paramSendEntry.setSenderAgent (senderAgent);
paramSendEntry.setInvokingId(null);
resultSendEntry = entryClient.sendEntryByFileRef(paramSendEntry,fileInfo, file); |
1.2.- Servicio AdminService
Realiza la consolidación de los asientos registrales entre el sistema telemático y el sistema físico de registro externo y perteneciente a la organización. Para ello se asocian los números de libro de registro de ambos sistemas. En los siguientes apartados se especifican tanto los tipos de datos utilizados, como los métodos que la componen, detallando los parámetros y mostrando ejemplos de uso.
1.2.1.- Método 'consolidateEntries'
...
1.2.1.1.- Signatura
ResultConsolidateEntries consolidateEntries(String idApplication, ParamConsolidateEntries param)throws RemoteException, SRTException
1.2.1.2.- Parámetros de invocación
...
1.2.1.3.- Parámetros de respuesta
...
1.2.1.4.- Validaciones
...
1.2.1.5.- Códigos error
...
1.2.1.6.- Ejemplo de invocación
Code Block |
---|
language | java |
---|
title | Ejemplo de invocación |
---|
collapse | true |
---|
|
ResultConsolidateEntries resultConsolidateEntries = new
ResultConsolidateEntries();
ParamConsolidateEntries param = new ParamConsolidateEntries();
EntryConsolidation[] consolidationList = new EntryConsolidation[1];
EntryConsolidation entryConsolidation = new EntryConsolidation();
// Identificador de consolidación
entryConsolidation.setConsolidatedId("PRE_XXXXXXXXX/SUF");
// Identificador de asiento
entryConsolidation.setId("PRE_XXXXXXXXX/SUF");
// Tipo: entrada(0), salida(1)
entryConsolidation.setRequestType("0");
consolidationList[0] = entryConsolidation;
param.setConsolidationList(consolidationList);
// Identificador del libro de registro
param.setRegisterId("REG_GA");
resultConsolidateEntries = adminClient.consolidateEntries(param); |
1.3.- Servicio DraftService
1.3.1.- Método 'createDraft'
Método obsoleto. Para nuevas integraciones se recomienda utilizar el método sendFullEntry de EntryService (apartado 1.1.7)
Alta de borrador sobre el cual se le asociarán los ficheros adjuntos, con bytes.
Expand |
---|
|
1.3.1.1.- SignaturaResultCreateDraft createDraft(String idApplication,ParamCreateDraft param) throws RemoteException, SRTException 1.3.1.2.- Parámetros de invocaciónNombre | Tipo | Longitud máxima | Descripción | Obligatorio |
---|
info | Info | - | Información básica para poder crear el borrador. | Sí | sender | Actor | - | Interesado que envía el borrador. | Sí | senderAgent | Actor | - | Representante del interesado que envía el borrador. | No | receiver | Actor[] | - | Destinatarios a los que va dirigido el borrador. | Sí | receiverAgent | Actor | - | Representante de los destinatarios a los que va dirigido el borrador. | No | specificData | Data[] | Clave → 255 caracteres Valor → 255 caracteres | Sí | Infolos organismos de registro de entrada asociados al procedimiento. Si no aparece no esta ligado a ningún organismo en concreto este caso se permite registrar en cualquier organismo. Si aparece el atributo y esta ligado a un organismo concreto de la estructura de organismos se comprueba que el organismo indicado en el atributo coincida con el organismo contra el que se quiere registrar. | org_code_list_reg_out | Es un alfanumérico, código de registro , son los organismos de registro de salida asociados al procedimiento. Si no aparece no esta ligado a ningún organismo en concreto este caso se permite registrar en cualquier organismo. Si aparece el atributo y esta ligado a un organismo concreto de la estructura de organismos se comprueba que el organismo indicado en el atributo coincida con el organismo contra el que se quiere registrar. |
1.1.6.5.- Códigos errorTipo | Descripción |
---|
SRTException | Error en la operación. |
1.1.6.6.- Ejemplo de invocación Code Block |
---|
language | java |
---|
title | Ejemplo de invocación |
---|
collapse | true |
---|
| ResultSendEntryOnlySaveReceipt resultSendEntryOnlySaveReceipt = new
ResultSendEntryOnlySaveReceipt ();
ParamSendEntryOnlySaveReceipt paramSendEntryOnlySaveReceipt = new
ParamSendEntryOnlySaveReceipt();
//Se rellena el 'Info'
Info info = new Info();
info.setSubject(“Asunto”);
// Código de organismo, es un atributo que el integrador deberá pedir al
responsable funcional que le ha solicitado la aplicación
info.setOrganism(“ORGXXXXX”);
// Tipo de Entry (Entrada(0)/Salida(1))
info.setRequestType(SRTClientConstants.REQUEST_TYPE_INPUT);
Calendar requestTime = Calendar.getInstance();
info.setRequestTime(requestTime);
// Código de procedimiento, es un atributo que el integrador deberá
pedir al responsable funcional que le ha solicitado la aplicación
info.setProcessType(“xxx”);
//Se rellena el 'sender'
Organism sender = new Organism(“ORGXXXXX”);
//Se rellena el 'senderAgent'
Actor senderAgent = new Actor();
senderAgent = new Person(“NIF/CIF”, “Name”, “surmane1”, “surname2”,“Email”, “Adress”);
//Se rellena el 'receiver'
Actor[] receiver = new Actor[1];
Person person = new Person();
person.setAddress (“Adress”);
person.setGivenName(“Name”);
person.setMail(“Email”);
person.setNif(“NIF/CIF”);
person.setSurname1(“surmane1”);
person.setSurname2(“surname2”);
receiver[0] = person;
//Se rellena el 'dataSpecific'
Data[] dataList = new Data[3];
dataList[0] = new Data("TypeRegister ", "E");
dataList[1] = new Data("Name2", "Value2");
dataList[2] = new Data(SRTClientConstants.SPECIFIC_DATA_NAME_XXX,"Value3");
//Se rellena el 'request'
RequestPromoter request = new RequestPromoter();
request.setMimeType (“Formato”);
request.setRequest (null);
request.setFileName (“Name”);
request.setDetachedSignature(null);
request.setFormatSignature (null);
paramSendEntryOnlySaveReceipt.setInfo(info);
paramSendEntryOnlySaveReceipt.setReceiver(receiver);
paramSendEntryOnlySaveReceipt.setSender(sender);
paramSendEntryOnlySaveReceipt.setSpecificData(dataList);
paramSendEntryOnlySaveReceipt.setInvokingId("NIF");
if(sendSenderAgent){
paramSendEntryOnlySaveReceipt.setSenderAgent(senderAgent);
}
paramSendEntryOnlySaveReceipt.setRequestPromoter(request);
resultSendEntryOnlySaveReceipt = entryClient.sendEntryOnlySaveReceipt(paramSendEntryOnlySaveReceipt);
return resultSendEntryOnlySaveReceipt; |
|
1.2.- Servicio AdminService
Realiza la consolidación de los asientos registrales entre el sistema telemático y el sistema físico de registro externo y perteneciente a la organización. Para ello se asocian los números de libro de registro de ambos sistemas. En los siguientes apartados se especifican tanto los tipos de datos utilizados, como los métodos que la componen, detallando los parámetros y mostrando ejemplos de uso.
1.2.1.- Método 'consolidateEntries'
Expand |
---|
1.2.1.1.- SignaturaResultConsolidateEntries consolidateEntries(String idApplication, ParamConsolidateEntries param)throws RemoteException, SRTException 1.2.1.2.- Parámetros de invocaciónNombre | Tipo | Longitud máxima | Descripción | Obligatorio |
---|
subjectPerson extends Actor | Tipo | Longitud máxima | Descripción | Obligatorio |
---|
Nif | String | 255 caracteres | Nif | Sí | Name | String | 255 caracteres | Nombre | No | Surname1 | String | 255 caracteres | Primer apellido | No | Surname2 | String | 255 caracteres | Segundo apellido | No | Mail | String | 255 caracteres | Correo | No | Address | String | 255 caracteres | Dirección | No | Organism extends Actor | Tipo | Longitud máxima | Descripción | Obligatorio |
---|
Code | String | 255 caracteres | Código del organismo | Sí | Name | String | 255 caracteres | Descripción del organismo | Sí | Company extends Actor | Tipo | Longitud máxima | Descripción | Obligatorio |
---|
Cif | String | 255 caracteres | Cif | Sí | Name | String | 255 caracteres | Nombre | Sí | UndefinedActor extends Actor | 255 caracteres | Asunto | Sí | reportCode | String | 255 caracteres | Código de informe | No | requestType | Integer | 1 | Tipo de petición (0 = entrada y 1 = salida) | Sí | requestTime | Calendar | - | Fecha de presentación | No | processTime | Calendar | - | Fecha de registro | No | organism | String | 255 caracteres | Código de organismo | Sí | register | String | 255 caracteres | Tipo de registro (I = Interno y E = externo) | No | processType | String | 255 caracteres | Código de procedimiento | Sí | El emisor (Sender), representante del emisor (SenderAgent), receptor/es (Receivers) y representante del receptor(ReceiverAgent) pueden ser de tipo Person, Organism, Company y UndefinedActor Solamente se debería utilizar UndefinedActor para el Sender. - | Identificador del libro de registro en el que se va a realizar la consolidación de los asientos. | Sí | consolidationList | EntryConsolidation[] | - | Listado de consolidaciones de los asientos. | Sí |
1.2.1.3.- Parámetros de respuestaNombre | Tipo | Descripción |
---|
consolidationResult | EntryConsolidatrionResult[] | Listado de resultados de la consolidación de las entradas. |
1.2.1.4.- ValidacionesNombre | Descripción |
---|
idApplication | Se valida que existe una aplicación dada de alta con ese código. |
1.2.1.5.- Códigos errorTipo | Descripción |
---|
SRTException | Error en la operación. | RemoteException | Error remoto. |
1.2.1.6.- Ejemplo de invocación Code Block |
---|
language | java |
---|
title | Ejemplo de invocación |
---|
collapse | true |
---|
| ResultConsolidateEntries resultConsolidateEntries = new
ResultConsolidateEntries();
ParamConsolidateEntries param = new ParamConsolidateEntries();
EntryConsolidation[] consolidationList = new EntryConsolidation[1];
EntryConsolidation entryConsolidation = new EntryConsolidation();
// Identificador de consolidación
entryConsolidation.setConsolidatedId("PRE_XXXXXXXXX/SUF");
// Identificador de asiento
entryConsolidation.setId("PRE_XXXXXXXXX/SUF");
// Tipo: entrada(0), salida(1)
entryConsolidation.setRequestType("0");
consolidationList[0] = entryConsolidation;
param.setConsolidationList(consolidationList);
// Identificador del libro de registro
param.setRegisterId("REG_GA");
resultConsolidateEntries = adminClient.consolidateEntries(param); |
|
1.3.- Servicio InfoService
1.3.1.- Método 'fullListRegisters'
Devuelve la información de los libros de registro sobre los que puede registrar para un organismo.
Expand |
---|
|
1.3.1.1.- SignaturaResultFullListRegisters fullListRegisters(String idApplication, ParamFullListRegisters param) throws RemoteException, SRTException 1.3.1.2.- Parámetros de invocaciónNombre | Tipo | Longitud máxima | Descripción | Obligatorio |
---|
NOTA: En métodos en los que se cree un asiento registral o borrador, solamente se debería utilizar este tipo UndefinedActor para el Sender. Por ejemplo, en un caso en el que el interesado es menor, el Sender (el menor) sería de tipo UndefinedActor y el representante del menor (SenderAgent) que presenta el documento sería de tipo Person. | code | String | 255 caracteres | Código | Sí | name | String | 255 caracteres | Nombre | Sí |
---|
organismCode | String | - | Código administrativo del organismo que se recupera de SIU. Este código de Organismo puede cambiar en el futuro cuando cambie la estructura de organismos. | No | enabled | Boolean | - | Accesibilidad de los libros de registro activado = true desactivado = false | No | exteriorVisible | Boolean | - | Visibilidad de los libros de registro visible exterior = true no visible exterior = false | No |
1.3.1.3.- Parámetros de respuestaNombre | Tipo | Descripción |
---|
fullRegisters | FullRegister[] | Listado de libros de registro(código, nombre, activado, visible exterior) |
1.3.1.4.- ValidacionesNombre | Descripción |
---|
idApplication | Se valida que existe una aplicación dada de alta con ese código. |
1.3.1.5.- Códigos erroridDraft | String | Identificador del borrador creado |
---|
SRTException | Error en la operación. | RemoteException |
Error remoto. |
1.3.1.46.- Validaciones |
Nombre | Descripción |
---|
idApplication | Se valida que existe una aplicación dada de alta con ese código. |
sender | Si el asiento es de salida, el sender debe ser de tipo Organism y su valor coincide con info.organism |
receiver | Si el asiento es de entrada, el receiver[0] debe ser el único receptor, debe ser de tipo Organism y coincidir con el valor info.organism. Si el asiento es de salida puede tener varios receptores. |
receiverAgent | Si el asiento es de salida debe ser nulo. |
info.register | No es obligatorio ni se tiene en cuenta, será eliminado en un futuro |
info.processType | Se valida que exista el tipo de procedimiento. Si es nulo, se inicia a “Tramite_Pruebas” |
specificData[SRTClientConstants.SPECIFIC_DATA_NAME_TYPE_REGISTER] | El código de registro debe ser verificable. Puede tener los valores “I” para registro interno o “E” para registro externo. Para crear un asiento en un libro de registro interno es necesario que el organismo asociado al asiento tenga como dato extendido "InternalRegister" igual a libro de registro usado para hacer los asientos internos. |
info.requestTime | Se inicializa durante el proceso de creación del borrador. |
org_code_list_reg_in | Es un alfanumérico, código de registro , son los organismos de registro de entrada asociados al procedimiento. Si no aparece no esta ligado a ningún organismo en concreto este caso se permite registrar en cualquier organismo. Si aparece el atributo y esta ligado a un organismo concreto de la estructura de organismos se comprueba que el organismo indicado en el atributo coincida con el organismo contra el que se quiere registrar. |
org_code_list_reg_out | Es un alfanumérico, código de registro , son los organismos de registro de salida asociados al procedimiento. Si no aparece no esta ligado a ningún organismo en concreto este caso se permite registrar en cualquier organismo. Si aparece el atributo y esta ligado a un organismo concreto de la estructura de organismos se comprueba que el organismo indicado en el atributo coincida con el organismo contra el que se quiere registrar. |
1.3.1.5.- Códigos error
Tipo | Descripción |
---|
SRTException | Error en la operación. |
RemoteException | Error remoto. |
1.3.1.6.- Ejemplo de invocación
Code Block |
---|
language | java |
---|
title | Ejemplo de invocación |
---|
collapse | true |
---|
|
ParamCreateDraft paramCreateDraft = new ParamCreateDraft();
ResultCreateDraft resultCreateDraft = new ResultCreateDraft();
Info info = new Info();
//Asunto del Draft
info.setSubject("Asunto");
//Código de organismo, es un atributo que el integrador deberá pedir
al responsable funcional que le ha solicitado la aplicación
info.setOrganism("ORGXXXXX");
//Fecha de creación del draft
Calendar requestTime = Calendar.getInstance();
info.setRequestTime(requestTime);
//Código de procedimiento, es un atributo que el integrador deberá
pedir al responsable funcional que le ha solicitado la aplicación
info.setProcessType("tramite_pruebas");
// Tipo: entrada(0), salida(1)
info.setRequestType("1");
// Creamos el organismo emisor
Organism sender = new Organism("ORGXXXXX", "Nombre del Organismo");
// Creamos la persona emisora
Actor senderAgent = new Actor();
senderAgent = new Person("NIF/CIF","Name","Surname1","Surname2",
"Email","Address");
// Creamos la persona destinataria
Actor[] receiver = new Actor[1];
Person person = new Person();
person.setAddress ("Address");
person.setGivenName("Name");
person.setMail("Email");
person.setNif("NIF/CIF");
person.setSurname1("surname1" );
person.setSurname2("surname2" );
receiver[0] = person;
// Creamos los datos especificos
Data[] data = new Data[1];
data[0] = new Data("TypeRegister","E");
paramCreateDraft.setInfo(info);
paramCreateDraft.setSender(sender);
paramCreateDraft.setSpecificData(data);
Titulo: Manual Integración
SRT v3.12
Página 33 de 129
Construyendo Europa desde Aragón
paramCreateDraft.setReceiver(receiver);
paramCreateDraft.setSenderAgent(senderAgent);
resultCreateDraft = draftClient.createDraft(paramCreateDraft); |
1.3.2.- Método 'addAttachment'
Método obsoleto. Para nuevas integraciones se recomienda utilizar el método sendFullEntry de EntryService (apartado 1.1.7)
Añadir un fichero adjunto (bytes) al borrador
Expand |
---|
|
1.3.2.1.- SignaturaResultAddAttachment addAttachment(String idApplication, ParamAddAttachment param, DataHandler file) throws RemoteException,SRTException 1.3.2.2.- Parámetros de invocaciónNombreEjemplo de invocación Code Block |
---|
language | java |
---|
title | Ejemplo de invocación |
---|
collapse | true |
---|
| ParamFullListRegisters paramFullListRegisters = new ParamFullListRegisters();
ResultFullListRegisters resultFullListRegisters = new ResultFullListRegisters();
resultFullListRegisters = infoClient.fullListRegisters(paramFullListRegisters); |
|
1.4.- Manejo de excepciones
Para obtener la información referente a la excepción, SRT incluye dos parámetros con la información del error.
Ejemplo de captura de excepciones de los servicios SOAP de SRT.
Code Block |
---|
language | java |
---|
title | Capturando excepciones de SRT |
---|
collapse | true |
---|
|
try {
log.info("BEGIN SRT EntryClient.sendFullEntry");
resultSendEntry = entryClient.sendFullEntry(paramSendFullEntry, null, null);
log.info("END SRT EntryClient.sendFullEntry");
} catch (SRTException e) {
String extraInfo = e.getCode() + ":" + e.getExtraInfo(); //Obtenemos el código y la información del error
} |
Code Block |
---|
language | xml |
---|
title | Ejemplo respuesta con error |
---|
|
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<soapenv:Fault>
<faultcode>soapenv:Server.userException</faultcode>
<faultstring>com.tbsolutions.srt.webservice.exception.InternalCoreException</faultstring>
<detail>
<ns1:SRTExceptionElement xsi:type="ns1:InternalCoreException" xmlns:ns1="http://exception.webservice.srt.tbsolutions.com">
<code xsi:type="xsd:int">704</code>
<extraInfo xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">El tamaño de la lista de asientos es mayor que uno, a causa de una codigo de asiento registral repetido,register=REG_GA,entry=RT_3001935003/2020,entryType=0</extraInfo>
</ns1:SRTExceptionElement>
<ns2:hostname xmlns:ns2="http://xml.apache.org/axis/">moz-ofm-03.aragon.local</ns2:hostname>
</detail>
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope> |
2.- Registro Electrónico Ágil (servicios REST)
...
2.1.- sendEntry
Expand |
---|
2.1.1.- SignaturaParamOutSendEntry sendEntry(ParamInSendEntry params) 2.1.2.- ParámetrosParámetro | Tipo | Descripción | Obligatorio |
---|
params | ParamInSendEntry | Parámetros de entrada para crear el asiento registral | Sí |
El objeto ParamInSendEntry presenta la siguiente estructura: Parámetro | Tipo | Longitud máxima | Descripción | Obligatorio |
---|
Info |
| - | Información general | Sí | Info/Subject | String | 255 caracteres | Asunto | Sí | Info/RequestType | enum (0 = Entrada y 1 = Salida) | 1 | Tipo de entrada (entrada / salida) | Sí | Info/RegisterType | enum (I = Interno y E = Externo) | 1 | Tipo de registro (interno / externo) | Sí | Info/OrganismCode | String | 255 caracteres | Código de organismo | Sí | Info/ProcedureCode | String | 255 caracteres | Código de procedimiento | Sí | Info/JustifyingRecipient | JustifyingRecipient | - | Destinatario del justificante de registro | Sí (obligatorio al menos uno de los dos: correo o movil ) | Info/JustifyingRecipient/Mail | String | 255 caracteres | Correo del destinatario | Sí (si no se ha especificado teléfono) | Info/JustifyingRecipient/Phone | String | 9 dígitos | Teléfono del destinatario | Sí (si no se ha especificado correo) | Sender | Actor | - | Emisor | Sí | SenderAgent | Actor | - | Aportador (Agente emisor) | Sí (solamente es obligatorio para asientos de entrada → requestType = 0) | Receivers | List<Actor> | - | Listado de destinatarios | Sí | ReceiverAgent | Actor | - | Destinatario |
| MainDocument | Document | - | Documento principal | Sí | MainDocument/Csv | String | 255 caracteres | CSV del documento | El estado debe ser ORIGINAL o COPIA | MainDocument/Description | String | 255 caracteres | Descripción del documento |
| MainDocument/Hash | String | 255 caracteres | Hash del documento |
| MainDocument/Type | String | 255 caracteres | Tipo de documento |
| MainDocument/HashAlgorithm | String | 255 caracteres | Algoritmo utilizado para generar el hash del documento |
| AttachedDocuments | List<Document> | - | Listado de documentos adjuntos | Sí | InvokingId | String | 255 caracteres | Id de invocación | Sí | noComunicar | Boolean | - | Parámetro para que el usuario decida si enviar o no comunicaciones al interesado. Por defecto el valor está false | No |
El emisor (Sender), agente emisor (SenderAgent), receptor/es (Receivers) y agente receptor(ReceiverAgent) pueden ser de tipo Person, Organism, Company, UndefinedActor o ExternalOrganism. Person extends Actor | Tipo | Longitud máxima | Descripción | Obligatorio |
---|
idDraftfileInfo | FileInfo | - | Datos del fichero adjunto | No | invokingId | String | 255 caracteres | Identificador (NIF) de la persona que origina la petición desde la aplicación invocante. Si se trata de una aplicación web será la persona autenticada en el mismo. | No | FileInfo- | Identificador del borrador al que se desea adjuntar el fichero. | Sí | 255 caracteres | Nif | Sí | Name | String | 255 caracteres | Nombre | No | Surname1 | String | 255 caracteres | Primer apellido | No | Surname2 | String | 255 caracteres | Segundo apellido | No | Mail | String | 255 caracteres | Correo | No | Address | String | 255 caracteres | Dirección | No |
Organism extends Actor | Tipo | Longitud máxima | Descripción | Obligatorio |
---|
nameNombre archivofileSize | Long | 19 dígitos | Tamaño del archivo | Sí | description | Name | String | 255 caracteres | Descripción del | archivo
detachedSignatureString- | Firma del archivo en base64 | Sí | formatSignature | Long | 19 dígitos | Formato de la firma | Sí | mimeTypeLongitud máxima | Descripción | Obligatorio |
---|
Cif | String | 255 caracteres | Cif | Sí | Name | String | 255 caracteres | Tipo de archivo 1.3.2.3.- Parámetros de respuesta
Nombre | TipoUndefinedActor extends Actor | Tipo | Longitud máxima | Descripción |
---|
attachment | String | Identificador del fichero subido | 1.3.2.4.- Validaciones |
Nombre | Descripción |
---|
idApplication | Se valida que existe una aplicación dada de alta con ese código. |
fileInfo | Se comprueba que info no sea nulo |
fileInfo.name | Se comprueba que name no sea una cadena vacía |
fileInfo.name | Se valida que name contenga la extensión del archivo |
fileInfo.mimeType | Se valida que el mimeType o esté vacío |
1.3.2.5.- Códigos error
Tipo | Descripción |
---|
SRTException | Error en la operación. |
RemoteException | Error remoto. |
1.3.2.6.- Ejemplo de invocación
Code Block |
---|
language | java |
---|
title | Ejemplo de invocación |
---|
collapse | true |
---|
|
ParamAddAttachment paramAddAttachment = new ParamAddAttachment();
ResultAddAttachment resultAddAttachment = new ResultAddAttachment ();
FileInfo fileInfo = new FileInfo();
// URL del fichero a adjuntar
FileDataSource dataSource = new FileDataSource(new File("Adjunto"));
DataHandler file = new DataHandler(dataSource);
// URL de la firma del fichero a adjuntar
byte[] arraySign = FileCopyUtils.copyToByteArray(new File("Firma"));
String detachedSignature = BASE64Encoder.encode(arraySign);
// Nombre del fichero
fileInfo.setName("fichero.extension");
// Descripción del fichero
fileInfo.setDescription ("testing document");
// Formato del documento
fileInfo.setMimeType("text/doc");
// Firma del documento
fileInfo.setDetachedSignature (detachedSignature);
// Tamaño del documento
fileInfo.setFileSize(new Long(dataSource.getFile().length()));
// Tipo de Firma
fileInfo.setFormatSignature("Formato de Firma");
// Identificador del Draft
paramAddAttachment.setIdDraft("idDraft");
paramAddAttachment.setFileInfo(fileInfo);
paramAddAttachment.setInvokingId(null);
resultAddAttachment = draftClient.addAttachment(paramAddAttachment, file); |
1.3.3.- Método 'addAttachmentByFileRef'
Método obsoleto. Para nuevas integraciones se recomienda utilizar el método sendFullEntry de EntryService (apartado 1.1.7)
Añadir un fichero adjunto (bytes) al borrador, desde tecnologías non-Java, mediante SwA (Service with Attachment)
Expand |
---|
|
1.3.3.1.- SignaturaResultAddAttachment addAttachmentByFileRef(String idApplication, ParamAddAttachment param, String fileRef) throws RemoteException, InvalidDataException, SRTException 1.3.3.2.- Parámetros de invocaciónNombre | Tipo | Longitud máxima | Descripción | Obligatorio |
---|
idDraft | String | - | Identificador del borrador al que se desea adjuntar el fichero. | Sí | fileRef | FileInfo | - | Referencia al adjunto | No | invokingId | String | 255 caracteres | Identificador (NIF) de la persona que origina la petición desde la aplicación invocante. Si se trata de una aplicación web será la persona autenticada en el mismo. | No | fileRef | String | 255 caracteres | Fichero del adjunto SI | Sí | FileInfoObligatorio |
---|
En asientos de entrada (requestType = 0), solamente es posible utilizar este tipo para el Sender. Si se intenta utilizar para otro objeto, se obtendrá un error. En asientos de salida (requestType = 1), solamente es posible utilizar este tipo para el Receiver. Si se intenta utilizar para otro objeto, se obtendrá un error. | Name | String | 255 caracteres | Nombre | Sí | Surname1 | String | 255 caracteres | Primer Apellido | Sí | Surname2 | String | 255 caracteres | Segundo Apellido | No |
ExternalOrganism extends Actor | Tipo | Longitud máxima | Descripción | Obligatorio |
---|
En asientos de entrada (requestType = 0), debe utilizarse solamente para el Sender. Si se intenta utilizar para el Receiver, se obtendrá un error. En asientos de salida (requestType = 1), debe utilizarse solamente para el Receiver/s. Si se intenta utilizar para el Sender, se obtendrá un error. | DIR3RootOrganismCode | String | 255 caracteres | Código del organismo raíz | Sí | DIR3RootOrganismName | String | 255 caracteres | Nombre del organismo raíz | Sí | DIR3RootOrganismNIF | String | 255 caracteres | NIF del organismo raíz | No | DIR3OrganismCode | String | 255 caracteres | Código del organismo nivel 2 | Sí | DIR3OrganismName | String | 255 caracteres | Nombre del organismo nivel 2 | Sí | DIR3OrganismNIF | String | 255 caracteres | NIF del organismo nivel 2 | No | DIR3OrganismCodeLevel3 | String | 255 caracteres | Código del organismo nivel 3 | No | DIR3OrganismNameLevel3 | String | 255 caracteres | Nombre del organismo nivel 3 | No | DIR3OrganismNIFLevel3 | String | 255 caracteres | NIF del organismo nivel 3 | No |
AuthorizedOfficer extends Actor | Tipo | Longitud máxima | Descripción | Obligatorio |
---|
En asientos de entrada (requestType = 0), debe utilizarse solamente para el SenderAgent y el tipo de registro debe ser externo (registerType = E). Si se intenta utilizar para otro actor y/o se indica registro interno (registerType = I), se obtendrá error.
En asientos de salida (requestType = 1), debe utilizarse solamente para el ReceiverAgent y el tipo de registro debe ser externo (registerType = E). Si se intenta utilizar para otro actor y/o se indica registro interno (registerType = I), se obtendrá error. | Name | String | 255 caracteres | Nombre del funcionario habilitado | Sí | Surname1 | String | 255 caracteres | Primer apellido del funcionario habilitado | Sí | Surname2 | String | 255 caracteres | Segundo apellido del funconario habilitado | No | Nif | String | 9 caracteres | Nif del funcionario habilitado | Sí | Rpt | String | 10 caracteres | Código RPT del funcinario habilitado | Sí | OrganismCode (código organismo de SIU) | String | 10 caracteres | Código organismo SIU del funcionario habilitado | Sí | OrganismName | String | 255 caracteres | Nombre de organismo SIU del funcionario habilitado | Sí | DepartmentCode (código departamento de SIU) | String | 10 caracteres | Código de departamento del funcionario habilitado | Sí | DepartmentName | String | 255 caracteres | Nombre de departamento SIU del funcionario habilitado | Sí | Role | String | 255 caracteres | Rol del funcionario habilitado | Sí | Mail | String | 255 caracteres | Dirección de correo electrónico del funcionario habilitado | Sí |
1.3.3.5.- Códigos error |
Tipo | Descripción |
---|
SRTException | Error en la operación. |
RemoteException | Error remoto. |
1.3.3.6.- Ejemplo de invocaciónDocument |
---|
Parámetro | Tipo | Longitud máxima | Descripción | Obligatorio |
nameNombre del archivo | Sí | fileSize | Long | 19 dígitos | Tamaño del archivo | CSV del documento El estado debe ser ORIGINAL o COPIA | Sí |
descriptionDescription | String | 255 caracteres | Descripción del |
archivodetachedSignature-Firma archivo en base64SíformatSignatureLong19 dígitosFormato la firmaSímimeTypeHashAlgorithm | String | 255 caracteres |
Tipo de archivo | Sí | 1.3.3.3.- Parámetros de respuesta
Nombre | Tipo | Descripción |
---|
idAttachment | String | Identificador del fichero subido |
1.3.3.4.- Validaciones
Nombre | Descripción |
---|
idApplication | Se valida que existe una aplicación dada de alta con ese código. |
fileInfo | Se comprueba que info no sea nulo |
fileInfo.name | Se comprueba que name no sea una cadena vacía |
fileInfo.name | Se valida que name contenga la extensión del archivo |
fileInfo.mimeType | Se valida que el mimeType o esté vacío |
content | Se comprueba que content sea distinto de null |
Algoritmo utilizado para generar el hash del documento | No |
2.1.3.- Resultado
Tipo | Descripción |
---|
ParamOutSendEntry | Datos del asiento registral en formato JSON |
El objeto ParamOutSendEntry presenta la siguiente estructura:
Parámetro | Tipo | Descripción |
---|
Result | GeneralResult | Objeto que contiene datos del asiento registral generado |
Result/EntryCode | String | Código del asiento registral |
Result/RequestTime | String | Fecha en la que se ha creado el asiento |
Result/RegisterTime | String | Fecha real en la que comienza el asiento registral. Si se crea el asiento un domingo, la fecha de registro será a partir del lunes. |
InvocationRequest | ParamInSendEntry | Objeto que contiene los datos que se habían proporcionado en la petición inicial. Los parámetros que devuelve son los mismos que los parámetros utilizados para realizar la petición. |
| ParamInSendEntry/Info/RegisterBook | Libro de registro utilizado. Por ejemplo: REG_GA. Este parámetro solamente forma parte de la respuesta. |
2.1.5.- Ejemplo
Code Block |
---|
language | java |
---|
title | Ejemplo de invocación |
---|
collapse | true |
---|
|
ParamAddAttachment paramAddAttachment = new ParamAddAttachment();
ResultAddAttachment resultAddAttachment = new ResultAddAttachment ();
FileInfo fileInfo= new FileInfo();
// URL del fichero a adjuntar
File file = new File("Adjunto");
// URL de la firma del fichero a adjuntar
byte[] arraySign = FileCopyUtils.copyToByteArray("Firma");
String detachedSignature = BASE64Encoder.encode(arraySign);
/ Nombre del fichero
fileInfo.setName("fichero.extension"//Construimos los parámetros de entrada para crear el asiento registral
ParamInSendEntry paramInSendEntry = new ParamInSendEntry();
//ID Descripción del fichero
fileInfo.setDescription ("testing document");
// Formato del documento
fileInfo.setMimeType("text/doc")Aplicación
paramInSendEntry.IdApplication = "SRT";
// Firma del documento
fileInfo.setDetachedSignature (detachedSignature);
// Tamaño del documento
fileInfo.setFileSize(new Long(dataSource.getFile().length()))Información
paramInSendEntry.Info = new Info();
//Asunto
Tipo de Firma
fileInfo.setFormatSignature("Formato de Firma")paramInSendEntry.Info.Subject = "SUBJECT";
//Tipo Identificadorde delsolicitud
Draft
paramAddAttachment.setIdDraft("idDraft");
paramAddAttachment.setFileInfo(fileInfo);
paramAddAttachment.setInvokingId(null);
resultAddAttachment = draftClient.addAttachmentByFileRef(paramAddAttachment,file); |
1.3.4.- Método 'sendDraft'
Método obsoleto. Para nuevas integraciones se recomienda utilizar el método sendFullEntry de EntryService (apartado 1.1.7)
Finalización del borrador, alta del fichero de solicitud (bytes) y alta del asiento registral correspondiente.
...
1.3.4.1.- Signatura
ResultSendDraft sendDraft(String idApplication, ParamSendDraft param) throws RemoteException, InternalCoreException, SRTException
1.3.4.2.- Parámetros de invocación
...
1.3.4.3.- Parámetros de respuesta
...
1.3.4.4.- Validaciones
...
1.3.4.5.- Códigos error
...
1.3.4.6.- Ejemplo de invocación
Code Block |
---|
language | java |
---|
title | Ejemplo de invocación |
---|
collapse | true |
---|
|
ParamSendDraft paramSendDraft = new ParamSendDraft();
ResultSendDraft resultSendDraft = new ResultSendDraft();
Request request = new Request();
// URL del fichero
byte[] arrayFile = FileCopyUtils.copyToByteArray("Fichero");
String fileSoli = BASE64Encoder.encode(arrayFile);
// URL de la firma del fichero
byte[] arraySign = FileCopyUtils.copyToByteArray("Firma");
String detachedSignature = BASE64Encoder.encode(arraySign);
// Formato del fichero
request.setMimeType("Formato");
// Nombre del fichero
request.setFileName("Nombre.Extension");
// Fichero a enviar
request.setRequest(fileSoli);
// Firma del fichero a enviar
request.setDetachedSignature(detachedSignature);
// Formato de la firma
request.setFormatSignature("Formato de Firma");
// Datos Especificos
Data[] data = new Data[1];
data[0] = new Data("Name","Value");
// Identificado del Draft
paramSendDraft.setIdDraft("idDraft");
paramSendDraft.setRequest(request);
paramSendDraft.setSpecificData(data);
paramSendDraft.setInvokingId(null);
resultSendDraft = draftClient.sendDraft(paramSendDraft); |
1.3.5.- Método 'sendFullDraft'
Método obsoleto. Para nuevas integraciones se recomienda utilizar el método sendFullEntry de EntryService (apartado 1.1.7)
Finalización del proceso de elaboración del borrador, alta del fichero de solicitud (contenido) y alta del asiento registral correspondiente.
...
1.3.5.1.- Signatura
ResultSendFullDraft sendFullDraft(String idApplication, ParamSendFullDraft param) throws RemoteException, SRTException
1.3.5.2.- Parámetros de invocación
...
Clave → 255 caracteres
Valor → 255 caracteres
...
1.3.5.3.- Parámetros de respuesta
...
1.3.5.4.- Validaciones
...
1.3.5.5.- Códigos error
...
1.3.5.6.- Ejemplo de invocación
Code Block |
---|
language | java |
---|
title | Ejemplo de invocación |
---|
collapse | true |
---|
|
ParamSendFullDraft paramSendFullDraft = new ParamSendFullDraft();
ResultSendFullDraft resultSendFullDraft = new ResultSendFullDraft();
Promoter promoter=new Promoter();
RequestPromoter request = new RequestPromoter();
//Fichero sin firma
byte[] arrayFile = FileCopyUtils.copyToByteArray(new File(new File
(".").getCanonicalPath()+"URL del fichero"));
String fileSoli = BASE64Encoder.encode(arrayFile);
// Firma del fichero
byte[] arraySign = FileCopyUtils.copyToByteArray(new File(new File
(".").getCanonicalPath()+"URL de la firma"));
String detachedSignature = BASE64Encoder.encode(arraySign);
// NIF/CIF del promotor
promoter.setIdentifierNumber("NIF/CIF");
// Nombre del promotor
promoter.setName("Name");
// Primer Apellido del promotor
promoter.setSurname1("Surmane1");
// Segundo Apellido del promotor
promoter.setSurname2("Surname2");
// Formato del Fichero
request.setMimeType("Formato Fichero");
// Nombre del Fichero
request.setFileName("Nombre Fichero");
// Fichero
request.setRequest(fileSoli);
// Firma del Fichero
request.setDetachedSignature(detachedSignature);
// Formato de la Firma
request.setFormatSignature ("Formato Firma");
// Promotor
request.setPromoter(promoter);
Titulo: Manual Integración
SRT v3.12
Página 42 de 129
Construyendo Europa desde Aragón
// Datos Especificos
Data[] data = new Data[1];
data[0] = new Data("Name", "Value");
//Identificador del Draft
paramSendFullDraft.setIdDraft ("idDraft");
paramSendFullDraft.setRequestPromoter(request);
paramSendFullDraft.setSpecificData(data);
paramSendFullDraft.setInvokingId(null);
resultSendFullDraft = draftClient.sendFullDraft(paramSendFullDraft); |
1.4.- Servicio InfoService
1.4.1.- Método 'listOrganism (ParamListOrganism)'
Devuelve la información (código/nombre) de un organismo y sus “hijos”. Obtiene organismos que contengan el dato extendido "srtCode". (Método DEPRECADO) Se debe utilizar el servicio organismTree que proporciona la aplicación Sistema de Identificación de Usuarios (SIU)
...
1.4.1.1.- Signatura
ResultListOrganisms listOrganism(String idApplication,ParamListOrganism param) throws RemoteException, SRTException
1.4.1.2.- Parámetros de invocación
...
1.4.1.3.- Parámetros de respuesta
...
1.4.1.4.- Validaciones
...
1.4.1.5.- Códigos error
...
1.4.1.6.- Ejemplo de invocación
Code Block |
---|
language | java |
---|
title | Ejemplo de invocación |
---|
collapse | true |
---|
|
ParamListOrganism paramListOrganism = new ParamListOrganism();
ResultListOrganisms resultListOrganisms = new ResultListOrganisms();
//Código de Organismo
paramListOrganism.setOrganismCode("ORGXXXXX");
resultListOrganisms = infoClient.listOrganism(paramListOrganism); |
1.4.2.- Método 'listRegisters'
Devuelve la información (código/nombre) de los libros de registro sobre los que puede registrar para un organismo. (Método DEPRECADO) Se recomienda utiliza el método fullListRegisters (apartado 1.4.3)
...
1.4.2.1.- Signatura
ResultListRegisters listRegisters(String idApplication, ParamListRegisters param) throws RemoteException, SRTException
1.4.2.2.- Parámetros de invocación
...
1.4.2.3.- Parámetros de respuesta
...
1.4.2.4.- Validaciones
...
1.4.2.5.- Códigos error
...
1.4.2.6.- Ejemplo de invocación
Code Block |
---|
language | java |
---|
title | Ejemplo de invocación |
---|
collapse | true |
---|
|
ParamListRegisters paramListRegisters = new ParamListRegisters();
ResultListRegisters resultListRegisters = new ResultListRegisters();
resultListRegisters = infoClient.listRegisters(paramListRegisters); |
1.4.3.- Método 'fullListRegisters'
Devuelve la información de los libros de registro sobre los que puede registrar para un organismo.
...
1.4.3.1.- Signatura
ResultFullListRegisters fullListRegisters(String idApplication, ParamFullListRegisters param) throws RemoteException, SRTException
1.4.3.2.- Parámetros de invocación
...
1.4.3.3.- Parámetros de respuesta
...
1.4.3.4.- Validaciones
...
1.4.3.5.- Códigos error
Tipo
...
Error remoto.
1.4.3.6.- Ejemplo de invocación
Code Block |
---|
language | java |
---|
title | Ejemplo de invocación |
---|
collapse | true |
---|
|
ParamFullListRegisters paramFullListRegisters = new ParamFullListRegisters();
ResultFullListRegisters resultFullListRegisters = new ResultFullListRegisters();
resultFullListRegisters = infoClient.fullListRegisters(paramFullListRegisters); |
1.4.4.- Método 'listOrganism (ParamListOrganismSIU)'
Devuelve la información (código/nombre) de un organismo y sus “hijos”. En este caso no tiene en cuenta el dato extendido "srtCode". (Método DEPRECADO) Se debe utilizar el servicio organismTree que proporciona la aplicación Sistema de Identificación de Usuarios (SIU)
...
1.4.4.1.- Signatura
ResultListOrganismsSIU listOrganism(String idApplication,ParamListOrganismSIU param) throws RemoteException, SRTException
1.4.4.2.- Parámetros de invocación
...
1.4.4.3.- Parámetros de respuesta
...
1.4.4.4.- Validaciones
...
1.4.4.5.- Códigos error
...
1.4.4.6.- Ejemplo de invocación
Code Block |
---|
language | java |
---|
title | Ejemplo de invocación |
---|
collapse | true |
---|
|
ParamListOrganismSIU paramListOrganismSIU = new ParamListOrganismSIU();
ResultListOrganismsSIU resultListOrganismsSIU = new ResultListOrganismsSIU();
//Código de Organismo
paramListOrganismSIU.setOrganismCode("ORGXXXXX");
resultListOrganismsSIU = infoClient.listOrganism(paramListOrganismSIU); |
1.5.- Servicio SRT (OBSOLETO)
Todos los métodos de este servicio han quedado obsoletos.
Los métodos son los siguientes:
...
paramInSendEntry.Info.RequestType = paramInSendEntry.Info.RequestType.SALIDA;
//Tipo de registro
paramInSendEntry.Info.RegisterType = paramInSendEntry.Info.RegisterType.EXTERNO;
//código de organismo
paramInSendEntry.Info.OrganismCode = "ORG09609";
//código del procedimiento
paramInSendEntry.Info.ProcedureCode = "CODIGO PROCEDIMIENTO";
//destinatario del justificante
paramInSendEntry.Info.JustifyingRecipient = new JustifyingRecipient();
paramInSendEntry.Info.JustifyingRecipient.Mail = "MAIL";
paramInSendEntry.Info.JustifyingRecipient.Phone = "TELEFONO";
//Comunicar
paramInSendEntry.Info.noComunicar = true;
//Emisor
Person person = new Person();
person.Nif = "NIF";
person.Name = "NOMBRE";
person.Surname1 = "APELLIDO 1";
person.Surname2 = "APELLIDO 2";
person.Mail = "MAIL";
person.Address = "DIRECCION";
//Asignamos persona emisora
paramInSendEntry.Sender = person;
// Representante del emisor
Organism organism = new Organism();
organism.Code = "CODIGO";
organism.Name = "NOMBRE";
//Asignamos organismo representante del emisor
paramInSendEntry.SenderAgent = organism;
//Destinatarios
List<Actor> receiversList = new ArrayList<Actor>();
Company company = new Company();
company.Cif = "CIF";
company.Name = "NOMBRE";
//Añadimos destinatario a la lista de destinatarios
receiversList.add(company);
//Asignamos lista de destinatarios
paramInSendEntry.Receivers = receiversList;
//Documento Principal
paramInSendEntry.MainDocument = new Document();
paramInSendEntry.MainDocument.Csv = "CSVDD1X36L2V6A200SRT";
paramInSendEntry.MainDocument.Description = "Descripción";
//Documentos Adjuntos
List<Document> attachedDocumentsList = new ArrayList<Document>();
Document attachedDocument = new Document();
attachedDocument.Csv = "CSVL916KYX34D1601PFI";
attachedDocument.Description = "prueba";
//Añadir documento adjunto a la lista de documentos adjuntos
attachedDocumentsList.add(attachedDocument);
attachedDocument = new Document();
attachedDocument.Csv = "CSVIW2QR9J65T1C01PFI";
attachedDocument.Description = "prueba gestor";
//Añadir documento adjunto a la lista de documentos adjuntos
attachedDocumentsList.add(attachedDocument);
//Asignamos la lista de documentos
paramInSendEntry.AttachedDocuments = attachedDocumentsList;
//Asignamos NIF del usuario que realiza la petición
paramInSendEntry.InvokingId = "11111111H";
//Lanzamos método del webservice para crear el asiento registral
client.sendEntry(paramInSendEntry);
|
2.1.6.- Códigos de error Expand |
---|
Aplicación que causa el error (SRT invoca también a otras aplicaciones) | Código error | Descripción error |
---|
SRT | 0001 | El id de la aplicación invocante es obligatorio | SRT | 0002 | La información general es obligatoria | SRT | 0003 | El asunto es obligatorio | SRT | 0004 | El tipo de entrada es obligatorio y solamente admite los siguientes valores: [0,1] | SRT | 0005 | El tipo de registro es obligatorio y solamente admite los siguientes valores: [I,E] | SRT | 0006 | El código de organismo de la información general es obligatorio | SRT | 0007 | El emisor es obligatorio | SRT | 0008 | El aportador del emisor es obligatorio | SRT | 0009 | Los destinatarios son obligatorios | SRT | 0010 | El organismo debe tener un código asociado | SRT | 0011 | El organismo debe tener un nombre asociado | SRT | 0012 | La persona debe tener un NIF/NIE asociado | SRT | 0013 | La compañía debe tener un CIF asociado | SRT | 0014 | La compañía debe tener un nombre asociado | SRT | 0015 | El tipo de actor no es válido. Valores admitidos: [Person,Organism,Company,UndefinedActor,ExternalOrganism,AuthorizedOfficer] | SRT | 0016 | El documento principal es obligatorio | SRT | 0017 | El id de invocación es obligatorio | SRT | 0018 | Registro duplicado {valor} | SRT | 0019 | Registro no encontrado {valor} | SRT | 0020 | Se ha encontrado más de un calendario para los parámetros de búsqueda establecidos | SRT | 0021 | No se ha encontrado ningún calendario para los parámetros de búsqueda establecidos | SRT | 0022 | RequestType: {valor} SenderType: {valor} ReceiverType: {valor}. No está permitido enviar de persona a persona. | SRT | 0023 | RequestType: {valor} SenderType: {valor} ReceiverType: {valor}. No está permitido enviar de persona a compañía. | SRT | 0024 | RequestType: {valor} SenderType: {valor} ReceiverType: {valor}. No está permitido enviar de compañía a compañía. | SRT | 0025 | RequestType: {valor} SenderType: {valor} ReceiverType: {valor}. No está permitido enviar de compañía a persona. | SRT | 0026 | RequestType: {valor} ReceiverType: {valor}. En asientos de entrada el receptor debe ser un organismo. | SRT | 0027 | RequestType: {valor} SenderType: {valor}. En asientos de salida el emisor debe ser un organismo. | SRT | 0028 | Error en la validación del organismo. Organismo Receptor = {valor} Organismo Info = {valor}. En asientos de entrada el código de organismo del receptor debe coincidir con el código de organismo de la información general. | SRT | 0029 | Error en la validación del organismo. Organismo Emisor = {valor} Organismo Info = {valor}. En asientos de salida el código de organismo del emisor debe coincidir con el código de organismo de la información general. | SRT | 0030 | En asientos de entrada solamente puede haber un destinatario. En este caso hay {valor} | SRT | 0031 | Para realizar un registro de salida es necesario identificar al representante del emisor | SRT | 0034 | Organismo incorrecto. No se puede registrar para el procedimiento indicado Error al obtener el organismo sobre el que registrar | SRT | 0035 | El correo del justifying recipient no es correcto | SRT | 0036 | El teléfono del justifying recipient no es correcto | SRT | 0037 | El código de procedimiento es obligatorio | SRT | 0038 | El destinatario del justificante de registro debe tener asignado un correo electrónico y/o un teléfono | SRT | 0039 | El tipo de actor es obligatorio y solamente admite los siguientes valores: [Person,Organism,Company,UndefinedActor,ExternalOrganism,AuthorizedOfficer] | SRT | 0040 | RequestType: {valor} SenderType: {valor} ReceiverType: {valor}. No está permitido enviar de persona a undefinedActor. | SRT | 0041 | RequestType: {valor} SenderType: {valor} ReceiverType: {valor}. No está permitido enviar de compañía a undefinedActor. | SRT | 0042 | RequestType: {valor} SenderType: {valor} ReceiverType: {valor}. No está permitido enviar de undefinedActor a undefinedActor. | SRT | 0043 | RequestType: {valor} SenderType: {valor} ReceiverType: {valor}. No está permitido enviar de undefinedActor a persona. | SRT | 0044 | RequestType: {valor} SenderType: {valor} ReceiverType: {valor}. No está permitido enviar de undefinedActor a compañía. | SRT | 0045 | El nombre del undefinedActor es obligatorio. | SRT | 0046 | El primer apellido del undefinedActor es obligatorio. | SRT | 0047 | En asientos de entrada, el tipo UndefinedActor solamente se permite para el Sender. | SRT | 0048 | En asientos de salida, el tipo UndefinedActor solamente se permite para el Receiver. | SRT | | El código del organismo raíz externo es obligatorio. | SRT | 0050 | El nombre del organismo raíz externo es obligatorio. | SRT | 0051 | El código del organismo externo (nivel 2) es obligatorio. | SRT | 0052 | El nombre del organismo externo (nivel 2) es obligatorio. | SRT | 0053 | El nif no puede tener más de 20 caracteres. | SRT | 0054 | El cif no puede tener más de 20 caracteres. |
| 0055 | La persona debe tener un nombre asociado |
| 0056 | La persona debe tener un apellido asociado |
| 0057 | El campo name del AuthorizedOfficer es obligatorio. |
| 0058 | El campo surname1 del AuthorizedOfficer es obligatorio. |
| 0059 | El campo nif del AuthorizedOfficer es obligatorio. |
| 0060 | El campo nif del AuthorizedOfficer no puede tener más de 9 caracteres. |
| 0061 | El campo rpt del AuthorizedOfficer es obligatorio. |
| 0062 | El campo rpt del AuthorizedOfficer no puede tener más de 10 caracteres. |
| 0063 | El campo organismCode del AuthorizedOfficer es obligatorio. |
| 0064 | El campo organismCode del AuthorizedOfficer no puede tener más de 10 caracteres. |
| 0065 | El campo departmentCode del AuthorizedOfficer es obligatorio. |
| 0066 | El campo departmentCode del AuthorizedOfficer no puede tener más de 10 caracteres. |
| 0067 | El campo role del AuthorizedOfficer es obligatorio. |
| 0068 | El campo mail del AuthorizedOfficer es obligatorio. |
| 0069 | En asientos de entrada, el tipo AuthorizedOfficer solamente se permite para el SenderAgent. |
| 0070 | El tipo AuthorizedOfficer solamente es válido para registros externos. |
| 0071 | En asientos de salida, el tipo AuthorizedOfficer solamente se permite para el ReceiverAgent. |
| 0072 | El campo organismName del AuthorizedOfficer es obligatorio. |
| 0073 | El campo departmentName del AuthorizedOfficer es obligatorio. | CCSV | 1000 | Error en la llamada con CCSV: 'mensaje de error que devolvería CCSV' | CCSV | 1001 | Los parámetros contienen documentos que no existen en CCSV | CCSV | 1002 | El estado de {valor} debe ser ORIGINAL o COPIA | CCSV | 1003 | La descripción de {valor} no corresponde con el metadato de CCSV | CCSV | 1004 | Error al añadir los metadatos generales en CCSV | CCSV | 1005 | Error al guardar documento en CCSV | CCSV | 1006 | Error al obtener el documento de CCSV | SIFE | 3000 | Error en la llamada con SIFE | SIFE (timestamp) | NO_ALG_RESTAMP_ERROR | El valor del atributo timestampForm no es valido. Se trata de un resellado, únicamente se permite el valor 'XML' | SIFE (timestamp) | NO_DIGEST_ALGORITHM | El valor del atributo digestAlgorithm del objeto TimestampParameters es nulo | SIFE (timestamp) | NO_PREV_PARAMETERS_ERROR | Algunos de los parámetros para realizar el resellado es nulo | SIFE (timestamp) | NO_DOCUMENT_ERROR | El atributo document del objecto TimestampParameters es nulo | SIFE (timestamp) | REQUIRED_DATA_ERROR | Datos del contenido del documento son nulos | SIFE (timestamp) | REQUIRED_HASH_ERROR | Faltan datos para la realización de una firma a partir de HASH | SIFE (timestamp) | NO_MATCH_DIGEST_ALGORITHM | Valor del atributo digestAlgorithm del objeto TimestampParameters no coincide con el del documento | SIFE (timestamp) | NO_DOCUMENT_ERROR | No se ha podido recuperar el documento a firmar | PAU | 4000 | El método {valor} no tiene asociado un código en PAU | PAU | 4001 | Error al recuperar los atributos del procedimiento {valor} | PAU (authorizeApplication) | AUTHORIZEAPPLICATION_00 | Error durante el proceso de autorización. | PAU (authorizeApplication) | AUTHORIZEAPPLICATION_01 | El parámetro alias de la aplicación la aplicación A es nulo. | PAU (authorizeApplication) | AUTHORIZEAPPLICATION_02 | El parámetro alias de la aplicación B es nulo. | PAU (authorizeApplication) | AUTHORIZEAPPLICATION_03 | El parámetro methodCode es nulo. | PAU (authorizeApplication) | AUTHORIZEAPPLICATION_04 | El parámetro Ip es nulo. | PAU (authorizeApplication) | AUTHORIZEAPPLICATION_05 | No existe una relación entre aplicaciones. | PAU (authorizeApplication) | AUTHORIZEAPPLICATION_06 | La ip no está en la lista de ip's permitidas. | PAU (methodApplicationList) | METHODAPPLICATIONLIST_00 | Error durante el proceso de búsqueda | PAU (methodApplicationList) | METHODAPPLICATIONLIST_01 | El objeto ParamMethodApplicationList es nulo | PAU (methodApplicationList) | METHODAPPLICATIONLIST_02 | No hay Ips ni métodos asociados a la aplicación | PAU (methodApplicationList) | METHODAPPLICATIONLIST_03 | Ha ocurrido algún error al realizar la búsqueda | PAU (methodApplicationList) | METHODAPPLICATIONLIST_04 | El Alias de la Aplicación es nulo | PAU (procedureDetail) | PROCEDUREDETAIL_00 | Error durante el proceso de búsqueda de procedure detail | PAU (procedureDetail) | PROCEDUREDETAIL_01 | El objeto paramProcedureDetail es nulo | PAU (procedureDetail) | PROCEDUREDETAIL_02 | No existe un procedimiento para esa signature | PAU (procedureDetail) | PROCEDUREDETAIL_03 | La Signature es nula | PAU (getProcedureAttributes) | PROCEDUREATTRIBUTES_00 | Error que proviene del webservices. | PAU (getProcedureAttributes) | PROCEDUREATTRIBUTES_01 | El objeto paramGetProcedureAttributes es nulo. | PAU (getProcedureAttributes) | PROCEDUREATTRIBUTES_02 | La signatura es nula. | PAU (getProcedureAttributes) | PROCEDUREATTRIBUTES_03 | El idEntity es nulo. | SIU | 5000 | No se ha encontrado ningún libro de registro sobre el que se pueda registrar en toda la rama del organismo indicado. | SIU | 5001 | Error al recuperar información del organismo en SIU. | SIU | 5002 | Error recuperando el organismo padre. No se ha encontrado el dato extendido [codigo de identidad] para este organismo. | SIU | 5003 | Se ha producido un error en la llamada a SIU, organismList Error al recuperar la lista de organismos. El organismo {valor} no corresponde a ningún organismo ni de SIU ni de SRT. Se ha pasado el organismo {valor}, que ha sido dado de baja, se ha intentado buscar un organismo válido y se ha llegado a que el organismo {valor} ha sido dado de baja pero no ha sido sustituido por otro. No se ha encontrado un organismo válido y es imposible continuar. Error al recuperar la lista de organismos. El listado devuelto por SIU es nulo o vacío | SIU (organismList) | ORGANISMLIST_00 | Error durante la consulta de los datos de organismos | SIU (organismList) | ORGANISMLIST_01 | El objeto paramOrganismList es nulo | SIU (organismList) | ORGANISMLIST_02 | No se han encontrado organismos para estos parámetros de búsqueda | SIU (organismList) | ORGANISMLIST_03 | Ha ocurrido algún error al realizar la búsqueda | SIU (organismList) | ORGANISMLIST_04 | No existe el organismo de entrada | SIU (rootFatherOrganismByOrganismCode) | ORGANISMROOTFATHER_00 | Error durante la consulta de los datos del padre raíz del organismo | SIU (rootFatherOrganismByOrganismCode) | ORGANISMROOTFATHER_01 | El objeto paramRootFatherOrganism es nulo | SIU (rootFatherOrganismByOrganismCode) | ORGANISMROOTFATHER_02 | No existe el organismo del que se pretende averiguar la raíz | SIU (rootFatherOrganismByOrganismCode) | ORGANISMROOTFATHER_03 | Ha ocurrido algún error al realizar la búsqueda | SIU (rootFatherOrganismByOrganismCode) | 5004 | Se ha producido un error en la llamada a SIU, rootFatherOrganismByOrganismCode: {mensaje del error} | SGA | 6001 | Error al enviar mail de organismo dado de baja al usuario. |
IMPORTANTE: Los errores anteriores siempre irán acompañados de un código de error numérico en la cabecera (header) de la respuesta HTTP: 401 (UNAUTHORIZED) → Este código se devuelve cuando la aplicación que realiza la invocación no está autorizada en PAU para utilizar el servicio 400 (BAD REQUEST) → Este código se devuelve cuando el error producido al dar de alta el asiento registral se debe a datos incorrectos introducidos por parte del usuario 500 (INTERNAL SERVER ERROR) → Este código se devuelve cuando se produce un error inesperado al dar de alta el asiento registral Si en la petición no se ha producido ningún error, se obtendrá el código de estado HTTP 200.
|
2.1.7.- Recepción del código del justificante de registroUna vez que se ha realizado la parte asíncrona, se enviará un evento a través de SGA a la aplicación integradora. - Si el justificante de registro se ha generado correctamente, se enviará un evento con los siguientes datos
- CSV_REGISTER → código del justificante generado
- ENTRY_CODE → código del asiento registral para que la aplicación integradora pueda asociar el código CSV del justificante de registro al asiento registral obtenido en la petición síncrona
- ERROR → 0
- Si el justificante de registro no se ha podido generar (ha quedado KO al haberse agotado todos los reintentos), se enviará un evento con los siguientes datos
- CSV_REGISTER → 0
- ENTRY_CODE → código del asiento registral del cual no se ha podido generar el justificante
- ERROR → ERROR GENERACIÓN RECIBO
La aplicación integradora debe estar dada de alta en SGA, debe estar suscrita al método "sendEntry" de SRT en SGA para poder recibir los eventos y además debe implementar un servicio REST para poder recibir los eventos y proporcionar la URL REST a SGA para que se de de alta y así, poderlos recibir. En el manual de integración de la aplicación SGA, en el apartado "2. - Servicio IEventsService" se explica el proceso de integración para poder recibir los eventos.
|