Introducció
L’objectiu d’aquest connector és el de proporcionar accés als serveis d’enviament de SMS i CORREU del CTTI a través del servei AVISALERT de la PICA.
Propòsit
El propòsit del connector és proporcionar una interfície funcional reduïda al connector de la Pica que simplifica l’utilització dels diferents serveis d’enviament de SMS i MAIL oferts per la generalitat.
Context i Escenaris d’ús
El connector PICA-AVISALERT es troba dins els connectors de serveis funcionals de la Generalitat.
A qui va dirigit
Aquest document va dirigit als següents perfils:
- Programador. Per conèixer l’ús del connector.
- Arquitecte. Per conèixer quins són els components i la configuració del connector.
Descripció Detallada
Aquest connector permet utilitzar les diferents modalitats del servei AVISALERT en les seves modalitats asíncrones i síncrones, a través de les modalitats de sevei següents:
Serveis Síncrons
- AVISALERT_SMS
- AVISALERT_CORREU-E
Serveis Asíncrons
- AVISALERT_SMS
Arquitectura i Components
Interfícies i Components Genèrics
Es pot trobar el codi font referent a aquest component a la següent url:
Requeriments
Per tal de que el connector AVISALERT funcioni correctament sobre l’aplicació que l’utilitzi, s’ha de tenir configurat el servei connector genèric de la PICA .
Configuració
Per configurar el mòdul d’integració PICA-AVISALERT és necessari configurar els següents arxius:
1.- Importar el mòdul PICA-AVISALERT amb el plugin de Canigó 3.6 de l’eclipse o bé incorporar manualment les seves dependències en el pom.xml de l’aplicació.
En el pom.xml:
<!-- Dependencia del mòdul PICA-AVISALERT -->
<dependency>
<groupId>cat.gencat.ctti</groupId>
<artifactId>canigo.integration.avisosalertes.pica</artifactId>
<version>${canigo.integration.avisosalertes.pica.version}</version>
</dependency>
A la Matriu de Compatibilitats es pot comprovar la versió del mòdul compatible amb la versió de Canigó utilitzada.
2.- Crear l’arxiu /config/props/avisalert.properties amb el següent contingut:
*.avisosalertes.pica.finalitat=[finalitat]
*.avisosalertes.pica.urlPica=http://preproduccio.pica.intranet.gencat.cat/pica_cataleg/AppJava/services/
*.avisosalertes.pica.nifEmisor=[nifEmisor]
*.avisosalertes.pica.nomEmisor=[nomEmisor]
*.avisosalertes.nomFuncionari=[nomFuncionari]
*.avisosalertes.nifFuncionari=[nifFuncionari]
*.avisosalertes.emailFuncionari=[emailFuncionari]
Els valors de finalitat, urlPica, nifEmisor i nomEmisor s’han de consultar a la OT PICA
NOTA: El valor per defecte de urlPica es la de l’entorn de Pre-producció.
3.- Configurar l’arxiu /config/props/pica.properties amb el següent contingut:
*.pica.modes.passwordType=PasswordText
*.pica.requirer.signatureFile=classpath:config/cert/signature.properties
*.pica.requirer.petitionerId=[petitionerId]
*.pica.requirer.transmitionId=[transmitionId]
*.pica.requirer.petitionerName=[petitionerName]
*.pica.requirer.password=[password]
*.pica.requirer.user=[password]
*.pica.axisdefinition.location=classpath:axis2client/
*.pica.trustStore.location=classpath:config/cert/certificats.jks
*.pica.trustStore.type=JKS
*.pica.trustStore.password=[trustStore.password]
Els valors entre [] s’han de consultar a la OT PICA
4.- Configurar l’arxiu /spring/app-integration-avisalert.xml amb el següent contingut:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd">
<bean id="alertesAvisosService"
class="cat.gencat.ctti.canigo.arch.integration.avisosalertes.pica.impl.AvisosAlertesConnectorImpl"
scope="prototype">
<description>AvisosAlertes service for Canigo 3.0</description>
<property name="picaService" ref="${avisosalertes.picaServiceBeanName:picaService}"/>
<property name="nifEmisor" value="${avisosalertes.pica.nifEmisor}"/>
<property name="nomEmisor" value="${avisosalertes.pica.nomEmisor}"/>
<property name="finalitat" value="${avisosalertes.pica.finalitat}"/>
<property name="passwordType" value="${pica.modes.passwordType}"/>
<property name="urlPica" value="${avisosalertes.pica.url}"/>
<property name="funcionari" ref="funcionari"/>
</bean>
<bean id="funcionari" class="cat.gencat.pica.api.peticio.beans.Funcionari" scope="prototype">
<property name="nifFuncionario" value="${avisosalertes.nifFuncionari}"/>
<property name="nombreFuncionario" value="${avisosalertes.nomFuncionari}"/>
<property name="emailFuncionario" value="${avisosalertes.emailFuncionari}"/>
</bean>
</beans>
Les propietats trustStoreSSLKeystore, trustStoreSSLKesytoreType i trustStoreSSLKeystorePassword només són necessàries en cas d’accedir a la url de la PICA mitjançant HTTPS.
Utilització del Connector
Exemple d’utilització d’un Servei Síncron
1.- En el bean on es vulgui disposar dels serveis del connector declarar el servei.
@Inject
private AvisosAlertesConnectorImpl avisalertService;
2.- Escollir una modalitat de servei síncrona i cridar-la amb els paràmetres que necessiti. En aquest cas es mostra un exemple amb la modalitat d’enviament de correu electrònic:
String from = "from@cscanigo.com";
String to = "to@cscanigo.com";
String title = "cscanigo";
String message = "Això és una prova";
String arxiu = null;
String resposta = avisalertService.avisAlertCorreuESincron(from, to, title, message, arxiu);
L’estat de finalització dependrà del codi retornat:
Per consultar la totalitat de possibles codis de retorn i el detall exacte dels objectes retornats consultar el document de la PICA Guia d’us del servei Avisos i Alertes v2.2.pdf disponible via petició a OT PICA
Exemple d’utilització d’un Servei Asíncron
1.- La modalitat d’enviament de SMS, AVISALERT_SMS, suporta l’enviament síncron i asíncron, l’exemple que segueix utilitzarà la seva variant asíncrona. Per poder utilitzar aquesta modalitat de consum el connector de Canigó 3.6 preveu tres mètodes diferents:
public DataResponse avisAlertSMSsimpleASincron(String serviceNumber, String mobile, String message) throws AvisosAlertesException;
public EstatAsincron getEstatAvisAlertSMSASincron(CridaAsincronaResponseDocument response) throws AvisosAlertesException;
public String getDadesAvisAlertSMSASincron(IPICAServiceAsincron servei) throws AvisosAlertesException;
2.- El primer serveix per carregar les dades de la consulta al servei i fer la primera petició. Donat que és un servei asíncron retorna un objecte amb l’estat actual de la petició i el temps estimat de finalització d’aquesta.
Igual que en les peticions síncrones, s’inicialitza el bean del servei del connector:
@Inject
private AvisosAlertesConnectorImpl avisosAlertesConnector;
Es crida al servei amb les dades pertinents;
String mobile = MOV_NUMBER;
String serviceNumber = "6666";
String message = "Test";
DataResponse resposta = avisosAlertesConnector.avisAlertSMSsimpleASincron(serviceNumber, mobile, message);
3.- El segon serveix per anar comprovant l’estat de la consulta de forma periòdica. Igual que el primer mètode retorna un objecte amb l’estat actual de la petició i el temps estimat per la seva resolució.
EstatAsincron estat = avisosAlertesConnector.getEstatAvisAlertSMSASincron(resposta.getResponse());
4.- Finalment el tercer mètode recupera el resultat de la petició una vegada confirmat que la petició ha finalitzat.
String dades = avisosAlertesConnector.getDadesAvisAlertSMSASincron(resposta.getServei());
Per consultar la totalitat de possibles codis de retorn i el detall exacte dels objectes retornats consultar el document de la PICA Guia d’us del servei Avisos i Alertes v2.2.pdf disponible via petició a OT PICA