Versions Compared

Key

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

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>


...

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ámetroDescripción
idAppPFI
CSVIdentificador del documento que ha sufrido un cambio de estado
estadoEstado 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
titleMás detalles

Signatura

Signer findSignerByNifList<Signer> findQuickSignerList(SignerSearch signerSearch)

Parámetros de invocación

NombreTipoDescripción
signerSearch1241284867Parámetros de búsqueda (ver detalle de campos en el apartado de objetos comunes)

Parámetros de respuesta

NombreTipoDescripción
signersignerListList<1241284867Firmante cuyo nif coincida con el proporcionado en el parámetro de búsqueda>Lista de firmantes encontrados según los criterios de búsqueda indicados

Códigos error

GET_USER_INFORMATION
CódigoDescripción
SIGNERSERVICEIMPL_FINDSIGNERBYNIFFINDQUICKSIGNERLISTError genérico durante el servicio findSignerByNiffindQuickSignerList
ORGANISMLIST_XXError durante la consulta de los datos en SIU (XX indica el código de error en SIU)

Ejemplos de invocación

Code Block
languagejava
firstline1
titleEjemplo de invocación
linenumberstrue
SignerSearch signerSearch = new SignerSearch();
signerSearch.setUserNifsetSignerNif("78965412X25448659X");
SignerList<Signer> signersignerList = iSignerImpl.findSignerByNiffindQuickSignerList(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
titleMás detalles

Signatura

ParamProposedSigner findProposedSigner(ParamProposedSignerSearch paramProposedSignerSearchList<SignerWithAuditor> findQuickSignerListWithAuditor(SignerSearch signerSearch)

Parámetros de invocación

NombreTipoDescripción
paramProposedSignerSearch1241284867signerSearchManual de Integración PFI 4.7 - servicios para integradores#SignerSearchParámetros de búsqueda (ver detalle de campos en el apartado de objetos comunes)

Parámetros de respuesta

NombreTipoDescripción
proposedSigner1241284867Firmante propuesto encontrado signerAuditorList
Lista de firmantes y auditores encontrados según los criterios de búsqueda indicados

Códigos error

SIGNERSERVICEIMPL_FINDPROPOSEDSIGNER findProposedSigner
CódigoDescripción
FIND_QUICKSIGNER_LIST_WITH_AUDITORError inesperado al buscar en la tabla de firmantes y/o auditores
PROPOSEDSIGNERMANAGER_FINDQUICKSIGNERLISTWITHAUDITORError genérico durante el servicio findQuickSignerList

Ejemplos de invocación

Code Block
languagejava
firstline1
titleEjemplo de invocación
linenumberstrue
ParamProposedSignerSearchSignerSearch paramProposedSignerSearchsignerSearch = new ParamProposedSignerSearchSignerSearch();
paramProposedSignerSearchsignerSearch.setSignerNifsetApplicationId("78965412XPFI");
signerSearch.setOrganismCode("ORG07458");
signerSearch.setSignerNif("00000000T");
ParamProposedSigner proposedSigner
			
			
List <SignerWithAuditor> listSignerAuditor = iSignerImplsignerServiceImpl.findProposedSignerfindQuickSignerListWithAuditor(paramProposedSignerSearchsignerSearch);


Método '

...

findSignerList'

Método que busca la que busca una lista de firmantes propuestos según los criterios establecidos en el parámetro de entradaatendiendo a unos parámetros de búsqueda

Expand
titleMás detalles

Signatura

ParamProposedSignerList findProposedSignerList(ParamProposedSignerSearch paramProposedSignerSearchList<Signer> findSignerList(SignerSearch signerSearch)

Parámetros de invocación

NombreTipoDescripción
paramProposedSignerSearchsignerSearch1241284867Parámetros de búsqueda (ver detalle de campos en el apartado de objetos comunes)

Parámetros de respuesta

NombreTipoDescripción
proposedSignerListsignerListParamProposedSignerListObjeto que encapsula la lista List<1241284867>Lista de firmantes propuestos encontrados y el tamaño de dicha listaencontrados según los criterios de búsqueda indicados

Códigos error

CódigoDescripción
SIGNERSERVICEIMPL_FINDPROPOSEDSIGNERLISTSIGNERSERVICEIMPL_FINDPROPOSEDSIGNERLISTFINDSIGNERLISTError genérico durante el servicio findSignerList
GET_ORGANISM_HISTORICAL_INFORMATION_XXError durante la consulta de los datos en SIU (XX indica el código de error en SIU)

Ejemplos de invocación

Code Block
languagejava
firstline1
titleEjemplo de invocación
linenumberstrue
ParamProposedSignerSearchSignerSearch paramProposedSignerSearchsignerSearch = new ParamProposedSignerSearchSignerSearch();
paramProposedSignerSearchsignerSearch.setSignerNifsetOrganismCode("78965412XORG0001");
ParamProposedSignerListList<Signer> proposedSignersignerList = iSignerImpl.findProposedSignerListfindSignerList(paramProposedSignerSearchsignerSearch);


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
titleMás detalles

Signatura

ParamProposedSigner saveProposedSigner(ParamProposedSigner paramProposedSigner, Document documentSigner findSignerByNif(SignerSearch signerSearch)

Parámetros de invocación

NombreTipoDescripción
paramProposedSignersignerSearch1241284867Parámetro que encapsula los datos del firmante propuesto
document1241284867Documento al que se asociarán los firmantes propuestos
Parámetros de búsqueda (ver detalle de campos en el apartado de objetos comunes)

Parámetros de respuesta

NombreTipoDescripción
resultsigner1241284867Objeto que encapsula los datos del firmante propuesto que se almacenado en la base de datosFirmante cuyo nif coincida con el proporcionado en el parámetro de búsqueda

Códigos error

Error inesperado al buscar una firma a partir de el identificador de un firmante propuesto
CódigoDescripción
SIGNERSERVICEIMPL_SAVEPROPOSEDSIGNERFINDSIGNERBYNIFError genérico durante el servicio saveProposedSigner
PROPOSEDSIGNERMANAGER_FINDPROPOSEDSIGNERLISTError inesperado al buscar en la tabla de firmantes propuestos
SIGNMANAGERIMPL_FINDSIGNBEANBYPROPOSEDSIGNERBEANIDservicio findSignerByNif
GET_USER_INFORMATION_XXError durante la consulta de los datos en SIU (XX indica el código de error en SIU)

Ejemplos de invocación

Code Block
languagejava
firstline1
titleEjemplo de invocación
linenumberstrue
ParamProposedSignerSearchSignerSearch paramProposedSignerSearchsignerSearch = new ParamProposedSignerSearchSignerSearch();
paramProposedSignerSearchsignerSearch.setSignerNifsetUserNif("78965412X");
ParamProposedSignerSigner proposedSignersigner = iSignerImpl.findProposedSigner(paramProposedSignerSearch);

DocumentSearch documentSearch = new DocumentSearch();
documentSearch.setCsv("CSV6F70H2A66T1E01PFI");
Document document = iDocumentImpl.findDocument(documentSearch);

ParamProposedSigner result = iSignerImpl.saveProposedSigner(paramProposedSigner, documentfindSignerByNif(signerSearch);


Método '

...

findProposedSigner'

Método

...

que busca un firmante propuesto

...

para un documento

...

atendiendo a unos criterios de búsqueda

Expand
titleMás detalles

Signatura

void deleteProposedSigner(ParamProposedSigner paramProposedSigner, Long documentIdParamProposedSigner findProposedSigner(ParamProposedSignerSearch paramProposedSignerSearch)

Parámetros de invocación

Identificador del documento del cual se eliminaran los firmantes propuestos
NombreTipoDescripción
paramProposedSigner1241284867Parámetro que encapsula los datos del firmante propuesto
documentIdLongparamProposedSignerSearch1241284867Parámetros de búsqueda (ver detalle de campos en el apartado de objetos comunes)

Parámetros de respuesta

NombreTipoDescripción
proposedSigner1241284867Firmante propuesto encontrado según los criterios de búsqueda indicados

Códigos error

Error inesperado al buscar el documento
CódigoDescripción
SIGNERSERVICEIMPL_DELETEPROPOSEDSIGNERFINDPROPOSEDSIGNERError genérico durante el servicio deleteProposedSigner
PROPOSEDSIGNERMANAGER_FINDPROPOSEDSIGNERLISTError inesperado al buscar en la tabla de firmantes propuestos
DOCUMENTMANAGERIMPL_FINDDOCUMENTfindProposedSigner

Ejemplos de invocación

Code Block
languagejava
firstline1
titleEjemplo de invocación
linenumberstrue
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 'findProposedSignerList'

Método que busca la lista de firmantes propuestos según los criterios establecidos en el parámetro de entrada

Expand
titleMás detalles

Signatura

Document findDocument(DocumentSearch documentSearchParamProposedSignerList findProposedSignerList(ParamProposedSignerSearch paramProposedSignerSearch)

Parámetros de invocación

NombreTipoDescripción
documentSearchparamProposedSignerSearch1241284867Parámetros de búsqueda (ver detalle de campos en el apartado de objetos comunes)

Parámetros de respuesta

NombreTipoDescripción
documentproposedSignerList1241284867Documento encontrado según el criterio de búsqueda proporcionadaParamProposedSignerListObjeto que encapsula la lista de firmantes propuestos encontrados y el tamaño de dicha lista

Códigos error

CódigoDescripción
DOCUMENTSERVICEIMPLSIGNERSERVICEIMPL_FINDDOCUMENTFINDPROPOSEDSIGNERLISTSIGNERSERVICEIMPL_02Error genérico durante el servicio findDocument
Ejemplos
FINDPROPOSEDSIGNERLIST

Ejemplos de invocación

Code Block
languagejava
firstline1
titleEjemplo de invocación
linenumberstrue
DocumentSearchParamProposedSignerSearch documentSearchparamProposedSignerSearch = new DocumentSearchParamProposedSignerSearch();
documentSearchparamProposedSignerSearch.setCsvsetSignerNif("CSV6F70H2A66T1E01PFI78965412X");
DocumentParamProposedSignerList documentproposedSigner = iDocumentImpliSignerImpl.findDocumentfindProposedSignerList(documentSearchparamProposedSignerSearch);


Servicios DocumentService

...

Método '

...

findDocument'

Método que busca una lista de documentos un documento utilizando los criterios de búsqueda establecidos como parámetro de entrada

Expand
titleMás detalles

Signatura

List<Document> findDocumentListDocument findDocument(DocumentSearch documentSearch)

Parámetros de invocación

NombreTipoDescripción
documentSearch1241284867Parámetros de búsqueda (ver detalle de campos en el apartado de objetos comunes)

Parámetros de respuesta

NombreTipoDescripción
documentListdocumentList<1241284867>Lista de documentos encontrados según los parámetros de búsqueda indicadosDocumento encontrado según el criterio de búsqueda proporcionada

Códigos error

DOCUMENTSERVICEIMPL_FINDDOCUMENTLIST findDocumentList
CódigoDescripción
DOCUMENTSERVICEIMPL_FINDDOCUMENTLIST_01Error genérico durante el servicio findDocumentListFINDDOCUMENT_02Error genérico durante el servicio findDocument

Ejemplos de invocación

Code Block
languagejava
firstline1
titleEjemplo de invocación
linenumberstrue
DocumentSearch documentSearch = new DocumentSearch();
documentSearch.setStatesetCsv(2"CSV6F70H2A66T1E01PFI");
List<Document>Document documentListdocument = iDocumentImpl.findDocumentListfindDocument(documentSearch);


Método '

...

findDocumentList'

Método que permite la búsqueda de un listado de documentos para las bandejas a partir del objeto ParamTraySearchque busca una lista de documentos utilizando los criterios de búsqueda establecidos como parámetro de entrada

Expand
titleMás detalles

Signatura

ResultTrayList findDocumentTray(ParamTraySearch paramTraySearchList<Document> findDocumentList(DocumentSearch documentSearch)

Parámetros de invocación

NombreTipoDescripción
paramTraySearchdocumentSearch1241284867Parámetros de búsqueda (ver detalle de campos en el apartado de objetos comunes)

Parámetros de respuesta

NombreTipoDescripción
resultTrayListdocumentListResultTrayListList<1241284867>Lista de documentos para la bandeja que cumplen los criterios encontrados según los parámetros de búsqueda indicados

Códigos error

CódigoDescripción
DOCUMENTSERVICEIMPL_FINDDOCUMENTTRAYFINDDOCUMENTLIST_01Error genérico durante el servicio findDocumentTrayfindDocumentList
FINDDOCUMENTSERVICEIMPL_DOCUMENTFINDDOCUMENTLIST_LIST02Error al buscar los documentos en bbddgenérico durante el servicio findDocumentList

Ejemplos de invocación

Code Block
languagejava
firstline1
titleEjemplo de invocación
linenumberstrue
ParamTraySearchDocumentSearch paramTraySearchdocumentSearch = new ParamTraySearchDocumentSearch();
paramTraySearchdocumentSearch.setDraftsetState(true2);
ResultTrayListList<Document> resultTrayListdocumentList = iDocumentImpl.findDocumentTrayfindDocumentList(paramTraySearchdocumentSearch);


Método '

...

findDocumentTray'

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
titleMás detalles

Signatura

ResultTrayListVisibility findDocumentTrayVisibilityResultTrayList findDocumentTray(ParamTraySearch paramTraySearch)

Parámetros de invocación

NombreTipoDescripción
paramTraySearch1241284867Parámetros de búsqueda (ver detalle de campos en el apartado de objetos comunes)

Parámetros de respuesta

NombreTipoDescripción
resultTrayListVisibilityresultTrayListResultTrayListVisibilityResultTrayListLista de documentos para la bandeja que cumplen los criterios de búsqueda con información de visibilidad

Códigos error

Error en el sistema de autentificación. Se ha producido el siguiente error al buscar la lista de procedimientos del usuario desde PAU
CódigoDescripción
DOCUMENTSERVICEIMPL_FINDDOCUMENTTRAYError genérico durante el servicio findDocumentTrayVisibilityPAUINTEGRATION_PROCEDURELISTBYUSERfindDocumentTray
FIND_DOCUMENT_LISTError al buscar los documentos en bbdd

Ejemplos de invocación

Code Block
languagejava
firstline1
titleEjemplo de invocación
linenumberstrue
ParamTraySearch paramTraySearch = new ParamTraySearch();
paramTraySearch.setDraft(true);
ResultTrayListVisibilityResultTrayList resultTrayListVisibilityresultTrayList = iDocumentImpl.findDocumentTrayVisibilityfindDocumentTray(paramTraySearch);


Método '

...

findDocumentTrayVisibility'

Método que busca que permite la búsqueda de un listado de bloques o carpetas documentos para las bandejas a partir del objeto de búsqueda del documentoParamTraySearch incluyendo información de visibilidad

Expand
titleMás detalles

Signatura

List<ParamFolder> findDocumentFolderList(DocumentSearch documentResultTrayListVisibility findDocumentTrayVisibility(ParamTraySearch paramTraySearch)

Parámetros de invocación

NombreTipoDescripción
documentparamTraySearch1241284867Parámetros de búsqueda (ver detalle de campos en el apartado de objetos comunes)

Parámetros de respuesta

NombreTipoDescripción
paramFolderresultTrayListVisibilityList<ParamFolder>Error inesperado al buscar los diferentes folder a los que pertenecen los documentosResultTrayListVisibilityLista de documentos para la bandeja que cumplen los criterios de búsqueda con información de visibilidad

Códigos error

CódigoDescripción
DOCUMENTSERVICEIMPL_FINDDOCUMENTFOLDERLISTFINDDOCUMENTTRAYError genérico durante el servicio findDocumentFolderListfindDocumentTrayVisibilityNOT_EXIST_DOCUMENT
PAUINTEGRATION_PROCEDURELISTBYUSERError en el sistema de autentificación. Se ha producido el siguiente error al buscar la lista de procedimientos del usuario desde PAU
FIND_DOCUMENT_LISTError al buscar los documentos en bbdd

Ejemplos de invocación

Code Block
languagejava
firstline1
titleEjemplo de invocación
linenumberstrue
DocumentMetadataSearchParamTraySearch documentMetadataSearchparamTraySearch = new DocumentMetadataSearch(ParamTraySearch();
paramTraySearch.setDraft(true);
ResultTrayListVisibility resultTrayListVisibility = iDocumentImpl.findDocumentTrayVisibility(paramTraySearch);


Método '

...

findDocumentFolderList'

Método para firmar un que busca un listado de bloques o carpetas a partir del objeto de búsqueda del documento

Expand
titleMás detalles

Signatura

signDocument(ParamSignDocument paramSignDocumentList<ParamFolder> findDocumentFolderList(DocumentSearch document)

Parámetros de invocación

NombreTipoDescripción
paramSignDocumentdocument1241284867Parámetros de entrada búsqueda (ver detalle de campos en el apartado de objetos comunes)

Parámetros de respuesta

NombreTipoDescripción
Códigos error
paramFolder
CódigoDescripción
DOCUMENTSERVICEIMPL_SIGNDOCUMENT_01Error al firmar el documento porque ya esta en uso o superado la fecha de firma
DOCUMENTSERVICEIMPL_SIGNDOCUMENT_02El proceso de firma ha superado la fecha de firma del documento. Por favor, inténtelo de nuevo
DOCUMENTSERVICEIMPL_SIGNDOCUMENT_03No se puede actualizar el contenido porque ya está en uso
DOCUMENTSERVICEIMPL_SIGNDOCUMENT_04No se puede cambiar el estado porque ya está en uso
DOCUMENTSERVICEIMPL_SIGNDOCUMENT_05Error si se trata de firma simple simpre queda firmado, situacion imposible
DOCUMENTSERVICEIMPL_SIGNDOCUMENT_06No se puede guardar la firma en el documento porque ya está en uso

Ejemplos de invocación

Code Block
language
List<ParamFolder>Error inesperado al buscar los diferentes folder a los que pertenecen los documentos

Códigos error

CódigoDescripción
DOCUMENTSERVICEIMPL_FINDDOCUMENTFOLDERLISTError genérico durante el servicio findDocumentFolderList
NOT_EXIST_DOCUMENT

Ejemplos de invocación

Code Block
languagejava
firstline1
titleEjemplo de invocación
linenumberstrue
ParamSignDocumentDocumentMetadataSearch paramSignDocumentdocumentMetadataSearch = new ParamSignDocumentDocumentMetadataSearch();
paramSignDocument.setCsv("CSV6F70H2A66T1E01PFI");
iDocumentImpl.signDocument(paramSignDocument);


Método '

...

getDocumentState'

Método para guardar los datos de un obtener el estado del documento

Expand
titleMás detalles

Signatura

Document saveDocument(Document documentInteger getDocumentState(ParamGetDocumentState paramGetDocumentState)

Parámetros de invocación

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

Parámetros de respuesta

NombreTipoDescripción
documentstate1241284867IntegerEl documento resultante de la operación

Códigos error

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ódigoDescripción
PARSE

DOCUMENTSERVICEIMPL_

CREATE_BLOB
No se ha podido crear el objeto de base de datos para el binario correspondiente
UTILSCORE_GENERATETEMPORALDOCUMENT_01Error al generar el documento temporal
UTILSCORE_GENERATETEMPORALDOCUMENT_02Error al generar el documento temporal
DOCUMENTSERVICEIMPL_SAVEDOCUMENTError genérico durante el método saveDocument

GETDOCUMENTSTATE

Error genérico durante el servicio getDocumentState
FIND_DOCUMENTError inesperado al buscar un documento
DOCUMENTMANAGERIMPL_FINDDOCUMENTError buscando documento

Ejemplos de invocación

Code Block
languagejava
themefirstlineEclipse1
titleEjemplo de invocación
collapselinenumberstrue
	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'

...

ParamGetDocumentState paramGetDocumentState = new ParamGetDocumentState();
paramGetDocumentState.setCsv("CSVP55RYQS7R9AF01PFI");
Integer documentState = IDocumentService.getDocumentState(paramGetDocumentState);


Método 'getOperation'

Método para obtener la operación asociada al documento

Expand
titleMás detalles

Signatura

ResultGetOperation getOperation(ParamGetOperation paramGetOperation)

Parámetros de invocación

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

Parámetros de respuesta

NombreTipoDescripción
resultGetOperationResultGetOperation

Objeto que encapsula el resultado de la operación

Códigos error

CódigoDescripción

DOCUMENTSERVICEIMPL_GETOPERATION

Error genérico durante el servicio getOperation
SCDEINTEGRATION_GETSTATUSError al comprobar el estado de la operacion
LOAD_OPERATIONError buscando operación. El usuario no tiene permisos para ver la operación
FIND_OPERATIONError buscando operación

Ejemplos de invocación

Code Block
languagejava
firstline1
titleEjemplo de invocación
linenumberstrue
ParamGetOperation paramGetOperation = new ParamGetOperation();
paramGetOperation.setDocumentId(1L);
ResultGetOperation resultGetOperation = IDocumentService.getOperation(paramGetOperation);


Método 'findDocumentListByExternalsigned'

Servicio que consulta los documentos, en estado firmado, tiene un usuario externo.

Expand
titleMás detalles

Signatura

ResultDocumentExternalInfo findDocumentListByExternalSigned(ParamFindDocumentListByExternalWithoutSignature paramFindDocumentListByExternalWithoutSignature)

Parámetros de invocación

ParamFindDocumentListByExternalWithoutSignature:

NombreTipoObligatorioDescripción
applicationIdStringAlias de la aplicación que realiza la consulta
userNifStringNoNIF/NIE del usuario identificado que realiza la consulta
signerNifStringNIF/NIE del usuario firmante
descriptionStringNoDescripción del documento
preparationDateFromDateNo. Altamente recomendable para evitar timeoutsFecha de preparación desde
preparationDateToDateNo. Altamente recomendable para evitar timeoutsFecha de preparación hasta. Si no se rellena, el valor por defecto será la fecha actual +1.
csvStringNoCSV
fromIndexIntegerNoÍndice de comienzo para la paginación
toIndexIntegerNoíndice final para la paginación
sortColumnStringNo. 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
ascendingBooleanNoOrdenar por la columna deseada de forma ascendente o descendente

Parámetros de respuesta

ResultDocumentExternalInfo:

NombreTipoDescripción
applicationIdString

Alias de la aplicación que ha realizado la consulta

userNifStringNIF del usuario identificado
documentsList<DocumentInfo>Lista de documentos paginada
sizeintNúmero total de documentos sin tener en cuenta la paginación

DocumentExternalInfo:

NombreTipoDescripción
csvString

CSV del documento

descriptionStringDescripción del documento
procedureCodeStringCódigo de procedimiento
issuerStringNombre y apellidos del preparador
revisedbooleanSi el documento está revisado o no
stateint

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.
quorumintMínimo de firmas requeridas para pasar a firmar un documento.
quorumOnlyStringIndica, en el caso de multifirma, si se admiten más firmas que las mínimas requeridas (quorum).
quorumOnlyintSi el documento requiere de todas las firmas de los firmantes propuestos para pasar a estado firmado
signaturesintNúmero de firmas realizadas
totalSignaturesintNúmero de firmas totales
totalSignersNotRevisedinttotal de firmantes no revisados
preparationDateStringFecha de inicio de preparación del documento
preparationDateEndStringFecha fin de preparación del documento
signersList<DocumentSignerData>Listado de firmantes del documento con su nif, nombre y apellidos


DocumentSignerData:

NombreTipoDescripción
signerNifStringNIF/NIE del firmante
signerNameStringNombre y apellidos del firmante
signerRevisedbooleanIndica si el firmante está revisado


Códigos error

CódigoDescripción

GENERIC_FINDDOCUMENTLISTBYEXTERNALSIGNED

Error genérico en el servicio findDocumentListByExternalSigned
FINDDOCUMENTLISTBYEXTERNALSIGNED_01El nif del usuario firmante es obligatorio
FINDDOCUMENTLISTBYEXTERNALSIGNED_02El formato del nif del usuario firmante no es correcto


Ejemplo de invocación

Code Block
languagejava
firstline1
titleEjemplo de invocación
linenumberstrue
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
titleMás detalles

Signatura

ResultDocumentExternalInfo findDocumentListByExternalSigned(ParamFindDocumentListByExternalWithoutSignature paramFindDocumentListByExternalWithoutSignature)

Parámetros de invocación

ParamFindDocumentListByExternalWithoutSignatureCount:

NombreTipoObligatorioDescripción
applicationIdStringAlias de la aplicación que realiza la consulta
userNifStringNoNIF/NIE del usuario identificado que realiza la consulta
signerNifStringNoNIF/NIE del usuario firmante
descriptionStringNoDescripción del documento
preparationDateFromDateNo. Altamente recomendable para evitar timeoutsFecha de preparación desde
preparationDateToDateNo. Altamente recomendable para evitar timeoutsFecha de preparación hasta. Si no se rellena, el valor por defecto será la fecha actual +1.
csvStringNoCSV


Parámetros de respuesta

ResultFindDocumentListCount:

NombreTipoDescripción
errorsboolean

Indica si se han producido errores. 

  • true → Hay errores. Se informa del error y del mensaje del error
  • false → No hay errores.
errorCodeStringCódigo del error producido
errorMsgStringDescripción del error producido
documentsintNúmero total de documentos que cumplen los criterios de búsqueda


Códigos error

CódigoDescripción

GENERIC_FINDDOCUMENTLISTBYEXTERNALSIGNED

Error genérico en el servicio findDocumentListByExternalSignedCount
FINDDOCUMENTLISTBYEXTERNALSIGNED_01El nif del usuario firmante es obligatorio
FINDDOCUMENTLISTBYEXTERNALSIGNED_02El formato del nif del usuario firmante no es correcto


Ejemplo de invocación

Code Block
languagejava
firstline1
titleEjemplo de invocación
linenumberstrue
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
titleMás detalles

Signatura

ResultDocumentExternalInfo findDocumentListByExternalWithoutSignature(ParamFindDocumentListByExternalWithoutSignature paramFindDocumentListByExternalWithoutSignature)

Parámetros de invocación

ParamFindDocumentListByExternalWithoutSignature:

NombreTipoObligatorioDescripción
applicationIdStringAlias de la aplicación que realiza la consulta
userNifStringNoNIF/NIE del usuario identificado que realiza la consulta
signerNifStringNIF/NIE del usuario firmante
descriptionStringNoDescripción del documento
preparationDateFromDateNo. Altamente recomendable para evitar timeoutsFecha de preparación desde
preparationDateToDateNo. Altamente recomendable para evitar timeoutsFecha de preparación hasta. Si no se rellena, el valor por defecto será la fecha actual +1.
csvStringNoCSV
fromIndexIntegerNoÍndice de comienzo para la paginación
toIndexIntegerNoíndice final para la paginación
sortColumnStringNo. 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
ascendingBooleanNoOrdenar por la columna deseada de forma ascendente o descendente

Parámetros de respuesta

ResultDocumentExternalInfo:

NombreTipoDescripción
applicationIdString

Alias de la aplicación que ha realizado la consulta

userNifStringNIF del usuario identificado
documentsList<DocumentInfo>Lista de documentos paginada
sizeintNúmero total de documentos sin tener en cuenta la paginación

DocumentExternalInfo:

NombreTipoDescripción
csvString

CSV del documento

descriptionStringDescripción del documento
procedureCodeStringCódigo de procedimiento
issuerStringNombre y apellidos del preparador
revisedbooleanSi el documento está revisado o no
stateint

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.
quorumintMínimo de firmas requeridas para pasar a firmar un documento.
quorumOnlyStringIndica, en el caso de multifirma, si se admiten más firmas que las mínimas requeridas (quorum).
quorumOnlyintSi el documento requiere de todas las firmas de los firmantes propuestos para pasar a estado firmado
signaturesintNúmero de firmas realizadas
totalSignaturesintNúmero de firmas totales
totalSignersNotRevisedinttotal de firmantes no revisados
preparationDateStringFecha de inicio de preparación del documento
preparationDateEndStringFecha fin de preparación del documento
signersList<DocumentSignerData>Listado de firmantes del documento con su nif, nombre y apellidos


DocumentSignerData:

NombreTipoDescripción
signerNifStringNIF/NIE del firmante
signerNameStringNombre y apellidos del firmante
signerRevisedbooleanIndica si el firmante está revisado


Códigos error

CódigoDescripción

GENERIC_FINDDOCUMENTLISTBYEXTERNALWITHOUTSIGNATURE

Error genérico en el servicio findDocumentListByExternalWithoutSignature
FINDDOCUMENTLISTBYEXTERNALWITHOUTSIGNATURE_01El nif del usuario firmante es obligatorio
FINDDOCUMENTLISTBYEXTERNALWITHOUTSIGNATURE_02El formato del nif del usuario firmante no es correcto


Ejemplo de invocación

Code Block
languagejava
firstline1
titleEjemplo de invocación
linenumberstrue
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

Códigos error

Ejemplos de invocación

Expand
titleMás detalles

Signatura

findMetadataValue(ParamMetadata paramMetadataResultDocumentExternalInfo findDocumentListByExternalWithoutSignatureCount(ParamFindDocumentListByExternalWithoutSignature paramFindDocumentListByExternalWithoutSignature)

Parámetros de invocación

ParamFindDocumentListByExternalWithoutSignatureCount:

Expand
titleMás detalles

Signatura

Integer getDocumentState(ParamGetDocumentState paramGetDocumentState)

Parámetros de invocación
NombreTipoObligatorioDescripción
paramMetadataapplicationId1241284867 Parámetros de entrada (ver detalle de campos en el apartado de objetos comunes)

Parámetros de respuesta

NombreTipoDescripción
valueStringEl valor de metadato encontrado
CódigoDescripción
DOCUMENTSERVICEIMPL_FINDMETADATAVALUEError genérico durante el servicio findMetadataValue
Code Block
languagejava
firstline1
titleEjemplo de invocación
linenumberstrue
ParamMetadata paramMetadata = new ParamMetadata();
paramMetadata.setMetadataName("metatada-name");
String value = iDocumentImpl.findMetadataValue(paramMetadata);

Método 'getDocumentState'

Método para obtener el estado del documento

StringAlias de la aplicación que realiza la consulta
userNifStringNoNIF/NIE del usuario identificado que realiza la consulta
signerNifStringNoNIF/NIE del usuario firmante
descriptionStringNoDescripción del documento
preparationDateFromDateNo. Altamente recomendable para evitar timeoutsFecha de preparación desde
preparationDateToDateNo. Altamente recomendable para evitar timeoutsFecha de preparación hasta. Si no se rellena, el valor por defecto será la fecha actual +1.
csvStringNoCSV


Parámetros de respuesta

ResultFindDocumentListCount:

NombreTipoDescripción
stateInteger

Numero de estado correspondiente en porta-firmas:

6 →  En paralelo

4 →  Anulado

3 →  Firma Programada

2 →  Firmado

1 →  Pendiente de firma

0 → Borrador

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

Parámetros de respuesta

boolean

Indica si se han producido errores. 

  • true → Hay errores. Se informa del error y del mensaje del error
  • false → No hay errores.
errorCodeStringCódigo del error producido
errorMsgStringDescripción del error producido
documentsintNúmero total de documentos que cumplen los criterios de búsqueda


Códigos error

CódigoDescripción

DOCUMENTSERVICEIMPLGENERIC_GETDOCUMENTSTATEFINDDOCUMENTLISTBYEXTERNALWITHOUTSIGNATURE

Error genérico durante en el servicio getDocumentStateservicio findDocumentListByExternalWithoutSignatureCount
FINDFINDDOCUMENTLISTBYEXTERNALWITHOUTSIGNATURE_DOCUMENTError inesperado al buscar un documento
DOCUMENTMANAGERIMPL_FINDDOCUMENTError buscando documento
Ejemplos
01El nif del usuario firmante es obligatorio
FINDDOCUMENTLISTBYEXTERNALWITHOUTSIGNATURE_02El formato del nif del usuario firmante no es correcto


Ejemplo de invocación

Code Block
languagejava
firstline1
titleEjemplo de invocación
linenumberstrue
ParamGetDocumentStateParamFindDocumentListByExternalWithoutSignatureCount paramGetDocumentStateparamFindDocumentListByExternalSigned = new ParamGetDocumentStateParamFindDocumentListByExternalWithoutSignatureCount();
paramGetDocumentStateparamFindDocumentListByExternalSigned.setCsvsetSignerNif("CSVP55RYQS7R9AF01PFISIGNER_NIF");
Integer documentState = IDocumentService.getDocumentStatefindDocumentListByExternalSignedCount(paramGetDocumentStateparamFindDocumentListByExternalSigned);


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
titleMás detalles

Signatura

void setDocumentState(ParamSetDocumentState paramSetDocumentStateResultSendDocument sendDocumentumDocument(ParamSendDocument paramSendDocument)

Parámetros de invocación

NombreTipoDescripción
paramSetDocumentStateparamSendDocument1241284867Pará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

DOCUMENTSERVICEIMPLDOCUMENTINTEGRATIONMANAGERIMPL_SIGNDOCUMENT_03

No se puede actualizar el contenido porque ya está en uso
DOCUMENTSERVICEIMPL_SETDOCUMENTSTATEError genérico durante el metodo setDocumentState
DOCUMENTMANAGERIMPL_FINDDOCUMENTLISTError inesperado al buscar una lista de documentos

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
ParamSetDocumentStateParamSendDocument paramSetDocumentStateparamSendDocument = new ParamSetDocumentStateParamSendDocument();
paramSetDocumentStateparamSendDocument.setCsv("CSVDA6FLBW3PNAX01PFI");
paramSendDocument.setApplicationId("CSVP55RYQS7R9AF01PFIPFI");
paramSetDocumentStateparamSendDocument.setStatesetUserNif(0"00000000T");
IDocumentService.setDocumentState(paramGetDocumentStateResultSendDocument resultSendDocument = iDocumentIntegrationImpl.sendDocumentumDocument(paramSendDocument);


Método '

...

updateQuorumAndLimitDateDocument'

Método para obtener la operación asociada al 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
titleMás detalles

Signatura

ResultGetOperation getOperation(ParamGetOperation paramGetOperationResultUpdateQuorumAndLimitDate updateQuorumAndLimitDateDocument (ParamUpdateQuorumAndLimitDate paramUpdateQuorumAndDate)

Parámetros de invocación

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

Parámetros de respuesta

NombreTipoDescripción
resultGetOperationresultUpdateQuorumResultGetOperation1241284867

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

Códigos error

Error buscando operación
CódigoDescripción

DOCUMENTSERVICEIMPL_GETOPERATION

Error genérico durante el servicio getOperation
SCDEINTEGRATION_GETSTATUSError al comprobar el estado de la operacion
LOAD_OPERATIONError buscando operación. El usuario no tiene permisos para ver la operación
FIND_OPERATION

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
ParamGetOperation paramGetOperation = new ParamGetOperation();
paramGetOperation.setDocumentId(1L);
ResultGetOperation resultGetOperation = IDocumentService.getOperation(paramGetOperation);

Servicios AdviceService

Método 'sendAdvice'

...

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);


Servicios ExternalUserService 

...

Método 'findEntityExternalUserByName'

Método que obtiene la entidad externa filtrando por su descripción

Parámetros de respuesta

ParamEntityExternalUser findEntityExternalUserByName(ParamEntityExternalUser paramSearchEntityExternalUser)

Parámetros de invocación

Expand
titleMás detalles

Signatura

void sendAdvice(Integer noteType, String csv, String text, String userAdviser)

Parámetros de invocación

NombreTipoDescripción
noteTypeIntegerDefine el tipo de nota para identificar qué cambio ha sufrido el documento
csvStringCódigo seguro de verificación del documento que genera el aviso
textStringContenido de aviso
userAdviserStringNIF de usuario que ha generado el aviso
NombreTipoDescripción
Códigos error
Código
entityNameStringDescripción

ADVICESERVICEIMPL_SENDADVICE

Error genérico durante el servicio sendAdvice
DOCUMENTMANAGERIMPL_FINDDOCUMENTError inesperado al buscar el documento

Ejemplos de invocación

Code Block
languagejava
firstline1
titleEjemplo de invocación
linenumberstrue
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'

...

de la entidad

Parámetros de respuesta

NombreTipoDescripción
entityExternalUserIdLong

Identificador 

entityNameStringDescripción de la entidad

Códigos error

CódigoDescripción

DOCUMENT_SERVICE_GENERIC_ERROR

Error genérico durante el servicio
EXTERNALUSER_NOUSERSEARCHError parámetros de entrada nulos
EXTERNALUSER_NOUSERRESULTError 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

Ejemplos de invocación

Expand
titleMás detalles

Signatura

void sendMail(String fiscalAnagram, String asunto, String mensajeParamExternalUser findExternalUserByNif(ParamSearchExternalUser paramSearchExternalUser)

Parámetros de invocación

NombreTipoDescripción
fiscalAnagramnifStringIdentificación fiscal
asuntoStringAsunto de mensaje que se enviará
mensajeStringContenido de mensaje que se enviará
NIF

Parámetros de respuesta

NombreTipoDescripción

Códigos error

CódigoDescripción

ADVICESERVICEIMPL_SENDMAIL

Error genérico durante el servicio sendMail
SENDADVICE_ADVICEMANAGERError al generar el aviso por correo
Code Block
languagejava
firstline1
titleEjemplo de invocación
linenumberstrue
String userNif = "12345678X";
String message = "...";

IAdviceService.sendAdvice(userNif, "Operacion finalizada", message);

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.

Parámetros de respuesta

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)
Objeto que encapsula el resultado de la operación, proporcionado información en caso de error
NombreTipoDescripción
resultSendDocument1241284867TipoDescripción
externalUserIdlongIdentificador
emailStringCorreo electrónico
autonomousBooleanIndica si es autonomo
nameStringNombre
nifStringNIF
entityPositionStringCargo
surname1StringPrimer apellido
surname2StringSegundo apellido
entityParamEntityExternalUserEntidad

Códigos error

Expand
titleMás detalles

Signatura

ResultUpdateQuorumAndLimitDate updateQuorumAndLimitDateDocument (ParamUpdateQuorumAndLimitDate paramUpdateQuorumAndDate)

Parámetros de invocación
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);

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

DOCUMENT_SERVICE_GENERIC_ERROR

Error genérico durante el servicio
EXTERNALUSER_NOUSERSEARCHNo se ha encontrado el usuario buscado
EXTERNALUSER_NOUSERRESULTError 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

Ejemplos de invocación

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);
Expand
titleMás detalles

Signatura

ParamExternalUser addExternalUser(ParamExternalUser externalUser)

Parámetros de invocación

NombreTipoDescripción
emailStringCorreo electrónico
autonomousBooleanIndica si es autonomo
nameStringNombre
nifStringNIF
entityPositionStringCargo
surname1StringPrimer apellido
surname2StringSegundo apellido
entityParamEntityExternalUserEntidad

ParamEntityexternalUser

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

Identificador 

entityNameStringDescripción de la entidad

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
Code Block
languagejava
firstline1
titleEjemplo de invocación
linenumberstrue
emailStringCorreo electrónico
autonomousBooleanIndica si es autonomo
nameStringNombre
nifStringNIF
entityPositionStringCargo
surname1StringPrimer apellido
surname2StringSegundo apellido
entityParamEntityExternalUserEntidad

Códigos error

CódigoDescripción

DOCUMENT_SERVICE_GENERIC_ERROR

Error genérico durante el servicio
EXTERNALUSER_KONIFEl DNI del usuario no es válido


Método 'addEntityExternalUser'

Método que da de alta una entidad externa

Expand
titleMás detalles

Signatura

addEntityExternalUser(ParamEntityExternalUser entityExternalUser)

Parámetros de invocación

NombreTipoDescripción
entityNameStringDescripción de la entidad

Códigos error

CódigoDescripción

DOCUMENT_SERVICE_GENERIC_ERROR

Error genérico durante el servicio
EXTERNALUSER_UKENTITYNAMEEl 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.

...

...

Objeto  
Anchor
ParamProposedSigner
ParamProposedSigner
'ParamProposedSigner'

NombreTipoDescripción
proposedSignerIdLongId del firmante propuesto
signerNifStringNif del firmante propuesto
signerNameStringNombre del firmante propuesto
signerDateFromStringFecha de selección del firmante
signerOrderStringOrden de firma del firmante propuesto
signaturePositionStringTipo de posición de los pies de firma
positionStringCoordenadas donde se ha colocado el pie de firma del firmante propuesto
delegationTextStringTexto de delegación del firmante propuesto
signedStringIndica si el firmante propuesto ha firmando (1) o no (0)
signerOrgCodeStringCódigo de organismo del firmante propuesto
signerOrganismStringNombre de organismo del firmante propuesto
signerRoleStringCargo del firmante propuesto
signerStatusStringCondición del firmante
revisedStringIndica si el firmate propuesto ha sido revisado o no. Valores: S o N
deleteSignBooleanIndica si se ha de borrar la firma al actualizar el firmante propuesto

...

NombreTipoDescripción
csvStringCódigo seguro de verificación del documento

applicationId

StringAplicación que ejecuta el método
userNifStringNif de usuario

...

NombreTipoDescripción
csvStringCódigo seguro de verificación del documento
stateIntegerEstado actual del documento
modifyStateIntegerEstado al que cambiará el documento
modifyDateDateFecha del cambio de estado del documento

Objeto  
Anchor
ParamUpdateQuorumAndLimitDate
ParamUpdateQuorumAndLimitDate
'ParamUpdateQuorumAndLimitDate'

...

Objeto  
Anchor
ParamSendDocument
ParamSendDocument
'ParamSendDocument'

NombreTipoDescripción
applicationIdStringAplicación que ejecuta el método

userNif

StringNif del usuario
csvStringCódigo seguro de verificación del documento

...