Está en la página 1de 2

GENERACIN DINMICA DE PROGRAMAS

11.1. CREACIN, MODIFICACIN Y LECTURA DE UN PROGRAMA 11.2. CREACIN DE SUBRUTINAS TEMPORALES

11.1. CREACiN, MODIFICACIN Y LECTURA DE UN PROGRAMA: Se puede generar y modificar un programa dinmicamente, es decir, en tiempo de ejecucin (de otro programa, que ser el que cree o modifique el nuevo).Sentencias relacionadas:

INSERT REPORT programa FROM tabla. Esta sentencia permite la creacin dinmica de un programa (se puede dar su nombre con un literal o usando una variable). Para ello debe usarse una tabla interna que contendr el cdigo del programa a generar. Cada entrada de esta tabla debe tener un solo campo, de 72 caracteres. En cada una se guardar una lnea de programa. Si el programa que se especifica ya existiera, ser modificadodinmicamente. El contenido de la tabla machacar completam. al programa antiguo. Caractersticas del nuevo programa a generar: Clase de desarrollo (la misma que la del programa generador), ttulo (sin ttulo), tipo (1: reports), aplicacin (S: sistema bsico). Ejemplo:

DATA: tabla(72) OCCURS 0. APPEND 'REPORT ZF000001.' TO tabla. APPEND 'WRITE / "hola"' TO tabla. "dentro de APPEND hay que duplicar las comillas INSERT REPORT 'ZF000001' FROM tabla. "creacin del nuevo programa


READ REPORT programa INTO tabla. Lee el programa especificado y lo guarda en la tabla dada. Luego sta puede imprimirse o procesarse normalmente con una sentencia LOOP AT tabla. Es muy til para modificar de forma dinmica el programa, cambiando alguna entrada de ella y luego haciendo un INSERT REPORT.

11.2. CREACiN DE SUBRUTINAS TEMPORALES:

GENERATE SUBROUTINE POOL tabla NAME programa MESSAGE mensajeINCLUDE include LINE lnea WORD palabra OFFSET offset TRACE-FILE var. Esta sentencia permite crear una subrutina en la memoria principal, de

forma temporal, en lugar de almacenarla en SAP. El pool de subrutinas slo existe durante la ejecucin del programa que lo gener. Se pueden crear por programa hasta 36 subrutinas en el pool. Si ocurre algn error durante la generacin, el campo del sistema SY-SUBRC contendr 8, y 0 en otro caso. Parmetros: Salvo tabla y programa, el resto de variables son de salida. MESSAGE contiene el mensaje de error, si hay error de sintaxis. INCLUDEcontiene el nombre del programa include donde el error ha ocurrido. LINE dice el nmero de lnea errnea. WORD contiene la palabra clave de la sentencia errnea. OFFSET guarda el offset de la palabra con error. Con el campo TRACE-FILE se activa el modo trace, y se deja la traza del programa en var.

También podría gustarte