Cómo integrar el Sistema de Tramitación Electrónica en egeasy

De Egeasy
Revisión del 11:56 5 abr 2010 de Amendez (Discusión | contribuciones) (Configurar el servidor web, Apache)

(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)
Saltar a: navegación, buscar

Introducción

Este manual sirve para explicar todos los pasos que hay que dar para integrar el Sistema de Tramitación Electrónica en la plataforma egeasy. Esta explicación no partirá de cero, sino que se supone que ya se tiene instalada la plataforma egeasy, con un centro configurado y desarrollado para su usu cotidiano.

Requisitos

Para una correcta integración del Sistema de Tramitación Electrónica vamos a necesitar:

  • Servidor web (Apache)
  • Servidor de base de datos
  • Servidor de Tomcat

Pasos a seguir

Para la instalación de la aplicación web del Sistema de Tramitación Electrónica, vamos a disponer de una instalación de la aplicación XAMPP, que nos proporciona de una forma rápida y sencilla las aplicaciones requeridas para una puesta en marcha. Para que las explicaciones de los ficheros de configuración sean lo menos confusas posible, en este articulo vamos a instalar la aplicación XAMPP en C:\, por lo tanto todas las rutas se explicarán desde dicha ruta. Ademas de instalar la aplicación XAMPP, tenemos que instalar el servicio web, el cual lo vamos a instalar para mayor comodidad en C:\ste. Así que todas las explicaciones parten de dicha ruta de instalación.

Configurar el servicio web STE

Creación de tablas en la base de datos

Para la implantación del Sistema de Tramitación Electrónica, se deben crear unas cuantas tablas e índices en la base de datos. En este ejemplo vamos a utilizar la misma base de datos y esquema donde tenemos implantada ya la plataforma egeasy. A continuación, se listarán los script con las sentencias SQL que hay que ejecutar en la base de datos para generar todo lo necesario para el Sistema de Tramitación Electrónica. Disponemos de los script tanto para SQL-Server como para Oracle.

  • Script para base de datos en SQL-Server
CREATE TABLE WS$ADMINISTRATORS
       (ID NUMERIC(10),
        NIF VARCHAR(10),
        NAME VARCHAR(50));
CREATE TABLE WS$ORGANIZATIONS
       (ID NUMERIC(10),
        NAME VARCHAR(50));
CREATE TABLE WS$USERS
       (ID NUMERIC(10) PRIMARY KEY,
        ID_ORGANIZATION NUMERIC(10),
        NIF VARCHAR(10),
        NAME VARCHAR(50),
        FULLNAME VARCHAR(50), 
        EMAIL VARCHAR(50),
        FORM IMAGE);
CREATE TABLE WS$PROCESSES
       (ID NUMERIC(10) PRIMARY KEY,
        LABEL VARCHAR(100),
        TRAMITATION_STATUS VARCHAR(100),
        ID_PROCEDURE NUMERIC(10),
        ID_USER NUMERIC(10),
        STATUS NUMERIC(1),
        CREATE_DATE DATETIME,
      	START_DATE DATETIME,
      	END_DATE DATETIME,
	LAST_READ_DATE DATETIME);
CREATE TABLE WS$TASKS
      (ID NUMERIC(10) PRIMARY KEY,
       ID_PROCESS NUMERIC(10),
       ID_EGE NUMERIC(10),
       ID_DEFINITION NUMERIC(10),
       CREATE_RECEIVE_DATE DATETIME,
       SEND_RESPONSE_DATE DATETIME,
       STATUS NUMERIC(1),
       RESPONSE_TO NUMERIC(10),
       CONTENT IMAGE);
CREATE TABLE WS$TASK_SIGNATURES
      (ID NUMERIC(10) PRIMARY KEY,
       SIGNATURE IMAGE);
CREATE TABLE WS$TASK_SNAPSHOTS
      (ID NUMERIC(10) PRIMARY KEY,
       SNAPSHOT IMAGE);
CREATE TABLE WS$FILES
      (ID NUMERIC(10),
       ID_TASK NUMERIC(10),
       ID_EGE NUMERIC(10),
       ATTACH_DATE DATETIME,
       SOURCE NUMERIC(1),
       FILE_NAME VARCHAR(50));
CREATE TABLE EG$SEQUENCES
      (NAME VARCHAR(50),
       SUBSEQUENCE VARCHAR(50),
       CURRENT_VALUE NUMERIC(10));
//tablas para index
CREATE TABLE WSI$WORDS
      (ID NUMERIC(10),
       CAPTION VARCHAR(15));
CREATE INDEX IEGI$WORDS#CAP ON WSI$WORDS (CAPTION);
CREATE TABLE WSI$INDEX
      (ID_WORD NUMERIC(10),
       ID_PROCESS NUMERIC(10),
        ID_TASK NUMERIC(10));
CREATE INDEX IEGI$INDEX#WRD ON WSI$INDEX(ID_WORD);
  • Script para base de datos en Oracle
CREATE TABLE WS$ADMINISTRATORS
       (ID NUMBER(10),
        NIF VARCHAR2(10),
        NAME VARCHAR2(50));
CREATE TABLE WS$ORGANIZATIONS
       (ID NUMBER(10),
        NAME VARCHAR2(50));
CREATE TABLE WS$USERS
       (ID NUMBER(10) PRIMARY KEY,
        ID_ORGANIZACION NUMBER(10),
        NIF VARCHAR2(10),
        NAME VARCHAR2(50),
        FULLNAME VARCHAR2(50), 
        EMAIL VARCHAR2(50),
        FORM LONG RAW);
CREATE TABLE WS$PROCESSES
       (ID NUMBER(10) PRIMARY KEY,
        LABEL VARCHAR2(100),
        TRAMITATION_STATUS VARCHAR2(100),
        ID_PROCEDURE NUMBER(10),
        ID_USER NUMBER(10),
        STATUS NUMBER(1),
        CREATE_DATE DATE,
      	START_DATE DATE,
      	END_DATE DATE,
	LAST_READ_DATE DATE);
CREATE TABLE WS$TASKS
      (ID NUMBER(10) PRIMARY KEY,
       ID_PROCESS NUMBER(10),
       ID_EGE NUMBER(10),
       ID_DEFINITION NUMBER(10),
       CREATE_RECEIVE_DATE DATE,
       SEND_RESPONSE_DATE DATE,
       STATUS NUMBER(1),
       RESPONSE_TO NUMBER(10),
       CONTENT LONG RAW);
CREATE TABLE WS$TASK_SIGNATURES
      (ID NUMBER(10) PRIMARY KEY,
       SIGNATURE LONG RAW);
CREATE TABLE WS$TASK_SNAPSHOTS
      (ID NUMBER(10) PRIMARY KEY,
       SNAPSHOT LONG RAW);
CREATE TABLE WS$FILES
      (ID NUMBER(10),
       ID_TASK NUMBER(10),
       ID_EGE NUMBER(10),
       ATTACH_DATE DATE,
       SOURCE NUMBER(1),
       FILE_NAME VARCHAR2(50));
CREATE TABLE EG$SEQUENCES
      (NAME VARCHAR2(50),
       SUBSEQUENCE VARCHAR2(50),
       CURRENT_VALUE NUMBER(10));
//tablas para index
CREATE TABLE WSI$WORDS
      (ID NUMBER(10),
       CAPTION VARCHAR2(15));
CREATE INDEX IEGI$WORDS#CAP ON WSI$WORDS (CAPTION);
CREATE TABLE WSI$INDEX
      (ID_WORD NUMBER(10),
       ID_PROCESS NUMBER(10),
        ID_TASK NUMBER(10));
CREATE INDEX IEGI$INDEX#WRD ON WSI$INDEX(ID_WORD);


Fichero de configuración

Para configurar el servidor de Tramitación Electrónica, debemos crear un fichero de configuración que será indicado como párametro por línea de comandos al arrancar el servicio.

A continuación detallamos que son cada una de los parámetros que se han de configurar en este archivo de configuración del servidor de Tramitación Electrónica.

  • SERVER_ADDRESS: IP donde se publicará el servidor de tramitación.
  • SERVER_PORT: Puerto donde se publicará el servidor de tramitación.
  • WS_DB_CONNECTION_STRING: Cadena de conexión a la base de datos de tramitación, donde se tenemos que poner el nombre de usuario de la base de datos, seguido de una @, a continuación indicamos la ruta de la base de datos, seguido de una @ y por ultimo la contraseña para acceder a la base de datos. En resumen: NOMBREUSUARIO@DIRECCIONBD@CONTRASEÑA
  • WS_DB_TYPE: Tipo de gestor de base de datos. Posibles valores: SQL Server, Oracle.
  • WS_DIRECTORY_DOCUMENTS: Ruta donde se almacenan los documentos generados por la aplicación.
  • WS_DIRECTORY_LOGS: Ruta donde se localizan los logs de la aplicación.
  • WS_FILE_INVALID_WORDS: Ruta del fichero donde están las palabras que no se van a indexar en la base de datos (para búsquedas).
  • WS_FILE_ERROR_MESSAGES: Ruta del fichero donde están los mensajes de error que ofrece la aplicación.
  • WS_TYPE_REGISTRATION: Si esta etiqueta está presente, entonces en la aplicacón web los usuarios podrán registrarse libremente. Los valores que admite esta etiqueta es Free y Fix.
  • WS_FILE_REGISTRATION_FORM:Ruta y nombre del archivo xml que se usará para generar el formulario de registro en la aplicación web.
  • EGE_USER_RRC: Identificador del usuario en la plataforma egeasy, con el que va a acceder la aplicación de tramitacion a la plataforma. Para un correcto funcionamiento, debemos generar un usuario en la plataforma solo para la tramitación.
  • EGE_CENTER_NAME:Nombre del centro egeasy sobre el que trabaja la aplicación de tramitación.
  • EGE_DB_CONNECTION_STRING: Cadena de conexión a la base de datos de egeasy, donde se tenemos que poner el nombre de usuario de la base de datos, seguido de una @, a continuación indicamos la ruta de la base de datos, seguido de una @ y por ultimo la contraseña para acceder a la base de datos. En resumen: NOMBREUSUARIO@DIRECCIONBD@CONTRASEÑA
  • EGE_DB_TYPE: Tipo de gestor de base de datos. Posibles valores: SQL Server, Oracle.
  • EGE_MODEL_DIRECTORY: Ruta donde se localiza el modelo del centro de la plataforma egeasy.
  • EGE_DOCUMENT_BASE: Ruta donde se localizan la base documental de la plataforma egeasy. Puede ser una carpeta de sistema de ficheros o una ruta dentro de un gestor documental.
  • EGE_DOCUMENT_BASE_TYPE: Gestor de base documental. Posibles valores: Filesystem y ESB (para Platino).
  • EGE_REGISTRY_DIRECTORY: Ruta donde se localizan los registro de la plataforma egeasy.
  • EGE_ESB_URL: Url del ESB de comunicación con la plataforma Platino.
  • EGE_ESB_SWAP_DIRECTORY: Ruta del directorio de intercambio con el ESB de comunicación con la plataforma Platino.
  • EGE_EMAIL_SMTP_SERVER: Dirección IP y puerto del servidor de correo SMTP que se usa para enviar correos electrónicos.
  • EGE_EMAIL_SENDER_ADDRESS: Dirección remitente que se usa para enviar correos electrónicos.
  • EGE_EMAIL_USER_NAME: Nombre de la cuenta de usuario de correo electrónico que se usa para enviar correos electrónicos.
  • EGE_EMAIL_PASSWORD: Contraseña de la cuenta de usuario de correo electrónico que se usa para enviar correos electrónicos.
  • MAX_ATTACHMENT_SIZE: Tamaño máximo en MB permitido para un envío de tarea (suma de archivos adjuntos).
  • VARIABLES: A partir de esta etiqueta, variables de configuración del centro, en formato <nombre>=<valor>

Un ejemplo de un fichero de configuración, podría ser el siguiente:

SERVER_ADDRESS=10.22.144.169
SERVER_PORT=10000

WS_DB_CONNECTION_STRING=<usuario>@<base de datos>@<contraseña>
WS_DB_TYPE=Oracle|SQL Server

WS_DIRECTORY_DOCUMENTS=
WS_DIRECTORY_LOGS=
WS_FILE_INVALID_WORDS=C:\Temp\Centros STE\Acecau_ste\palabras.dat
WS_FILE_ERROR_MESSAGES=c:\temp\Centros STE\sijuego\errormessages.dat

WS_TYPE_REGISTRATION=Free|Fix
WS_FILE_REGISTRATION_FORM=C:\Temp\Centros STE\Acecau_ste\registration.xml

EGE_USER_RRC=0
EGE_CENTER_NAME=Acecau STE
EGE_DB_CONNECTION_STRING=<usuario>@<base de datos>@<contraseña>
EGE_DB_TYPE=Oracle|SQL Server
EGE_MODEL_DIRECTORY=
EGE_DOCUMENT_BASE=
EGE_DOCUMENT_BASE_TYPE=Filesystem|ESB
EGE_REGISTRY_DIRECTORY=
EGE_ESB_URL=
EGE_ESB_SWAP_DIRECTORY=
EGE_EMAIL_SMTP_SERVER=<ip>:<port> 
EGE_EMAIL_SENDER_ADDRESS=
EGE_EMAIL_USER_NAME=
EGE_EMAIL_PASSWORD=

MAX_ATTACHMENT_SIZE=2

VARIABLES
<nombre>=<valor>

Fichero de mensajes de error

Fichero en el que se definen los mensajes de error que puede lanzar la aplicación. Hay que asignar un valor de mensaje legible a cada etiqueta del fichero.

Un ejemplo de fichero sería este:

ERROR_INTERNAL=Error interno de la aplicación.
ERROR_NO_SESSION=No se ha iniciado ninguna sesión o esta ha caducado.
ERROR_ACCESS_FORBIDEN=No se permite el acceso a el trámite.
ERROR_REGISTER_USER=No se ha podidio registrar el usuario.
ERROR_SAVE_USER=No se ha podido guardar el usuario.
ERROR_CREATE_SESSION=No se ha podido iniciar sesión.
ERROR_START_SESSION=No se ha podido iniciar sesión.
ERROR_REGISTER_ORGANIZATION==No se ha podido registrar la organización.
ERROR_SAVE_ORGANIZATION=No se ha podido modificar una organización.
ERROR_LOAD_ORGANIZATION=No se ha podido obtener los datos de la organización.
ERROR_LOAD_USER=No se ha podido obtener los datos del usuario.
ERROR_REMOVE_ORGANIZATION=No se ha podido eliminar la organización.
ERROR_REMOVE_USER=No se ha podido eliminar el usuario.
ERROR_LOAD_PROCESSES=No se ha podido cargar la lista de trámites.
ERROR_LOAD_PROCESS=No se ha podido cargar los datos del trámite.
ERROR_LOAD_PROCESS_NOTIFICATIONS==No se ha podido cargar las notificaciones pendientes del trámite.
ERROR_CREATE_PROCESS=No se pudo crear el trámite.
ERROR_SAVE_PROCESS=No se ha podido modificar el proceso.
ERROR_CREATE_TASK=No se ha podido crear la tarea.
ERROR_LOAD_TASK=No se ha podido obtener los doatos de la tarea.
ERROR_SAVE_TASK=No se ha podido modificar la tarea.
ERROR_REMOVE_TASK=No se ha podido eliminar la tarea.
ERROR_SEND_TASK=No se ha podido enviar la tarea.
ERROR_VALIDATE_TASK=No se ha podido validar la tarea.
ERROR_RESPONSE_TASK=No se ha podido crear la tarea de respuesta.
ERROR_LOAD_PROCEDURE=No se ha podido cargar los datos del procedimiento.
ERROR_REMOVE_PROCESS=No se ha podido eliminar el trámite.
ERROR_ARCHIVE_PROCESS=No se ha podido archivar el proceso.
ERROR_LOAD_FILE=No se ha podido cargar el fichero.
ERROR_ATTACH_FILE=No se ha podido adjuntar el fichero.
ERROR_REMOVE_FILE=No se ha podido eliminar el fichero.
ERROR_LOAD_FIELD_VALUES=No se ha podido cargar los valores del campo.
ERROR_REGISTER_NOT_ALLOWED=El registro no está permitido.
ERROR_NO_USERNAME=No se ha proporcionado un nombre de usuario.
ERROR_NO_FULLNAME=No se ha proporcionado un nombre completo de usuario.
ERROR_NO_NIF=No se ha proporcionado un número de identificación.
ERROR_NO_EMAIL=No se ha proporcionado una dirección de correo electrónico.
ERROR_USER_EXISTS=Ya existe un usuario registrado con nombre "%s".
ERROR_CHAR_NOT_VALID=Se han usados caracteres no válidos en el nombre "%s". Use solamente caracteres alfanuméricos.
ERROR_NAME_TOO_LONG=Nombre "%s" demasiado largo. Tamaño máximo %d caracteres.
ERROR_FULLNAME_TOO_LONG=Nombre completo "%s" demasiado largo. Tamaño máximo %d caracteres.
ERROR_NIF_TOO_LONG=Número de identificación "%s" demasiado largo. Tamaño máximo %d caracteres.
ERROR_EMAIL_TOO_LONG=Dirección de correo electrónico "%s" demasiado larga. Tamaño máximo %d caracteres.
ERROR_FIELD_VALIDATION=Los siguientes campos tienen errores que impiden enviar el formulario:
ERROR_USER_NOT_EXISTS=No hay registrado ningun usuario con el nombre "%s".
ERROR_WRONG_SIGNATURE=La firma o el certíficado digital no son correctos.
ERROR_ORGANIZATION_TOO_LONG=Nombre de organización "%s" demasiado largo. Tamaño máximo %d caracteres.
ERROR_USER_REGISTERED=Hay usuarios registrados en la organización.
ERROR_PROCESSES_STARTED=Hay trámites iniciados por el usuario.
ERROR_REQUIRED_FIELDS=Hay campos requiridos sin cumplimentar.
ERROR_SUBJECT_TOO_LONG=El asunto del trámite es demasiado largo. Tamaño máximo %d caracteres.

Fichero de palabras no indexadas

Fichero que contiene un listado de palabras que no se han de indexar en la base de datos, de forma que no se tienen en cuenta a la hora de realizar búsquedas en los trámites.

Configurar el CGI de interfaz SOAP

Para cada servidor de tramitación, se debe configurar el CGI de interfaz SOAP a través del fichero Tramitacion_WS_CGI.ini.

Un ejemplo de este fichero de configuración sería este:

SIJUEGO=10.13.13.240:10000
SINERGIA=10.13.13.240:10001

En este ejemplo vemos como hay dos servidores de tramitación disponibles en nuestra máquina, uno en el puerto 10000 y otro en el puerto 10001.

Configurar la aplicación web STE

Configurar el servidor web, Apache

Para configurar el servidor Apache, debemos modificar el archivo de configuración, que esta en la ruta C:\xampp\apache\conf con el nombre de httpd.conf.

Especificar la IP y el puerto de escucha:

Listen 12.34.56.78:80

Al final de dicho fichero debemos poner lo siguiente:

ScriptAlias "/URLALIAS" "PATHWEBSERVICE"
<Directory "PATHWEBSERVICE">
    AllowOverride None
    Options ExecCGI
    Order allow,deny
    Allow from all
</Directory>

URLALIAS: Es la URL que vamos a definir donde va a estar nuestro servicio web. Para este ejemplo usaremos tramitacion.
PATHWEBSERVICE: Es la ruta física donde está desplegado el servicio web. Para este ejemplo, esa ruta es la siguiente: C:/STE/tramitacion/.

Un ejemplo podría ser el siguiente:

ScriptAlias "/tramitacion" "C:/STE/tramitacion"
<Directory "C:/STE/tramitacion/">
    AllowOverride None
    Options ExecCGI
    Order allow,deny
    Allow from all
</Directory>

Para configurar la aplicación web del Sistema de Tramitación Electrónica, debemos modificar el fichero de configuración llamado ste.conf, que en este ejemplo se encuentra en WebContent\WEB-INF, dentro de la aplicación Web.

Al abrir el fichero ste.conf encontramos las siguiente etiquetas que debemos configurar. Ahora vamos a pasar a explicar detalladamente que son cada una de las etiquetas de este archivo de configuración del servicio web.

  • APP_DATA_DIR: Ruta donde se encuentra la carpeta de datos de la aplicación Web, en la que se encuentran las carpetas temporal, log y templates.
  • SERVLET_PATH: Ruta de consumo de los servlets dentro del servidor.
  • WS_SOAP_URL: URL donde se encuentra el servicio web del STE. Debe incluir un parámetro de GET llamado service, que haga referencia a alguna entrada en el fichero de configuración del CGI

Un ejemplo del fichero de configuración es:

APP_DATA_DIR = C:/Proyectos/ste/ste/WebContent/WEB-INF/app_data
SERVLET_PATH = /servlet
WS_SOAP_URL = http://10.13.13.240/tramitacion/Tramitacion_WS_CGI.exe/soap/IEgeWebService?service=SIJUEGO

Configurar el DNS

Debemos preparar nuestra maquina indicando, mediante un nombre de dominio, dónde está situado el Sistema de Tramitación Electrónica. En nuestro caso, el sistema está instalado en local, por lo que sólo debemos ir a la ruta C:\WINDOWS\system32\drivers\etc\ de nuestro equipo e introducir lo siguiente en el fichero hosts:

 127.0.0.1       steprueba


Arrancar el Sistema de Tramitación Electrónica

Para iniciar el Sistema de Tramitación Electrónica debemos iniciar una series de aplicaciones en un cierto orden. Las aplicaciones que debemos iniciar y cómo se listan a continuación.

  • XAMPP

Para iniciar el XAMPP, debemos ir a la ruta donde lo tenemos instalado, en este caso c:\xampp, y ejecutar el archivo con nombre xampp-control.exe.

  • Servidor de Apache

Una vez abierto el panel de control del XAMPP, debemos hacer clic en el botón start para el Apache.

  • Tomcat

Para iniciar el Tomcat, debemos ir a la ruta c:\xampp y ejecutar el archivo de procesos por lotes (.bat) con nombre tomcat_start.bat.

  • Servicio web del Sistema de Tramitación Electrónica

Para iniciar el servicio web, debemos ir a la ruta donde se instaló. Para este ejemplo, debemos ir a la carpeta tramitación, con ruta C:\STE\tramitacion, y ejecutar el archivo de procesos por lotes con nombre lanzar.bat. El archivo lanzar.bat contiene el comando de consola que hay que ejecutar para iniciar el servicio web. Este comando se compone de la ruta y el nombre del archivo Tramitacion_server.exe y el argumento que se le pasa al ejecutable, el cual es la ruta donde está el archivo de configuración del servicio web. Para este ejemplo el archivo lanzar.bat contiene lo siguiente.

"c:\STE\tramitacion\Tramitacion_server.exe" "c:\STE\tramitacion\webservice.ini"

Una vez arrancada todas las aplicaciones, sólo nos queda ir al navegador e introducir la URL que definimos en los ficheros de configuración para acceder al servicio de tramitación electrónica. En este ejemplo debemos introducir http://steprueba

¿Y ahora que?

Una vez completados todos estos pasos, ya disponemos en nuestra máquina del Sistema de Tramitación Electrónica. A continuación, ya podemos pasar a desarrollar en la plataforma egeasy para hacer que el centro del que se disponga haga uso del Sistema de Tramitación Electrónica. Le invito a seguir leyendo el siguiente artículo: Desarrollar con el STE