Ejemplo Aplicacion Web con BSP en SAP

En esta oportunidad vamos a crear nuestra primera Aplicacion Web utiliando BSP en SAP.

BSP significa Bussines Server Pages, al igual que otras tecnologias como Java Server Pages o los Active Server Pages, etc... para desarrollo de aplicaciones web, esta es la tecnología que nos provee SAP para la programación basadas en páginas con scripting del lado del servidor. La ventaja que tiene el scripting del lado del servidor, es que nos permite el acceso directo a todos los elementos del servidor de aplicaciones (tales como modulos de funcion, tablas, abap object, etc). Para mas informacion.. clic aqui

Antes de empezar a crear nuestra aplicaciones bsp, 1ero crearemos una tabla Z que utilizaremos en el ejemplo.

Estructura de la Tabla: ZZWST_USUARIO


Despues de haber creado nuestra tabla de usuarios, ingresamos a la transaccion SE80, para crear la aplicacion bsp, seleccionamos "BSP Application" e ingresamos un nombre y le damos crear (nos pedira algunas datos comunes: nombre corto, ot, paquete).



Ahora necesitamos un formulario de registro para la tabla Z Usuario, para esto debemos crear una pagina con logica de proceso.





En la pestaña "Layout" diseñamos nuestro formulario, para eso podemos utilizar cualquier editor de html.

Codigo HTML - Layout.

<%@page language="abap"%>
<%@extension name="htmlb" prefix="htmlb"%>
<html>
<head>
<title>REGISTRO DE USUARIO</title>
</head>
<body>
<form id="form1" name="form1" method="post" action="">
<table width="360" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td colspan="2">REGISTRO DE USUARIO </td>
</tr>
<tr>
<td width="105">Codigo</td>
<td width="255"><input name="TXTCODIGO" type="text" VALUE="" /></td>
</tr>
<tr>
<td>Nombre</td>
<td><input name="TXTNOMBRE" type="text" VALUE="" /></td>
</tr>
<tr>
<td>User Name </td>
<td><input name="TXTUSERNAME" type="text" VALUE="" /></td>
</tr>
<tr>
<td>User Password </td>
<td><input name="TXTUSERPASSWORD" type="text" VALUE="" /></td>
</tr>
<tr>
<td>Tipo Usuario </td>
<td><select name="CBTIPO">
<option value="A">Administrador</option>
<option value="U">Usuario</option>
</select> </td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type="submit" name="oninputprocessing(btnGrabar)" value="Enviar" />
<input type="reset" name="Submit2" value="Limpiar" /></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><a href="lista_usuario.htm">Ver Lista</a> </td>
</tr>
</table>
</form>
</body>
</html>

Ya teniendo nuestra interfaz para registrar usuario, pasaremos a realizar el evento Grabar. Para eso fijemonos en esta parte del Código del Layout : name="oninputprocessing(btnGrabar)"


En esta petaña ponemos todas las variables globales de la página.



Declaracion de los tipos de datos.

Luego ejecutamos nuestra página, y podemos realizar la grabacion. Pero como lo visualizamos, para esto crearemos otra pagina con logica de proceso para visualizar y poder eliminar los registros.




Creamos la nueva pagina con logica de proceso de nombre "lista_usuario".



El codigo en la pestaña del Layout.

<%@page language="abap" %>
<html>
<head>
<title>Listar Usuarios</title>
<style>
body{
font-family:sans-serif;font-size:11px;
}
.CABECERA_TABLA{
color: #003366;font-weight:bold; text-align:center;
font-family:"Trebuchet MS";font-size:12px;
}
</style>
</head>
<body>
<table width="635" border="0" align="center" >
<tr>
<td class="CABECERA_TABLA">LISTA USUARIOS</td>
</tr>
</table>
<BR />
<table width="635" height="25" border="1" cellpadding="2" cellspacing="0" bordercolor="#CCCCCC" align="center" style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:11px">
<tr style="background-color:#A9CEED;">
<td width="100">Codigo</td>
<td width="400">Apellidos y Nombres </td>
<td width="100">Usuario</td>
<td width="100">Eliminar</td>
</tr>
<%
field-symbols: <fs_usuario> like LINE OF ti_usuario.
loop at ti_usuario ASSIGNING <fs_usuario>.
%>
<tr>
<td><%= <fs_usuario>-codus%></td>
<td><%= <fs_usuario>-nomus%></td>
<td><%= <fs_usuario>-usern%></td>
<td><a href="lista_usuario.htm?accion=E&codusu=<%=<fs_usuario>-codus%>">Eliminar</a></td>
</tr>
<%
endloop.
%>
</table>
<center><a href="registro_usuario.htm">Formulario</a></center>
<input name="ACCION" type="hidden" />
<input name="CODUSU" type="hidden" />
</body>
</html>

Con la variable "accion" indicamos si estamos eliminando el registro.


Atributos de la Pagina


Declaracion de tipos globales


Ejecutamos la pagina y podemos ver la lista de registros y ademas de poder eliminar.

Comentarios

  1. genial muy buen material realmente excelente si tienes algo mas de BSP estare aun mas agradecido.

    Saludos.

    ResponderEliminar
  2. Muy bueno el ejemplo nada mas que en los request te falto

    data: request type ref to if_http_request.

    saludos desde argentina

    ResponderEliminar
  3. Hola buenas! lo primero agradecerte este material tan bueno,. Y lo segundo consultarte una duda que si me solucionas me salvas la vida. En una aplicacion BSP uso la funcion ARCHIVFILE_CLIENT_TO_SERVER para subir documentos al servidor desde el PC, pero no funciona. La cuestion es que la pruebo desde la se37 y va perfectamente. ¿Sabes si pudiera ser algo de parametrización?

    Muchas gracias de antemano

    ResponderEliminar

Publicar un comentario

Entradas populares de este blog

ALV Object Model (cl_salv_table)

Conectar Java con SAP JCO Connector