En este apartado se explicarán los servicios de pfi y cómo inicializar su cliente java
ÍNDICE DEL CONTENIDO
Table of Contents
Inicialización del cliente mediante CXF
...
En este apartado se explicarán los servicios de pfi y cómo inicializar su cliente java
ÍNDICE DEL CONTENIDO
Table of Contents
Inicialización del cliente mediante CXF
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 | ||||||
---|---|---|---|---|---|---|
| ||||||
<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:client idoutInterceptors> <ref bean="pfiClientauthorizeInterceptor" serviceClass/> </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.wsinterceptors.IDocumentIntegrationServiceAuthorizeOutInterceptor"> 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> |
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> |
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 deben definir un servlet al que invoque PFI cuando cambie el estado de un documento, no obstante, se puede consultar directamente al 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:
...
-
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 1241284867 descrito previamente en este manual. |
-
Servicios SignerService
Método 'findQuickSignerList'
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
...
title | Más detalles |
---|
Signatura
List<Signer> findQuickSignerList(SignerSearch signerSearch)
Parámetros de invocación
...
Parámetros de respuesta
...
Códigos error
...
Ejemplos de invocación
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
SignerSearch signerSearch = new SignerSearch();
signerSearch.setSignerNif("25448659X");
List<Signer> signerList = iSignerImpl.findQuickSignerList(signerSearch); |
Método 'findSignerList'
Método que busca una lista de firmantes atendiendo a unos parámetros de búsqueda
...
title | Más detalles |
---|
Signatura
List<Signer> findSignerList(SignerSearch signerSearch)
Parámetros de invocación
...
Parámetros de respuesta
...
Códigos error
...
Ejemplos de invocación
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
SignerSearch signerSearch = new SignerSearch();
signerSearch.setOrganismCode("ORG0001");
List<Signer> signerList = iSignerImpl.findSignerList(signerSearch); |
Método 'findSignerByNif'
Método que busca un firmante atendiendo a unos parámetros de búsqueda establecidos en concreto se buscará el firmante que corresponde a un Nif
...
title | Más detalles |
---|
Signatura
Signer findSignerByNif(SignerSearch signerSearch)
Parámetros de invocación
...
Parámetros de respuesta
...
Códigos error
...
Ejemplos de invocación
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
SignerSearch signerSearch = new SignerSearch();
signerSearch.setUserNif("78965412X");
Signer signer = iSignerImpl.findSignerByNif(signerSearch); |
Método 'findProposedSigner'
Método que busca un firmante propuesto para un documento atendiendo a unos criterios de búsqueda
...
title | Más detalles |
---|
Signatura
ParamProposedSigner findProposedSigner(ParamProposedSignerSearch paramProposedSignerSearch)
Parámetros de invocación
...
Parámetros de respuesta
...
Códigos error
...
Ejemplos de invocación
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
ParamProposedSignerSearch paramProposedSignerSearch = new ParamProposedSignerSearch();
paramProposedSignerSearch.setSignerNif("78965412X");
ParamProposedSigner proposedSigner = iSignerImpl.findProposedSigner(paramProposedSignerSearch); |
Método 'findProposedSignerList'
Método que busca la lista de firmantes propuestos según los criterios establecidos en el parámetro de entrada
...
title | Más detalles |
---|
Signatura
ParamProposedSignerList findProposedSignerList(ParamProposedSignerSearch paramProposedSignerSearch)
Parámetros de invocación
...
Parámetros de respuesta
...
Códigos error
...
Ejemplos de invocación
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
ParamProposedSignerSearch paramProposedSignerSearch = new ParamProposedSignerSearch();
paramProposedSignerSearch.setSignerNif("78965412X");
ParamProposedSignerList proposedSigner = iSignerImpl.findProposedSignerList(paramProposedSignerSearch); |
Método 'saveProposedSigner'
Método que guarda en base de datos un firmante propuesto correspondiente a un documento
...
title | Más detalles |
---|
Signatura
ParamProposedSigner saveProposedSigner(ParamProposedSigner paramProposedSigner, Document document)
Parámetros de invocación
...
Parámetros de respuesta
...
Códigos error
...
Ejemplos de invocación
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
ParamProposedSignerSearch paramProposedSignerSearch = new ParamProposedSignerSearch();
paramProposedSignerSearch.setSignerNif("78965412X");
ParamProposedSigner proposedSigner = iSignerImpl.findProposedSigner(paramProposedSignerSearch);
DocumentSearch documentSearch = new DocumentSearch();
documentSearch.setCsv("CSV6F70H2A66T1E01PFI");
Document document = iDocumentImpl.findDocument(documentSearch);
ParamProposedSigner result = iSignerImpl.saveProposedSigner(paramProposedSigner, document); |
Método 'deleteProposedSigner'
Método que borra un firmante propuesto de un documento y reordena el resto de firmantes
...
title | Más detalles |
---|
Signatura
void deleteProposedSigner(ParamProposedSigner paramProposedSigner, Long documentId)
Parámetros de invocación
...
Parámetros de respuesta
...
Códigos error
...
Ejemplos de invocación
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
ParamProposedSignerSearch paramProposedSignerSearch = new ParamProposedSignerSearch();
paramProposedSignerSearch.setSignerNif("78965412X");
ParamProposedSigner proposedSigner = iSignerImpl.findProposedSigner(paramProposedSignerSearch);
DocumentSearch documentSearch = new DocumentSearch();
documentSearch.setCsv("CSV6F70H2A66T1E01PFI");
Document document = iDocumentImpl.findDocument(documentSearch);
iSignerImpl.deleteProposedSigner(paramProposedSigner, document.getId()); |
Servicios DocumentService
Método 'findDocument'
Método que busca un documento utilizando los criterios de búsqueda establecidos como parámetro de entrada
...
title | Más detalles |
---|
Signatura
Document findDocument(DocumentSearch documentSearch)
Parámetros de invocación
...
Parámetros de respuesta
...
Códigos error
...
Ejemplos de invocación
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
DocumentSearch documentSearch = new DocumentSearch();
documentSearch.setCsv("CSV6F70H2A66T1E01PFI");
Document document = iDocumentImpl.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
...
title | Más detalles |
---|
Signatura
List<Document> findDocumentList(DocumentSearch documentSearch)
Parámetros de invocación
...
Parámetros de respuesta
...
Códigos error
...
Ejemplos de invocación
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
DocumentSearch documentSearch = new DocumentSearch();
documentSearch.setState(2);
List<Document> documentList = iDocumentImpl.findDocumentList(documentSearch);
|
Método 'findDocumentTray'
Método que permite la búsqueda de un listado de documentos para las bandejas a partir del objeto ParamTraySearch
...
title | Más detalles |
---|
Signatura
ResultTrayList findDocumentTray(ParamTraySearch paramTraySearch)
Parámetros de invocación
...
Parámetros de respuesta
...
Códigos error
...
Ejemplos de invocación
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
ParamTraySearch paramTraySearch = new ParamTraySearch();
paramTraySearch.setDraft(true);
ResultTrayList resultTrayList = iDocumentImpl.findDocumentTray(paramTraySearch);
|
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
...
title | Más detalles |
---|
Signatura
ResultTrayListVisibility findDocumentTrayVisibility(ParamTraySearch paramTraySearch)
Parámetros de invocación
...
Parámetros de respuesta
...
Códigos error
...
Ejemplos de invocación
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
ParamTraySearch paramTraySearch = new ParamTraySearch();
paramTraySearch.setDraft(true);
ResultTrayListVisibility resultTrayListVisibility = iDocumentImpl.findDocumentTrayVisibility(paramTraySearch);
|
Método 'findDocumentFolderList'
Método que busca un listado de bloques o carpetas a partir del objeto de búsqueda del documento
...
title | Más detalles |
---|
Signatura
List<ParamFolder> findDocumentFolderList(DocumentSearch document)
Parámetros de invocación
...
Parámetros de respuesta
...
Códigos error
...
Ejemplos de invocación
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
DocumentMetadataSearch documentMetadataSearch = new DocumentMetadataSearch();
|
Método 'signDocument'
Método para firmar un documento
...
title | Más detalles |
---|
Signatura
signDocument(ParamSignDocument paramSignDocument)
Parámetros de invocación
...
Parámetros de respuesta
...
Códigos error
...
Ejemplos de invocación
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
ParamSignDocument paramSignDocument = new ParamSignDocument();
paramSignDocument.setCsv("CSV6F70H2A66T1E01PFI");
iDocumentImpl.signDocument(paramSignDocument);
|
Método 'saveDocument'
Método para guardar los datos de un documento
...
title | Más detalles |
---|
Signatura
Document saveDocument(Document document)
Parámetros de invocación
...
Parámetros de respuesta
...
Códigos error
...
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
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
...
title | Más detalles |
---|
Signatura
...
<property name="applicationId" value="[código aplicación llamante]"/>
</bean> |
-
Capturar notificaciones sobre cambios de estado en los documentos
...
Las aplicaciones integradoras deben definir un servlet al que invoque PFI cuando cambie el estado de un documento, no obstante, se puede consultar directamente al 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 1241284867 descrito previamente en este manual. |
-
Servicios SignerService
...
Método 'findQuickSignerList'
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
Expand | |||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||
Signatura List<Signer> findQuickSignerList(SignerSearch signerSearch) Parámetros de invocación
Parámetros de respuesta
Códigos error
Ejemplos de invocación
|
Método 'findSignerList'
Método que busca una lista de firmantes atendiendo a unos parámetros de búsqueda
Expand | |||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||
Signatura List<Signer> findSignerList(SignerSearch signerSearch) Parámetros de invocación
Parámetros de respuesta
Códigos error
Ejemplos de invocación
|
Método 'findSignerByNif'
Método que busca un firmante atendiendo a unos parámetros de búsqueda establecidos en concreto se buscará el firmante que corresponde a un Nif
Expand | |||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||
Signatura Signer findSignerByNif(SignerSearch signerSearch) Parámetros de invocación
Parámetros de respuesta
Códigos error
Ejemplos de invocación
|
Método 'findProposedSigner'
Método que busca un firmante propuesto para un documento atendiendo a unos criterios de búsqueda
Expand | |||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||
Signatura ParamProposedSigner findProposedSigner(ParamProposedSignerSearch paramProposedSignerSearch) Parámetros de invocación
Parámetros de respuesta
Códigos error
Ejemplos de invocación
|
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 ParamProposedSignerList findProposedSignerList(ParamProposedSignerSearch paramProposedSignerSearch) Parámetros de invocación
Parámetros de respuesta
Códigos error
Ejemplos de invocación
|
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 Document findDocument(DocumentSearch documentSearch) Parámetros de invocación
Parámetros de respuesta
Códigos error
Ejemplos de invocación
|
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 List<Document> findDocumentList(DocumentSearch documentSearch) Parámetros de invocación
Parámetros de respuesta
Códigos error
Ejemplos de invocación
|
Método '
...
findDocumentTray'
Método para obtener el estado del documentoque permite la búsqueda de un listado de documentos para las bandejas a partir del objeto ParamTraySearch
Expand | ||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||
Signatura Integer getDocumentState(ParamGetDocumentState paramGetDocumentStateResultTrayList findDocumentTray(ParamTraySearch paramTraySearch) Parámetros de invocación
Parámetros de respuesta
Códigos error
Ejemplos de invocación
|
Método '
...
findDocumentTrayVisibility'
Método para cambiar el estado de un documentoque permite la búsqueda de un listado de documentos para las bandejas a partir del objeto ParamTraySearch incluyendo información de visibilidad
Expand | ||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||
Signatura void setDocumentState(ParamSetDocumentState paramSetDocumentStateResultTrayListVisibility findDocumentTrayVisibility(ParamTraySearch paramTraySearch) Parámetros de invocación
Parámetros de respuesta
Códigos error
Ejemplos de invocación
|
Método '
...
findDocumentFolderList'
Método para obtener la operación asociada al que busca un listado de bloques o carpetas a partir del objeto de búsqueda del documento
Expand | ||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||
Signatura ResultGetOperation getOperation(ParamGetOperation paramGetOperationList<ParamFolder> findDocumentFolderList(DocumentSearch document) Parámetros de invocación
Parámetros de respuesta
Códigos error
Ejemplos de invocación
|
Servicios AdviceService
Método 'sendAdvice'
...
|
Método 'getDocumentState'
Método para obtener el estado del documento
Expand | ||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||
Signatura void sendAdvice(Integer noteType, String csv, String text, String userAdviserInteger getDocumentState(ParamGetDocumentState paramGetDocumentState) Parámetros de invocación
Parámetros de respuesta
Códigos error
Ejemplos de invocación
|
Método '
...
getOperation'
Método que manda un correo electrónico de manera inmediata mediante sga para informar de algún cambio en un para obtener la operación asociada al documento
Expand | |||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||||||||||
Signatura void sendMail(String fiscalAnagram, String asunto, String mensajeResultGetOperation getOperation(ParamGetOperation paramGetOperation) Parámetros de invocación
Parámetros de respuesta
Códigos error
Ejemplos de invocación
|
Servicios DocumentIntegrationService
...
Expand | |||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||
Signatura ResultSendDocument sendDocumentumDocument(ParamSendDocument paramSendDocument) Parámetros de invocación
Parámetros de respuesta
Códigos error
Ejemplos de invocación
|
...
Expand | |||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||
Signatura ResultUpdateQuorumAndLimitDate updateQuorumAndLimitDateDocument (ParamUpdateQuorumAndLimitDate paramUpdateQuorumAndDate) Parámetros de invocación
Parámetros de respuesta
Códigos error
Ejemplos de invocación
|
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:
...
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:
...
Objeto AnchorParamProposedSigner ParamProposedSigner
'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 AnchorParamUpdateQuorumAndLimitDate ParamUpdateQuorumAndLimitDate
'ParamUpdateQuorumAndLimitDate'
ParamUpdateQuorumAndLimitDate | |
ParamUpdateQuorumAndLimitDate |
...
Objeto AnchorParamSendDocument ParamSendDocument
'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 |
...