amap-dir3

Versión 1.0.2

Fecha: 04 Abril 2017.
Se añaden dos campos nuevos a la importacion con el numero de registros de oficinas y unidades organicas actualizados en cada importacion

Versión 1.0.1

Fecha: 20 Febrero 2017.
Se añaden los filtros por UOSuperior, UORaiz, AmbitoTerritorial y NivelJerarquico al servicio getUnidadesOrganicas.
Se añade un servicio getAmbitosTerritoriales.
Se elimina la creacion del servicio mediante host

Versión 1.0.0

Fecha: 30 Mayo 2016.
Versión inicial

<dependency>
<groupId>es.gobcantabria.amap.integracion</groupId>
<artifactId>amap-dir3</artifactId>
<version>1.0.2</version>
</dependency>

Es necesario de disponer de los siguientes datos:

  • Servidor: nombre o ip del servidor donde se aloja el servidor de amap-dir3

Sin recursos disponibles.

Configuración

Configuración de la factoría de servicios

Para la utilización del componente AMAPDir3 basta con añadir el jar y sus correspondientes dependencias al classpath de la aplicación y crear un servicio del siguiente modo:

Dir3Cliente servicio = Dir3Cliente.getService(url, usuarioProxy, implementacion);

El servicio concreto a usar se definirá a partir de un fichero de properties junto con el resto de los parámetros:

KeyDescripciónEjemplo
sistemas.global.amap.dir3.url.restfulEndpoint del servicio web http://<host>/amap-dir3-servidor/services/Dir3RestfulWS
sistemas.global.amap.dir3.url.webserviceEndpoint del servicio web http://<host>/amap-dir3-servidor/services/Dir3WS
Los valores de las propieades aquí mostrados son meramente ilustrativos. En los entornos de desarrollo / preproducción y producción los valores de las variables han de ser externalizados tal y como se especifica en el documento Definición de acceso a propiedades de sistema

Ejemplo de contenido del fichero de propiedades:

sistemas.global.amap.dir3.url.restful=http://<host>/amap-dir3-servidor/services/Dir3RestfulWS
sistemas.global.amap.dir3.url.webservice=http://<host>/amap-dir3-servidor/services/Dir3WS

La configuración del componente se realiza a la hora de obtener la instancia del servicio. Los parámetros soportados son:

  • URL:  URL donde está desplegado el servicio (instancia de java.net.URL).
  • Implementacion (Opcional): existen 3 implementaciones:
    • Mock: cliente de prueba para la integración con el servicio sin necesidad de conectarse a ningún servidor (los parámetros serán ignorados)
    • WS: el cliente se conectará sobre los webservices de amap dir3 (opción por defecto).
    • RS: el cliente se conectará sobre los webservices SOAP de amap dir3.

Por lo que la forma convencional de generar un cliente, en el entorno de desarrollo, sería: 


Dir3ClienteInterface dir3Cliente = Dir3Cliente.getService(URL,USUARIOPROXYWS, IMPLEMENTACION);

Este cliente sería de tipo WS, mientras que si queremos crear un cliente de tipo RESTful
la forma convencional de generar un cliente sería:


Dir3ClienteInterface dir3Cliente = Dir3Cliente.getService(
   new URL("http://******/amap-dir3/services/Dir3RestfulWS"),
   USUARIOPROXYWS,
   Dir3ClienteTipoImplementacion.DIR3_CLIENTE_RS);

Una vez obtenido el servicio podemos invocar cualquiera de sus métodos.

Para el servicio web deberemos considerar el siguiente modelo de dominio:

UML DIR3 Oficina

UML DIR3 Unidad Organica

UML DIR3 General

Nombreamap-dir3
Identificadoramap-dir3
Grupoes.gobcantabria.amap.integracion
Versión1.0.2
Licencia
DesarrolladorGobierno de Cantabria
Descripción

Componente de Acceso a la información de las unidades organicas y oficinas del Gobierno de Cantabria

Documentaciónamap-dir3 (JavaDoc)
Binarioamap-dir3 (Jar)
Dependenciasamap-dir3 (Librerías)

Sin particularidades. Seguir las recomendaciones del fabricante.

Introducción

Una vez creado el servicio, tal y como se indica en el apartado de configuración, se pueden acceder a los métodos disponibles.

Aquellas operaciones del servicio que soliciten un filtro de unidad orgánica u oficina deben invocarse en formato de consulta con los %.

Servicio Web

Consultar Unidades Organicas

Devuelve la información de las unidades orgánicas que cumplen un determinado filtro (código, detallado o no, descripción, ccaa, provincia, nivelAdmon, estado, numero de registros, estado SIR, estado ORGZ, UO SIR, codigoExterno, UO Superior, UO Raiz, Ambito territorial, nivelJerarquico)

Consulta detallada por descripcion, ccaa, provincia, nivel de administracion y estado

ResponseUnidad unidades = getDir3Cliente().getUnidadesOrganicas(null, true,"correos",
filtroCcaa, filtroProv, filtroNivelAdmon, filtroEstado,numMaxRegistros, null, null, 
false, null, null, null, null, null);

Consulta detallada por codigo

ResponseUnidad unidades =getDir3Cliente().getUnidadesOrganicas("E04921801", true,null,
null, null, null, null,numReg, null, null, false, null, null, null, null, null);
El RPT esta asociado al campo codigoExterno de las UO

Consultar Oficinas

Devuelve la información de oficinas que cumplen un determinado filtro

Consulta detallada por descripcion, ccaa, provincia, nivel de administracion, estado y servicio

ResponseOficina oficinas = getDir3Cliente().getOficinas(null, true, "OFICINA", filtroCcaa,
 filtroProv, filtroNivel,filtroEstado,filtroOfiServicio, numMaxRegistros, null, null);

Consulta detallada por codigo

ResponseOficina oficinas = getDir3Cliente().getOficinas("O00005428", true, null, null,
null, null,null,null, numReg, null, null);

Consultar Comunidades Autonomas

Devuelve la información de las comunidades autónomas

Consulta todas las CCAA

List<Ccaa> ccaaCodigo = getDir3Cliente().getCcaas(null);

Consulta por codigo

List<Ccaa> ccaaCodigo = getDir3Cliente().getCcaas(codigo);

Consultar Estados Entidad

Devuelve la información de los estados de entidad

Consulta todos los estados

List<EstadoEntidad> estados = getDir3Cliente().getEstadosEntidad(null);

Consulta por codigo

List<EstadoEntidad> estados = getDir3Cliente().getEstadosEntidad("V");

Consultar Municipios

Devuelve la información de los municipios

Consulta todos los municipios

List<Localidad> municipios = getDir3Cliente().getMunicipios(null, null, null);

Consulta por codigo

List<Localidad> municipiosCodigo = getDir3Cliente().getMunicipios(112, null, null);

Consultar Localidades

Devuelve la información de las localidades

Consulta todas las localidades

List<Localidad> localidades = getDir3Cliente().getLocalidades(null, null, null);

Consulta por descripcion

List<Localidad> localidadesDes = getDir3Cliente().getLocalidades(null, null, "Vecilla");

Consultar Ambito Territorial

Devuelve la información de los ambitos territoriales

Consulta todos los ambitos territoriales

List<AmbitoTerritorial> ambTerrito= getDir3Cliente().getAmbitosTerritoriales(
null, null, null);

Consulta por codigo

List<AmbitoTerritorial> ambTerrito= getDir3Cliente().getAmbitosTerritoriales(
"1", null, null);

Consultar Islas

Devuelve la información de las islas

Consulta todas las islas

List<Isla> islas = getDir3Cliente().getIslas(null, null);

Consulta por codigo

List<Isla> islasCodigo = getDir3Cliente().getIslas("01", null);

Consultar Paises

Devuelve la información de los paises

Consulta todos los paises

List<Pais> paises = getDir3Cliente().getPaises(null);

Consulta por codigo

List<Pais> pais = getDir3Cliente().getPaises(50);

Consultar Provincias

Devuelve la información de las provincias

Consulta todas las provincias

List<Provincia> provincias = getDir3Cliente().getProvincias(null, null);

Consulta por ccaa

List<Provincia> provinciaCcaa = getDir3Cliente().getProvincias(null, 7);

Consultar Niveles Administracion

Devuelve la información de los niveles de administración

Consulta todos los niveles de administración

List<NivelAdmon> niveles = getDir3Cliente().getNivelesAdmon(null);

Consulta por codigo

List<NivelAdmon> nivelCodigo = getDir3Cliente().getNivelesAdmon(7);

Consultar Servicios Oficina

Devuelve la información de los servicios de oficina

Consulta todos los servicios de Oficina

List<OficinaServicio> servicios = getDir3Cliente().getServiciosOficina(null);

Consulta por codigo

List<OficinaServicio> servicio = getDir3Cliente().getServiciosOficina(10);

Consultar Historicos Oficina

Devuelve la información de los historicos de oficina

Consulta todos los historicos

List<OficinaHistoricos> historicos = getDir3Cliente().getHistoricosOficina(null,null);

Consulta por codigo nuevo

List<OficinaHistoricos> codigoNuevo = getDir3Cliente().getHistoricosOficina(null,
"O00015194");

Ejecutar una importacion

Importar todas las tablas de la BBDD

Dir3Cliente servicioDir3 = getDir3Cliente();
long result = servicioDir3.importarTodo();

Consultar estado importacion

Devuelve el estado de una importacion

Dir3Cliente servicioDir3 = getDir3Cliente();
String result = servicioDir3.importarTodoEstado(1);

Consultar Importaciones

Devuelve la informacion de la importaciones

Consulta todas las importaciones

Dir3Cliente servicioDir3 = getDir3Cliente();
List<Importacion> importaciones = servicioDir3.getImportaciones
     (null,null);

Consulta ultima importacion

Dir3Cliente servicioDir3 = getDir3Cliente();
List<Importacion> importacionUltimo =servicioDir3.getImportaciones
      (null, null, 1);

Crear/Modificar datos de Oficinas

Añade o actualiza los datos de las oficinas

Alta nueva Oficina

List<OficinaRequest> oficinas = new ArrayList<OficinaRequest>();
OficinaRequest oficina = new OficinaRequest("1","Oficina Generica Cantabria - prueba",
 null,null,1,null,"A03007109","De 09:00 a 14:00 horas de lunes a viernes",null,"V",null,
 null,null,null,2,null,null,null,null,null);
oficinas.add(oficina);
List<DireccionRequest> direcciones = new ArrayList<DireccionRequest>();
DireccionRequest direccion = new DireccionRequest("1", "2", "Peña Herbosa", "S/N", null,
 "39003", "724", "06", "39", "0759", "01", null, null, null);
direcciones.add(direccion);
List<ContactoRequest> contactos = new ArrayList<ContactoRequest>();
ContactoRequest contacto = new ContactoRequest("1", "T", "999999999", null);
ContactoRequest contacto2 = new ContactoRequest("1", "F", "999999998", null);
ContactoRequest contacto3 = new ContactoRequest("1", "E", 
 "oficina_generica_cantabria@cantabria.es", null);
contactos.add(contacto);
contactos.add(contacto2);
contactos.add(contacto3);
List<ServicioRequest> servicios = new ArrayList<ServicioRequest>();
ServicioRequest servicio = new ServicioRequest("1","1",null);
ServicioRequest servicio2 = new ServicioRequest("1","3",null);
servicios.add(servicio);
servicios.add(servicio2);
DatosResponse oficinasResponse =getDir3Cliente().provisionOficinas(oficinas, contactos,
 direcciones, servicios, null, null);

Modificar Oficina

List<OficinaRequest> oficinas = new ArrayList<OficinaRequest>();
OficinaRequest oficina = new OficinaRequest("O00021786","Oficina de Prueba",null,null,
 null, null, "A03007109",null,null,null,null,null,null,"Fuente Prueba",2,null,null,null,
 null,null);
oficinas.add(oficina);
DatosResponse oficinasResponse =getDir3Cliente().provisionOficinas(oficinas, null, null,
 null, null, null);
  • Para borrar un registro indicar 'S' o 'N' en el campo borrar.
  • Para borrar una oficina se debe indicar la fecha de extincion, el estado a 'E' y se puede indicar la oficina encargada de sus competencias y el motivo de extincion.
  • Las direcciones no se pueden borrar.
  • Para dar de alta una oficina es obligatorio indicar su direccion.
  • Si un campo no se indica en una modificación este no sera alterado, para vaciar un campo se debe especificar como "null".
  • Las relaciones de intercambio solo podran ser añadidas o modificadas por usuario administrador.
  • El codigo que se indique en la oficina al realizar un alta es el codigo de referencia para direcciones, contactos, etc.. 
  • No se puede modificar la denominacion ni el nivelAdministracion de una oficina.
  • Campos Obligatorios: codigo, codUOResponsable, nivelAdministracion.

Crear/Modificar datos de Unidades

Añade o actualiza los datos de las unidades organicas

Alta nueva Unidad Organica

List<UnidadRequest> unidades = new ArrayList<UnidadRequest>();
UnidadRequest unidad = new UnidadRequest("1", null, "Unidad Organica Prueba", null, null,
 null, "2", null, null, "A03007109","N", null, "12", null, null, "06", null, null, null, 
 null, null, null, null, "V", null, null, null, null, null, null, null, null, null);
unidades.add(unidad);
List<DireccionRequest> direcciones = new ArrayList<DireccionRequest>();
DireccionRequest direccion = new DireccionRequest("1", "2", "Peña Herbosa", "S/N", null,
 "39003", "724", "06", "39", "0759", "01", null, null, null);
direcciones.add(direccion);
List<ContactoRequest> contactos = new ArrayList<ContactoRequest>();
ContactoRequest contacto = new ContactoRequest("1", "T", "999999999", null);
ContactoRequest contacto2 = new ContactoRequest("1", "F", "999999998", null);
ContactoRequest contacto3 = new ContactoRequest("1", "E", 
 "oficina_generica_cantabria@cantabria.es", null);
contactos.add(contacto);
contactos.add(contacto2);
contactos.add(contacto3);
DatosResponse unidadesResponse =getDir3Cliente().provisionUnidades(unidades, contactos, 
 direcciones);

Modificar Unidad

List<UnidadRequest> unidades = new ArrayList<UnidadRequest>();
UnidadRequest unidad = new UnidadRequest("A06019162", null, null, null, null, null, "2", 
 null, null, null, null, null, null, null, null, "06", null, null, null, null, null, null, 
 null, null, null, "codExterno Prueba", null, null, null, null, null, null, null);
unidades.add(unidad);
DatosResponse unidadesResponse =getDir3Cliente().provisionUnidades(unidades, null, null);
  • Para borrar un registro indicar 'S' o 'N' en el campo borrar.
  • Para borrar una Unidad organica se debe indicar la fecha de extincion, el estado a 'E' y obligatoriamente se puede indicar la unidad organica encargada de sus competencias y el motivo de extincion.
  • Si un campo no se indica en una modificación este no sera alterado, para vaciar un campo se debe especificar como "null".
  • Las direcciones no se pueden borrar.
  • El codigo que se indique en la unidad organica al realizar un alta es el codigo de referencia para direcciones y contactos .
  • No se puede modificar la denominacion ni el nivelAdministracion de una unidad organica.
  • En administraciones autonomicas no se permite modificar la comunidad autonoma.
  • En administraciones locales no se permite modificar la entidad geografica ni la provincia.
  • Si es un ayuntamiento no se permite modificar el municipio.
  • Para dar de alta una unidad organica es obligatorio indicar su direccion.
  • Campos Obligatorios: codigo, nivelAdmon, codComunidad.

Servicio Restful

El uso es igual que en el WS

getUnidadesOrganicas

Path: /getUnidadesOrganicas
Parametros de Cabecera: Authorization :.. identificador del la aplicación en el proxy de servicios ..
filtroCodigo:  codigo de la unidad organica
detallado: filtro del response detallado o no
filtroDes: filtro de la descripcion
filtroCcaa: filtro por codigo de Comunidad Autonoma
filtroProv: filtro por codigo de Provincia
filtroNivelAdmon: filtro por codigo de Nivel Administracion
filtroEstado: filtro por codigos de Estado Entidad
numMaxRegistros: filtro por numero maximo de registros
filtroEstadoSir: filtro por codigos de estado de la relacion SIR
filtroEstadoORGZ: filtro por codigos de estado de la relacion ORGZ
filtroSIR: filtro de relaxiones SIR
filtroUOSuperior: filtro por UO Superior
filtroUORaiz: filtro por UO Raiz
filtroAmbitoTerritorial: filtro por ambito territorial
filtroNivelJerarquico: filtro por nivel jerarquico
filtroCodigoExterno : filtro por RPT
devuelve la información de unidades orgánicas que cumplen un determinado filtro

getOficinas

Path:/getOficinas
Parametros de Cabecera: Authorization identificador del la aplicación el proxy de servicios,
filtroCodigo:  codigo de la oficina
filtroDes: filtro de la descripcion
filtroCcaa: filtro por codigo de Comunidad Autonoma
filtroProv: filtro por codigo de Provincia
filtroNivelAdmon: filtro por codigo de Nivel Administracion
filtroEstado: filtro por codigos de Estado Entidad
filtroOfiServicio : filtro por codigo del servicio
detallado: filtro del response detallado o no
numMaxRegistros: filtro por numero maximo de registros
filtroEstadoSir: filtro por codigos de estado de la relacion SIR
filtroEstadoORGZ: filtro por codigos de estado de la relacion ORGZ
devuelve la información de oficinas que cumplen un determinado filtro

Petición Oficinas
Petición Oficinas

Response Oficinas
Response Oficinas

Petición Oficina codigo
Petición Oficina codigo

Response Oficina codigo
Response Oficina codigo

getCcaas

Path: /getCcaas
Parametros de Cabecera: Authorization: .. identificador del la aplicación en el proxy de servicios
codigo : codigo de la comunidad autonoma
devuelve la información de las comunidades autónomas

getEstadosEntidad

Path: /getEstadosEntidad
Parametros de Cabecera: Authorization:.. identificador del la aplicación en el proxy de servicios
codigo : Codigo del Estado de Oficina
devuelve la información de los estados de oficina

getMunicipios

Path: /getMunicipios
Parametros de Cabecera: Authorization:.. identificador del la aplicación en el proxy de servicios
codigo: filtro por codigo del municipio
filtroDescripcion: filtro por descripcion
filtroProvincia : filtro por codigo de provincia
devuelve la información de los municipios

Petición Municipios codigo
Petición Municipios codigo

Response Oficinas
Response Oficinas

Petición Municipio codigo y descripcion
Petición Municipio codigo y descripcion

Response Municipio codigo y descripcion
Response Municipio codigo y descripcion

getLocalidades

Path: /getLocalidades
Parametros de Cabecera: Authorization :.. identificador del la aplicación en el proxy de servicios
codigo: filtro por codigo de la localidad
filtroDescripcion: filtro por descripcion
filtroProvincia : filtro por codigo de provincia
devuelve la información de las localidades

getIslas

Path: /getIslas
Parametros de Cabecera: Authorization :.. identificador del la aplicación en el proxy de servicios
codigo: filtro por codigo de Isla
filtroProvincia: filtro por codigo de provincia
devuelve la información de las islas

getNivelesAdmon

Path: /getNivelesAdmon
Parametros de Cabecera: Authorization :.. identificador del la aplicación en el proxy de servicios
codigo: filtro por codigo del nivel de administracion
devuelve la información de los niveles de administración

getPaises

Path: /getPaises
Parametros de Cabecera: Authorization :.. identificador del la aplicación en el proxy de servicios
codigo: filtro por codigo del pais
devuelve la información de los paises

getProvincias

Path: /getProvincias
Parametros de Cabecera: Authorization :.. identificador del la aplicación en el proxy de servicios
codigo: filtro por codigo de la provincia
filtroCcaa: filtro por codigo de Comunidad Autonoma
devuelve la información de las provincias

getServiciosOficina

Path: /getServiciosOficina
Parametros de Cabecera: Authorization :.. identificador del la aplicación en el proxy de servicios
codigo: filtro por codigo del Servicio
devuelve la información de los servicios de oficina

getHistoricosOficina

Path: /getHistoricosOficina
Parametros de Cabecera: Authorization :.. identificador del la aplicación en el proxy de servicios
codigoAntiguo: filtro por codigo de la oficina antigua
codigoNueva: filtro por codigo de la oficina nueva
devuelve la información de los historicos de oficina

importarTodo

Path: /importarTodo
Parametros de Cabecera: Authorization :.. identificador del la aplicación en el proxy de servicios ..:
actualiza todas las tablas de la BBDD

importarTodoEstado

Path: /importarTodoEstado
Parametros de Cabecera: Authorization :.. identificador del la aplicación en el proxy de servicios
idImportacion: filtro por id de la importacion
devuelve el estado de una actualizacion

getImportaciones

Path: /getImportaciones
Parametros de Cabecera: Authorization :.. identificador del la aplicación en el proxy de servicios
id: filtro por el id de la importacion
filtroErrores: filtro por codigos de tipo de errores
numRegistros: filtro por numero maximo de registros a mostrar
devuelve la informacion de las importaciones

provisionOficinas

Path: /provisionOficinas
Parametros de Cabecera: Authorization :.. identificador del la aplicación en el proxy de servicios
Parametros de Cuerpo: requestOficinas:  datos de las oficinas

provisionUnidades

Path: /provisionUnidades
Parametros de Cabecera: Authorization :.. identificador del la aplicación en el proxy de servicios
Parametros de Cuerpo: requestUnidades:  datos de las unidades

Etiquetas:
Creado por Administrator el 2015/05/14 09:13
© 2014 GOBIERNO DE CANTABRIA - AVISO LEGAL Y PROTECCIÓN DE DATOS