Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

En En este apartado se explicarán los servicios de pfi y cómo inicializar su cliente java

...

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
languagexml
themeEclipse
titleIDocumentIntegrationService
<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
languagexml
themeEclipse
<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
languagexml
themeEclipse
<bean id="authorizeInterceptor" class="es.aragon.pfi.core.util.interceptors.AuthorizeOutInterceptor">
	<property name="applicationId" value="[código aplicación llamante]"/>
</bean>


...

Expand
titleMás detalles

Signatura

ResultSendDocument sendDocumentumDocument(ParamSendDocument paramSendDocument)

Parámetros de invocación

NombreTipoDescripción
paramSendDocument1241284867Parámetros de entrada (ver detalle de campos en el apartado de objetos comunes)

Parámetros de respuesta

NombreTipoDescripción
resultSendDocument1241284867

Objeto que encapsula el resultado de la operación, proporcionado información en caso de error

Códigos error

CódigoDescripción

DOCUMENTINTEGRATIONMANAGERIMPL_SENDDOCUMENTUMDOCUMENT

Error inesperado al crear un documento en la tabla de PFI_DOCUMENT
DOCUMENTMANAGERIMPL_FINDDOCUMENTError inesperado al buscar un documento
LOAD_DOCUMENTError 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
languagejava
firstline1
titleEjemplo de invocación
linenumberstrue
ParamSendDocument paramSendDocument = new ParamSendDocument();
paramSendDocument.setCsv("CSVDA6FLBW3PNAX01PFI");
paramSendDocument.setApplicationId("PFI");
paramSendDocument.setUserNif("00000000T");
ResultSendDocument resultSendDocument = iDocumentIntegrationImpl.sendDocumentumDocument(paramSendDocument);


...

Expand
titleMás detalles

Signatura

ResultUpdateQuorumAndLimitDate updateQuorumAndLimitDateDocument (ParamUpdateQuorumAndLimitDate paramUpdateQuorumAndDate)

Parámetros de invocación

NombreTipoDescripción
paramUpdateQuorumAndDate1241284867Parámetros de entrada (ver detalle de campos en el apartado de objetos comunes)

Parámetros de respuesta

NombreTipoDescripción
resultUpdateQuorum1241284867

Objeto que encapsula el resultado de la operación, proporcionado información en caso de error

Códigos error

CódigoDescripción

QUORUMTASK_DOCUMENTNONEXISTING

El documento con el CSV especificado no existe en la base de datos de PFI
QUORUMTASK_QUORUMWRONGEl 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_DATEWRONGLa fecha límite de firma del documento ha expirado
QUORUMTASK_NOMULTIFIRMAEl documento no es multifirma
QUORUMTASK_SIGNEDEl documento ya ha sido firmado por alguno de los firmantes

Ejemplos de invocación

Code Block
languagejava
firstline1
titleEjemplo de invocación
linenumberstrue
ParamUpdateQuorumAndLimitDate paramUpdateQuorumAndDate = new ParamUpdateQuorumAndLimitDate();
paramUpdateQuorumAndDate.setCsv("CSVP55RYQS7R9AF01PFI");
paramUpdateQuorumAndDate.setQuorum(2);
//queremos de fecha límite por ejemplo el día de hoy más una semana
Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
Integer incFecha = 7;
cal.add(Calendar.DATE, incFecha);
paramCheckQuorumAndDate.setDate(cal.getTime());
paramCheckQuorumAndDate.setQuorumOnly(false);

ResultUpdateQuorumAndLimitDate resultCheckQuorumAndDate = iDocumentIntegrationImpl.updateQuorumAndLimitDateDocument(paramUpdateQuorumAndDate);


...

  • sendEvent → Método que informa sobre los cambios de estado de los documentos de PFI. Para poder recibir estos eventos de cambios de estado, los documentos deben tener asignado el alias de la aplicación receptora en el metadato dea_ident_codigo_aplicacion. De lo contrario, no se recibirán los eventos. El evento se compone de clave y valor. La clave es el CSV del documento y el valor es el estado del documento. Los cambios de estado que se notifican son los siguientes:
    • Estado 3 (Firmando asíncronamente) → Estado al que se pasan los documentos al inicio del proceso de firma para indicar que se está realizando la firma del documento.
    • Estado 6 (Firma paralela) → Se alcanza este estado cuando un documento tiene varios firmantes propuestos y alguno de ellos ya ha firmado pero todavía no se cumple el quorum.
    • Estado 2 (Firmado) → Documento firmado.
    • Estado 0 (Borrador) → Se recibe este evento cuando se rechaza un documento pendiente de firma.
    • Estado 9 (Anulado) → Se recibe este evento cuando se anula un documento.

...

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

...

ParamUpdateQuorumAndLimitDate

...

ParamUpdateQuorumAndLimitDate
'

...

ParamUpdateQuorumAndLimitDate'

NombreTipoDescripción
auditorNifcsvStringNif CSV del auditor a buscardocumento
signerNif

quorum

StringNif del firmante para el que se quieren buscar auditores
fiscalAnagramStringNif del usuario identificado en la aplicación
organismCodeStringCódigo de organismo del firmante
nameStringNombre del firmante
surname1StringPrimer apellido de firmante
surname2StringSegundo apellido de firmante
emailStringE-mail del firmante
roleCodeStringCódigo del rol del usuario
userOrganismCodeStringCódigo de organismo de usuario
prepararOtrasRamasbooleanIndica si el usuario tiene acceso a ramas diferentes a la suya
fromIndexintÍndice a partir del que se quieren obtener los auditores
toIndexintÍndice hasta el que se permite devolver auditores
maxResultsintMáximo número de auditores que se devuelven
sortColumnStringIndica la ordenación de los resultados
ascendingBooleanIndica si la ordenación de los resultados es ascendente o descendente
activeBooleanIndica si han de ser activos los firmantes encontrados o no

...

signerName

...

signerName

...

documentIds

...

metadataName

...

Indica si la ordenación de los resultados es ascendente o descendente

...

Nombre

...

Tipo

...

Descripción

...

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

...

Prioridad del documento, por defecto 1:

0: baja

1: media

2:alta

...

nif

...

applicationId

...

NombreTipoDescripción
csvStringCSV del documento

quorum

IntegerCantidad de firmas necesarias para firmar IntegerCantidad de firmas necesarias para firmar un documento
quorumOnlyBooleanIndica, en el caso de multifirma, si se admiten más firmas que las mínimas requeridas (quorum).
dateDateFecha limite para firmar 

...

NombreTipoDescripción
errorCodeStringCódigo de error del servicio

returnCode

StringIndica si la llamada ha finalizado correctamente (OK) o en error (ERROR)
errorMessageStringDescripción del mensaje de errorfirmar 

Objeto  
Anchor

...

ResultUpdateQuorumAndLimitDate

...

ResultUpdateQuorumAndLimitDate
'

...

ResultUpdateQuorumAndLimitDate'

seguro verificación del documento
NombreTipoDescripción
applicationIderrorCodeStringAplicación que ejecuta el método

userNif

StringNif del usuario
csvStringCódigo de

...

Descripción
NombreTipoerror del servicio

returnCode

StringIndica si la llamada ha finalizado correctamente (OK) o en error (ERROR)

errorCode

StringCódigo de error del servicio
errorMessageStringMensaje Descripción del mensaje de error del servicioexception StringExcepción producida durante el proceso

Objeto  
Anchor

...

ParamSendDocument

...

ParamSendDocument
'

...

ParamSendDocument'

NombreTipoDescripción
documentIdapplicationIdLongIdentificador único del documentoStringAplicación que ejecuta el método

userNif

StringNif del usuario que ejecuta el servicio web
applicationIdcsvStringId de la aplicación que ejecuta al servicio webCódigo seguro de verificación del documento

Objeto  
Anchor

...

ResultSendDocument

...

ResultSendDocument
'

...

ResultSendDocument'

operationState
NombreTipoDescripción
operationIdreturnCodeLongIdentificador único de la operaciónStringIndica si la llamada ha finalizado correctamente (OK) o en error (ERROR)

errorCode

StringEstado actual de la operacióncsvAutorizedCódigo de error del servicio
errorMessageStringcsvDocCancelMensaje de error del servicio
exception String
documentListList<Document>Documentos asociados a la operación consultada

...

Excepción producida durante el proceso