-
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 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.
...
title | Más detalles |
---|
Signatura
ResultSendDocument sendDocumentumDocument(ParamSendDocument paramSendDocument)
Parámetros de invocación
...
Parámetros de respuesta
...
Objeto que encapsula el resultado de la operación, proporcionado información en caso de error
Códigos error
...
DOCUMENTINTEGRATIONMANAGERIMPL_SENDDOCUMENTUMDOCUMENT
...
...
Ejemplos de invocación
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
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
...
title | Más detalles |
---|
Signatura
ResultUpdateQuorumAndLimitDate updateQuorumAndLimitDateDocument (ParamUpdateQuorumAndLimitDate paramUpdateQuorumAndDate)
Parámetros de invocación
...
Parámetros de respuesta
...
Objeto que encapsula el resultado de la operación, proporcionado información en caso de error
Códigos error
...
QUORUMTASK_DOCUMENTNONEXISTING
...
Ejemplos de invocación
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
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);
|
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:
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
...
quorum
...
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> |
...
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> |
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: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 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
|
Método 'saveProposedSigner'
Método que guarda en base de datos un firmante propuesto correspondiente a un documento
Expand | ||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||
Signatura ParamProposedSigner saveProposedSigner(ParamProposedSigner paramProposedSigner, Document document) Parámetros de invocación
Parámetros de respuesta
Códigos error
Ejemplos de invocación
|
Método 'deleteProposedSigner'
Método que borra un firmante propuesto de un documento y reordena el resto de firmantes
Expand | ||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||
Signatura void deleteProposedSigner(ParamProposedSigner paramProposedSigner, Long documentId) 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 que permite la búsqueda de un listado de documentos para las bandejas a partir del objeto ParamTraySearch
Expand | |||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||
Signatura ResultTrayList findDocumentTray(ParamTraySearch paramTraySearch) Parámetros de invocación
Parámetros de respuesta
Códigos error
Ejemplos de invocación
|
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 ResultTrayListVisibility findDocumentTrayVisibility(ParamTraySearch paramTraySearch) Parámetros de invocación
Parámetros de respuesta
Códigos error
Ejemplos de invocación
|
Método 'findDocumentFolderList'
Método que busca un listado de bloques o carpetas a partir del objeto de búsqueda del documento
Expand | |||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||
Signatura List<ParamFolder> findDocumentFolderList(DocumentSearch document) Parámetros de invocación
Parámetros de respuesta
Códigos error
Ejemplos de invocación
|
Método 'signDocument'
Método para firmar un documento
Expand | |||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||||
Signatura signDocument(ParamSignDocument paramSignDocument) Parámetros de invocación
Parámetros de respuesta
Códigos error
Ejemplos de invocación
|
Método 'saveDocument'
Método para guardar los datos de un documento
Expand | |||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||
Signatura Document saveDocument(Document document) Parámetros de invocación
Parámetros de respuesta
Códigos error
|
Método 'findMetadataValue'
Método para guardar los datos de un documento
Expand | |||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||
Signatura findMetadataValue(ParamMetadata paramMetadata) Parámetros de invocación
Parámetros de respuesta
Códigos error
Ejemplos de invocación
|
Método 'getDocumentState'
Método para obtener el estado del documento
Expand | |||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||
Signatura Integer getDocumentState(ParamGetDocumentState paramGetDocumentState) Parámetros de invocación
Parámetros de respuesta
Códigos error
Ejemplos de invocación
|
Método 'setDocumentState'
Método para cambiar el estado de un documento
Expand | |||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||
Signatura void setDocumentState(ParamSetDocumentState paramSetDocumentState) Parámetros de invocación
Parámetros de respuesta
Códigos error
Ejemplos de invocación
|
Método 'getOperation'
Método para obtener la operación asociada al documento
Expand | |||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||
Signatura ResultGetOperation getOperation(ParamGetOperation paramGetOperation) Parámetros de invocación
Parámetros de respuesta
Códigos error
Ejemplos de invocación
|
Servicios AdviceService
...
Método 'sendAdvice'
Método que manda un aviso utilizando el sistema de cola de sga para informar de algún cambio en un documento
Expand | ||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||
Signatura void sendAdvice(Integer noteType, String csv, String text, String userAdviser) Parámetros de invocación
Parámetros de respuesta
Códigos error
Ejemplos de invocación
|
Método 'sendMail'
Método que manda un correo electrónico de manera inmediata mediante sga para informar de algún cambio en un documento
Expand | |||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||
Signatura void sendMail(String fiscalAnagram, String asunto, String mensaje) Parámetros de invocación
Parámetros de respuesta
Códigos error
Ejemplos de invocación
|
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 ResultSendDocument sendDocumentumDocument(ParamSendDocument paramSendDocument) Parámetros de invocación
Parámetros de respuesta
Códigos error
Ejemplos de invocación
|
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
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:
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 Anchor SignerSearch SignerSearch
'SignerSearch'
SignerSearch | |
SignerSearch |
Nombre | Tipo | Descripción |
---|---|---|
auditorNif | String | Nif del auditor a buscar |
signerNif | String | Nif del firmante para el que se quieren buscar auditores |
fiscalAnagram | String | Nif del usuario identificado en la aplicación |
organismCode | String | Código de organismo del firmante |
name | String | Nombre del firmante |
surname1 | String | Primer apellido de firmante |
surname2 | String | Segundo apellido de firmante |
String | E-mail del firmante | |
roleCode | String | Código del rol del usuario |
userOrganismCode | String | Código de organismo de usuario |
prepararOtrasRamas | boolean | Indica si el usuario tiene acceso a ramas diferentes a la suya |
fromIndex | int | Índice a partir del que se quieren obtener los auditores |
toIndex | int | Índice hasta el que se permite devolver auditores |
maxResults | int | Máximo número de auditores que se devuelven |
sortColumn | String | Indica la ordenación de los resultados |
ascending | Boolean | Indica si la ordenación de los resultados es ascendente o descendente |
active | Boolean | Indica si han de ser activos los firmantes encontrados o no |
Objeto Anchor Signer Signer
'Signer'
Signer | |
Signer |
Nombre | Tipo | Descripción |
---|---|---|
name | Long | Nombre del firmante |
surname1 | String | Primer apellido del firmante |
surname2 | String | Segundo apellido del firmante |
nif | String | Nif del firmante |
fiscalAnagram | String | Anagrama fiscal del auditor |
organism | String | Organismos en los que firma |
role | String | Nombre del rol del firmante |
roleCode | String | Código del rol del firmante |
organismCode | String | Nombre del organismo en el que firma |
Objeto Anchor ParamProposedSignerSearch ParamProposedSignerSearch
'ParamProposedSignerSearch'
ParamProposedSignerSearch | |
ParamProposedSignerSearch |
Nombre | Tipo | Descripción |
---|---|---|
signerNif | String | Nif del firmante propuesto |
signerName | String | Nombre del firmante propuesto |
signerDateTo | Date | Indica el inicio del periodo para cotejar la fecha de firma |
signerDateFrom | Date | Indica el final del periodo para cotejar la fecha de firma |
signaturePosition | Integer | Tipo de posición de los pies de firma |
signerOrder | Integer | Orden de firma del firmante propuesto |
position | String | Coordenadas donde se ha colocado el pie de firma del firmante propuesto |
delegationText | String | Texto de delegación del firmante propuesto |
signed | Integer | Indica si el firmante propuesto ha firmando (1) o no (0) |
signerOrgCode | String | Código de organismo del firmante propuesto |
document | Document | Documento para el el cual se buscarán los firmantes propuestos |
signerStatus | String | Condición del firmante |
fromIndex | int | Índice a partir del que se quieren obtener los auditores |
toIndex | int | Índice hasta el que se permite devolver auditores |
maxResults | int | Máximo número de auditores que se devuelven |
sortColumn | String | Indica la ordenación de los resultados |
ascending | Boolean | Indica si la ordenación de los resultados es ascendente o descendente |
Objeto Anchor ParamProposedSigner 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 |
Objeto Anchor DocumentMetadata DocumentMetadata
'DocumentMetadata'
DocumentMetadata | |
DocumentMetadata |
Nombre | Tipo | Descripción |
---|---|---|
signerName | String | Si se mostrará el documento (S), o no (N) |
signerSurname | String | Apellidos del firmante |
signerNif | String | Nif del firmante |
auditorName | String | Nombre de auditor |
auditorSurname | String | Apellidos de auditor |
auditorNif | String | Nif de auditor |
description | String | Descripción del metadato |
documentType | String | Tipo de documento |
procedure | String | Nombre de procedimiento |
metadataName | String | Nombre del metadato |
metadataValue | String | Valor del metadato |
Objeto Anchor DocumentMetadata DocumentMetadata
'DocumentMetadataSearch'
DocumentMetadata | |
DocumentMetadata |
Nombre | Tipo | Descripción |
---|---|---|
documentMetadataId | Long | Id del registro en el historial |
signerName | String | Si se mostrará el documento (S), o no (N) |
signerSurname | String | Apellidos del firmante |
signerNif | String | Nif del firmante |
auditorName | String | Nombre de auditor |
auditorSurname | String | Apellidos de auditor |
auditorNif | String | Nif de auditor |
description | String | Descripción de metadato |
documentType | String | Tipo de documento |
procedure | String | Nombre del procedimiento |
metadataName | String | Nombre del metadato |
metadataValue | String | Valor del metadato |
Objeto Anchor DocumentSearch DocumentSearch
'DocumentSearch'
DocumentSearch | |
DocumentSearch |
Nombre | Tipo | Descripción |
---|---|---|
documentId | Long | Id del documento a buscar |
documentIds | List<Long> | Lista de ids a buscar |
csv | String | Código seguro de verificación del documento |
lookUpDocumentumData | Boolean | Buscar datos en documentum |
lookUpStampSigned | Boolean | |
lookUpLetDocumentStamp | Boolean | |
lookUpProposedSigners | Boolean | Buscar firmantes propuestos |
lookUpFile | String | Buscar fichero |
state | Integer | Estado del documento |
csvAuthorized | String | Código seguro de verificación autorizado |
isDetail | Boolean | Indica si es detalle |
modifiedState | Boolean | Si el documento ha cambiado de estado |
esDocAnulacion | String | Si es un documento de anulación |
csvAnulacion | String | CSV del documento de anulación asociado |
csvSustitucion | String | CSV del documento de sustitución asociado |
Objeto Anchor ParamTraySearch ParamTraySearch
'ParamTraySearch'
ParamTraySearch | |
ParamTraySearch |
Nombre | Tipo | Descripción |
---|---|---|
metadataId | Long | Id del documento a buscar |
metadataName | String | Lista de ids a buscar |
issuerName | String | Código seguro de verificación del documento |
signerName | String | Buscar datos en documentum |
signerNif | String | Nif del firmante |
issuerNif | String | Buscar firmantes propuestos |
recipient | String | Buscar fichero |
description | String | Estado del documento |
documentType | String | Código seguro de verificación autorizado |
documentCopyOriginal | String | Indica si es detalle |
folder | String | Si el documento ha cambiado de estado |
state | Integer | Si es un documento de anulación |
preparationDateFrom | Date | CSV del documento de anulación asociado |
preparationDateTo | Date | CSV del documento de sustitución asociado |
procedure | String | Nombre del procedimiento |
signed | Boolean | Documento firmado o no firmado |
draft | Boolean | Indica si el documento es un borrador |
pendingSignature | Boolean | Indica si el documento esta pendiente de firma |
auditor | Boolean | Es auditor |
generalAuditor | Boolean | Es auditor general |
fromIndex | int | Índice a partir del que se quieren obtener los documentos |
toIndex | int | Índice hasta el que se permite devolver los documentos coincidentes |
maxResults | int | Cantidad de documentos máxima que se devolverá |
sortColumn | String | Indica la ordenación de los resultados |
ascending | Boolean | Indica si la ordenación de los resultados es ascendente o descendente |
Objeto Anchor Document Document
'Document'
Document | |
Document |
Nombre | Tipo | Descripción |
---|---|---|
applicationId | String | Aplicación que ejecuta el método |
userNif | String | Nif del usuario |
documentId | Long | Id del documento. |
csv | String | Csv generado por CCSV para el documento. |
state | Integer | Estado del documento en el sistema. Puede tomar los siguientes valores: 0:borrador, 1: pendiente de firma, 2: firmado, 3: firmando asíncrona-mente, 4: eliminado |
rejected | String | Indica que el documento ha sido rechazado “S” o que no ha sido rechazado “N”. Por defecto “N”. |
folder | String | Identificador de la carpeta a la que pertenece un documento. |
priority | Integer | Prioridad del documento, por defecto 1: 0: baja 1: media 2:alta |
csvAutorized | String | Csv de un documento de autorización. |
operationId | String | Id del proceso de firma que se realiza. |
operationState | String | Estado en el que se ha quedado el proceso de firma. |
signType | Integer | Tipo de firma del documento. |
limitDate | Date | Fecha límite para la firma del documento. |
prepateDateInit | Date | Fecha de inicio de la preparación del documento. |
prepareDateEnd | Date | Fecha de fin de la preparación del documento. |
creatorNif | String | Nif del creador del documento. |
quorum | Integer | Mínimo de firmas requeridas para pasar a firmar un documento. |
quorumOnly | Boolean | Indica, en el caso de multifirma, si se admiten más firmas que las mínimas requeridas (quorum). |
csvDocCancel | String | CSV del documento de cancelación de la operación. |
hashDocument | String | Indica el hash del documento. |
preloadedImageBase64 | byte[] | Array de bytes que contiene la imagen en base64 del documento. |
esDocAnulacion | String | Indica si el documento es de anulación “S”. |
obligatorioExpediente | String | Indica si el documento es obligatorio para el expediente, en caso de que lo haya, al que va asociado. |
asoaciadoAExpediente | Boolean | Indica si el documento está asociado a algún expediente. |
metadataCache | Map<ParamMetadataId, ParamMetadata> | Metadatos obtenidos de la tabla PFI_METADATA |
metadatas | Map<ParamMetadataId, ParamMetadata> | Mapa con los metadatos del documento ordenados |
proposedSigners | Map<String, ParamProposedSigner> | Mapa con todos los firmantes propuestos. |
documentumMetadata | Map<String, String> | Mapa con los metadatos que se obtienen de documentum. |
metadatosDocumento | List<ParamMetadata> | Lista de los metadatos para los JSP’s |
file | ParamFile | Archivo asociado al documento. |
oid | String | Número de operación de firma que se realiza |
letStamp | Integer | Resultado de la llamada al letDocumentStamp. |
showDocument | String | Indica si se ha de mostrar el documento. |
saveFile | Boolean | Indica si se tiene que guardar el fichero. |
signResult | String | Resultado de la firma del documento. |
hasSummaryDocument | Boolean | Indica si el documento tiene un sumario. |
modifyState | Integer | Estado al que se ha modificado un documento. |
modifyDate | Date | Fecha en la que se ha modificado un documento. |
Objeto Anchor ParamSignDocument ParamSignDocument
'ParamSignDocument'
ParamSignDocument | |
ParamSignDocument |
Nombre | Tipo | Descripción |
---|---|---|
csv | Long | CSV del documento |
nif | String | Nif del firmante |
proposedSigner | Long | Identificador del firmante propuesto |
allSigned | Boolean | |
isAuthorization | Boolean | Indica si es un documento de autorización |
numberOfSigners | Integer | Indica la cantidad de firmantes |
simpleSign | Boolean | Indica si es una firma simple |
restoreDocument | Boolean | Si se restaurará el documento |
Objeto Anchor ParamGetDocumentState ParamGetDocumentState
'ParamGetDocumentState'
ParamGetDocumentState | |
ParamGetDocumentState |
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 |
Objeto Anchor ParamSetDocumentState ParamSetDocumentState
'ParamSetDocumentState'
ParamSetDocumentState | |
ParamSetDocumentState |
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'
ParamUpdateQuorumAndLimitDate | |
ParamUpdateQuorumAndLimitDate |
Nombre | Tipo | Descripción |
---|---|---|
csv | String | CSV del documento |
quorum | Integer | Cantidad de firmas necesarias para firmar un documento |
quorumOnly | Boolean | Indica, en el caso de multifirma, si se admiten más firmas que las mínimas requeridas (quorum). |
date | Date | Fecha limite para firmar |
Objeto Anchor ResultUpdateQuorumAndLimitDate ResultUpdateQuorumAndLimitDate
'ResultUpdateQuorumAndLimitDate'
ResultUpdateQuorumAndLimitDate | |
ResultUpdateQuorumAndLimitDate |
Nombre | Tipo | Descripción |
---|---|---|
errorCode | String | Código de error del servicio |
returnCode | String | Indica si la llamada ha finalizado correctamente (OK) o en error (ERROR) |
errorMessage | String | Descripción del mensaje de error |
Objeto Anchor ParamSendDocument 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 |
Objeto Anchor ResultSendDocument ResultSendDocument
'ResultSendDocument'
ResultSendDocument | |
ResultSendDocument |
Nombre | Tipo | Descripción |
---|---|---|
returnCode | String | Indica si la llamada ha finalizado correctamente (OK) o en error (ERROR) |
errorCode | String | Código de error del servicio |
errorMessage | String | Descripción del mensaje Mensaje de error del servicio |
exception | String | Excepción producida durante el proceso |
Objeto Anchor
...
ParamGetOperation
ParamGetOperation |
...
ParamGetOperation
'
ParamGetOperation |
...
ParamGetOperation'
Nombre | Tipo | Descripción | |
---|---|---|---|
applicationIddocumentId | String | Aplicación que ejecuta el métodoLong | Identificador único del documento |
userNif | String | Nif del usuariocsvdel usuario que ejecuta el servicio web | |
applicationId | StringCódigo seguro de verificación del | documentoId de la aplicación que ejecuta al servicio web |
Objeto Anchor
...
ResultGetOperation
ResultGetOperation |
...
ResultGetOperation
'
ResultGetOperation |
...
ResultGetOperation'
Nombre | Tipo | Descripción | ||
---|---|---|---|---|
returnCodeoperationId | String | Indica si la llamada ha finalizado correctamente (OK) o en error (ERROR) | errorCodeLong | Identificador único de la operación |
operationState | String | Código de error del servicio | errorMessageEstado actual de la operación | |
csvAutorized | String | |||
csvDocCancel | String | Mensaje de error del servicio | ||
exception | String | Excepción producida durante el procesodocumentList | List<Document> | Documentos asociados a la operación consultada |
-