Històric de revisions
Versió | Data | Autor | Comentaris |
---|---|---|---|
V1.0 | 01/03/2017 | Òscar Trapote | Creació del document |
- 1. Introducció
- 2. Transmissions de dades disponibles
- 3. Missatgeria dels serveis
- ANNEX 1 – Guia d'integració del servei RPC
- ANNEX 2 – Exemples de petició
Aquest document detalla els aspectes a tenir en compte al realitzar la integració amb els serveis oferts pel RPC (Registre Públic de Contractes) a través de la plataforma PCI.
Per poder realitzar la integració cal conèixer prèviament la següent documentació:
- Document de Missatgeria Genèrica de la PCI del Consorci AOC.
- Document d'Integració del servei RPC del Departament d'Economia.
Les dades disponibles a través del servei són les que es presenten a continuació:
EMISSOR |
---|
Consorci Administració Oberta Catalunya |
PRODUCTE (CodigoProducto) | MODALITAT (CodigoCertificado) | DESCRIPCIO |
---|---|---|
RPC | RPC | Aquesta modalitat ofereix una única operació o modalitat de consum, ja que la missatgeria especifica permet, variant la construcció del missatge, canviar la semàntica de la operació. La missatgeria emprada es la mateixa que la del servei RPC, amb algunes variacions que es recullen en el present document. |
(Correspondència amb missatgeria PCI)
FINALITATS
MODALITAT | PREPRODUCCIÓ | PRODUCCIÓ |
---|---|---|
RPC | PROVES | - |
La missatgeria del la modalitat de consum segueix la especificació de la missatgeria recollida al document RPC-Manual_integradors_ws_serveisRPC-v3.4.pdf proporcionat pel equip de suport a la integració del servei RPC del Departament d'Economia. Aquest document haurà de ser consultat per a conèixer gramàtica i codificació dels camps a l'hora de construir les peticions.
A continuació es documenten les variacions que s'han introduït respecte a la missatgeria del servei esmentat per adaptar-la a l'àmbit de la PCI.
Tot i que s'ha emprat com a base la missatgeria del servei RPC, s'ha creat una versió "còpia" d'aquesta per a poder introduir variacions allà a on es pot aprofitar elements de la PCI per a abstraure els integradors d'aspectes repetitius o tècnicament feixucs de la integració amb el sistema RPC.
Els namespaces de la missatgeria del servei son els següents:
PETICIO http://cat.aoc/rpc/peticion
RESPOSTA http://cat.aoc/rpc/respuesta
La estructura del missatge es mostra a la següent il.lustració:
En el gràfic s'ha pintat tres elements amb color rosat. Aquests elements no han de ser informats normalment, ja que PCI informarà uns valors per defecte que seran vàlids en la pràctica totalitat dels casos.
La missatgeria manté aquests camps per a que un integrador els pugui informar si és necessari, sobreescribint els valors que el servei enviarà per defecte.
Describim a la següent taula el seu significat i com es tracten al servei:
Element | Descripció |
---|---|
/comunicacio/atributs/idPeticio | Identificador únic de la petició. Aquest camp s'informarà automàticament amb el valor del camp IdPeticion a la petició genèrica de la PCI (/Peticion/Atributos/IdPeticion). En el cas que aquest comportament no fos adient, sempre es pot informar el valor desitjat en aquest camp i serà aquest el que es traslladarà al RPC. |
/comunicacio/atributs/dadesAutenticacio/usuari | Credencials (nom d'usuari) a emprar en la invocació al servei RPC. Per defecte s'usaran les credencials que han estat assignades al Consorci AOC pel RPC i que tenen privilegis suficients per a registrar contractes dins de l'espai d'altres organismes. Arribat el cas en que un integrador necessités informar les seves pròpies credencials, les podrà posar a aquest camp i seran traslladades a la crida corresponent cap al RPC en contes de les establertes per defecte. |
/comunicacio/atributs/dadesAutenticacio/contrasenya | Credencials (constrasenya) a emprar en la invocació al servei RPC. Per defecte s'usaran les credencials que han estat assignades al Consorci AOC pel RPC i que tenen privilegis suficients per a registrar contractes en representació d'altres organismes. Arribat el cas en que un integrador necessités informar les seves pròpies credencials, les podrà posar a aquest camp i seran traslladades a la crida corresponent cap al RPC en contes de les establertes per defecte. |
Altres camps rellevants que sí han de ser informats pel integrador es descriuen a la següent taula:
Element | Descripció |
---|---|
/comunicacio/atributs/peticionari/nomPeticionari | Nom de l'usuari de la aplicació que origina la petició. |
/comunicacio/atributs/peticionari/identificadorPeticionari | Identificador de l'usuari que realitza la petició o la persona responsable. |
/comunicacio/atributs/peticionari/sistemaPeticionari | Identificador de la aplicació o sistema que origina la petició, com per exemple GEEC, TEEC, DESAL, .... Aquest identificador ha d'existir a la base de dades del RPC, pel que s'haurà de contactar amb l'equip de suport de RPC per a fer aquesta gestió. |
A la versió 3.4 del servei RPC s'ofereixen tres mecanismes per a fer arribar la documentació adjunta:
- Identificador de document : A la petició es dona un identificador únic del document que posteriorment RPC usarà per a estirar el document des del gestor documental o repositori de l'organisme.
L'us d'aquest mecanisme implica que RPC ha de tenir a la seva base de dades tota la informació relativa al gestor documental de l'organisme, URLs i credencials d'accés si s'escau. Aquesta gestió s'ha de realitzar directament amb l'equip de suport del servei RPC. - URL de descàrrega : A la petició s'informa la URL de descàrrega del document que posteriorment RPC usarà per a estirar-ne el contingut. Aquesta URL ha de ser forçosament HTTPS, és a dir, ha d'usar connexió xifrada.
- Contingut del fitxer : RPC permet traslladar directament el contingut del document junt amb la petició WebService, usant optimització MTOM+XOP. PCI no suporta adjuntar contingut binari a punts arbitraris del missatge de petició, però aquesta optimització es pot aprofitar usant el bloc "Ficheros" de la missatgeria genèrica de la PCI.
Per a aquest fi es posa a disposició dels integradors el bloc 'fitxer', que conté els següents camps:
Element | Descripció |
---|---|
idDocumentExtern | Nom de l'usuari de la aplicació que origina la petició, en el cas que aquesta es produeixi per intervenció humana. |
urlDescarrega | Identificador de l'usuari que realitza la petició o la persona responsable. |
refFitxerPCI | Apuntador cap al bloc 'Fichero' de la petició genèrica PCI que conté les dades del document. En el moment de realitzar la petició cap a RPC s'inclourà el contingut del document o la URL de descàrrega si ha estat informada. |
La transformació que es realitza internament es mostra al següent gràfic:
Com es pot veure a la il·lustració, es poden donar dos grans casos:
- Fletxes taronja: S'informen els camps 'idDocumentExtern' o 'urlDescarrega' a la petició específica, que es traslladaran directament cap a la petició al servei RPC.
- Fletxes verdes: S'informa un identificador de fitxer al camp 'refFitxerPCI', pel que es busca a la petició genèrica de la PCI un bloc 'Fichero' amb aquest identificador i es traslladen a la petició al servei RPC les dades disponibles, que poden ser, o bé la 'URLDescarga', o bé el contingut del fitxer, obtingut dels camps 'Contenido' o 'RutaFichero'. Aquesta casuística permet fer arribar la documentació a RPC directament invocant la PCI aprofitant la optimització MTOM+XOP.
La resta de la missatgeria de petició es descriu de manera detallada a la guia d'integració del servei RPC del Departament d'Economia de la Generalitat de Catalunya, secció 4.1, pàgina 12.
La resposta del servei RPC@PCI és idèntica a la del servei RPC@RPC
El namespace del missatge de resposta, però, sí que canvia per a ser congruent amb el missatge de petició. Així doncs, recordem que el missatge de resposta té el següent namespace:
Per a una descripció detallada de la missatgeria de resposta, consulteu la guia d'integració del servei RPC del Departament d'Economia de la Generalitat de Catalunya, secció 4.2, pàgina 68.
A continuació trobareu la guia d'integració del servei RPC per a la versió sobre la que s'ha desenvolupat aquesta modalitat de consum.
Recomanem la consulta del darrer fitxer de proves de en format soap-ui, on hi haurà plasmats exemples representatius:
A continuació es presenta un dels exemples que es recullen al projecte SOAPUI
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header/>
<soapenv:Body>
<open:procesa xmlns:open="http://www.openuri.org/">
<pet:Peticion xmlns:pet="http://gencat.net/scsp/esquemes/peticion">
<pet:Atributos>
<pet:IdPeticion>SP001-PRE-000000000000000P</pet:IdPeticion>
<pet:NumElementos>1</pet:NumElementos>
<pet:TimeStamp>02-03-2017T10:00:00+01:00</pet:TimeStamp>
<pet:CodigoCertificado>RPC</pet:CodigoCertificado>
<pet:CodigoProducto>RPC</pet:CodigoProducto>
<pet:DatosAutorizacion>
<pet:IdentificadorSolicitante>0000000000</pet:IdentificadorSolicitante>
<pet:NombreSolicitante>Nombre Solicitante</pet:NombreSolicitante>
<pet:Finalidad>TEST</pet:Finalidad>
</pet:DatosAutorizacion>
<pet:Emisor>
<pet:NifEmisor>Nif Emisor</pet:NifEmisor>
<pet:NombreEmisor>Nombre Emisor</pet:NombreEmisor>
</pet:Emisor>
<pet:IdSolicitanteOriginal>0000000000</pet:IdSolicitanteOriginal>
<pet:NomSolicitanteOriginal>Nombre Solicitante</pet:NomSolicitanteOriginal>
<pet:Funcionario>
<pet:NombreCompletoFuncionario>Nombre</pet:NombreCompletoFuncionario>
<pet:NifFuncionario>99999999R</pet:NifFuncionario>
<pet:EMailFuncionario>[email protected]</pet:EMailFuncionario>
<pet:CodigoOrganismoFuncionario>00000</pet:CodigoOrganismoFuncionario>
</pet:Funcionario>
</pet:Atributos>
<pet:Solicitudes>
<pet:SolicitudTransmision>
<pet:DatosGenericos>
<pet:Emisor>
<pet:NifEmisor>99999999R</pet:NifEmisor>
<pet:NombreEmisor>Nombre Emisor</pet:NombreEmisor>
</pet:Emisor>
<pet:Solicitante>
<pet:IdentificadorSolicitante>0000000000</pet:IdentificadorSolicitante>
<pet:NombreSolicitante>Nombre Solicitante</pet:NombreSolicitante>
<pet:Finalidad>TEST</pet:Finalidad>
<pet:Consentimiento>Si</pet:Consentimiento>
<pet:Funcionario>
<pet:NombreCompletoFuncionario>Nombre</pet:NombreCompletoFuncionario>
<pet:NifFuncionario>99999999R</pet:NifFuncionario>
<pet:EMailFuncionario>[email protected]</pet:EMailFuncionario>
<pet:CodigoOrganismoFuncionario>00000</pet:CodigoOrganismoFuncionario>
</pet:Funcionario>
</pet:Solicitante>
<pet:Titular>
<pet:TipoDocumentacion>NIF</pet:TipoDocumentacion>
<pet:Documentacion>0000000000</pet:Documentacion>
<pet:NombreCompleto>Nombre Completo</pet:NombreCompleto>
<pet:Nombre>Nombre</pet:Nombre>
<pet:Apellido1>Completo</pet:Apellido1>
<pet:Apellido2>Completo</pet:Apellido2>
</pet:Titular>
<pet:Transmision>
<pet:CodigoCertificado>RPC</pet:CodigoCertificado>
<pet:IdSolicitud>1</pet:IdSolicitud>
<pet:IdTransmision>PRE-000000000000000P</pet:IdTransmision>
<pet:FechaGeneracion>20170201</pet:FechaGeneracion>
</pet:Transmision>
</pet:DatosGenericos>
<pet:DatosEspecificos>
<pet:comunicacio xmlns:pet="http://cat.aoc/rpc/peticion">
<pet:atributs>
<pet:data>2016-06-01T10:00:00</pet:data>
<pet:peticionari>
<pet:nomPeticionari>Nom Peticionari</pet:nomPeticionari>
<pet:identificadorPeticionari>UWAOC</pet:identificadorPeticionari>
<pet:sistemaPeticionari>GEEC</pet:sistemaPeticionari>
</pet:peticionari>
</pet:atributs>
<pet:contractes>
<pet:contracte>
<pet:idContracte>
<pet:organisme>00000000</pet:organisme>
<pet:anyExecucio>2017</pet:anyExecucio>
</pet:idContracte>
<pet:dadesContracte>
<pet:grupContracte>AT</pet:grupContracte>
<pet:tipusContracte>OB</pet:tipusContracte>
<pet:numeroLots>1</pet:numeroLots>
<pet:plurianual>false</pet:plurianual>
<pet:complementariObres>false</pet:complementariObres>
<pet:dataDOGC>2016-06-01</pet:dataDOGC>
<pet:descripcio>PROVA INTEGRACIO (contracte + lot)</pet:descripcio>
<pet:procedimentAdjudicacio>O</pet:procedimentAdjudicacio>
<pet:expedient>SP001-20170001</pet:expedient>
<pet:classeExpedient>O</pet:classeExpedient>
<pet:importLicitacio>1000.10</pet:importLicitacio>
<pet:importLicitacioIVA>1210.00</pet:importLicitacioIVA>
<pet:importValorEstimat>1000.10</pet:importValorEstimat>
<pet:importsDeterminar>false</pet:importsDeterminar>
<pet:despesaAnticipada>false</pet:despesaAnticipada>
</pet:dadesContracte>
<pet:lots>
<pet:lot>
<pet:idLot>
<pet:numeroLot>1</pet:numeroLot>
<pet:idContracte>
<pet:organisme>00000000</pet:organisme>
<pet:anyExecucio>2017</pet:anyExecucio>
</pet:idContracte>
</pet:idLot>
<pet:dadesLot>
<pet:dataAdjudicacio>2016-06-01</pet:dataAdjudicacio>
<pet:dataFormalitzacio>2016-06-01</pet:dataFormalitzacio>
<pet:dataAprovacio>2016-06-01</pet:dataAprovacio>
<pet:cofinancament>false</pet:cofinancament>
<pet:importAdjudicacio>1000.10</pet:importAdjudicacio>
<pet:tipusIVA>21</pet:tipusIVA>
<pet:objecte>PROVA INTEGRACIO - LOT01</pet:objecte>
<pet:importLicitacio>1000.10</pet:importLicitacio>
<pet:anysTermini>0</pet:anysTermini>
<pet:mesosTermini>5</pet:mesosTermini>
<pet:diesTermini>0</pet:diesTermini>
<pet:codiCPV>03000000-1</pet:codiCPV>
<pet:anualitats>true</pet:anualitats>
<pet:lotDesert>false</pet:lotDesert>
<pet:dataInici>2016-06-01</pet:dataInici>
<pet:estudiDictamen>false</pet:estudiDictamen>
<pet:revisioPreus>03</pet:revisioPreus>
<pet:garantiaProvisional>false</pet:garantiaProvisional>
<pet:garantiaDefinitiva>false</pet:garantiaDefinitiva>
<pet:garantiaComplementaria>false</pet:garantiaComplementaria>
<pet:garantiaGlobal>true</pet:garantiaGlobal>
<pet:garantiaGlobalPercentatge>10</pet:garantiaGlobalPercentatge>
<pet:llocExecucio>02</pet:llocExecucio>
</pet:dadesLot>
<pet:adjudicatari>
<pet:empresa>
<pet:nif>B12345674</pet:nif>
<pet:nom>PROVA SL</pet:nom>
<pet:pais>ES</pet:pais>
<pet:municipi>08019</pet:municipi>
</pet:empresa>
</pet:adjudicatari>
</pet:lot>
</pet:lots>
</pet:contracte>
</pet:contractes>
</pet:comunicacio>
</pet:DatosEspecificos>
</pet:SolicitudTransmision>
</pet:Solicitudes>
</pet:Peticion>
</open:procesa>
</soapenv:Body>
</soapenv:Envelope>