Cómo integrar el Sistema de Tramitación Electrónica en egeasy
Contenido
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 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>
Configurar el servicio web STE
Para configurar el servicio web del Sistema de Tramitación Electrónica, debemos modificar el fichero de configuración llamado webservice.ini, que en nuestro ejemplo está en la ruta C:\STE\tramitacion.
Al abrir el fichero webservice.ini 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.
- 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>
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.
Palabras no idexadas
Configurar la aplicación web STE
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 C:\xampp\tomcat\webapps\ste\WebContent\WEB-INF\classes\org\siani\ste\configuration.
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.
- SITE_DIR: Ruta donde se encuentra instalada la aplicación web.
- SITE_URL: URL donde se encuentra la aplicación web.
- LOG_DIR: Ruta donde se encuentran los logs de la aplicación web.
- TEMP_DIR: Ruta donde se encuentra los archivos subidos por los usuarios temporalmente.
- WS_SOAP_URL: URL donde se encuentra el servicio web del STE.
Un ejemplo del fichero de configuración es(Es necesario que usemos el nombre "steprueba", tal como aparece en el ejemplo, cuando configuremos nuestro fichero):
SITE_DIR = c:/xampp/tomcat/webapps/ste/WebContent SITE_URL = http://steprueba LOG_DIR = C:/xampp/tomcat/webapps/ste/logs TEMP_DIR = C:/xampp/tomcat/webapps/ste/temp WS_SOAP_URL = http://steprueba/tramitacion/tramitacion_ws_cgi.exe/soap/IEgeWebService
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
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);
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