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
%>