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> |
...
Capturar notificaciones sobre cambios de estado en los documentos
...
Las aplicaciones integradoras pueden deben definir un servlet al que invoque PFI cuando cambie el estado de un documento, aunque recomendamos no obstante, se puede consultar directamente al repositorio para repositorio una vez que haya sido notificado el cambio para garantizar el último estado real.
No debe utilizarse la consulta directa al repositorio como mecanismo de control del estado de los documentos, ya que el número de llamadas recurrentes genera sobrecarga en los entornos, causando problemas tanto al propio integrador como al resto de los usuarios.
Dicho servlet se invocará con tres parámetros mediante querystring:
Parámetro | Descripción |
---|
idApp | PFI |
CSV | Identificador del documento que ha sufrido un cambio de estado |
estado | Estado en que se ha quedado el documento, borrador(1) u original(0) |
-
Info |
---|
Para que PFI pueda invocar a dicha url, ésta debe estar asociada a la aplicación a través de la plataforma PAU, en el atributo responseUrl correspondiente a la aplicación. Para ello el integrador deberá completar primero el Procedimiento de alta1241284867 descrito previamente en este manual. |
-
...
Expand |
---|
|
Signatura List<Signer> findQuickSignerList(SignerSearch signerSearch) Parámetros de invocación Nombre | Tipo | Descripción |
---|
signerSearch | SignerSearch1241284867 | 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<Signer1241284867> | 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); |
|
Método '
...
findQuickSignerListWithAuditor'
Método que busca una lista de firmantes compuesta por -el usuario -su jefe -el jefe de
...
su jefe -los cinco últimos firmantes en su histórico y los revisores de cada firmante.
Expand |
---|
|
Signatura List<Signer> findSignerListList<SignerWithAuditor> findQuickSignerListWithAuditor(SignerSearch signerSearch) Parámetros de invocación Parámetros de respuesta Nombre | Tipo | Descripción |
---|
signerListsignerAuditorList | List<Signer> |
| Lista de firmantes y auditores 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)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("ORG000100000000T");
List<Signer> signerList
List <SignerWithAuditor> listSignerAuditor = iSignerImplsignerServiceImpl.findSignerListfindQuickSignerListWithAuditor(signerSearch); |
|
Método '
...
findSignerList'
Método que busca un firmante que busca una lista de firmantes atendiendo a unos parámetros de búsqueda establecidos en concreto se buscará el firmante que corresponde a un Nif
Expand |
---|
|
Signatura Signer findSignerByNifList<Signer> findSignerList(SignerSearch signerSearch) Parámetros de invocación Nombre | Tipo | Descripción |
---|
signerSearch | SignerSearch1241284867 | Parámetros de búsqueda (ver detalle de campos en el apartado de objetos comunes) |
Parámetros de respuesta Nombre | Tipo | Descripción |
---|
signersignerList | Signer | Firmante cuyo nif coincida con el proporcionado en el parámetro de búsquedaList<1241284867> | Lista de firmantes encontrados según los criterios de búsqueda indicados |
Códigos error Código | Descripción |
---|
SIGNERSERVICEIMPL_FINDSIGNERBYNIFFINDSIGNERLIST | Error genérico durante el servicio findSignerByNiffindSignerList | GET_USERORGANISM_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.setUserNifsetOrganismCode("78965412XORG0001");
SignerList<Signer> signersignerList = iSignerImpl.findSignerByNiffindSignerList(signerSearch); |
|
Método '
...
findSignerByNif'
Método que busca un firmante propuesto para un documento atendiendo a unos criterios parámetros de búsqueda establecidos en concreto se buscará el firmante que corresponde a un Nif
Expand |
---|
|
Signatura ParamProposedSigner findProposedSigner(ParamProposedSignerSearch paramProposedSignerSearchSigner findSignerByNif(SignerSearch signerSearch) Parámetros de invocación Parámetros de respuesta Nombre | Tipo | Descripción |
---|
proposedSignersigner | ParamProposedSigner1241284867 | Firmante propuesto encontrado según los criterios cuyo nif coincida con el proporcionado en el parámetro de búsqueda indicados |
Códigos error Código | Descripción |
---|
SIGNERSERVICEIMPL_FINDPROPOSEDSIGNERFINDSIGNERBYNIF | Error genérico durante el servicio findProposedSignerfindSignerByNif | 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 |
---|
| ParamProposedSignerSearchSignerSearch paramProposedSignerSearchsignerSearch = new ParamProposedSignerSearchSignerSearch();
paramProposedSignerSearchsignerSearch.setSignerNifsetUserNif("78965412X");
ParamProposedSignerSigner proposedSignersigner = iSignerImpl.findProposedSignerfindSignerByNif(paramProposedSignerSearchsignerSearch); |
|
Método '
...
findProposedSigner'
Método que busca la lista de firmantes propuestos según los criterios establecidos en el parámetro de entradaun firmante propuesto para un documento atendiendo a unos criterios de búsqueda
Expand |
---|
|
Signatura ParamProposedSignerList findProposedSignerListParamProposedSigner findProposedSigner(ParamProposedSignerSearch paramProposedSignerSearch) Parámetros de invocación Parámetros de respuesta Nombre | Tipo | Descripción |
---|
proposedSignerListproposedSigner | ParamProposedSignerList | Objeto que encapsula la lista de firmantes propuestos encontrados y el tamaño de dicha lista1241284867 | Firmante propuesto encontrado según los criterios de búsqueda indicados |
Códigos error Código | Descripción |
---|
SIGNERSERVICEIMPL_FINDPROPOSEDSIGNERLISTSIGNERSERVICEIMPL_FINDPROPOSEDSIGNERLISTFINDPROPOSEDSIGNER | 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");
ParamProposedSignerListParamProposedSigner proposedSigner = iSignerImpl.findProposedSignerListfindProposedSigner(paramProposedSignerSearch); |
|
Método '
...
findProposedSignerList'
Método
...
que busca la lista de firmantes propuestos según los criterios establecidos en el parámetro de entrada
Expand |
---|
|
Signatura ParamProposedSigner saveProposedSigner(ParamProposedSigner paramProposedSigner, Document documentParamProposedSignerList findProposedSignerList(ParamProposedSignerSearch paramProposedSignerSearch) Parámetros de invocación Nombre | Tipo | Descripción |
---|
paramProposedSignerparamProposedSignerSearch | ParamProposedSigner | Parámetro que encapsula los datos del firmante propuesto | document | Document | Documento al que se asociarán los firmantes propuestos |
Parámetros de respuesta Nombre | Tipo | Descripción |
---|
result | ParamProposedSigner | Objeto que encapsula los datos del firmante propuesto que se almacenado en la base de datos1241284867 | 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_SAVEPROPOSEDSIGNER | Error genérico durante el servicio saveProposedSigner | PROPOSEDSIGNERMANAGER_FINDPROPOSEDSIGNERLIST | Error inesperado al buscar en la tabla de firmantes propuestos | SIGNMANAGERIMPL_FINDSIGNBEANBYPROPOSEDSIGNERBEANID | Error inesperado al buscar una firma a partir de el identificador de un firmante propuestoFINDPROPOSEDSIGNERLIST | 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");
ParamProposedSignerParamProposedSignerList proposedSigner = iSignerImpl.findProposedSignerfindProposedSignerList(paramProposedSignerSearch);
DocumentSearch documentSearch = new DocumentSearch();
documentSearch.setCsv("CSV6F70H2A66T1E01PFI");
Document document = iDocumentImpl.findDocument(documentSearch);
ParamProposedSigner result = iSignerImpl.saveProposedSigner(paramProposedSigner, document); |
|
Método 'deleteProposedSigner'
...
Servicios DocumentService
...
Método 'findDocument'
Método que busca un documento utilizando los criterios de búsqueda establecidos como parámetro de entrada
Expand |
---|
|
Signatura void deleteProposedSigner(ParamProposedSigner paramProposedSigner, Long documentIdDocument findDocument(DocumentSearch documentSearch) Parámetros de invocación Nombre | Tipo | Descripción |
---|
paramProposedSignerdocumentSearch | ParamProposedSigner | Parámetro que encapsula los datos del firmante propuesto | documentId | Long | Identificador del documento del cual se eliminaran los firmantes propuestos1241284867 | 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 |
---|
SIGNERSERVICEIMPLDOCUMENTSERVICEIMPL_FINDDOCUMENT_DELETEPROPOSEDSIGNER02 | Error genérico durante el servicio deleteProposedSigner | PROPOSEDSIGNERMANAGER_FINDPROPOSEDSIGNERLIST | Error inesperado al buscar en la tabla de firmantes propuestos | DOCUMENTMANAGERIMPL_FINDDOCUMENT | Error inesperado al buscar el documentofindDocument |
Ejemplos de invocación Code Block |
---|
language | java |
---|
firstline | 1 |
---|
title | Ejemplo de invocación |
---|
linenumbers | true |
---|
| ParamProposedSignerSearchDocumentSearch paramProposedSignerSearchdocumentSearch = new ParamProposedSignerSearchDocumentSearch();
paramProposedSignerSearchdocumentSearch.setSignerNifsetCsv("78965412XCSV6F70H2A66T1E01PFI");
ParamProposedSignerDocument proposedSignerdocument = iSignerImpliDocumentImpl.findProposedSigner(paramProposedSignerSearch);
DocumentSearch documentSearch = new DocumentSearch();
documentSearch.setCsv("CSV6F70H2A66T1E01PFI");
Document document = iDocumentImpl.findDocument(documentSearch);
iSignerImpl.deleteProposedSigner(paramProposedSigner, document.getId()); |
|
Servicios DocumentService
Método 'findDocument'
...
findDocument(documentSearch);
|
|
Método 'findDocumentList'
Método que busca una lista de documentos utilizando los criterios de búsqueda establecidos como parámetro de entrada
Expand |
---|
|
Signatura Document findDocumentList<Document> findDocumentList(DocumentSearch documentSearch) Parámetros de invocación Nombre | Tipo | Descripción |
---|
documentSearch | DocumentSearch1241284867 | Parámetros de búsqueda (ver detalle de campos en el apartado de objetos comunes) |
Parámetros de respuesta Nombre | Tipo | Descripción |
---|
documentdocumentList | Document | Documento encontrado según el criterio de búsqueda proporcionadaList<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_ | FINDDOCUMENTFINDDOCUMENTLIST_02 | Error genérico durante el servicio | findDocumentfindDocumentList |
Ejemplos de invocación Code Block |
---|
language | java |
---|
firstline | 1 |
---|
title | Ejemplo de invocación |
---|
linenumbers | true |
---|
| DocumentSearch documentSearch = new DocumentSearch();
documentSearch.setCsvsetState("CSV6F70H2A66T1E01PFI"2);
DocumentList<Document> documentdocumentList = iDocumentImpl.findDocumentfindDocumentList(documentSearch);
|
|
Método '
...
findDocumentTray'
Método que busca una lista de documentos utilizando los criterios de búsqueda establecidos como parámetro de entradaque permite la búsqueda de un listado de documentos para las bandejas a partir del objeto ParamTraySearch
Expand |
---|
|
Signatura List<Document> findDocumentList(DocumentSearch documentSearchResultTrayList findDocumentTray(ParamTraySearch paramTraySearch) Parámetros de invocación Nombre | Tipo | Descripción |
---|
documentSearchparamTraySearch | DocumentSearch1241284867 | Parámetros de búsqueda (ver detalle de campos en el apartado de objetos comunes) |
Parámetros de respuesta Nombre | Tipo | Descripción |
---|
documentListresultTrayList | List<Document>ResultTrayList | Lista de documentos encontrados según los parámetros para la bandeja que cumplen los criterios de búsqueda indicados |
Códigos error Código | Descripción |
---|
DOCUMENTSERVICEIMPL_FINDDOCUMENTLIST_01FINDDOCUMENTTRAY | Error genérico durante el servicio findDocumentListfindDocumentTray | DOCUMENTSERVICEIMPLFIND_FINDDOCUMENTLISTDOCUMENT_02LIST | Error genérico durante el servicio findDocumentListal buscar los documentos en bbdd |
Ejemplos de invocación Code Block |
---|
language | java |
---|
firstline | 1 |
---|
title | Ejemplo de invocación |
---|
linenumbers | true |
---|
| DocumentSearchParamTraySearch documentSearchparamTraySearch = new DocumentSearchParamTraySearch();
documentSearchparamTraySearch.setStatesetDraft(2true);
List<Document>ResultTrayList documentListresultTrayList = iDocumentImpl.findDocumentListfindDocumentTray(documentSearchparamTraySearch);
|
|
Método '
...
findDocumentTrayVisibility'
Método que permite la búsqueda de un listado de documentos para las bandejas a partir del objeto ParamTraySearch incluyendo información de visibilidad
Expand |
---|
|
Signatura ResultTrayList findDocumentTrayResultTrayListVisibility findDocumentTrayVisibility(ParamTraySearch paramTraySearch) Parámetros de invocación Nombre | Tipo | Descripción |
---|
paramTraySearch | ParamTraySearch1241284867 | Parámetros de búsqueda (ver detalle de campos en el apartado de objetos comunes) |
Parámetros de respuesta Nombre | Tipo | Descripción |
---|
resultTrayListresultTrayListVisibility | ResultTrayListResultTrayListVisibility | 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 findDocumentTrayfindDocumentTrayVisibility | 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);
ResultTrayListResultTrayListVisibility resultTrayListresultTrayListVisibility = iDocumentImpl.findDocumentTrayfindDocumentTrayVisibility(paramTraySearch);
|
|
Método '
...
findDocumentFolderList'
Método que permite la búsqueda de que busca un listado de documentos para las bandejas bloques o carpetas a partir del objeto ParamTraySearch incluyendo información de visibilidadde búsqueda del documento
Expand |
---|
|
Signatura ResultTrayListVisibility findDocumentTrayVisibility(ParamTraySearch paramTraySearchList<ParamFolder> findDocumentFolderList(DocumentSearch document) Parámetros de invocación Nombre | Tipo | Descripción |
---|
paramTraySearchdocument | ParamTraySearch1241284867 | Parámetros de búsqueda (ver detalle de campos en el apartado de objetos comunes) |
Parámetros de respuesta Nombre | Tipo | Descripción |
---|
resultTrayListVisibilityparamFolder | ResultTrayListVisibility | Lista de documentos para la bandeja que cumplen los criterios de búsqueda con información de visibilidadList<ParamFolder> | Error inesperado al buscar los diferentes folder a los que pertenecen los documentos |
Códigos error Código | Descripción |
---|
DOCUMENTSERVICEIMPL_FINDDOCUMENTTRAYFINDDOCUMENTFOLDERLIST | Error genérico durante el servicio findDocumentTrayVisibilityfindDocumentFolderList | 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 bbddNOT_EXIST_DOCUMENT |
|
Ejemplos de invocación Code Block |
---|
language | java |
---|
firstline | 1 |
---|
title | Ejemplo de invocación |
---|
linenumbers | true |
---|
| ParamTraySearchDocumentMetadataSearch paramTraySearchdocumentMetadataSearch = new ParamTraySearch();
paramTraySearch.setDraft(trueDocumentMetadataSearch();
ResultTrayListVisibility resultTrayListVisibility =
iDocumentImpl.findDocumentTrayVisibility(paramTraySearch);
|
|
Método '
...
getDocumentState'
Método que busca un listado de bloques o carpetas a partir del objeto de búsqueda para obtener el estado del documento
Expand |
---|
|
Signatura List<ParamFolder> findDocumentFolderList(DocumentSearch documentInteger getDocumentState(ParamGetDocumentState paramGetDocumentState) Parámetros de invocación Nombre | Tipo | Descripción |
---|
documentparamGetDocumentState | DocumentSearch1241284867 | Parámetros de búsqueda entrada (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 |
---|
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_ | FINDDOCUMENTFOLDERLISTGETDOCUMENTSTATE | Error genérico durante el servicio | findDocumentFolderListgetDocumentState | NOT_EXIST_DOCUMENTFIND_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 |
---|
| DocumentMetadataSearchParamGetDocumentState documentMetadataSearchparamGetDocumentState = new DocumentMetadataSearch( ParamGetDocumentState();
paramGetDocumentState.setCsv("CSVP55RYQS7R9AF01PFI");
Integer
|
|
...
documentState = IDocumentService.getDocumentState(paramGetDocumentState);
|
|
Método 'getOperation'
Método para firmar un obtener la operación asociada al documento
Expand |
---|
|
Signatura signDocument(ParamSignDocument paramSignDocumentResultGetOperation getOperation(ParamGetOperation paramGetOperation) Parámetros de invocación Nombre | Tipo | Descripción |
---|
paramSignDocumentparamGetOperation | ParamSignDocumentParamGetOperation | 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_ SIGNDOCUMENT_01GETOPERATION | Error genérico durante el servicio getOperation | SCDEINTEGRATION_GETSTATUS | Error al firmar el documento porque ya esta en uso o superado la fecha de firma | DOCUMENTSERVICEIMPL_SIGNDOCUMENT_02 | El proceso de firma ha superado la fecha de firma del documento. Por favor, inténtelo de nuevo | DOCUMENTSERVICEIMPL_SIGNDOCUMENT_03 | No se puede actualizar el contenido porque ya está en uso | DOCUMENTSERVICEIMPL_SIGNDOCUMENT_04 | No se puede cambiar el estado porque ya está en uso | DOCUMENTSERVICEIMPL_SIGNDOCUMENT_05 | Error si se trata de firma simple simpre queda firmado, situacion imposible | DOCUMENTSERVICEIMPL_SIGNDOCUMENT_06 | No se puede guardar la firma en el documento porque ya está en usocomprobar 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 |
---|
| ParamSignDocumentParamGetOperation paramSignDocumentparamGetOperation = new ParamSignDocumentParamGetOperation();
paramSignDocumentparamGetOperation.setCsvsetDocumentId("CSV6F70H2A66T1E01PFI"1L);
iDocumentImpl.signDocument(paramSignDocument
ResultGetOperation resultGetOperation = IDocumentService.getOperation(paramGetOperation);
|
|
Método '
...
findDocumentListByExternalsigned'
Método para guardar los datos de un documentoServicio que consulta los documentos, en estado firmado, tiene un usuario externo.
Expand |
---|
|
Signatura Document saveDocument(Document documentResultDocumentExternalInfo findDocumentListByExternalSigned(ParamFindDocumentListByExternalWithoutSignature paramFindDocumentListByExternalWithoutSignature) Parámetros de invocación ParamFindDocumentListByExternalWithoutSignature: |
Expand |
---|
|
Signatura findMetadataValue(ParamMetadata paramMetadata) Parámetros de invocación |
Nombre | Tipo | Descripción |
---|
paramMetadata | ParamMetadata | Parámetros de entrada (ver detalle de campos en el apartado de objetos comunes) |
Parámetros de respuesta
Nombre | Tipo | Descripción |
---|
value | String | El valor de metadato encontrado |
Códigos error
Código | Descripción |
---|
DOCUMENTSERVICEIMPL_FINDMETADATAVALUE | Error genérico durante el servicio findMetadataValue |
Ejemplos Nombre | Tipo | Obligatorio | Descripción |
---|
documentapplicationId | Document | Parámetros de entrada (ver detalle de campos en el apartado de objetos comunes) |
Parámetros de respuesta
Nombre | Tipo | Descripción |
---|
document | Document | El documento resultante de la operación |
Códigos error
Código | Descripción |
---|
PARSE_CREATE_BLOB | No se ha podido crear el objeto de base de datos para el binario correspondiente |
UTILSCORE_GENERATETEMPORALDOCUMENT_01 | Error al generar el documento temporal |
UTILSCORE_GENERATETEMPORALDOCUMENT_02 | Error al generar el documento temporal |
DOCUMENTSERVICEIMPL_SAVEDOCUMENT | Error genérico durante el método saveDocument |
Code Block |
---|
language | java |
---|
theme | Eclipse |
---|
title | Ejemplo de invocación |
---|
collapse | true |
---|
|
System.out.println("- PRUEBA 1.1: GUARDAR UN DOCUMENTO Pendiente de firma CON CSV");
Document document = createNewDocument(Integer.parseInt(EstadoPFI.PENDIENTE_DE_FIRMA), null);
document.setSaveFile(true);
try {
System.out.println("Guardar el documento");
System.out.println("CSV: " + document.getCsv());
document = documentServiceWS.saveDocument(document);
System.out.println("Documento guardado");
} catch (InternalCoreException e) {
System.out.println("Error al guardar el documento con csv " + document.getCsv());
System.out.println("Error: " + e.getMsg());
}
public es.aragon.pfi.core.ws.data.Document createNewDocument(Integer state, String csv) {
es.aragon.pfi.core.ws.data.Document document = new es.aragon.pfi.core.ws.data.Document();
if (csv == null) {
document.setCsv(Utils.obtenerCSV());
} else {
document.setCsv(csv);
}
ParamFile paramFile = new ParamFile();
paramFile.setContent(new DataHandler(new FileDataSource(new File("./src/main/resources/pdf.pdf"))));
paramFile.setFileName("test.pdf");
paramFile.setFileSize(new Long(1024));
paramFile.setFileGenerated(new DataHandler(new FileDataSource(new File("./src/main/resources/pdf.pdf"))));
paramFile.setFileGeneratedDate(new Date());
document.setFile(paramFile);
document.setFolder("testFolder");
document.setPriority(Integer.parseInt(PFICoreConstants.PRIORITY_MEDIUM));
document.setRejected(PFICoreConstants.DOCUMENT_NOREJECTED);
document.setSignType(1);
// XXX: contemplar la creación de un propose_signer con la posición
// document.setSignaturePosition(PFICoreConstants.SIGNATURE_POS_NOSIGN);
document.setState(state);
document.setMetadataCache(createMetadataCache());
return document;
}
public static Map<ParamMetadataId, ParamMetadata> createMetadataCache() {
Map<ParamMetadataId, ParamMetadata> metadataCache = new HashMap<ParamMetadataId, ParamMetadata>();
// Se crea el firmante propuesto
ParamMetadata paramMetadata = new ParamMetadata();
paramMetadata.setEntity(PFICoreConstants.SIGNER_ENTITY);
paramMetadata.setMetadataName("agente_desc_nombre");
paramMetadata.setMetadataValue("LUCIA CASPE - CADUCADO PRUEBAS AUTOMATIZADAS");
ParamMetadataId paramMetadataId = new ParamMetadataId();
paramMetadataId.setMetadataName(paramMetadata.getMetadataName());
paramMetadataId.setEntity(paramMetadata.getEntity());
metadataCache.put(paramMetadataId, paramMetadata);
paramMetadata = new ParamMetadata();
paramMetadata.setEntity(PFICoreConstants.SIGNER_ENTITY);
paramMetadata.setMetadataName("agente_ident_identificacion");
paramMetadata.setMetadataValue("96666666N");
paramMetadataId = new ParamMetadataId();
paramMetadataId.setMetadataName(paramMetadata.getMetadataName());
paramMetadataId.setEntity(paramMetadata.getEntity());
metadataCache.put(paramMetadataId, paramMetadata);
// Se crea el preparador
paramMetadata = new ParamMetadata();
paramMetadata.setEntity(PFICoreConstants.ISSUER_ENTITY);
paramMetadata.setMetadataName("agente_desc_nombre");
paramMetadata.setMetadataValue("LUCIA CASPE - CADUCADO PRUEBAS AUTOMATIZADAS");
paramMetadataId = new ParamMetadataId();
paramMetadataId.setMetadataName(paramMetadata.getMetadataName());
paramMetadataId.setEntity(paramMetadata.getEntity());
metadataCache.put(paramMetadataId, paramMetadata);
paramMetadata = new ParamMetadata();
paramMetadata.setEntity(PFICoreConstants.SIGNER_ENTITY);
paramMetadata.setMetadataName("agente_ident_identificacion");
paramMetadata.setMetadataValue("96666666N");
paramMetadataId = new ParamMetadataId();
paramMetadataId.setMetadataName(paramMetadata.getMetadataName());
paramMetadataId.setEntity(paramMetadata.getEntity());
metadataCache.put(paramMetadataId, paramMetadata);
// Se crea la fecha de captura
paramMetadata = new ParamMetadata();
paramMetadata.setEntity(PFICoreConstants.DOCUMENT_ENTITY);
paramMetadata.setMetadataName("dea_ident_fecha_captura");
paramMetadata.setMetadataValue(Utils.fechaISO86012004(new Date()));
paramMetadataId = new ParamMetadataId();
paramMetadataId.setMetadataName(paramMetadata.getMetadataName());
paramMetadataId.setEntity(paramMetadata.getEntity());
metadataCache.put(paramMetadataId, paramMetadata);
// Se crea la descripción
paramMetadata = new ParamMetadata();
paramMetadata.setEntity(PFICoreConstants.DOCUMENT_ENTITY);
paramMetadata.setMetadataName("dea_desc_descripcion");
paramMetadata.setMetadataValue("Documento de test");
paramMetadataId = new ParamMetadataId();
paramMetadataId.setMetadataName(paramMetadata.getMetadataName());
paramMetadataId.setEntity(paramMetadata.getEntity());
metadataCache.put(paramMetadataId, paramMetadata);
// Se crea el procedimiento
paramMetadata = new ParamMetadata();
paramMetadata.setEntity(PFICoreConstants.DOCUMENT_ENTITY);
paramMetadata.setMetadataName("dea_cont_nom_procedimiento");
paramMetadata.setMetadataValue("AYUDA A LOS CONTRATOS AGRARIOS");
paramMetadataId = new ParamMetadataId();
paramMetadataId.setMetadataName(paramMetadata.getMetadataName());
paramMetadataId.setEntity(paramMetadata.getEntity());
metadataCache.put(paramMetadataId, paramMetadata);
paramMetadata = new ParamMetadata();
paramMetadata.setEntity(PFICoreConstants.DOCUMENT_ENTITY);
paramMetadata.setMetadataName("dea_cont_codprocedimiento");
paramMetadata.setMetadataValue("404");
paramMetadataId = new ParamMetadataId();
paramMetadataId.setMetadataName(paramMetadata.getMetadataName());
paramMetadataId.setEntity(paramMetadata.getEntity());
metadataCache.put(paramMetadataId, paramMetadata);
// Se crea el tipo de documento
paramMetadata = new ParamMetadata();
paramMetadata.setEntity(PFICoreConstants.DOCUMENT_ENTITY);
paramMetadata.setMetadataName("dea_desc_tipo_documento");
paramMetadata.setMetadataValue("ACUERDO");
paramMetadataId = new ParamMetadataId();
paramMetadataId.setMetadataName(paramMetadata.getMetadataName());
paramMetadataId.setEntity(paramMetadata.getEntity());
metadataCache.put(paramMetadataId, paramMetadata);
// Se crea el estado y el origen
paramMetadata = new ParamMetadata();
paramMetadata.setEntity(PFICoreConstants.DOCUMENT_ENTITY);
paramMetadata.setMetadataName("dea_desc_estado");
paramMetadata.setMetadataValue("0");
paramMetadataId = new ParamMetadataId();
paramMetadataId.setMetadataName(paramMetadata.getMetadataName());
paramMetadataId.setEntity(paramMetadata.getEntity());
metadataCache.put(paramMetadataId, paramMetadata);
paramMetadata = new ParamMetadata();
paramMetadata.setEntity(PFICoreConstants.DOCUMENT_ENTITY);
paramMetadata.setMetadataName("dea_ident_origen");
paramMetadata.setMetadataValue("1");
paramMetadataId = new ParamMetadataId();
paramMetadataId.setMetadataName(paramMetadata.getMetadataName());
paramMetadataId.setEntity(paramMetadata.getEntity());
metadataCache.put(paramMetadataId, paramMetadata);
return metadataCache;
} |
Método 'findMetadataValue'
Método para guardar los datos de un documento
String | Sí | Alias de la aplicación que realiza la consulta | userNif | String | No | NIF/NIE del usuario identificado que realiza la consulta | signerNif | String | Sí | NIF/NIE del usuario firmante | description | String | No | Descripción del documento | preparationDateFrom | Date | No. Altamente recomendable para evitar timeouts | Fecha de preparación desde | preparationDateTo | Date | No. Altamente recomendable para evitar timeouts | Fecha de preparación hasta. Si no se rellena, el valor por defecto será la fecha actual +1. | csv | String | No | CSV | fromIndex | Integer | No | Índice de comienzo para la paginación | toIndex | Integer | No | índice final para la paginación | sortColumn | String | No. Si no se rellena, se ordena por defecto por la fecha de preparación final más reciente | Columna por la cual se desea ordenar los documentos. Los valores que admite son los siguientes: - signerNif
- description
- preparationDateEnd
- csv
- state
| ascending | Boolean | No | Ordenar por la columna deseada de forma ascendente o descendente |
Parámetros de respuesta ResultDocumentExternalInfo: Nombre | Tipo | Descripción |
---|
applicationId | String | Alias de la aplicación que ha realizado la consulta | userNif | String | NIF del usuario identificado | documents | List<DocumentInfo> | Lista de documentos paginada | size | int | Número total de documentos sin tener en cuenta la paginación |
DocumentExternalInfo: Nombre | Tipo | Descripción |
---|
csv | String | CSV del documento | description | String | Descripción del documento | procedureCode | String | Código de procedimiento | issuer | String | Nombre y apellidos del preparador | revised | boolean | Si el documento está revisado o no | state | int | Estado del documento IMPORTANTE: Además de los estados 1 (pendiente de firma) y 2 (firmado), se puede obtener el estado 6 (firma paralela). Este estado significa que el documento tiene varios firmantes y alguno de ellos ya ha firmado pero otros no y todavía no se cumple el total de firmas del documento (Quorum) - Si se filtra por NIF firmante y estado 1 (pendiente de firma), al obtener el estado 6 en un documento significará que ese firmante no ha firmado pero alguno de los otros firmantes del documento sí.
- Si se filtra por NIF firmante y estado 2 (firmado), al obtener el estado 6 en un documento significará que ese firmante sí que ha firmado pero faltan por firmar el resto de firmantes del documento.
| quorum | int | Mínimo de firmas requeridas para pasar a firmar un documento. | quorumOnly | String | Indica, en el caso de multifirma, si se admiten más firmas que las mínimas requeridas (quorum). | quorumOnly | int | Si el documento requiere de todas las firmas de los firmantes propuestos para pasar a estado firmado | signatures | int | Número de firmas realizadas | totalSignatures | int | Número de firmas totales | totalSignersNotRevised | int | total de firmantes no revisados | preparationDate | String | Fecha de inicio de preparación del documento | preparationDateEnd | String | Fecha fin de preparación del documento | signers | List<DocumentSignerData> | Listado de firmantes del documento con su nif, nombre y apellidos |
DocumentSignerData: Nombre | Tipo | Descripción |
---|
signerNif | String | NIF/NIE del firmante | signerName | String | Nombre y apellidos del firmante | signerRevised | boolean | Indica si el firmante está revisado |
Códigos error Código | Descripción |
---|
GENERIC_FINDDOCUMENTLISTBYEXTERNALSIGNED | Error genérico en el servicio findDocumentListByExternalSigned | FINDDOCUMENTLISTBYEXTERNALSIGNED_01 | El nif del usuario firmante es obligatorio | FINDDOCUMENTLISTBYEXTERNALSIGNED_02 | El formato del nif del usuario firmante no es correcto |
Ejemplo de invocación Code Block |
---|
language | java |
---|
firstline | 1 |
---|
title | Ejemplo de invocación |
---|
linenumbers | true |
---|
| ParamFindDocumentListByExternalWithoutSignature paramFindDocumentListByExternalSigned = new ParamFindDocumentListByExternalWithoutSignature();
paramFindDocumentListByExternalSigned.setSignerNif("SIGNER_NIF");
IDocumentService.findDocumentListByExternalSigned(paramFindDocumentListByExternalSigned);
|
|
Método 'findDocumentListByExternalSignedCount'
Servicio que consulta los documentos, en estado firmado, de un usuario externo
Expand |
---|
|
Signatura ResultDocumentExternalInfo findDocumentListByExternalSigned(ParamFindDocumentListByExternalWithoutSignature paramFindDocumentListByExternalWithoutSignature) Parámetros de invocación ParamFindDocumentListByExternalWithoutSignatureCount: Nombre | Tipo | Obligatorio | Descripción |
---|
applicationId | String | Sí | Alias de la aplicación que realiza la consulta | userNif | String | No | NIF/NIE del usuario identificado que realiza la consulta | signerNif | String | No | NIF/NIE del usuario firmante | description | String | No | Descripción del documento | preparationDateFrom | Date | No. Altamente recomendable para evitar timeouts | Fecha de preparación desde | preparationDateTo | Date | No. Altamente recomendable para evitar timeouts | Fecha de preparación hasta. Si no se rellena, el valor por defecto será la fecha actual +1. | csv | String | No | CSV |
Parámetros de respuesta ResultFindDocumentListCount: Nombre | Tipo | Descripción |
---|
errors | boolean | Indica si se han producido errores. - true → Hay errores. Se informa del error y del mensaje del error
- false → No hay errores.
| errorCode | String | Código del error producido | errorMsg | String | Descripción del error producido | documents | int | Número total de documentos que cumplen los criterios de búsqueda |
Códigos error Código | Descripción |
---|
GENERIC_FINDDOCUMENTLISTBYEXTERNALSIGNED | Error genérico en el servicio findDocumentListByExternalSignedCount | FINDDOCUMENTLISTBYEXTERNALSIGNED_01 | El nif del usuario firmante es obligatorio | FINDDOCUMENTLISTBYEXTERNALSIGNED_02 | El formato del nif del usuario firmante no es correcto |
Ejemplo de invocación Code Block |
---|
language | java |
---|
firstline | 1 |
---|
title | Ejemplo de invocación |
---|
linenumbers | true |
---|
| ParamFindDocumentListByExternalWithoutSignatureCount paramFindDocumentListByExternalSigned = new ParamFindDocumentListByExternalWithoutSignatureCount();
paramFindDocumentListByExternalSigned.setSignerNif("SIGNER_NIF");
IDocumentService.findDocumentListByExternalSignedCount(paramFindDocumentListByExternalSigned);
|
|
Método 'findDocumentListByExternalWithoutSignature'
Servicio que consulta los documentos, en estado pendiente de firma o firma en paralelo, tiene un usuario externo.
Expand |
---|
|
Signatura ResultDocumentExternalInfo findDocumentListByExternalWithoutSignature(ParamFindDocumentListByExternalWithoutSignature paramFindDocumentListByExternalWithoutSignature) Parámetros de invocación ParamFindDocumentListByExternalWithoutSignature: Nombre | Tipo | Obligatorio | Descripción |
---|
applicationId | String | Sí | Alias de la aplicación que realiza la consulta | userNif | String | No | NIF/NIE del usuario identificado que realiza la consulta | signerNif | String | Sí | NIF/NIE del usuario firmante | description | String | No | Descripción del documento | preparationDateFrom | Date | No. Altamente recomendable para evitar timeouts | Fecha de preparación desde | preparationDateTo | Date | No. Altamente recomendable para evitar timeouts | Fecha de preparación hasta. Si no se rellena, el valor por defecto será la fecha actual +1. | csv | String | No | CSV | fromIndex | Integer | No | Índice de comienzo para la paginación | toIndex | Integer | No | índice final para la paginación | sortColumn | String | No. Si no se rellena, se ordena por defecto por la fecha de preparación final más reciente | Columna por la cual se desea ordenar los documentos. Los valores que admite son los siguientes: - signerNif
- description
- preparationDateEnd
- csv
- state
| ascending | Boolean | No | Ordenar por la columna deseada de forma ascendente o descendente |
Parámetros de respuesta ResultDocumentExternalInfo: Nombre | Tipo | Descripción |
---|
applicationId | String | Alias de la aplicación que ha realizado la consulta | userNif | String | NIF del usuario identificado | documents | List<DocumentInfo> | Lista de documentos paginada | size | int | Número total de documentos sin tener en cuenta la paginación |
DocumentExternalInfo: Nombre | Tipo | Descripción |
---|
csv | String | CSV del documento | description | String | Descripción del documento | procedureCode | String | Código de procedimiento | issuer | String | Nombre y apellidos del preparador | revised | boolean | Si el documento está revisado o no | state | int | Estado del documento IMPORTANTE: Además de los estados 1 (pendiente de firma) y 2 (firmado), se puede obtener el estado 6 (firma paralela). Este estado significa que el documento tiene varios firmantes y alguno de ellos ya ha firmado pero otros no y todavía no se cumple el total de firmas del documento (Quorum) - Si se filtra por NIF firmante y estado 1 (pendiente de firma), al obtener el estado 6 en un documento significará que ese firmante no ha firmado pero alguno de los otros firmantes del documento sí.
- Si se filtra por NIF firmante y estado 2 (firmado), al obtener el estado 6 en un documento significará que ese firmante sí que ha firmado pero faltan por firmar el resto de firmantes del documento.
| quorum | int | Mínimo de firmas requeridas para pasar a firmar un documento. | quorumOnly | String | Indica, en el caso de multifirma, si se admiten más firmas que las mínimas requeridas (quorum). | quorumOnly | int | Si el documento requiere de todas las firmas de los firmantes propuestos para pasar a estado firmado | signatures | int | Número de firmas realizadas | totalSignatures | int | Número de firmas totales | totalSignersNotRevised | int | total de firmantes no revisados | preparationDate | String | Fecha de inicio de preparación del documento | preparationDateEnd | String | Fecha fin de preparación del documento | signers | List<DocumentSignerData> | Listado de firmantes del documento con su nif, nombre y apellidos |
DocumentSignerData: Nombre | Tipo | Descripción |
---|
signerNif | String | NIF/NIE del firmante | signerName | String | Nombre y apellidos del firmante | signerRevised | boolean | Indica si el firmante está revisado |
Códigos error Código | Descripción |
---|
GENERIC_FINDDOCUMENTLISTBYEXTERNALWITHOUTSIGNATURE | Error genérico en el servicio findDocumentListByExternalWithoutSignature | FINDDOCUMENTLISTBYEXTERNALWITHOUTSIGNATURE_01 | El nif del usuario firmante es obligatorio | FINDDOCUMENTLISTBYEXTERNALWITHOUTSIGNATURE_02 | El formato del nif del usuario firmante no es correcto |
Ejemplo de invocación Code Block |
---|
language | java |
---|
firstline | 1 |
---|
title | Ejemplo de invocación |
---|
linenumbers | true |
---|
| ParamFindDocumentListByExternalWithoutSignature paramFindDocumentListByExternalSigned = new ParamFindDocumentListByExternalWithoutSignature();
paramFindDocumentListByExternalSigned.setSignerNif("SIGNER_NIF");
IDocumentService.findDocumentListByExternalWithoutSignature(paramFindDocumentListByExternalSigned);
|
|
Método 'findDocumentListByExternalWithoutSignatureCount'
Servicio que consulta los documentos, en estado pendiente de firma o firma en paralelo, de un usuario externo
Expand |
---|
|
Signatura ResultDocumentExternalInfo findDocumentListByExternalWithoutSignatureCount(ParamFindDocumentListByExternalWithoutSignature paramFindDocumentListByExternalWithoutSignature) Parámetros de invocación ParamFindDocumentListByExternalWithoutSignatureCount: Nombre | Tipo | Obligatorio | Descripción |
---|
applicationId | String | Sí | Alias de la aplicación que realiza la consulta | userNif | String | No | NIF/NIE del usuario identificado que realiza la consulta | signerNif | String | No | NIF/NIE del usuario firmante | description | String | No | Descripción del documento | preparationDateFrom | Date | No. Altamente recomendable para evitar timeouts | Fecha de preparación desde | preparationDateTo | Date | No. Altamente recomendable para evitar timeouts | Fecha de preparación hasta. Si no se rellena, el valor por defecto será la fecha actual +1. | csv | String | No | CSV |
Parámetros de respuesta ResultFindDocumentListCount: Nombre | Tipo | Descripción |
---|
errors | boolean | Indica si se han producido errores. - true → Hay errores. Se informa del error y del mensaje del error
- false → No hay errores.
| errorCode | String | Código del error producido | errorMsg | String | Descripción del error producido | documents | int | Número total de documentos que cumplen los criterios de búsqueda |
Códigos error Código | Descripción |
---|
GENERIC_FINDDOCUMENTLISTBYEXTERNALWITHOUTSIGNATURE | Error genérico en el servicio findDocumentListByExternalWithoutSignatureCount | FINDDOCUMENTLISTBYEXTERNALWITHOUTSIGNATURE_01 | El nif del usuario firmante es obligatorio | FINDDOCUMENTLISTBYEXTERNALWITHOUTSIGNATURE_02 | El formato del nif del usuario firmante no es correcto |
Ejemplo de invocación Code Block |
---|
language | java |
---|
firstline | 1 |
---|
title | Ejemplo de invocación |
---|
linenumbers | true |
---|
| ParamMetadataParamFindDocumentListByExternalWithoutSignatureCount paramMetadataparamFindDocumentListByExternalSigned = new ParamMetadataParamFindDocumentListByExternalWithoutSignatureCount();
paramMetadataparamFindDocumentListByExternalSigned.setMetadataNamesetSignerNif("metatada-nameSIGNER_NIF");
String value = iDocumentImpl.findMetadataValue(paramMetadataIDocumentService.findDocumentListByExternalSignedCount(paramFindDocumentListByExternalSigned);
|
|
Servicios DocumentIntegrationService
...
Método '
...
sendDocumentumDocument'
Cuando una aplicación que integra Porta-firmas almacena un documento en Documentum y desea que quede guardado en Porta-firmas, invoca este servicio para que posteriormente Porta-firmas pueda hacer uso de dicho documento.
Expand |
---|
|
Signatura Integer getDocumentState(ParamGetDocumentState paramGetDocumentStateResultSendDocument sendDocumentumDocument(ParamSendDocument paramSendDocument) Parámetros de invocación Nombre | Tipo | Descripción |
---|
paramGetDocumentStateparamSendDocument | ParamGetDocumentState1241284867 | Parámetros de entrada (ver detalle de campos en el apartado de objetos comunes) |
Parámetros de respuesta Nombre | Tipo | Descripción |
---|
stateresultSendDocument | Integer | Numero de estado correspondiente en porta-firmas: 6 → En paralelo 4 → Anulado 3 → Firma Programada 2 → Firmado 1 → Pendiente de firma 0 → Borrador | 1241284867 | Objeto que encapsula el resultado de la operación, proporcionado información en caso de error |
Códigos error Código | Descripción |
---|
DOCUMENTSERVICEIMPLDOCUMENTINTEGRATIONMANAGERIMPL_GETDOCUMENTSTATE | Error genérico durante el servicio getDocumentState | FIND_DOCUMENT SENDDOCUMENTUMDOCUMENT | Error inesperado al crear un documento en la tabla de PFI_DOCUMENT | DOCUMENTMANAGERIMPL_FINDDOCUMENT | Error inesperado al buscar un documento | DOCUMENTMANAGERIMPL_FINDDOCUMENT | Error buscando 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 |
---|
| ParamGetDocumentStateParamSendDocument paramGetDocumentStateparamSendDocument = new ParamGetDocumentStateParamSendDocument();
paramGetDocumentStateparamSendDocument.setCsv("CSVDA6FLBW3PNAX01PFI");
paramSendDocument.setApplicationId("PFI");
paramSendDocument.setUserNif("CSVP55RYQS7R9AF01PFI00000000T");
IntegerResultSendDocument documentStateresultSendDocument = IDocumentServiceiDocumentIntegrationImpl.getDocumentStatesendDocumentumDocument(paramGetDocumentStateparamSendDocument);
|
|
Método '
...
updateQuorumAndLimitDateDocument'
Método para cambiar el estado de un documentoque actualiza el número mínimo de firmantes que deben firmar un documento y fecha límite de firma en los documentos con más de un firmante
Expand |
---|
|
Signatura void setDocumentState(ParamSetDocumentState paramSetDocumentStateResultUpdateQuorumAndLimitDate updateQuorumAndLimitDateDocument (ParamUpdateQuorumAndLimitDate paramUpdateQuorumAndDate) Parámetros de invocación Nombre | Tipo | Descripción |
---|
paramSetDocumentStateparamUpdateQuorumAndDate | ParamSetDocumentState1241284867 | Parámetros de entrada (ver detalle de campos en el apartado de objetos comunes) |
Parámetros de respuesta Nombre | Tipo | DescripciónDescripció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 |
---|
DOCUMENTSERVICEIMPLQUORUMTASK_SIGNDOCUMENT_03 | No se puede actualizar el contenido porque ya está en uso | DOCUMENTSERVICEIMPL_SETDOCUMENTSTATE | Error genérico durante el metodo setDocumentState | DOCUMENTMANAGERIMPL_FINDDOCUMENTLIST | Error inesperado al buscar una lista de documentos 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 |
---|
| ParamSetDocumentState paramSetDocumentState = new ParamSetDocumentState();
paramSetDocumentState.setCsv("CSVP55RYQS7R9AF01PFI");
paramSetDocumentState.setState(0);
IDocumentService.setDocumentState(paramGetDocumentState);
|
|
Método 'getOperation'
...
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);
|
|
Servicios ExternalUserService
...
Método 'findEntityExternalUserByName'
Método que obtiene la entidad externa filtrando por su descripción
Expand |
---|
|
Signatura ResultGetOperation getOperation(ParamGetOperation paramGetOperationParamEntityExternalUser findEntityExternalUserByName(ParamEntityExternalUser paramSearchEntityExternalUser) Parámetros de invocación Nombre | Tipo | Descripción |
---|
paramGetOperationentityName | ParamGetOperationString | Parámetros de entrada (ver detalle de campos en el apartado de objetos comunes)Descripción de la entidad |
Parámetros de respuesta Nombre | Tipo | Descripción | resultGetOperation | ResultGetOperation | Objeto que encapsula el resultado de la operación |
---|
entityExternalUserId | Long | Identificador | entityName | String | Descripción de la entidad |
Códigos error Código | Descripción |
---|
DOCUMENTSERVICEIMPL_GETOPERATIONDOCUMENT_SERVICE_GENERIC_ERROR | Error genérico durante el servicio getOperation | SCDEINTEGRATIONEXTERNALUSER_GETSTATUSNOUSERSEARCH | 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);
|
|
Servicios AdviceService
Método 'sendAdvice'
...
parámetros de entrada nulos | EXTERNALUSER_NOUSERRESULT | Error no se obtiene entidad en función de los parámetros de entrada introducidos |
|
Método 'findExternalUserByNif'
Método que obtiene un usuario externo a partir del NIF
Expand |
---|
|
Signatura void sendAdvice(Integer noteType, String csv, String text, String userAdviserParamExternalUser findExternalUserByNif(ParamSearchExternalUser paramSearchExternalUser) Parámetros de invocación Nombre | Tipo | Descripción |
---|
nif | noteTypeString | IntegerNIF | Define el tipo de nota para identificar qué cambio ha sufrido el documento | csv | String | Código seguro de verificación del documento que genera el aviso | text | String | Contenido de aviso | userAdviser | String | NIF de usuario que ha generado el aviso |
Parámetros de respuesta |
Nombre | Tipo | Descripción |
---|
Códigos error
Código | Descripción |
---|
ADVICESERVICEIMPL_SENDADVICE | Error genérico durante el servicio sendAdvice |
DOCUMENTMANAGERIMPL_FINDDOCUMENT | Error inesperado al buscar el documento |
Ejemplos de invocación
Code Block |
---|
language | java |
---|
firstline | 1 |
---|
title | Ejemplo de invocación |
---|
linenumbers | true |
---|
|
String userNif = "12345678X";
DocumentSearch documentSearch = new DocumentSearch();
documentSearch.setCsv("CSV6F70H2A66T1E01PFI");
Document document = iDocumentImpl.findDocument(documentSearch);
IAdviceService.sendAdvice(PFICoreConstants.NOTE_TYPE_PROPOSEDSIGNER, document.getCsv(), null, userNif);
|
Método 'sendMail'
...
Parámetros de respuesta Nombre | Tipo | Descripción |
---|
externalUserId | long | Identificador | email | String | Correo electrónico | autonomous | Boolean | Indica si es autonomo | name | String | Nombre | nif | String | NIF | entityPosition | String | Cargo | surname1 | String | Primer apellido | surname2 | String | Segundo apellido | entity | ParamEntityExternalUser | Entidad |
Códigos error Código | Descripción |
---|
DOCUMENT_SERVICE_GENERIC_ERROR | Error genérico durante el servicio | EXTERNALUSER_NOUSERSEARCH | No se ha encontrado el usuario buscado | EXTERNALUSER_NOUSERRESULT | Error no se obtiene entidad en función de los parámetros de entrada introducidos |
|
Método 'addExternalUser'
Método que da de alta un usuario externo
Expand |
---|
|
Signatura void sendMail(String fiscalAnagram, String asunto, String mensaje) Parámetros de invocaciónParamExternalUser addExternalUser(ParamExternalUser externalUser) Parámetros de invocación Nombre | Tipo | Descripción |
---|
email | String | Correo electrónico | autonomous | Boolean | Indica si es autonomo | name | String | Nombre | nif | String | NIF | entityPosition | String | Cargo | surname1 | String | Primer apellido | surname2 | String | Segundo apellido | entity | ParamEntityExternalUser | Entidad |
ParamEntityexternalUser Nombre | Tipo | Descripción |
---|
entityExternalUserId | Long | Identificador | entityName | String | Descripción de la entidad |
Parámetros de respuesta Nombre | Tipo | Descripción |
---|
fiscalAnagramemail | StringIdentificación | fiscalCorreo electrónico | asuntoautonomous | String | Asunto de mensaje que se enviará | mensajeBoolean | Indica si es autonomo | name | String | Contenido de mensaje que se enviará |
Parámetros de respuesta |
Nombre | Tipo | Descripción |
---|
Códigos error
Código | Descripción |
---|
ADVICESERVICEIMPL_SENDMAIL | Error genérico durante el servicio sendMail |
SENDADVICE_ADVICEMANAGER | Error al generar el aviso por correo |
Ejemplos de invocación
Code Block |
---|
language | java |
---|
firstline | 1 |
---|
title | Ejemplo de invocación |
---|
linenumbers | true |
---|
|
String userNif = "12345678X";
String message = "...";
IAdviceService.sendAdvice(userNif, "Operacion finalizada", message);
|
Servicios DocumentIntegrationService
Método 'sendDocumentumDocument'
...
Nombre | nif | String | NIF | entityPosition | String | Cargo | surname1 | String | Primer apellido | surname2 | String | Segundo apellido | entity | ParamEntityExternalUser | Entidad |
Códigos error Código | Descripción |
---|
DOCUMENT_SERVICE_GENERIC_ERROR | Error genérico durante el servicio | EXTERNALUSER_KONIF | El DNI del usuario no es válido |
|
Método 'addEntityExternalUser'
Método que da de alta una entidad externa
Expand |
---|
|
Signatura ResultSendDocument sendDocumentumDocument(ParamSendDocument paramSendDocumentaddEntityExternalUser(ParamEntityExternalUser entityExternalUser) Parámetros de invocación Nombre | Tipo | Descripción |
---|
paramSendDocument | ParamSendDocument | Parámetros de entrada (ver detalle de campos en el apartado de objetos comunes) |
Parámetros de respuesta Nombre | Tipo | Descripción |
---|
resultSendDocument | ResultSendDocument | Objeto que encapsula el resultado de la operación, proporcionado información en caso de errorentityName | String | Descripción de la entidad |
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);
|
|
Método 'updateQuorumAndLimitDateDocument'
Método que actualiza el número mínimo de firmantes que deben firmar un documento y fecha límite de firma en los documentos con más de un firmante
Expand |
---|
|
Signatura ResultUpdateQuorumAndLimitDate updateQuorumAndLimitDateDocument (ParamUpdateQuorumAndLimitDate paramUpdateQuorumAndDate) Parámetros de invocación |
Nombre | Tipo | Descripción |
---|
paramUpdateQuorumAndDate | ParamUpdateQuorumAndLimitDate | Parámetros de entrada (ver detalle de campos en el apartado de objetos comunes) |
Parámetros de respuesta
Nombre | Tipo | Descripción |
---|
resultUpdateQuorum | ResultUpdateQuorumAndLimitDate | 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);
DOCUMENT_SERVICE_GENERIC_ERROR | Error genérico durante el servicio |
EXTERNALUSER_UKENTITYNAME | El nombre de la entidad que se intenta añadir ya se encuentra en la base de datos |
Suscripción a eventos
...
PFI se integra con SGA para el envío de eventos. Para que una aplicación pueda recibir los eventos de PFI, es necesario que esté dada de alta en SGA y que publique un servicio web para la recepción de los eventos. En el manual de SGA se explica cómo publicar el servicio web para poder recibir los eventos.
PFI envía eventos a través de los siguientes métodos:
- expiredDocument → Método que informa los documentos que han quedado expirados por no haber sido firmados antes de la fecha límite configurada. En los datos del evento llega el código CSV del documento y su estado. Los estados a recibir son los siguientes:
- Estado 0 (BORRADOR ) → Un documento queda expirado en estado 0 (BORRADOR) cuando no tiene ninguna firma realizada y no ha sido firmado antes de la fecha límite configurada
- Estado 2 (FIRMADO) → Un documento queda expirado en estado 2 (FIRMADO) cuando tiene todas las firmas necesarias realizadas pero por algún motivo ha quedado en el estado erróneo y no se ha cumplido la fecha límite configurada
Ejemplo de datos del evento que recibiría la aplicación destino:
Image Added
La aplicación destino que desee recibir los eventos debe estar suscrita en SGA al método expiredDocument de PFI. Además, en PAU deberá tener permiso sobre el método expiredDocument de PFI.
- 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.
Ejemplo de datos del evento que recibiría la aplicación destino:
Image Added
La aplicación destino que desee recibir los eventos debe estar suscrita en SGA al método sendEvent de PFI. Además, en PAU deberá tener permiso sobre el método sendEvent de PFI.
Anexos
...
Objectos Comunes
Objeto 'SignerSearch'
...
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 |
...
Nombre | Tipo | Descripción |
---|
csv | String | Código seguro de verificación del documento |
applicationId | String | Aplicación que ejecuta el método |
userNif | String | Nif de usuario |
...
Nombre | Tipo | Descripción |
---|
csv | String | Código seguro de verificación del documento |
state | Integer | Estado actual del documento |
modifyState | Integer | Estado al que cambiará el documento |
modifyDate | Date | Fecha del cambio de estado del documento |
Objeto Anchor |
---|
| ParamUpdateQuorumAndLimitDate |
---|
| ParamUpdateQuorumAndLimitDate |
---|
|
'ParamUpdateQuorumAndLimitDate'
...
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 |
...