5.- Casos de uso PFI de ejemplo
En este apartado se van a explicar diferentes casos de uso y cómo podría implementarlos una aplicación integradora.
- 1 Ejemplo 1: puesta a disposición de un documento para su firma, con un solo firmante
- 2 Ejemplo 2: puesta a disposición de documento con varios firmantes no siendo obligatorio la firma de todos para estar firmado.
- 3 Ejemplo 3: Documento estado original y documento en estado copia
- 4 Ejemplo 4: Ejemplo de como crear un documento de firma secuencial invocando a CCSV
- 5 Ejemplo 5: Ejemplo de como rechazar o recuperar un documento Pendiente de firma
- 6 Ejemplo 6: Ejemplo de como anular un documento Firmado
Ejemplo 1: puesta a disposición de un documento para su firma, con un solo firmante
Ejemplo 2: puesta a disposición de documento con varios firmantes no siendo obligatorio la firma de todos para estar firmado.
Ejemplo 3: Documento estado original y documento en estado copia
Para crear un documento en estado original
Se debe rellenar el metadato dea_desc_estado con valor P. No se debe rellenar el metadato dea_desc_tipo_copia.
En los metadatos que se rellenan para invocar a createDocument de CCSV, el metadato dea_desc_estado se rellenaría de la siguiente forma:
metadatos.put(DocumentumConstants.NombreMetadatos.PAEGA_DESC_ESTADO, DocumentumConstants.Estado.PENDIENTE_DE_FIRMA);Cuando el documento quede en estado firmado en PFI, el valor del metadato dea_desc_estado será 0 (Firmado).
Para crear un documento en estado copia
Se debe rellenar el metadato dea_desc_estado con valor P y el metadato dea_desc_tipo_copia con un valor que esté en el rango entre 0 y 5.
En los metadatos que se rellenan para invocar a createDocument de CCSV, los metadatos quedarían de la siguiente forma:
metadatos.put(DocumentumConstants.NombreMetadatos.PAEGA_DESC_TIPO_COPIA, DocumentumConstants.Estado.PENDIENTE_DE_FIRMA);
// en este caso se indica a modo de ejemplo copia simple
metadatos.put(DocumentumConstants.NombreMetadatos.PAEGA_DESC_TIPO_COPIA, DocumentumConstants.TipoCopia.COPIA_SIMPLE);Cuando el documento quede en estado firmado en PFI, el valor del metadato dea_desc_estado será 2 (Copia) y el valor del metadato dea_desc_tipo_copia será el valor (entre 0 y 5) que se había introducido anteriormente al crear el documento.
Ejemplo 4: Ejemplo de como crear un documento de firma secuencial invocando a CCSV
Ejemplo 5: Ejemplo de como rechazar o recuperar un documento Pendiente de firma
Para recuperar o rechazar un documento en estado Pendiente de firma, se debe invocar al servicio reviseOrRejectDocument. A este servicio solo se debe invocar con documentos Pendientes de firma y la acción no la puede hacer (no se debe dejar) que la haga un ciudadano (firmante externo no existente en SIU). La invocación a este método devuelve el documento a Borrador en PFI, y lo anula en CCSV.
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.core.pfi.aragon.es/">
<soapenv:Header/>
<soapenv:Body>
<ws:reviseOrRejectDocument>
<!-- SI ESTA ELIMINADO EN CCSV DARA ERROR PERO SE RECHAZA IGUALMENTE-->
<arg0>
<!--Optional:-->
<applicationId>appInvocante</applicationId>
<userNif>NifUsuario</userNif>
<noteDate>2026-05-15T12:51:00</noteDate>
<text>Motivo del rechazo o recuperación</text>
<!--Optional: -->
<type>0</type>
<!--Optional:-->
<userName>NombreUsuario</userName>
<!--Optional:-->
<userSurname1>Apellido1Usuario</userSurname1>
<!--Optional:-->
<userSurname2>Apellido2Usuario</userSurname2>
</arg0>
<!--Zero or more repetitions:-->
<arg1>csvDocumentoARechazar</arg1>
<!--Optional:-->
<arg4>NifUsuario</arg4>
</ws:reviseOrRejectDocument>
</soapenv:Body>
</soapenv:Envelope>
Ejemplo 6: Ejemplo de como anular un documento Firmado
Para anular un documento en estado Firmado, se debe invocar al servicio deleteDocument. A este servicio solo se debe invocar con documentos Firmados y la acción la debería hacer un firmante del documento a anular. La invocación a este método marca el documento como Eliminado en PFI, pero no lo anula en CCSV, por lo que es necesario invocar a CCSV para cambiar el estado.
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.core.pfi.aragon.es/">
<soapenv:Header/>
<soapenv:Body>
<ws:deleteDocument>
<!--Optional:-->
<arg0>
<!--Optional:-->
<applicationId>appInvoca</applicationId>
<!--Optional:-->
<userNif>NifUsuario</userNif>
<csv>csvDocumentoAnular</csv>
</arg0>
</ws:deleteDocument>
</soapenv:Body>
</soapenv:Envelope>
Una vez marcado el documento en PFI como Eliminado, será necesario invocar al servicio changeState de CCSV para marcar como Anulado el documento.
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.core.ccsv.aragon.es/" xmlns:doc="http://documentmetadata.data.ws.core.ccsv.aragon.es" xmlns:data="http://data.util.core.ccsv.aragon.es">
<soapenv:Header/>
<soapenv:Body>
<ws:changeState>
<!--Optional:-->
<ws:arg0>
<!--Optional:-->
<doc:applicationId>appInvocante</doc:applicationId>
<!--Optional:-->
<doc:csv>csvDocumentoAnular</doc:csv>
<!--Optional:-->
<doc:ip>ipdesdelaqueseinvoca</doc:ip>
<!--Optional:-->
<doc:nif>NifUsuario</doc:nif>
<!--Optional:-->
<doc:state>A</doc:state>
<!--Optional:-->
<doc:traceData>
<!--Optional:-->
<data:reason>Motivo anulación</data:reason>
</doc:traceData>
</ws:arg0>
</ws:changeState>
</soapenv:Body>
</soapenv:Envelope>
