Canigó - Connector Pica-NT
CONNECTOR PICA-NOTIFICACIONS ELECTRÒNIQUES
IntroduccióL'objectiu d'aquest connector, és el de proporcionar un punt d'accés utilitzant la plataforma PICA cap al sistema de notificacions de la Generalitat de Catalunya "eNotum v.2", permetent l'enviament i la consulta de trameses de notificacions, consulta d'estats i detall de les notificacions per un ciutadà o empleat públic i l'acceptació i rebuig de les mateixes entre d'altres. PropòsitEl propòsit del connector és proporcionar una interfície funcional reduida al connector de la Pica que simplifica l'utilització del servei de Notificacions Telemàtiques de la Generalitat. Context i Escenaris d'úsEl connector de Notificacions Electròniques es troba dins els connectors de serveis funcionals de la Generalitat. Versions i DependènciesEn 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: A qui va dirigitAquest document va dirigit als següents perfils:
Documents i Fonts de Referència
Descripció DetalladaAquest connector permet realitzar les següents funcionalitats referents a les notificacions telemàtiques: Funcionalitats per a l'empleat públic
Funcionalitats per al ciutadà
Arquitectura i ComponentsInterfícies i Components GenèricsEs 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_10/canigo-connectors-root/canigo-connectors-nt/apidocs/index.html RequerimentsEl connector de Notificacions Electròniques és compatible amb les versions 1.5 o superior de Java. Per versions inferiors no es garantitza el seu correcte funcionament. Per tal de que el connector eNotum 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-nt' i les dependències indicades a l'apartat 'Introducció-Versions i Dependències'. Per poder disposar del Connector de Notificacions electròniques 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-nt</artifactId> <version>1.0.2</version> </dependency> ConfiguracióPer poder configurar el connector eNotum é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>
<bean id="ntService" class="net.gencat.ctti.canigo.connectors.enotum.impl.EnotumConnectorImpl" singleton="false"> <property name="picaService" ref="picaService"></property> <property name="loggingService" ref="loggingService"></property> <property name="finalitat" value="TEST"></property> <property name="nifEmisor" value="nifEmisor" /> <property name="nomEmisor" value="nomEmisor" /> <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> Utilització del ConnectorExemple d'utilització Empleat Públic (Consultar detall notificació) amb connector funcional de Notificacions electròniquesReferenciar al servei enotum des de l'acció que es vulgui utilitzar (action-servlet-aaa.xml): <property name="connectorNT" ref="ntService"></property> En l'acció, s'hauran de crear els getters i setters corresponents per al connector de notificacions electròniques: private EnotumConnectorImpl connectorEnotum; public EnotumConnectorImpl getConnectorEnotum() { return connectorEnotum; } public void setConnectorEnotum(EnotumConnectorImpl connectorEnotum) { this.connectorEnotum = connectorEnotum; } Per a consultar l'estat de la tramesa simplement s'haurà de realitzar la següent crida: PeticioNtConsultarDetallNotificacioEPDocument dades = PeticioNtConsultarDetallNotificacioEPDocument.Factory.newInstance();
PeticioNtConsultarDetallNotificacioEP peticioNotificacio = PeticioNtConsultarDetallNotificacioEP.Factory.newInstance();
peticioNotificacio.setIdNotificacioNT("142882");
dades.setPeticioNtConsultarDetallNotificacioEP(peticioNotificacio);
RespostaNtConsultarDetallNotificacioEPDocument resposta = enotumConnector.getServeisEmpleatPublic(getFuncionari()).consultarDetallNotificacio(dades);
Si no es produeix cap error, resposta.getError() ha de ser null. Si es produeix un error intern en la pica o el connector enotum, resposta.getError() vindrà informat amb el detall de l'error. I si es produeix una excepció en el connector es llançarà una excepció EnotumException. Exemple d'utilització Ciutadà (Consultar detall notificació) amb connector funcional de notificacions electròniquesEnotumConnectorImpl enotumConnector = (EnotumConnectorImpl) beanFactory.getBean("enotumService"); PeticioNtConsultarDetallNotificacioDocument dades = PeticioNtConsultarDetallNotificacioDocument.Factory.newInstance(); PeticioNtConsultarDetallNotificacio peticioNotificacio = PeticioNtConsultarDetallNotificacio.Factory.newInstance(); peticioNotificacio.setIdNotificacioNT("142882"); peticioNotificacio.setCertificat64("MIIHsjCCBpqgAwIBAgI..."); peticioNotificacio.setPerfil("20"); dades.setPeticioNtConsultarDetallNotificacio(peticioNotificacio); RespostaNtConsultarDetallNotificacioDocument resposta = enotumConnector.getServeisCiutada().consultarDetallNotificacio(dades); Exemple d'utilització Empleat Públic (Consultar estat tramesa) Utilitzant el connector genèric a la PICA.S'haurà d'afegir en la definició del servei pica, un producte modalitat segons la funcionalitat que es vulgui utilitzar, per el cas de Consultar tramesa s'hauria d'afegir: <property name="modalitats"> <map> ... <entry key="NT_CONSULTAR_ESTAT_TRAMESA"> <bean parent="ProducteModalitatBase"> <property name="signat" value="false"></property> <property name="urlPICA" value="http://preproduccio.pica.gencat.intranet/pica_cataleg/AppJava/services/NT_ENVIAR_TRAMESA" /> <property name="codCertificado" value="NT_CONSULTAR_ESTAT_TRAMESA"/> <property name="codProducto" value="NT"/> </bean> </entry> </map> </property> Referenciar al servei PICA des de l'acció que es vulgui utilitzar (action-servlet-aaa.xml): <property name="connectorPica" ref="picaService"></property> En l'acció, s'hauran de crear els getters i setters corresponents per al connectorPica: private IPicaServiceWrapper connectorPica; public IPicaServiceWrapper getConnectorPica() { return connectorPica; } public void setConnectorPica(IPicaServiceWrapper connectorPica) { this.connectorPica = connectorPica; } S'haurà de recuperar el producte modalitat de la PICA: IPICAServiceSincron servei = connectorPica.getPicaWebServiceSincronInstance("NT_CONSULTAR_ESTAT_TRAMESA");
Creació de l'XML per a dades específiques: StringBuffer sb = new StringBuffer(); sb.append("<peticio_nt_consultar_estat_tramesa xmlns=\"http://gencat.net/scsp/esquemes/productes/nt\">"); sb.append("<tramesa><idTramesaNT>" + idTramesaNT + "</idTramesaNT></tramesa>"); sb.append( "</peticio_nt_consultar_estat_tramesa>" ); List<DadesEspecifiques> dadesEspecifiques = new ArrayList<DadesEspecifiques>(); DadesEspecifiques dades = new DadesEspecifiques(); dades.setIdSolicitud("1"); dades.setDadesXML(sb.toString()); dadesEspecifiques.add(dades); servei.setDadesEspecifiques(dadesEspecifiques); Realitzar la crida al servei: Funcionari funcionari = new Funcionari(); funcionari.setNombreFuncionario("Nom Funcionari"); funcionari.setNifFuncionario("55555555A"); funcionari.setEmailFuncionario("func@ionari.com"); servei.setFuncionari(funcionari); servei.setFuncionari(this.funcionari); try { servei.crearPeticio("connector_eNotum_empleat_public_" + System.currentTimeMillis() ); } catch (PICAException e) { throw e; } CridaSincronaResponseDocument resposta = picaService.ferPeticioAlServei(servei); El resultat de la resposta es pot obtenir fent resposta.getDomNode(), i per tant s'haurà de parsejar el resultat. |