Está en la página 1de 5

Tutorial para Crear patrn de cdigo fuente dinmico

Etiquetas: ABAP, funcion, paquete, patron, reporte, SAP, SE37, SE38 Categoras: Tutoriales

Fuente: http://puntosap.com/tutoriales/tutorial-para-crear-patron-de-codigo-fuente-dinamico/

En este tutorial les voy a mostrar cmo crear un patrn de cdigo que se alimente de forma dinmica, por ejemplo para registrar usuario, fecha y hora, al momento de estar desarrollando nuestros programas. Es muy importante el nombre que le daremos al patrn, ya que de este se desprender el mdulo de funcin a crear. SAP relaciona automticamente el nombre del patrn con su funcin asociada. Sin ms prembulos, comencemos. Consideraciones previas Debemos tener autorizacin para acceder a las transacciones SE37 y SE38. Implementacin El nombre del patrn 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 patrn. Estando posicionados dentro de un programa (SE38), vamos al men Utilidades > Ms Utilidades > Tratar patrn > Crear patrn.

Paso 2: Designar nombre al patrn.

Paso 3: Editar y guardar patrn. Al ingresar a la pantalla de edicin de patrn, veremos que est vaca, debemos acceder al men en la opcin Modelo > Patrn dinmico. Aqu debemos reemplazar el cdigo que aparece por defecto "*$&$EXIT" con "*$&$MUSTER"

(sin las comillas). De esta manera, el sistema al momento de seleccionar el patrn, buscar su mdulo de funciones asociado (que veremos a continuacin).

Paso 4: Crear funcin asociada. Ahora que tenemos el patrn, debemos crear la funcin que generara el cdigo dinmicamente. El nombre de la funcin debe ser <nombre_patrn> + "_editor_exit" (sin comillas). En nuestro ejemplo, la funcin a crear es ZUSER_DATE_TIME_EDITOR_EXIT. Con esto, todas las lneas que escribamos en la tabla de parmetro dentro de la funcin, aparecer en el cdigo fuente al invocar nuestro patrn.

Paso 5: Definir parmetro de salida de la funcin. La funcin debe contener un parmetro "Tabla", con nombre BUFFER, de tipo RSWSOURCET. Esta tabla es de tipo string, y todas las lneas que se agreguen en ella sern las que muestre el patrn en nuestro programa destino al invocarlo. Paso 6: Codificacin de la funcionalidad (la parte dinmica). Como ya les dije, se imprime el nombre de usuario, la fecha y la hora, con caracteres decorativos y como comentario. El cdigo de ejemplo es el siguiente: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35

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 APPEND buffer. CLEAR: buffer. CONCATENATE '* Hora APPEND buffer. CLEAR: buffer APPEND CLEAR:

: ' ld_date INTO buffer RESPECTING BLANKS.

: ' ld_time INTO buffer RESPECTING BLANKS.

buffer. = '*----------------------'. buffer. buffer.

ENDFUNCTION.

Grabamos y activamos la funcin (mtodo abreviado Ctrl+F3). Con esto queda terminado el patrn dinmico, para poder probarlo vamos a nuestro programa, y con el botn

"Modelo" seleccionamos la opcin "Otro" e ingresamos el nombre definido (ZUSER_DATE_TIME).

Finalmente, una consideracin importante es que la funcin debera ser creada como objeto local (paquete $TMP), ya que por norma nunca desarrollamos en otros ambientes, con lo cual no necesitamos este patrn y menos su funcin asociada. Espero les sea til, ya que ayuda a agilizar el trabajo.

Hasta la prxima!

También podría gustarte