CONNECTOR PICA-DNI










Introducció

L'objectiu d'aquest connector, és el de proporcionar un punt d'accés utilitzant la plataforma PICA cap servei de verificació i consulta de DNI de la DGP.

Propòsit

El propòsit del connector és proporcionar una interfície funcional reduida al connector de la Pica que simplifica l'utilització del servei de consulta i verificació de DNI's ofert per la generalitat.

Context i Escenaris d'ús

El connector PICA-DNI es troba dins els connectors de serveis funcionals de la Generalitat.

Versions i Dependències

En el present apartat es mostren quines són les versions i dependències necessàries per fer ús del Connector.

Les dependències descrites a la següent url són requerides per tal de fer funcionar el servei:
Dependències del Connector DNI

A qui va dirigit

Aquest document va dirigit als següents perfils:

  1. Programador. Per conèixer l'ús del connector.
  2. Arquitecte. Per conèixer quins són els components i la configuració del connector.

Documents i Fonts de Referència

[1] Guia d'ús de l'API del Connector PICA-DNI.
[2] Documentació funcional i tècnica del Connector PICA-DNI.

Descripció Detallada

Aquest connector permet realitzar les següents funcionalitats referents a les següent operacions amb un DNI:

Funcionalitats de Consulta

  • Consulta Bàsica: Funcionalitat que permet la consulta de les dades d'un DNI subministrant un conjunt mínim de dades.
  • Consulta Estesa: Funcionalitat que permet la consulta de les dades d'un DNI donant la possibilitat d'escollir d'entre un conjunt més ampli de dades d'entrada.

Funcionalitats de Verificació

  • Verificació Bàsica: Funcionalitat que permet la verificació de les dades d'un DNI subministrant un conjunt mínim de dades.
  • Verificació Estesa: Funcionalitat que permet la verificació de les dades d'un DNI donant la possibilitat d'escollir d'entre un conjunt més ampli de dades d'entrada.

Arquitectura i Components

Interfícies i Components Genèrics

Es pot trobar tota la documentació JavaDoc i el codi font referent aquests components a les següents url's:

JavaDoc: http://canigo.ctti.gencat.net/confluence/canigodocs/site/canigo2_3_14/canigo-connectors-root/canigo-connectors-pica-dni/apidocs/index.html
Codi Font:  http://repos.canigo.ctti.gencat.cat/repository/maven2/canigo/connectors/canigo-connectors-pica-dni/1.1.0/

Requeriments

El connector DNI és compatible amb les versions 1.5 o superior de Java. Per versions inferiors no es garantit el seu correcte funcionament.

Per tal de que el connector DNI funcioni correctament sobre l'aplicació que l'utilitzi, es s'ha de tenir configurat el servei connector genèric de la PICA 1.0.

Instal.lació i Configuració

Instal.lació

La instal.lació del connector requereix de la utilització de la llibreria 'canigo-connectors-pica-dni' i les dependències indicades a l'apartat 'Introducció-Versions i Dependències'.

Per poder disposar del Connector PICA-DNI en una aplicació Canigó s'ha de modificar el pom.xml de l'aplicació per incloure la llibreria del Connector com a dependència.

<dependency>
        <groupId>canigo.connectors</groupId>
        <artifactId>canigo-connectors-pica-dni</artifactId>
        <version>1.1.0</version>
</dependency>

També és necessari afegir una exclusió sobre la dependència de la PICA;

<dependency>
        <groupId>canigo.connectors</groupId>
	<artifactId>canigo-connectors-pica</artifactId>
	<version>1.0</version>
	<exclusions>
	        <exclusion>
		    <groupId>xmlbeans</groupId>
	            <artifactId>xbean</artifactId>
	        </exclusion>
	</exclusions>
</dependency>

Configuració


Per poder configurar el connector DNI és necessari tenir configurat el connector genèric a la PICA.

<bean id="requeridor" class="cat.gencat.pica.peticio.core.beans.Requeridor" singleton="true">
<property name="fitxerSignatura" value="signatura.properties"> </property>
	<property name="idSolicitante" value="1DPGO049"></property>
	<property name="idTransmision" value="213421"></property>
	<property name="nombreSolicitante" value="CTTI"></property>
	<property name="password" value="password"></property>
	<property name="user" value="usuari"></property>
</bean>

<bean name="ProducteModalitatBase" abstract="true" class="cat.gencat.pica.peticio.core.beans.ProducteModalitat">
	<property name="passwordType" value="PasswordText"></property>
</bean>

<bean id="picaService" class="net.gencat.ctti.canigo.connectors.pica.impl.PicaServiceWrapper" singleton="false">
	<property name="axisDefinition" value="classpath:axis2client/"></property>

	<property name="loggingService" ref="loggingService"></property>
	<property name="requeridor" ref="requeridor"></property>
	<property name="modalitats">
		<map>
			...
		</map>
	</property>
</bean>


Per a configurar el connector PICA-DNI, només cal afegir aquest bean informant la url de la pica que es vol utilitzar per a consumir els serveis NT.

<bean id="dniService" class="net.gencat.ctti.canigo.connectors.pica.dni.impl.DniConnectorImpl" singleton="false">
	<property name="picaService" ref="picaService"></property>
	<property name="nifEmisor" value="nifEmisor" />
	<property name="nomEmisor" value="nomEmisor" />
	<property name="loggingService" ref="loggingService"></property>
	<property name="finalitat" value="PROVES"></property>
	<property name="urlPica" value="http://preproduccio.pica.intranet.gencat.cat/pica_cataleg/AppJava/services/" />
	<property name="funcionari" ref="funcionari" />
</bean>

<bean id="funcionari" class="cat.gencat.pica.peticio.core.beans.Funcionari">
	<property name="nifFuncionario" value="nifFuncionari"/>
	<property name="nombreFuncionario" value="nombreFuncionari"/>
	<property name="emailFuncionario" value="emailFuncionario"/>
</bean>

NOTA: Es molt important que l'ordre de les propietats del bean "dniService" sigui l'especificat anteriorment.

Utilització del Connector


Exemple d'utilització Consulta de DNI

Referenciar al servei DNI des de l'acció que es vulgui utilitzar (action-servlet-aaa.xml):

<property name="dniConnector" ref="dniService"></property>

En l'acció, s'hauran de crear els getters i setters corresponents per al connector de DNI:

private DniConnectorImpl dniConnector;
public DniConnectorImpl getDniConnector() {
	return dniConnector;
}

public void setDniConnector(DniConnectorImpl dniConnector) {
	this.dniConnector = dniConnector;
}

Per realitzar la consulta d'un DNI es pot fer amb la següent crida:

DadesConsultaDni resposta = dniConnector.dniConsultaBasica(numero_document, tipus_document, cognom1, anyNaixement);

on, numero_document correspon al valor del número del document utilitzat i tipus_document correspon al tipus de document que es vol subministrar (Constants.DNI, Constants.NIE, Constants.NIF)

S'ha d'informar el cognom1 o bé l'any de naixement

En cas que es vulgui sobreescriure les dades del funcionari especificats en el fitxer de configuració de spring, és possible fer-ho abans de fer la crida al servei:

Funcionari funcionari = new Funcionari();
funcionari.setNombreFuncionario("Nom Cognoms Funcionari");
funcionari.setNifFuncionario("NIF");
funcionari.setEmailFuncionario("mail");
			
dniConnector.setFuncionari(funcionari);

Per consultar l'estat de la resposta;

EstatResultat estat = resposta.getEstat();
  • En cas de que les dades no corresponguin amb un DNI, típicament es retornaran aquestes dades:
    Assert.assertEquals("TITULAR NO IDENTIFICADO", estat.getDescripcio());
    Assert.assertEquals("0233", estat.getCodiEstat());
  • En cas de que les dades si corresponguin a un DNI, típicament es retornaran les següents dades:
    Assert.assertEquals("TRAMITADA", estat.getDescripcio());
    Assert.assertEquals("0003", estat.getCodiEstat());

Les dades associades a la consulta d'un DNI es poden recuperar amb:

resposta.getTitular();

Per consultar la totalitat de possibles codis de retorn consultar el document de la PICA Guia d'us del servei de DNI v.1.2.pdf disponible via petició a requeridors.otpica.ctti@gencat.cat

Exemple d'utilització Verificació DNI

Referenciar al servei DNI des de l'acció que es vulgui utilitzar (action-servlet-aaa.xml):

<property name="dniConnector" ref="dniService"></property>

En l'acció, s'hauran de crear els getters i setters corresponents per al connector de DNI:

private DniConnectorImpl dniConnector;
public DniConnectorImpl getDniConnector() {
	return dniConnector;
}

public void setDniConnector(DniConnectorImpl dniConnector) {
	this.dniConnector = dniConnector;
}

Per realitzar la verificació d'un DNI es pot fer amb la següent crida:

EstatResultat resposta = dniConnector.dniVerificacioBasica(numero_document, tipus_document, nom, cognom1, cognom2, sexe);

on, numero_document correspon al valor del número del document utilitzat;
tipus_document correspon al tipus de document que es vol subministrar (Constants.DNI, Constants.NIE, Constants.NIF);
nom nom del titular del DNI;
cognom1 primer cognom del titular del DNI;
cognom2 segon cognom del titular del DNI;
sexe sexe del titular del DNI (Constants.MASCULI o Constants.FEMENI)

  • En cas de que les dades no corresponguin amb un DNI, típicament es retornaran aquestes dades:
    Assert.assertEquals("TITULAR NO IDENTIFICADO", resposta.getDescripcio());
    Assert.assertEquals("0233", resposta.getCodiEstat());
  • En cas de que les dades si corresponguin a un DNI, típicament es retornaran les següents dades:
    Assert.assertEquals("TRAMITADA", estat.getDescripcio());
    Assert.assertEquals("0003", estat.getCodiEstat());

Per consultar la totalitat de possibles codis de retorn consultar el document de la PICA Guia d'us del servei de DNI v.1.2.pdf disponible via petició a requeridors.otpica.ctti@gencat.cat