universidad de guayaquil facultad de ciencias...
Post on 26-Sep-2018
248 Views
Preview:
TRANSCRIPT
UNIVERSIDAD DE GUAYAQUIL
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas
Computacionales
“WEB E-CRM”
TESIS DE GRADO
Previo a la Obtención del Titulo de:
INGENIERO EN SISTEMAS COMPUTACIONALES
Autor(es):
Franklin López Jaramillo
Rosa Monserrate Mendieta
Iván Obregón Castro
GUAYAQUIL – ECUADOR
Año: 2007
II
AGRADECIMIENTO
Damos gracias a Dios, por darnos la
fortaleza para sobrellevar los momentos
difíciles y por darnos esta gran
oportunidad en nuestras vidas, a
nuestros padres por brindarnos su
apoyo incondicional para seguir
adelante y culminar nuestros estudios
superiores, y a mis compañeros por
compartir sus conocimientos para
alcanzar nuestros objetivos.
Rosa, Iván y Franklin
III
DEDICATORIA
Esta tesis esta dedicada con mucho
afecto a nuestros padres que con su
esfuerzo y dedicación nos guiaron por el
buen camino de ser buenos
profesionales y supieron inculcarnos los
principios morales que hoy se reflejan
en nuestras vidas.
IV
TRIBUNAL DE GRADUACION
V
DECLARACION EXPRESA
“La autoría de la tesis de grado corresponde exclusivamente a los suscritos,
perteneciendo a la Universidad de Guayaquil los derechos que generen la
aplicación de la misma”
(Reglamento de Graduación de la Carrera de Ingeniería en Sistemas
Computacionales, Art. 26).
Franklin López Jaramillo Rosa Monserrate Mendieta
Iván Obregón Castro
VI
RESUMEN
En la actualidad existen empresas que dan el servicio de
televisión por cable las mismas que en sus sitios Web no se
refleja un sistema basado en CRM, para lo cual existe una
oportunidad para el desarrollo de aplicaciones enfocadas a este
mercado. Nuestra aplicación esta enfocada a fortalecer las
relaciones cliente-empresa, con la finalidad de que la aplicación
sea un medio para acaparar mercado y beneficio a la empresa
que la utilice.
VII
INDICE GENERAL
Pag.
AGRADECIMIENTO II
DEDICATORIA III
TRIBUNAL DE GRADUACIÓN IV
DECLARACIÓN EXPRESA V
RESUMEN VI
INDICE GENERAL VII
TOMO I INTRODUCCIÓN 1
CAPITULO 1
INTRODUCCIÓN 2
1.1 Antecedentes 3
1.2 Problemáticas 4
1.3 Solución de las Problemáticas 5
1.4 Definición del Proyecto 6
1.4.1 Web Site 6
1.4.1.1 Información Básica de la empresa 6
1.4.1.2 Servicios en línea 7
1.4.1.3 Características Adicionales 8
VIII
1.4.2 Administración del Sitio 9
1.4.2.1 Mantenimiento de Usuarios 9
1.4.2.2 Mantenimiento de Noticias 9
1.4.2.3 Mantenimiento de Soporte Técnico 9
1.4.2.4 Mantenimiento de Encuestas 10
1.4.2.5 Mantenimiento de Promociones 10
1.4.2.6 Mantenimiento de Ítems 10
1.5 Misión 11
1.6 Visión 12
1.7 Objetivos 13
1.7.1 Objetivos Generales 13
1.7.2 Objetivos Específicos 14
1.8 Alcances del Proyecto 15
1.9 Beneficios del Proyecto 23
1.10 Cronograma 25
1.11 Recursos Necesario para el Proyecto 26
1.12 Metodología del Proyecto 28
1.13 Modelo de Desarrollo 30
1.14 Estrategias 34
1.15 Arquitectura 34
IX
CAPITULO 2
ANÁLISIS 38
2.1 Levantamiento de Información 39
2.2 Análisis de Requerimientos 41
2.3 Diccionario de Datos 41
2.4 Diagrama Entidad Relación (DER) 42
2.4.1 Especificación de Objetos 42
2.5 Diagrama Flujo de Datos (DFD) 43
2.6 Diagramas de Casos de Uso 54
CAPITULO 3
DISEÑO 58
3.1 Diseño de Datos 59
3.2 Diseño de Interfaz Web 71
3.3 Diseño de Interfaz Administrativo 87
3.4 Diseño Arquitectónico 94
CAPITULO 4
DESARROLLO Y PRUEBAS DEL SISTEMA 95
4.1 Desarrollo del sistema 96
4.2 Creación de los componentes 96
4.3 Seguridades 97
X
4.3.1 Sistema Operativo 97
4.3.2 Base de Datos 98
4.3.3 Sistema 98
4.3.4 Registro de Logs 98
4.3.5 Humano 99
4.4 Pruebas del Sistema 99
4.4.1 Verificación y Validación 100
4.4.2 Pruebas de Unidad 100
4.4.3 Pruebas de Integración 102
4.4.4 Pruebas Alfa y Beta 103
4.4.5 Pruebas de Seguridad 104
4.4.6 Calidad del Sistema 105
CAPITULO 5
IMPLEMENTACION DEL SISTEMA 106
5.1 Elementos Físicos 107
5.2 Elementos Lógicos 1
5.3 Recurso Humano 1
5.4 Infraestructura 1
5.5 Capacitación a los Usuarios 1
5.6 Costos 1
XI
CAPITULO 6
RECOMENDACIONES Y CONCLUSIONES xxx
6.1 Hardware xxx
6.2 Software xxx
6.3 Cableado xxx
6.4 Puesta en Marcha xxx
6.5 Seguridades xxx
6.6 Conclusiones xxx
ANEXOS
BIBLIOGRAFÍA
XII
INDICE DE ILUSTRACIONES
Pag.
Ilustración 1.1 Cronograma de Actividades 25
Ilustración 1.2 Ciclo de Vida en Espiral 28
Ilustración 1.3 Modelo de Desarrollo 30
Ilustración 1.4 Arquitectura de Solución 35
Ilustración 2.1 Encuesta 40
Ilustración 2.2 Diagrama de Objetos 42
Ilustración 2.3 Registro de Clientes 43
Ilustración 2.4 Registro de posibles Clientes 44
Ilustración 2.5 Activación de Servicios 45
Ilustración 2.6 Estado de Cuenta 46
Ilustración 2.7 Encuesta 47
Ilustración 2.8 Paquetes o Planes 48
Ilustración 2.9 Promociones 49
Ilustración 2.10 Reclamos 50
Ilustración 2.11 Noticias 51
Ilustración 2.12 Inicio de Sesión 52
Ilustración 2.13 Proceso de Carga de Datos 53
Ilustración 2.14 Diagrama Registro Cliente 54
Ilustración 2.15 Diagrama Solicitud Servicios 55
XIII
Ilustración 2.16 Diagrama Estado de Cuenta 56
Ilustración 2.17 Diagrama Encuestas 57
Ilustración 2.18 Diagrama Reclamos 58
Ilustración 3.1 Pantalla principal Sitio Web 71
Ilustración 3.2 Mi Cuenta 73
Ilustración 3.3 Clientes Registrados 74
Ilustración 3.4 Consulta de Estado de Cuenta 75
Ilustración 3.5 Activación de Servicios 76
Ilustración 3.6 Publicación Promociones 77
Ilustración 3.7 Consulta de Reclamos 78
Ilustración 3.8 Publicación Programación 79
Ilustración 3.9 Publicación Soporte Técnico 80
Ilustración 3.10 Publicación de Noticias 81
Ilustración 3.11 Publicación Paquetes 82
Ilustración 3.12 Publicación Encuestas 83
Ilustración 3.13 Publicación Resultados encuestas 84
Ilustración 3.14 Posibles Clientes 85
Ilustración 3.15 Publicación de Políticas de Privacidad 86
Ilustración 3.16 Mantenimiento de Usuarios Registrados 87
Ilustración 3.17 Mantenimiento Promociones 88
Ilustración 3.18 Mantenimiento de Soporte Técnico 89
Ilustración 3.19 Mantenimiento de Noticias 90
XIV
Ilustración 3.20 Mantenimiento de ítems 91
Ilustración 3.21 Mantenimiento de Encuesta 92
Ilustración 3.22 Mantenimiento Proceso de Replicas 93
Ilustración 3.23 Diseño Arquitectónico 94
XV
INDICE DE TABLAS
Pag.
Tabla 2.1 Estructura de Diccionario de Datos 41
Tabla 3.1 Definición Registro de Clientes 60
Tabla 3.2 Definición Tipo de Cliente 61
Tabla 3.3 Definición de Ciudades 61
Tabla 3.4 Definición de Actividades 62
Tabla 3.5 Definición de Posible Cliente 62
Tabla 3.6 Definición de Encuesta 63
Tabla 3.7 Definición de Preguntas Encuesta 63
Tabla 3.8 Definición de Respuesta Encuesta 64
Tabla 3.9 Definición de Respuesta Cliente 64
Tabla 3.10 Definición de Noticias 65
Tabla 3.11 Definición de Inquietudes-Soporte 65
Tabla 3.12 Definición de Promociones 66
Tabla 3.13 Definición de Promoción ítems 66
Tabla 3.14 Definición Línea de Negocio 67
Tabla 3.15 Definición de Servicios 67
Tabla 3.16 Definición de ítems 68
Tabla 3.17 Definición Precio ítems 68
Tabla 3.18 Definición de Paquetes-Planes 69
XVI
Tabla 3.19 Definición de Categorías 69
Tabla 3.20 Definición de División de Categorías 70
Tabla 5.1 Costeo del Proyecto XX
TOMO I
INTRODUCCIÓN
En esta parte se mostrará todas y cada unas de las fases del desarrollo de
un sistema informático como son Requerimientos iniciales, Análisis, Diseño,
Desarrollo, Pruebas e Implementación y Recomendaciones aplicado para
este módulo Web e-CRM del proyecto general CRM.
CAPITULO I
1. INTRODUCCION
Las soluciones que ofrecemos en este proyecto le ayudan a
automatizar las funciones y tareas en la gestión de las relaciones con
los clientes, al mismo tiempo que se reducen costes y se hace mucho
más provechoso el valor de la interacción bi-direccional empresa -
cliente. Basadas en una exhaustiva base de datos, de la que se
alimentan los diferentes procesos, el papel fundamental de nuestras
soluciones es la automatización de los procesos de ventas, servicio,
soporte y marketing.
3
1.1 ANTECEDENTES.-
El proyecto CRM (Customer Relationship Management), fue una iniciativa
desarrollada por las autoridades responsables del seminario de graduación
de Ingeniería en Sistemas Computacionales de la Universidad de Guayaquil,
en el cual propusieron el desarrollo de un sistema en ambiente Windows en
base a tecnologías Java con Oracle.
El proyecto iniciado a finales del año 2006, articula el esfuerzo de los
estudiantes desarrolladores y de los maestros guías de la institución.
Este proyecto fue dividido en 12 módulos para su desarrollo mostrando en
esta documentación el Módulo Web E-CRM.
Como la tecnología avanza a pasos agigantados y el Internet está ocupando
un sitio muy importante en nuestra era, se realiza este proyecto para así
vincularse al mundo globalizado y llevar sus procesos hacia el Internet, como
el proyecto CRM su propósito primordial esta basado en la atención al cliente
lo que se desea es poder aumentar la fidelidad de los ellos, proporcionando
un servicio superior eficiente al del ya existe en nuestro país.
De esta manera se eligió herramientas de última generación que están
siendo constantemente actualizadas, una base de datos robusta capaz de
manejar cantidad de información.
4
1.2 PROBLEMÁTICA
El primer problema identificado, es la entrega del estado de cuenta que por
diversos motivos no llegue a su destinatario y esta manera se extravíe el
documento. (Ej.: No haya quien lo recepte el estado de cuenta, cambio de
ubicación y no notificó a la empresa, entre otros factores.)
Como segundo problema identificado son los reclamos y quejas que efectúa
el cliente usualmente se los recepta directamente en las oficinas, en el
montículo de servicio al cliente.
Como tercer problema identificado en nuestro proyecto son las promociones
y ofertas que se puedan realizar de manera manual, repartiendo volantes
entre otros medios.
Y por ultimo, para la activación de un servicio adicional del que ya posee en
su contrato se la realiza en las oficinas con una firma de autorización para
que ese valor del servicio elegido sea agregado a su factura mensual.
5
1.3 SOLUCIÓN DE LAS PROBLEMÁTICAS
Como alternativa de solución al problema antes mencionado, hemos
analizado que para la dar solución al primer caso, seria la implementación de
que el cliente pueda consultar o visualizar el Estado de cuenta a través de los
accesos remotos a la BD.
Para el segundo caso, nuestra solución planteada es la Implementación de
un Módulo en donde el cliente pueda tener un espacio para realizar sus
reclamos desde la comodidad de su hogar u oficina sin necesidad de
trasladarse a nuestras instalaciones, esta implementación tendrá toda la
seguridad necesaria para el mismo.
Para el tercer caso, es la creación de un Modulo donde se realice marketing
estratégicos de nuestras promociones y ofertas que se tengan para los
clientes suscritos y que puedan gozar de todos los beneficios que la empresa
brinda a sus clientes.
Por último nuestra alternativa de solución al problema planteado sobre la
activación de algún servicio adicional al del contrato, es que el cliente podrá
realizarlo desde la Web, en donde nuestra página solicitará información
personal del cliente para la activación del mismo por razones de seguridad.
6
1.4 DEFINICION DEL PROYECTO.-
Según el análisis realizado el proyecto Web e-CRM se lo ha segmentado en
2 partes principales que se detallan a continuación:
1.4.1. Web
1.4.1.1. Información básica de la empresa.
• En esta sección se detallará información de la empresa
tales como Quienes Somos, nuestra misión, visión y
objetivos que tiene la empresa.
• Contamos con un espacio, donde se muestra el horario
de atención, ubicación de nuestras oficinas, e
información de contacto para un futuro cliente.
• En este espacio se muestran noticias que la empresa
tiene para sus usuarios, mostrando información de todo
tipo y para todo público en general.
• En Programación el usuario podrá consultar los horarios
de la programación directamente desde las paginas
principales reconocidas a nivel mundial (Ej.: Cinecanal,
Fox, HBO, entre otras).
• Las promociones serán publicadas por un tiempo
determinado.
• Publicación de paquetes televisivos y sus precios.
7
• Existirá un espacio de Soporte Técnico en donde el
cliente podrá visualizar aquellas preguntas frecuentes
efectuadas a nuestro centro de atención al cliente sobre
el manejo, programación, o inquietudes con respecto a
sus equipos.
1.4.1.2. Servicios en línea.
• Registro de clientes.- A través de un formulario de
Registro on line. El cliente suscrito, podrá ingresar sus
datos necesarios para el acceso a los servicios del Sitio
Web.
• Mantenimiento de la cuenta de cliente.- Los usuarios
autorizados podrán conectarse al sitio Web con su
respectivo usuario y contraseña, en esta sección el
cliente puede cambiar su contraseña, y también se la
podemos recordar con su frase de recordatorio.
• Consulta de Estados de Cuenta.- En esta opción el
usuario realizará una consulta a la base CRM y esta
devolverá el archivo .pdf generado por el respectivo
módulo de Cliente interactivo, el cual el cliente podrá
consultar, o simplemente guardarlo en su ordenador.
8
• Activación de servicios adicionales.- El cliente podrá
activar servicios adicionales al de su contrato desde la
comodidad de su hogar u oficina incrementándose en su
factura el valor adicional.
1.4.1.3. Características adicionales.
• Ingreso de Reclamos.- Los usuarios tendrán un espacio
para realizar sus reclamos o quejas que tengan sobre
nuestro servicio este le permitirá también conocer el
estado de sus reclamos anteriormente efectuados.
• Buscador interno.- Se implementará un buscador interno
dentro de lo que es Soporte Técnico, también llamadas
preguntas frecuentes.
• Sesión de usuarios.- Por razones de seguridad, el abrir la
sesión de un usuario este permitirá acceder a todos los
servicios en línea, si el usuario deja de manipular el Web
por un tiempo de 5 minutos, su sesión caducará y tendrá
que volver a ingresar.
• Encuestas a los usuarios sobre los servicios.- habrán
diversos tipos de encuestas a nivel del CRM, pero en el
Web se publicarán solo las objetivas.
9
• Ingreso de Sugerencias.- El usuario tendrá un espacio
donde podrá ingresar una sugerencia de cualquier tipo.
1.4.2. Administración del Sitio
1.4.2.1. Mantenimiento de Usuarios.
• Este mantenimiento ofrece la posibilidad de que el
administrador del Sitio Web pueda consultar, eliminar y
dar de baja a los usuarios que después de cierto tiempo
no hayan tenido ningún acceso al sitio.
1.4.2.2. Mantenimiento de Noticias.
• En el mantenimiento de las noticias que serán publicadas
en el Web el administrador del sitio podrá ingresar,
modificar, eliminar y dar de baja a las noticias con su
respectiva imagen, cuando ya cumplieron con su fecha
final de publicación.
1.4.2.3. Mantenimiento de Soporte Técnico.
Este mantenimiento ofrece la posibilidad de que el
administrador del Sitio Web pueda ingresar, modificar,
consultar, eliminar y dar de baja a preguntas y respuestas.
10
1.4.2.4. Mantenimiento de Encuestas.
• Este mantenimiento esta dado por tablas replicas en el
Web desde el módulo de marketing operacional el
administrador podrá consultar, eliminar y dar de baja a
aquellas encuestas que llegaron a su fecha máxima de
publicación.
1.4.2.5. Mantenimiento de Promociones.
• Este mantenimiento esta dado por tablas replicas en el
Web desde el módulo de marketing operacional el
administrador podrá consultar, eliminar y dar de baja
aquellas promociones que llegaron a su fecha máxima de
publicación.
1.4.2.6. Mantenimiento de Ítems.
• Este mantenimiento esta dado por tablas replicas en el
Web desde el módulo de marketing operacional el
administrador podrá consultar, eliminar y dar de baja en
el Web.
11
1.5 MISION.
Nuestra misión se ha dividido en dos fases a nivel de sistema y a nivel
empresarial quedando así comprometidos con los siguientes puntos:
Como empresa:
• Desarrollar al máximo nuestra capacidad tecnológica para competir
favorablemente con las mejores empresas de referencia dentro y
fuera del país.
• Maximizar el pleno desarrollo profesional y personal de nuestro
recurso humano.
• Brindar con prontitud y excelencia los servicios a todos nuestros
clientes.
Como sistema:
• La misión más importante es cumplir con las expectativas de los
usuarios, y brindar una solución CRM de calidad para que ésta sea
una herramienta más, que aporte al desarrollo y por ende a la
productividad del negocio de televisión pagada.
• Nuestra aplicación empresarial CRM integrada se realiza mediante el
uso de la tecnología de Internet que implica una serie de actividades
relacionadas al desarrollo y retención del cliente a través del aumento
de su lealtad y satisfacción con los productos y servicios que la
empresa provee, lo que conlleva a un incremento de las ventas.
12
1.6 VISION
Nuestra visión refleja el tiempo empleado en el desarrollo del sistema CRM y
se ha dividido en dos fases a nivel de sistema y a nivel empresarial.
Como empresa:
• Ser la mejor empresa que ofrece televisión por cable en nuestro país,
líder en tecnología, calidad y servicios de excelencia; satisfaciendo la
demanda y necesidades del mercado.
Como sistema:
• Ser la aplicación que interactué con los clientes para fortalecer las
relaciones con la empresa brindando soluciones con tecnología de
punta beneficiándose nuestros clientes y obteniendo un mejor servicio
que satisfagan sus necesidades.
13
1.7 OBJETIVOS
1.7.1 OBJETIVO GENERAL.
Desarrollar un módulo de servicios Web e-CRM con la capacidad de
integrarse a los demás módulos.
Nuestra estrategia de negocios ECRM a nivel Web, tiene como objetivo
primordial satisfacer las necesidades de nuestros clientes, estableciendo
una estrecha relación entre cliente-empresa, para así maximizar la
fidelidad de ellos, y que se vuelvan menos vulnerables a la competencia.
Por medio del sitio Web darnos a conocer, Quienes somos, que
servicios brindamos, nuestra misión como empresa, para así cumplir con
las expectativas del curso.
14
1.7.2 OBJETIVOS ESPECIFICOS.
Establecer un módulo en el cual podamos satisfacer todas las
necesidades de los clientes.
Establecer una estrecha relación cliente-empresa para así mantener la
fidelidad de nuestros clientes potenciales hacia nosotros.
Proporcionar al sistema rapidez en la carga y respuesta de la
información, para que el cliente quede satisfecho con el servicio y
asegurar la fiabilidad de ellos.
Captar la mayor cantidad de clientes proporcionando un buen servicio
Web, para que los clientes sean menos vulnerables a la competencia.
Proporcionar seguridad en la información que ingresa a nuestra base de
datos vía Internet.
15
1.8 ALCANCES
1.8.1 GENERAL.
▪ Establecer una comunicación eficiente con los demás módulos,
buscando la mejor vía de acceso para que el sistema tenga un tiempo
de respuesta más rápido.
▪ Mostrar un espacio donde indica la línea del negocio, es decir misión,
visión, objetivos, logros y quienes son los que conforman la empresa
para de esta manera dar a conocer la forma como ha sido
estructurada y también la participación de la empresa en el mercado.
▪ Se agregarán palabras claves para que los motores de búsqueda nos
puedan localizar en los primeros lugares y de una manera mas rápida,
esto ayudará para darnos a conocer mejor a los clientes y visiten
nuestra página.
o Agregar los Metatags en la cabecera de la página principal.
16
1.8.2 USUARIOS
▪ Mantener un dialogo constante y personalizado con los clientes de
todas las opciones del sitio, para proporcionar una comunicación
mas amena.
▪ Se ha establecido dos tipos de usuarios:
Visitantes (Posibles clientes)
Registrados (Nuestros Clientes)
o Visitantes: Son aquellos usuarios que acceden a la página sin
ser clientes nuestros, donde se establecerá un espacio en el
que puedan ingresar sus datos personales e información que
se necesita para contactarlos y posteriormente otorgar una
visita.
o Registrados: Son aquellos clientes que son suscritos y ya
gozan del servicio que se provee estos mantienen su registro
en la base de datos CRM principal, necesariamente deberán
registrarse vía Internet para acceder a los servicios en línea.
17
Para su registro el cliente deberá ingresar su información personal
tales como nombres, número de identificación, sexo, sector,
dirección, números de teléfono, e-mail, usuario, clave de registro,
gustos y preferencias. Los datos del registro podrán variar y
dependerá de como sea estructurado el ingreso en la aplicación
operacional del CRM.
1.8.3 ADMINISTRACION
▪ El proyecto tendrá un módulo independiente para la administración
del sitio.
Está contemplado lo siguiente:
o Asignar una clave de acceso al administrador.
o Accesos a la administración vía FTP.
▪ El proyecto poseerá una herramienta para la gestión administrativa
para dar altas y las bajas de los usuarios estableciendo derechos
según crea conveniente para que cada uno en el área que el
corresponda.
Está contemplado lo siguiente:
18
o Mantenimiento de Usuarios
o Mantenimiento de Perfiles.
o Mantenimiento de las Opciones del Sitio.
o Mantenimiento de opciones por perfil.
NOTA: Esta opción está contemplada por el módulo de Administración
e integración del CRM.
▪ Para seguridad y protección de la información del cliente, el sitio
Web establecerá parámetros de accesos a sus afiliados como por
ejemplo el usuario y una contraseña de registro que ingresó en el
sistema. Si desea activar servicios o consultas de sus movimientos
le solicitará el código de contrato o decodificador dependiendo del
tipo de servicio que brinde la empresa. Dicha información se
verificará en la base de datos principal siendo previamente
ingresados por los módulos operacionales.
▪ El código del contrato o decodificador viajará encriptado para que el
acceso a dicha información sea garantizada, y no sea manipulada
por ajenos. El método de encriptación será establecido por los
módulos de Administración e integración del CRM.
19
▪ Para prestar una buena administración del sitio, se implementara
una opción para cargar al sitio datos, imágenes y videos de una
forma fácil y ahorrando tiempo.
Está contemplado lo siguiente:
o Carga de archivos multimedia e imágenes.
1.8.4 SERVICIOS
▪ Para mejorar el servicio los clientes de la empresa podrán consultar
e imprimir todos sus movimientos de cuenta vía Internet.
Está contemplado lo siguiente:
o Reporte Estados de Cuentas
▪ Solicitud para activación de servicios adicionales vía Internet, en
este espacio se ha pensado bastante en el cliente ya que se le
puede otorgar un servicio adicional al que posee (Ej.: pague por ver,
Descargar Ringtons a celulares). Esta solicitud será enviada al
módulo de ventas operacionales para que se dé trámite a la
activación de este servicio.
20
▪ Mostrar una lista de eventos de la empresa en este punto el cliente
tendrá la facilidad de enterarse de noticias y novedades de la
compañía así como también se vinculará a las paginas principales
de los canales televisivos y visualizar los horarios de alguna
película.
1.8.5 SOPORTE TECNICO
▪ Nuestro Soporte técnico vía Internet será de una manera en que el
cliente introducirá palabras claves para su búsqueda interna y como
resultado mostraremos varias alternativas de solución o respuestas
que se relaciones a sus palabras claves y que el cliente escogerá la
que más se acople a su inquietud.
Está contemplado lo siguiente:
o Preguntas Frecuentes.
o Creación de base de conocimientos
o Asignación de palabras claves
21
1.8.6 PUBLICIDAD
▪ Permitir y dar a conocer anuncios y noticias que la empresa tiene
para sus clientes.
▪ El sitio mostrará de una manera amigable ofertas, descuentos en
los servicios que la empresa posee, para ofrecer algo más dinámico
y una buena imagen a los clientes y las personas que visiten el sitio
Web.
▪ Se mostrará información tales como paquetes, combos y demás
promociones que se haya establecido en la empresa para sus
clientes.
1.8.7 AUDITORIA
▪ Se registrará todos los sucesos internos del sitio Web generando un
archivo LOG el cual albergará información de todas las actividades
que se generen, así como también errores internos que ocurran,
esto nos dará un historial detallado de lo que ocurre en nuestros
sitio Web.
22
NOTA: Esta opción está contemplada por el módulo de
Administración e integración del CRM.
1.8.8 ADICIONAL
▪ El cliente tendrán un espacio para presentar sus quejas,
sugerencias o recomendaciones que tenga del servicio que provee
la empresa, interactuando con el módulo de Servicio al cliente.
Está contemplado lo siguiente:
o Ingreso de quejas
o Ingreso de recomendaciones / sugerencias.
▪ Realizar seguimientos a los clientes, para conocer su satisfacción
del servicio que ofrecemos mediante encuestas y test publicados en
el sitio Web y así evaluar el éxito de la empresa.
Está contemplado lo siguiente:
o Publicación de Test /Encuestas.
23
▪ Para seguridad e integridad de la información se establecerá un
tiempo límite de conexión desde el último evento que realice el
usuario.
1.8.9 MANUALES
▪ Realización de Manual Técnico
▪ Realización de Manual de Usuario.
1.9 BENEFICIOS.
Entre los beneficios más importantes que tenemos en el módulo Web e-
CRM, tanto a nivel empresarial como desde el punto de vista de los clientes a
continuación se detallan los siguientes:
• Información disponible en tiempo real del cliente
• Al ofrecer todos los servicios disponibles en el Internet favorece a la
reducción de pérdidas de clientes potenciales.
• Información competitiva.
• Reduce costes de marketing, al poder desarrollar campañas efectivas
dirigidas a una audiencia conocida vía Internet.
• Permite conocer mejor las necesidades de los clientes y ofrecerle
soluciones personalizadas.
24
• Maximizar la eficacia de sus iniciativas comerciales gracias a la
información que la empresa tiene de su cliente.
• Permite ganar “market share”. Esta herramienta facilita la conquista de
nuevas porciones de mercado y la fidelización de clientes existentes.
• Mejora la eficacia de las ventas e incrementa estas (incrementos en
adquisiciones de nuevos clientes y en ventas ó consumos de clientes
existentes).
• Reduce costes de gestión de contactos con el cliente ya que la
información se encuentra disponible en el Web. (ejemplo, reducción
del número de llamadas telefónicas requeridas).
• Maximiza los márgenes mediante un empleo eficaz de los recursos
disponibles.
• Mayor satisfacción del cliente, al ofrecerle un mejor servicio.
• Conseguir aumentar y fidelizar un mayor numero de clientes gracias a
la reorganización e informatización de los procesos de negocio
envueltos en el ciclo de vida de las relaciones con los clientes (ventas,
marketing, servicios de atención al cliente.
• Mejorar y extender las relaciones con el cliente, generando nuevas
oportunidades de negocio.
• Predicción sobre el futuro comportamiento del cliente, creando
anticipadamente, productos y servicios acorde con sus necesidades.
25
1.10 CRONOGRAMA.-
En este grafico se muestra el cronograma de trabajo que se requiere en el
desarrollo de la solución Web e-CRM que se le dará a la empresa de
Televisión pagada.
Si desea ver el cronograma de trabajo más detallado lo puede hacer en el
Anexo # 1.
Ilustración 1.1
Cronograma de actividades
26
1.11 RECURSOS NECESARIO PARA EL PROYECTO.
Después de un análisis realizado, concluimos en utilizar las siguientes
herramientas para el desarrollo de la solución Web e-CRM.
Hardware
Tecnológico
• 2 Computadores con las siguientes características:
o Pentium IV 3.0 GHz.
o 1Gb Memoria - 80GB Hard Disk
• Acceso a Internet
o Enlace de 128Kbps
o Modem y switch
Software
1. Para el Front End utilizaremos java
Lenguajes de Programación Utilizados:
• PL/SQL
• Java Script/Html
• JSP.
• Java J2EE
2. Para el Back End o Base de Datos: Oracle licenciado 9i
3. Para la Visualización de Reportes:
• Adobe Acrobat Reader 5.0 en adelante
27
4. Animaciones e imágenes.
• Macromedia Flash 8
• Macromedia Fireworks 8.
5. Servidor Web Apache Tomcat 5.0
6. Otros
• Erwin (Modelamiento de datos)
• Microsoft Visio.
7. Sistema Operativo: Windows 2003 Server
Financiero
• Compra de un Dominio para el Sitio Web
• Servicio de Internet
Humano
• Iván Obregón
• Rosa Monserrate
• Franklin López
28
1.12 METODOLOGIA
• Análisis y Diseño Orientado a Objetos
Para el desarrollo del proyecto Web e-CRM se ha seguido un ciclo
de vida en espiral, por tanto el diseño ha sido refinado en cada
iteración de este.
Ilustración 1.2
Ciclo de Vida en Espiral
CICLO DE VIDA EN ESPIRAL
ANALISIS
ESPECIFICACION DE REQUISITOS
INTEGRACION
IMPLEMENTACION Y PRUEBAS
DISEÑO
29
Se Eligio el modelo de espiral porque nos da la facilidad de prevenir riesgos
en el desarrollo y no encarecer el proyecto en el futuro, ya que el análisis de
riesgos se hace de forma explicita y clara. También podemos evaluar cada
fase del desarrollo y poder permitir cambio de objetivos
Las herramientas de programación que se van a usar para crear la aplicación
son: JDeveloper para las páginas WEB que utiliza, JSP Y JAVA, Java Studio
creador para la administración del sitio esto permite elaborar un conjunto de
componentes necesarios para su funcionamiento y con Oracle 9i para la
bases de datos a las que accede.
30
1.13 MODELO DE DESARROLLO
Un modelo de desarrollo, podría tener las características que se grafican a
continuación:
Ilustración 1.3
Modelo de Desarrollo
Análisis Diseño Construcción Implantación
Definir caso del negocio
Inicio del proyecto
Definir procesos del negocio
Definir plan de trabajo
Cambios en la empresa
Entrega de implementación medidas de rendimiento formación
Configuración prototipo intermedio
Configuración prueba
Sesiones de trabajo
Diseño Desarrollo
Seguridad y control
Infraestructura e interfase
Infraestructura de soporte
Prueba del sistema e integración
1 2 3
Inducción a los usuarios finales
31
Etapa I: Análisis
En esta primera etapa, se define el alcance del proyecto y se determinan los
requerimientos funcionales y técnicos del sistema.
Las actividades a realizar son:
• Determinación del ámbito y el alcance del proyecto.
• Definición de los servicios y los procesos operativos asociados.
• Definición del modelo de procesos y datos.
• Definición de las interfaces con el resto de sistemas.
• Identificación de la plataforma tecnológica.
• Dimensionamiento del sistema.
• Definición de la metodología del proyecto.
• Identificación del producto eCRM adecuado a requerimientos
funcionales y técnicos.
• Definición de la estrategia de implantación.
32
Etapa II: Diseño de la estrategia
Definidos los requisitos se aborda el Diseño de la Solución en el que se
deberían estudiar los siguientes aspectos:
• Diseño de los procesos operativos para cada canal.
• Diseño de los procesos de intercambio de información entre canales.
• Diseño de los procesos de intercambio de información con otras áreas
y sistemas.
• Diseño de los procesos de carga de datos.
• Diseño de la plataforma tecnológica y arquitectura de comunicaciones.
• Diseño del Plan de Comunicación.
Etapa III: Construcción del modelo.
Se tomara como parametrización de una solución existente en el mercado,
debido a que, en este caso, el tiempo de implantación es mucho más
reducido, se necesita de un menor esfuerzo de desarrollo, su puesta en
producción es más rápida y se adapta igualmente a la operativa del negocio.
33
Etapa IV: Implantación del modelo
Por último, durante la fase de Implantación, se considera la realización de la
parametrización y desarrollo del sistema y de las acciones encaminadas a la
implementación de:
• La Reingeniería de procesos diseñada sobre la base de las
soluciones tecnológicas implantadas.
• La orientación al cliente.
• La vocación de servicio.
• El Plan de Comunicación, en el que se informa a los usuarios de las
ventajas que aporta la nueva filosofía y estrategia de negocio que se
va a implementar, facilitando la aceptación del sistema a todos los
niveles organizativos.
• Incorporación progresiva de funcionalidad y canales adicionales en
función de las nuevas necesidades que surjan dentro del ámbito
empresarial.
• Establecimiento de un entorno para pruebas y mantenimiento del
sistema.
34
1.14 ESTRATEGIAS
Personalizar la relación entre la empresa y los clientes, lo que
incrementa la satisfacción del cliente y permite establecer relaciones
más duraderas.
Ofrecer a la empresa soluciones globales que integren la tecnología y
los procesos necesarios para transformar los diferentes programas de
servicio en un objetivo único centrado en el cliente.
Empleo de tecnologías para ampliar las vías en las que se puede
tener contacto con el cliente.
Integrar la información sobre los clientes que posee cada
departamento en una única base de conocimientos centralizada. Esto
permite que cualquier trabajador que esté autorizado acceda a la
información global de cada cliente, desde cualquier momento y lugar.
1.15 ARQUITECTURA
El diseño arquitectónico debe proporcionar una mejor orientación con
respecto a la manera en la que se comportará el la aplicación una vez
construido. “Su objetivo primario es desarrollar una estructura de
programa modular y representar las relaciones de control entre los
35
módulos. Además, el diseño arquitectónico combina la estructura del
programa y las estructuras de datos
ARQUITECTURA DE LA SOLUCION
iNTERFAZ
BACK END
Ilustración 1.4
Arquitectura de Solución
FRONT END
INTERFAZ DE LA APLICACION
MODULO DE ADMINISTRACION
MODULO WEB ECRM
Conexiones y Seguridades
Manejador de Conexiones
Autentificaciones de usuarios y seguridades
Análisis de información de datos
BASE DE DATOS
WEB ECRM
Proceso de extracción, conversión y carga de información
BASE DE DATOS TRANSACCIONAL
INTERFAZ CON OTRAS APLICACIONES
Front end
Back end
36
En este esquema se muestra los diferentes módulos que van a componer la
aplicación Web e-CRM, en ella pueden verse los componentes que tendrá el
mismo. A nivel macro estos componentes son:
Bases de datos transaccionales: Se asume la existencia previa de
una Base de Datos transaccional que contienen, por ejemplo, la
información de ventas y de clientes de la organización.
Programas de Extracción, conversión y carga de información:
Dadas las características del aplicación estos programas serán
básicamente un conjunto de procedimientos almacenados que se
encargarán de formatear la información, que existe previamente, para
poder cargarla sin mayor problema hacia la estructura de datos
definida expresamente para la aplicación Web e-CRM.
Base de Datos eCRM: Es necesario establecer una estructura de
datos propia para ser usada por la aplicación, de tal modo que las
consultas y operaciones de los usuarios sean realizadas directamente
sobre estas estructuras.
Programas de Análisis y Minería de Datos: Fundamentalmente se
recurrirá al empleo de procedimientos almacenados que permitirán
realizar el análisis y minería de datos de la información presente en la
base de datos del eCRM, y serán los encargados de transmitir estos
resultados hacia el Front End de la aplicación.
37
Manejador de Conexiones a la BDD: Se construirá una aplicación
que se usará para manejar las conexiones a la base de datos
disparadas desde el Front End, en cierta forma establece un primer
nivel de seguridad puesto que ninguno de los componentes de la
aplicación podrá conectarse a la base sin hacer uso de la conexión.
Autentificado de Usuarios y Seguridades: Se definirá una
estructura jerárquica de perfiles de usuario para poder establecer el
menú que debe tener cada usuario una vez que se logonee al sistema.
Adicionalmente se empleará un método para encriptar y validar la
información de contraseñas y logines de los usuarios de la aplicación.
Front End Empresarial: Para presentar la información a los usuarios
la aplicación se construirá un Web Site de tal modo que será posible
acceder a la aplicación utilizando un navegador de Internet.
CAPITULO 2
2. ANALISIS
En este análisis se concluyó que existe la necesidad de agilitar los
procesos que se realizan mediante el sitio Web, para así tratar de
retener a los clientes potenciales, ofrecerles un buen servicio, seguridad
e integridad en la información.
La alternativa de solución es de un proyecto conservador. El cual
propone cambios en la situación actual.
39
2.1 LEVANTAMIENTO DE INFORMACIÓN
Para el levantamiento de la información para el análisis se utilizaron las
siguientes técnicas de recopilación:
Entrevista:
Se realizó la reunión con los directivos de la empresa de televisión pagada
“Cable Systems” para poder obtener las necesidades de prestar un mejor
servicio a sus clientes. Y a partir de dicha recopilación de los datos, poder
elaborar una solución de Web e-CRM que vaya de acuerdo a las
necesidades de la organización.
Para lo cual se realizaron una serie de preguntas que mostramos a
continuación:
Si desea consultar la encuesta a detalle favor remitirse al Anexo # 2
40
Ilustración 2.1
Encuesta
41
2.2 ANÁLISIS DE REQUERIMIENTOS
Mostramos a continuación el resultado de los requerimientos tomados de las
necesidades del proveedor de televisión pagada “Cable Systems”.
• Darnos a conocer al mercado ofreciendo nuestra línea de servicios.
• Presentar promociones y ofertas de temporada.
• Solicitar la activación del servicio en línea.
• Consulta/Impresión del movimiento de cuenta del abonado.
• Consulta/Impresión nuestra cartelera de programación.
• Brindar una lista posible soluciones a las inquietudes de nuestros
abonados.
2.3 Diccionario de Datos
TABLA: NOMBRE DEL OBJETO
Campo Descripción
Campo Descripción del campo
Donde se Usa: Módulo o Proceso donde se la utiliza
Como se Usa: Bajo que parámetros se utiliza
Tabla # 2.1
Diccionario de Datos
Para visualizar el detalle del diccionario de datos, remítase al Anexo # 3.
42
2.4 DIAGRAMA ENTIDAD RELACIÓN (DER)
2.4.1 Especificación de Objetos
Como podemos notar aparecen las entidades necesarias para el Sistema
con sus respectivas relaciones, para mayor detalle remítase al Anexo # 4
para Diagrama de E/R Análisis.
Ilustración 2.2
Diagrama Entidad - Relación
43
2.5 DIAGRAMA DE FLUJO DE DATOS
2.5.1 Especificación de Procesos
• Registro de Clientes
En este proceso realizará el registro de Clientes para que sea
utilizado al momento que realice alguna consulta del servicio o
revisión del movimiento de su cuenta.
Ilustración 2.3
Flujo de Datos Registro de Cliente
44
• Ingreso de posibles Clientes
En este proceso realizará el ingreso de un posible Cliente para que
este pueda solicitar una visita y así adquirir algún servicio que sea
de su agrado.
Ilustración 2.4
Flujo de Datos de Posible Cliente
45
• Activación de Servicio
En este proceso realizará el ingreso solicitud para adquirir o activar
algún servicio que el cliente desee contratar.
Ilustración 2.5
Flujo de Datos Activar Servicios
46
• Estado de Cuenta
En este proceso nos mostrará un archivo .pdf del estado de cuenta
del cliente con los valores a pagar por los servicios contratados.
Ilustración 2.6
Flujo de Datos Estado de Cuenta
47
• Encuestas
En este proceso publicara las encuestas para que de esta forma las
personas que visiten el sitio puedan responderlas.
Ilustración 2.7
Flujo de Datos de Encuestas
48
• Paquetes/Planes
En este proceso se publicarán todos los paquetes de los servicios
para que el usuario conozca y elija cual se acomoda a sus
necesidades.
Listar Paquetes
disponibles
Presentación de
Paquetes
Paquetes
Información de Planes
Paquetes
Ilustración 2.8
Flujo de Datos Paquetes/Planes
49
• Promociones
En este proceso se publicarán todas las promociones que existen
para el cliente y que estén disponibles por tiempo limitado.
Cliente remoto
Listar Promociones
disponibles
Presentación de
Promociones
Promociones
Información de la Promoción
Promociones
Ilustración 2.9
Flujo de Datos Promociones
50
• Reclamos En este proceso se publicarán todos los reclamos que
el cliente quiera efectuar mediante el sitio Web, y consultar como
van los tramites o el estado de su reclamo.
Cliente remoto
Registrar
información de
Reclamo
Presentación del
Estado de sus
Reclamos
Información de Reclamo
Reclamos
Listar Estados de
sus Reclamos
Información de Reclamos
Reclamos
Reclamos
Ilustración 2.10
Flujo de Datos Reclamos
51
• Noticias
Este proceso publicarán las noticias de diferente índole que puedan
ser de interés para el usuario, sea este cliente o visitante.
Listar Noticias
disponibles
Presentación de
Noticias
Noticias
Información de Noticias
Noticias
Ilustración 2.11
Flujo de Datos Promociones
52
• Login / Inicio de Sesión
Este proceso permite iniciar y cerrar sesión al cliente para obtener
los beneficios mediante su acceso a los servicios disponibles.
Leer entrada de
datos del Cliente
Entrada datos del
Cliente remoto
Autenticación de los
datos del Cliente
User - Password
Carga de la
información
Información del
Cliente
Procesa criterios de
selección
Criterio de
selección
Datos seleccionado
Registro de
Cliente
Ilustración 2.12
Flujo de Datos Promociones
53
• Proceso de Carga Datos
En este proceso realiza la extracción y carga de los datos desde
Base de Datos transaccional hasta las tablas de la Base de Datos
WEB, para los efectos de cambios que hubiesen ocurrido a la
información.
Ilustración 2.13
Flujo de Datos Replicas
54
2.6 DIAGRAMA DE CASOS DE USO
• Registro de Clientes
En este proceso los usuarios del sitio podrá registrarse con sus datos
principales para que los vendedores puedan contactarse con el para
promocionarle información de los servicios que cuenta la empresa.
Ilustración 2.14
Caso de Uso Registro Cliente
55
• Solicitud de Servicios
En este proceso el cliente podrá solicitar la activación de uno o más
servicios, de este modo los datos son ingresados para que los
supervisores de venta puedan dar trámite a la misma.
Ilustración 2.15
Caso de Uso Solicitud Servicios
56
• Estado de Cuenta
En este proceso el cliente podrá consultar sus estados de cuenta que
tenga que cancelar por los servicios que consuma.
Ilustración 2.16
Caso de Uso Estado de Cuenta
57
• Encuestas
En este proceso se realiza la encuesta por parte del cliente y por otra
parte las personas que analizan los resultados para tomar decisiones de
efecto para la empresa.
Ilustración 2.17
Caso de Uso Encuestas
58
• Reclamos
En este proceso se realiza el reclamo por parte del cliente y por otra parte
las personas de servicio al cliente lo analizan para tomar decisiones de
efecto para la empresa.
Servicio al Cliente
Consulta de
Reclamos
disponibles
Reclamos
Estado de sus
Reclamos
Registro del
reclamo solicitado
Ilustración 2.18
Caso de Uso Reclamos
CAPITULO 3
3. DISEÑO
Este capítulo se mostrará todo lo concerniente con el diseño de la
Aplicación para el módulo CRM Orientada a la Web y la parte
administrativa del sitio.
En este capitulo se presenta el diseño de las tablas y pantallas
utilizadas en el desarrollo del Sistema, las pantallas fueron creadas
con el fin de brindar a los usuarios mejor facilidad en el manejo en el
sitio Web.
60
3.1 DISEÑO DE DATOS
3.1.1. Registro Posible Cliente
En esta tabla están definidos los campos que van a ser utilizados para
aquellos futuros clientes que desean o están interesados en adquirir
nuestros servicios y requieran de alguna visita por parte de nuestros
asesores.
Table Name CRM_WEB_CLIENTES
Table Column Name Table Column
Datatype Table Column
Null Option Table Column
Is PK Table Column
Is FK
WCL_ID_CLIENTE NUMBER(10) NOT NULL Yes No
WCL_ID_TIPO_CLIENTE NUMBER(4) NOT NULL No Yes
WCL_ID_ACTIVIDAD NUMBER(4) NOT NULL No Yes
WCL_ID_CIUDAD NUMBER(6) NOT NULL No Yes
WCL_NOMBRES VARCHAR2(30) NOT NULL No No
WCL_APELLIDOS VARCHAR2(30) NOT NULL No No
WCL_RUC_CI VARCHAR2(13) NOT NULL No No
WCL_CONTACTO VARCHAR2(60) NULL No No
WCL_SEXO CHAR(1) NOT NULL No No
WCL_CELULAR VARCHAR2(10) NULL No No
WCL_CONVENCIONAL VARCHAR2(20) NULL No No
WCL_DIRECCION VARCHAR2(100) NOT NULL No No
WCL_E_MAIL VARCHAR2(30) NULL No No
WCL_ESTADO CHAR(1) NOT NULL No No
WCL_FECHA_INGRESO DATE NOT NULL No No
WCL_OBSERVACION VARCHAR2(100) NULL No No
Tabla 3.1
Registro de Clientes
61
3.1.2. Registro de Tipo de Cliente
Esta tabla se describe el tipo de cliente sea esta una persona natural o
persona jurídica.
Table Name CRM_WEB_TIPO_CLIENTE
Table Column Name Table Column
Datatype Table Column
Null Option Table Column
Is PK Table Column
Is FK
WTC_ID_TIPO_CLIENTE NUMBER(4) NOT NULL Yes No
WTC_NOMBRE VARCHAR2(60) NOT NULL No No
WTC_DESCRIPCION VARCHAR2(60) NULL No No
WTC_PRIORIDAD NUMBER(5) NOT NULL No No
WTC_ESTADO CHAR(1) NOT NULL No No
Tabla 3.2
Registro de Tipo de Clientes
3.1.3. Registro de Ciudades
En esta tabla estarán alojadas todas las ciudades del país de donde
puedan requerir los servicios nuestros clientes, esta tabla es replica de
Base de datos transaccional CRM.
Table Name: CRM_WEB_CIUDADES
Table Column Name Table Column
Datatype
Table Column Null
Option
Table Column Is
PK
Table Column Is
FK
WCI_ID_CIUDAD NUMBER(6) NOT NULL Yes
WCI_NOMBRE VARCHAR2(60) No
WCI_ESTADO CHAR(1)
Tabla 3.3
Registro de Ciudades
62
3.1.4. Registro de Actividades
Esta tabla describe la actividad a la que se dedica el cliente, esta tabla
es replica de Base de datos transaccional CRM.
Table Name: CRM_WEB_ACTIVIDADES
Table Column Name Table Column
Datatype
Table Column Null
Option
Table Column Is
PK
Table Column Is
FK
WAC_ID_ACTIVIDAD NUMBER(4) NOT NULL Yes No
WAC_PERSONA VARCHAR2(1) No
WAC_DESCRIPCION VARCHAR2(60)
WAC_ESTADO CHAR(1)
Tabla 3.4
Registro de Actividades
3.1.5. Registro de Cliente
Esta tabla está diseñada para almacenar información de nuestros
clientes suscritos necesarios para el ingreso al sitio Web.
Table Name: CRM_WEB_REGISTRO_CLIENTE
Table Column Name Table Column
Datatype Table Column
Null Option Table Column
Is PK Table Column
Is FK
WRC_ID_REGISTRO_CLIENTE NUMBER(10) NOT NULL Yes No
WRC_ID_CLIENTE NUMBER(10) NOT NULL No No
WRC_RUC_CI VARCHAR2(13) NOT NULL No No
WRC_NOMBRE VARCHAR2(50) NOT NULL No No
WRC_USUARIO VARCHAR2(13) NOT NULL No No
WRC_PASSWORD VARCHAR2(13) NOT NULL No No
WRC_RECORDATORIO VARCHAR2(30) NULL No No
WRC_ESTADO CHAR(1) NOT NULL No No
Tabla 3.5
Registro de Clientes
63
3.1.6. Registro de Encuesta
Tabla diseñada para almacenar el Tema de la Encuesta que será
publicada, esta tabla es replica de Base de datos transaccional CRM.
Table Name CRM_WEB_ENCUESTAS
Table Column Name Table Column
Datatype Table Column
Null Option Table Column
Is PK Table Column
Is FK
WEN_ID_ENCUESTA NUMBER(10) NOT NULL Yes No
WEN_ID_LINEA_NEGOCIO NUMBER(4) NOT NULL No Yes
WEN_DESCRIPCION VARCHAR2(80) NULL No No
WEN_NUMMAXPRE NUMBER(4) NULL No No
WEN_NUMMAXRES NUMBER(4) NULL No No
WEN_ESTADO CHAR(1) NOT NULL No No
Tabla 3.6
Registro de Encuestas
3.1.7. Registro de Preguntas
Esta tabla se ha diseñado para almacenar todas las preguntas de las
encuestas que serán publicadas, esta tabla es replica de Base de datos
transaccional CRM.
Table Name CRM_WEB_PREGUNTA_ENCUESTA
Table Column Name Table Column
Datatype Table Column
Null Option Table Column
Is PK Table Column
Is FK
WPE_ID_PREGUNTA_ENCUESTA NUMBER(10) NOT NULL Yes No
WPE_ID_ENCUESTA NUMBER(10) NOT NULL No Yes
WPE_DESCRIPCION VARCHAR2(150) NOT NULL No No
WPE_ESTADO CHAR(1) NOT NULL No No
WPE_OPTMUL CHAR(1) NOT NULL No No
Tabla 3.7
Registro de Pregunta
64
3.1.8. Registro de Respuesta
Esta tabla se ha diseñado para almacenar todas las respuestas
alternativas a las preguntas de las encuestas que serán publicadas en
el sitio Web, esta tabla es replica de Base de datos transaccional CRM.
Table Name CRM_WEB_RESPUESTA_ENCUESTA
Table Column Name Table Column
Datatype Table Column
Null Option Table Column
Is PK Table Column
Is FK
WRE_ID_RESPUESTA_ENCUESTA NUMBER(10) NOT NULL Yes No
WRE_ID_PREGUNTA_ENCUESTA NUMBER(10) NOT NULL No Yes
WRE_DESCRIPCION VARCHAR2(600) NULL No No
WRE_ESTADO CHAR(1) NOT NULL No No
Tabla 3.8
Registro de Respuestas
3.1.9. Registro de Respuestas Cliente
En esta tabla se van a almacenar todas las respuestas enviadas por los
usuarios desde el sitio Web sobre las encuestas publicadas, esta tabla
es replica de Base de datos transaccional CRM.
Table Name CRM_WEB_SEL_RESPUESTA_ENCUESTA
Table Column Name Table Column
Datatype Table Column
Null Option Table Column
Is PK Table Column
Is FK
WSR_ID_SEL_RESPUESTA_ENCUESTA NUMBER(10) NOT NULL Yes No
WSR_ID_ENCUESTA NUMBER(10) NOT NULL No Yes
WSR_ID_PREGUNTA_ENCUESTA NUMBER(10) NOT NULL No Yes
WSR_ID_RESPUESTA_ENCUESTA NUMBER(10) NOT NULL No Yes
Tabla 3.9
Registro de Respuestas Cliente
65
3.1.10. Registro de Noticias
Esta tabla nos va a permitir almacenar todas las noticias que serán
publicadas en el Sitio Web.
Table Name CRM_WEB_NOTICIAS
Table Column Name Table Column
Datatype Table Column
Null Option Table Column
Is PK Table Column
Is FK
WNO_ID_NOTICIA NUMBER(10) NOT NULL Yes No
WNO_TITULO VARCHAR2(100) NOT NULL No No
WNO_TEXTO VARCHAR2(900) NOT NULL No No
WNO_FECHA_EXPIRACION DATE NOT NULL No No
WNO_ESTADO CHAR(1) NOT NULL No No
WNO_IMAGEN VARCHAR2(100) NULL No No
Tabla 3.10
Registro de Noticias
3.1.11. Registro de Inquietudes/Soporte
Esta tabla fue diseñada con el fin de satisfacer las necesidades del
cliente donde podrá visualizar todas las inquietudes que tengan sobre el
servicio, es decir un Soporte Técnico vía Internet.
Table Name CRM_WEB_INQUIETUDES
Table Column Name Table Column
Datatype Table Column
Null Option Table Column
Is PK Table Column
Is FK
WIN_ID_INQUIETUD NUMBER(8) NOT NULL Yes No
WIN_TIPO CHAR(1) NOT NULL No No
WIN_INQUIETUD VARCHAR2(100) NOT NULL No No
WIN_SOLUCION VARCHAR2(600) NOT NULL No No
WIN_ESTADO CHAR(1) NOT NULL No No
Tabla 3.11
Registro de Soporte Técnico
66
3.1.12. Registro de Promociones
Esta tabla almacena la cabecera de las promociones que serán
publicadas en el Sitio, esta tabla es replica de Base de datos
transaccional CRM.
Table Name CRM_WEB_PROMOCIONES
Table Column Name Table Column
Datatype Table Column
Null Option Table Column
Is PK Table Column
Is FK
WPR_ID_PROMOCION NUMBER(6) NOT NULL Yes No
WPR_ID_LINEA_NEGOCIO NUMBER(4) NOT NULL No Yes
WPR_DESCRIPCION VARCHAR2(80) NOT NULL No No
WPR_FECHA_INI DATE NOT NULL No No
WPR_FECHA_FIN DATE NOT NULL No No
WPR_VALOR NUMBER(8,2) NOT NULL No No
WPR_IMAGEN VARCHAR2(100) NULL No No
WPR_ESTADO CHAR(1) NOT NULL No No
Tabla 3.12
Registro de Promociones
3.1.13. Registro de Promoción Ítem
Esta tabla almacena los ítems que corresponden a cada promoción,
esta tabla es replica de Base de datos transaccional CRM.
Table Name CRM_WEB_PROMOCION_ITEM
Table Column Name Table Column
Datatype Table Column
Null Option Table Column
Is PK Table Column
Is FK
WPI_ID_PROMOCION NUMBER(6) NOT NULL Yes Yes
WPI_ID_ITEM NUMBER(10) NOT NULL Yes Yes
WPI_CANTIDAD NUMBER(8) NULL No No
WPI_VALOR NUMBER(8,2) NULL No No
WPI_ESTADO CHAR(1) NOT NULL No No
Tabla 3.13
Registro de Promoción Ítem
67
3.1.14. Registro de Línea de Negocio
Esta tabla va a almacenar las diferentes líneas de negocio que provee
la televisora, esta tabla es replica de Base de datos transaccional CRM.
Table Name CRM_WEB_LINEA_NEGOCIO
Table Column Name Table Column
Datatype Table Column
Null Option Table Column
Is PK Table Column
Is FK
WLN_ID_LINEA_NEGOCIO NUMBER(4) NOT NULL Yes No
WLN_DESCRIPCION VARCHAR2(80) NOT NULL No No
WLN_ESTADO CHAR(1) NOT NULL No No
Tabla 3.14
Registro de Línea de Negocio.
3.1.15. Registro de Servicios
Esta tabla fue diseñada para almacenar todos los servicios que posee la
empresa, esta tabla es replica de Base de datos transaccional CRM.
Table Name CRM_WEB_SERVICIOS
Table Column Name Table Column
Datatype Table Column
Null Option Table Column
Is PK Table Column
Is FK
WSE_ID_SERVICIO NUMBER(6) NOT NULL Yes No
WSE_ID_LINEA_NEGOCIO NUMBER(4) NOT NULL No Yes
WSE_DESCRIPCION VARCHAR2(80) NOT NULL No No
WSE_ESTADO CHAR(1) NOT NULL No No
Tabla 3.15
Registro de Servicios
68
3.1.16. Registro de Ítems
Esta tabla registra todos los ítems, es decir todos los productos o
servicios que son valorados, es decir se van a facturar, esta tabla es
replica de Base de datos transaccional CRM.
Table Name CRM_WEB_ITEMS
Table Column Name Table Column
Datatype Table Column
Null Option Table Column
Is PK Table Column
Is FK
WIT_ID_ITEM NUMBER(10) NOT NULL Yes No
WIT_ID_SERVICIO NUMBER(6) NOT NULL No Yes
WIT_DESCRIPCION VARCHAR2(80) NOT NULL No No
WIT_ESTADO CHAR(1) NOT NULL No No
WIT_ESTFACT CHAR(1) NULL No No
Tabla 3.16
Registro de Ítems
3.1.17. Registro de Precio Ítems
Esta tabla registra los precios de cada ítems, esta tabla es replica de
Base de datos transaccional CRM.
Table Name CRM_WEB_PRECIO_ITEM
Table Column Name Table Column
Datatype Table Column
Null Option Table Column
Is PK Table Column
Is FK
WRI_ID_ITEM NUMBER(10) NOT NULL Yes Yes
WRI_VALOR NUMBER(8,2) NOT NULL No No
WRI_FECHAVIGENCIA DATE NOT NULL No No
WRI_ESTADO CHAR(1) NOT NULL No No
Tabla 3.17
Registro de Precio Ítems
69
3.1.18. Registro de Planes
Esta tabla registra los planes o paquetes televisivos que la empresa
provee a sus clientes, esta tabla es replica de Base de datos
transaccional CRM.
Table Name CRM_WEB_PLANES
Table Column Name Table Column
Datatype Table Column
Null Option Table Column
Is PK Table Column
Is FK
WPL_ID_PLAN NUMBER(8) NOT NULL Yes No
WPL_ID_SERVICIO NUMBER(6) NULL No Yes
WPL_DESCRIPCION VARCHAR2(80) NULL No No
WPL_ESTADO VARCHAR2(1) NULL No No
Tabla 3.18
Registro de Planes
3.1.19. Registro de Categorías
Esta tabla registra la categoría de los diferentes planes que existan,
esta tabla es replica de Base de datos transaccional CRM.
Table Name CRM_WEB_CATEGORIAS
Table Column Name Table Column
Datatype Table Column
Null Option Table Column
Is PK Table Column
Is FK
WCT_ID_CATEGORIA NUMBER(8) NOT NULL Yes No
WCT_ID_PLAN NUMBER(8) NULL No Yes
WCT_DESCRIPCION VARCHAR2(80) NULL No No
WCT_ESTADO CHAR(1) NULL No No
Tabla 3.19
Registro de Categorías
70
3.1.20. Registro de División de Categorías
Esta tabla se almacena los canales de las diferentes categorías, esta
tabla es replica de Base de datos transaccional CRM.
Table Name CRM_WEB_DIVISION_CATEG
Table Column Name Table Column
Datatype Table Column
Null Option Table Column
Is PK Table Column
Is FK
WDC_ID_DIVISION_CATEG NUMBER(8) NOT NULL Yes No
WDC_ID_CATEGORIA NUMBER(8) NULL No Yes
WDC_DESCRIPCION VARCHAR2(80) NULL No No
WDC_ESTADO CHAR(1) NULL No No
Tabla 3.20
Registro de División de Categorías
71
3.2. DISEÑO DE INTERFAZ Muestra la pantalla principal de la interfaz del modulo Web e-CRM, la misma
que está compuesta de las siguientes partes:
Ilustración # 3.1
Pantalla Principal
72
Barra de Navegador: Para poder visualizar la interfaz es necesario contar
con un navegador o Browser en el mismo que deberá escribirse la URL
donde se encuentre publicado el sitio.
Área de Paneles: Mostrará toda la información descriptiva o títulos
principales del sitio, este panel está ubicada en la parte superior derecha de
la página.
Área de Conexión de usuarios: Esta área será usada para que los usuarios
se autentifiquen e inicien sesión para que puedan acceder a sus servicios,
ubicados en la parte superior izquierda.
Área de Búsqueda: Esta área fue diseñada para darle la facilidad al usuario
a encontrar lo que desea, tanto paginas como temas que solicite.
Área de Menú: En esta área está estructurado por una lista de opciones de
menú ubicado en la parte izquierda de la pantalla.
Área de Mensajes y publicidad: Está constituida por 2 partes: Área de
publicidad pagada de otros proveedores, ubicada en la parte inferior central
de la página, y el área de publicidad nuestra en la parte inferior izquierda.
Área de Navegación: Esta área es la que mostrará la información solicitada
por el usuario cada vez que el elija algún ítem del menú, lo mostrará en un
formato HTML, y está ubicada en la parte central del la página.
73
3.2.1 Módulo WEB
• Mi Cuenta
En esta pantalla muestra al usuario un mantenimiento de su cuenta, es
decir solicita al usuario se logonee si es que ya se ha registrado, si no
lo ha hecho y es cliente le indica que lo haga, vinculando hacia la
página registro de cliente. También proporciona al cliente que pueda
cambiar su contraseña y un recordatorio si la perdido.
Ilustración 3.2
Mantenimiento de Cuenta
74
• Registro de Clientes.
En esta pantalla el sistema solicita a los usuarios que ya son clientes
nuestros necesariamente deberán de registrarse para gozar de los
servicios, y demás promociones que ofrecemos.
Ilustración 3.3
Formulario Registro de Clientes
75
• Estado de Cuenta
Esta pantalla muestra al usuario sus estados de cuenta disponibles,
dependiendo la fecha del estado de cuenta solicitado, esta opción le
permite al usuario descargar su archivo en formato .pdf
Ilustración 3.4
Estado de Cuenta
76
• Activación de Servicios
Nuestro servicios es otorgar lo mejor para nuestros clientes tenemos
un espacio para que nuestros clientes puedan enviar una solicitud de
activar un servicio desde la comodidad de su hogar.
Ilustración 3.5
Activación de Servicios
77
• Promociones
Esta pantalla muestra todas las promociones que están vigentes en la
empresa.
Ilustración 3.6
Promociones
78
• Reclamos
Esta pantalla permite al usuario realizar sus reclamos o quejas
mediante el sito, esta pantalla muestra también los estado que tienen
sus anteriores reclamos.
Ilustración 3.7
Reclamos - Quejas
79
• Programación
En esta pantalla se mostrará un vínculo abriendo otra ventana hacia
las páginas principales de los canales donde nos muestra toda la
programación que esta disponible por semana.
Ilustración 3.8
Programación
80
• Soporte Técnico
Esta pantalla es más conocida como “Preguntas frecuentes”, en donde
se le indica al usuario los posibles errores que pueda tener y como
solucionarlos también hay un buscador en el cual pondrá palabras
claves y este le devolverá las respuestas que mas se acoplen a su
inquietud.
Ilustración 3.9
Soporte Técnico
81
• Publicación de Noticias
Para la publicación de las noticias se ha pensado en algo en el que
sea vistoso para el usuario y que por la imagen llamar la atención a lo
que le interesaría visualizar.
Estás noticias pueden ser de diferente índole, por ejemplo se ha
pensado en mostrar noticias sobre nuestras películas que están en
estrenos y que desean saber un poco más de ellas antes de
visualizarlas.
Ilustración 3.10
Publicación de Noticias
82
• Paquetes / Planes
Esta pantalla muestra los paquetes o planes, indicando de qué línea
de negocio pertenece, su categoría, precio final y fecha de vigencia.
Ilustración 3.11
Publicación de Paquetes
83
• Encuesta / Test
Esta encuesta se la diseñó con el fin de brindar a los clientes un mejor
servicio ofreciéndoles una manera alternativa de escoger un servicio o
también para preguntar a nuestros clientes si están conformes con el
servicio brindado.
Ilustración 3.12
Publicación de Encuestas
84
La publicación de los resultados lo muestra después de haber colaborado
con la votación.
Ilustración 3.13
Resultados de Encuestas
• Registro de Posibles clientes.
Como parte de un servicio para ofrecer mayor captación de clientes se
elaboró un registro de posibles clientes que deseen obtener nuestros
servicios, para que posteriormente nuestros asesores visiten al
interesado.
85
Ilustración 3.14
Registro de Posibles clientes
86
• Políticas de Privacidad
En este espacio se publica las políticas de la empresa, con respecto al
manejo y uso de la información.
Ilustración 3.15
Políticas de Privacidad
87
3.2.2 Módulo Administrativo.
• Mantenimiento de Usuarios Registrados
En este mantenimiento será usado por el administrador del sitio, en el
cual podrá cambiarle el estado y dejarlo fuera de línea (off line) cuando
el usuario deja de utilizar nuestros servicios como cliente.
Ilustración 3.16
Mantenimiento de Usuarios
88
• Mantenimiento de Promociones publicadas
Este mantenimiento es para eliminar aquellas promociones que ya
cumplieron su fecha de publicación y necesariamente deberá ser
eliminada de la página Web, además se le agrega una imagen de
promoción, para que sea mas vistosa al cliente.
Ilustración 3.17
Mantenimiento de Promociones publicadas
89
• Mantenimiento de Soporte Técnico
En este mantenimiento es para aquellas preguntas frecuentes
realizadas por nuestros clientes, para que sean publicadas, dadas de
baja o eliminadas del sitio.
Ilustración 3.18
Mantenimiento de Soporte Técnico
90
• Mantenimiento de Noticias
Este mantenimiento de Noticias puede ser de diferentes temas que se
publicarán en el Web, esta publicación se la realiza mediante el estado
que se le asigne.
Ilustración 3.19
Mantenimiento de Noticias
91
• Mantenimiento de Ítems
Este mantenimiento se lo realiza tanto para agregar servicios nuevos,
dar de baja, eliminarlos del sitio una vez publicados, todas estas
publicaciones son manejadas por el campo estado.
Ilustración 3.20
Mantenimiento de Ítems
92
• Mantenimiento de Encuesta
Este mantenimiento es para agregar, modificar, eliminar la encuesta
que serán publicadas dentro del sitio donde el usuario podrá votar y a
su vez colaborar con nosotros para mejorar nuestro servicio.
Ilustración 3.21
Mantenimiento de Encuesta
93
• Mantenimiento de Procesos de Carga (Réplicas)
Este mantenimiento se lo realiza para cargar la información de la base
de datos transaccional a la base de datos Web, este proceso se lo
realiza en horas fuera de nuestro uso horario diurno.
Ilustración 3.22
Mantenimiento de Procesos
94
3.2. DISEÑO ARQUITECTONICO
Ilustración 3.23
Diseño Arquitectónico
CAPITULO 4
4. DESARROLLO Y PRUEBAS DEL SISTEMA
Para el Desarrollo del sistema se efectuaron en el orden en que se
planificó inicialmente el proyecto mediante Microsoft Project, en el indica
el orden de las actividades y el tiempo estimado para el desarrollo del
mismo.
Para las pruebas del sistema se realizaron periódicamente, al termino
de cada modulo.
96
4.1 Desarrollo del Sistema
• Creación de Base de Datos.
Nombre: WEBECRM
Día Creación: 10/10/2006
Ruta del archivo: c:\Oracle\oradata\webecrm\
Data files, Control Files, RedoLogFiles
Espacio Usado: 10.256 Kb
Espacio Disponible: 98.849 Kb
Espacio Total: 109.105 Kb
4.2 Creación de los Componentes
Para la creación de componentes se utilizó una metodología de Módulos, es
decir Termina un Módulo e Inicial otro Módulo.
El orden de Implementación se detalla a continuación:
• Seguridades
• Administrativo
• Web
97
4.3 Seguridades
Las seguridades del sistema en mención, están divididas en varias fases,
todas y cada una de ellas tiene el objetivo de mantener la integridad y
seguridad de la información. La cual es al mayor activo de cualquier
organización.
Entre las cuales tenemos:
1. Sistema Operativo
2. Base de Datos
3. Sistema Web eCRM
4. Registro de Logs
5. Humano
4.3.1. Sistema Operativo
El sistema trabaja sobre los siguientes sistemas operativos:
• Windows 2000 Professional
• Windows 2000 SERVER
• Windows XP
• Windows 2003 SERVER
Cada sistema operativo maneja sus niveles de seguridades, unos más
que otros. Obviamente los sistemas operativos para servidor son más
robustos. Contemplan conceptos de perfiles, usuarios y contraseñas.
98
Así podemos restringir el acceso a la carpeta C:\Archivos de
programa\Apache_Software_Foundation\Tomcat_5.5\webapps\Webecrm
que es donde se almacena el sitio Web.
4.3.2. Base de Datos
La seguridad de la Base de Datos se fundamenta en la seguridad que
brinda Oracle, proporcionando permisos y perfiles de usuarios la conexión
se la realiza mediante el Datasource. NOTA: La seguridad es manejada
por el módulo de Integración del sistema.
4.3.3. Sistema
La seguridad del sistema se basa propiamente en el Módulo de
Seguridades del Administrativo, aquí el usuario podrá definir, permisos a
nivel de perfiles, es decir podrá conceder o denegar los accesos a los
diferentes módulos y opciones.
4.3.4. Registro de Logs
El Sistema para la televisión pagada posee un registro de Logs a nivel de
la aplicación, todas las acciones que formen parte de las tablas del Web
eCRM, son almacenadas en una tabla de Auditoria, lo que constituye un
registro de Log, para saber cual fue el usuario que realizó determinada
acción.
99
4.3.5. Humano
Muy aparte de todas las seguridades anteriormente mencionadas,
siempre debe considerarse el aspecto humano, por muy seguro que sea
la aplicación en mención, si el usuario administrador que es quien tiene el
control total sobre el sistema, divulga su contraseña, todo el plan de
seguridades se destruye puesto que la solución queda totalmente
vulnerable hacia cualquier persona. Es así entonces debemos tener
mucho cuidado con la contraseña de administrador, y no revelarla.
4.4 PRUEBAS DEL SISTEMA
Las pruebas del sistema son un mecanismo para comprobar el correcto
funcionamiento del software, las pruebas se realizaron periódicamente al
término de cada modulo, en el presente sistema se han realizado varios
tipos de pruebas entre los cuales citaremos los siguientes:
• Verificación y Validación
• Pruebas de Unidad
• Pruebas de Integración
• Pruebas Alfa y Beta
• Pruebas de Seguridad
100
4.4.1 Verificación y Validación
Estos dos términos van de la mano, puesto que el tipo de prueba
verificación analiza que no existan errores en la implementación del
software, y la validación analiza que lo que se define en las
especificaciones iniciales guarde relación con la Aplicación
Desarrollada.
En el Sistema para televisión pagada se realizaron este tipo de
pruebas, comprobando que no exista ningún tipo de errores de
verificación, y se comprobó que lo que se planteó inicialmente en el
desarrollo de la tesis, vaya de acuerdo a lo que se ha desarrollado.
4.4.2 Pruebas de Unidad
En los tipos de pruebas de Unidad se analiza en forma independiente
cada módulo, y forman parte del tipo de pruebas de la caja blanca, es
decir analizan procesos internos.
Se realizó este tipo de pruebas en cada uno de los módulos:
• Administrativo
• Web
En el Sistema para televisión pagada trabaja con procedimientos
almacenados y se comprobó que los parámetros que son enviados al
101
procedimiento sean los mismos que éste reciba tanto en cantidades
como en el tipo de datos.
Se comprobó que al momento de invocar a cualquier método de
cualquier clase, coincidan los parámetros en cantidades y tipos de
datos.
• Definición Estándar de Nombres de Objetos.
Todos los objetos en el Sistema guardan un estándar para ser
identificados rápidamente, el cual fue propuesto por el grupo
integrador del proyecto CRM.
Tablas
Todas las tablas son nombradas con el prefijo “CRM”, seguida por las
siglas del Módulo “WEB”, y el respectivo nombre de la tabla, todas
estas van separadas por el símbolo “_”
Ejemplo:
CRM_WEB_NOTICIAS: Es una tabla de Noticias y pertenece al
módulo “WEB”
Campos
Los campos también guardan un estándar, se agrega un prefijo
dependiendo del módulo y nombre de la tabla.
102
Por ejemplo: la tabla CRM_WEB_NOTICIAS, sus campos serian:
Nombre del módulo “W” seguido de las 2 iniciales del nombre de la
tabla “NO”, el símbolo “_” y luego el nombre del campo.
WNO_ID_NOTICIA.
Procedimientos Almacenados
Poseen el prefijo “sp”, seguido de la acción que realizan en particular
“Ingresa”, “Modifica”, “Elimina”, “Actualiza”.
Ejemplo:
sp_Ingresa_Noticia: Procedimiento de Inserción Noticias.
4.4.3 Pruebas de Integración
Las pruebas de este tipo se realizan de dos clases:
o Ascendente
o Descendente
En el caso de nuestro proyecto se realizó el tipo de Pruebas de
Integración en forma Ascendente, es decir se fue probando la
integración con otros módulos de nivel superior. Ejemplo: Marketing
103
Operacional, Ventas Operacional, Servicio al cliente operacional, y con
la Administración e integración del CRM.
Las pruebas realizadas con la conexión entre el servidor y las
estaciones de trabajo o clientes demostraron que el tiempo de
respuesta para efectuar las transacciones requeridas por los usuarios
llenaron las expectativas deseadas.
4.4.4 Pruebas Alfa y Beta
Las pruebas Alfa y Beta tienen escenarios diferentes ya que las
pruebas Alfa se desarrollan o se efectúan casa adentro, es decir las
realiza el departamento de desarrollo. Y estas pruebas tratan de
encontrar todos los posibles errores. Pero dichas pruebas no son
suficientes por que la perspectiva de un desarrollar no es igual que la
de un usuario final, para esto existe las pruebas Beta.
En el Sistema para televisión pagada se realizaron los dos tipos de
pruebas, las pruebas internas (Alfa) y las pruebas externas (Beta), las
últimas fueron realizadas por personas que conozcan del negocio de
televisión pagada, para así poder filtrar la mayor cantidad de errores, y
mejorar la calidad del software.
104
4.4.5 Pruebas de Seguridad
La seguridad en cualquier sistema es un tema importante, aun más si
se trata de una aplicación Web como es la que desarrollamos. Es por
esto que se realizaron pruebas de seguridad, tales como tratar de
insertar sentencias SQL para poder iniciar sesión dentro de la
aplicación con el primer usuario que encuentre en nuestra base de
datos. Pero como nuestra aplicación trabaja con procedimientos
almacenados el login y clave son manejados por parámetros y los
mismos no son afectados por una sentencia.
Otra clase de prueba realizada fue la de ingresar a alguna dirección
URL donde se realizan transaccionalidad. En esta parte el sistema lo
que verifica si se ha iniciado sesión, como esta sesión es nula se
redirecciona a una página indicando que no ha ingresado nombre de
usuario y su contraseña.
105
4.5 Calidad del Sistema
La calidad del sistema puede medirse en varios aspectos, entre ellos
podemos citar que se ha cumplido con todos y cada unos de los alcances
planteados. Además citaremos algunos procesos que se han considerado
extras, y forman parte del valor agregado de nuestra aplicación:
• Búsquedas Internas
• Mantenimiento de Cuenta de Usuario
Búsquedas Internas
En nuestro sitio Web se puede realizar búsquedas mediante palabras claves,
lo que hace el sistema es revisar los “meta tags” de cada página y devuelve
las coincidencias encontradas, también maneja una búsqueda interna con lo
que es Soporte técnico para que los usuarios puedan encontrar sus
inquietudes mas rápido.
Mantenimiento de Cuenta de Usuario
Se agregó un espacio en donde el usuario que ya se haya registrado
previamente pueda cambiar su contraseña, y también recordarle su
contraseña en el caso que se haya olvidado.
CAPITULO 5
5. IMPLEMENTACION DEL SISTEMA
Para la implantación del Sistema de Televisión pagada se necesita
algunos recursos, entre los cuales tenemos:
• Elementos Físicos
• Elementos Lógicos
• Recurso Humano
• Infraestructura
• Capacitación de los Usuarios
107
5.1 Elementos Físicos
Entre los elementos físicos necesario para la implantación podemos citar los
siguientes equipos de computación:
Servidor
• Server IBM Series con procesador Xeon de 3.2 GHZ con memoria de
1 GB Para la base de datos transaccional y otro servidor de las
mismas características para la base de datos Web.
• Un computador Pentium D con 1GB de memoria y 60 GB de HDD, que
hace las funciones de cliente para la página Web.
Estos equipos servirán tanto para el desarrollo y pruebas del respectivo
sistema.
Enlaces
• Proveedor de Internet (ISP) con ancho de banda de 512 kbps enlace
dedicado.
• MODEM y router para la conexión a Internet.
• Hosting y compra de dominio para la página Web
108
Seguridad
Instalación de firewall para protección de nuestra base de datos que esta
expuesta al Internet. Se puede utilizar un servidor Linux para minimizar los
costos.
5.2 Elementos Lógicos
Software
Los Componentes usados se detallan a continuación:
• Oracle 9i para la base de datos Web.
• J2EE
• Java Virtual Machine
• Adobe Flash Player.
• Acrobat Reader 6
5.3 Humano
Para la implementación del proyecto se trabajo con tres desarrolladores
Franklin López.- Encargado de los procesos de replicación de las tablas
entre las dos bases de datos Transaccional y el de la Web, validación de las
estructuras de las tablas, en la base de datos oracle y realizó una pantalla de
administración de los jobs de las bases de Datos.
109
Iván Obregón.- Encargado de realizar el análisis, implementación y
desarrollo de la aplicación Web realizado en Java Studio Creator que
interactúa con las bases de datos transaccional y encargado de las
validaciones de la pagina Web con lenguaje JavaScript.
Rosa Monserrate.- Encargada de realizar el diseño, y desarrollo de la
página Web la cual interactua con la aplicación Web, base de datos Web. La
página fue diseñada en JDeveloper.
5.4 Infraestructura
La infraestructura que se necesita para el normal desarrollo de sistema, se
detalla a continuación:
Se necesita una red segura y rápida se recomienda para la red un cableado
categoría 6 con switch cisco para poder realizar vlans para poder crear
seguridad interna entre departamentos y poder proteger a nuestros
servidores de la Lan de la compañía, si la empresa es grande se recomienda
hacer cascadas de los switch con fibra.
110
5.5 Capacitación de Usuarios
Aunque se trata de una Aplicación para Web, y se lo ha diseñado de una
manera tal que sea completamente intuitivo para el usuario su operación,
además del manual de usuario que acompaña se dará una capacitación a los
usuarios a cerca de los procesos más importantes del sistema.
5.6 Costos
Podemos entonces plantear la siguiente tabla de Costos de Implementación
del Sistema:
Cant. Tipo Elemento Elemento Costo Unitario
Costo
1 Físico Computadoras $ 800 $ 800
1 Fisico Servidor Web $ 2.000 $ 2.000
1 Lógico Oracle 9i $ 3.500 $ 3.500
3 Humano Equipo de Desarrollo $ 1.000 $ 3.000
1 Infraestructura Equipos de Redes $ 1.500 $ 1.500
1 Capacitación Capacitación Usuarios $ 500 $ 500
Total Inversión $11.300
Tabla # 5.1
Costos de Inversión
CAPITULO 6
5. CONCLUSIONES Y RECOMENDACIONES
6. En la Aplicación Web E-CRM se sugieren algunos recomendaciones
para que pueda realizar sus funciones en óptimas condiciones, requiere
de ciertas características, ya sean estas Hardware, Software, Red y
seguridades.
112
CONCLUSIONES
El presente trabajo trata de formar un precedente de lo que está sucediendo
en el mundo y que nuestro país poco a poco se va incorporando a esta
tecnología, nos referimos proyectos CRM. Esta herramienta se basa en
atender todo lo que el cliente necesita, es decir buscar estrategias de los
negocios para la retención del cliente, y esto cada vez va tomando mayor
fuerza y nuestro país no debe estar indiferente ante ese fenómeno mundial.
Con solo ingresar al Internet podemos hacer todas las cosas necesarias
como revisar su estado de cuenta, activar servicios, entre otros servicios
básicos.
En nuestro país si bien es cierto, que uso del Internet es inferior comparado
con el de otros países inclusive en Latinoamérica, el porcentaje de
crecimiento ha aumentado en los últimos años lo que nos da la pauta para
inducir que su uso se va difundiendo.
Podemos concluir que el uso del Internet se está convirtiendo o está
formando parte de los servicios básicos. Lo que nos indica que existe un
campo que puede ser muy bien aprovechado por cualquier Ingeniero en
Sistemas.
Esta aplicación desarrollada en este proyecto es orientada al negocio de
televisión pagada por cable.
113
RECOMENDACIONES
Podemos recomendarles que para el perfecto funcionamiento del sistema de
Televisión pagada.
Se recomienda tener una conexión a Internet 100% estable y con
seguridades de DMZ Zona desmilitarizada para el servidor de base WEB con
dos Firewall para la Lan y para el Internet, se recomienda una red Lan segura
y rápida.
Se recomienda montar la aplicación en otro Server muy aparte del de bases
para optimizar los recursos de los equipos.
Se recomienda tener acceso vía ftp al sitio donde esta montada la pagina
Web para dar mantenimiento a la misma.
Se recomienda que las tomas donde están conectados los servidores sean a
UPS y que el UPS no este sobrecargado.
Script Base de Datos -- Create Database Script -- Database Version : 9.2.0.1.0 -- TOAD Version : 8.6.0.38 -- DB Connect String: WEBECRM -- Script Created by: WCRM -- Script Created at: 28/04/2007 18:52:01 -- Physical Location: -- Notes : /* InitWEBECRM.ora file begins here. aq_tm_processes = 1 background_dump_dest = "C:\oracle\admin\WebEcrm\bdump" Compatible = "9.2.0.0.0" control_files = (C:\oracle\oradata\WebEcrm\control01.ctl, C:\oracle\oradata\WebEcrm\control02.ctl, C:\oracle\oradata\WebEcrm\control03.ctl) core_dump_dest = "C:\oracle\admin\WebEcrm\cdump" db_block_size = 8192 db_cache_size = 25165824 db_domain = "" db_file_multiblock_read_count = 16 db_name = "WebEcrm" dispatchers = "(PROTOCOL=TCP) (SERVICE=WebEcrmXDB)" fast_start_mttr_target = 300 hash_join_enabled = TRUE instance_name = "WebEcrm" java_pool_size = 33554432 job_queue_processes = 10 large_pool_size = 8388608 open_cursors = 300 pga_aggregate_target = 25165824 processes = 150 query_rewrite_enabled = "FALSE" remote_login_passwordfile = "EXCLUSIVE" shared_pool_size = 50331648 sort_area_size = 524288 star_transformation_enabled = "FALSE" timed_statistics = TRUE undo_management = "AUTO" undo_retention = 10800 undo_tablespace = "UNDOTBS1" user_dump_dest = "C:\oracle\admin\WebEcrm\udump" InitWEBECRM.ora file ends here. */
Ilustración 2
Script de la Base de Datos
CREATE TEMPORARY TABLESPACE TEMP TEMPFILE 'C:\ORACLE\ORADATA\WEBECRM\TEMP01.DBF' SIZE 40M AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M; CREATE TABLESPACE WCRM_DAT DATAFILE 'C:\ORACLE\ORADATA\WEBECRM\WCRM_DAT.ORA' SIZE 5M AUTOEXTEND ON NEXT 1M MAXSIZE UNLIMITED LOGGING ONLINE PERMANENT EXTENT MANAGEMENT LOCAL AUTOALLOCATE BLOCKSIZE 8K SEGMENT SPACE MANAGEMENT AUTO; CREATE TABLESPACE WCRM_IDX DATAFILE 'C:\ORACLE\ORADATA\WEBECRM\WCRM_IDX.ORA' SIZE 5M AUTOEXTEND ON NEXT 1M MAXSIZE UNLIMITED LOGGING ONLINE PERMANENT EXTENT MANAGEMENT LOCAL AUTOALLOCATE BLOCKSIZE 8K SEGMENT SPACE MANAGEMENT AUTO; ALTER DATABASE ADD LOGFILE GROUP 1( 'C:\ORACLE\ORADATA\WEBECRM\REDO01.LOG') SIZE 100M; ALTER DATABASE ADD LOGFILE GROUP 2( 'C:\ORACLE\ORADATA\WEBECRM\REDO02.LOG') SIZE 100M; ALTER DATABASE ADD LOGFILE GROUP 3( 'C:\ORACLE\ORADATA\WEBECRM\REDO03.LOG') SIZE 100M; CREATE ROLLBACK SEGMENT SYSTEM TABLESPACE SYSTEM STORAGE ( INITIAL 112K MINEXTENTS 1 MAXEXTENTS 32765 ); ALTER ROLLBACK SEGMENT SYSTEM ONLINE; ALTER DATABASE ADD LOGFILE GROUP 1( 'C:\ORACLE\ORADATA\WEBECRM\REDO01.LOG') SIZE 100M; ALTER DATABASE ADD LOGFILE GROUP 2( 'C:\ORACLE\ORADATA\WEBECRM\REDO02.LOG') SIZE 100M; ALTER DATABASE ADD LOGFILE GROUP 3( 'C:\ORACLE\ORADATA\WEBECRM\REDO03.LOG') SIZE 100M;
Ilustración 3
Script de la Base de Datos
Script de Esquema
-- Object Counts: -- Database Links: 1 -- Indexes: 21 Columns: 23 -- Packages: 1 Lines of Code: 280 -- Package Bodies: 1 Lines of Code: 938 -- Procedures: 3 Lines of Code: 164 -- Sequences: 8 -- Tables: 22 Columns: 112 Constraints: 41 -- Views: 6 CREATE SEQUENCE SEC_CRM_SCO_RECLAMOS START WITH 1 MAXVALUE 9999999999 MINVALUE 1 NOCYCLE CACHE 20 NOORDER; CREATE SEQUENCE SEC_CRM_WEB_CLIENTES START WITH 221 MAXVALUE 99999999999 MINVALUE 1 NOCYCLE CACHE 20 NOORDER; CREATE SEQUENCE SEC_CRM_WEB_INQUIETUDES START WITH 161 MAXVALUE 99999999999 MINVALUE 1 NOCYCLE CACHE 20 NOORDER; CREATE SEQUENCE SEC_CRM_WEB_NOTICIAS START WITH 441 MAXVALUE 99999999999 MINVALUE 1 NOCYCLE CACHE 20 NOORDER; CREATE SEQUENCE SEC_CRM_WEB_REGISTRO_CLIENTE START WITH 141 MAXVALUE 99999999999 MINVALUE 1 NOCYCLE CACHE 20 NOORDER;
Ilustración 4
Script del Esquema
CREATE SEQUENCE SEC_CRM_WEB_RESPUESTA_ENCUESTA START WITH 1 MAXVALUE 999999999999 MINVALUE 1 NOCYCLE CACHE 20 NOORDER; CREATE SEQUENCE SEC_CRM_WEB_SEL_RESPUES_ENCUES START WITH 461 MAXVALUE 999999999999 MINVALUE 1 NOCYCLE CACHE 20 NOORDER; CREATE SEQUENCE SEC_CRM_WEB_SUGERENCI_ENCUESTA START WITH 1 MAXVALUE 999999999999999 MINVALUE 1 NOCYCLE CACHE 20 NOORDER; CREATE TABLE CRM_WEB_ACTIVIDADES ( WAC_ID_ACTIVIDAD NUMBER(4) NOT NULL, WAC_PERSONA VARCHAR2(1 BYTE) NOT NULL, WAC_DESCRIPCION VARCHAR2(60 BYTE) NOT NULL, WAC_ESTADO CHAR(1 BYTE) NOT NULL ) TABLESPACE WCRM_DAT PCTUSED 0 PCTFREE 10 INITRANS 1 MAXTRANS 255 STORAGE ( INITIAL 64K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 BUFFER_POOL DEFAULT ) LOGGING NOCACHE NOPARALLEL NOMONITORING; CREATE TABLE CRM_WEB_CATEGORIAS ( WCT_ID_CATEGORIA NUMBER(8) NOT NULL, WCT_ID_PLAN NUMBER(8), WCT_DESCRIPCION VARCHAR2(80 BYTE), WCT_ESTADO CHAR(1 BYTE) )
Ilustración 5
Script del Esquema
TABLESPACE WCRM_DAT PCTUSED 0 PCTFREE 10 INITRANS 1 MAXTRANS 255 STORAGE ( INITIAL 64K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 BUFFER_POOL DEFAULT ) LOGGING NOCACHE NOPARALLEL NOMONITORING; CREATE TABLE CRM_WEB_CIUDADES ( WCI_ID_CIUDAD NUMBER(6) NOT NULL, WCI_NOMBRE VARCHAR2(60 BYTE) NOT NULL, WCI_ESTADO CHAR(1 BYTE) NOT NULL ) TABLESPACE WCRM_DAT PCTUSED 0 PCTFREE 10 INITRANS 1 MAXTRANS 255 STORAGE ( INITIAL 64K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 BUFFER_POOL DEFAULT ) LOGGING NOCACHE NOPARALLEL NOMONITORING; CREATE TABLE CRM_WEB_CLIENTES ( WCL_ID_CLIENTE NUMBER(10) NOT NULL, WCL_ID_TIPO_CLIENTE NUMBER(4) NOT NULL, WCL_ID_ACTIVIDAD NUMBER(4) NOT NULL, WCL_ID_CIUDAD NUMBER(6) NOT NULL, WCL_NOMBRES VARCHAR2(30 BYTE) NOT NULL, WCL_APELLIDOS VARCHAR2(30 BYTE) NOT NULL, WCL_RUC_CI VARCHAR2(13 BYTE) NOT NULL, WCL_CONTACTO VARCHAR2(60 BYTE), WCL_SEXO CHAR(1 BYTE) NOT NULL, WCL_CELULAR VARCHAR2(10 BYTE), WCL_CONVENCIONAL VARCHAR2(20 BYTE), WCL_DIRECCION VARCHAR2(100 BYTE) NOT NULL,
Ilustración 6
Script del Esquema
WCL_E_MAIL VARCHAR2(30 BYTE), WCL_ESTADO CHAR(1 BYTE) NOT NULL, WCL_FECHA_INGRESO DATE NOT NULL, WCL_OBSERVACION VARCHAR2(100 BYTE) ) TABLESPACE WCRM_DAT PCTUSED 0 PCTFREE 10 INITRANS 1 MAXTRANS 255 STORAGE ( INITIAL 64K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 BUFFER_POOL DEFAULT ) LOGGING NOCACHE NOPARALLEL NOMONITORING; CREATE TABLE CRM_WEB_DIVISION_CATEG ( WDC_ID_DIVISION_CATEG NUMBER(8) NOT NULL, WDC_ID_CATEGORIA NUMBER(8), WDC_DESCRIPCION VARCHAR2(80 BYTE), WDC_ESTADO CHAR(1 BYTE) ) TABLESPACE WCRM_DAT PCTUSED 0 PCTFREE 10 INITRANS 1 MAXTRANS 255 STORAGE ( INITIAL 64K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 BUFFER_POOL DEFAULT ) LOGGING NOCACHE NOPARALLEL NOMONITORING; CREATE TABLE CRM_WEB_ENCUESTAS ( WEN_ID_ENCUESTA NUMBER(10) NOT NULL, WEN_ID_LINEA_NEGOCIO NUMBER(4) NOT NULL, WEN_DESCRIPCION VARCHAR2(80 BYTE), WEN_NUMMAXPRE NUMBER(4), WEN_NUMMAXRES NUMBER(4), WEN_ESTADO CHAR(1 BYTE) NOT NULL )
Ilustración 7
Script del Esquema
TABLESPACE WCRM_DAT PCTUSED 0 PCTFREE 10 INITRANS 1 MAXTRANS 255 STORAGE ( INITIAL 64K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 BUFFER_POOL DEFAULT ) LOGGING NOCACHE NOPARALLEL NOMONITORING; CREATE TABLE CRM_WEB_INQUIETUDES( WIN_ID_INQUIETUD NUMBER(8) NOT NULL, WIN_TIPO CHAR(1 BYTE) NOT NULL, WIN_INQUIETUD VARCHAR2(100 BYTE) NOT NULL, WIN_SOLUCION VARCHAR2(600 BYTE) NOT NULL, WIN_ESTADO CHAR(1 BYTE) NOT NULL ) TABLESPACE WCRM_DAT PCTUSED 0 PCTFREE 10 INITRANS 1 MAXTRANS 255 STORAGE ( INITIAL 64K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 BUFFER_POOL DEFAULT ) LOGGING NOCACHE NOPARALLEL NOMONITORING; CREATE TABLE CRM_WEB_ITEMS ( WIT_ID_ITEM NUMBER(10) NOT NULL, WIT_ID_SERVICIO NUMBER(6) NOT NULL, WIT_DESCRIPCION VARCHAR2(80 BYTE) NOT NULL, WIT_ESTADO CHAR(1 BYTE) NOT NULL, WIT_ESTFACT CHAR(1 BYTE) ) TABLESPACE WCRM_DAT PCTUSED 0 PCTFREE 10 INITRANS 1 MAXTRANS 255
Ilustración 8
Script del Esquema
STORAGE ( INITIAL 64K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 BUFFER_POOL DEFAULT ) LOGGING NOCACHE NOPARALLEL NOMONITORING; CREATE TABLE CRM_WEB_LINEA_NEGOCIO ( WLN_ID_LINEA_NEGOCIO NUMBER(4) NOT NULL, WLN_DESCRIPCION VARCHAR2(80 BYTE) NOT NULL, WLN_ESTADO CHAR(1 BYTE) NOT NULL ) TABLESPACE WCRM_DAT PCTUSED 0 PCTFREE 10 INITRANS 1 MAXTRANS 255 STORAGE ( INITIAL 64K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 BUFFER_POOL DEFAULT ) LOGGING NOCACHE NOPARALLEL NOMONITORING; CREATE TABLE CRM_WEB_NOTICIAS ( WNO_ID_NOTICIA NUMBER(10) NOT NULL, WNO_TITULO VARCHAR2(100 BYTE) NOT NULL, WNO_TEXTO VARCHAR2(900 BYTE) NOT NULL, WNO_FECHA_EXPIRACION DATE NOT NULL, WNO_ESTADO CHAR(1 BYTE) NOT NULL, WNO_IMAGEN VARCHAR2(100 BYTE) ) TABLESPACE WCRM_DAT PCTUSED 0 PCTFREE 10 INITRANS 1 MAXTRANS 255 STORAGE ( INITIAL 64K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 BUFFER_POOL DEFAULT )
Ilustración 9
Script del Esquema
LOGGING NOCACHE NOPARALLEL NOMONITORING; CREATE TABLE CRM_WEB_PLANES ( WPL_ID_PLAN NUMBER(8) NOT NULL, WPL_ID_SERVICIO NUMBER(6), WPL_DESCRIPCION VARCHAR2(80 BYTE), WPL_ESTADO VARCHAR2(1 BYTE) ) TABLESPACE WCRM_DAT PCTUSED 0 PCTFREE 10 INITRANS 1 MAXTRANS 255 STORAGE ( INITIAL 64K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 BUFFER_POOL DEFAULT ) LOGGING NOCACHE NOPARALLEL NOMONITORING; CREATE TABLE CRM_WEB_PRECIO_ITEM ( WRI_ID_ITEM NUMBER(10) NOT NULL, WRI_VALOR NUMBER(8,2) NOT NULL, WRI_FECHAVIGENCIA DATE NOT NULL, WRI_ESTADO CHAR(1 BYTE) NOT NULL ) TABLESPACE WCRM_DAT PCTUSED 0 PCTFREE 10 INITRANS 1 MAXTRANS 255 STORAGE ( INITIAL 64K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 BUFFER_POOL DEFAULT ) LOGGING NOCACHE NOPARALLEL NOMONITORING;
Ilustración 10
Script del Esquema
CREATE TABLE CRM_WEB_PREGUNTA_ENCUESTA ( WPE_ID_PREGUNTA_ENCUESTA NUMBER(10) NOT NULL, WPE_ID_ENCUESTA NUMBER(10) NOT NULL, WPE_DESCRIPCION VARCHAR2(150 BYTE) NOT NULL, WPE_ESTADO CHAR(1 BYTE) NOT NULL, WPE_OPTMUL CHAR(1 BYTE) NOT NULL ) TABLESPACE WCRM_DAT PCTUSED 0 PCTFREE 10 INITRANS 1 MAXTRANS 255 STORAGE ( INITIAL 64K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 BUFFER_POOL DEFAULT ) LOGGING NOCACHE NOPARALLEL NOMONITORING; CREATE TABLE CRM_WEB_PROMOCIONES ( WPR_ID_PROMOCION NUMBER(6) NOT NULL, WPR_ID_LINEA_NEGOCIO NUMBER(4) NOT NULL, WPR_DESCRIPCION VARCHAR2(80 BYTE) NOT NULL, WPR_FECHA_INI DATE NOT NULL, WPR_FECHA_FIN DATE NOT NULL, WPR_VALOR NUMBER(8,2) NOT NULL, WPR_IMAGEN VARCHAR2(100 BYTE), WPR_ESTADO CHAR(1 BYTE) NOT NULL ) TABLESPACE WCRM_DAT PCTUSED 0 PCTFREE 10 INITRANS 1 MAXTRANS 255 STORAGE ( INITIAL 64K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 BUFFER_POOL DEFAULT ) LOGGING NOCACHE NOPARALLEL NOMONITORING;
Ilustración 11
Script del Esquema
CREATE TABLE CRM_WEB_PROMOCION_ITEM ( WPI_ID_PROMOCION NUMBER(6) NOT NULL, WPI_ID_ITEM NUMBER(10) NOT NULL, WPI_CANTIDAD NUMBER(8), WPI_VALOR NUMBER(8,2), WPI_ESTADO CHAR(1 BYTE) NOT NULL ) TABLESPACE WCRM_DAT PCTUSED 0 PCTFREE 10 INITRANS 1 MAXTRANS 255 STORAGE ( INITIAL 64K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 BUFFER_POOL DEFAULT ) LOGGING NOCACHE NOPARALLEL NOMONITORING; CREATE TABLE CRM_WEB_REGISTRO_CLIENTE ( WRC_ID_REGISTRO_CLIENTE NUMBER(10) NOT NULL, WRC_ID_CLIENTE NUMBER(10) NOT NULL, WRC_RUC_CI VARCHAR2(13 BYTE) NOT NULL, WRC_NOMBRE VARCHAR2(50 BYTE) NOT NULL, WRC_USUARIO VARCHAR2(13 BYTE) NOT NULL, WRC_PASSWORD VARCHAR2(13 BYTE) NOT NULL, WRC_RECORDATORIO VARCHAR2(30 BYTE), WRC_ESTADO CHAR(1 BYTE) NOT NULL ) TABLESPACE WCRM_DAT PCTUSED 0 PCTFREE 10 INITRANS 1 MAXTRANS 255 STORAGE ( INITIAL 64K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 BUFFER_POOL DEFAULT ) LOGGING NOCACHE NOPARALLEL NOMONITORING;
Ilustración 12
Script del Esquema
CREATE TABLE CRM_WEB_RESPUESTA_ENCUESTA ( WRE_ID_RESPUESTA_ENCUESTA NUMBER(10) NOT NULL, WRE_ID_PREGUNTA_ENCUESTA NUMBER(10) NOT NULL, WRE_DESCRIPCION VARCHAR2(600 BYTE), WRE_ESTADO CHAR(1 BYTE) NOT NULL ) TABLESPACE WCRM_DAT PCTUSED 0 PCTFREE 10 INITRANS 1 MAXTRANS 255 STORAGE ( INITIAL 64K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 BUFFER_POOL DEFAULT ) LOGGING NOCACHE NOPARALLEL NOMONITORING; CREATE TABLE CRM_WEB_SEL_RESPUESTA_ENCUESTA ( WSR_ID_SEL_RESPUESTA_ENCUESTA NUMBER(10) NOT NULL, WSR_ID_ENCUESTA NUMBER(10) NOT NULL, WSR_ID_PREGUNTA_ENCUESTA NUMBER(10) NOT NULL, WSR_ID_RESPUESTA_ENCUESTA NUMBER(10) NOT NULL ) TABLESPACE WCRM_DAT PCTUSED 0 PCTFREE 10 INITRANS 1 MAXTRANS 255 STORAGE ( INITIAL 64K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 BUFFER_POOL DEFAULT ) LOGGING NOCACHE NOPARALLEL NOMONITORING; CREATE TABLE CRM_WEB_SERVICIOS ( WSE_ID_SERVICIO NUMBER(6) NOT NULL, WSE_ID_LINEA_NEGOCIO NUMBER(4) NOT NULL, WSE_DESCRIPCION VARCHAR2(80 BYTE) NOT NULL, WSE_ESTADO CHAR(1 BYTE) NOT NULL )
Ilustración 13
Script del Esquema
TABLESPACE WCRM_DAT PCTUSED 0 PCTFREE 10 INITRANS 1 MAXTRANS 255 STORAGE ( INITIAL 64K MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 BUFFER_POOL DEFAULT ) LOGGING NOCACHE NOPARALLEL NOMONITORING; CREATE TABLE CRM_WEB_SERVICIO_CLIENTE ( WSC_ID_CLIENTE NUMBER(10) NOT NULL, WSC_ID_SERVICIO NUMBER(6) NOT NULL, WSC_ESTADO CHAR(1 BYTE) NOT NULL ) TABLESPACE WCRM_DAT PCTUSED 0 PCTFREE 10 INITRANS 1 MAXTRANS 255 STORAGE ( INITIAL 64K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 BUFFER_POOL DEFAULT ) LOGGING NOCACHE NOPARALLEL NOMONITORING; CREATE TABLE CRM_WEB_SUGERENCIA_ENCUESTA ( WSE_ID_SEL_RESPUESTA_ENCUESTA NUMBER(10) NOT NULL, WSE_OBSERVACION VARCHAR2(250 BYTE) NOT NULL ) TABLESPACE WCRM_DAT PCTUSED 0 PCTFREE 10 INITRANS 1 MAXTRANS 255 STORAGE ( INITIAL 64K MINEXTENTS 1
Ilustración 14
Script del Esquema
MAXEXTENTS 2147483645 PCTINCREASE 0
BUFFER_POOL DEFAULT ) LOGGING NOCACHE NOPARALLEL NOMONITORING; CREATE TABLE CRM_WEB_TIPO_CLIENTE ( WTC_ID_TIPO_CLIENTE NUMBER(4) NOT NULL, WTC_NOMBRE VARCHAR2(60 BYTE) NOT NULL, WTC_DESCRIPCION VARCHAR2(60 BYTE), WTC_PRIORIDAD NUMBER(5) NOT NULL, WTC_ESTADO CHAR(1 BYTE) NOT NULL ) TABLESPACE WCRM_DAT PCTUSED 0 PCTFREE 10 INITRANS 1 MAXTRANS 255 STORAGE ( INITIAL 64K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 BUFFER_POOL DEFAULT ) LOGGING NOCACHE NOPARALLEL NOMONITORING; CREATE UNIQUE INDEX PK_ID_SERVICIO_CLIENTE ON CRM_WEB_SERVICIO_CLIENTE (WSC_ID_CLIENTE, WSC_ID_SERVICIO) LOGGING NOPARALLEL; CREATE UNIQUE INDEX PK_WAC_ID_ACTIVIDAD ON CRM_WEB_ACTIVIDADES (WAC_ID_ACTIVIDAD) LOGGING NOPARALLEL; CREATE UNIQUE INDEX PK_WCI_ID_CIUDAD ON CRM_WEB_CIUDADES (WCI_ID_CIUDAD) LOGGING NOPARALLEL; CREATE UNIQUE INDEX PK_WCL_ID_CLIENTE ON CRM_WEB_CLIENTES (WCL_ID_CLIENTE) LOGGING NOPARALLEL;
Ilustración 15
Script del Esquema
CREATE UNIQUE INDEX PK_WCT_ID_CATEGORIA ON CRM_WEB_CATEGORIAS (WCT_ID_CATEGORIA) LOGGING NOPARALLEL; CREATE UNIQUE INDEX PK_WDC_ID_DIVISION_CATEG ON CRM_WEB_DIVISION_CATEG (WDC_ID_DIVISION_CATEG) LOGGING NOPARALLEL; CREATE UNIQUE INDEX PK_WEN_ID_ENCUESTA ON CRM_WEB_ENCUESTAS (WEN_ID_ENCUESTA) LOGGING NOPARALLEL;
CREATE UNIQUE INDEX PK_WIN_ID_INQUIETUD ON CRM_WEB_INQUIETUDES (WIN_ID_INQUIETUD) LOGGING NOPARALLEL; CREATE UNIQUE INDEX PK_WIT_ID_ITEM ON CRM_WEB_ITEMS (WIT_ID_ITEM) LOGGING NOPARALLEL; CREATE UNIQUE INDEX PK_WIT_ID_PROMOCION_ITEM ON CRM_WEB_PROMOCION_ITEM (WPI_ID_PROMOCION, WPI_ID_ITEM) LOGGING NOPARALLEL; CREATE UNIQUE INDEX PK_WLN_ID_LINEA_NEGOCIO ON CRM_WEB_LINEA_NEGOCIO (WLN_ID_LINEA_NEGOCIO) LOGGING NOPARALLEL; CREATE UNIQUE INDEX PK_WNO_ID_NOTICIA ON CRM_WEB_NOTICIAS (WNO_ID_NOTICIA) LOGGING NOPARALLEL; CREATE UNIQUE INDEX PK_WPE_ID_PREGUNTA_ENCUESTA ON CRM_WEB_PREGUNTA_ENCUESTA (WPE_ID_PREGUNTA_ENCUESTA) LOGGING NOPARALLEL; CREATE UNIQUE INDEX PK_WPL_ID_PLAN ON CRM_WEB_PLANES (WPL_ID_PLAN) LOGGING NOPARALLEL; CREATE UNIQUE INDEX PK_WPR_ID_PROMOCION ON CRM_WEB_PROMOCIONES (WPR_ID_PROMOCION) LOGGING NOPARALLEL;
Ilustración 16
Script del Esquema
CREATE UNIQUE INDEX PK_WRC_ID_REGISTRO_CLIENTE ON CRM_WEB_REGISTRO_CLIENTE (WRC_ID_REGISTRO_CLIENTE) LOGGING NOPARALLEL; CREATE UNIQUE INDEX PK_WRE_ID_RESPUESTA_ENCUESTA ON CRM_WEB_RESPUESTA_ENCUESTA (WRE_ID_RESPUESTA_ENCUESTA) LOGGING NOPARALLEL; CREATE UNIQUE INDEX PK_WRI_ID_ITEM ON CRM_WEB_PRECIO_ITEM (WRI_ID_ITEM) LOGGING NOPARALLEL; CREATE UNIQUE INDEX PK_WSE_ID_SERVICIO ON CRM_WEB_SERVICIOS (WSE_ID_SERVICIO) LOGGING NOPARALLEL; CREATE UNIQUE INDEX PK_WSR_ID_SEL_RES_ENCUESTA ON CRM_WEB_SEL_RESPUESTA_ENCUESTA (WSR_ID_SEL_RESPUESTA_ENCUESTA) LOGGING NOPARALLEL; CREATE UNIQUE INDEX PK_WTC_ID_TIPO_CLIENTE ON CRM_WEB_TIPO_CLIENTE (WTC_ID_TIPO_CLIENTE) LOGGING NOPARALLEL;
Ilustración 17
Script del Esquema
Script de Paquetes
CREATE DATABASE LINK CRM CONNECT TO CRM IDENTIFIED BY <PWD> USING 'crm'; CREATE OR REPLACE PACKAGE PKG_WEB_CRM IS NOMBRE_PACKAGE CONSTANT VARCHAR2(40) := 'PKG_WEB_CRM'; NOMBRE_PROCEDURE VARCHAR2(50) := NULL; -------Ingreso de clientes posibles--------------- PROCEDURE SP_INGRESA_CLIENTES ( ID_TIPO_CLIENTE IN CRM_WEB_CLIENTES.WCL_ID_TIPO_CLIENTE%TYPE, ID_ACTIVIDAD IN CRM_WEB_CLIENTES.WCL_ID_ACTIVIDAD%TYPE, ID_CIUDAD IN CRM_WEB_CLIENTES.WCL_ID_CIUDAD%TYPE, NOMBRES IN CRM_WEB_CLIENTES.WCL_NOMBRES%TYPE, APELLIDOS IN CRM_WEB_CLIENTES.WCL_APELLIDOS%TYPE, RUC_CI IN CRM_WEB_CLIENTES.WCL_RUC_CI%TYPE, CONTACTO IN CRM_WEB_CLIENTES.WCL_CONTACTO%TYPE, SEXO IN CRM_WEB_CLIENTES.WCL_SEXO%TYPE, CELULAR IN CRM_WEB_CLIENTES.WCL_CELULAR%TYPE, CONVENCIONAL IN CRM_WEB_CLIENTES.WCL_CONVENCIONAL%TYPE, DIRECCION IN CRM_WEB_CLIENTES.WCL_DIRECCION%TYPE, E_MAIL IN CRM_WEB_CLIENTES.WCL_E_MAIL%TYPE, ESTADO IN CRM_WEB_CLIENTES.WCL_ESTADO%TYPE, OBSERVACION IN CRM_WEB_CLIENTES.WCL_OBSERVACION%TYPE, CODIGO_ERROR OUT NUMERIC, DESCRIPCION_ERROR OUT VARCHAR2 ); -- Purpose : Reguitrar las Inquietudes de los Clientes PROCEDURE SP_INGRESA_INQUIETUDES ( TIPO IN CRM_WEB_INQUIETUDES.WIN_TIPO%TYPE, INQUIETUD IN CRM_WEB_INQUIETUDES.WIN_INQUIETUD%TYPE, SOLUCION IN CRM_WEB_INQUIETUDES.WIN_SOLUCION%TYPE, ESTADO IN CRM_WEB_INQUIETUDES.WIN_ESTADO%TYPE, CODIGO_ERROR OUT NUMERIC, DESCRIPCION_ERROR OUT VARCHAR2 ); -- Purpose : Registrar las noticias en la WEB PROCEDURE SP_INGRESA_NOTICIAS ( TITULO IN CRM_WEB_NOTICIAS.WNO_TITULO%TYPE, TEXTO IN CRM_WEB_NOTICIAS.WNO_TEXTO%TYPE, FECHA_EXPIRACION IN VARCHAR2, ESTADO IN CRM_WEB_NOTICIAS.WNO_ESTADO%TYPE,
Ilustración 18
Script de Paquetes
IMAGEN IN CRM_WEB_NOTICIAS.WNO_IMAGEN%TYPE, CODIGO_ERROR OUT NUMERIC, DESCRIPCION_ERROR OUT VARCHAR2 ); -- Purpose : Registar Clientes PROCEDURE SP_INGRESA_REGISTRO_CLIENTE ( RUC_CI IN CRM_WEB_REGISTRO_CLIENTE.WRC_RUC_CI%TYPE, NOMBRE IN CRM_WEB_REGISTRO_CLIENTE.WRC_NOMBRE%TYPE, USUARIO IN CRM_WEB_REGISTRO_CLIENTE.WRC_USUARIO%TYPE, PASSWORD IN CRM_WEB_REGISTRO_CLIENTE.WRC_PASSWORD%TYPE, RECORDATORIO IN CRM_WEB_REGISTRO_CLIENTE.WRC_RECORDATORIO%TYPE, ESTADO IN CRM_WEB_REGISTRO_CLIENTE.WRC_ESTADO%TYPE, CODIGO_ERROR OUT NUMERIC, DESCRIPCION_ERROR OUT VARCHAR2 ); /*PROCEDIMIENTO INGRESA RESPUESTA DE ENCUESTA*/ PROCEDURE SP_INGRESA_SEL_RESPUES_ENCUES ( COD_ENCUESTA IN CRM_WEB_SEL_RESPUESTA_ENCUESTA.WSR_ID_ENCUESTA%TYPE, COD_PREGUNTA IN CRM_WEB_SEL_RESPUESTA_ENCUESTA.WSR_ID_PREGUNTA_ENCUESTA%TYPE, COD_REPUESTA IN CRM_WEB_SEL_RESPUESTA_ENCUESTA.WSR_ID_RESPUESTA_ENCUESTA%TYPE, SUGERENCIA IN CRM_WEB_SUGERENCIA_ENCUESTA.WSE_OBSERVACION%TYPE, CODIGO_ERROR OUT NUMERIC, DESCRIPCION_ERROR OUT VARCHAR2 ); /*PROCEDIMIENTO DE MODIFICACION DE INQUIETUDES*/ PROCEDURE SP_MODIFICA_INQUIETUDES ( ID_INQUIETUD IN CRM_WEB_INQUIETUDES.WIN_ID_INQUIETUD%TYPE, TIPO IN CRM_WEB_INQUIETUDES.WIN_TIPO%TYPE, INQUIETUD IN CRM_WEB_INQUIETUDES.WIN_INQUIETUD%TYPE, SOLUCION IN CRM_WEB_INQUIETUDES.WIN_SOLUCION%TYPE, ESTADO IN CRM_WEB_INQUIETUDES.WIN_ESTADO%TYPE, CODIGO_ERROR OUT NUMERIC, DESCRIPCION_ERROR OUT VARCHAR2 ); /*PROCEDIMIENTO DE MODIFICACION DE NOTICIAS*/ PROCEDURE SP_MODIFICA_NOTICIAS ( ID_NOTICIA IN CRM_WEB_NOTICIAS.WNO_ID_NOTICIA%TYPE, TITULO IN CRM_WEB_NOTICIAS.WNO_TITULO%TYPE,
Ilustración 19
Script de Paquetes
TEXTO IN CRM_WEB_NOTICIAS.WNO_TEXTO%TYPE, FECHA_EXPIRACION IN VARCHAR2, ESTADO IN CRM_WEB_NOTICIAS.WNO_ESTADO%TYPE, IMAGEN IN CRM_WEB_NOTICIAS.WNO_IMAGEN%TYPE, CODIGO_ERROR OUT NUMERIC, DESCRIPCION_ERROR OUT VARCHAR2 ); /*PROCEDIMIENTO MODIFICA DE PROMOCIONES*/ PROCEDURE SP_MODIFICA_PROMOCIONES ( ID_PROMOCION IN CRM_WEB_PROMOCIONES.WPR_ID_PROMOCION%TYPE, IMAGEN IN CRM_WEB_PROMOCIONES.WPR_IMAGEN%TYPE, ESTADO IN CRM_WEB_PROMOCIONES.WPR_ESTADO%TYPE, CODIGO_ERROR OUT NUMERIC, DESCRIPCION_ERROR OUT VARCHAR2 ); /*PROCEDIMIENTO MODIFICACION DE REGISTRO DE CLIENTES*/ PROCEDURE SP_MODIFICA_REGISTRO_CLIENTE ( COD_CLIENTE IN CRM_WEB_REGISTRO_CLIENTE.WRC_ID_CLIENTE%TYPE, USUARIO IN CRM_WEB_REGISTRO_CLIENTE.WRC_USUARIO%TYPE, NEW_PASSWORD IN CRM_WEB_REGISTRO_CLIENTE.WRC_PASSWORD%TYPE, RECORDATORIO IN CRM_WEB_REGISTRO_CLIENTE.WRC_RECORDATORIO%TYPE, CODIGO_ERROR OUT NUMERIC, DESCRIPCION_ERROR OUT VARCHAR2 ); /*PROCEDIMIENTO DE ACTIVACION DE CLIENTES REGISTRADOS*/ PROCEDURE SP_ACTIVACION_REGISTRO_CLIENTE ( ID_REGISTRO_CLIENTE IN CRM_WEB_REGISTRO_CLIENTE.WRC_ID_REGISTRO_CLIENTE%TYPE, ESTADO IN CRM_WEB_REGISTRO_CLIENTE.WRC_ESTADO%TYPE, CODIGO_ERROR OUT NUMERIC, DESCRIPCION_ERROR OUT VARCHAR2 ); /*PROCEDIMIENTO DE ACTIVACION DE ENCUESTAS*/ PROCEDURE SP_ACTIVACION_ENCUESTAS ( ID_ENCUESTA IN CRM_WEB_ENCUESTAS.WEN_ID_ENCUESTA%TYPE, ESTADO IN CRM_WEB_ENCUESTAS.WEN_ESTADO%TYPE, CODIGO_ERROR OUT NUMERIC, DESCRIPCION_ERROR OUT VARCHAR2 ); /*PROCEDIMIENTO DE ACTIVACION DE ITEMS*/
Ilustración 20
Script de Paquetes
PROCEDURE SP_ACTIVACION_ITEMS ( ID_ITEM IN CRM_WEB_ITEMS.WIT_ID_ITEM%TYPE, ESTADO IN CRM_WEB_ITEMS.WIT_ESTADO%TYPE, CODIGO_ERROR OUT NUMERIC, DESCRIPCION_ERROR OUT VARCHAR2 ); /*PROCEDIMIENTO DE ELIMINACION DE INQUIETUDES*/ PROCEDURE SP_ELIMINA_INQUIETUDES ( REGISTROS IN VARCHAR2, CODIGO_ERROR OUT NUMERIC, DESCRIPCION_ERROR OUT VARCHAR2 ); /*PROCEDIMIENTO DE ELIMINACION DE CLIENTES REGISTRADOS*/ PROCEDURE SP_ELIMINA_REGISTRO_CLIENTE ( REGISTROS IN VARCHAR2, CODIGO_ERROR OUT NUMERIC, DESCRIPCION_ERROR OUT VARCHAR2 ); /*PROCEDIMIENTO DE ELIMINACION DE NOTICIAS*/ PROCEDURE SP_ELIMINA_NOTICIAS ( REGISTROS IN VARCHAR2, CODIGO_ERROR OUT NUMERIC, DESCRIPCION_ERROR OUT VARCHAR2 ); /*PROCEDIMIENTO ELIMINA DE PROMOCIONES*/ PROCEDURE SP_ELIMINA_PROMOCIONES ( REGISTROS IN VARCHAR2, CODIGO_ERROR OUT NUMERIC, DESCRIPCION_ERROR OUT VARCHAR2 ); /*PROCEDIMIENTO ELIMINACION DE ENCUESTA*/ PROCEDURE SP_ELIMINA_ENCUESTAS ( REGISTROS IN VARCHAR2, CODIGO_ERROR OUT NUMERIC, DESCRIPCION_ERROR OUT VARCHAR2 );
Ilustración 21
Script de Paquetes
/*PROCEDIMIENTO ELIMINACION DE ITEMS*/ PROCEDURE SP_ELIMINA_ITEMS ( REGISTROS IN VARCHAR2, CODIGO_ERROR OUT NUMERIC, DESCRIPCION_ERROR OUT VARCHAR2 ); /*CONSULTA DE REGISTRO DE CLIENTE*/ PROCEDURE SP_CONSULTA_REGISTRO_CLIENTE ( RUC_CI IN CRM_WEB_REGISTRO_CLIENTE.WRC_RUC_CI%TYPE, USUARIO IN CRM_WEB_REGISTRO_CLIENTE.WRC_USUARIO%TYPE, RECORDATORIO OUT VARCHAR2, CODIGO_ERROR OUT NUMERIC, DESCRIPCION_ERROR OUT VARCHAR2 ); /*CONSULTA DE ARCHIVO DE ENCUESTA*/ PROCEDURE SP_CONSULTA_ARCHIVO_ECUENTA ( COD_CLIENTE IN NUMERIC, MES IN VARCHAR2, ANIO IN VARCHAR2, REGISTROS IN OUT SYS_REFCURSOR, CODIGO_ERROR OUT NUMERIC, DESCRIPCION_ERROR OUT VARCHAR2 ); --Consulta del registro del cliente PROCEDURE SP_CONSULTA_ACCESO_REGISTRO ( USUARIO IN CRM_WEB_REGISTRO_CLIENTE.WRC_USUARIO%TYPE, CLAVE IN CRM_WEB_REGISTRO_CLIENTE.WRC_PASSWORD%TYPE, CI_RUC_CLI OUT VARCHAR2, NOMBRECLI OUT VARCHAR2, CODCLIENTE OUT NUMERIC, CODIGO_ERROR OUT NUMERIC, DESCRIPCION_ERROR OUT VARCHAR2 ); --Consulta del registro de Items PROCEDURE SP_CONSULTA_ITEMS ( REGISTROS IN OUT SYS_REFCURSOR, CODIGO_ERROR OUT NUMERIC, DESCRIPCION_ERROR OUT VARCHAR2 ); PROCEDURE SP_CONSULTA_PAQUETES ( PAQUETE IN VARCHAR2, REGISTROS IN OUT SYS_REFCURSOR, CODIGO_ERROR OUT NUMERIC, DESCRIPCION_ERROR OUT VARCHAR2 );
Ilustración 22
Script de Paquetes
PROCEDURE SP_INGRESA_RECLAMOS ( ID_CLIENTE IN NUMBER, TIPO_RECLAMO IN NUMBER, CENTRO_ATENCION IN NUMBER, DESCRIPCION_RECLAMO IN VARCHAR2, ESTADO IN VARCHAR2, CODIGO_ERROR OUT NUMERIC, DESCRIPCION_ERROR OUT VARCHAR2 END PKG_WEB_CRM; / SHOW ERRORS; CREATE OR REPLACE PACKAGE BODY PKG_WEB_CRM IS /*PROCEDIMIENTO INGRESO DE CLIENTES*/ PROCEDURE SP_INGRESA_CLIENTES ( ID_TIPO_CLIENTE IN CRM_WEB_CLIENTES.WCL_ID_TIPO_CLIENTE%TYPE, ID_ACTIVIDAD IN CRM_WEB_CLIENTES.WCL_ID_ACTIVIDAD%TYPE, ID_CIUDAD IN CRM_WEB_CLIENTES.WCL_ID_CIUDAD%TYPE, NOMBRES IN CRM_WEB_CLIENTES.WCL_NOMBRES%TYPE, APELLIDOS IN CRM_WEB_CLIENTES.WCL_APELLIDOS%TYPE, RUC_CI IN CRM_WEB_CLIENTES.WCL_RUC_CI%TYPE, CONTACTO IN CRM_WEB_CLIENTES.WCL_CONTACTO%TYPE, SEXO IN CRM_WEB_CLIENTES.WCL_SEXO%TYPE, CELULAR IN CRM_WEB_CLIENTES.WCL_CELULAR%TYPE, CONVENCIONAL IN CRM_WEB_CLIENTES.WCL_CONVENCIONAL%TYPE, DIRECCION IN CRM_WEB_CLIENTES.WCL_DIRECCION%TYPE, E_MAIL IN CRM_WEB_CLIENTES.WCL_E_MAIL%TYPE, ESTADO IN CRM_WEB_CLIENTES.WCL_ESTADO%TYPE, OBSERVACION IN CRM_WEB_CLIENTES.WCL_OBSERVACION%TYPE, CODIGO_ERROR OUT NUMERIC, DESCRIPCION_ERROR OUT VARCHAR2 ) AS BEGIN INSERT INTO CRM_WEB_CLIENTES ( WCL_ID_CLIENTE, WCL_ID_TIPO_CLIENTE, WCL_ID_ACTIVIDAD, WCL_ID_CIUDAD, WCL_NOMBRES, WCL_APELLIDOS, WCL_RUC_CI, WCL_CONTACTO, WCL_SEXO, WCL_CELULAR, WCL_CONVENCIONAL, WCL_DIRECCION, WCL_E_MAIL,
Ilustración 23
Script de Paquetes
WCL_ESTADO, WCL_FECHA_INGRESO, WCL_OBSERVACION ) VALUES ( SEC_CRM_WEB_CLIENTES.NEXTVAL, ID_TIPO_CLIENTE, ID_ACTIVIDAD, ID_CIUDAD, NOMBRES, APELLIDOS, RUC_CI, CONTACTO, SEXO, CELULAR, CONVENCIONAL, DIRECCION, E_MAIL, ESTADO, SYSDATE, OBSERVACION ); EXCEPTION WHEN OTHERS THEN CODIGO_ERROR := SQLCODE; DESCRIPCION_ERROR := SQLERRM; PKG_WEB_CRM.NOMBRE_PROCEDURE := 'SP_INGRESA_CLIENTES'; END SP_INGRESA_CLIENTES; /*PROCEDIMIENTO INGRESO DE INQUIETUDES*/ PROCEDURE SP_INGRESA_INQUIETUDES ( TIPO IN CRM_WEB_INQUIETUDES.WIN_TIPO%TYPE, INQUIETUD IN CRM_WEB_INQUIETUDES.WIN_INQUIETUD%TYPE, SOLUCION IN CRM_WEB_INQUIETUDES.WIN_SOLUCION%TYPE, ESTADO IN CRM_WEB_INQUIETUDES.WIN_ESTADO%TYPE, CODIGO_ERROR OUT NUMERIC, DESCRIPCION_ERROR OUT VARCHAR2 ) AS BEGIN INSERT INTO CRM_WEB_INQUIETUDES ( WIN_ID_INQUIETUD, WIN_TIPO, WIN_INQUIETUD, WIN_SOLUCION, WIN_ESTADO ) VALUES ( SEC_CRM_WEB_INQUIETUDES.NEXTVAL, TIPO,
Ilustración 24
Script de Paquetes
INQUIETUD, SOLUCION, ESTADO ); EXCEPTION WHEN OTHERS THEN CODIGO_ERROR := SQLCODE; DESCRIPCION_ERROR := SQLERRM; PKG_WEB_CRM.NOMBRE_PROCEDURE := 'SP_INGRESA_INQUIETUDES'; END SP_INGRESA_INQUIETUDES; /*PROCEDIMIENTO INGRESO DE NOTICIAS*/ PROCEDURE SP_INGRESA_NOTICIAS ( TITULO IN CRM_WEB_NOTICIAS.WNO_TITULO%TYPE, TEXTO IN CRM_WEB_NOTICIAS.WNO_TEXTO%TYPE, FECHA_EXPIRACION IN VARCHAR2, ESTADO IN CRM_WEB_NOTICIAS.WNO_ESTADO%TYPE, IMAGEN IN CRM_WEB_NOTICIAS.WNO_IMAGEN%TYPE, CODIGO_ERROR OUT NUMERIC, DESCRIPCION_ERROR OUT VARCHAR2 ) AS BEGIN INSERT INTO CRM_WEB_NOTICIAS ( WNO_ID_NOTICIA, WNO_TITULO, WNO_TEXTO, WNO_FECHA_EXPIRACION, WNO_ESTADO, WNO_IMAGEN ) VALUES ( SEC_CRM_WEB_NOTICIAS.NEXTVAL, TITULO, TEXTO, TO_DATE(FECHA_EXPIRACION,'dd/mm/yyyy'), ESTADO, IMAGEN ); EXCEPTION WHEN OTHERS THEN CODIGO_ERROR := SQLCODE; DESCRIPCION_ERROR := SQLERRM; PKG_WEB_CRM.NOMBRE_PROCEDURE := 'SP_INGRESA_NOTICIAS'; END SP_INGRESA_NOTICIAS; /*PROCEDIMIENTO INGRESO DE REGISTRO DE CLIENTES*/ PROCEDURE SP_INGRESA_REGISTRO_CLIENTE ( RUC_CI IN CRM_WEB_REGISTRO_CLIENTE.WRC_RUC_CI%TYPE,
Ilustración 25
Script de Paquetes
NOMBRE IN CRM_WEB_REGISTRO_CLIENTE.WRC_NOMBRE%TYPE, USUARIO IN CRM_WEB_REGISTRO_CLIENTE.WRC_USUARIO%TYPE, PASSWORD IN CRM_WEB_REGISTRO_CLIENTE.WRC_PASSWORD%TYPE, RECORDATORIO IN CRM_WEB_REGISTRO_CLIENTE.WRC_RECORDATORIO%TYPE, ESTADO IN CRM_WEB_REGISTRO_CLIENTE.WRC_ESTADO%TYPE, CODIGO_ERROR OUT NUMERIC, DESCRIPCION_ERROR OUT VARCHAR2 ) AS COD_CLIENTE NUMERIC; VAL_REPETIDO NUMERIC; BEGIN BEGIN SELECT CLN_ID INTO COD_CLIENTE FROM CRM_SCO_CLIENTE_NATURAL@CRM WHERE CLN_CEDULA=RUC_CI; EXCEPTION WHEN NO_DATA_FOUND THEN BEGIN SELECT CLJ_ID INTO COD_CLIENTE FROM CRM_SCO_CLIENTE_JURIDICO@CRM WHERE CLJ_RUC=RUC_CI; EXCEPTION WHEN NO_DATA_FOUND THEN IF COD_CLIENTE IS NULL THEN DESCRIPCION_ERROR :='Número de Identificación no pertenece a Cliente alguno...!'; RETURN; END IF; END; END; /******************************************/ SELECT COUNT(*) INTO VAL_REPETIDO FROM CRM_WEB_REGISTRO_CLIENTE WHERE WRC_RUC_CI=RUC_CI AND WRC_ESTADO='L'; IF VAL_REPETIDO> 0 THEN DESCRIPCION_ERROR :='El número de Identificación ya pertenece a un usuario.. Verifique sus datos por favor.!'; RETURN; END IF; /********************************************/ SELECT COUNT(*) INTO VAL_REPETIDO FROM CRM_WEB_REGISTRO_CLIENTE WHERE WRC_USUARIO=USUARIO AND WRC_ESTADO='L';
Ilustración 26
Script de Paquetes
IF VAL_REPETIDO> 0 THEN DESCRIPCION_ERROR :='El Usuario ya está asignado a otro cliente.. Cámbielo por favor.!'; RETURN; END IF; /************************************/ SELECT COUNT(*) INTO VAL_REPETIDO FROM CRM_WEB_REGISTRO_CLIENTE WHERE WRC_PASSWORD=PASSWORD AND WRC_ESTADO='L'; IF VAL_REPETIDO> 0 THEN DESCRIPCION_ERROR :='La Clave ya está asinada a otro usuario.. Cámbiela por favor.!'; RETURN; END IF; BEGIN INSERT INTO CRM_WEB_REGISTRO_CLIENTE ( WRC_ID_REGISTRO_CLIENTE, WRC_ID_CLIENTE, WRC_RUC_CI, WRC_NOMBRE, WRC_USUARIO, WRC_PASSWORD, WRC_RECORDATORIO, WRC_ESTADO ) VALUES ( SEC_CRM_WEB_REGISTRO_CLIENTE.NEXTVAL, COD_CLIENTE, RUC_CI, NOMBRE, USUARIO, PASSWORD, RECORDATORIO, ESTADO ); EXCEPTION WHEN OTHERS THEN CODIGO_ERROR := SQLCODE; DESCRIPCION_ERROR := SQLERRM; PKG_WEB_CRM.NOMBRE_PROCEDURE := 'SP_INGRESA_REGISTRO_CLIENTE'; END; END SP_INGRESA_REGISTRO_CLIENTE; /*PROCEDIMIENTO INGRESA RESPUESTA DE ENCUESTA*/ PROCEDURE SP_INGRESA_SEL_RESPUES_ENCUES (
Ilustración 27
Script de Paquetes
COD_ENCUESTA IN CRM_WEB_SEL_RESPUESTA_ENCUESTA.WSR_ID_ENCUESTA%TYPE, COD_PREGUNTA IN CRM_WEB_SEL_RESPUESTA_ENCUESTA.WSR_ID_PREGUNTA_ENCUESTA%TYPE, COD_REPUESTA IN CRM_WEB_SEL_RESPUESTA_ENCUESTA.WSR_ID_RESPUESTA_ENCUESTA%TYPE, SUGERENCIA IN CRM_WEB_SUGERENCIA_ENCUESTA.WSE_OBSERVACION%TYPE, CODIGO_ERROR OUT NUMERIC, DESCRIPCION_ERROR OUT VARCHAR2 ) AS SECUENCIA CRM_WEB_SEL_RESPUESTA_ENCUESTA.WSR_ID_SEL_RESPUESTA_ENCUESTA%TYPE; BEGIN BEGIN SELECT SEC_CRM_WEB_SEL_RESPUES_ENCUES.NEXTVAL INTO SECUENCIA FROM DUAL; INSERT INTO CRM_WEB_SEL_RESPUESTA_ENCUESTA ( WSR_ID_SEL_RESPUESTA_ENCUESTA, WSR_ID_ENCUESTA, WSR_ID_PREGUNTA_ENCUESTA, WSR_ID_RESPUESTA_ENCUESTA ) VALUES ( SECUENCIA, COD_ENCUESTA, COD_PREGUNTA, COD_REPUESTA ); EXCEPTION WHEN OTHERS THEN CODIGO_ERROR := SQLCODE; DESCRIPCION_ERROR := SQLERRM; PKG_WEB_CRM.NOMBRE_PROCEDURE := 'SP_INGRESA_SEL_RESPUES_ENCUES'; RETURN; END; IF SUGERENCIA IS NULL THEN RETURN; END IF; BEGIN INSERT INTO CRM_WEB_SUGERENCIA_ENCUESTA ( WSE_ID_SEL_RESPUESTA_ENCUESTA, WSE_OBSERVACION ) VALUES ( SECUENCIA, SUGERENCIA );
Ilustración 28
Script de Paquetes
EXCEPTION WHEN OTHERS THEN CODIGO_ERROR := SQLCODE; DESCRIPCION_ERROR := SQLERRM; PKG_WEB_CRM.NOMBRE_PROCEDURE := 'SP_INGRESA_SEL_RESPUES_ENCUES'; END; END SP_INGRESA_SEL_RESPUES_ENCUES; /*PROCEDIMIENTO MODIFICACION DE INQUIETUDTES*/ PROCEDURE SP_MODIFICA_INQUIETUDES ( ID_INQUIETUD IN CRM_WEB_INQUIETUDES.WIN_ID_INQUIETUD%TYPE, TIPO IN CRM_WEB_INQUIETUDES.WIN_TIPO%TYPE, INQUIETUD IN CRM_WEB_INQUIETUDES.WIN_INQUIETUD%TYPE, SOLUCION IN CRM_WEB_INQUIETUDES.WIN_SOLUCION%TYPE, ESTADO IN CRM_WEB_INQUIETUDES.WIN_ESTADO%TYPE, CODIGO_ERROR OUT NUMERIC, DESCRIPCION_ERROR OUT VARCHAR2 ) AS BEGIN UPDATE CRM_WEB_INQUIETUDES SET WIN_TIPO = TIPO, WIN_INQUIETUD = INQUIETUD, WIN_SOLUCION = SOLUCION, WIN_ESTADO = ESTADO WHERE WIN_ID_INQUIETUD = ID_INQUIETUD; EXCEPTION WHEN OTHERS THEN CODIGO_ERROR := SQLCODE; DESCRIPCION_ERROR := SQLERRM; PKG_WEB_CRM.NOMBRE_PROCEDURE := 'SP_MODIFICA_INQUIETUDES'; END SP_MODIFICA_INQUIETUDES; /*PROCEDIMIENTO MODIFICA DE NOTICIAS*/ PROCEDURE SP_MODIFICA_NOTICIAS ( ID_NOTICIA IN CRM_WEB_NOTICIAS.WNO_ID_NOTICIA%TYPE, TITULO IN CRM_WEB_NOTICIAS.WNO_TITULO%TYPE, TEXTO IN CRM_WEB_NOTICIAS.WNO_TEXTO%TYPE, FECHA_EXPIRACION IN VARCHAR2, ESTADO IN CRM_WEB_NOTICIAS.WNO_ESTADO%TYPE, IMAGEN IN CRM_WEB_NOTICIAS.WNO_IMAGEN%TYPE, CODIGO_ERROR OUT NUMERIC, DESCRIPCION_ERROR OUT VARCHAR2 ) AS BEGIN UPDATE CRM_WEB_NOTICIAS SET WNO_TITULO = TITULO,
Ilustración 29
Script de Paquetes
WNO_TEXTO = TEXTO, WNO_FECHA_EXPIRACION = TO_DATE(FECHA_EXPIRACION,'dd/mm/yyyy'), WNO_ESTADO = ESTADO, WNO_IMAGEN = IMAGEN WHERE WNO_ID_NOTICIA = ID_NOTICIA; EXCEPTION WHEN OTHERS THEN CODIGO_ERROR := SQLCODE; DESCRIPCION_ERROR := SQLERRM; PKG_WEB_CRM.NOMBRE_PROCEDURE := 'SP_MODIFICA_NOTICIAS'; END SP_MODIFICA_NOTICIAS; /*PROCEDIMIENTO MODIFICA PROMOCIONES*/ PROCEDURE SP_MODIFICA_PROMOCIONES ( ID_PROMOCION IN CRM_WEB_PROMOCIONES.WPR_ID_PROMOCION%TYPE, IMAGEN IN CRM_WEB_PROMOCIONES.WPR_IMAGEN%TYPE, ESTADO IN CRM_WEB_PROMOCIONES.WPR_ESTADO%TYPE, CODIGO_ERROR OUT NUMERIC, DESCRIPCION_ERROR OUT VARCHAR2 ) IS BEGIN UPDATE CRM_WEB_PROMOCIONES SET WPR_IMAGEN = IMAGEN, WPR_ESTADO = ESTADO WHERE WPR_ID_PROMOCION = ID_PROMOCION; EXCEPTION WHEN OTHERS THEN CODIGO_ERROR := SQLCODE; DESCRIPCION_ERROR := SQLERRM; PKG_WEB_CRM.NOMBRE_PROCEDURE := 'SP_MODIFICA_PROMOCIONES'; END SP_MODIFICA_PROMOCIONES; /*PROCEDIMIENTO MODIFICACION DE REGISTRO DE CLIENTES*/ PROCEDURE SP_MODIFICA_REGISTRO_CLIENTE ( COD_CLIENTE IN CRM_WEB_REGISTRO_CLIENTE.WRC_ID_CLIENTE%TYPE, USUARIO IN CRM_WEB_REGISTRO_CLIENTE.WRC_USUARIO%TYPE, NEW_PASSWORD IN CRM_WEB_REGISTRO_CLIENTE.WRC_PASSWORD%TYPE, RECORDATORIO IN CRM_WEB_REGISTRO_CLIENTE.WRC_RECORDATORIO%TYPE, CODIGO_ERROR OUT NUMERIC, DESCRIPCION_ERROR OUT VARCHAR2 ) AS VAL_REPETIDO NUMERIC; COD_SECUENCIA NUMERIC; BEGIN
Ilustración 30
Script de Paquetes
/********************************************/ SELECT COUNT(*) INTO VAL_REPETIDO FROM CRM_WEB_REGISTRO_CLIENTE WHERE WRC_PASSWORD=NEW_PASSWORD AND WRC_ESTADO='L'; IF VAL_REPETIDO> 0 THEN DESCRIPCION_ERROR :='La Clave ya está asinada a otro usuario.. Cámbiela por favor.!'; RETURN; END IF; BEGIN SELECT WRC_ID_REGISTRO_CLIENTE INTO COD_SECUENCIA FROM CRM_WEB_REGISTRO_CLIENTE WHERE WRC_ID_CLIENTE=COD_CLIENTE AND WRC_USUARIO=USUARIO AND WRC_ESTADO='L'; EXCEPTION WHEN NO_DATA_FOUND THEN IF COD_SECUENCIA IS NULL THEN DESCRIPCION_ERROR :='En este momento no se puede actualizar los datos. Por favor espere un momento y prueba mas tarde...!'; RETURN; END IF; END; BEGIN UPDATE CRM_WEB_REGISTRO_CLIENTE SET WRC_PASSWORD = NEW_PASSWORD, WRC_RECORDATORIO = RECORDATORIO WHERE WRC_ID_REGISTRO_CLIENTE=COD_SECUENCIA; EXCEPTION WHEN OTHERS THEN CODIGO_ERROR := SQLCODE; DESCRIPCION_ERROR := SQLERRM; PKG_WEB_CRM.NOMBRE_PROCEDURE := 'SP_MODIFICA_REGISTRO_CLIENTE'; END; END SP_MODIFICA_REGISTRO_CLIENTE; /*PROCEDIMIENTO ACTIVACION DE REGISTRO DE CLIENTES*/ PROCEDURE SP_ACTIVACION_REGISTRO_CLIENTE ( ID_REGISTRO_CLIENTE IN CRM_WEB_REGISTRO_CLIENTE.WRC_ID_REGISTRO_CLIENTE%TYPE, ESTADO IN CRM_WEB_REGISTRO_CLIENTE.WRC_ESTADO%TYPE, CODIGO_ERROR OUT NUMERIC, DESCRIPCION_ERROR OUT VARCHAR2 ) IS
Ilustración 31
Script de Paquetes
BEGIN UPDATE CRM_WEB_REGISTRO_CLIENTE SET WRC_ESTADO=ESTADO WHERE WRC_ID_REGISTRO_CLIENTE=ID_REGISTRO_CLIENTE; EXCEPTION WHEN OTHERS THEN CODIGO_ERROR := SQLCODE; DESCRIPCION_ERROR := SQLERRM; PKG_WEB_CRM.NOMBRE_PROCEDURE := 'SP_ACTIVACION_REGISTRO_CLIENTE'; END SP_ACTIVACION_REGISTRO_CLIENTE; /* Procedemiento Actualiza Encuestas*/ PROCEDURE SP_ACTIVACION_ENCUESTAS ( ID_ENCUESTA IN CRM_WEB_ENCUESTAS.WEN_ID_ENCUESTA%TYPE, ESTADO IN CRM_WEB_ENCUESTAS.WEN_ESTADO%TYPE, CODIGO_ERROR OUT NUMERIC, DESCRIPCION_ERROR OUT VARCHAR2 ) AS BEGIN UPDATE CRM_WEB_ENCUESTAS SET WEN_ESTADO=ESTADO WHERE WEN_ID_ENCUESTA=ID_ENCUESTA; EXCEPTION WHEN OTHERS THEN CODIGO_ERROR := SQLCODE; DESCRIPCION_ERROR := SQLERRM; PKG_WEB_CRM.NOMBRE_PROCEDURE := 'SP_ACTUALIZA_ENCUESTA'; END SP_ACTIVACION_ENCUESTAS; /* Procedemiento Actualiza ITEMS*/ PROCEDURE SP_ACTIVACION_ITEMS ( ID_ITEM IN CRM_WEB_ITEMS.WIT_ID_ITEM%TYPE, ESTADO IN CRM_WEB_ITEMS.WIT_ESTADO%TYPE, CODIGO_ERROR OUT NUMERIC, DESCRIPCION_ERROR OUT VARCHAR2 ) AS BEGIN UPDATE CRM_WEB_ITEMS SET WIT_ESTADO=ESTADO WHERE WIT_ID_ITEM=ID_ITEM; EXCEPTION WHEN OTHERS THEN CODIGO_ERROR := SQLCODE; DESCRIPCION_ERROR := SQLERRM;
Ilustración 32
Script de Paquetes
PKG_WEB_CRM.NOMBRE_PROCEDURE := 'SP_ACTUALIZA_ITEMS'; END SP_ACTIVACION_ITEMS; /*PROCEDIMIENTO ELIMINACION DE INQUIETUDTES*/ PROCEDURE SP_ELIMINA_INQUIETUDES ( REGISTROS IN VARCHAR2, CODIGO_ERROR OUT NUMERIC, DESCRIPCION_ERROR OUT VARCHAR2 ) AS SQL_STR VARCHAR2(100); BEGIN SQL_STR := 'DELETE'; SQL_STR := SQL_STR || ' FROM CRM_WEB_INQUIETUDES'; SQL_STR := SQL_STR || ' WHERE WIN_ID_INQUIETUD IN (' || REGISTROS || ')'; EXECUTE IMMEDIATE SQL_STR; EXCEPTION WHEN OTHERS THEN CODIGO_ERROR := SQLCODE; DESCRIPCION_ERROR := SQLERRM; PKG_WEB_CRM.NOMBRE_PROCEDURE := 'SP_ELIMINA_INQUIETUDES'; END SP_ELIMINA_INQUIETUDES; /*PROCEDIMIENTO ELIMINA DE REGISTRO DE CLIENTES*/ PROCEDURE SP_ELIMINA_REGISTRO_CLIENTE ( REGISTROS IN VARCHAR2, CODIGO_ERROR OUT NUMERIC, DESCRIPCION_ERROR OUT VARCHAR2 ) AS SQL_STR VARCHAR2(100); BEGIN SQL_STR := 'DELETE'; SQL_STR := SQL_STR || ' FROM CRM_WEB_REGISTRO_CLIENTE'; SQL_STR := SQL_STR || ' WHERE WRC_ID_REGISTRO_CLIENTE IN (' || REGISTROS || ')'; EXECUTE IMMEDIATE SQL_STR; EXCEPTION WHEN OTHERS THEN CODIGO_ERROR := SQLCODE; DESCRIPCION_ERROR := SQLERRM; PKG_WEB_CRM.NOMBRE_PROCEDURE := 'SP_ELIMINA_REGISTRO_CLIENTE';
END SP_ELIMINA_REGISTRO_CLIENTE; /*PROCEDIMIENTO ELIMINA DE NOTICIAS*/ PROCEDURE SP_ELIMINA_NOTICIAS (
Ilustración 33
Script de Paquetes
REGISTROS IN VARCHAR2, CODIGO_ERROR OUT NUMERIC, DESCRIPCION_ERROR OUT VARCHAR2 ) AS SQL_STR VARCHAR2(100); BEGIN SQL_STR := 'DELETE'; SQL_STR := SQL_STR || ' FROM CRM_WEB_NOTICIAS'; SQL_STR := SQL_STR || ' WHERE WNO_ID_NOTICIA IN (' || REGISTROS || ')'; EXECUTE IMMEDIATE SQL_STR; EXCEPTION WHEN OTHERS THEN CODIGO_ERROR := SQLCODE; DESCRIPCION_ERROR := SQLERRM; PKG_WEB_CRM.NOMBRE_PROCEDURE := 'SP_ELIMINA_NOTICIAS'; END SP_ELIMINA_NOTICIAS; /*PROCEDIMIENTO ELIMINA DE PROMOCIONES*/ PROCEDURE SP_ELIMINA_PROMOCIONES ( REGISTROS IN VARCHAR2, CODIGO_ERROR OUT NUMERIC, DESCRIPCION_ERROR OUT VARCHAR2 ) AS SQL_STR VARCHAR2(100); BEGIN SQL_STR := 'DELETE'; SQL_STR := SQL_STR || ' FROM CRM_WEB_PROMOCION_ITEM'; SQL_STR := SQL_STR || ' WHERE WPI_ID_PROMOCION IN (' || REGISTROS || ')'; EXECUTE IMMEDIATE SQL_STR; SQL_STR := 'DELETE'; SQL_STR := SQL_STR || ' FROM CRM_WEB_PROMOCIONES'; SQL_STR := SQL_STR || ' WHERE WPR_ID_PROMOCION IN (' || REGISTROS || ')'; EXECUTE IMMEDIATE SQL_STR; EXCEPTION WHEN OTHERS THEN CODIGO_ERROR := SQLCODE; DESCRIPCION_ERROR := SQLERRM; PKG_WEB_CRM.NOMBRE_PROCEDURE := 'SP_ELIMINA_PROMOCIONES'; END SP_ELIMINA_PROMOCIONES; /*PROCEDIMIENTO ELIMINA ENCUESTAS*/ PROCEDURE SP_ELIMINA_ENCUESTAS ( REGISTROS IN VARCHAR2, CODIGO_ERROR OUT NUMERIC, DESCRIPCION_ERROR OUT VARCHAR2 ) AS
Ilustración 34
Script de Paquetes
SQL_STR VARCHAR2(100); BEGIN SQL_STR := 'DELETE'; SQL_STR := SQL_STR || ' FROM CRM_WEB_SEL_RESPUESTA_ENCUESTA'; SQL_STR := SQL_STR || ' WHERE WSR_ID_ENCUESTA IN (' || REGISTROS || ')'; EXECUTE IMMEDIATE SQL_STR; SQL_STR := 'DELETE'; SQL_STR := SQL_STR || ' FROM CRM_WEB_RESPUESTA_ENCUESTA'; SQL_STR := SQL_STR || ' WHERE WRE_ID_PREGUNTA_ENCUESTA IN'; SQL_STR := SQL_STR || ' (SELECT WPE_ID_PREGUNTA_ENCUESTA'; SQL_STR := SQL_STR || ' FROM CRM_WEB_PREGUNTA_ENCUESTA'; SQL_STR := SQL_STR || ' WHERE WPE_ID_ENCUESTA IN (' || REGISTROS || '))'; EXECUTE IMMEDIATE SQL_STR; SQL_STR := 'DELETE'; SQL_STR := SQL_STR || ' FROM CRM_WEB_PREGUNTA_ENCUESTA'; SQL_STR := SQL_STR || ' WHERE WPE_ID_ENCUESTA IN (' || REGISTROS || ')'; EXECUTE IMMEDIATE SQL_STR; SQL_STR := 'DELETE'; SQL_STR := SQL_STR || ' FROM CRM_WEB_ENCUESTAS'; SQL_STR := SQL_STR || ' WHERE WEN_ID_ENCUESTA IN (' || REGISTROS || ')'; EXECUTE IMMEDIATE SQL_STR; EXCEPTION WHEN OTHERS THEN CODIGO_ERROR := SQLCODE; DESCRIPCION_ERROR := SQLERRM; PKG_WEB_CRM.NOMBRE_PROCEDURE := 'SP_ELIMINA_ENCUESTA'; END SP_ELIMINA_ENCUESTAS; /*PROCEDIMIENTO ELIMINA ITEMS*/ PROCEDURE SP_ELIMINA_ITEMS ( REGISTROS IN VARCHAR2, CODIGO_ERROR OUT NUMERIC, DESCRIPCION_ERROR OUT VARCHAR2 ) AS SQL_STR VARCHAR2(100); BEGIN SQL_STR := 'DELETE'; SQL_STR := SQL_STR || ' FROM CRM_WEB_PRECIO_ITEM'; SQL_STR := SQL_STR || ' WHERE WRI_ID_ITEM IN (' || REGISTROS || ')'; EXECUTE IMMEDIATE SQL_STR; SQL_STR := 'DELETE'; SQL_STR := SQL_STR || ' FROM CRM_WEB_ITEMS'; SQL_STR := SQL_STR || ' WHERE WIT_ID_ITEM IN (' || REGISTROS || ')'; EXECUTE IMMEDIATE SQL_STR;
Ilustración 35
Script de Paquetes
EXCEPTION WHEN OTHERS THEN CODIGO_ERROR := SQLCODE; DESCRIPCION_ERROR := SQLERRM; PKG_WEB_CRM.NOMBRE_PROCEDURE := 'SP_ELIMINA_ITEMS'; END SP_ELIMINA_ITEMS; PROCEDURE SP_CONSULTA_REGISTRO_CLIENTE ( RUC_CI IN CRM_WEB_REGISTRO_CLIENTE.WRC_RUC_CI%TYPE, USUARIO IN CRM_WEB_REGISTRO_CLIENTE.WRC_USUARIO%TYPE, RECORDATORIO OUT VARCHAR2, CODIGO_ERROR OUT NUMERIC, DESCRIPCION_ERROR OUT VARCHAR2 ) IS BEGIN SELECT '"' || WRC_RECORDATORIO || '"' INTO RECORDATORIO FROM CRM_WEB_REGISTRO_CLIENTE WHERE WRC_RUC_CI=RUC_CI AND WRC_USUARIO=USUARIO; EXCEPTION WHEN OTHERS THEN CODIGO_ERROR := SQLCODE; DESCRIPCION_ERROR := SQLERRM; PKG_WEB_CRM.NOMBRE_PROCEDURE := 'SP_CONSULTA_REGISTRO_CLIENTE'; END SP_CONSULTA_REGISTRO_CLIENTE; /*PROCEDIMIENTO CONSULTA DE CLIENTES ESTADO DE CUENTA*/ PROCEDURE SP_CONSULTA_ARCHIVO_ECUENTA ( COD_CLIENTE IN NUMERIC, MES IN VARCHAR2, ANIO IN VARCHAR2, REGISTROS IN OUT SYS_REFCURSOR, CODIGO_ERROR OUT NUMERIC, DESCRIPCION_ERROR OUT VARCHAR2 ) IS BEGIN OPEN REGISTROS FOR SELECT 'EC' || TO_CHAR(EGN_FECHA_ESTADO,'YYYY') || TO_CHAR(EGN_FECHA_ESTADO,'MM') || LPAD(TO_CHAR(EGN_CODIGO_CLI),7,'0') || '.PDF' "FILE", TO_CHAR(EGN_FECHA_ESTADO,'Month/ yyyy') "FECHA"
Ilustración 36
Script de Paquetes
FROM CRM_ECC_ESTADOS_GENERADOS@CRM WHERE EGN_CODIGO_CLI=COD_CLIENTE AND EGN_CODIGO_TPS=2 AND (TO_CHAR(EGN_FECHA_ESTADO,'MM')=MES AND TO_CHAR(EGN_FECHA_ESTADO,'YYYY')=ANIO) ORDER BY EGN_FECHA_HORA DESC; EXCEPTION WHEN NO_DATA_FOUND THEN DESCRIPCION_ERROR := 'Estado de cuenta no ha sido generado todavía...!'; WHEN OTHERS THEN CODIGO_ERROR := SQLCODE; DESCRIPCION_ERROR := SQLERRM; PKG_WEB_CRM.NOMBRE_PROCEDURE := 'SP_CONSULTA_REGISTRO_ECUENTA'; END SP_CONSULTA_ARCHIVO_ECUENTA; PROCEDURE SP_INGRESA_RECLAMOS ( ID_CLIENTE IN NUMBER, TIPO_RECLAMO IN NUMBER, CENTRO_ATENCION IN NUMBER, DESCRIPCION_RECLAMO IN VARCHAR2, ESTADO IN VARCHAR2, CODIGO_ERROR OUT NUMERIC, DESCRIPCION_ERROR OUT VARCHAR2 ) AS BEGIN INSERT INTO CRM_SCO_RECLAMO@CRM ( RCL_ID, RCL_CLIENTE, RCL_TIPO, RCL_CENT_ATEN, RCL_DESCRIPCION, RCL_FECHA, RCL_ESTADO ) VALUES ( CRM_SCO_S_RCL_ID.NEXTVAL@CRM, ID_CLIENTE, TIPO_RECLAMO, CENTRO_ATENCION, DESCRIPCION_RECLAMO, SYSDATE, ESTADO ); EXCEPTION WHEN OTHERS THEN CODIGO_ERROR := SQLCODE; DESCRIPCION_ERROR := SQLERRM; PKG_WEB_CRM.NOMBRE_PROCEDURE := 'SP_INGRESA_RECLAMOS'; END SP_INGRESA_RECLAMOS;
Ilustración 37
Script de Paquetes
/*PROCEDIMIENTO CONSULTA DE REGISTRO DE CLIENTES*/ --Consulta del registro del cliente PROCEDURE SP_CONSULTA_ACCESO_REGISTRO ( USUARIO IN CRM_WEB_REGISTRO_CLIENTE.WRC_USUARIO%TYPE, CLAVE IN CRM_WEB_REGISTRO_CLIENTE.WRC_PASSWORD%TYPE, CI_RUC_CLI OUT VARCHAR2, NOMBRECLI OUT VARCHAR2, CODCLIENTE OUT NUMERIC, CODIGO_ERROR OUT NUMERIC, DESCRIPCION_ERROR OUT VARCHAR2 ) IS CI_RUC VARCHAR2(13); NOMBRE_CLI VARCHAR2(50); COD_CLIENTE NUMERIC; BEGIN BEGIN SELECT WRC_ID_CLIENTE, WRC_NOMBRE,WRC_RUC_CI INTO COD_CLIENTE,NOMBRE_CLI,CI_RUC FROM CRM_WEB_REGISTRO_CLIENTE WHERE WRC_USUARIO=USUARIO AND WRC_PASSWORD=CLAVE AND WRC_ESTADO='L'; EXCEPTION WHEN NO_DATA_FOUND THEN DESCRIPCION_ERROR :='Clave o Usuario del Cliente no encontrada...!'; RETURN; END; CI_RUC_CLI:=CI_RUC; NOMBRECLI:=NOMBRE_CLI; CODCLIENTE:=COD_CLIENTE; EXCEPTION WHEN OTHERS THEN CODIGO_ERROR := SQLCODE; DESCRIPCION_ERROR := SQLERRM; PKG_WEB_CRM.NOMBRE_PROCEDURE := 'SP_CONSULTA_ACCESO_REGISTRO'; END SP_CONSULTA_ACCESO_REGISTRO; --Consulta del registro de Items PROCEDURE SP_CONSULTA_ITEMS ( REGISTROS IN OUT SYS_REFCURSOR, CODIGO_ERROR OUT NUMERIC, DESCRIPCION_ERROR OUT VARCHAR2 ) IS
Ilustración 38
Script de Paquetes
BEGIN BEGIN OPEN REGISTROS FOR SELECT LINEA_NEGOCIO.WLN_DESCRIPCION, SERVICIOS.WSE_DESCRIPCION, ITEMS.WIT_DESCRIPCION, TO_CHAR(PRECIOS.WRI_VALOR,'$99,999.00'), TO_CHAR(PRECIOS.WRI_FECHAVIGENCIA,'FMDD MONTH YYYY'), LINEA_NEGOCIO.WLN_ID_LINEA_NEGOCIO, SERVICIOS.WSE_ID_SERVICIO, ITEMS.WIT_ID_ITEM,'S' HREF FROM CRM_WEB_ITEMS ITEMS, CRM_WEB_PRECIO_ITEM PRECIOS, CRM_WEB_LINEA_NEGOCIO LINEA_NEGOCIO, CRM_WEB_SERVICIOS SERVICIOS WHERE ((LINEA_NEGOCIO.WLN_ESTADO='L') AND (SERVICIOS.WSE_ESTADO='L') AND (ITEMS.WIT_ESTADO='L') AND (PRECIOS.WRI_ESTADO='L') AND (PRECIOS.WRI_FECHAVIGENCIA>=SYSDATE) AND (ITEMS.WIT_ID_ITEM = PRECIOS.WRI_ID_ITEM) AND (LINEA_NEGOCIO.WLN_ID_LINEA_NEGOCIO = SERVICIOS.WSE_ID_LINEA_NEGOCIO) AND (SERVICIOS.WSE_ID_SERVICIO = ITEMS.WIT_ID_SERVICIO) AND (ITEMS.WIT_DESCRIPCION IN (SELECT CRM_WEB_PLANES.WPL_DESCRIPCION FROM CRM_WEB_PLANES, CRM_WEB_CATEGORIAS, CRM_WEB_DIVISION_CATEG WHERE ((CRM_WEB_PLANES.WPL_ESTADO = 'L') AND (CRM_WEB_CATEGORIAS.WCT_ESTADO = 'L') AND (CRM_WEB_DIVISION_CATEG.WDC_ESTADO = 'L') AND (CRM_WEB_PLANES.WPL_ID_PLAN = CRM_WEB_CATEGORIAS.WCT_ID_PLAN) AND (CRM_WEB_CATEGORIAS.WCT_ID_CATEGORIA = CRM_WEB_DIVISION_CATEG.WDC_ID_CATEGORIA))))) ORDER BY LINEA_NEGOCIO.WLN_ID_LINEA_NEGOCIO,SERVICIOS.WSE_ID_SERVICIO,PRECIOS.WRI_FECHAVIGENCIA; EXCEPTION WHEN NO_DATA_FOUND THEN DESCRIPCION_ERROR :='En este momento los datos no están publicados en WEB, revise en otro momento...!'; RETURN; END; EXCEPTION WHEN OTHERS THEN CODIGO_ERROR := SQLCODE; DESCRIPCION_ERROR := SQLERRM; PKG_WEB_CRM.NOMBRE_PROCEDURE := 'SP_CONSULTA_ITEMS'; END SP_CONSULTA_ITEMS; --Consulta de Paquetes PROCEDURE SP_CONSULTA_PAQUETES ( PAQUETE IN VARCHAR2, REGISTROS IN OUT SYS_REFCURSOR, CODIGO_ERROR OUT NUMERIC, DESCRIPCION_ERROR OUT VARCHAR2 ) IS BEGIN BEGIN
Ilustración 39
Script de Paquetes
OPEN REGISTROS FOR SELECT crm_web_planes.wpl_id_plan, crm_web_categorias.wct_id_categoria, crm_web_planes.wpl_descripcion, crm_web_categorias.wct_descripcion, crm_web_division_categ.wdc_descripcion FROM crm_web_categorias, crm_web_planes, crm_web_division_categ WHERE ( (crm_web_planes.wpl_estado = 'L') AND (crm_web_categorias.wct_estado = 'L') AND (crm_web_division_categ.wdc_estado = 'L') AND (crm_web_planes.wpl_id_plan = crm_web_categorias.wct_id_plan) AND (crm_web_categorias.wct_id_categoria = crm_web_division_categ.wdc_id_categoria) AND (crm_web_planes.wpl_descripcion=PAQUETE)) ORDER BY crm_web_planes.wpl_descripcion, crm_web_categorias.wct_descripcion; EXCEPTION WHEN NO_DATA_FOUND THEN DESCRIPCION_ERROR :='En este momento los datos no están publicados en WEB, revise en otro momento...!'; RETURN; END; EXCEPTION WHEN OTHERS THEN CODIGO_ERROR := SQLCODE; DESCRIPCION_ERROR := SQLERRM; PKG_WEB_CRM.NOMBRE_PROCEDURE := 'SP_CONSULTA_ITEMS'; END SP_CONSULTA_PAQUETES; END PKG_WEB_CRM; / SHOW ERRORS; CREATE OR REPLACE PROCEDURE SP_CONSULTA_ACCESO_REGISTRO ( USUARIO IN CRM_WEB_REGISTRO_CLIENTE.WRC_USUARIO%TYPE, CLAVE IN CRM_WEB_REGISTRO_CLIENTE.WRC_PASSWORD%TYPE, CI_RUC_CLI OUT VARCHAR2, NOMBRECLI OUT VARCHAR2, CODCLIENTE OUT NUMERIC, CODIGO_ERROR OUT NUMERIC, DESCRIPCION_ERROR OUT VARCHAR2 ) IS CI_RUC VARCHAR2(13); NOMBRE_CLI VARCHAR2(50); COD_CLIENTE NUMERIC; BEGIN BEGIN SELECT WRC_RUC_CI, WRC_NOMBRE INTO CI_RUC,NOMBRE_CLI FROM CRM_WEB_REGISTRO_CLIENTE WHERE WRC_USUARIO=USUARIO AND WRC_PASSWORD=CLAVE;
Ilustración 40
Script de Paquetes
EXCEPTION WHEN NO_DATA_FOUND THEN DESCRIPCION_ERROR :='Clave o Usuario del Cliente no encontrada...!'; RETURN; END; BEGIN SELECT CLN_ID INTO COD_CLIENTE FROM CRM_SCO_CLIENTE_NATURAL@CRM WHERE CLN_CEDULA=CI_RUC; EXCEPTION WHEN NO_DATA_FOUND THEN BEGIN SELECT CLJ_ID INTO COD_CLIENTE FROM CRM_SCO_CLIENTE_JURIDICO@CRM WHERE CLJ_RUC=CI_RUC; EXCEPTION WHEN NO_DATA_FOUND THEN IF COD_CLIENTE IS NULL THEN DESCRIPCION_ERROR :='Cliente no encontrado con esa Clave y Usuario...!'; RETURN; END IF; END; END; CI_RUC_CLI:=CI_RUC; NOMBRECLI:=NOMBRE_CLI; CODCLIENTE:=COD_CLIENTE; EXCEPTION WHEN OTHERS THEN CODIGO_ERROR := SQLCODE; DESCRIPCION_ERROR := SQLERRM; -- PKG_WEB_CRM.NOMBRE_PROCEDURE := 'SP_CONSULTA_ACCESO_REGISTRO'; END SP_CONSULTA_ACCESO_REGISTRO; / SHOW ERRORS; CREATE OR REPLACE PROCEDURE SP_INGRESA_CLIENTES ( ID_TIPO_CLIENTE IN CRM_WEB_CLIENTES.WCL_ID_TIPO_CLIENTE%TYPE, ID_ACTIVIDAD IN CRM_WEB_CLIENTES.WCL_ID_ACTIVIDAD%TYPE, ID_CIUDAD IN CRM_WEB_CLIENTES.WCL_ID_CIUDAD%TYPE, NOMBRES IN CRM_WEB_CLIENTES.WCL_NOMBRES%TYPE, APELLIDOS IN CRM_WEB_CLIENTES.WCL_APELLIDOS%TYPE, RUC_CI IN CRM_WEB_CLIENTES.WCL_RUC_CI%TYPE, CONTACTO IN CRM_WEB_CLIENTES.WCL_CONTACTO%TYPE, SEXO IN CRM_WEB_CLIENTES.WCL_SEXO%TYPE, CELULAR IN CRM_WEB_CLIENTES.WCL_CELULAR%TYPE, CONVENCIONAL IN CRM_WEB_CLIENTES.WCL_CONVENCIONAL%TYPE, DIRECCION IN CRM_WEB_CLIENTES.WCL_DIRECCION%TYPE, E_MAIL IN CRM_WEB_CLIENTES.WCL_E_MAIL%TYPE, ESTADO IN CRM_WEB_CLIENTES.WCL_ESTADO%TYPE,
Ilustración 41
Script de Paquetes
OBSERVACION IN CRM_WEB_CLIENTES.WCL_OBSERVACION%TYPE, CODIGO_ERROR OUT NUMERIC, DESCRIPCION_ERROR OUT VARCHAR2 ) AS BEGIN INSERT INTO CRM_WEB_CLIENTES ( WCL_ID_CLIENTE, WCL_ID_TIPO_CLIENTE, WCL_ID_ACTIVIDAD, WCL_ID_CIUDAD, WCL_NOMBRES, WCL_APELLIDOS, WCL_RUC_CI, WCL_CONTACTO, WCL_SEXO, WCL_CELULAR, WCL_CONVENCIONAL, WCL_DIRECCION, WCL_E_MAIL, WCL_ESTADO, WCL_FECHA_INGRESO, WCL_OBSERVACION ) VALUES ( SEC_CRM_WEB_CLIENTES.NEXTVAL, ID_TIPO_CLIENTE, ID_ACTIVIDAD, ID_CIUDAD, NOMBRES, APELLIDOS, RUC_CI, CONTACTO, SEXO, CELULAR, CONVENCIONAL, DIRECCION, E_MAIL, ESTADO, SYSDATE, OBSERVACION ); EXCEPTION WHEN OTHERS THEN CODIGO_ERROR := SQLCODE; DESCRIPCION_ERROR := SQLERRM; -- PKG_WEB_CRM.NOMBRE_PROCEDURE := 'SP_INGRESA_CLIENTES'; END SP_INGRESA_CLIENTES; / SHOW ERRORS; CREATE OR REPLACE PROCEDURE SP_INGRESA_RECLAMOS
Ilustración 42
Script de Paquetes (
ID_CLIENTE IN NUMBER, TIPO_RECLAMO IN NUMBER, CENTRO_ATENCION IN NUMBER, DESCRIPCION_RECLAMO IN VARCHAR2, ESTADO IN VARCHAR2 ) AS BEGIN INSERT INTO CRM_SCO_RECLAMO@CRM ( RCL_ID, RCL_CLIENTE, RCL_TIPO, RCL_CENT_ATEN, RCL_DESCRIPCION, RCL_FECHA, RCL_ESTADO ) VALUES ( CRM_SCO_S_RCL_ID.NEXTVAL@CRM, ID_CLIENTE, TIPO_RECLAMO, CENTRO_ATENCION, DESCRIPCION_RECLAMO, SYSDATE, ESTADO ); --EXCEPTION -- WHEN OTHERS THEN -- CODIGO_ERROR := SQLCODE; -- DESCRIPCION_ERROR := SQLERRM; -- PKG_WEB_CRM.NOMBRE_PROCEDURE := 'SP_INGRESA_RECLAMOS'; END SP_INGRESA_RECLAMOS; / SHOW ERRORS; CREATE OR REPLACE VIEW WCRM_GRDENCUESTAS AS select wen_id_encuesta "Id", wen_descripcion "Descripción", wln_descripcion "Linea de Negocio", wen_nummaxpre "Max Pruntas", wen_nummaxres "Max Respuestas", wen_estado "Estado" from crm_web_encuestas, crm_web_linea_negocio where wen_id_linea_negocio=wln_id_linea_negocio; CREATE OR REPLACE VIEW WCRM_GRDINQUIETUDES AS select win_id_inquietud "Id",win_inquietud "Inquietud",win_solucion "Respuesta",win_tipo "Tipo", win_estado "Estado" from crm_web_inquietudes;
Ilustración 43
Script de Paquetes
CREATE OR REPLACE VIEW WCRM_GRDITEMS AS select wit_id_item "Id", wse_descripcion "Servicio", wit_descripcion "Descripción Items", wit_estfact "Est. Fact.", wit_estado "Estado" from crm_web_items, crm_web_servicios where wit_id_servicio=wse_id_servicio; CREATE OR REPLACE VIEW WCRM_GRDNOTICIAS AS select wno_id_noticia "Id",wno_titulo "Titulo",wno_texto "Cuerpo" ,to_char(wno_fecha_expiracion,'dd/mm/yyyy') as "F. Expiracion", wno_estado "Estado", wno_imagen "Imagen" from crm_web_noticias; CREATE OR REPLACE VIEW WCRM_GRDPROMOCIONES AS select wpr_id_promocion "Id",wpr_descripcion "Descripción", wln_descripcion "Linea de Negocio", wpr_estado "Estado", wpr_imagen "Imagen" from crm_web_linea_negocio LN,crm_web_promociones PR where ln.wln_id_linea_negocio=pr.wpr_id_linea_negocio; CREATE OR REPLACE VIEW WCRM_GRDREGUISTROCLIENTE AS select wrc_id_registro_cliente "Id", wrc_ruc_ci "Identificación", wrc_nombre "Nombre", wrc_usuario "Usuario", wrc_estado "Estado" from crm_web_registro_cliente; ALTER TABLE CRM_WEB_ACTIVIDADES ADD ( CONSTRAINT PK_WAC_ID_ACTIVIDAD PRIMARY KEY (WAC_ID_ACTIVIDAD)); ALTER TABLE CRM_WEB_CATEGORIAS ADD ( CONSTRAINT PK_WCT_ID_CATEGORIA PRIMARY KEY (WCT_ID_CATEGORIA)); ALTER TABLE CRM_WEB_CIUDADES ADD ( CONSTRAINT PK_WCI_ID_CIUDAD PRIMARY KEY (WCI_ID_CIUDAD)); ALTER TABLE CRM_WEB_CLIENTES ADD ( CONSTRAINT PK_WCL_ID_CLIENTE PRIMARY KEY
Ilustración 44
Creación de Vistas
(WCL_ID_CLIENTE)); ALTER TABLE CRM_WEB_DIVISION_CATEG ADD ( CONSTRAINT PK_WDC_ID_DIVISION_CATEG PRIMARY KEY (WDC_ID_DIVISION_CATEG)); ALTER TABLE CRM_WEB_ENCUESTAS ADD ( CONSTRAINT PK_WEN_ID_ENCUESTA PRIMARY KEY (WEN_ID_ENCUESTA)); ALTER TABLE CRM_WEB_INQUIETUDES ADD ( CONSTRAINT PK_WIN_ID_INQUIETUD PRIMARY KEY (WIN_ID_INQUIETUD)); ALTER TABLE CRM_WEB_ITEMS ADD ( CONSTRAINT PK_WIT_ID_ITEM PRIMARY KEY (WIT_ID_ITEM)); ALTER TABLE CRM_WEB_LINEA_NEGOCIO ADD ( CONSTRAINT PK_WLN_ID_LINEA_NEGOCIO PRIMARY KEY (WLN_ID_LINEA_NEGOCIO)); ALTER TABLE CRM_WEB_NOTICIAS ADD ( CONSTRAINT PK_WNO_ID_NOTICIA PRIMARY KEY (WNO_ID_NOTICIA)); ALTER TABLE CRM_WEB_PLANES ADD ( CONSTRAINT PK_WPL_ID_PLAN PRIMARY KEY (WPL_ID_PLAN)); ALTER TABLE CRM_WEB_PRECIO_ITEM ADD ( CONSTRAINT PK_WRI_ID_ITEM PRIMARY KEY (WRI_ID_ITEM)); ALTER TABLE CRM_WEB_PREGUNTA_ENCUESTA ADD ( CONSTRAINT PK_WPE_ID_PREGUNTA_ENCUESTA PRIMARY KEY (WPE_ID_PREGUNTA_ENCUESTA)); ALTER TABLE CRM_WEB_PROMOCIONES ADD ( CONSTRAINT PK_WPR_ID_PROMOCION PRIMARY KEY (WPR_ID_PROMOCION)); ALTER TABLE CRM_WEB_PROMOCION_ITEM ADD ( CONSTRAINT PK_WIT_ID_PROMOCION_ITEM PRIMARY KEY (WPI_ID_PROMOCION, WPI_ID_ITEM));
Ilustración 45
Creación de Constraint
ALTER TABLE CRM_WEB_REGISTRO_CLIENTE ADD ( CONSTRAINT PK_WRC_ID_REGISTRO_CLIENTE PRIMARY KEY (WRC_ID_REGISTRO_CLIENTE)); ALTER TABLE CRM_WEB_RESPUESTA_ENCUESTA ADD ( CONSTRAINT PK_WRE_ID_RESPUESTA_ENCUESTA PRIMARY KEY (WRE_ID_RESPUESTA_ENCUESTA)); ALTER TABLE CRM_WEB_SEL_RESPUESTA_ENCUESTA ADD ( CONSTRAINT PK_WSR_ID_SEL_RES_ENCUESTA PRIMARY KEY (WSR_ID_SEL_RESPUESTA_ENCUESTA)); ALTER TABLE CRM_WEB_SERVICIOS ADD ( CONSTRAINT PK_WSE_ID_SERVICIO PRIMARY KEY (WSE_ID_SERVICIO)); ALTER TABLE CRM_WEB_SERVICIO_CLIENTE ADD ( CONSTRAINT PK_ID_SERVICIO_CLIENTE PRIMARY KEY (WSC_ID_CLIENTE, WSC_ID_SERVICIO)); ALTER TABLE CRM_WEB_TIPO_CLIENTE ADD ( CONSTRAINT PK_WTC_ID_TIPO_CLIENTE PRIMARY KEY (WTC_ID_TIPO_CLIENTE)); ALTER TABLE CRM_WEB_CATEGORIAS ADD ( CONSTRAINT FK_WCT_ID_PLAN FOREIGN KEY (WCT_ID_PLAN) REFERENCES CRM_WEB_PLANES (WPL_ID_PLAN)); ALTER TABLE CRM_WEB_CLIENTES ADD ( CONSTRAINT FK_WCL_ID_ACTIVIDAD FOREIGN KEY (WCL_ID_ACTIVIDAD) REFERENCES CRM_WEB_ACTIVIDADES (WAC_ID_ACTIVIDAD), CONSTRAINT FK_WCL_ID_CIUDAD FOREIGN KEY (WCL_ID_CIUDAD) REFERENCES CRM_WEB_CIUDADES (WCI_ID_CIUDAD), CONSTRAINT FK_WCL_ID_TIPO_CLIENTE FOREIGN KEY (WCL_ID_TIPO_CLIENTE) REFERENCES CRM_WEB_TIPO_CLIENTE (WTC_ID_TIPO_CLIENTE)); ALTER TABLE CRM_WEB_DIVISION_CATEG ADD ( CONSTRAINT FK_WDC_ID_CATEGORIA FOREIGN KEY (WDC_ID_CATEGORIA) REFERENCES CRM_WEB_CATEGORIAS (WCT_ID_CATEGORIA)); ALTER TABLE CRM_WEB_ENCUESTAS ADD ( CONSTRAINT FK_WEN_ID_LINEA_NEGOCIO FOREIGN KEY (WEN_ID_LINEA_NEGOCIO) REFERENCES CRM_WEB_LINEA_NEGOCIO (WLN_ID_LINEA_NEGOCIO));
Ilustración 46
Creación de Constraint
ALTER TABLE CRM_WEB_ITEMS ADD ( CONSTRAINT FK_WIT_ID_SERVICIO FOREIGN KEY (WIT_ID_SERVICIO) REFERENCES CRM_WEB_SERVICIOS (WSE_ID_SERVICIO)); ALTER TABLE CRM_WEB_PLANES ADD ( CONSTRAINT FK_WPL_ID_SERVICIO FOREIGN KEY (WPL_ID_SERVICIO) REFERENCES CRM_WEB_SERVICIOS (WSE_ID_SERVICIO)); ALTER TABLE CRM_WEB_PRECIO_ITEM ADD ( CONSTRAINT FK_WRI_ID_ITEM FOREIGN KEY (WRI_ID_ITEM) REFERENCES CRM_WEB_ITEMS (WIT_ID_ITEM)); ALTER TABLE CRM_WEB_PREGUNTA_ENCUESTA ADD ( CONSTRAINT FK_WPE_ID_ENCUESTA FOREIGN KEY (WPE_ID_ENCUESTA) REFERENCES CRM_WEB_ENCUESTAS (WEN_ID_ENCUESTA)); ALTER TABLE CRM_WEB_PROMOCIONES ADD ( CONSTRAINT FK_WPR_ID_LINEA_NEGOCIO FOREIGN KEY (WPR_ID_LINEA_NEGOCIO) REFERENCES CRM_WEB_LINEA_NEGOCIO (WLN_ID_LINEA_NEGOCIO)); ALTER TABLE CRM_WEB_PROMOCION_ITEM ADD ( CONSTRAINT FK_WPI_ID_ITEM FOREIGN KEY (WPI_ID_ITEM) REFERENCES CRM_WEB_ITEMS (WIT_ID_ITEM), CONSTRAINT FK_WPI_ID_PROMOCION FOREIGN KEY (WPI_ID_PROMOCION) REFERENCES CRM_WEB_PROMOCIONES (WPR_ID_PROMOCION)); ALTER TABLE CRM_WEB_RESPUESTA_ENCUESTA ADD ( CONSTRAINT FK_WRE_ID_PREGUNTA_ENCUESTA FOREIGN KEY (WRE_ID_PREGUNTA_ENCUESTA) REFERENCES CRM_WEB_PREGUNTA_ENCUESTA (WPE_ID_PREGUNTA_ENCUESTA)); ALTER TABLE CRM_WEB_SEL_RESPUESTA_ENCUESTA ADD ( CONSTRAINT FK_WSR_ID_ENCUESTA FOREIGN KEY (WSR_ID_ENCUESTA) REFERENCES CRM_WEB_ENCUESTAS (WEN_ID_ENCUESTA), CONSTRAINT FK_WSR_ID_PREGUNTA_ENCUESTA FOREIGN KEY (WSR_ID_PREGUNTA_ENCUESTA) REFERENCES CRM_WEB_PREGUNTA_ENCUESTA (WPE_ID_PREGUNTA_ENCUESTA), CONSTRAINT FK_WSR_ID_RESPUESTA_ENCUESTA FOREIGN KEY (WSR_ID_RESPUESTA_ENCUESTA) REFERENCES CRM_WEB_RESPUESTA_ENCUESTA (WRE_ID_RESPUESTA_ENCUESTA)); ALTER TABLE CRM_WEB_SERVICIOS ADD ( CONSTRAINT FK_WSE_ID_LINEA_NEGOCIO FOREIGN KEY (WSE_ID_LINEA_NEGOCIO) REFERENCES CRM_WEB_LINEA_NEGOCIO (WLN_ID_LINEA_NEGOCIO));
Ilustración 47
Creación de Constraint
ALTER TABLE CRM_WEB_SERVICIO_CLIENTE ADD ( CONSTRAINT FK_WSC_ID_SERVICIO FOREIGN KEY (WSC_ID_SERVICIO) REFERENCES CRM_WEB_SERVICIOS (WSE_ID_SERVICIO)); ALTER TABLE CRM_WEB_SUGERENCIA_ENCUESTA ADD ( CONSTRAINT FK_WSE_ID_SEL_RES_ENCUESTA FOREIGN KEY (WSE_ID_SEL_RESPUESTA_ENCUESTA) REFERENCES CRM_WEB_SEL_RESPUESTA_ENCUESTA (WSR_ID_SEL_RESPUESTA_ENCUESTA));
Ilustración 48
Creación de Constraint
Conexion a base de datos
package webecrm; import java.sql.*; import javax.naming.*; import javax.sql.*; public class cConexionWeb { public Connection getConexionWeb() { Connection oCon=null; DataSource oDs; InitialContext ic; try { ic = new InitialContext(); oDs = (DataSource)ic.lookup("jdbc/wcrmDS"); oCon = oDs.getConnection(); } catch(NamingException ne) { ne.printStackTrace(); } catch(SQLException se) { se.printStackTrace(); } return oCon; }
Ilustración 49
Conexion a base de datos
public void cerrarConexionWeb(Connection pCon) { try { pCon.close(); } catch(SQLException se) { se.printStackTrace(); } } }
Ilustración 50
Conexion a base de datos
Servlets Contacto – Posible Cliente package webecrm; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.*; import javax.servlet.http.*; public class sEjecutaContacto extends HttpServlet { private static final String CONTENT_TYPE = "text/html; charset=windows-1252"; public void init(ServletConfig config) throws ServletException { super.init(config); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.setContentType(CONTENT_TYPE); PrintWriter out = response.getWriter(); String MensajeErr=null; int CodigoErr=0; int pId_Tipo_Cliente=Integer.parseInt(request.getParameter("cmbTipoCliente")); int pId_Actividad=Integer.parseInt(request.getParameter("cmbActividad")); int pId_Ciudad=Integer.parseInt(request.getParameter("cmbCiudad")); String pNombres=request.getParameter("txtNombres");
Ilustración 51
Servlets Contacto
String pApellidos=request.getParameter("txtApellidos"); String pCi_Ruc=request.getParameter("txtCedula"); String pContacto=request.getParameter("txtContacto"); String pSexo=(request.getParameter("optSexo")==null?"M":request.getParameter("optSexo")); String pCelular=request.getParameter("txtCelular"); String pTelefono=request.getParameter("txtTelefono"); String pDireccion=request.getParameter("txtDireccion"); String pE_Mail=request.getParameter("txtMail"); String pAsunto=request.getParameter("txtAsunto"); try{ cDatosContacto oDatos = new cDatosContacto(); oDatos.oContacto.setCi_Ruc(pCi_Ruc); oDatos.oContacto.setId_Tipo_Cliente(pId_Tipo_Cliente); oDatos.oContacto.setId_Actividad(pId_Actividad); oDatos.oContacto.setId_Ciudad(pId_Ciudad); oDatos.oContacto.setNombres(pNombres); oDatos.oContacto.setApellidos(pApellidos); oDatos.oContacto.setCi_Ruc(pCi_Ruc); oDatos.oContacto.setContacto(pContacto); oDatos.oContacto.setSexo(pSexo); oDatos.oContacto.setCelular(pCelular); oDatos.oContacto.setTelefono(pTelefono); oDatos.oContacto.setDireccion(pDireccion); oDatos.oContacto.setE_Mail(pE_Mail); oDatos.oContacto.setAsunto(pAsunto); oDatos.Insertar_Registro(); MensajeErr=oDatos.getMensajeErr(); CodigoErr=oDatos.getCodigoErr(); cMensajes oMensaje = new cMensajes(); if (MensajeErr==null){ oMensaje.setMensaje("Agradecemos que haya ingresado sus datos personales para los mas pronto contactarnos con usted. Somos Cable System la mejor alternativa de televisión pagada."); oMensaje.setTipo(1); }else{ oMensaje.setMensaje(MensajeErr); oMensaje.setTipo(2); } out.println("<html><body onload=\"window.location.href='Mensaje.jsp?Fct=Son';\"></body></html>"); }catch (Exception e) { cMensajes proError = new cMensajes();
proError.setMensaje(e.getMessage()); proError.setTipo(3);
out.println("<html><body }out.close();
Ilustración 52
Servlets Contacto
onload=\"window.location.href='Mensaje.jsp?Fct=Son';\"></body></html>"); } }
Ilustración 53
Servlets Contacto
Activación de Servicios
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.setContentType(CONTENT_TYPE); PrintWriter out = response.getWriter(); String HttpDirec=""; boolean eveError=false; String LItems = request.getParameter("txtItems"); Cod_Cliente= Long.parseLong(request.getParameter("txtCliente")); Num_Contrato=Long.parseLong(request.getParameter("txtNumContrato")); LItems=LItems.toString().substring(1,LItems.toString().length()-1); String Items[]=LItems.toString().split(","); cMensajes oError=new cMensajes(); oError.setMensaje("Su servicio a sido ingresado satisfactorianente......!"); oError.setTipo(1); HttpDirec=oError.UrlMensaje; try{ Conn = oConexion.getConexionWeb(); Conn.setAutoCommit(false); for (int I=0;I<Items.length;I++){ Cod_Items=Long.parseLong(Items[I]); Insertar_Activacion(); if (MensajeErr!=null){ eveError=true; oError.setMensaje(MensajeErr); oError.setTipo(2); break; }}if (!eveError){ Conn.commit(); Conn.setAutoCommit(true); } oConexion.cerrarConexionWeb(Conn); } catch(SQLException e){ oError.setMensaje(e.getMessage()); oError.setTipo(3); }String s="<html><head></head>”+ HttpDirec+ "</body></html>"; out.println(s); out.close(); }
Ilustración 54
Servlets Registro de Clientes
Ingresa Clientes package webecrm; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.*; import javax.servlet.http.*; public class sIngresoClienteReg extends HttpServlet { private static final String CONTENT_TYPE = "text/html; charset=windows-1252"; public void init(ServletConfig config) throws ServletException { super.init(config); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.setContentType(CONTENT_TYPE); PrintWriter out = response.getWriter(); String MensajeErr=null; int CodigoErr=0; String pCIRuc=request.getParameter("txtIdentificacion"); String pNombre=request.getParameter("txtNombres"); String pUsuario=request.getParameter("txtUsuario"); String pClave=request.getParameter("txtPassword"); String pRecordatorio=request.getParameter("txtFrase"); try { cDatosRegistroCliente oDatos = new cDatosRegistroCliente(); oDatos.oRegistro.setCI_RUC(pCIRuc); oDatos.oRegistro.setNombre(pNombre); oDatos.oRegistro.setUsuario(pUsuario); oDatos.oRegistro.setPassword(pClave); oDatos.oRegistro.setRecordatorio(pRecordatorio); oDatos.Insertar_Registro(); MensajeErr=oDatos.getMensajeErr(); CodigoErr=oDatos.getCodigoErr(); cMensajes oMensaje = new cMensajes(); if (MensajeErr==null){ oMensaje.setMensaje("Agradecemos que se haya registrado, desde ahora podrá obtener todos los beneficios que Cable System tiene para Usted. Somos Cable System la mejor alternativa de televisión pagada."); oMensaje.setTipo(1); } else{ oMensaje.setMensaje(MensajeErr); oMensaje.setTipo(2); } out.println("<html><body
Ilustración 55
Servlets Ingresa Clientes
onload=\"window.location.href='Mensaje.jsp?Fct=Son';\"></body></html>"); } catch (Exception e) { cMensajes proError = new cMensajes(); proError.setMensaje(e.getMessage()); proError.setTipo(3); out.println("<html><body onload=\"window.location.href='Mensaje.jsp?Fct=Son';\"></body></html>"); } out.close(); } }
Ilustración 56
Servlets Ingresa Clientes
Modifica Clientes Registrados package webecrm; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.*; import javax.servlet.http.*; public class sModificaClienteReg extends HttpServlet { private static final String CONTENT_TYPE = "text/html; charset=windows-1252"; public void init(ServletConfig config) throws ServletException { super.init(config); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.setContentType(CONTENT_TYPE); PrintWriter out = response.getWriter(); String MensajeErr=null; int CodigoErr=0; long pCod_Cliente=Long.parseLong(request.getParameter("Cod_Cliente")); String pUsuario=request.getParameter("Usuario_Cliente");
Ilustración 57
Servlets Modifica Clientes
String pNewClave=request.getParameter("txtClaveNueva"); String pRecordatorio=request.getParameter("txtFrase"); try{ cDatosRegistroCliente oDatos = new cDatosRegistroCliente(); oDatos.oRegistro.setId_Cliente(pCod_Cliente); oDatos.oRegistro.setUsuario(pUsuario); oDatos.oRegistro.setNewPassword(pNewClave); oDatos.oRegistro.setRecordatorio(pRecordatorio); oDatos.Modificar_Registro(); MensajeErr=oDatos.getMensajeErr(); CodigoErr=oDatos.getCodigoErr(); cMensajes oMensaje = new cMensajes(); if (MensajeErr==null){ oMensaje.setMensaje("A modificado su clave exitosamente. Somos Cable System la mejor alternativa de televisión pagada."); oMensaje.setTipo(1); } else{ oMensaje.setMensaje(MensajeErr); oMensaje.setTipo(2); } out.println("<html><body onload=\"window.location.href='Mensaje.jsp?Fct=Son';\"></body></html>"); } catch (Exception e) { cMensajes proError = new cMensajes(); proError.setMensaje(e.getMessage()); proError.setTipo(3); out.println("<html><body onload=\"window.location.href='Mensaje.jsp?Fct=Son';\"></body></html>"); } out.close(); } }
Ilustración 58
Servlets Modifica Clientes
Ingresa Votacion – Encuestas package webecrm; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.*; import javax.servlet.http.*;
Ilustración 59
Servlets Ingresa Votación encuestas
public class sIngresoVoto extends HttpServlet { private static final String CONTENT_TYPE = "text/html; charset=windows-1252"; private cMuestraEncuesta Encuesta; public void init(ServletConfig config) throws ServletException { super.init(config); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.setContentType(CONTENT_TYPE); PrintWriter out = response.getWriter(); String HttpDirec=""; try { Encuesta=new cMuestraEncuesta(); long Cod_Respuesta= Long.parseLong(request.getParameter("optRespuesta")); String Sugerencia= ""; Sugerencia=(Sugerencia.equals(null)?"":Sugerencia); Encuesta.setCod_Respuesta(Cod_Respuesta); Encuesta.setSugerencia(Sugerencia); Encuesta.Ingresa_Respuesta(); if (Encuesta.getMensajeErr()==null){ HttpDirec="<body onload=\"window.location.href= 'Resultados.jsp';\">"; }else{ cMensajes oError=new cMensajes(); oError.setMensaje(Encuesta.getMensajeErr()); oError.setTipo(2); HttpDirec=oError.UrlMensaje; } String s="<html><head>"+ "</head>"+ HttpDirec+ "</body>"+ "</html>"; out.println(s); } catch (Exception e) { cMensajes proError = new cMensajes(); proError.setMensaje(e.getMessage()); proError.setTipo(3); out.println("<html><body onload=\"window.location.href='Mensaje.jsp?Fct=Son';\"></body></html>"); } out.close(); } }
Ilustración 60
Servlets Ingresa Votación encuestas
Login package webecrm; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.*; import javax.servlet.http.*; public class sLogoneo extends HttpServlet { private static final String CONTENT_TYPE = "text/html; charset=windows-1252"; private static int IntFallidos; public void init(ServletConfig config) throws ServletException { super.init(config); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.setContentType(CONTENT_TYPE); String HttpDirec=""; PrintWriter out = response.getWriter(); try { String Usuario= request.getParameter("txtUsuario"); String Clave= request.getParameter("txtClave"); cUsuario Logonear = new cUsuario(); Logonear.Valida_Usuario(Usuario,Clave); if (Logonear.getMensajeErr()==null){ HttpSession sesion=request.getSession(true); sesion.setAttribute("Usuario_Cliente",Usuario); sesion.setAttribute("Codigo_Cliente", Logonear.getCod_Cliente()); sesion.setAttribute("Nombre_CLiente", Logonear.getNombreCli()); IntFallidos=0; HttpDirec="<body onload=\"window.location.href= 'Bienvenida.jsp';\">"; }else{ IntFallidos++; cMensajes oMensaje=new cMensajes(); if (IntFallidos==3){ oMensaje.setMensaje("Ha exedido el máximo números de intentos fallidos....Vuelva a intentar!"); oMensaje.setTipo(1); IntFallidos=0; } else{ oMensaje.setMensaje(Logonear.getMensajeErr()); oMensaje.setTipo(2); } HttpDirec=oMensaje.UrlMensaje; }
Ilustración 61
Servlets de Login Usuario
String s="<html><head>"+ "</head>"+ HttpDirec + "</body>"+ "</html>"; out.println(s); } catch (Exception e) { cMensajes proError = new cMensajes(); proError.setMensaje(e.getMessage()); proError.setTipo(3); out.println("<html><body onload=\"window.location.href='Mensaje.jsp?Fct=Son';\"></body></html>"); } out.close(); } }
Ilustración 62
Servlets de Login Usuario
Manejo de Sesiones
Pagina JSP
<%@ page contentType="text/html;charset=windows-1252"%> <%@ page import="webecrm.*"%> <%!cUsuario RegCliente =new cUsuario();%> <%!boolean Sesion;%> <%!String UserName;%> <% if ((session.getAttribute("Usuario_Cliente")==null) || (session.getAttribute("Usuario_Cliente").equals(""))) Sesion=false; else Sesion=true; if (Sesion) UserName="Desconectarse"; else UserName="Conectarse"; %> <HTML> <HEAD> <TITLE>CABLE SYSTEM</TITLE> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251"> <META name="title" content="Cable System - Ecuador"> <META name="description" content="CABLE SYSTEM, Siempre junto a Usted, es el servicio de televisi?n pagada con lo m?s actualizado a nivel mundial, llevamos a nuestros suscriptores programaci?n de contenido: Cultural, Familiar, Deportes, Noticias, Pel?culas, M?sica, Infantil, "> <META name="keywords" content="Telev?sion por cable, cable, pague por ver, estado de cuenta, entretenimiento, deportes, fox sports, HBO, Cinemax, Cinecanal, Infantiles, Discovery Channel"> <link href="main.css" rel="stylesheet" type="text/css"> <script src="scripts/validaLogoneo.js" language="javascript" type="text/javascript"></script> <script src="scripts/menu.js" language="javascript" type="text/javascript"></script> </HEAD>
Ilustración 63
Manejo de Sesiones en pagina JSP
Replicas de Tablas
Base de Datos CRM – WEB
CREATE TABLE CRM_WEB_REPLICA_CLIENTES ( SECUENCIA NUMBER, TIPO_MOVIMIENTO VARCHAR2(3 BYTE), CODIGO_TABLA NUMBER(1), ID_CLIENTE NUMBER(10), ID_TIPO_CLIENTE NUMBER(4), ID_ACTIVIDAD NUMBER(4), ID_CIUDAD NUMBER(6), NOMBRES VARCHAR2(30 BYTE), APELLIDOS VARCHAR2(30 BYTE), RUC_CI VARCHAR2(13 BYTE), CONTACTO VARCHAR2(60 BYTE), SEXO CHAR(1 BYTE), CELULAR VARCHAR2(10 BYTE), CONVENCIONAL VARCHAR2(20 BYTE), FAX VARCHAR2(15 BYTE), DIRECCION VARCHAR2(100 BYTE), E_MAIL VARCHAR2(30 BYTE), OBSERVACION VARCHAR2(100 BYTE), NOMBRE VARCHAR2(60 BYTE), DESCRIPCION VARCHAR2(60 BYTE), PRIORIDAD NUMBER(5), PERSONA VARCHAR2(1 BYTE), ESTADO CHAR(1 BYTE), USUARIO_INGRESO VARCHAR2(10 BYTE), FECHA_INGRESO DATE, TERMINAL_INGRESO VARCHAR2(15 BYTE), USUARIO_MODIFICACION VARCHAR2(10 BYTE), FECHA_MODIFICACION DATE, TERMINAL_MODIFICACION VARCHAR2(15 BYTE) ) TABLESPACE CRM_DAT PCTUSED 0 PCTFREE 10 INITRANS 1 MAXTRANS 255 STORAGE ( INITIAL 64K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 BUFFER_POOL DEFAULT )
Ilustración 64
Replica de Tablas
LOGGING NOCACHE NOPARALLEL NOMONITORING; ALTER TABLE CRM_WEB_REPLICA_CLIENTES ADD ( CHECK (TIPO_MOVIMIENTO IN ('INS','UPD','DEL'))); CREATE TABLE CRM_WEB_REPLICA_ENCUESTAS ( SECUENCIA NUMBER, TIPO_MOVIMIENTO VARCHAR2(3 BYTE), CODIGO_TABLA NUMBER(1), ID_ENCUESTA NUMBER(10), ID_LINEA_NEGOCIO NUMBER(4), DESCRIPCION VARCHAR2(80 BYTE), NUMMAXPRE NUMBER(4), NUMMAXRES NUMBER(4), ID_PREGUNTA_ENCUESTA NUMBER(10), OPTMUL CHAR(1 BYTE), ESTADO CHAR(1 BYTE), USUARIO_INGRESO VARCHAR2(10 BYTE), FECHA_INGRESO DATE, TERMINAL_INGRESO VARCHAR2(15 BYTE), USUARIO_MODIFICACION VARCHAR2(10 BYTE), FECHA_MODIFICACION DATE, TERMINAL_MODIFICACION VARCHAR2(15 BYTE) ) TABLESPACE CRM_DAT PCTUSED 0 PCTFREE 10 INITRANS 1 MAXTRANS 255 STORAGE ( INITIAL 64K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 BUFFER_POOL DEFAULT ) LOGGING NOCACHE NOPARALLEL NOMONITORING; ALTER TABLE CRM_WEB_REPLICA_ENCUESTAS ADD ( CHECK (TIPO_MOVIMIENTO IN ('INS','UPD','DEL')));
Ilustración 65
Replica de Tablas
CREATE TABLE CRM_WEB_REPLICA_PROMOCIONES ( SECUENCIA NUMBER, TIPO_MOVIMIENTO VARCHAR2(3 BYTE), CODIGO_TABLA NUMBER(1), ID_SERVICIO NUMBER(6), ESTFACT CHAR(1 BYTE), IMAGEN VARCHAR2(100 BYTE), ID_ITEM NUMBER(10), VALOR NUMBER(8,2), FECHAVIGENCIA DATE, ID_PROMOCION NUMBER(6), ID_LINEA_NEGOCIO NUMBER(4), DESCRIPCION VARCHAR2(80 BYTE), FECHA_INI DATE, FECHA_FIN DATE, CANTIDAD NUMBER(8), ESTADO CHAR(1 BYTE), USUARIO_INGRESO VARCHAR2(10 BYTE), FECHA_INGRESO DATE, TERMINAL_INGRESO VARCHAR2(15 BYTE), USUARIO_MODIFICACION VARCHAR2(10 BYTE), FECHA_MODIFICACION DATE, TERMINAL_MODIFICACION VARCHAR2(15 BYTE) ) TABLESPACE CRM_DAT PCTUSED 0 PCTFREE 10 INITRANS 1 MAXTRANS 255 STORAGE ( INITIAL 64K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 BUFFER_POOL DEFAULT ) LOGGING NOCACHE NOPARALLEL NOMONITORING; ALTER TABLE CRM_WEB_REPLICA_PROMOCIONES ADD ( CHECK (TIPO_MOVIMIENTO IN ('INS','UPD','DEL')));
Ilustración 66
Replica de Tablas
CREATE TABLE CRM_WEB_REPLICA_SERVICIOS ( SECUENCIA NUMBER, TIPO_MOVIMIENTO VARCHAR2(3 BYTE), CODIGO_TABLA NUMBER(1), ID_SERVICIO NUMBER(6), ID_LINEA_NEGOCIO NUMBER(4), DESCRIPCION VARCHAR2(80 BYTE), ID_CLIENTE NUMBER(10), ESTADO CHAR(1 BYTE), USUARIO_INGRESO VARCHAR2(10 BYTE), FECHA_INGRESO DATE, TERMINAL_INGRESO VARCHAR2(15 BYTE), USUARIO_MODIFICACION VARCHAR2(10 BYTE), FECHA_MODIFICACION DATE, TERMINAL_MODIFICACION VARCHAR2(15 BYTE) ) TABLESPACE CRM_DAT PCTUSED 0 PCTFREE 10 INITRANS 1 MAXTRANS 255 STORAGE ( INITIAL 64K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 BUFFER_POOL DEFAULT ) LOGGING NOCACHE NOPARALLEL NOMONITORING; ALTER TABLE CRM_WEB_REPLICA_SERVICIOS ADD ( CHECK (TIPO_MOVIMIENTO IN ('INS','UPD','DEL')));
Ilustración 67
Replica de Tablas
Creacion de Paquete CREATE OR REPLACE PACKAGE CRM_WEB_PRC_REPLICACION_WEB IS /* Procedimiento que lee la fecha de proceso y el usuario*/ PROCEDURE REPLICA_ENCUESTA_WEB; -- --PROCEDURE REPLICA_PROMOCIONES; -- --PROCEDURE REPLICA_CLIENTES; -- --PROCEDURE REPLICA_ENCUENTAS; -- PROCEDIMIENTO QUE INSERTA UN REGISTRO DE ERROR PROCEDURE INSERTA_ERROR (MODULO IN VARCHAR2, CODIGO IN NUMBER, MENSAJE IN VARCHAR2, FECHA IN DATE); -- PROCEDIMIENTO QUE ELIMINA EL MOVIMIENTO UNA VEZ QUE SE HAYA
ACTUALIZADO UN REGISTRO PROCEDURE ELIMINA_MOVIMIENTO(COD_TAB IN NUMBER, -- 1.-
RESPUESTA ENCUESTA, 2.- SUGERENCIA ENCUESTA COD_MOV IN NUMBER, COD_RET IN OUT
NUMBER, MSG_RET IN OUT VARCHAR2); -- END; /
Ilustración 68
Creación de Paquetes
Creación de Procedimiento
CREATE OR REPLACE PACKAGE BODY CRM_WEB_PRC_REPLICACION_WEB IS
-- PROCEDURE REPLICA_ENCUESTA_WEB IS -- CURSOR DATOS IS SELECT * FROM CRM_WEB_REPLICA_ENCUESTAS_WEB@REPLICA ORDER BY SECUENCIA; -- error EXCEPTION; cod_ret number := 0; msg_ret varchar2(300) := null; cod_date date; -- BEGIN -- FOR REG IN DATOS LOOP -- IF REG.CODIGO_TABLA = 1 THEN -- ES RESPUESTA ENCUESTA -- IF REG.TIPO_MOVIMIENTO = 'INS' THEN -- INSERT -- BEGIN INSERT INTO CRM_WEB_RESPUESTA_ENCUESTA ( WRE_ID_RESPUESTA_ENCUESTA,
WRE_ID_PREGUNTA_ENCUESTA,WRE_DESCRIPCION, WRE_ESTADO, USUARIO_INGRESO,
FECHA_INGRESO, TERMINAL_INGRESO, USUARIO_MODIFICACION,
FECHA_MODIFICACION, TERMINAL_MODIFICACION) VALUES (REG.ID_RESPUESTA_ENCUESTA
,REG.ID_PREGUNTA_ENCUESTA ,REG.DESCRIPCION , REG.ESTADO,REG.USUARIO_INGRESO
,REG.FECHA_INGRESO , REG.TERMINAL_INGRESO,REG.USUARIO_MODIFICACION
,REG.FECHA_MODIFICACION ,REG.TERMINAL_MODIFICACION); EXCEPTION WHEN OTHERS THEN COD_RET := 1; MSG_RET := SUBSTR('ERROR AL INSERTAR EN
CRM_WEB_RESPUESTA_ENCUESTA SECUENCIA # '||REG.SECUENCIA||' '||SQLERRM,1,300);
Ilustración 69
Creación de Procedimiento
RAISE ERROR; END; -- ELSIF REG.TIPO_MOVIMIENTO = 'UPD' THEN --
ACTUALIZACION BEGIN UPDATE CRM_WEB_RESPUESTA_ENCUESTA SET WRE_ID_PREGUNTA_ENCUESTA =
REG.ID_PREGUNTA_ENCUESTA, WRE_DESCRIPCION = REG.DESCRIPCION, WRE_ESTADO = REG.ESTADO, USUARIO_INGRESO = REG.USUARIO_INGRESO, FECHA_INGRESO = REG.FECHA_INGRESO, TERMINAL_INGRESO = REG.TERMINAL_INGRESO, USUARIO_MODIFICACION =
REG.USUARIO_MODIFICACION, FECHA_MODIFICACION = REG.FECHA_MODIFICACION, TERMINAL_MODIFICACION =
REG.TERMINAL_MODIFICACION WHERE WRE_ID_RESPUESTA_ENCUESTA =
REG.ID_RESPUESTA_ENCUESTA ; EXCEPTION WHEN OTHERS THEN COD_RET := 2; MSG_RET := SUBSTR('ERROR AL ACTUALIZAR
EN CRM_WEB_RESPUESTA_ENCUESTA SECUENCIA # '||REG.SECUENCIA||' '||SQLERRM,1,300);
RAISE ERROR; END; -- ELSIF REG.TIPO_MOVIMIENTO = 'DEL' THEN -- ELIMINACION BEGIN DELETE CRM_WEB_RESPUESTA_ENCUESTA WHERE WRE_ID_RESPUESTA_ENCUESTA =
REG.ID_RESPUESTA_ENCUESTA; EXCEPTION WHEN OTHERS THEN COD_RET := 3; MSG_RET := SUBSTR('ERROR AL ELIMINAR EN
CRM_WEB_RESPUESTA_ENCUESTA SECUENCIA # '||REG.SECUENCIA||' '||SQLERRM,1,300);
RAISE ERROR; END; -- END IF; -- ELSIF REG.CODIGO_TABLA = 2 THEN --ES SUGERENCIA ENCUESTA
Ilustración 70
Creación de Procedimiento
IF REG.TIPO_MOVIMIENTO = 'INS' THEN -- INSERT -- BEGIN INSERT INTO CRM_WEB_SUGERENCIA_ENCUESTA ( WSE_ID_SUGERENCIA_ENCUESTA,
WSE_OBSERVACION, USUARIO_INGRESO, FECHA_INGRESO, TERMINAL_INGRESO, USUARIO_MODIFICACION,
FECHA_MODIFICACION, TERMINAL_MODIFICACION) VALUES (REG.ID_SUGERENCIA_ENCUESTA
,REG.OBSERVACION , REG.USUARIO_INGRESO ,REG.FECHA_INGRESO , REG.TERMINAL_INGRESO,REG.USUARIO_MODIFICACION , REG.FECHA_MODIFICACION
,REG.TERMINAL_MODIFICACION); EXCEPTION WHEN OTHERS THEN COD_RET := 4; MSG_RET := SUBSTR('ERROR AL INSERTAR EN
CRM_WEB_SUGERENCIA_ENCUESTA SECUENCIA # '||REG.SECUENCIA||' '||SQLERRM,1,300);
RAISE ERROR; END; -- ELSIF REG.TIPO_MOVIMIENTO = 'UPD' THEN --
ACTUALIZACION BEGIN UPDATE CRM_WEB_SUGERENCIA_ENCUESTA SET WSE_OBSERVACION = REG.OBSERVACION, USUARIO_INGRESO = REG.USUARIO_INGRESO, FECHA_INGRESO = REG.FECHA_INGRESO, TERMINAL_INGRESO = REG.TERMINAL_INGRESO, USUARIO_MODIFICACION =
REG.USUARIO_MODIFICACION, FECHA_MODIFICACION = REG.FECHA_MODIFICACION, TERMINAL_MODIFICACION =
REG.TERMINAL_MODIFICACION WHERE WSE_ID_SUGERENCIA_ENCUESTA =
REG.ID_SUGERENCIA_ENCUESTA ; EXCEPTION WHEN OTHERS THEN COD_RET := 5; MSG_RET := SUBSTR('ERROR AL ACTUALIZAR
EN CRM_WEB_SUGERENCIA_ENCUESTA SECUENCIA # '||REG.SECUENCIA||' '||SQLERRM,1,300);
RAISE ERROR; END;
Ilustración 71
Creación de Procedimiento
ELSIF REG.TIPO_MOVIMIENTO = 'DEL' THEN -- ELIMINACION BEGIN DELETE CRM_WEB_SUGERENCIA_ENCUESTA WHERE WSE_ID_SUGERENCIA_ENCUESTA =
REG.ID_SUGERENCIA_ENCUESTA; EXCEPTION WHEN OTHERS THEN COD_RET := 6; MSG_RET := SUBSTR('ERROR AL ELIMINAR EN
CRM_WEB_SUGERENCIA_ENCUESTA SECUENCIA # '||REG.SECUENCIA||' '||SQLERRM,1,300);
RAISE ERROR; END; -- END IF; -- END IF; -- COMMIT; --
CRM_WEB_PRC_REPLICACION_WEB.ELIMINA_MOVIMIENTO(1,REG.SECUENCIA,COD_RET,MSG_RET);
-- IF COD_RET <> 0 THEN RAISE ERROR; END IF; -- END LOOP; -- EXCEPTION WHEN ERROR THEN ROLLBACK; --
CRM_WEB_PRC_REPLICACION_WEB.INSERTA_ERROR('CRM_WEB_PRC_REPLICACION_WEB.REPLICA_ENCUESTAS',
COD_RET,MSG_RET,SYSDATE);
-- WHEN OTHERS THEN cod_ret := 116; msg_ret := SUBSTR('ERROR NO CONTROLADO EN PROCESO
'||SQLERRM,1,300); RAISE ERROR; END REPLICA_ENCUESTA_WEB; --
Ilustración 72
Creación de Procedimiento
PROCEDURE INSERTA_ERROR(MODULO IN VARCHAR2,CODIGO IN NUMBER, MENSAJE IN VARCHAR2, FECHA IN DATE) IS
-- BEGIN INSERT INTO
CRM_WEB_ERRORES_REPLICA(NOMBRE_PROCESO,CODIGO_ERROR,MENSAJE_ERROR,FECHA_ERROR)
VALUES(MODULO,CODIGO,MENSAJE,FECHA); -- COMMIT; -- EXCEPTION WHEN OTHERS THEN ROLLBACK; END INSERTA_ERROR; -- -- PROCEDURE ELIMINA_MOVIMIENTO(COD_TAB IN NUMBER, COD_MOV IN
NUMBER, COD_RET IN OUT NUMBER, MSG_RET IN OUT VARCHAR2) IS error exception; BEGIN cod_ret := 0; msg_ret := null; begin if cod_tab = 1 then delete
CRM_WEB_REPLICA_ENCUESTAS_WEB@REPLICA WHERE SECUENCIA = COD_MOV; else cod_ret := 13; msg_ret := substr('Error, Codigo de Tabla no vàlido para
Procedimiento Elimina Tabla Movimiento # '||cod_mov,1,300); raise error; end if; exception when others then cod_ret := 12; msg_ret := substr('Error al Eliminar Movimiento:
'||cod_mov||sqlerrm,1,300); raise error; end; -- commit; -- exception when error then rollback;
Ilustración 73
Creación de Procedimiento
msg_ret := substr(msg_ret||' Codigo: '||cod_ret,1,300); when others then cod_ret := 11; msg_ret := substr('Error al Eliminar Movimiento Codigo
'||cod_mov||sqlerrm,1,300); raise error; END ELIMINA_MOVIMIENTO; -- END; /
Ilustración 74
Creación de Procedimiento Creación de Job
DECLARE X NUMBER; BEGIN SYS.DBMS_JOB.SUBMIT ( job => X ,what => 'ADMCRM.CRM_WEB_PRC_REPLICACION_WEB.REPLICA_ENCUESTA_WEB;' ,next_date => to_date('22/03/2007 20:05:43','dd/mm/yyyy hh24:mi:ss') ,interval => 'SYSDATE+30/1440 ' ,no_parse => TRUE ); SYS.DBMS_OUTPUT.PUT_LINE('Job Number is: ' || to_char(x)); END; / commit;
Ilustración 75
Creación de Job
Triggers CREATE OR REPLACE TRIGGER CRM_WEB_TRIG_ACTIVIDADES AFTER DELETE OR INSERT OR UPDATE ON ADMCRM.CRM_WEB_ACTIVIDADES REFERENCING NEW AS New OLD AS Old FOR EACH ROW DECLARE MSG_RET VARCHAR2(200):=NULL; VN_SECUENCIA NUMBER:=0; ERROR EXCEPTION; BEGIN -- OBTENGO LA SECUENCIA SELECT CRM_WEB_SEC_MOVIMIENTOS.NEXTVAL INTO VN_SECUENCIA FROM DUAL; -- IF INSERTING THEN BEGIN INSERT INTO CRM_WEB_REPLICA_CLIENTES(SECUENCIA,TIPO_MOVIMIENTO,CODIGO_TABLA, ID_ACTIVIDAD,PERSONA,DESCRIPCION,ESTADO, USUARIO_INGRESO,FECHA_INGRESO,TERMINAL_INGRESO, USUARIO_MODIFICACION,FECHA_MODIFICACION,TERMINAL_MODIFICACION) VALUES (VN_SECUENCIA,'INS',3,:NEW.WAC_ID_ACTIVIDAD,:NEW.WAC_PERSONA, :NEW.WAC_DESCRIPCION,:NEW.WAC_ESTADO,:NEW.USUARIO_INGRESO, :NEW.FECHA_INGRESO,:NEW.TERMINAL_INGRESO,:NEW.USUARIO_MODIFICACION, :NEW.FECHA_MODIFICACION,:NEW.TERMINAL_MODIFICACION); EXCEPTION WHEN OTHERS THEN MSG_RET := SUBSTR('ERROR EN TRIGGER <CRM_WEB_TRIG_ACTIVIDADES> AL INSERTAR '||:NEW.WAC_ID_ACTIVIDAD||' '||SQLERRM,1,200); RAISE ERROR; END; -- ELSIF UPDATING THEN -- BEGIN INSERT INTO
Ilustración 76
Creación de Triggers
CRM_WEB_REPLICA_CLIENTES(SECUENCIA,TIPO_MOVIMIENTO,CODIGO_TABLA, ID_ACTIVIDAD,PERSONA,DESCRIPCION,ESTADO, USUARIO_INGRESO,FECHA_INGRESO,TERMINAL_INGRESO, USUARIO_MODIFICACION,FECHA_MODIFICACION,TERMINAL_MODIFICACION) VALUES (VN_SECUENCIA,'UPD',3,:NEW.WAC_ID_ACTIVIDAD,:NEW.WAC_PERSONA, :NEW.WAC_DESCRIPCION,:NEW.WAC_ESTADO,:NEW.USUARIO_INGRESO, :NEW.FECHA_INGRESO,:NEW.TERMINAL_INGRESO,:NEW.USUARIO_MODIFICACION, :NEW.FECHA_MODIFICACION,:NEW.TERMINAL_MODIFICACION); EXCEPTION WHEN OTHERS THEN MSG_RET := SUBSTR('ERROR EN TRIGGER <CRM_WEB_TRIG_ACTIVIDADES> AL INSERTAR '||:NEW.WAC_ID_ACTIVIDAD||' '||SQLERRM,1,200); RAISE ERROR; END; -- ELSIF DELETING THEN -- BEGIN INSERT INTO CRM_WEB_REPLICA_CLIENTES (SECUENCIA,TIPO_MOVIMIENTO,CODIGO_TABLA,ID_ACTIVIDAD) VALUES (VN_SECUENCIA,'DEL',3,:OLD.WAC_ID_ACTIVIDAD); EXCEPTION WHEN OTHERS THEN MSG_RET := SUBSTR('ERROR EN TRIGGER <CRM_WEB_TRIG_ACTIVIDADES> AL ELIMINAR '||:OLD.WAC_ID_ACTIVIDAD||' '||SQLERRM,1,200); RAISE ERROR; END; -- END IF; EXCEPTION WHEN ERROR THEN DBMS_OUTPUT.PUT_LINE(MSG_RET); WHEN OTHERS THEN MSG_RET := SUBSTR('ERROR NO CONTROLADO EN TRIGGER <CRM_WEB_TRIG_ACTIVIDADES> '||SQLERRM,1,200); RAISE ERROR; END CRM_WEB_TRIG_ACTIVIDADES; /
Ilustración 77
Creación de Triggers
CREATE OR REPLACE TRIGGER CRM_WEB_TRIG_CIUDADES AFTER DELETE OR INSERT OR UPDATE ON ADMCRM.CRM_WEB_CIUDADES REFERENCING NEW AS New OLD AS Old FOR EACH ROW DECLARE MSG_RET VARCHAR2(200):=NULL; VN_SECUENCIA NUMBER:=0; ERROR EXCEPTION; BEGIN -- OBTENGO LA SECUENCIA SELECT CRM_WEB_SEC_MOVIMIENTOS.NEXTVAL INTO VN_SECUENCIA FROM DUAL; -- IF INSERTING THEN BEGIN INSERT INTO CRM_WEB_REPLICA_CLIENTES(SECUENCIA,TIPO_MOVIMIENTO,CODIGO_TABLA, ID_CIUDAD,NOMBRE,ESTADO, USUARIO_INGRESO,FECHA_INGRESO,TERMINAL_INGRESO, USUARIO_MODIFICACION,FECHA_MODIFICACION,TERMINAL_MODIFICACION) VALUES (VN_SECUENCIA,'INS',1,:NEW.WCI_ID_CIUDAD,:NEW.WCI_NOMBRE, :NEW.WCI_ESTADO,:NEW.USUARIO_INGRESO, :NEW.FECHA_INGRESO,:NEW.TERMINAL_INGRESO,:NEW.USUARIO_MODIFICACION, :NEW.FECHA_MODIFICACION,:NEW.TERMINAL_MODIFICACION); EXCEPTION WHEN OTHERS THEN MSG_RET := SUBSTR('ERROR EN TRIGGER <CRM_WEB_TRIG_CIUDADES> AL INSERTAR '||:NEW.WCI_ID_CIUDAD||' '||SQLERRM,1,200); RAISE ERROR; END; -- ELSIF UPDATING THEN -- BEGIN INSERT INTO CRM_WEB_REPLICA_CLIENTES(SECUENCIA,TIPO_MOVIMIENTO,CODIGO_TABLA, ID_CIUDAD,NOMBRE,ESTADO,
Ilustración 78
Creación de Triggers
USUARIO_INGRESO,FECHA_INGRESO,TERMINAL_INGRESO, USUARIO_MODIFICACION,FECHA_MODIFICACION,TERMINAL_MODIFICACION) VALUES (VN_SECUENCIA,'UPD',1,:NEW.WCI_ID_CIUDAD,:NEW.WCI_NOMBRE, :NEW.WCI_ESTADO,:NEW.USUARIO_INGRESO, :NEW.FECHA_INGRESO,:NEW.TERMINAL_INGRESO,:NEW.USUARIO_MODIFICACION, :NEW.FECHA_MODIFICACION,:NEW.TERMINAL_MODIFICACION); EXCEPTION WHEN OTHERS THEN MSG_RET := SUBSTR('ERROR EN TRIGGER <CRM_WEB_TRIG_CIUDADES> AL INSERTAR '||:NEW.WCI_ID_CIUDAD||' '||SQLERRM,1,200); RAISE ERROR; END; -- ELSIF DELETING THEN -- BEGIN INSERT INTO CRM_WEB_REPLICA_CLIENTES (SECUENCIA,TIPO_MOVIMIENTO,CODIGO_TABLA,ID_CIUDAD) VALUES (VN_SECUENCIA,'DEL',1,:OLD.WCI_ID_CIUDAD); EXCEPTION WHEN OTHERS THEN MSG_RET := SUBSTR('ERROR EN TRIGGER <CRM_WEB_TRIG_CIUDADES> AL ELIMINAR '||:OLD.WCI_ID_CIUDAD||' '||SQLERRM,1,200); RAISE ERROR; END; -- END IF; EXCEPTION WHEN ERROR THEN DBMS_OUTPUT.PUT_LINE(MSG_RET); WHEN OTHERS THEN MSG_RET := SUBSTR('ERROR NO CONTROLADO EN TRIGGER <CRM_WEB_TRIG_CIUDADES> '||SQLERRM,1,200); RAISE ERROR; END CRM_WEB_TRIG_CIUDADES; / CREATE OR REPLACE TRIGGER CRM_WEB_TRIG_CLIENTES AFTER DELETE OR INSERT OR UPDATE
Ilustración 79
Creación de Triggers
ON ADMCRM.CRM_WEB_CLIENTES REFERENCING NEW AS New OLD AS Old FOR EACH ROW DECLARE MSG_RET VARCHAR2(200):=NULL; VN_SECUENCIA NUMBER:=0; ERROR EXCEPTION; BEGIN -- OBTENGO LA SECUENCIA SELECT CRM_WEB_SEC_MOVIMIENTOS.NEXTVAL INTO VN_SECUENCIA FROM DUAL; -- IF INSERTING THEN BEGIN INSERT INTO CRM_WEB_REPLICA_CLIENTES(SECUENCIA,TIPO_MOVIMIENTO,CODIGO_TABLA,ID_CLIENTE,ID_TIPO_CLIENTE, ID_ACTIVIDAD,ID_CIUDAD,NOMBRES,APELLIDOS,RUC_CI,CONTACTO,SEXO,CELULAR, CONVENCIONAL,FAX,DIRECCION,E_MAIL,ESTADO, USUARIO_INGRESO,FECHA_INGRESO,TERMINAL_INGRESO, USUARIO_MODIFICACION,FECHA_MODIFICACION,TERMINAL_MODIFICACION) VALUES (VN_SECUENCIA,'INS',4,:NEW.WCL_ID_CLIENTE,:NEW.WCL_ID_TIPO_CLIENTE, :NEW.WCL_ID_ACTIVIDAD,:NEW.WCL_ID_CIUDAD,:NEW.WCL_NOMBRES,:NEW.WCL_APELLIDOS, :NEW.WCL_RUC_CI,:NEW.WCL_CONTACTO,:NEW.WCL_SEXO,:NEW.WCL_CELULAR,:NEW.WCL_CONVENCIONAL, :NEW.WCL_FAX,:NEW.WCL_DIRECCION,:NEW.WCL_E_MAIL,:NEW.WCL_ESTADO, :NEW.USUARIO_INGRESO, :NEW.FECHA_INGRESO,:NEW.TERMINAL_INGRESO,:NEW.USUARIO_MODIFICACION, :NEW.FECHA_MODIFICACION,:NEW.TERMINAL_MODIFICACION); EXCEPTION WHEN OTHERS THEN MSG_RET := SUBSTR('ERROR EN TRIGGER <CRM_WEB_TRIG_CLIENTES>
Ilustración 80
Creación de Triggers
AL INSERTAR '||:NEW.WCL_ID_CLIENTE||' '||SQLERRM,1,200); RAISE ERROR; END; -- ELSIF UPDATING THEN -- BEGIN INSERT INTO CRM_WEB_REPLICA_CLIENTES(SECUENCIA,TIPO_MOVIMIENTO,CODIGO_TABLA,ID_CLIENTE,ID_TIPO_CLIENTE, ID_ACTIVIDAD,ID_CIUDAD,NOMBRES,APELLIDOS,RUC_CI,CONTACTO,SEXO,CELULAR, CONVENCIONAL,FAX,DIRECCION,E_MAIL,ESTADO, USUARIO_INGRESO,FECHA_INGRESO,TERMINAL_INGRESO, USUARIO_MODIFICACION,FECHA_MODIFICACION,TERMINAL_MODIFICACION) VALUES (VN_SECUENCIA,'UPD',4,:NEW.WCL_ID_CLIENTE,:NEW.WCL_ID_TIPO_CLIENTE, :NEW.WCL_ID_ACTIVIDAD,:NEW.WCL_ID_CIUDAD,:NEW.WCL_NOMBRES,:NEW.WCL_APELLIDOS, :NEW.WCL_RUC_CI,:NEW.WCL_CONTACTO,:NEW.WCL_SEXO,:NEW.WCL_CELULAR,:NEW.WCL_CONVENCIONAL, :NEW.WCL_FAX,:NEW.WCL_DIRECCION,:NEW.WCL_E_MAIL,:NEW.WCL_ESTADO, :NEW.USUARIO_INGRESO, :NEW.FECHA_INGRESO,:NEW.TERMINAL_INGRESO,:NEW.USUARIO_MODIFICACION, :NEW.FECHA_MODIFICACION,:NEW.TERMINAL_MODIFICACION); EXCEPTION WHEN OTHERS THEN MSG_RET := SUBSTR('ERROR EN TRIGGER <CRM_WEB_TRIG_CLIENTES> AL INSERTAR '||:NEW.WCL_ID_CLIENTE||' '||SQLERRM,1,200); RAISE ERROR; END; -- ELSIF DELETING THEN -- BEGIN INSERT INTO CRM_WEB_REPLICA_SERVICIOS (SECUENCIA,TIPO_MOVIMIENTO,CODIGO_TABLA,ID_CLIENTE)
Ilustración 81
Creación de Triggers
VALUES (VN_SECUENCIA,'DEL',4,:OLD.WCL_ID_CLIENTE); EXCEPTION WHEN OTHERS THEN MSG_RET := SUBSTR('ERROR EN TRIGGER <CRM_WEB_TRIG_CLIENTES> AL ELIMINAR '||:OLD.WCL_ID_CLIENTE||' '||SQLERRM,1,200); RAISE ERROR; END; -- END IF; EXCEPTION WHEN ERROR THEN DBMS_OUTPUT.PUT_LINE(MSG_RET); WHEN OTHERS THEN MSG_RET := SUBSTR('ERROR NO CONTROLADO EN TRIGGER <CRM_WEB_TRIG_CLIENTES> '||SQLERRM,1,200); RAISE ERROR; END CRM_WEB_TRIG_CLIENTES; / CREATE OR REPLACE TRIGGER CRM_WEB_TRIG_ENCUESTAS AFTER DELETE OR INSERT OR UPDATE ON ADMCRM.CRM_WEB_ENCUESTAS REFERENCING NEW AS New OLD AS Old FOR EACH ROW DECLARE MSG_RET VARCHAR2(200):=NULL; VN_SECUENCIA NUMBER:=0; ERROR EXCEPTION; BEGIN -- OBTENGO LA SECUENCIA SELECT CRM_WEB_SEC_MOVIMIENTOS.NEXTVAL INTO VN_SECUENCIA FROM DUAL; -- IF INSERTING THEN BEGIN INSERT INTO CRM_WEB_REPLICA_ENCUESTAS(SECUENCIA,TIPO_MOVIMIENTO,CODIGO_TABLA, ID_ENCUESTA,ID_LINEA_NEGOCIO,DESCRIPCION,NUMMAXPRE,NUMMAXRES,ESTADO, USUARIO_INGRESO,FECHA_INGRESO,TERMINAL_INGRESO, USUARIO_MODIFICACION,FECHA_MODIFICACION,TERMINAL_MODIFICACION) VALUES
Ilustración 82
Creación de Triggers
(VN_SECUENCIA,'INS',1,:NEW.WEN_ID_ENCUESTA,:NEW.WEN_ID_LINEA_NEGOCIO, :NEW.WEN_DESCRIPCION,:NEW.WEN_NUMMAXPRE,:NEW.WEN_NUMMAXRES,:NEW.WEN_ESTADO,:NEW.USUARIO_INGRESO, :NEW.FECHA_INGRESO,:NEW.TERMINAL_INGRESO,:NEW.USUARIO_MODIFICACION, :NEW.FECHA_MODIFICACION,:NEW.TERMINAL_MODIFICACION); EXCEPTION WHEN OTHERS THEN MSG_RET := SUBSTR('ERROR EN TRIGGER <CRM_WEB_TRIG_ENCUESTAS> AL INSERTAR '||:NEW.WEN_ID_ENCUESTA||' '||SQLERRM,1,200); RAISE ERROR; END; -- ELSIF UPDATING THEN -- BEGIN INSERT INTO CRM_WEB_REPLICA_ENCUESTAS(SECUENCIA,TIPO_MOVIMIENTO,CODIGO_TABLA, ID_ENCUESTA,ID_LINEA_NEGOCIO,DESCRIPCION,NUMMAXPRE,NUMMAXRES,ESTADO, USUARIO_INGRESO,FECHA_INGRESO,TERMINAL_INGRESO, USUARIO_MODIFICACION,FECHA_MODIFICACION,TERMINAL_MODIFICACION) VALUES (VN_SECUENCIA,'UPD',1,:NEW.WEN_ID_ENCUESTA,:NEW.WEN_ID_LINEA_NEGOCIO, :NEW.WEN_DESCRIPCION,:NEW.WEN_NUMMAXPRE,:NEW.WEN_NUMMAXRES,:NEW.WEN_ESTADO,:NEW.USUARIO_INGRESO, :NEW.FECHA_INGRESO,:NEW.TERMINAL_INGRESO,:NEW.USUARIO_MODIFICACION, :NEW.FECHA_MODIFICACION,:NEW.TERMINAL_MODIFICACION); EXCEPTION WHEN OTHERS THEN MSG_RET := SUBSTR('ERROR EN TRIGGER <CRM_WEB_TRIG_ENCUESTAS> AL INSERTAR '||:NEW.WEN_ID_ENCUESTA||' '||SQLERRM,1,200); RAISE ERROR; END; --
Ilustración 83
Creación de Triggers
ELSIF DELETING THEN -- BEGIN INSERT INTO CRM_WEB_REPLICA_ENCUESTAS (SECUENCIA,TIPO_MOVIMIENTO,CODIGO_TABLA,ID_ENCUESTA) VALUES (VN_SECUENCIA,'DEL',1,:OLD.WEN_ID_ENCUESTA); EXCEPTION WHEN OTHERS THEN MSG_RET := SUBSTR('ERROR EN TRIGGER <CRM_WEB_TRIG_ENCUESTAS> AL ELIMINAR '||:OLD.WEN_ID_ENCUESTA||' '||SQLERRM,1,200); RAISE ERROR; END; -- END IF; EXCEPTION WHEN ERROR THEN DBMS_OUTPUT.PUT_LINE(MSG_RET); WHEN OTHERS THEN MSG_RET := SUBSTR('ERROR NO CONTROLADO EN TRIGGER <CRM_WEB_TRIG_ENCUESTAS> '||SQLERRM,1,200); RAISE ERROR; END CRM_WEB_TRIG_ENCUESTAS; / CREATE OR REPLACE TRIGGER CRM_WEB_TRIG_ITEMS AFTER DELETE OR INSERT OR UPDATE ON ADMCRM.CRM_WEB_ITEMS REFERENCING NEW AS New OLD AS Old FOR EACH ROW DECLARE MSG_RET VARCHAR2(200):=NULL; VN_SECUENCIA NUMBER:=0; ERROR EXCEPTION; BEGIN -- OBTENGO LA SECUENCIA SELECT CRM_WEB_SEC_MOVIMIENTOS.NEXTVAL INTO VN_SECUENCIA FROM DUAL; -- IF INSERTING THEN BEGIN INSERT INTO CRM_WEB_REPLICA_PROMOCIONES (SECUENCIA,TIPO_MOVIMIENTO,CODIGO_TABLA,ID_ITEM,ID_SERVICIO, DESCRIPCION,ESTFACT,IMAGEN,ESTADO,USUARIO_INGRESO,FECHA_INGRESO,
Ilustración 84
Creación de Triggers
TERMINAL_INGRESO, USUARIO_MODIFICACION,FECHA_MODIFICACION,TERMINAL_MODIFICACION) VALUES (VN_SECUENCIA,'INS',1,:NEW.WIT_ID_ITEM, :NEW.WIT_ID_SERVICIO,:NEW.WIT_DESCRIPCION,:NEW.WIT_ESTFACT, :NEW.WIT_IMAGEN,:NEW.WIT_ESTADO,:NEW.USUARIO_INGRESO, :NEW.FECHA_INGRESO,:NEW.TERMINAL_INGRESO,:NEW.USUARIO_MODIFICACION, :NEW.FECHA_MODIFICACION,:NEW.TERMINAL_MODIFICACION); EXCEPTION WHEN OTHERS THEN MSG_RET := SUBSTR('ERROR EN TRIGGER <CRM_WEB_TRIG_ITEMS> AL INSERTAR '||:NEW.WIT_ID_ITEM||' '||SQLERRM,1,200); RAISE ERROR; END; -- ELSIF UPDATING THEN -- BEGIN INSERT INTO CRM_WEB_REPLICA_PROMOCIONES (SECUENCIA,TIPO_MOVIMIENTO,CODIGO_TABLA,ID_ITEM,ID_SERVICIO, DESCRIPCION,ESTFACT,IMAGEN,ESTADO,USUARIO_INGRESO,FECHA_INGRESO, TERMINAL_INGRESO, USUARIO_MODIFICACION,FECHA_MODIFICACION,TERMINAL_MODIFICACION) VALUES (VN_SECUENCIA,'UPD',1,:NEW.WIT_ID_ITEM, :NEW.WIT_ID_SERVICIO,:NEW.WIT_DESCRIPCION,:NEW.WIT_ESTFACT, :NEW.WIT_IMAGEN,:NEW.WIT_ESTADO,:NEW.USUARIO_INGRESO, :NEW.FECHA_INGRESO,:NEW.TERMINAL_INGRESO,:NEW.USUARIO_MODIFICACION, :NEW.FECHA_MODIFICACION,:NEW.TERMINAL_MODIFICACION); EXCEPTION WHEN OTHERS THEN MSG_RET := SUBSTR('ERROR EN TRIGGER <CRM_WEB_TRIG_ITEMS> AL ACTUALIZAR '||:OLD.WIT_ID_ITEM||' '||SQLERRM,1,200); RAISE ERROR;
Ilustración 85
Creación de Triggers
END; -- ELSIF DELETING THEN -- BEGIN INSERT INTO CRM_WEB_REPLICA_PROMOCIONES (SECUENCIA,TIPO_MOVIMIENTO,CODIGO_TABLA,ID_ITEM,ID_SERVICIO) VALUES (VN_SECUENCIA,'DEL',1,:OLD.WIT_ID_ITEM,:OLD.WIT_ID_SERVICIO); EXCEPTION WHEN OTHERS THEN MSG_RET := SUBSTR('ERROR EN TRIGGER <CRM_WEB_TRIG_ITEMS> AL ELIMINAR '||:OLD.WIT_ID_ITEM||' '||SQLERRM,1,200); RAISE ERROR; END; -- END IF; EXCEPTION WHEN ERROR THEN DBMS_OUTPUT.PUT_LINE(MSG_RET); WHEN OTHERS THEN MSG_RET := SUBSTR('ERROR NO CONTROLADO EN TRIGGER <CRM_WEB_TRIG_ITEMS> '||SQLERRM,1,200); RAISE ERROR; END CRM_WEB_TRIG_ITEMS; / CREATE OR REPLACE TRIGGER CRM_WEB_TRIG_LINEA_NEGOCIO AFTER DELETE OR INSERT OR UPDATE ON ADMCRM.CRM_WEB_LINEA_NEGOCIO REFERENCING NEW AS New OLD AS Old FOR EACH ROW DECLARE MSG_RET VARCHAR2(200):=NULL; VN_SECUENCIA NUMBER:=0; ERROR EXCEPTION; BEGIN -- OBTENGO LA SECUENCIA SELECT CRM_WEB_SEC_MOVIMIENTOS.NEXTVAL INTO VN_SECUENCIA FROM DUAL; -- IF INSERTING THEN BEGIN INSERT INTO CRM_WEB_REPLICA_SERVICIOS (SECUENCIA,TIPO_MOVIMIENTO,CODIGO_TABLA,ID_LINEA_NEGOCIO,
Ilustración 86
Creación de Triggers
DESCRIPCION,ESTADO,USUARIO_INGRESO,FECHA_INGRESO,TERMINAL_INGRESO, USUARIO_MODIFICACION,FECHA_MODIFICACION,TERMINAL_MODIFICACION) VALUES (VN_SECUENCIA,'INS',2,:NEW.WLN_ID_LINEA_NEGOCIO,:NEW.WLN_DESCRIPCION,:NEW.WLN_ESTADO, :NEW.USUARIO_INGRESO,:NEW.FECHA_INGRESO,:NEW.TERMINAL_INGRESO, :NEW.USUARIO_MODIFICACION,:NEW.FECHA_MODIFICACION,:NEW.TERMINAL_MODIFICACION); EXCEPTION WHEN OTHERS THEN MSG_RET := SUBSTR('ERROR EN TRIGGER <CRM_WEB_TRIG_SERVICIOS> AL INSERTAR '||:NEW.WLN_ID_LINEA_NEGOCIO||' '||SQLERRM,1,200); RAISE ERROR; END; -- ELSIF UPDATING THEN BEGIN INSERT INTO CRM_WEB_REPLICA_SERVICIOS (SECUENCIA,TIPO_MOVIMIENTO,CODIGO_TABLA,ID_LINEA_NEGOCIO, DESCRIPCION,ESTADO,USUARIO_INGRESO,FECHA_INGRESO,TERMINAL_INGRESO, USUARIO_MODIFICACION,FECHA_MODIFICACION,TERMINAL_MODIFICACION) VALUES (VN_SECUENCIA,'UPD',2,:OLD.WLN_ID_LINEA_NEGOCIO,:NEW.WLN_DESCRIPCION,:NEW.WLN_ESTADO, :NEW.USUARIO_INGRESO,:NEW.FECHA_INGRESO,:NEW.TERMINAL_INGRESO, :NEW.USUARIO_MODIFICACION,:NEW.FECHA_MODIFICACION,:NEW.TERMINAL_MODIFICACION); EXCEPTION WHEN OTHERS THEN MSG_RET := SUBSTR('ERROR EN TRIGGER <CRM_WEB_TRIG_SERVICIOS> AL ACTUALIZAR '||:OLD.WLN_ID_LINEA_NEGOCIO||' '||SQLERRM,1,200); RAISE ERROR; END; -- ELSIF DELETING THEN -- BEGIN
Ilustración 87
Creación de Triggers
INSERT INTO CRM_WEB_REPLICA_SERVICIOS (SECUENCIA,TIPO_MOVIMIENTO,CODIGO_TABLA,ID_SERVICIO) VALUES (VN_SECUENCIA,'DEL',2,:OLD.WLN_ID_LINEA_NEGOCIO); EXCEPTION WHEN OTHERS THEN MSG_RET := SUBSTR('ERROR EN TRIGGER <CRM_WEB_TRIG_SERVICIOS> AL ELIMINAR '||:OLD.WLN_ID_LINEA_NEGOCIO||' '||SQLERRM,1,200); RAISE ERROR; END; -- END IF; EXCEPTION WHEN ERROR THEN DBMS_OUTPUT.PUT_LINE(MSG_RET); WHEN OTHERS THEN MSG_RET := SUBSTR('ERROR NO CONTROLADO EN TRIGGER <CRM_WEB_TRIG_LINEA_NEGOCIO> '||SQLERRM,1,200); RAISE ERROR; END CRM_WEB_TRIG_LINEA_NEGOCIO; / CREATE OR REPLACE TRIGGER CRM_WEB_TRIG_PRECIO_ITEM AFTER DELETE OR INSERT OR UPDATE ON ADMCRM.CRM_WEB_PRECIO_ITEM REFERENCING NEW AS New OLD AS Old FOR EACH ROW DECLARE MSG_RET VARCHAR2(200):=NULL; VN_SECUENCIA NUMBER:=0; ERROR EXCEPTION; BEGIN -- OBTENGO LA SECUENCIA SELECT CRM_WEB_SEC_MOVIMIENTOS.NEXTVAL INTO VN_SECUENCIA FROM DUAL; -- IF INSERTING THEN BEGIN INSERT INTO CRM_WEB_REPLICA_PROMOCIONES (SECUENCIA,TIPO_MOVIMIENTO,CODIGO_TABLA,ID_ITEM,VALOR, FECHAVIGENCIA,ESTADO,USUARIO_INGRESO,FECHA_INGRESO, TERMINAL_INGRESO, USUARIO_MODIFICACION,FECHA_MODIFICACION,TERMINAL_MODIFICACION)
Ilustración 88
Creación de Triggers
VALUES (VN_SECUENCIA,'INS',2,:NEW.WRI_ID_ITEM, :NEW.WRI_VALOR,:NEW.WRI_FECHAVIGENCIA, :NEW.WRI_ESTADO,:NEW.USUARIO_INGRESO, :NEW.FECHA_INGRESO,:NEW.TERMINAL_INGRESO,:NEW.USUARIO_MODIFICACION, :NEW.FECHA_MODIFICACION,:NEW.TERMINAL_MODIFICACION); EXCEPTION WHEN OTHERS THEN MSG_RET := SUBSTR('ERROR EN TRIGGER <CRM_WEB_TRIG_PRECIO_ITEM> AL INSERTAR '||:NEW.WRI_ID_ITEM||' '||SQLERRM,1,200); RAISE ERROR; END; -- ELSIF UPDATING THEN -- BEGIN INSERT INTO CRM_WEB_REPLICA_PROMOCIONES (SECUENCIA,TIPO_MOVIMIENTO,CODIGO_TABLA,ID_ITEM,VALOR, FECHAVIGENCIA,ESTADO,USUARIO_INGRESO,FECHA_INGRESO, TERMINAL_INGRESO, USUARIO_MODIFICACION,FECHA_MODIFICACION,TERMINAL_MODIFICACION) VALUES (VN_SECUENCIA,'UPD',2,:NEW.WRI_ID_ITEM, :NEW.WRI_VALOR,:NEW.WRI_FECHAVIGENCIA, :NEW.WRI_ESTADO,:NEW.USUARIO_INGRESO, :NEW.FECHA_INGRESO,:NEW.TERMINAL_INGRESO,:NEW.USUARIO_MODIFICACION, :NEW.FECHA_MODIFICACION,:NEW.TERMINAL_MODIFICACION); EXCEPTION WHEN OTHERS THEN MSG_RET := SUBSTR('ERROR EN TRIGGER <CRM_WEB_TRIG_PRECIO_ITEM> AL INSERTAR '||:NEW.WRI_ID_ITEM||' '||SQLERRM,1,200); RAISE ERROR; END;
Ilustración 89
Creación de Triggers
--
ELSIF DELETING THEN -- BEGIN INSERT INTO CRM_WEB_REPLICA_PROMOCIONES (SECUENCIA,TIPO_MOVIMIENTO,CODIGO_TABLA,ID_ITEM) VALUES (VN_SECUENCIA,'DEL',2,:OLD.WRI_ID_ITEM); EXCEPTION WHEN OTHERS THEN MSG_RET := SUBSTR('ERROR EN TRIGGER <CRM_WEB_TRIG_PRECIO_ITEM> AL ELIMINAR '||:OLD.WRI_ID_ITEM||' '||SQLERRM,1,200); RAISE ERROR; END; -- END IF; EXCEPTION WHEN ERROR THEN DBMS_OUTPUT.PUT_LINE(MSG_RET); WHEN OTHERS THEN MSG_RET := SUBSTR('ERROR NO CONTROLADO EN TRIGGER <CRM_WEB_TRIG_PRECIO_ITEM> '||SQLERRM,1,200); RAISE ERROR; END CRM_WEB_TRIG_PRECIO_ITEM; / CREATE OR REPLACE TRIGGER CRM_WEB_TRIG_PREGUNTA_ENCUESTA AFTER DELETE OR INSERT OR UPDATE ON ADMCRM.CRM_WEB_PREGUNTA_ENCUESTA REFERENCING NEW AS New OLD AS Old FOR EACH ROW DECLARE MSG_RET VARCHAR2(200):=NULL; VN_SECUENCIA NUMBER:=0; ERROR EXCEPTION; BEGIN -- OBTENGO LA SECUENCIA SELECT CRM_WEB_SEC_MOVIMIENTOS.NEXTVAL INTO VN_SECUENCIA FROM DUAL; -- IF INSERTING THEN BEGIN INSERT INTO CRM_WEB_REPLICA_ENCUESTAS(SECUENCIA,TIPO_MOVIMIENTO,CODIGO_TABLA,ID_PREGUNTA_ENCUESTA, ID_ENCUESTA,DESCRIPCION,ESTADO,OPTMUL,
Ilustración 90
Creación de Triggers
USUARIO_INGRESO,FECHA_INGRESO,TERMINAL_INGRESO, USUARIO_MODIFICACION,FECHA_MODIFICACION,TERMINAL_MODIFICACION) VALUES (VN_SECUENCIA,'INS',2,:NEW.WPE_ID_PREGUNTA_ENCUESTA,:NEW.WPE_ID_ENCUESTA, :NEW.WPE_DESCRIPCION,:NEW.WPE_ESTADO,:NEW.WPE_OPTMUL,:NEW.USUARIO_INGRESO, :NEW.FECHA_INGRESO,:NEW.TERMINAL_INGRESO,:NEW.USUARIO_MODIFICACION, :NEW.FECHA_MODIFICACION,:NEW.TERMINAL_MODIFICACION); EXCEPTION WHEN OTHERS THEN MSG_RET := SUBSTR('ERROR EN TRIGGER <CRM_WEB_TRIG_PREGUNTA_ENCUESTAS> AL INSERTAR '||:NEW.WPE_ID_PREGUNTA_ENCUESTA||' '||SQLERRM,1,200); RAISE ERROR; END; -- ELSIF UPDATING THEN -- BEGIN INSERT INTO CRM_WEB_REPLICA_ENCUESTAS(SECUENCIA,TIPO_MOVIMIENTO,CODIGO_TABLA,ID_PREGUNTA_ENCUESTA, ID_ENCUESTA,DESCRIPCION,ESTADO,OPTMUL, USUARIO_INGRESO,FECHA_INGRESO,TERMINAL_INGRESO, USUARIO_MODIFICACION,FECHA_MODIFICACION,TERMINAL_MODIFICACION) VALUES (VN_SECUENCIA,'UPD',2,:NEW.WPE_ID_PREGUNTA_ENCUESTA,:NEW.WPE_ID_ENCUESTA, :NEW.WPE_DESCRIPCION,:NEW.WPE_ESTADO,:NEW.WPE_OPTMUL,:NEW.USUARIO_INGRESO, :NEW.FECHA_INGRESO,:NEW.TERMINAL_INGRESO,:NEW.USUARIO_MODIFICACION, :NEW.FECHA_MODIFICACION,:NEW.TERMINAL_MODIFICACION); EXCEPTION
Ilustración 91
Creación de Triggers
WHEN OTHERS THEN MSG_RET := SUBSTR('ERROR EN TRIGGER <CRM_WEB_TRIG_PREGUNTA_ENCUESTAS> AL INSERTAR '||:NEW.WPE_ID_PREGUNTA_ENCUESTA||' '||SQLERRM,1,200); RAISE ERROR; END; -- ELSIF DELETING THEN -- BEGIN INSERT INTO CRM_WEB_REPLICA_ENCUESTAS (SECUENCIA,TIPO_MOVIMIENTO,CODIGO_TABLA,ID_PREGUNTA_ENCUESTA) VALUES (VN_SECUENCIA,'DEL',2,:OLD.WPE_ID_PREGUNTA_ENCUESTA); EXCEPTION WHEN OTHERS THEN MSG_RET := SUBSTR('ERROR EN TRIGGER <CRM_WEB_TRIG_PREGUNTA_ENCUESTAS> AL ELIMINAR '||:OLD.WPE_ID_PREGUNTA_ENCUESTA||' '||SQLERRM,1,200); RAISE ERROR; END; -- END IF; EXCEPTION WHEN ERROR THEN DBMS_OUTPUT.PUT_LINE(MSG_RET); WHEN OTHERS THEN MSG_RET := SUBSTR('ERROR NO CONTROLADO EN TRIGGER <CRM_WEB_TRIG_PREGUNTA_ENCUESTAS> '||SQLERRM,1,200); RAISE ERROR; END CRM_WEB_TRIG_PREGUNTA_ENCUESTA; / CREATE OR REPLACE TRIGGER CRM_WEB_TRIG_PROMOCIONES AFTER DELETE OR INSERT OR UPDATE ON ADMCRM.CRM_WEB_PROMOCIONES REFERENCING NEW AS New OLD AS Old FOR EACH ROW DECLARE MSG_RET VARCHAR2(200):=NULL; VN_SECUENCIA NUMBER:=0; ERROR EXCEPTION; BEGIN -- OBTENGO LA SECUENCIA SELECT CRM_WEB_SEC_MOVIMIENTOS.NEXTVAL INTO VN_SECUENCIA
Ilustración 92
Creación de Triggers
FROM DUAL; -- IF INSERTING THEN BEGIN INSERT INTO CRM_WEB_REPLICA_PROMOCIONES (SECUENCIA,TIPO_MOVIMIENTO,CODIGO_TABLA,ID_PROMOCION,ID_LINEA_NEGOCIO, DESCRIPCION,FECHA_INI,FECHA_FIN,VALOR,ESTADO, USUARIO_INGRESO,FECHA_INGRESO,TERMINAL_INGRESO, USUARIO_MODIFICACION,FECHA_MODIFICACION,TERMINAL_MODIFICACION) VALUES (VN_SECUENCIA,'INS',3,:NEW.WPR_ID_PROMOCION,:NEW.WPR_ID_LINEA_NEGOCIO, :NEW.WPR_DESCRIPCION,:NEW.WPR_FECHA_INI,:NEW.WPR_FECHA_FIN,:NEW.WPR_VALOR, :NEW.WPR_ESTADO,:NEW.USUARIO_INGRESO, :NEW.FECHA_INGRESO,:NEW.TERMINAL_INGRESO,:NEW.USUARIO_MODIFICACION, :NEW.FECHA_MODIFICACION,:NEW.TERMINAL_MODIFICACION); EXCEPTION WHEN OTHERS THEN MSG_RET := SUBSTR('ERROR EN TRIGGER <CRM_WEB_TRIG_PROMOCIONES> AL INSERTAR '||:NEW.WPR_ID_PROMOCION||' '||SQLERRM,1,200); RAISE ERROR; END; -- ELSIF UPDATING THEN -- BEGIN INSERT INTO CRM_WEB_REPLICA_PROMOCIONES (SECUENCIA,TIPO_MOVIMIENTO,CODIGO_TABLA,ID_PROMOCION,ID_LINEA_NEGOCIO, DESCRIPCION,FECHA_INI,FECHA_FIN,VALOR,ESTADO, USUARIO_INGRESO,FECHA_INGRESO,TERMINAL_INGRESO, USUARIO_MODIFICACION,FECHA_MODIFICACION,TERMINAL_MODIFICACION) VALUES (VN_SECUENCIA,'UPD',3,:NEW.WPR_ID_PROMOCION,:NEW.WPR_ID_LINEA_NEGOCIO,
Ilustración 93
Creación de Triggers
:NEW.WPR_DESCRIPCION,:NEW.WPR_FECHA_INI,:NEW.WPR_FECHA_FIN,:NEW.WPR_VALOR, :NEW.WPR_ESTADO,:NEW.USUARIO_INGRESO, :NEW.FECHA_INGRESO,:NEW.TERMINAL_INGRESO,:NEW.USUARIO_MODIFICACION, :NEW.FECHA_MODIFICACION,:NEW.TERMINAL_MODIFICACION); EXCEPTION WHEN OTHERS THEN MSG_RET := SUBSTR('ERROR EN TRIGGER <CRM_WEB_TRIG_PROMOCIONES> AL INSERTAR '||:NEW.WPR_ID_PROMOCION||' '||SQLERRM,1,200); RAISE ERROR; END; -- ELSIF DELETING THEN -- BEGIN INSERT INTO CRM_WEB_REPLICA_PROMOCIONES (SECUENCIA,TIPO_MOVIMIENTO,CODIGO_TABLA,ID_PROMOCION) VALUES (VN_SECUENCIA,'DEL',3,:OLD.WPR_ID_PROMOCION); EXCEPTION WHEN OTHERS THEN MSG_RET := SUBSTR('ERROR EN TRIGGER <CRM_WEB_TRIG_PROMOCIONES> AL ELIMINAR '||:OLD.WPR_ID_PROMOCION||' '||SQLERRM,1,200); RAISE ERROR; END; -- END IF; EXCEPTION WHEN ERROR THEN DBMS_OUTPUT.PUT_LINE(MSG_RET); WHEN OTHERS THEN MSG_RET := SUBSTR('ERROR NO CONTROLADO EN TRIGGER <CRM_WEB_TRIG_PROMOCIONES> '||SQLERRM,1,200); RAISE ERROR; END CRM_WEB_TRIG_PROMOCIONES; / CREATE OR REPLACE TRIGGER CRM_WEB_TRIG_PROMOCION_ITEM AFTER DELETE OR INSERT OR UPDATE ON ADMCRM.CRM_WEB_PROMOCION_ITEM REFERENCING NEW AS New OLD AS Old
Ilustración 94
Creación de Triggers
FOR EACH ROW DECLARE MSG_RET VARCHAR2(200):=NULL; VN_SECUENCIA NUMBER:=0; ERROR EXCEPTION; BEGIN -- OBTENGO LA SECUENCIA SELECT CRM_WEB_SEC_MOVIMIENTOS.NEXTVAL INTO VN_SECUENCIA FROM DUAL; -- IF INSERTING THEN BEGIN INSERT INTO CRM_WEB_REPLICA_PROMOCIONES (SECUENCIA,TIPO_MOVIMIENTO,CODIGO_TABLA,ID_PROMOCION,ID_ITEM, CANTIDAD,VALOR,ESTADO, USUARIO_INGRESO,FECHA_INGRESO,TERMINAL_INGRESO, USUARIO_MODIFICACION,FECHA_MODIFICACION,TERMINAL_MODIFICACION) VALUES (VN_SECUENCIA,'INS',4,:NEW.WPI_ID_PROMOCION,:NEW.WPI_ID_ITEM, :NEW.WPI_CANTIDAD,:NEW.WPI_VALOR, :NEW.WPI_ESTADO,:NEW.USUARIO_INGRESO, :NEW.FECHA_INGRESO,:NEW.TERMINAL_INGRESO,:NEW.USUARIO_MODIFICACION, :NEW.FECHA_MODIFICACION,:NEW.TERMINAL_MODIFICACION); EXCEPTION WHEN OTHERS THEN MSG_RET := SUBSTR('ERROR EN TRIGGER <CRM_WEB_TRIG_PROMOCION_ITEM> AL INSERTAR '||:NEW.WPI_ID_PROMOCION||' '||SQLERRM,1,200); RAISE ERROR; END; -- ELSIF UPDATING THEN -- BEGIN INSERT INTO CRM_WEB_REPLICA_PROMOCIONES (SECUENCIA,TIPO_MOVIMIENTO,CODIGO_TABLA,ID_PROMOCION,ID_ITEM, CANTIDAD,VALOR,ESTADO, USUARIO_INGRESO,FECHA_INGRESO,TERMINAL_INGRESO,
Ilustración 95
Creación de Triggers
USUARIO_MODIFICACION,FECHA_MODIFICACION,TERMINAL_MODIFICACION) VALUES (VN_SECUENCIA,'UPD',4,:NEW.WPI_ID_PROMOCION,:NEW.WPI_ID_ITEM, :NEW.WPI_CANTIDAD,:NEW.WPI_VALOR, :NEW.WPI_ESTADO,:NEW.USUARIO_INGRESO, :NEW.FECHA_INGRESO,:NEW.TERMINAL_INGRESO,:NEW.USUARIO_MODIFICACION, :NEW.FECHA_MODIFICACION,:NEW.TERMINAL_MODIFICACION); EXCEPTION WHEN OTHERS THEN MSG_RET := SUBSTR('ERROR EN TRIGGER <CRM_WEB_TRIG_PROMOCION_ITEM> AL INSERTAR '||:NEW.WPI_ID_PROMOCION||' '||SQLERRM,1,200); RAISE ERROR; END; -- ELSIF DELETING THEN -- BEGIN INSERT INTO CRM_WEB_REPLICA_PROMOCIONES (SECUENCIA,TIPO_MOVIMIENTO,CODIGO_TABLA,ID_PROMOCION) VALUES (VN_SECUENCIA,'DEL',4,:OLD.WPI_ID_PROMOCION); EXCEPTION WHEN OTHERS THEN MSG_RET := SUBSTR('ERROR EN TRIGGER <CRM_WEB_TRIG_PROMOCION_ITEM> AL ELIMINAR '||:OLD.WPI_ID_PROMOCION||' '||SQLERRM,1,200); RAISE ERROR; END; -- END IF; EXCEPTION WHEN ERROR THEN DBMS_OUTPUT.PUT_LINE(MSG_RET); WHEN OTHERS THEN MSG_RET := SUBSTR('ERROR NO CONTROLADO EN TRIGGER <CRM_WEB_TRIG_PROMOCION_ITEM> '||SQLERRM,1,200); RAISE ERROR; END CRM_WEB_TRIG_PROMOCION_ITEM; / CREATE OR REPLACE TRIGGER CRM_WEB_TRIG_SERVICIOS
Ilustración 96
Creación de Triggers
AFTER DELETE OR INSERT OR UPDATE ON ADMCRM.CRM_WEB_SERVICIOS REFERENCING NEW AS New OLD AS Old FOR EACH ROW DECLARE MSG_RET VARCHAR2(200):=NULL; VN_SECUENCIA NUMBER:=0; ERROR EXCEPTION; BEGIN -- OBTENGO LA SECUENCIA SELECT CRM_WEB_SEC_MOVIMIENTOS.NEXTVAL INTO VN_SECUENCIA FROM DUAL; -- IF INSERTING THEN BEGIN INSERT INTO CRM_WEB_REPLICA_SERVICIOS (SECUENCIA,TIPO_MOVIMIENTO,CODIGO_TABLA,ID_SERVICIO,ID_LINEA_NEGOCIO, DESCRIPCION,ESTADO,USUARIO_INGRESO,FECHA_INGRESO,TERMINAL_INGRESO, USUARIO_MODIFICACION,FECHA_MODIFICACION,TERMINAL_MODIFICACION) VALUES (VN_SECUENCIA,'INS',1,:NEW.WSE_ID_SERVICIO, :NEW.WSE_ID_LINEA_NEGOCIO,:NEW.WSE_DESCRIPCION,:NEW.WSE_ESTADO, :NEW.USUARIO_INGRESO,:NEW.FECHA_INGRESO,:NEW.TERMINAL_INGRESO, :NEW.USUARIO_MODIFICACION,:NEW.FECHA_MODIFICACION,:NEW.TERMINAL_MODIFICACION); EXCEPTION WHEN OTHERS THEN MSG_RET := SUBSTR('ERROR EN TRIGGER <CRM_WEB_TRIG_SERVICIOS> AL INSERTAR '||:NEW.WSE_ID_SERVICIO||' '||SQLERRM,1,200); RAISE ERROR; END; -- ELSIF UPDATING THEN -- BEGIN INSERT INTO CRM_WEB_REPLICA_SERVICIOS (SECUENCIA,TIPO_MOVIMIENTO,CODIGO_TABLA,ID_SERVICIO,ID_LINEA_NEGOCIO, DESCRIPCION,ESTADO,USUARIO_INGRESO,FECHA_INGRESO,TERMINAL_INGRESO, USUARIO_MODIFICACION,FECHA_MODIFICACION,TERMINAL_MODIFICACION)
Ilustración 97
Creación de Triggers
VALUES (VN_SECUENCIA,'UPD',1,:OLD.WSE_ID_SERVICIO, :NEW.WSE_ID_LINEA_NEGOCIO,:NEW.WSE_DESCRIPCION,:NEW.WSE_ESTADO, :NEW.USUARIO_INGRESO,:NEW.FECHA_INGRESO,:NEW.TERMINAL_INGRESO, :NEW.USUARIO_MODIFICACION,:NEW.FECHA_MODIFICACION,:NEW.TERMINAL_MODIFICACION); EXCEPTION WHEN OTHERS THEN MSG_RET := SUBSTR('ERROR EN TRIGGER <CRM_WEB_TRIG_SERVICIOS> AL ACTUALIZAR '||:OLD.WSE_ID_SERVICIO||' '||SQLERRM,1,200); RAISE ERROR; END; -- ELSIF DELETING THEN -- BEGIN INSERT INTO CRM_WEB_REPLICA_SERVICIOS (SECUENCIA,TIPO_MOVIMIENTO,CODIGO_TABLA,ID_SERVICIO) VALUES (VN_SECUENCIA,'DEL',1,:OLD.WSE_ID_SERVICIO); EXCEPTION WHEN OTHERS THEN MSG_RET := SUBSTR('ERROR EN TRIGGER <CRM_WEB_TRIG_SERVICIOS> AL ELIMINAR '||:OLD.WSE_ID_SERVICIO||' '||SQLERRM,1,200); RAISE ERROR; END; -- END IF; EXCEPTION WHEN ERROR THEN DBMS_OUTPUT.PUT_LINE(MSG_RET); WHEN OTHERS THEN MSG_RET := SUBSTR('ERROR NO CONTROLADO EN TRIGGER <CRM_WEB_TRIG_SERVICIOS> '||SQLERRM,1,200); RAISE ERROR; END CRM_WEB_TRIG_SERVICIOS; / CREATE OR REPLACE TRIGGER CRM_WEB_TRIG_SERVICIO_CLIENTE AFTER DELETE OR INSERT OR UPDATE ON ADMCRM.CRM_WEB_SERVICIO_CLIENTE REFERENCING NEW AS New OLD AS Old FOR EACH ROW DECLARE MSG_RET VARCHAR2(200):=NULL;
Ilustración 98
Creación de Triggers
VN_SECUENCIA NUMBER:=0; ERROR EXCEPTION; BEGIN -- OBTENGO LA SECUENCIA SELECT CRM_WEB_SEC_MOVIMIENTOS.NEXTVAL INTO VN_SECUENCIA FROM DUAL; -- IF INSERTING THEN BEGIN INSERT INTO CRM_WEB_REPLICA_SERVICIOS (SECUENCIA,TIPO_MOVIMIENTO,CODIGO_TABLA,ID_SERVICIO,ID_CLIENTE, ESTADO,USUARIO_INGRESO,FECHA_INGRESO,TERMINAL_INGRESO, USUARIO_MODIFICACION,FECHA_MODIFICACION,TERMINAL_MODIFICACION) VALUES (VN_SECUENCIA,'INS',3,:NEW.WSC_ID_SERVICIO, :NEW.WSC_ID_CLIENTE,:NEW.WSC_ESTADO,:NEW.USUARIO_INGRESO, :NEW.FECHA_INGRESO,:NEW.TERMINAL_INGRESO,:NEW.USUARIO_MODIFICACION, :NEW.FECHA_MODIFICACION,:NEW.TERMINAL_MODIFICACION); EXCEPTION WHEN OTHERS THEN MSG_RET := SUBSTR('ERROR EN TRIGGER <CRM_WEB_TRIG_SERVICIO_CLIENTE> AL INSERTAR '||:NEW.WSC_ID_SERVICIO||' '||SQLERRM,1,200); RAISE ERROR; END; -- ELSIF UPDATING THEN -- BEGIN INSERT INTO CRM_WEB_REPLICA_SERVICIOS (SECUENCIA,TIPO_MOVIMIENTO,CODIGO_TABLA,ID_SERVICIO,ID_CLIENTE, ESTADO,USUARIO_INGRESO,FECHA_INGRESO,TERMINAL_INGRESO, USUARIO_MODIFICACION,FECHA_MODIFICACION,TERMINAL_MODIFICACION) VALUES (VN_SECUENCIA,'UPD',3,:NEW.WSC_ID_SERVICIO, :NEW.WSC_ID_CLIENTE,:NEW.WSC_ESTADO,:NEW.USUARIO_INGRESO, :NEW.FECHA_INGRESO,:NEW.TERMINAL_INGRESO,:NEW.USUARIO_MODIFICACION,
Ilustración 99
Creación de Triggers
:NEW.FECHA_MODIFICACION,:NEW.TERMINAL_MODIFICACION); EXCEPTION WHEN OTHERS THEN MSG_RET := SUBSTR('ERROR EN TRIGGER <CRM_WEB_TRIG_SERVICIO_CLIENTE> AL ACTUALIZAR '||:OLD.WSC_ID_SERVICIO||' '||SQLERRM,1,200); RAISE ERROR; END; -- ELSIF DELETING THEN -- BEGIN INSERT INTO CRM_WEB_REPLICA_SERVICIOS (SECUENCIA,TIPO_MOVIMIENTO,CODIGO_TABLA,ID_SERVICIO,ID_CLIENTE) VALUES (VN_SECUENCIA,'DEL',1,:OLD.WSC_ID_SERVICIO,:OLD.WSC_ID_CLIENTE); EXCEPTION WHEN OTHERS THEN MSG_RET := SUBSTR('ERROR EN TRIGGER <CRM_WEB_TRIG_SERVICIO_CLIENTE> AL ELIMINAR '||:OLD.WSC_ID_SERVICIO||' '||SQLERRM,1,200); RAISE ERROR; END; -- END IF; EXCEPTION WHEN ERROR THEN DBMS_OUTPUT.PUT_LINE(MSG_RET); WHEN OTHERS THEN MSG_RET := SUBSTR('ERROR NO CONTROLADO EN TRIGGER <CRM_WEB_TRIG_SERVICIO_CLIENTE> '||SQLERRM,1,200); RAISE ERROR; END CRM_WEB_TRIG_SERVICIO_CLIENTE; / CREATE OR REPLACE TRIGGER CRM_WEB_TRIG_TIPO_CLIENTE AFTER DELETE OR INSERT OR UPDATE ON ADMCRM.CRM_WEB_TIPO_CLIENTE REFERENCING NEW AS New OLD AS Old FOR EACH ROW DECLARE MSG_RET VARCHAR2(200):=NULL; VN_SECUENCIA NUMBER:=0; ERROR EXCEPTION; BEGIN -- OBTENGO LA SECUENCIA
Ilustración 100
Creación de Triggers
SELECT CRM_WEB_SEC_MOVIMIENTOS.NEXTVAL INTO VN_SECUENCIA FROM DUAL; -- IF INSERTING THEN BEGIN INSERT INTO CRM_WEB_REPLICA_CLIENTES(SECUENCIA,TIPO_MOVIMIENTO,CODIGO_TABLA, ID_TIPO_CLIENTE,NOMBRE,DESCRIPCION,PRIORIDAD,ESTADO, USUARIO_INGRESO,FECHA_INGRESO,TERMINAL_INGRESO, USUARIO_MODIFICACION,FECHA_MODIFICACION,TERMINAL_MODIFICACION) VALUES (VN_SECUENCIA,'INS',2,:NEW.WTC_ID_TIPO_CLIENTE,:NEW.WTC_NOMBRE, :NEW.WTC_DESCRIPCION,:NEW.WTC_PRIORIDAD,:NEW.WTC_ESTADO,:NEW.USUARIO_INGRESO, :NEW.FECHA_INGRESO,:NEW.TERMINAL_INGRESO,:NEW.USUARIO_MODIFICACION, :NEW.FECHA_MODIFICACION,:NEW.TERMINAL_MODIFICACION); EXCEPTION WHEN OTHERS THEN MSG_RET := SUBSTR('ERROR EN TRIGGER <CRM_WEB_TRIG_TIPO_CLIENTE> AL INSERTAR '||:NEW.WTC_ID_TIPO_CLIENTE||' '||SQLERRM,1,200); RAISE ERROR; END; -- ELSIF UPDATING THEN -- BEGIN INSERT INTO CRM_WEB_REPLICA_CLIENTES(SECUENCIA,TIPO_MOVIMIENTO,CODIGO_TABLA, ID_TIPO_CLIENTE,NOMBRE,DESCRIPCION,PRIORIDAD,ESTADO, USUARIO_INGRESO,FECHA_INGRESO,TERMINAL_INGRESO, USUARIO_MODIFICACION,FECHA_MODIFICACION,TERMINAL_MODIFICACION) VALUES (VN_SECUENCIA,'UPD',2,:NEW.WTC_ID_TIPO_CLIENTE,:NEW.WTC_NOMBRE, :NEW.WTC_DESCRIPCION,:NEW.WTC_PRIORIDAD,:NEW.WTC_ESTADO,:NEW.USUARIO_INGRESO,
Ilustración 101
Creación de Triggers
:NEW.FECHA_INGRESO,:NEW.TERMINAL_INGRESO,:NEW.USUARIO_MODIFICACION, :NEW.FECHA_MODIFICACION,:NEW.TERMINAL_MODIFICACION); EXCEPTION WHEN OTHERS THEN MSG_RET := SUBSTR('ERROR EN TRIGGER <CRM_WEB_TRIG_TIPO_CLIENTE> AL INSERTAR '||:NEW.WTC_ID_TIPO_CLIENTE||' '||SQLERRM,1,200); RAISE ERROR; END; -- ELSIF DELETING THEN -- BEGIN INSERT INTO CRM_WEB_REPLICA_CLIENTES (SECUENCIA,TIPO_MOVIMIENTO,CODIGO_TABLA,ID_TIPO_CLIENTE) VALUES (VN_SECUENCIA,'DEL',2,:OLD.WTC_ID_TIPO_CLIENTE); EXCEPTION WHEN OTHERS THEN MSG_RET := SUBSTR('ERROR EN TRIGGER <CRM_WEB_TRIG_TIPO_CLIENTE> AL ELIMINAR '||:OLD.WTC_ID_TIPO_CLIENTE||' '||SQLERRM,1,200); RAISE ERROR; END; -- END IF; EXCEPTION WHEN ERROR THEN DBMS_OUTPUT.PUT_LINE(MSG_RET); WHEN OTHERS THEN MSG_RET := SUBSTR('ERROR NO CONTROLADO EN TRIGGER <CRM_WEB_TRIG_TIPO_CLIENTE> '||SQLERRM,1,200); RAISE ERROR; END CRM_WEB_TRIG_TIPO_CLIENTE; /
Ilustración 102
Creación de Triggers
Manual Técnico
Web E-CRM
INTRODUCCION
El sistema para el módulo Web-eCRM es una Aplicación Web Distribuida, lo
que quiere decir que ha sido diseñada e implementada en capas.
La Aplicación fue implementada para correr en cualquier Sistema Operativo,
que soporte J2ee en el cual el proyecto utilizó como servidor Web OC4J.
Para el desarrollo del módulo Web E-CRM se utilizo las clases para
aplicaciones Web que provee la tecnología Java, que es el JDeveloper y el
Java Studio Creator.
Para la persistencia de los datos se uso un servidor de bases de datos que
es el Oracle 9i.
Hemos definido el modelo de tres capas, los cuales son:
• Capa de Presentación:
En esta capa se encuentran todos los elementos que componen la
Interfaz de la aplicación con el usuario, tales como: Paginas JSP,
Formularios Web, entre otros, esta parte del proyecto se la efectúo en
el software free JDeveloper.
• Capa de Lógica de procesos:
Internamente el proyecto realiza sus procesos por medio de los
Servlets y paquetería de clases.
• Capa de Datos:
Esta capa se encarga de la persistencia de los datos, es decir un
Bloque de código con acceso a los datos, tales como: Paquetes,
Procedimientos almacenados, bloques de código con acceso a los
datos.
Ilustración 1
Ambiente de la aplicación
REQUERIMIENTOS MÍNIMOS DE INSTALACIÓN
SERVIDOR WEB
Hardware
Procesador Pentium IV, 2.4 GHz o superior
Memoria 512 MB de RAM o superior
Disco Duro 80 GB
Video Super VGA (800 x 600) o superior con 256
colores
Tabla # 1
Requerimientos mínimos Servidor Hardware
Software
Sistema Operativo Microsoft Windows, Linux.
Software Adicional OC4J
Oracle Database 9i
Macromedia Flash 8
Virtual Java Machine
Microsoft Internet Explorer 6.0
Adobe Reader 5.0 o posterior
Tabla # 2
Requerimientos mínimos Servidor Software
CLIENTE
Hardware
Procesador Pentium III, 1.1 GHz
Memoria 256 MB de RAM
Disco Duro 80 GB
Video Super VGA (800 x 600) o superior con 256
colores
Tabla # 3
Requerimientos mínimos Cliente Hardware
Software
Sistema Operativo Microsoft Windows, Linux.
Software Adicional Microsoft Internet Explorer 6.0
Adobe Reader 5.0 o posterior
Reproductor de Flash Player
Tabla # 4
Requerimientos mínimos Cliente Software
MANUAL DE USUARIO
WEB E-CRM
INTRODUCCIÓN
El presente documento tiene como finalidad guiar al usuario para la correcta
utilización y funcionalidad del Sistema para Televisión Pagada “Cable
Systems”.
Se trata de una estrategia de negocios CRM que lo que quiere es
proporcionar un mejor servicio al cliente cumpliendo con las expectativas de
ellos y atendiendo a sus necesidades.
Las pantallas están diseñadas de forma amigable y de fácil manejo,
rigiéndose bajo el estándar WYSIWIG. Todo sistema debería tener su
respectivo manual de usuario.
DEFINICION GENERAL
El proyecto en general CRM (Customer Relationship Management), es una
estrategia de negocio para la retención del cliente.
Este proyecto se basa exclusivamente en proporcionar un servicio de calidad
hacia el cliente, gestionar las relaciones con los clientes, satisfacer las
necesidades estableciendo una estrecha relación entre el cliente y la
empresa, para que de esta manera se vuelvan menos vulnerables a la
competencia.
El módulo Web e-CRM busca retener y satisfacer las necesidades del cliente
por medio de los servicios publicados en el Internet.
En el sitio Web el cliente deberá registrarse para gozar de los beneficios que
Cable Systems le proporciona, en el cual podrá visualizar desde el lugar en el
que se encuentre podrá activar un servicio adicional del que posee, revisar
su estado de cuenta, aprovechar las promociones, enterarse de noticias
televisivas, visualizar la programación desde los canales proveedores, hasta
poner su reclamo de cualquier índole desde el mismo sitio, entre otros
servicios.
• Página Web
Pantalla Inicial
Ilustración 1
Pantalla Inicial del Sitio Web
Como apreciamos anteriormente podemos notar que existen algunas
secciones definidas en nuestra página inicial, entre las cuales tenemos en la
parte superior la siguiente:
Ilustración 2
Contenido superior Página Web
Botón o link Inicio, muestra el Home del sitio y nos regresa nuevamente a
la página principal del sitio Web.
Botón o link Noticias, esta página nos muestra las noticias publicadas en
nuestro Sitio, que serían de diferentes temas de nuestra línea de negocio.
Esta página solo es informativa para todo tipo de usuarios, no necesita ser
usuario registrado para poder visualizarlas.
Cuando muestra las Noticias especifica una breve descripción y su fecha de
expedición, esto se publica por tiempo limitado, y máximo de 3 noticias por
pantalla, en el cual existe un botón siguiente que aparece en el caso que
existan más noticias publicadas en el Sitio Web.
A continuación se muestra la pantalla de noticias:
Ilustración 3
Pantalla de Noticias
El Botón o link Paquetes, nos muestra todos aquellos planes que se
venden, o el servicio que se brinda al usuario dependiendo de la línea de
negocio al que se dedica la empresa.
No necesita ser usuario registrado para visualizar, para de esta manera
llamar la atención de nuestros futuros clientes, que puedan averiguar que tipo
de servicio se adapta a sus necesidades.
Ilustración 4
Pantalla de Paquetes
Si el usuario desea ver que contiene ese paquete deberá dar clic sobre el
paquete que desea visualizar y le mostrará los canales disponibles para ese
paquete, como se muestra en la pantalla a continuación:
En esta pantalla muestra el nombre del paquete, el canal y a que categoría
pertenecen esos canales.
Ilustración 5
Detalle de Paquetes
El Botón o link Encuesta, muestra las encuestas publicadas con el tema de
encuesta, la pregunta y sus respuestas alternativas que se le brinda al cliente
para que este pueda colaborar con nosotros en saber sus gustos y
preferencias y así poderles ofrecer un mejor servicio.
No necesita ser usuario registrado para votar en nuestra encuesta, cualquier
persona que forme parte de la familia puede hacerlo.
Ilustración 6
Encuestas publicadas
Una vez que el usuario haya escogido su opción por medio de la página en
Internet y presiona el botón Votar automáticamente lo envía a los resultados
actuales de la encuesta.
A continuación los resultados de la encuesta publicada.
Ilustración 7
Resultados de Encuestas publicadas
Botón o link Contáctenos, en esta página muestra información en el cual el
usuario pueda contactarnos por medio de nuestro PBX, como se muestra a
continuación.
Ilustración 8
PBX Servicio al Cliente
Si desea más información y que algún asesor de nuestra empresa lo
contacte, puede llenar el formulario de datos con el cual se lo podrá localizar
y ofrecerle todos nuestros servicios disponibles.
El formulario le solicita información importante para su ubicación tales como
tipo de cliente (Persona natural o Jurídica), Cedula o RUC dependiendo del
tipo de cliente que se registre, entre otros.
Todos los campos que son necesarios para nosotros están validados para su
correcto ingreso.
Ilustración 9
Formulario de Registro Posible Cliente
Como podemos notar cuando se escoge persona natural, la página
automáticamente coloca en sus etiquetas el campo Nombres y Apellidos,
como se muestra en el anterior formulario.
Cuando se elige persona jurídica automáticamente se cambia y se ubica las
etiquetas Razón Social y Nombre Comercial, el campo sexo se inhabilita, y el
campo contacto se ubica como necesario poniéndose el asterisco, como se
muestra en la pantalla siguiente.
Ilustración 10
Tipo de Posible Cliente
Los campos que tiene un “asterisco” en la parte derecha deberán
necesariamente ser ingresados por el usuario, ya que sin esos datos la
página le generará un mensaje informativo indicándole que le falta llenar
algunos campos, como se muestra a continuación el siguiente mensaje del
sistema.
Ilustración 11
Mensaje de validación campos obligatorios
Cuando un usuario se registra correctamente le muestra un mensaje
indicándole que su registro ha sido correctamente ingresado a nuestro sitio, y
luego tendrá que esperar que un asesor lo contacte.
Ilustración 12
Mensaje Registro satisfactorio
Y como parte final de la página de contacto muestra nuestra ubicación como
son: Lugar, direcciones, e-mail y teléfonos donde el usuario podrá visitarnos
directamente a nuestras instalaciones.
Ilustración 13
Contáctenos Localidad
El Botón o link Call me!, este vínculo se dirige hacia el módulo de IVR, que
permitirá realizar llamadas desde el sitio Web.
Ilustración 14
Vinculo Call me!
El Botón o link Iniciar sesión, este vinculo permite al usuario conectarse y
poder tener acceso a todos los beneficios y servicios que se le ofrece.
Cuando el Usuario no está conectado el botón lo muestra en color rojo, como
se muestra a continuación.
Ilustración 15
Botón Desconectado -Iniciar Sesión
Cuando el usuario le da clic sobre el botón para iniciar sesión, y lo direcciona
hacia la página de login, en donde el cliente tendrá que ingresar su nombre
de usuario y contraseña par tener acceso al sitio.
Ilustración 16
Página de Login
Si el usuario ingresa correctamente sus datos se lo direcciona hacia una
página de bienvenida mostrando información de su interés y los beneficios
que se le ofrece al ser cliente nuestro, al igual que sus datos personales, con
el usuario que se registró, como se muestra a continuación la siguiente
pantalla.
Ilustración 17
Página de Bienvenida
Al ingresar al Sitio el Botón de Sesión se cambia a color verde indicando que
se encuentra conectado, y se activa el mensaje de cerrar sesión.
Ilustración 18
Botón Conectado – Cerrar sesión
Si el usuario ingresa su usuario o clave erróneos el sistema le enviará un
mensaje de error, como se muestra en la siguiente pantalla.
Ilustración 19
Error de ingreso Usuario
Si el usuario no recuerda la contraseña, en el login del Sitio se le brinda la
oportunidad de darle un recordatorio de la misma, como se muestra en la
pantalla siguiente.
El sitio solicita al cliente el número de identificación, y el nombre del usuario.
Ilustración 20
Página Recordar clave
Una vez ingresada la información al Sitio, este le devuelve la frase de
recordatorio que ingresó el usuario al momento de registrarse.
Ilustración 21
Recordatorio de clave
En la parte izquierda de las páginas muestra un menú o vínculos de interés
para aquellos usuarios que están registrados en nuestro sitio y que son
suscritos en nuestra compañía como clientes, como son los Servicios en
línea que se muestra en la pantalla a continuación:
Ilustración 22
Menú Izquierdo
Si el cliente no ha iniciado sesión y quiere ingresar a las opciones de menús
para clientes registrados le direcciona hacia la página de Login, para que
inicie sesión primero.
Mi Cuenta.
Este es un espacio que se ha pensado en el cliente para que el usuario
pueda darle mantenimiento a su cuenta una vez que ya haya iniciado sesión
al sitio Web, por ejemplo, por razones de seguridad poderle cambiar la
contraseña a su cuenta y evitar el ingreso indebido.
Ilustración 23
Mi Cuenta
Si el cliente desea cambiar su contraseña, y le da clic en el vínculo muestra
la siguiente página.
Ilustración 24
Cambiar Contraseña
En esta página le solicita al cliente ingresar su nueva clave, nuevamente una
confirmación de la misma, y la frase para recordarla es obligatoria.
Una vez llenados los datos, el Sitio le envía un mensaje indicando su cambio
exitoso.
Ilustración 25
Confirmación del Cambio de Clave
Registro de Clientes
Esta página es para que el cliente suscrito en Cable Systems se registre en
el Sitio Web y goce de todos los beneficios en línea.
En esta página solo solicita información necesaria, ya que él ya existe en
nuestra Base de Datos Transaccional registrado como cliente.
Ilustración 26
Página Registro de Cliente
Si cualquier usuario quiere registrarse sin ser cliente nuestro, el portal le
envía un mensaje en el cual le indica que su número de identificación no se
encuentra registrado en nuestra Base de Datos.
Ilustración 27
Validación de Registro de Clientes
Y si el cliente si está registrado en nuestra base de datos transaccional como
cliente suscrito, el portal le enviará un mensaje que ha sido registrado
correctamente en nuestro sitio Web y gozar de los beneficios.
Estado de Cuenta
Esta página es para clientes registrados como anteriormente habíamos
mencionado y en este espacio el cliente podrá consultar el estado de su
cuenta dependiendo del mes que solicite visualizar, para esta opción deberá
tener instalado Adobe Acrobat Reader para ver el reporte.
Ilustración 28
Página Estado de Cuenta
Una vez que haya el cliente escogido el mes y año que desea visualizar le
muestra el archivo para que lo pueda abrir y si desea guardarlo en su
computador.
Ilustración 29
Muestra Estado de Cuenta
Si su estado de cuenta aún no ha sido generado, el Sitio le enviará un
mensaje indicándole lo siguiente
Ilustración 30
Mensaje de Estado de Cuenta
Activación Adicional
Esta página muestra al usuario la posibilidad de activar un servicio adicional
al del que posee en su contrato, es decir pagar por ver, este es un valor
adicional al del que se le cobra en su estado de cuenta.
Ilustración 31
Página de Activación Servicios Adicionales
El cliente deberá seleccionar cual de los servicios desea activar, teniendo la
posibilidad de revisar el costo de se servicio al momento de activarlo. El
costo será incrementado en su factura emitida.
Este tipo de servicio por seguridad se le solicita al usuario que ingrese el
número de contrato para ser activado, Si todo ha efectuado correctamente el
sitio le envía un mensaje como se muestra a continuación.
Ilustración 32
Mensaje de Activación de Servicios Exitoso
Si el servicio ya ha sido activado, le indicará un mensaje de información,
como se muestra en la siguiente pantalla.
Ilustración 33
Mensaje de Activación errónea
Promociones
Esta página es informativa muestra a sus clientes las promociones
disponibles por un tiempo limitado y que nuestros clientes deberían
aprovecharlas.
Esta página no es necesario ser registrado para visualizarlas, de esta
manera acaparamos más clientes, es una forma de realizar marketing.
Ilustración 34
Página de Promociones
Reclamos
Esta página muestra un espacio para que los clientes registrados puedan
realizar algún reclamo por medio de Internet, e incluso visualizar el estado de
sus reclamos anteriormente ingresados a nuestra base de datos.
Ilustración 35
Página de Reclamos
Programación
Este espacio va dirigido para todo tipo de público, ya que no necesariamente
deberá estar registrado para ingresar a este vínculo, ya que esta página lo
direcciona hacia las páginas principales de los proveedores de la
programación, abriéndose otra ventana, sin perder el vínculo de nuestra
página.
Están clasificadas por categorías, como se muestra a continuación.
Ilustración 36
Página de Programación
Soporte Técnico
Esta página es para aquellos clientes que tienen problemas con algún equipo
o consultas comunes que se necesitan saber, tales como Preguntas
Frecuentes, estás preguntas se las ha clasificado por medio de categorías,
es decir Preguntas técnicas, facturación, servicios, entre otros, como se
muestra en la siguiente pantalla.
Ilustración 37
Página de Soporte Técnico
En esta página se le proporciona al usuario un buscador para que pueda
encontrar de una manera más rápida su respuesta a la inquietud que tenga,
como se muestra a continuación.
Ilustración 38
Buscador en Preguntas Frecuentes
Una vez ingresada su palabra clave para el buscador le muestra al usuario
las diferentes alternativas de respuestas relacionadas con su palabra
ingresada.
A continuación muestra la pantalla con las respuestas a su palabra clave
solicitada.
Ilustración 39
Respuestas del Buscador en Soporte Técnico
VER MÁS….
Políticas de Privacidad
Este botón o vínculo nos presenta o detalla las normas y políticas como
empresa de Televisión pagada maneja sus procesos internos y seguridad de
la información en el Internet.
Ilustración 40
Página Políticas de Privacidad
• MODULO ADMINISTRATIVO
Administración de Usuarios Registrados.
Este mantenimiento se lo realiza para modificar el estado de un usuario
registrado mediante el sitio Web, cuando este deja de ser cliente nuestro.
Ilustración 41
Mantenimiento de Usuarios registrados
Para modificar un registro de un cliente se selecciona lo que se desea
modificar y luego se presiona el botón modificar el seleccionado,
automáticamente se activa el status del cliente y el botón grabar para que
pueda ser modificado. Esta modificación del estado en off line se la realiza
cuando el usuario deja de ser cliente nuestro pero se espera que regrese en
un tiempo mínimo dependiendo de las políticas de la empresa.
Ilustración 42
Modifica Status del Cliente
Una vez grabado la modificación muestra un mensaje indicando que los
datos fueron grabados satisfactoriamente.
Ilustración 43
Mensaje de grabado exitoso
Eliminar un registro de cliente, este mantenimiento se lo realiza cuando
el usuario por motivos ajenos a su voluntad deja de requerir nuestros
servicios y no se espera que regrese a adquirirlos nuevamente.
Para eliminar el registro se lo selecciona y se presiona el botón eliminar
este lo marca con una línea de color indicando cual es el registro que
desea eliminar, y automáticamente le muestra un mensaje indicando si
esta seguro de la eliminación, como se muestra a continuación.
Ilustración 44
Mensaje de Confirmación a eliminar
Una vez que el administrador haya aceptado el mensaje de confirmación
de eliminar el registro le indicará en pantalla lo siguiente.
Ilustración 45
Mensaje de Eliminación
Administración de Noticias
Este mantenimiento se lo realiza para ingresar, modificar y eliminar
noticias que serán publicadas en el sitio Web.
Ilustración 46
Mantenimiento de Noticias
Ingreso de Noticias, inicialmente cuando carga la pagina esta en modo
inserción, en el panel de mensajes lo indica en que modo se encuentra,
se ingresa el título, el detalle de la noticia, busca la imagen a publicar y
luego presiona cargar imagen, en el cual la mostrará y pondrá sus
características, selecciona la fecha de expiración de la noticia, y el estado
inicialmente será new, como se muestra a continuación se muestra el
ingreso de una noticia.
Ilustración 47
Ingreso de Noticias
Una vez llenada toda la información para la publicación de la noticia se
presiona el botón guardar, y automáticamente le mostrará el mensaje
informativo como se muestra en la siguiente ilustración.
Ilustración 48
Mensaje de Ingreso
Y en la parte superior dentro de la tabla le aparecerá el registro de la
noticia que ingresó, como se muestra en la siguiente presentación.
Ilustración 49
Ingreso de Registro Noticia
Para modificar Noticias, se selecciona lo que se desea modificar y luego
se presiona el botón modificar el seleccionado, automáticamente se activa
todos los campos y muestra en el panel de mensajes que esta en modo
de actualización, y ahí puede editar la noticia.
Ilustración 50
Mensaje de Modificación
Luego se presiona el botón grabar para que acepte los cambios, y se
observa el panel de mensajes si es q los datos han sido correctamente
almacenados.
Ilustración 51
Mensaje de Datos Grabados
Eliminación de Noticias, para realizar este proceso se deberá seleccionar
el registro a eliminar y se torna color amarillo, se presiona el botón
eliminar y le indicará un mensaje de advertencia como se muestra a
continuación.
Ilustración 52
Mensaje de Confirmación a eliminar
Una vez seguro de la eliminación del registro de noticias el panel de
mensajes le indicará lo sucedido.
Ilustración 52
Mensaje de Eliminación
Administración de Inquietudes – Preguntas Frecuentes
Este mantenimiento contiene ingreso, modificación y eliminación, y es
para aquellas preguntas frecuentes que se publican en la página y que
generalmente los clientes lo necesitan sobre alguna inquietud que tengan
sobre el servicio.
Ilustración 53
Inserción de Inquietudes
Como anteriormente habíamos mencionado al ingresar al mantenimiento,
se encuentra en modo inserción, en el cual ingresan la información
requerida, tales como el tema o pregunta, la respuesta, el tipo de
inquietud y su estado new y se presiona el botón grabar, este permitirá
colocarlo en la tabla de los registros en la parte superior, indicando el
mensaje que los datos han sido almacenados correctamente.
Ilustración 54
Mensaje de Inserción
Modificación de Inquietudes, al igual que todos los proceso de
mantenimiento este se realiza seleccionando el registro a modificar, este
registro se torna de un color amarillo indicando que esta seleccionado y
luego se presiona el botón modificar, en el panel de mensaje indicará en
que modo se encuentra, a su vez este permitirá que los campos se
activen para que puedan ser editados.
Ilustración 55
Mensaje en modo actualización
Una vez actualizado se deberá grabar los cambios realizados, y
nuevamente deberá visualizar en la tabla de registros si realmente
efectúo el cambio requerido, y en el panel de mensajes visualizar que el
registro se ingresó correctamente.
Eliminación de Inquietudes, se procede a seleccionar el registro que se
desea eliminar luego se presiona el botón eliminar y le mostrará un
mensaje de advertencia, si es que esta seguro de esa eliminación.
Ilustración 56
Mensaje de Confirmación a eliminar
Una vez aceptada la eliminación en el panel de mensajes le indicará que
su registro ha sido eliminado como se muestra a continuación.
Ilustración 57
Mensaje de Eliminación
Administración de Promociones
Este mantenimiento solo realiza modificación y eliminación, ya que su
información viene de tablas replicas de la base de datos transaccional.
Ilustración 58
Mantenimiento de Promociones
Modificar Promoción, este proceso se lo efectúa para agregar una imagen
a la promoción para que sea publicada, ya que en la base de datos
transaccional no contienen este campo, esto ayuda al usuario a visualizar
mejor las promociones que desea.
Ilustración 59
Modificación de Promociones
Cabe mencionar que siempre se debe visualizar en el panel de mensaje en
que modo se encuentra en este caso en nuestra anterior pantalla muestra
que esta en modo actualización.
Una vez modificada la promoción con su imagen lista para la publicación en
el sitio, el siguiente paso es grabar los cambios para que surja efecto como, y
aparecerá en la parte superior de la tabla como se muestra a continuación en
la siguiente pantalla.
Ilustración 60
Presentación de Modificación Promociones
Eliminación de promociones, este proceso es efectuado para eliminar
promociones que cumplieron cierto tiempo en la Web y deberán ser
retirados de nuestra base de Datos, dejando constancia en la base
transaccional.
El proceso es el mismo, se selecciona el ítem a ser eliminado, y se
presiona el botón eliminar, este lo torna de un color amarillo indicando su
selección y le mostrará un mensaje indicando si esta seguro de realizar
dicha eliminación, como se muestra a continuación.
Ilustración 61
Mensaje de Confirmación de eliminar
Una vez aceptado el mensaje y seguro de la eliminación en el panel de
mensajes mostrará que los datos han sido eliminados como se muestra a
continuación.
Ilustración 62
Mensaje de Eliminación
Administración de Encuestas
Este mantenimiento se lo efectúa para modificar y eliminar registros, ya
que esta información viene de tablas replicas de la base de datos
transaccional. Su proceso es sencillo y fácil de usar para el administrador.
Ilustración 63
Mantenimiento de Encuestas
Modificar encuestas, este proceso se lo efectúa para clasificar las
encuestas que serán publicadas, ya que en el Sitio Web no se pueden
presentar encuestas con preguntas para responder, sino respuestas
optativas que pueda elegir según su criterio.
Cabe mencionar que siempre se debe visualizar en el panel de mensaje
en que modo se encuentra en este caso en nuestra anterior pantalla
muestra que esta en modo actualización.
Ilustración 64
Mensaje en modo actualización
Una vez modificada la promoción con su imagen lista para la publicación
en el sitio, el siguiente paso es grabar los cambios para que surja efecto
como, y aparecerá en la parte superior de la tabla como se muestra a
continuación en la siguiente pantalla.
Ilustración 65
Mensaje de Modificación
Eliminación de encuestas, este proceso es efectuado para eliminar las
encuestas que cumplieron cierto tiempo en la Web y deberán ser
retirados de nuestra base de Datos, dejando constancia en la base
transaccional.
El proceso es el mismo, se selecciona el ítem a ser eliminado, y se
presiona el botón eliminar, este lo torna de un color amarillo indicando su
selección y le mostrará un mensaje indicando si esta seguro de realizar
dicha eliminación, como se muestra a continuación.
Ilustración 66
Mensaje de Confirmación de eliminar
Una vez aceptado el mensaje y seguro de la eliminación en el panel de
mensajes mostrará que los datos han sido eliminados como se muestra a
continuación.
Ilustración 67
Mensaje de Eliminación
Administración de Ítems
Este proceso solo se efectúa métodos de modificación y eliminación de
ítems, es de fácil manejo y funcionalidad para el administrador del Sitio,
se lo utiliza en la página para publicar nuestros paquetes.
Ilustración 68
Mantenimiento de ítems
Modificar ítems, este proceso se lo efectúa para clasificar los ítems que
serán publicadas.
Cabe mencionar que siempre se debe visualizar en el panel de mensaje
en que modo se encuentra en este caso en nuestra anterior pantalla
muestra que esta en modo actualización.
Ilustración 69
Mensaje en modo actualización
Una vez modificada la promoción con su imagen lista para la publicación
en el sitio, el siguiente paso es grabar los cambios para que surja efecto
como, y aparecerá en la parte superior de la tabla como se muestra a
continuación en la siguiente pantalla.
Ilustración 70
Mensaje de Modificación
Eliminación de ítems, este proceso es efectuado para eliminar las ítems
que cumplieron cierto tiempo en la Web y deberán ser retirados de
nuestra base de Datos, dejando constancia en la base transaccional.
El proceso es el mismo, se selecciona el ítem a ser eliminado, y se
presiona el botón eliminar, este lo torna de un color amarillo indicando su
selección y le mostrará un mensaje indicando si esta seguro de realizar
dicha eliminación, como se muestra a continuación.
Ilustración 71
Mensaje de Confirmación de eliminar
Una vez aceptado el mensaje y seguro de la eliminación en el panel de
mensajes mostrará que los datos han sido eliminados como se muestra a
continuación.
Ilustración 72
Mensaje de Eliminación
top related