En este apartado se explicarán los servicios de pfi y cómo inicializar su cliente java
...
Mediante sintaxis xml podemos definir fácilmente la configuración del cliente CXF para que acceda a los servicios de PFI. Inicialmente deberemos definir la referencia a la interfaz del servicio, que se encuentra dentro del cliente suministrado, así como a la dirección a la que apunta el wsdl levantado.
Code Block |
---|
language | xml |
---|
theme | Eclipse |
---|
title | IDocumentIntegrationService |
---|
|
<simple:client id="pfiClient"
serviceClass="es.aragon.pfi.core.ws.IDocumentIntegrationService"
address="http://[entorno:puerto]/pfi_core/services/IDocumentIntegrationServiceWS"
serviceName="s:IDocumentIntegrationService"
xmlns:s="http://ws.core.pfi.aragon.es/ "
endpointName="s:IDocumentIntegrationServiceWS"
>
<simple:outInterceptors>
<ref bean="authorizeInterceptor" />
</simple:outInterceptors>
</simple:client> |
Como se puede observar en la definición XML del cliente CXF, se deberán configurar las urls donde se ubica el servicio IDocumentIntegrationServiceWS, para ello habrá que sustituir entorno y puerto por los valores correctos.
Las aplicaciones que se integran con PFI deben proporcionar en todas las peticiones el código de aplicación.
Para ello, utilizando los denominados interceptores, es posible rellenar este valor automáticamente en todas las peticiones. Como se ve en la definición del cliente se ha definido un interceptor de salida que entra en funcionamiento en el momento de construir la petición SOAP y que inserta el valor del código de aplicación en los parámetros de todos los métodos de PFI invocados.
Code Block |
---|
|
<simple:outInterceptors>
<ref bean="authorizeInterceptor" />
</simple:outInterceptors> |
La definición al bean authotizeInterceptor que se incluye a continuación, permite indicarle el código de la aplicación, de esta manera el interceptor se encarga de establecer dicho valor en todos los parámetros de las llamadas a los servicios PFI. La clase con el interceptor de salida AuthorizeOutInterceptor se proporciona junto con el cliente de PFI.
Code Block |
---|
|
<bean id="authorizeInterceptor" class="es.aragon.pfi.core.util.interceptors.AuthorizeOutInterceptor">
<property name="applicationId" value="[código aplicación llamante]"/>
</bean> |
...
Expand |
---|
|
Signatura List<Signer> findQuickSignerList(SignerSearch signerSearch) Parámetros de invocación Nombre | Tipo | Descripción |
---|
signerSearch | 1241284867 | Parámetros de búsqueda (ver detalle de campos en el apartado de objetos comunes) |
Parámetros de respuesta Nombre | Tipo | Descripción |
---|
signerList | List<1241284867> | Lista de firmantes encontrados según los criterios de búsqueda indicados |
Códigos error Código | Descripción |
---|
SIGNERSERVICEIMPL_FINDQUICKSIGNERLIST | Error genérico durante el servicio findQuickSignerList | ORGANISMLIST_XX | Error durante la consulta de los datos en SIU (XX indica el código de error en SIU) |
Ejemplos de invocación Code Block |
---|
language | java |
---|
firstline | 1 |
---|
title | Ejemplo de invocación |
---|
linenumbers | true |
---|
| SignerSearch signerSearch = new SignerSearch();
signerSearch.setSignerNif("25448659X");
List<Signer> signerList = iSignerImpl.findQuickSignerList(signerSearch); |
|
...
Expand |
---|
|
Signatura List<SignerWithAuditor> findQuickSignerListWithAuditor(SignerSearch signerSearch) Parámetros de invocación Parámetros de respuesta Nombre | Tipo | Descripción |
---|
signerAuditorList |
| Lista de firmantes y auditores encontrados según los criterios de búsqueda indicados |
Códigos error Código | Descripción |
---|
FIND_QUICKSIGNER_LIST_WITH_AUDITOR | Error inesperado al buscar en la tabla de firmantes y/o auditores | PROPOSEDSIGNERMANAGER_FINDQUICKSIGNERLISTWITHAUDITOR | Error genérico durante el servicio findQuickSignerList |
Ejemplos de invocación Code Block |
---|
language | java |
---|
firstline | 1 |
---|
title | Ejemplo de invocación |
---|
linenumbers | true |
---|
| SignerSearch signerSearch = new SignerSearch();
signerSearch.setApplicationId("PFI");
signerSearch.setOrganismCode("ORG07458");
signerSearch.setSignerNif("00000000T");
List <SignerWithAuditor> listSignerAuditor = signerServiceImpl.findQuickSignerListWithAuditor(signerSearch); |
|
...
Expand |
---|
|
Signatura List<Signer> findSignerList(SignerSearch signerSearch) Parámetros de invocación Nombre | Tipo | Descripción |
---|
signerSearch | 1241284867 | Parámetros de búsqueda (ver detalle de campos en el apartado de objetos comunes) |
Parámetros de respuesta Nombre | Tipo | Descripción |
---|
signerList | List<1241284867> | Lista de firmantes encontrados según los criterios de búsqueda indicados |
Códigos error Código | Descripción |
---|
SIGNERSERVICEIMPL_FINDSIGNERLIST | Error genérico durante el servicio findSignerList | GET_ORGANISM_HISTORICAL_INFORMATION_XX | Error durante la consulta de los datos en SIU (XX indica el código de error en SIU) |
Ejemplos de invocación Code Block |
---|
language | java |
---|
firstline | 1 |
---|
title | Ejemplo de invocación |
---|
linenumbers | true |
---|
| SignerSearch signerSearch = new SignerSearch();
signerSearch.setOrganismCode("ORG0001");
List<Signer> signerList = iSignerImpl.findSignerList(signerSearch); |
|
...
Expand |
---|
|
Signatura Signer findSignerByNif(SignerSearch signerSearch) Parámetros de invocación Nombre | Tipo | Descripción |
---|
signerSearch | 1241284867 | Parámetros de búsqueda (ver detalle de campos en el apartado de objetos comunes) |
Parámetros de respuesta Nombre | Tipo | Descripción |
---|
signer | 1241284867 | Firmante cuyo nif coincida con el proporcionado en el parámetro de búsqueda |
Códigos error Código | Descripción |
---|
SIGNERSERVICEIMPL_FINDSIGNERBYNIF | Error genérico durante el servicio findSignerByNif | GET_USER_INFORMATION_XX | Error durante la consulta de los datos en SIU (XX indica el código de error en SIU) |
Ejemplos de invocación Code Block |
---|
language | java |
---|
firstline | 1 |
---|
title | Ejemplo de invocación |
---|
linenumbers | true |
---|
| SignerSearch signerSearch = new SignerSearch();
signerSearch.setUserNif("78965412X");
Signer signer = iSignerImpl.findSignerByNif(signerSearch); |
|
...
Expand |
---|
|
Signatura ParamProposedSigner findProposedSigner(ParamProposedSignerSearch paramProposedSignerSearch) Parámetros de invocación Nombre | Tipo | Descripción |
---|
paramProposedSignerSearch | 1241284867 | Parámetros de búsqueda (ver detalle de campos en el apartado de objetos comunes) |
Parámetros de respuesta Nombre | Tipo | Descripción |
---|
proposedSigner | 1241284867 | Firmante propuesto encontrado según los criterios de búsqueda indicados |
Códigos error Código | Descripción |
---|
SIGNERSERVICEIMPL_FINDPROPOSEDSIGNER | Error genérico durante el servicio findProposedSigner |
Ejemplos de invocación Code Block |
---|
language | java |
---|
firstline | 1 |
---|
title | Ejemplo de invocación |
---|
linenumbers | true |
---|
| ParamProposedSignerSearch paramProposedSignerSearch = new ParamProposedSignerSearch();
paramProposedSignerSearch.setSignerNif("78965412X");
ParamProposedSigner proposedSigner = iSignerImpl.findProposedSigner(paramProposedSignerSearch); |
|
...
Expand |
---|
|
Signatura ParamProposedSignerList findProposedSignerList(ParamProposedSignerSearch paramProposedSignerSearch) Parámetros de invocación Nombre | Tipo | Descripción |
---|
paramProposedSignerSearch | 1241284867 | Parámetros de búsqueda (ver detalle de campos en el apartado de objetos comunes) |
Parámetros de respuesta Nombre | Tipo | Descripción |
---|
proposedSignerList | ParamProposedSignerList | Objeto que encapsula la lista de firmantes propuestos encontrados y el tamaño de dicha lista |
Códigos error Código | Descripción |
---|
SIGNERSERVICEIMPL_FINDPROPOSEDSIGNERLIST | SIGNERSERVICEIMPL_FINDPROPOSEDSIGNERLIST |
Ejemplos de invocación Code Block |
---|
language | java |
---|
firstline | 1 |
---|
title | Ejemplo de invocación |
---|
linenumbers | true |
---|
| ParamProposedSignerSearch paramProposedSignerSearch = new ParamProposedSignerSearch();
paramProposedSignerSearch.setSignerNif("78965412X");
ParamProposedSignerList proposedSigner = iSignerImpl.findProposedSignerList(paramProposedSignerSearch); |
|
...
Expand |
---|
|
Signatura Document findDocument(DocumentSearch documentSearch) Parámetros de invocación Nombre | Tipo | Descripción |
---|
documentSearch | 1241284867 | Parámetros de búsqueda (ver detalle de campos en el apartado de objetos comunes) |
Parámetros de respuesta Nombre | Tipo | Descripción |
---|
document | 1241284867 | Documento encontrado según el criterio de búsqueda proporcionada |
Códigos error Código | Descripción |
---|
DOCUMENTSERVICEIMPL_FINDDOCUMENT_02 | Error genérico durante el servicio findDocument |
Ejemplos de invocación Code Block |
---|
language | java |
---|
firstline | 1 |
---|
title | Ejemplo de invocación |
---|
linenumbers | true |
---|
| DocumentSearch documentSearch = new DocumentSearch();
documentSearch.setCsv("CSV6F70H2A66T1E01PFI");
Document document = iDocumentImpl.findDocument(documentSearch);
|
|
...
Expand |
---|
|
Signatura List<Document> findDocumentList(DocumentSearch documentSearch) Parámetros de invocación Nombre | Tipo | Descripción |
---|
documentSearch | 1241284867 | Parámetros de búsqueda (ver detalle de campos en el apartado de objetos comunes) |
Parámetros de respuesta Nombre | Tipo | Descripción |
---|
documentList | List<1241284867> | Lista de documentos encontrados según los parámetros de búsqueda indicados |
Códigos error Código | Descripción |
---|
DOCUMENTSERVICEIMPL_FINDDOCUMENTLIST_01 | Error genérico durante el servicio findDocumentList | DOCUMENTSERVICEIMPL_FINDDOCUMENTLIST_02 | Error genérico durante el servicio findDocumentList |
Ejemplos de invocación Code Block |
---|
language | java |
---|
firstline | 1 |
---|
title | Ejemplo de invocación |
---|
linenumbers | true |
---|
| DocumentSearch documentSearch = new DocumentSearch();
documentSearch.setState(2);
List<Document> documentList = iDocumentImpl.findDocumentList(documentSearch);
|
|
...
Expand |
---|
|
Signatura ResultTrayList findDocumentTray(ParamTraySearch paramTraySearch) Parámetros de invocación Nombre | Tipo | Descripción |
---|
paramTraySearch | 1241284867 | Parámetros de búsqueda (ver detalle de campos en el apartado de objetos comunes) |
Parámetros de respuesta Nombre | Tipo | Descripción |
---|
resultTrayList | ResultTrayList | Lista de documentos para la bandeja que cumplen los criterios de búsqueda |
Códigos error Código | Descripción |
---|
DOCUMENTSERVICEIMPL_FINDDOCUMENTTRAY | Error genérico durante el servicio findDocumentTray | FIND_DOCUMENT_LIST | Error al buscar los documentos en bbdd |
Ejemplos de invocación Code Block |
---|
language | java |
---|
firstline | 1 |
---|
title | Ejemplo de invocación |
---|
linenumbers | true |
---|
| ParamTraySearch paramTraySearch = new ParamTraySearch();
paramTraySearch.setDraft(true);
ResultTrayList resultTrayList = iDocumentImpl.findDocumentTray(paramTraySearch);
|
|
...
Expand |
---|
|
Signatura ResultTrayListVisibility findDocumentTrayVisibility(ParamTraySearch paramTraySearch) Parámetros de invocación Nombre | Tipo | Descripción |
---|
paramTraySearch | 1241284867 | Parámetros de búsqueda (ver detalle de campos en el apartado de objetos comunes) |
Parámetros de respuesta Nombre | Tipo | Descripción |
---|
resultTrayListVisibility | ResultTrayListVisibility | Lista de documentos para la bandeja que cumplen los criterios de búsqueda con información de visibilidad |
Códigos error Código | Descripción |
---|
DOCUMENTSERVICEIMPL_FINDDOCUMENTTRAY | Error genérico durante el servicio findDocumentTrayVisibility | PAUINTEGRATION_PROCEDURELISTBYUSER | Error en el sistema de autentificación. Se ha producido el siguiente error al buscar la lista de procedimientos del usuario desde PAU | FIND_DOCUMENT_LIST | Error al buscar los documentos en bbdd |
Ejemplos de invocación Code Block |
---|
language | java |
---|
firstline | 1 |
---|
title | Ejemplo de invocación |
---|
linenumbers | true |
---|
| ParamTraySearch paramTraySearch = new ParamTraySearch();
paramTraySearch.setDraft(true);
ResultTrayListVisibility resultTrayListVisibility = iDocumentImpl.findDocumentTrayVisibility(paramTraySearch);
|
|
...
Expand |
---|
|
Signatura List<ParamFolder> findDocumentFolderList(DocumentSearch document) Parámetros de invocación Nombre | Tipo | Descripción |
---|
document | 1241284867 | Parámetros de búsqueda (ver detalle de campos en el apartado de objetos comunes) |
Parámetros de respuesta Nombre | Tipo | Descripción |
---|
paramFolder | List<ParamFolder> | Error inesperado al buscar los diferentes folder a los que pertenecen los documentos |
Códigos error Código | Descripción |
---|
DOCUMENTSERVICEIMPL_FINDDOCUMENTFOLDERLIST | Error genérico durante el servicio findDocumentFolderList | NOT_EXIST_DOCUMENT |
|
Ejemplos de invocación Code Block |
---|
language | java |
---|
firstline | 1 |
---|
title | Ejemplo de invocación |
---|
linenumbers | true |
---|
| DocumentMetadataSearch documentMetadataSearch = new DocumentMetadataSearch();
|
|
...
Expand |
---|
|
Signatura Integer getDocumentState(ParamGetDocumentState paramGetDocumentState) Parámetros de invocación Nombre | Tipo | Descripción |
---|
paramGetDocumentState | 1241284867 | Parámetros de entrada (ver detalle de campos en el apartado de objetos comunes) |
Parámetros de respuesta Nombre | Tipo | Descripción |
---|
state | Integer | Numero de estado correspondiente en porta-firmas: 6 → En paralelo 4 → Anulado 3 → Firma Programada 2 → Firmado 1 → Pendiente de firma 0 → Borrador |
Códigos error Código | Descripción |
---|
DOCUMENTSERVICEIMPL_GETDOCUMENTSTATE | Error genérico durante el servicio getDocumentState | FIND_DOCUMENT | Error inesperado al buscar un documento | DOCUMENTMANAGERIMPL_FINDDOCUMENT | Error buscando documento |
Ejemplos de invocación Code Block |
---|
language | java |
---|
firstline | 1 |
---|
title | Ejemplo de invocación |
---|
linenumbers | true |
---|
| ParamGetDocumentState paramGetDocumentState = new ParamGetDocumentState();
paramGetDocumentState.setCsv("CSVP55RYQS7R9AF01PFI");
Integer documentState = IDocumentService.getDocumentState(paramGetDocumentState);
|
|
...
Expand |
---|
|
Signatura ResultGetOperation getOperation(ParamGetOperation paramGetOperation) Parámetros de invocación Nombre | Tipo | Descripción |
---|
paramGetOperation | ParamGetOperation | Parámetros de entrada (ver detalle de campos en el apartado de objetos comunes) |
Parámetros de respuesta Nombre | Tipo | Descripción |
---|
resultGetOperation | ResultGetOperation | Objeto que encapsula el resultado de la operación |
Códigos error Código | Descripción |
---|
DOCUMENTSERVICEIMPL_GETOPERATION | Error genérico durante el servicio getOperation | SCDEINTEGRATION_GETSTATUS | Error al comprobar el estado de la operacion | LOAD_OPERATION | Error buscando operación. El usuario no tiene permisos para ver la operación | FIND_OPERATION | Error buscando operación |
Ejemplos de invocación Code Block |
---|
language | java |
---|
firstline | 1 |
---|
title | Ejemplo de invocación |
---|
linenumbers | true |
---|
| ParamGetOperation paramGetOperation = new ParamGetOperation();
paramGetOperation.setDocumentId(1L);
ResultGetOperation resultGetOperation = IDocumentService.getOperation(paramGetOperation);
|
|
...
Expand |
---|
|
Signatura ResultSendDocument sendDocumentumDocument(ParamSendDocument paramSendDocument) Parámetros de invocación Nombre | Tipo | Descripción |
---|
paramSendDocument | 1241284867 | Parámetros de entrada (ver detalle de campos en el apartado de objetos comunes) |
Parámetros de respuesta Nombre | Tipo | Descripción |
---|
resultSendDocument | 1241284867 | Objeto que encapsula el resultado de la operación, proporcionado información en caso de error |
Códigos error Código | Descripción |
---|
DOCUMENTINTEGRATIONMANAGERIMPL_SENDDOCUMENTUMDOCUMENT | Error inesperado al crear un documento en la tabla de PFI_DOCUMENT | DOCUMENTMANAGERIMPL_FINDDOCUMENT | Error inesperado al buscar un documento | LOAD_DOCUMENT | Error cargando documentos | SIUINTEGRATION_SENDPROPOSEDSIGNERS | Error en el sistema de identificación. El firmante propuesto debe estar dado de alta en el sistema de identificación de usuarios (SIU) |
Ejemplos de invocación Code Block |
---|
language | java |
---|
firstline | 1 |
---|
title | Ejemplo de invocación |
---|
linenumbers | true |
---|
| ParamSendDocument paramSendDocument = new ParamSendDocument();
paramSendDocument.setCsv("CSVDA6FLBW3PNAX01PFI");
paramSendDocument.setApplicationId("PFI");
paramSendDocument.setUserNif("00000000T");
ResultSendDocument resultSendDocument = iDocumentIntegrationImpl.sendDocumentumDocument(paramSendDocument);
|
|
...
Expand |
---|
|
Signatura ResultUpdateQuorumAndLimitDate updateQuorumAndLimitDateDocument (ParamUpdateQuorumAndLimitDate paramUpdateQuorumAndDate) Parámetros de invocación Nombre | Tipo | Descripción |
---|
paramUpdateQuorumAndDate | 1241284867 | Parámetros de entrada (ver detalle de campos en el apartado de objetos comunes) |
Parámetros de respuesta Nombre | Tipo | Descripción |
---|
resultUpdateQuorum | 1241284867 | Objeto que encapsula el resultado de la operación, proporcionado información en caso de error |
Códigos error Código | Descripción |
---|
QUORUMTASK_DOCUMENTNONEXISTING | El documento con el CSV especificado no existe en la base de datos de PFI | QUORUMTASK_QUORUMWRONG | El valor de quorum indicado es incorrecto. Debe ser mayor que 0 y menor o igual que el número de firmantes propuestos del documento | QUORUMTASK_DATEWRONG | La fecha límite de firma del documento ha expirado | QUORUMTASK_NOMULTIFIRMA | El documento no es multifirma | QUORUMTASK_SIGNED | El documento ya ha sido firmado por alguno de los firmantes |
Ejemplos de invocación Code Block |
---|
language | java |
---|
firstline | 1 |
---|
title | Ejemplo de invocación |
---|
linenumbers | true |
---|
| ParamUpdateQuorumAndLimitDate paramUpdateQuorumAndDate = new ParamUpdateQuorumAndLimitDate();
paramUpdateQuorumAndDate.setCsv("CSVP55RYQS7R9AF01PFI");
paramUpdateQuorumAndDate.setQuorum(2);
//queremos de fecha límite por ejemplo el día de hoy más una semana
Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
Integer incFecha = 7;
cal.add(Calendar.DATE, incFecha);
paramCheckQuorumAndDate.setDate(cal.getTime());
paramCheckQuorumAndDate.setQuorumOnly(false);
ResultUpdateQuorumAndLimitDate resultCheckQuorumAndDate = iDocumentIntegrationImpl.updateQuorumAndLimitDateDocument(paramUpdateQuorumAndDate);
|
|
...
- sendEvent → Método que informa sobre los cambios de estado de los documentos de PFI. Para poder recibir estos eventos de cambios de estado, los documentos deben tener asignado el alias de la aplicación receptora en el metadato dea_ident_codigo_aplicacion. De lo contrario, no se recibirán los eventos. El evento se compone de clave y valor. La clave es el CSV del documento y el valor es el estado del documento. Los cambios de estado que se notifican son los siguientes:
- Estado 3 (Firmando asíncronamente) → Estado al que se pasan los documentos al inicio del proceso de firma para indicar que se está realizando la firma del documento.
- Estado 6 (Firma paralela) → Se alcanza este estado cuando un documento tiene varios firmantes propuestos y alguno de ellos ya ha firmado pero todavía no se cumple el quorum.
- Estado 2 (Firmado) → Documento firmado.
- Estado 0 (Borrador) → Se recibe este evento cuando se rechaza un documento pendiente de firma.
- Estado 9 (Anulado) → Se recibe este evento cuando se anula un documento.
...
Objeto Anchor |
---|
| ParamProposedSigner |
---|
| ParamProposedSigner |
---|
|
'ParamProposedSigner'
Nombre | Tipo | Descripción |
---|
proposedSignerId | Long | Id del firmante propuesto |
signerNif | String | Nif del firmante propuesto |
signerName | String | Nombre del firmante propuesto |
signerDateFrom | String | Fecha de selección del firmante |
signerOrder | String | Orden de firma del firmante propuesto |
signaturePosition | String | Tipo de posición de los pies de firma |
position | String | Coordenadas donde se ha colocado el pie de firma del firmante propuesto |
delegationText | String | Texto de delegación del firmante propuesto |
signed | String | Indica si el firmante propuesto ha firmando (1) o no (0) |
signerOrgCode | String | Código de organismo del firmante propuesto |
signerOrganism | String | Nombre de organismo del firmante propuesto |
signerRole | String | Cargo del firmante propuesto |
signerStatus | String | Condición del firmante |
revised | String | Indica si el firmate propuesto ha sido revisado o no. Valores: S o N |
deleteSign | Boolean | Indica si se ha de borrar la firma al actualizar el firmante propuesto |
...
Objeto Anchor |
---|
| ParamSendDocument |
---|
| ParamSendDocument |
---|
|
'ParamSendDocument'
Nombre | Tipo | Descripción |
---|
applicationId | String | Aplicación que ejecuta el método |
userNif | String | Nif del usuario |
csv | String | Código seguro de verificación del documento |
...