En este apartado mostraremos los códigos
de nuestras páginas ASP y de la clase
creada, así como las explicaciones a
los aspectos más relevantes de cada una
de ellas.
Página de la Clase: clase_log.asp
Esta será la página que la se
encargue de registrar las acciones realizadas
por los clientes, así como de controlar
los casos especiales, por ejemplo, en los casos
de baja del cliente o de cancelación
de algún producto, registrar una “alerta”
para que sea gestionada por el departamento
de bajas o comercial de la empresa, todo este
proceso será “transparente”
al operario del call center, que sólo
se encargará de registra la acción
realizada por el cliente desde el formulario
de registro de accciones (formulario.asp)
El código de la clase es el siguiente:
<%
Class Acciones
private Conexion
'Constructor de la conexión
Public Sub Init_Connection()
'Conexión a base de datos Access
basedatos = Server.MapPath("bd/bdClases.mdb")
set Conexion = Server.CreateObject("ADODB.Connection")
conexion.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=" & basedatos & ";"
End Sub
'Destructor de la conexión
Public Sub Close_Connection()
on error resume next
Conexion.Close
End Sub
'Método para registrar la acción
Public Function Register_Action (IdAction, IdCliente,
IdProducto, sDescription)
Init_Connection
'Comprobamos el tipo de acción para añadir
una alerta para el dpto. comercial o de bajas
if (clng(IdAction) = 4) or (clng(IdAction) =
7) then 'Baja de cliente o cancelación
de producto
sQuery = "insert into TAlertas (IdTipoAccion,
IdCliente, FechaAlerta) values ("
sQuery = sQuery & IdAction & ",
" & IdCliente & ", '"
& date() & "')"
'Ejecutamos la sentencia SQL correspondiente
Conexion.Execute sQuery
end if
'Registramos la acción en la base de
datos
sQuery = "insert into TAcciones (IdTipoAccion,
IdCliente, IdProducto, DescripcionAccion, FechaAccion)
values ("
sQuery = sQuery & IdAction & ",
" & IdCliente & ", "
& IdProducto & ", '" &
sDescription & "', '" & date()
& "')"
'Ejecutamos la sentencia SQL correspondiente
Conexion.Execute sQuery
'Devolvemos el código de error
Register_Action = err.number
Close_Connection
End Function
End Class
%>
Para definir una clase, debemos comenzar por
escribir al inicio de la página:
Class Nombre_de_la_clase en este caso:
Class Acciones
Y finalizar la página con End Class
En la parte interior irán los métodos
y funcionalidades correspondientes a cada parte
del proyecto.
Cabe destacar el código de conexión
a base de datos, donde se indica la ruta donde
se encuentra la base de datos “dbClases.mdb”.
Los métodos de Init_Connection ()
y Close_Connection () utilizados para
instanciar y abrir la conexión a la base
de datos y para cerrarla y destruirla.
También encontramos la función
Register_Action que recibe los parámetros
del formulario, los gestiona y los inserta en
las tablas correspondientes.
Esta función devuelve el número
de error, que se comprobará en la página
registrar.asp para conocer si los datos de la
acción han sido procesados correctamente
o ha existido algún error y no se han
podido procesar de manera satisfactoria.
Se ha incluido un sistema de comprobación
de la acción, para consultar si son acciones
críticas. de baja del cliente o del producto,
para avisar al departamento comercial o de bajas.
Página del formulario de acciones:
formulario.asp
Esta página presentará los campos
para registrar las acciones de los clientes,
pudiendo seleccionar el tipo de acción
que se desea realizar, el cliente el producto
y una descripción de la acción
realizada, una vez rellenados todos los campos
existe un botón de “Enviar”
que enviará los datos a la página
de registrar.asp para proceder a guardar estos
datos en las tablas de nuestra base de datos.
Este formulario, sería la principal
herramienta de trabajo de nuestros operarios
del call center.
El código de esta página es
el siguiente:
Nota: Para este ejemplo no se han incluido sistemas
de validación de los campos.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD
HTML 4.01 Transitional//EN">
<html>
<head>
<title>Formulario Ejemplo Clases con ASP</title>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1">
</head>
<body>
<%
'Conexión a base de datos Access
basedatos = Server.MapPath("bd/bdClases.mdb")
Set conexion = Server.CreateObject("ADODB.Connection")
conexion.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=" & basedatos & ";"
sQuery = "select * from TClientes order
by Nombre"
set MiRS=Server.CreateObject("ADODB.RecordSet")
MiRS.Open sQuery, Conexion, 3
sQuery = "select * from TTipoAcciones
order by TipoAccion"
set MiRS2=Server.CreateObject("ADODB.RecordSet")
MiRS2.Open sQuery, Conexion, 3
sQuery = "select * from TProductos order
by Producto"
set MiRS3=Server.CreateObject("ADODB.RecordSet")
MiRS3.Open sQuery, Conexion, 3
%>
<br>
<table width="600" border="0"
cellpadding="2" cellspacing="0">
<form name="frm" method="post"
action="registrar.asp">
<tr><td colspan="2" align="center"><b>FORMULARIO
DE REGISTRO DE ACCIONES</b><br><br></td></tr>
<tr><td colspan="2" align="left">Por
favor rellene los siguientes datos para registrar
la acción del cliente:<br><br></td></tr>
<tr>
<td width="140" align="left"><b>Tipos
de Acción:</b></td>
<td>
<select name="IdAccion">
<% do while not MiRS2.eof %>
<option value="<%= MiRS2("IdTipoAccion")
%>"><%= MiRS2("TipoAccion")
%></option>
<%
MiRS2.Movenext
Loop
%>
</select>
</td>
</tr>
<tr>
<td width="140"><b>Clientes:</b></td>
<td>
<select name="IdCliente">
<% do while not MiRS.eof %>
<option value="<%= MiRS("IdCliente")
%>"><%= MiRS("Apellidos")
%>, <%= MiRS("Nombre") %></option>
<%
MiRS.Movenext
Loop
%>
</select>
</td>
</tr>
<tr>
<td width="140"><b>Productos:</b></td>
<td>
<select name="IdProducto">
<% do while not MiRS3.eof %>
<option value="<%= MiRS3("IdProducto")
%>"><%= MiRS3("Producto")
%></option>
<%
MiRS3.Movenext
Loop
%>
</select>
</td>
</tr>
<tr>
<td valign="top"><b>Descripción
de la Acción:</b></td>
<td><textarea name="Descripcion"
cols="35" rows="5"></textarea></td>
</tr>
<tr><td colspan="2"> </td></tr>
<tr><td colspan="2" align="center"><input
type="submit" name="registrar"
value="Registrar Acción"><br></td></tr>
</form>
</table>
<%
MiRS.Close
MiRS2.Close
Conexion.Close
Set MiRS = Nothing
Set MiRS2 = Nothing
Set Conexion = Nothing
%>
</body>
</html>
Página de registro de acciones: registrar.asp
Esta página nos servirá para
instanciar la clase asp, que se encargará
de gestionar y guardar los datos de cada acción,
que devolverá un código de error
que comprobaremos para Mostar al usuario si
el procesamiento de la información ha
sido correcto o ha existido algún
problema.
El código de esta página es
el siguiente:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD
HTML 4.01 Transitional//EN">
<html>
<head>
<title>Formulario Ejemplo Clases con ASP</title>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1">
</head>
<body>
<!-- #include file="clase_log.asp"
-->
<%
'Registramos la acción realizada en el
log de acciones
set objAcciones = new Acciones
'Los parámetros a enviar son: Identificador
del tipo de acción, Identificador del
Cliente, Identificador del Producto y Descripción
de la acción realizada
sControl = objAcciones.Register_Action (request("IdAccion"),
request("IdCliente"), request("IdProducto"),
trim(replace(request("Descripcion"),"'","''")))
set objAcciones = Nothing
if err.number = 0 then
%>
<table width="600" border="0"
cellspacing="2" cellpadding="0">
<tr><td><b>REGISTRO DE ACCIONES</b></td></tr>
<tr><td><strong>Su acción
ha sido registrada correctamente.</strong></td></tr>
</table>
<%
else
%>
<table width="600" border="0"
cellspacing="2" cellpadding="0">
<tr><td><b>REGISTRO DE ACCIONES</b></td></tr>
<tr><td><strong>Su acción
no ha podido ser registrada correctamente, por
favor, compruebe la información e inténtelo
de nuevo.</strong></td></tr>
</table>
<%
end if
%>
</body>
</html>
Cabe destacar el modo de instanciar la clase
y de llamar a la función Register_Action:
Antes de crear el objeto objAcciones, debemos
incluir la clase, para ello utilizamos un include
al archivo:
<!-- #include file="clase_log.asp"
-->
A continuación creamos el objeto y hacemos
la llamada a la función:
<%
'Registramos la acción realizada en el
log de acciones
set objAcciones = new Acciones
'Los parámetros a enviar son: Identificador
del tipo de acción, Identificador del
Cliente, Identificador del Producto y Descripción
de la acción realizada
sControl = objAcciones.Register_Action (request("IdAccion"),
request("IdCliente"), request("IdProducto"),
trim(replace(request("Descripcion"),"'","''")))
set objAcciones = Nothing
%>