.SAP.com

ABAP/4, técnicas y experiencias

Tutorial para Crear patrón de código fuente dinámico

 - 

Categorías: Tutoriales



En este tutorial les voy a mostrar cómo crear un patrón de código que se alimente de forma dinámica, por ejemplo para registrar usuario, fecha y hora, al momento de estar desarrollando nuestros programas. Es muy importante el nombre que le daremos al patrón, ya que de este se desprenderá el módulo de función a crear. SAP relaciona automáticamente el nombre del patrón con su función asociada.

Sin más preámbulos, comencemos.

Consideraciones previas

Debemos tener autorización para acceder a las transacciones SE37 y SE38.

Implementación

El nombre del patrón elegido es ZUSER_DATE_TIME, y mostrará justamente nombre de usuario, fecha y hora, como comentario dentro del programa. Los pasos para implementarlo son los siguientes:

Paso 1: Crear patrón. Estando posicionados dentro de un programa (SE38), vamos al menú Utilidades > Más Utilidades > Tratar patrón > Crear patrón.

Paso 2: Designar nombre al patrón.

Paso 3: Editar y guardar patrón. Al ingresar a la pantalla de edición de patrón, veremos que está vacía, debemos acceder al menú en la opción Modelo > Patrón dinámico. Aquí debemos reemplazar el código que aparece por defecto "*$&$EXIT" con "*$&$MUSTER" (sin las comillas). De esta manera, el sistema al momento de seleccionar el patrón, buscará su módulo de funciones asociado (que veremos a continuación).

 

Paso 4: Crear función asociada. Ahora que tenemos el patrón, debemos crear la función que generara el código dinámicamente. El nombre de la función debe ser <nombre_patrón> + "_editor_exit" (sin comillas). En nuestro ejemplo, la función a crear es ZUSER_DATE_TIME_EDITOR_EXIT. Con esto, todas las líneas que escribamos en la tabla de parámetro dentro de la función, aparecerá en el código fuente al invocar nuestro patrón.

Paso 5: Definir parámetro de salida de la función. La función debe contener un parámetro "Tabla", con nombre BUFFER, de tipo RSWSOURCET. Esta tabla es de tipo string, y todas las líneas que se agreguen en ella serán las que muestre el patrón en nuestro programa destino al invocarlo.

Paso 6: Codificación de la funcionalidad (la parte dinámica). Como ya les dije, se imprime el nombre de usuario, la fecha y la hora, con caracteres decorativos y como comentario. El código de ejemplo es el siguiente:

FUNCTION zuser_date_time_editor_exit.
*"----------------------------------------------------------------------
*"*"Interfase local
*"  TABLES
*"      BUFFER TYPE  RSWSOURCET
*"----------------------------------------------------------------------
  DATA: ld_date(10) TYPE c,
        ld_time(8) TYPE c.

  WRITE sy-datlo TO ld_date.
  WRITE sy-uzeit TO ld_time.

  REFRESH: buffer.
  CLEAR: buffer.
  buffer = '*----------------------'.
  APPEND buffer.

  CLEAR: buffer.
  CONCATENATE '* Usuario: ' sy-uname INTO buffer RESPECTING BLANKS.
  APPEND buffer.

  CLEAR: buffer.
  CONCATENATE '* Fecha  : ' ld_date INTO buffer RESPECTING BLANKS.
  APPEND buffer.

  CLEAR: buffer.
  CONCATENATE '* Hora   : ' ld_time INTO buffer RESPECTING BLANKS.
  APPEND buffer.

  CLEAR: buffer.
  buffer = '*----------------------'.
  APPEND buffer.
  CLEAR: buffer.

ENDFUNCTION.

Grabamos y activamos la función (método abreviado Ctrl+F3). Con esto queda terminado el patrón dinámico, para poder probarlo vamos a nuestro programa, y con el botón "Modelo" seleccionamos la opción "Otro" e ingresamos el nombre definido (ZUSER_DATE_TIME).

 

Finalmente, una consideración importante es que la función debería ser creada como objeto local (paquete $TMP), ya que por norma nunca desarrollamos en otros ambientes, con lo cual no necesitamos este patrón y menos su función asociada.

Espero les sea útil, ya que ayuda a agilizar el trabajo.

 

Hasta la próxima!



Un Comentario

  1. radek dice:

    Excelente! Gracias!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

*

* Copy this password:

* Type or paste password here:

34 Spam Comments Blocked so far by Spam Free Wordpress

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>