Abap Workshop

Embed Size (px)

Citation preview

  • ABAP WORKSHOPVersin 2.0

    Xioma Centroamrica

    2009

    ______________________________________________________________________________________Xioma Consulting 1

  • Introduccin

    ABAP (Advanced Business Application Programming), o ABAP/4 es un lenguaje de

    programacin desarrollado por la empresa alemana SAP (Systeme, Anwendungen, Produkte in der

    Datenverarbeitung)1.

    Los alcances del lenguaje ABAP se han ampliado segn se ha ido desarrollando el escenario

    de desarrollo de software. Han sido actualizaciones peridicas, como la reciente adicin de

    instrucciones orientadas a objetos dentro del lenguaje.

    ABAP fue desarrollado en la dcada de los 80 a partir de una investigacin que produjo toda

    una serie de lenguajes de cuarta generacin de aplicacin especfica y cuyo objetivo apuntaba a la

    produccin de alto nivel de reportes. Fue incluido al producto SAP R/2. El objetivo de ste

    producto era brindar una aplicacin de negocios en mainframe para grandes corporaciones para la

    administracin de materiales, finanzas y contabilidad.

    Originalmente se supona que los usuarios del lenguaje de programacin serian usuarios,

    que pudieran manipular la informacin por s mismos, pero el lenguaje result ser demasiado

    complejo para usuarios ordinarios, haciendo necesario que fueran programadores quienes lo

    manipularan debido a que se requera de una alta destreza. Segn fueron disminuyendo las

    consideraciones de desempeo, el lenguaje empez a convertirse en un componente central del

    sistema SAP.

    En los 90, SAP empez a convertir todo el cdigo clave del SAP R/3 a ABAP, de tal forma

    que para el ao 2003 el proyecto SAP se basaba ya en ABAP para las funciones ms bsicas.

    ______________________________________________________________________________________Xioma Consulting 2

    1 Systems, Applications & Products in Data Processing

  • Arquitectura de SAP El sistema R/3 posee una arquitectura de software modular que sigue los principios de la arquitectura Cliente/Servidor. El modelo en 3 capas compuesto por una capa de presentacin, una de aplicacin y una de base de datos; pueden estar alojadas en diferentes computadores sirviendo esto como base para la escalabilidad del sistema.

    Capa de presentacin: Esta es la capa donde se ejecuta la interfase de usuario (SAPGUI) para brindar el acceso a las aplicaciones por parte de los usuarios finales.

    Capa de Aplicacin: Es en esta capa donde se ejecuta ABAP, tanto las aplicaciones desarrollas por SAP como las desarrolladas por los usuarios. Desde esta capa ABAP envia y recibe datos a la capa de base de datos.

    Capa de Base de datos: Este es el nivel ms bajo en el modelo, y es donde se administra la informacin con la ayuda del sistema de administracin de base de datos relacional (RDBMS). Este nivel almacena no solamente datos maestros y transaccionales, sino tambin los programas y metadatos que describen el sistema R/3 son administrados y almacenados aca.

    Toda la distribucin tcnica del software es independiente de la ubicacin fsica del hardware, tanto vertical como horizontalmente.

    ______________________________________________________________________________________Xioma Consulting 3

  • Composicin de un programa ABAP

    Cdigo fuente Contiene todas las sentencias ABAP.

    Pantallas Contiene toda la disposicin de pantallas y la lgica de flujo asociada a las mismas. Normalmente se crea la disposicin de pantallas utilizando una herramienta llamada screen painter o desde el ABAP Workbench. Sin embargo existen pantallas especiales, como el selection screen y los reportes, que poseen una disposicin y lgica que se controla nicamente a travs de sentencias ABAP.

    Interfase Contiene todas las opciones de los mens, la barra estndar de herramientas, la barra de herramientas de aplicacin y los botones. Contiene tambin los ttulos y status.

    Elementos de Texto Estos son dependientes del idioma. Puede ser traducidos directamente desde la herramienta de mantenimiento de textos o utilizando una herramienta especial de traduccin.

    Documentacin La documentacin es dependiente del idioma. Es importante recordar escribir la documentacin orientada al usuario. En caso de querer documentar cdigo, se hace a travs de comentarios en el cdigo directamente.

    Variantes Las variantes permiten predefinir valores en la pantalla de seleccin (selection screen) de los programas. Esto suele ser muy til durante los periodos de prueba o para la ejecucin de tareas repetitivas.

    ______________________________________________________________________________________Xioma Consulting 4

  • Editor

    El editor ABAP se invoca a travs de la transaccin SE38, o por la ruta del men SAP HERRAMIENTAS->WORKBENCH ABAP->DESARROLLO->SE38 - EDITOR ABAP.

    Imagen Inicial

    En la imagen inicial del editor se indica el nombre del programa que se desea tratar, y cuenta con las siguientes opciones en la barra de herramientas:

    ______________________________________________________________________________________Xioma Consulting 5

  • 1. VerificarEsta opcin se encarga de revisar la sintaxis del programa.

    2. ActivarLa activacin ejecuta una revisin sintctica, almacena y posteriormente deja

    disponible al programa para ser ejecutado en el ambiente del R/3.

    3. EjecutarEjecuta el programa.

    4. Referencia de UtilizacinLas referencias de utilizacin sirven para identificar otros objetos del

    ambiente que utilicen el programa indicado.

    5. Anlisis de EntornoVerifica todos los objetos de repositorio a la cual se les hace referencia dentro del programa.

    6. Manual OnlineInvoca la ayuda de ABAP disponible en lnea en el sistema.

    ______________________________________________________________________________________Xioma Consulting 6

  • 7. BorrarElimina el programa, y otros componentes que formen parte del mismo de serle indicado.

    8. CopiarCrea una copia del programa con otro nombre.

    9. RenombrarCambia el nombre del programa.

    10. DebuggingEjecuta el programa a travs del de la herramienta de Debugging

    ______________________________________________________________________________________Xioma Consulting 7

  • 11. Con VarianteEjecuta el programa con una variante creada con la opcin de variantes.

    12. VariantesCrea una variante para el programa, siempre y cuando el programa reciba algn tipo

    de parmetro de entrada.

    ______________________________________________________________________________________Xioma Consulting 8

  • 13. CrearCrea el programa e invoca el editor de cdigo.

    14. VisualizarInvoca el editor de cdigo en modo de solo visualizacin.

    15. ModificarInvoca el editor de cdigo para modificar un programa que ya existe.

    ______________________________________________________________________________________Xioma Consulting 9

  • Editor de Cdigo El editor de Cdigo es el ambiente donde se encuentran las herramientas bsicas de desarrollo y donde se introduce el cdigo ABAP.

    La barra del editor contiene las siguientes herramientas:

    1. Objeto Anterior Se desplaza al objeto anterior cuando existe ms de un objeto en la lista de objetos.

    2. Objeto Siguiente Se desplaza al objeto siguiente en la lista de objetos cuando existe ms de un objeto en la lista de objetos.

    3. Visualizar Modificar Cambia el estado del editor entre modo de visualizacin o modo de modificacin.

    4. Activo Inactivo Cambia el estado del programa entre activo e inactivo.

    ______________________________________________________________________________________Xioma Consulting

    10

  • 5. Otro Objeto sta opcin permite cambiar el objeto actual por otro que se desee editar. Se divide en varias categoras de las cuales las ms importantes son: diccionario de datos, bibliotecas de clases, programa y grupo de funciones.

    6. Verificar sta opcin se encarga de revisar la sintaxis del programa.

    7. ActivarLa activacin ejecuta una revisin sintctica, almacena y posteriormente deja disponible al

    programa para ser ejecutado en el ambiente del R/3.

    8. Verificar (Ejecutar)Ejecuta el programa.

    9. Referencia de UtilizacinLas referencias de utilizacin sirven para identificar otros objetos del ambiente que utilicen

    el programa indicado.

    10. Visualizar Lista de Objetos Ejecuta el ABAP Development Workbench donde se muestran los objetos relacionados con el programa.

    11. Visualizar Ventana de Navegacin Muestra la ventana de navegacin que consiste en una pila con los ltimos objetos revisados.

    ______________________________________________________________________________________Xioma Consulting

    11

  • 12. Imagen Completa Muestra la ventana del objeto en revisin maximizada.

    13. Ayuda Invoca la ayuda del sistema.

    14. Fijar/Borrar Break Point Si el programa se encuentra en modo activo, se fija un Break-point en la lnea actual, que ser ejecutado solamente para el usuario que lo fij.

    15. Patrn Inserta una plantilla a partir de la lnea actual. Sobre todo en el caso de la invocacin de funciones o la invocacin del mtodo de un objeto, sta funcin puede ser de gran utilidad para conocer los parmetros que pueden ser utilizados.

    16. Pretty Printer Ajusta el formato del cdigo para que sea mucho ms fcil de leer por el usuario.

    ______________________________________________________________________________________Xioma Consulting

    12

  • Creacin de un nuevo programa

    Los programas en SAP que no pertenecen al estndar deben iniciar su nombre con la letra Z, distinguindose as los programas de usuarios. En la imagen inicial se digita el nombre del programa y se utiliza el botn CREAR. En ste momento se deben llenar las propiedades bsicos del programa en la ventana de atributos.

    Entre los tipos de programa que se pueden crear, estn los siguientes:

    1. Programa ejecutable

    Estos son los programas que pueden iniciarse directamente sin cdigo de transaccin y en fondo, desde la transaccin SE38 o la SA38.

    2. Modulpool para dynpros2 SAP Screen PainterContiene pasos para procesar mdulos de dynpro de las transacciones y slo puede

    llamarse mediante un cdigo de transaccin o una funcin de men.

    ______________________________________________________________________________________Xioma Consulting

    13

    2 Un dynpro se suele llamar una pantalla de SAP

  • 3. Report de Include

    Contiene un cdigo de programa que no puede ejecutarse por s slo.Esta parte de programa puede incluirse en otro programa mediante la instruccin INCLUDE.

    4. Pool de subrutinas

    Contiene partes de programa (FORM) que pueden ser invocadas desde instrucciones PERFORM externas.

    5. Grupo de funciones

    Contiene mdulos de funciones. Estos grupos y mdulos se administran en la biblioteca de funciones, que se invoca por medio de la transaccin SE37.

    6. Pool de interfaces

    Contiene interfaces. El generador de clases gestiona las interfaces y las clases.

    7. Pool de clases

    Contiene clases. El generador de clases gestiona las interfaces y las clases.

    El status del programa indica, si se trata de un programa productivo, de test o de sistema. Dependiendo de esta propiedad se genera cierto tipo de control en la administracin de los programas. La propiedad de grupo de autorizaciones indica a que grupo ha sido asignado el programa, sirviendo como referencia para validar los derechos que un usuario pueda tener sobre el programa. El sistema verificar si el usuario pertenece a este grupo de autorizaciones:

    Antes de lanzar o editar un programa

    Al actualizar los atributos

    Al utilizar otra utilidad del desarrollo de programas

    Al ejecutar la opcin de grabar, es necesario indicar la clase de desarrollo a la que pertenece el programa, o definirlo como un objeto local.

    Las clases de desarrollo agrupan a los objetos que pertenecen al ABAP Workbench. La asignacin a una clase de desarrollo se indica en el catlogo de objetos. Los objetos locales pertenecen a la clase de desarrollo $TMP (Objeto Local) y no son transportables.

    ______________________________________________________________________________________Xioma Consulting

    14

  • Una vez seleccionada la clase de desarrollo, si sta no es local, el sistema procede a solicitar una orden de transporte vlida a la que se encontrar atado el programa. Esta puede ser una orden ya existente o una orden nueva. Las rdenes de transporte pueden ser revisadas y editadas por medio de la transaccin SE09.

    Para crear la orden se oprime el botn de crear , posteriormente se le asigna la descripcin a la nueva orden y se graba . El sistema asignar automticamente un nmero para la orden de transporte y otro para la nueva tarea vinculada al programa.

    ______________________________________________________________________________________Xioma Consulting

    15

  • Programa Hola Mundo

    Los programas tipo REPORT son el tipo ms bsico, y se utilizan primordialmente para la generacin de reportes, batch inputs3 e interfases. Un ejemplo de un programa tipo REPORT es el siguiente:

    REPORT ZHOLA no standard page heading.

    WRITE 'Hello World!'.

    Todos los programas ejecutables deben iniciar con la instruccin REPORT , el parmetro adicional NO STARNDARD PAGE HEADING elimina del reporte la lnea que imprime el ttulo del reporte.

    Para imprimir un texto en la pantalla se utiliza la instruccin WRITE . Una vez finalizado el programa es necesario activarlo y posteriormente puede ser ejecutado .

    ______________________________________________________________________________________Xioma Consulting

    16

    3 Programas de carga., usualmente a partir de archivos planos.

  • Transport Organizer

    El Transport Organizer permite la administracin de las rdenes de transporte de un usuario.

    Con la opcin de visualizacin se puede ver la lista objetos locales y aquellos que se encuentren en una orden de transporte esperando a ser liberados. Las rdenes que pertenecen a la clase Workbench incluyen todos los objetos relacionados con el desarrollo de aplicaciones. En el caso de las rdenes de Customizing, stas contienen a los objetos generados por los cambios en la parametrizacin del sistema.

    Existen dos estados posibles para las ordenes, las liberadas que son aquellas ordenes que estn listas para ser transportadas a otro mandante y las modificables que son aquellas ordenes que estn esperando una liberacin. Las rdenes liberadas pueden ser visualizadas desde una fecha especfica.

    ______________________________________________________________________________________Xioma Consulting

    17

  • Para liberar la orden, se debe liberar primero todas las tareas incluidas en la orden de transporte y posteriormente la orden. Se libera un objeto a la vez, seleccionndolo y pulsando el botn LIBERAR DIRECTAMENTE . Solamente se pueden liberar las ordenes propias, por lo que si fuera necesario liberar una tarea o una orden que perteneciera a otro usuario es necesario reasignarla utilizando el botn MODIFICAR TITULAR .

    ______________________________________________________________________________________Xioma Consulting

    18

  • Eventos

    ABAP es un lenguaje estructurado orientado a eventos, los cuales se disparan dependiendo de una condicin. El cdigo dentro de cada evento se ejecuta siguiendo el clsico comportamiento TOP-DOWN. Los eventos ms utilizados se presentan a continuacin en el orden que son ejecutados:

    LOAD-OF-PROGRAM Este evento se ejecuta justamente despus de que el sistema ha cargado un programa de tipo 1, M, F o S en memoria. Siendo este bloque ejecutado nicamente una vez por cada programa en cada sesin interna.

    INITIALIZATIONEste evento se ejecuta antes de que se muestre la pantalla de seleccin.

    Normalmente es utilizado para inicializar valores clave para la ejecucin del programa.

    Sintaxis: INITIALIZATION.

    Ejemplo: PARAMETERS QUAL_DAY TYPE D DEFAULT SY-DATUM. INITIALIZATION. QUAL_DAY+6(2) = '01'. QUAL_DAY = QUAL_DAY - 1.

    START-OF-SELECTION Se puede interpretar como el evento principal y es ejecutado justo despus del evento SELECTION-SCREEN.

    Sintaxis:

    START-OF-SELECTION.

    END-OF-SELECTION.

    Ejemplo: START-OF-SELECTION. WRITE Hola Mundo!.

    END-OF-SELECTION.______________________________________________________________________________________

    Xioma Consulting 19

  • END-OF-SELECTION Se procesa despus de que toda la informacin se ha ledo, y justo antes de que se muestre la impresin del reporte.

    TOP-OF-PAGESe ejecuta antes de que se imprima informacin en la primera pgina de un

    reporte. De esta forma permite la creacin de una cabecera definida por el programador siempre que se haya suprimido la cabecera estndar (REPORT NO STANDARD PAGE HEADING).

    AT SELECTION-SCREENEste evento solamente tiene sentido en los reportes. El evento se disparar

    una vez que se haya procesado la pantalla de seleccin. En el caso que se genere un error todos los campos presentes en la pantalla de seleccin estarn disponibles nuevamente para recibir datos.

    Sintaxis:

    AT SELECTION-SCREEN. .

    Ejemplo: Parameters: numero(2).

    AT SELECTION-SCREEN.

    IF NUMERO > 10. message s333(s1) with Nmero mayor que 10'.

    ENDIF.

    ______________________________________________________________________________________Xioma Consulting

    20

  • Definicin de Datos

    Tipos de Datos

    Los tipos de datos indican el mbito al que pertenece un objeto de datos. Estos pueden ser nativos del sistema, o nuevos tipos de datos definidos por el usuario (ya sea local en un programa o en el diccionario de datos de SAP).

    En ABAP/4 existen los siguientes tipos de datos estndar:

    Tipo Descripcin Tamao Valor InicialC Texto (Caracter) 1 BlancoN Texto Numrico 1 000D Fecha (AAAAMMDD) 8 00000000T Hora (HHMMSS) 6 000000X Hexadecimal 1 X00I Entero (Integer) 4 0P Nmero Empaquetado 8 0F Nmero de Punto Flotante 8 0.0String Cadena de caracteres BlancoXstring Secuencia de bytes Blanco

    Definicin de Tipos

    Es posible la definicin de nuevos tipos de datos utilizando la instruccin TYPES. Al igual que en los tipos de datos estndar los nuevos tipos sern utilizables al crear nuevos objetos de datos y al asignar los tipos a los parmetros formales y smbolos de texto.

    Sintaxis: TYPES TYPE .

    Ejemplos:

    TYPES Numero TYPE I. TYPES: BEGIN OF PERSONA, NOMBRE(20) TYPE C, EDAD TYPE I, END OF PERSONA.

    ______________________________________________________________________________________Xioma Consulting

    21

  • Comentarios

    Los comentarios se utilizan para documentar el cdigo, y de esta manera ayudar a mejorar su interpretacin. Existen dos tipos de comentarios en ABAP:

    1. Lnea Completa: Este se activa al colocar el smbolo * en la primera posicin de la lnea.

    2. Al final de la lnea: Se utiliza el smbolo .

    Ejemplos:

    *------------------------------------------------------- * Autor: * Fecha de creacin * Fecha de Modificacin *-------------------------------------------------------

    Contador = Contador + 1. Contador de impresin

    Variables

    Las variables son valores que puede cambiar en el transcurso de la ejecucin de un programa dependiendo de ciertas condiciones o informacin recibida en un programa. La declaracin de las variables en ABAP se realiza con la instruccin DATA. sta puede ser invocada desde cualquier lugar de un programa ABAP.

    Sintaxis: DATA [TYPE ].

    Ejemplos:

    DATA Cumpleaos TYPE D.

    DATA Nombre(40).

    ______________________________________________________________________________________Xioma Consulting

    22

  • Constantes

    La instruccin CONSTANTS permite la definicin de objetos de datos estticos declarados en un programa ABAP. stos pueden ser de cualquier tipo definido en el sistema.

    Sintaxis: CONSTANTS [TYPE ] VALUE .

    Ejemplos:

    CONSTANTS: CHAR1 VALUE X, INT TYPE I VALUE 99.

    CONSTANTS: BEGIN OF CONST_REC, C(2) TYPE I VALUE 'XX', N(2) TYPE N VALUE '12', X TYPE X VALUE 'FF', I TYPE I VALUE 99, P TYPE P VALUE 99, F TYPE F VALUE '9.99E9', D TYPE D VALUE '19950101', T TYPE T VALUE '235959', END OF CONST_REC.

    Field Symbols

    Los field symbols son nombres simblicos a los que se les asigna un rea de memoria durante el tiempo de ejecucin. Se pueden utilizar en lugar de objetos de datos en las sentencias de ABAP. Para crear un field symbol se utiliza la siguiente sintaxis:

    Sintaxis:

    FIELD-SYMBOLS: , .

    Para asignar la referencia al smbolo creado se utiliza la instruccin ASSIGN:

    Sintaxis:

    ASSIGN TO .

    Ejemplo:

    FIELD-SYMBOLS: .

    DATA: FECHA LIKE SY-DATUM.

    START-OF-SELECTION.

    ASSIGN FECHA TO .

    = '19751130'.

    WRITE FECHA.

    ______________________________________________________________________________________Xioma Consulting

    23

  • Creacin de textos

    Se puede crear textos dependientes del idioma o smbolos de texto para todos los programas ABAP. Se asigna un cdigo de tres dgitos a cada smbolo de texto. Para accesarlo en el programa se utiliza de la siguiente manera:

    Sintaxis:

    text-.

    Ejemplo:

    WRITE text-t01.

    Parmetros

    Los parmetros son variables de entrada en un programa tipo REPORT. Estos generan una pantalla automtica de entrada donde los parmetros tienen ciertas caractersticas especiales segn el tipo al que pertenecen.

    Parameters La instruccin PARAMETERS crea una variable de entrada con las mismas caractersticas que la instruccin DATA.

    Sintaxis: PARAMETERS .

    Ejemplos:

    PARAMETERS Nombre(40).

    Select-Options Select-options indica un parmetro de tipo especial (RANGES) que permite que el usuario defina un conjunto de valores para el parmetro.

    ______________________________________________________________________________________Xioma Consulting

    24

  • Controles de Seleccin de Pantalla

    Utilizando el comando SELECTION-SCREEN es posible brindar un formato a la pantalla de seleccin en un reporte.

    Recuadros y Ttulos

    Es posible crear recuadros que encapsulen los parmetros de seleccin y textos.

    Sintaxis:

    SELECTION-SCREEN BEGIN OF BLOCK bloque .

    SELECTION-SCREEN END OF BLOCK bloque.

    Ejemplo:

    Report Zejemplo.

    *Ejemplo 1

    SELECTION-SCREEN BEGIN OF BLOCK EJE_1 WITH FRAME TITLE EJE_1 NO INTERVALS.

    SELECT-OPTIONS: S_FECHA FOR SY-DATUM.

    PARAMETERS: P_PARA(20).

    SELECTION-SCREEN END OF BLOCK EJE_1.

    *Ejemplo 2

    SELECTION-SCREEN BEGIN OF BLOCK EJE_2 WITH FRAME TITLE EJE_2.

    SELECT-OPTIONS: S_FECHA2 FOR SY-DATUM. PARAMETERS: P_PARA2(20).

    SELECTION-SCREEN END OF BLOCK EJE_2.

    *Ejemplo 3

    SELECTION-SCREEN BEGIN OF BLOCK EJE_3.

    ______________________________________________________________________________________Xioma Consulting

    25

  • SELECT-OPTIONS: S_FECHA3 FOR SY-DATUM. PARAMETERS: P_PARA3(20).

    SELECTION-SCREEN END OF BLOCK EJE_3.

    INITIALIZATION.

    MOVE EJE 1 TO EJE_1. MOVE EJE 2 TO EJE_2.

    El recuadro se genera alrededor del cdigo incluido en el mbito del SELECTION-SCREEN al utilizar la adicin WITH FRAME. En combinacin con el WITH FRAME se puede utilizar la adicin TITLE para agregar un ttulo al recuadro, pero ste no puede superar los 8 caracteres. La adicin NO INTERVALS hace que el SELECT-OPTIONS aparezca dentro del recuadro como un campo nico.

    ______________________________________________________________________________________Xioma Consulting

    26

  • Agrupacin de temes

    Utilizando el SELECTION-SCREEN es posible agrupar parmetros o textos en una misma lnea, para ello se utiliza la adicin BEGIN OF LINE y END OF LINE.

    Sintaxis:

    SELECTION-SCREEN BEGIN OF LINE. SELECTION-SCREEN END OF LINE.

    Ejemplos:

    REPORT EJEMPLO2.

    SELECTION-SCREEN BEGIN OF LINE. PARAMETERS: PARAM1(8), PARAM2(8), PARAM3(8).

    SELECTION-SCREEN END OF LINE.

    ______________________________________________________________________________________Xioma Consulting

    27

  • REPORT EJEMPLO2.

    SELECTION-SCREEN BEGIN OF LINE.

    PARAMETERS: P_PARAM1(10). SELECTION-SCREEN COMMENT (15) W_NOMBRE.

    SELECTION-SCREEN ULINE (10). SELECTION-SCREEN PUSHBUTTON (10) W_BOTON

    USER-COMMAND UCOM.

    SELECTION-SCREEN END OF LINE.

    INITIALIZATION. W_NOMBRE = Comentario. W_BOTON = Botn.

    Es posible incluir parmetros, botones, comentarios o bloques subrayados como campos de entrada en el mbito del BEGIN OF LINE y END OF LINE. El SELECT-OPTIONS no es permitido dado que la naturaleza de ste es crear mltiples objetos en una sola lnea (la cota inferior y la cota superior).

    ______________________________________________________________________________________Xioma Consulting

    28

  • Posicionamiento de temes Dentro del conjunto de instrucciones posibles para la adicin BEGIN OF LINE se encuentra la opcin POSITION. sta opcin se utiliza para definir la posicin en la lnea definida por el BEGIN OF LINE.

    Sintaxis:

    SELECTION-SCREEN POSITION .

    Ejemplo:

    SELECTION-SCREEN BEGIN OF LINE. PARAMETERS: PARAM1(8). SELECTION-SCREEN POSITION 20. PARAMETERS: PARAM2(8). SELECTION-SCREEN POSITION 30. PARAMETERS: PARAM3(8). SELECTION-SCREEN END OF LINE.

    ______________________________________________________________________________________Xioma Consulting

    29

  • Subrayado

    El subrayado puede ser generado en las pantallas de seleccin as como en los reportes ABAP. Sin embargo difieren en su sintaxis.

    Sintaxis: SELECTION-SCREEN UNLINE

    Ejemplos:

    SELECTION-SCREEN BEGIN OF LINE. PARAMETERS: P_PARAM1(10). SELECTION-SCREEN ULINE (10). SELECTION-SCREEN END OF LINE.

    El formato puede tener la forma POS(TAM) o (TAM).

    SELECTION-SCREEN BEGIN OF LINE.

    PARAMETERS: P_PARAM1(10). SELECTION-SCREEN ULINE 11(3). PARAMETERS: P_PARAM2(10). SELECTION-SCREEN ULINE 26(3). PARAMETERS: P_PARAM3(10).

    SELECTION-SCREEN END OF LINE.

    ______________________________________________________________________________________Xioma Consulting

    30

  • Comentarios

    En el SELECTION-SCREEN tambin es posible generar comentarios. Siempre que se utilice el comando COMMENT.

    Sintaxis:

    SELECTION-SCREEN COMMENT FOR FIELD MODIF ID

    VISIBLE LENGHT .

    Ejemplo:

    SELECTION-SCREEN BEGIN OF LINE.

    SELECTION-SCREEN COMMENT (15) W_NOMBRE. PARAMETERS: P_PARAM1(10).

    SELECTION-SCREEN END OF LINE.

    INITIALIZATION.

    W_NOMBRE = Comentario.

    Al igual que con el comando ULINE, es necesario que exista un campo de entrada definido de lo contrario la pantalla de seleccin no ser generada. Si se incluye el parmetro FOR FIELD, entonces el comentario queda oficialmente atado a un campo de entrada.

    SELECTION-SCREEN BEGIN OF LINE.

    SELECTION-SCREEN COMMENT (15) W_NOMBRE FOR FIELD P_PARAM1.

    PARAMETERS: P_PARAM1(10).

    SELECTION-SCREEN END OF LINE.

    INITIALIZATION.

    W_NOMBRE = Comentario.

    ______________________________________________________________________________________

    Xioma Consulting 31

  • Botones

    Los botones son utilizados para ejecutar una funcin del usuario dentro del cdigo para interactuar dinmicamente con el usuario.

    Sintaxis:

    SELECTION-SCREEN BEGIN OF LINE. SELECTION-SCREEN PUSHBUTTON fmt name USER-COMMAND ucom. SELECTION-SCREEN END OF LINE.

    Ejemplo:

    TABLES: SSCRFIELDS.

    SELECTION-SCREEN BEGIN OF LINE.

    SELECTION-SCREEN PUSHBUTTON (10)

    W_BUTTON USER-COMMAND UCOM.

    SELECTION-SCREEN END OF LINE.

    INITIALIZATION. W_BUTTON = 'Botn'.

    AT SELECTION-SCREEN.

    IF SSCRFIELDS-UCOMM = 'UCOM'. MESSAGE S333(S1) WITH 'Se ha oprimido el botn'. ENDIF.

    Puede notarse en el ejemplo que el botn puede existir por si mismo dado que es un campo de entrada. Cuando se hace click sobre el botn, el campo del sistema SSRFIELDS-UCOMM obtiene el valor del valor que se le ha asignado al botn en su definicin. Entonces se puede hacer una evaluacin de este campo en el evento SELECTION-SCREEN para poder determinar si un ste fue o no oprimido y ejecutar el cdigo que corresponde.

    ______________________________________________________________________________________Xioma Consulting

    32

  • Botones en la Barra de Herramientas

    Muchos de los reportes estndar de SAP poseen botones en la barra de

    herramientas junto al botn de ejecucin . Este tipo de botn tambin puede ser utilizado en el momento que se genera la pantalla de seleccin, y se pueden crear en sta hasta cinco botones en el nivel de la barra de herramientas.

    Sintaxis: SELECTION-SCREEN FUNCTION KEY .

    Ejemplo:

    TABLES: SSCRFIELDS.

    SELECTION-SCREEN FUNCTION KEY 1.

    SELECTION-SCREEN BEGIN OF LINE.

    SELECTION-SCREEN PUSHBUTTON (10) W_BUTTON USER-COMMAND UCOM.

    SELECTION-SCREEN END OF LINE.

    SELECTION-SCREEN SKIP 9.

    SELECTION-SCREEN BEGIN OF LINE. SELECTION-SCREEN PUSHBUTTON (10) W_BUTTO2 USER-COMMAND UCOW.

    SELECTION-SCREEN END OF LINE. INITIALIZATION.

    MOVE Botn de Aplicacin to SSCRFIELDS-FUNCTXT_01. W_BUTTON = Botn 1. W_BUTTO2 = Botn 2.

    ______________________________________________________________________________________Xioma Consulting

    33

  • Al ejecutar el programa, el campo SSCRFIELDS-FUNCTXT_01se asocia al botn 1 de la barra de herramientas en el evento de inicializacin. Este valor es entonces desplegado en el botn en tiempo de ejecucin. Se puede asociar el campo FUNCTXT_02 al botn dos, y as sucesivamente hasta el botn cinco.

    Algunas variables del sistema son inicializadas cuando se utiliza este comando. El sistema inicializa el campo SSCRFIELDS-UCOMM a FC01 para la tecla de funcin 1, FC02 para la tecla de funcin 2 y as sucesivamente.

    La variable toma el valor en el momento de realizar el click sobre el botn y puede ser evaluado en el evento AT SELECTION-SCREEN.

    Para asignar texto al botn que se esta creando, es necesario asegurarse de asignar un texto al campo SSCRFIELDS-FUNCTXT_01 para la tecla de funcin 1, para el campo SSCRFIELDS-FUNCTXT_02 para la tecla de funcin 2, y as sucesivamente. El momento para realizar estas asignaciones es en el evento INITIALIZATION.

    ______________________________________________________________________________________Xioma Consulting

    34

  • Lneas en Blanco

    Las lneas en blanco permiten dejar espacios en la pantalla de seleccin para facilitar la lectura de sta. Para dejar una lnea en blanco se utiliza el comando SKIP de la misma manera que se hace en un reporte ABAP.

    Sintaxis:

    SELECTION-SCREEN SKIP .

    Ejemplo:

    SELECTION-SCREEN BEGIN OF LINE. SELECTION-SCREEN PUSHBUTTON (10) W_BUTTON USER-COMMAND UCOM. SELECTION-SCREEN END OF LINE.

    SELECTION-SCREEN SKIP 9.

    SELECTION-SCREEN BEGIN OF LINE.

    SELECTION-SCREEN PUSHBUTTON (10) W_BUTTO2 USER-COMMAND UCOW.

    SELECTION-SCREEN END OF LINE.

    INITIALIZATION. W_BUTTON = 'Botn 1'. W_BUTTO2 = 'Botn 2'.

    ______________________________________________________________________________________Xioma Consulting

    35

  • Variables de Ambiente (SY)

    SY es una estructura que contiene las variables de ambiente que se modifican en tiempo de ejecucin por el sistema mientras se ejecuta un programa. No es necesario definir la estructura y sta estar disponible desde cualquier parte de un programa.

    El siguiente cuadro describe los campos que pueden resultar de uso ms frecuente:

    Ejemplo:

    Select single * from T001. IF SY-SUBRC EQ 0. WRITE: Existen valores en la tabla T001. ENDIF.

    ______________________________________________________________________________________Xioma Consulting

    36

  • Operadores Aritmticos Existen varias operaciones en el estndar, muchas de stas se pueden conseguir bajo la clusula COMPUTE. Sin embargo en el presente documento solamente se nombraran los operadores aritmticos de uso ms frecuente.

    La suma

    Para realizar una suma se utiliza el smbolo + o la instruccin ADD. Sin embargo se recomienda utilizar la primera forma del ejemplo por ser ms eficiente.

    Ejemplo:

    A = A + 1.

    ADD 1 to A.

    La Resta

    El smbolo - indica la operacin de sustraccin, as mismo es posible la utilizacin de la instruccin SUBSTRACT. Es ms eficiente la utilizacin del smbolo -.

    Ejemplo: A = A 1.

    SUBSTRACT 1 TO A.

    La Multiplicacin

    La Multiplicacin utiliza el smbolo * o en su defecto puede utilizarse la instruccin MULTIPLY, siendo esta ltima la menos eficiente.

    Ejemplo:

    A = A * 2.

    MULTIPLY A BY 2.

    ______________________________________________________________________________________Xioma Consulting

    37

  • La Divisin

    Para la divisin se utiliza el smbolo / o al igual que en los otros casos existe una instruccin equivalente en lenguaje natural llamada DIVIDE siendo esta menos eficiente.

    Ejemplo:

    A = A / 2.

    DIVIDE A BY 2.

    El exponente

    Para elevar un valor a una potencia n se utiliza dos veces el smbolo * quedando de la siguiente manera: **.

    Ejemplo:

    A = A ** 2.

    ______________________________________________________________________________________Xioma Consulting

    38

  • Instrucciones de Decisin Las instrucciones de decisin evalan una expresin y en base al valor de verdad que tenga dicha expresin se ejecuta el cdigo que corresponda..

    OPERADORES LGICOS o BOOLEANOS Los operadores lgicos sirven para definir relaciones entre expresiones generando de esta manera nuevos valores de verdad. En la lgica Booleana solamente existen dos valores: VERDADERO o FALSO. Los operadores que existen en ABAP son los siguientes: AND, OR y NOT. Estos operadores respetan las reglas de la lgica Booleana.

    ANDANDANDValor 1 Valor 2 ResultadoVerdadero Verdadero VerdaderoVerdadero Falso FalsoFalso Verdadero FalsoFalso Falso Falso

    Es posible agrupar las expresiones encerrndolas entre parntesis. Los valores y campos deben separarse utilizando espacios en blanco.

    Ejemplo:

    Incorrecto:

    f1 EQ f2 AND (f3 EQ f4).

    Correcto:

    f1 EQ f2 AND ( f3 EQ f4 ).

    ______________________________________________________________________________________Xioma Consulting

    39

  • OPERADORES RELACIONALES Los operadores relacionales sirven para determinar el valor de verdad entre dos operndos. En ABAP existen los siguientes:

    IF IF evala una expresin lgica. En caso que el valor de la expresin sea verdadera, ejecuta el cdigo que contiene su bloque, de lo contrario continua con el cdigo siguiente. El bloque debe cerrarse con la instruccin ENDIF. Sintaxis:

    IF .

    .

    ENDIF.

    Ejemplo:

    IF A GT 10.

    WRITE:/ A es mayor que 10.

    ENDIF. Comparacin de 10

    IF A GT 10.

    IF A LT 20.

    WRITE:/ A es mayor que 10 y menor que 20.

    ENDIF. MENOR QUE 20 ENDIF. MAYOR QUE 10

    ELSE (ELSEIF)

    Las sentencias que se coloquen despus del ELSE, sern ejecutadas solo si la expresin en la sentencia IF no se cumple. Si se desea hacer otra verificacin si la primera no se cumple, se recomienda utilizar ELSEIF. Se puede colocar tantos ELSEIF como se necesiten.

    ______________________________________________________________________________________Xioma Consulting

    40

  • Sintaxis:

    IF . . ELSE. . ENDIF.

    IF . . ELSEIF. . ELSEIF. . ELSE. . ENDIF.

    Ejemplo:

    IF A LT 20. WRITE:/ A es menor que 20. ELSEIF A GT 50. WRITE:/ A es mayor que 50. ELSE. WRITE:/ A es mayor o igual a 20 y menor que 50. ENDIF.

    CASEDependiendo del valor del campo, se ejecutarn diferentes bloques de sentencias de

    ejecucin. Con la instruccin WHEN especificas las condiciones que se quieren evaluar sobre dicho campo.

    Sintaxis:

    CASE f. WHEN f11 OR f12 ... OR f1n.... WHEN f21 OR f22 ... OR f2m. ... WHEN OTHERS. . . . ENDCASE.

    Ejemplo:

    CASE A. WHEN 1 OR 2. WRITE:/ A es igual a 1 o a 2.WHEN 3. WRITE:/ A es igual a 3.WHEN OTHERS. WRITE:/ A tiene un valor diferente a 1,2 o 3. ENDCASE.

    ______________________________________________________________________________________Xioma Consulting

    41

  • Instrucciones de Iteracin A continuacin instrucciones que permiten ejecutar un bloque de sentencias de forma repetitiva, ya sea por cantidad de veces determinada o hasta que se cumpla cierta expresin lgica.

    DO

    Repite las sentencias encerradas entre el DO y el ENDDO, de forma infinita hasta que es detenido por un EXIT, STOP o REJECT. Tiene dos variaciones:

    Sintaxis: 1. DO N TIMES. Permite hacer iteraciones de forma limitada.2. ... VARYING f FROM f1 NEXT f2. Permite hacer iteraciones entre f1 hasta f2.

    Ejemplo:

    DO. WRITE: / 'SY-INDEX - Begin:', (3) SY-INDEX. IF SY-INDEX = 10. EXIT. ENDIF. WRITE: 'End:', (3) SY-INDEX. ENDDO.

    DATA COUNT TYPE I. DO 10 TIMES. ADD SY-INDEX TO COUNT. ENDDO.

    WHILE Repite las sentencias encerradas entre el WHILE y el ENDWHILE, mientras se cumpla la expresin lgica asociada.

    Sintaxis:

    WHILE . .ENDWHILE.

    Ejemplo:

    SEARCH_ME = 23. WHILE NUMBER SEARCH_ME. ADD 1 TO NUMBER. WRITE: / NUMBER. ENDWHILE.

    ______________________________________________________________________________________Xioma Consulting

    42

  • CHECKVerifica que la expresin lgica subsecuente es verdadera. Si es as, pasa a la

    siguiente sentencia, pero si no, sale de la iteracin, si se encuentra en un DO, WHILE, LOOP o SELECT, o sale de la rutina, si se encuentra en un FORM, FUNCTION y MODULE.

    Sintaxis:

    CHECK .

    Ejemplo:

    DO.

    Contador = contador + 1.

    CHECK contador LT 10.

    ENDDO.

    En el ejemplo, el CHECK evala la condicin y no permite que se ejecute el resto del cdigo sino hasta que el contador sea mayor que 10.

    EXITPermite salir de la iteracin, si se encuentra en un DO, WHILE, LOOP o SELECT, o

    sale de la rutina, si se encuentra en un FORM, FUNCTION y MODULE.

    Sintaxis:

    EXIT.

    Ejemplo:

    DO.

    Contador = contador + 1. IF contador GT 9. EXIT. ENDIF.

    ENDDO.

    ______________________________________________________________________________________Xioma Consulting

    43

  • Despliegue Existen dos maneras de enviar la informacin en SAP hacia la pantalla y/o impresora. La ms elaborada es la elaboracin de formularios (va Smartforms o SAPScript) y la otra por medio de reportes que se construyen utilizando nicamente instrucciones de ABAP. Las ms utilizadas para generar estos reportes se describen a continuacin.

    WRITE Despliega un valor en la pantalla o en su defecto puede utilizarse para trasladar un valor entre variables (incluso de diferente tipo).

    Sintaxis: WRITE .

    Ejemplo: Write Hola Mundo!.

    FORMAT Se utiliza para modificar el formato de salida de los textos en el reporte controlando el color del fondo del texto y la intensidad del mismo.

    Sintaxis: FORMAT .

    Ejemplo:FORMAT INTENSIFIED ON COLOR = 5.WRITE 'Marca el texto con verde oscuro'.FORMAT INTENSIFIED OFF COLOR = 5.WRITE 'Marca el texto con verde claro'.

    ULINE Esta sentencia imprime una lnea continua por todo el ancho de la salida del reporte.

    Sintaxis: ULINE.

    Si se desea imprimir una lnea continua pero de un tamao determinado, se puede utilizar la variable del sistema SY-ULINE. Esta variable contiene una lnea continua de 255 caracteres en tiempo de ejecucin.

    Ejemplo:WRITE: / SY-ULINE(80).

    ______________________________________________________________________________________Xioma Consulting

    44

  • SKIP Permite saltar n lneas en una salida de reporte. Si no se indica la cantidad de lneas, solo saltar una lnea.

    Sintaxis:

    SKIP [N].

    Ejemplo:

    SKIP 5.

    STRINGS

    En ABAP un string es una cadena de caracteres que se almacenan en una variable vectorial donde la primera posicin ser la cero. Se puede usar el tipo STRING para definir un string de longitud indefinida, as como darle una longitud fija al definirlo como tipo C (char).

    Ejemplo:

    DATA: Nombre TYPE STRING, String de longitud indefinida Apellido(40) TYPE C, Cadena de 40 caracteres Apellido2(40). Cadena de 40 caracteres

    Substrings Para manipular el contenido de un string se utiliza el smbolo + para indicar el desplazamiento en el string (de izquierda a derecha) y entre parntesis el tamao del substring.

    Ejemplo:

    DATA: descripcin(40) value Mazanas, Peras y Uvas, Fruta(7).

    Fruta = descripcin+0(7). * Fruta obtiene el valor Manzanas. Fruta = descripcin+9(5). * Fruta obtiene el valor Peras.

    Es posible tambin utilizar el substring sin asignarlo a una variable.

    IF descripcin+9(5) EQ Peras. Descripcin+9(5) = Fresa. ENDIF.

    ______________________________________________________________________________________

    Xioma Consulting 45

  • Concatenate Permite concatenar cadenas de caracteres de distintas variables o textos.

    Sintaxis: CONCATENATE f1 f2 f3 f4 fn INTO target.

    Ejemplo:

    DATA: ONE(10) VALUE ' John ', TWO(3)VALUE 'F.', THREE(10) VALUE ' Kennedy', NAME(20), FIRST TYPE STRING.

    CONCATENATE ONE TWO THREE INTO NAME.

    Condense Permite desplazar toda la cadena de caracteres que se encuentre en una variable hacia el lado izquierdo, eliminando todos los espacios que ese encuentren antes del primer carcter.

    Sintaxis:

    CONDENSE f1.

    Ejemplo:

    DATA NAME (30). NAME(10)= ' Dr.'. NAME+10(10) = 'Michael'. NAME+20(10) = 'Hofmann'. CONDENSE NAME. WRITE NAME.

    El valor final de la variable NAME ser entonces Dr. Michael Hofmann.

    ______________________________________________________________________________________Xioma Consulting

    46

  • Replace Se utiliza REPLACE para reemplazar una ocurrencia dentro de una cadena de caracteres. Una vez que la instruccin encuentra la primera ocurrencia, la reemplaza. En ese momento finaliza la bsqueda. En la variable SY-SUBRC se retorna el valor 0 si el reemplazo fue exitoso 4 en caso de que no lo fuera.

    Sintaxis:

    REPLACE WITH INTO .

    Ejemplo:

    DATA FIELD(10). MOVE 'ABCB' TO FIELD. REPLACE 'B' WITH 'string' INTO field.

    Al ejecutar, el valor de field es AstringCB.

    STRLEN Esta funcin calcula el tamao de un string y lo retorna a una variable.

    Sintaxis:

    STRLEN( ).

    Ejemplo:

    DATA: TAM TYPE I.

    tam = STRLEN( nombre ).

    ______________________________________________________________________________________Xioma Consulting

    47

  • Otras Instrucciones

    CLEAR Permite inicializar una variable con los valores iniciales. Sintaxis: CLEAR .

    MOVEMueve el contenido de una variable a otra, sin modificar el contenido de la variable

    original. No necesariamente la variable de destino es del mismo tipo que la variable de origen.

    Sintaxis:

    MOVE TO .

    Ejemplo:

    DATA: A(2) value 'A1', B(2), C(1).

    MOVE A TO B.MOVE A+0(1) TO C.

    Esto es equivalente a:

    B = A.C = A+0(1).

    MESSAGEEnva un mensaje al usuario debidamente clasificado en el repositorio de SAP que

    aparece en la parte inferior de la ventana, contempla los tipos W (advertencia), E (error), S (mensaje), A (Abortar transaccin), X(Salir con un mensaje de dump), I (informativo) .

    Sintaxis:

    MESSAGE ID TYPE NUMBER WITH .

    Ejemplo:

    MESSAGE ID BC400TYPE I NUMBER 040 WITH wa_itab-campo1 wa_itab-campo2.

    ______________________________________________________________________________________Xioma Consulting

    48

  • La administracin de las clases de mensajes se realizan a travs de la transaccin SE91.

    Despus de darle al botn Crear, se pasa a la siguiente pantalla.

    ______________________________________________________________________________________Xioma Consulting

    49

  • Se selecciona y se asigna el nuevo objeto su respectivo paquete y orden de transporte.

    Seleccionando la pestaa Mensajes, se puede empezar a insertar los mensajes que se desea utilizar. Cada mensaje puede contener parmetros que son indicados con el smbolo &.

    ______________________________________________________________________________________Xioma Consulting

    50

  • Procedimientos y Funciones

    Los procedimientos son subprogramas que se utilizan para modulizar una aplicacin. El uso de los mismos hace que los programas sean ms entendibles. En ABAP los procedimientos reciben y retornan valores por medio de parmetros. Los procedimientos pueden definirse en cualquier parte del cdigo ABAP. Las funciones son similares a los procedimientos, pero se comportan como una caja negra4. Su definicin es global en el sistema, por lo cual no es necesario definirlas en el programa. Las funciones en ABAP se manipulan por medio de la transaccin SE375. Existen ya una cantidad considerable de funciones estndar definidas en el sistema y que estn disponibles para el desarrollador.

    FORM

    Se utiliza para indicar el inicio del procedimiento y los parmetros de entrada y salida. Una vez que se define el procedimiento todas las definiciones que se hacen de constantes y variables son locales. Esta instruccin debe finalizar con un END FORM.

    Sintaxis:

    FORM [USING ] [CHANGING ].

    .

    ENDFORM.

    Ejemplo:

    FORM WELCOME. WRITE / 'Hello world'. ENDFORM.

    FORM suma USING num1 num2

    CHANGING resultado.

    resultado = num1 + num2.

    ENDFORM. "suma

    ______________________________________________________________________________________Xioma Consulting

    51

    4 Caja negra es un trmino que se utiliza para referirse a un sistema que recibe una entrada y retorna una salida, pero del cual se desconoce su mecanismo interno.

    5 La utilizacin de la SE37 esta contemplada en este manual mas adelante

  • PERFORM Sirve para realizar la invocacin de un procedimiento.

    Sintaxis: PERFORM USING CHANGING .

    Ejemplo:PERFORM suma USING 2 3 CHANGING total.

    CALL Este comando invoca a una funcin. Normalmente es ms sencillo utilizar la opcin de PATRON en el editor ABAP (SE38) para seleccionar del pool de funciones la funcin que se desea utilizar, y ste genera el CALL con los parmetros de entrada y salida.

    Sintaxis: CALL .

    Ejemplo:

    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT' EXPORTING INPUT = total IMPORTING OUTPUT = salida.

    Invocacin de una funcin

    Para hacer la invocacin de una funcin lo haremos utilizando el botn de Patrn

    . Esta opcin nos permite insertar en nuestro programa toda la estructura que deber tener la sentencia CALL FUNCTION con cada uno de los parmetros requeridos.

    ______________________________________________________________________________________Xioma Consulting

    52

  • Solamente se debe escribir el nombre de la funcin que deseamos invocar en nuestro programa. En este caso utilizaremos la funcin creada anteriormente (ZF_FUNCION1).

    CALL FUNCTION 'ZF_FUNCION1' EXPORTING I_MATNR = I_WERKS = I_LGORT = I_LGPLA = I_CHARG =

    * IMPORTING* E_VERME =

    CHANGING ERROR =

    MESSAGE =

    * EXCEPTIONS* EXCEP1 = 1* OTHERS = 2 .

    IF SY-SUBRC 0.

    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

    ENDIF.

    Una vez cargada la estructura en nuestro programa, se deben colocar, a la derecha del igual = los valores que sern enviados a la funcin y las variables en las que se recibirn los resultados. Los parmetros opcionales pueden ser omitidos comentando la lnea con un asterisco (*).

    ______________________________________________________________________________________Xioma Consulting

    53

  • SUBMIT

    Ejecuta un programa tipo reporte desde otro programa.

    Sintaxis:

    SUBMIT .

    Ejemplo:

    SUBMIT REPORT01 VIA SELECTION-SCREEN.

    INCLUDES

    Los programas includes se utilizan para modularizar los programas ABAP y crear bloques de cdigo reutilizables. Estos programas no son ejecutables por si mismos y no necesitan de ninguna sentencia de inicializacin.

    Para crear un programa tipo include se puede utilizar la transaccin SE38 o desde el ABAP Workbench (SE80) . Se de indicar en el tipo que el programa es de include.

    ______________________________________________________________________________________Xioma Consulting

    54

  • Los programas tipo include puede ser muy tiles cuando se desea crear librerias de procedimientos, macros, definicin de datos, etc.

    Sintaxis:

    INCLUDE .

    Ejemplo:

    INCLUDE ZINC_EJEMPLO.

    ______________________________________________________________________________________Xioma Consulting

    55

  • Estructuras de Datos

    Las estructuras de datos son conjuntos de variables, quizs de tipos distintos, relacionadas (conectadas) entre s de diversas formas y las operaciones definidas sobre esa agrupacin. Ejemplos de estructuras de datos las podemos encontrar en muchos mbitos, desde las matemticas (estructuras algebraicas: grupo, anillo o cuerpo) hasta el mundo de los negocios (estructura de una empresa). Los elementos de una estructura de datos dependen del lenguaje de programacin a travs de los tipos de datos que los definen. Sin embargo, la estructura en s, que est definida por el tipo de relacin entre los elementos, no depende del lenguaje de programacin empleado.

    Las estructuras de datos se caracterizan por el tipo de los elementos de la estructura, las relaciones definidas sobre los elementos y las operaciones permitidas sobre la estructura. Operaciones tpicas sobre estructuras de datos suelen ser: acceder a los elementos (por la posicin que ocupan o por la informacin que contienen), buscar elementos, insertar o borrar elementos, modificar las relaciones entre los elementos, etc...

    En ABAP los tres tipos de estructuras que son ms utilizados son: los registros, las tablas internas (llamadas ITABS) y las tablas transparentes.

    Registros

    Un registro se puede definir como una variable subdividida en varios campos. Para acceder a cada campo se utiliza el nombre del registro, el smbolo - y el nombre del campo. Para definir el registro se utiliza la instruccin DATA con la opcin BEGIN OF.

    Sintaxis:

    DATA: BEGIN OF , , , END OF .

    Ejemplo:

    DATA: TipoCambio type P decimals 2 value 470.

    DATA: BEGIN OF Camisa, NrMaterial LIKE MARA-MATNR, Color(2), Talla(2), Precio Type P decimals 2,

    PrecioUSD type P decimals 2, END OF Camisa.

    Start-of-Selection. Camisa-NrMaterial = 60001. Camisa-color = 1. Color Blanco Camisa-Talla = M. Camisa-Precio = 4000. Camisa-PrecioUSD = Camisa-Precio / TipoCambio.

    ______________________________________________________________________________________Xioma Consulting

    56

  • MOVE-CORRESPONDING

    La instruccin MOVE-CORRESPONDING se utiliza para mover informacin entre los campos de estructuras que posean el mismo nombre. Aquellos campos en la estructura destino que no coincidan con los definidos en la estructura origen son ignorados y no se modifican.

    Sintaxis:

    MOVE-CORRESPONDING TO .

    Ejemplo:

    DATA: BEGIN OF origen, Campo1(20), Campo2(10), Campo3 type i, Campo4(3),END OF origen.

    DATA: BEGIN OF destino, Campo9(10), Campo3 type i, Campo1(20), Campo4(5), Campo8(15),END OF destino.

    origen-campo1 = 'Hola'.origen-campo2 = 'Mundo!'.origen-campo3 = 1701.origen-campo4 = 'NCC'.

    destino-campo8 = 'NCC-74656'.

    MOVE-CORRESPONDING origen TO destino.

    Es importante considerar en el ejemplo, que el orden de los campos en la estructura no es relevante, as como no lo es el tamao. Si el campo destino es de menor tamao que el origen, la informacin ser truncada.

    ______________________________________________________________________________________Xioma Consulting

    57

  • Tablas Internas

    Las tablas internas se utilizan para almacenar los datos provenientes de la base de datos o de informacin que ha sido generada en tiempo de ejecucin. Se puede definir dos tipos de tablas internas:

    Con Cabecera: La cabecera es un espacio de la tabla interna donde se almacena la informacin del registro al que se esta apuntando en el cuerpo de la tabla. Se declara en forma similar a un registro incluyendo la opcin OCCURS. Esta opcin especifica cuantas lneas debe reservar el sistema para los bloques de la tabla interna, normalmente se utiliza 0, sin embargo dependiendo del volumen de informacin, asignar un nmero muy grande o uno muy pequeo puede tener una repercusin en el rendimiento del programa.

    Sintaxis:

    DATA: BEGIN OF OCCURS , ,

    ,

    END OF .

    Ejemplo:

    DATA: TipoCambio type P decimals 2 value 470.

    DATA: BEGIN OF Camisa OCCURS 0, NrMaterial LIKE MARA-MATNR, Color(2), Talla(2), Precio Type P decimals 2,

    PrecioUSD type P decimals 2, END OF Camisa.

    Start-of-Selection. Camisa-NrMaterial = 60001. Camisa-color = 1. Color Blanco Camisa-Talla = M. Camisa-Precio = 4000. Camisa-PrecioUSD = Camisa-Precio / TipoCambio. APPEND Camisa.

    Otra manera de agregar la cabecera es utilizar la instruccin WITH HEADER LINE.

    Sintaxis: DATA: [LIKE | TYPE] [OCCURS ] WITH HEADER LINE.

    Ejemplos:

    DATA: ITAB LIKE MARA OCCURS 0 WITH HEADER LINE.

    DATA: ITAB2 TYPE T_ITAB WITH HEADER LINE.

    ______________________________________________________________________________________Xioma Consulting

    58

  • Sin Cabecera: Es un tipo de tabla interna que esta compuesto nicamente de cuerpo y su definicin se hace con respecto a un tipo definido previamente o a una estructura ya existente. Sin embargo es necesario definir un registro de cabecera para poder agregar o leer registros de la tabla.

    Sintaxis:

    DATA: TYPE OCCURS .

    Ejemplo:

    TYPES: BEGIN OF PERSONA, NOMBRE(20) TYPE C,

    EDAD TYPE I, END OF PERSONA.

    DATA: C_Miembro type persona.DATA: Miembro TYPE PERSONA OCCURS 0.

    Start-of-selection.

    C_Miembro-Nombre = Jose.C_Miembro-Edad = 20.Append C_miembro to Miembro.

    Las tablas internas pueden ser de 3 tipos: estndar (que son las que tratamos en este manual), Sorted y Hashed. Estos tres tipos de tablas puede ser declarados de la siguiente manera:

    TYPES: BEGIN OF S_ITAB, Nombre(10) TYPE C, Edad TYPE I, END OF S_ITAB.

    TYPES: T_ITAB1 TYPE STANDARD TABLE OF S_ITAB, T_ITAB2 TYPE SORTED TABLE OF S_ITAB WITH KEY Nombre, T_ITAB3 TYPE HASHED TABLE OF S_ITAB.

    DATA: ITAB1 TYPE T_ITAB1, ITAB2 TYPE T_ITAB2, ITAB3 TYPE T_ITAB3.

    ______________________________________________________________________________________Xioma Consulting

    59

  • Existen varias instrucciones que se utilizan para la manipulacin de las tablas internas, a continuacin se van a describir las ms comunes.

    RefreshBorra todo el contenido de la tabla interna.

    Sintaxis:

    REFRESH .

    AppendAgrega un registro a una tabla interna con los valores que se encuentren en la

    cabecera o en un registro que corresponda con la estructura de la tabla.

    Sintaxis:

    APPEND [ TO] .

    Ejemplo:

    APPEND C_Miembro TO Personas.

    DeleteEsta instruccin borra un registro de la tabla interna.

    Sintaxis:

    DELETE [TABLE] [FROM wa] [WHERE ].

    Ejemplo:

    1. Registro actual de una tabla con cabecera: DELETE Camisa. 2. Registro de una tabla sin cabecera DELETE TABLE Miembro FROM Miembro.

    3. Utilizando una condicin. DELETE Camisa WHERE Talla EQ XL.

    ______________________________________________________________________________________Xioma Consulting

    60

  • Modify Se utiliza para actualizar los cambios realizados al registro de la cabecera en la tabla interna.

    Sintaxis:

    MODIFY .

    Collect El COLLECT asume que todos los valores alfanumricos de izquierda a derecha, hasta conseguir un valor numrico, son la llave de la tabla interna. Y empieza a acumular los valores numricos que se encuentran a la derecha de la llave. Si el registro no existe lo agrega a la tabla interna.

    Sintaxis:

    COLLECT .

    Ejemplo:

    DATA: BEGIN OF COMPANY OCCURS 0, NAME(20) TYPE C, SALES TYPE I, END OF COMPANY.

    COMPANY-NAME = 'Duck'.COMPANY-SALES = 10.COLLECT COMPANY.

    COMPANY-NAME = 'Tiger'.COMPANY-SALES = 20.COLLECT COMPANY.

    COMPANY-NAME = 'Duck'.COMPANY-SALES = 30.COLLECT COMPANY.

    DescribeLa funcin de esta instruccin es obtener el nmero de registros que contiene

    una tabla interna y almacenarlo en una variable. Sintaxis:

    DESCRIBE TABLE LINES .

    Ejemplo:

    DESCRIBE TABLE camisa LINES cant_reg.

    ______________________________________________________________________________________Xioma Consulting

    61

  • SORTSe utiliza SORT para ordenar una tabla interna indicndole que campos debe

    asumir como referencia para dicho ordenamiento.

    Sintaxis:

    SORT BY ... [DESCENDING] [ASCENDING].

    Ejemplo:

    SORT camisa.*Aqu al no indicarle criterios la ordena por todos los campos *exceptuando los de tipo: I, F y P de forma ascendente.

    SORT camisa BY talla precio.*Ordena TABLA por los campos CIUDAD y PAIS de forma descendente.

    SORT camisa BY talla ASCENDING color DESCENDING.*Ordena TABLA por los campos CIUDAD (Ascendentemente) y PAIS*(Descendentemente).

    LOOPEsta instruccin permite recorrer una tabla interna para acceder a todo su

    contenido o puede ser utilizado con ciertas condiciones para obtener informacin especfica.

    Sintaxis:

    LOOP AT [INTO ] [WHERE ] [FROM TO ]. . . .ENDLOOP.

    Ejemplos:

    LOOP AT ITAB INTO WA_ITAB. WRITE WA_ITAB-CAMPO1.ENDLOOP.

    LOOP AT ITAB INTO WA_ITAB WHERE CAMPO1 GT 1000. WRITE WA_ITAB-CAMPO1.ENDLOOP.

    LOOP AT ITAB INTO WA_ITAB FROM 1 TO 100. WIRTE WA_ITAB-CAMPO1.ENDLOOP.

    ______________________________________________________________________________________Xioma Consulting

    62

  • READEl Read nos permite acceder a un registro de la tabla interna a travs de un

    ndice o de una llave.

    Sintaxis:

    READ TABLE INTO [WITH TABLE KEY = ] [INDEX ].

    Ejemplos:

    READ TABLE ITAB INTO WA_ITAB WITH TABLE KEY CAMPO1 = 100 CAMPO2 = ALFA CAMPO3 = SY-DATUM.IF SY-SUBRC EQ 0. WRITE WA_ITAB-CAMPO4.ENDIF.

    READ TABLE ITAB INTO WA_ITAB INDEX 1.IF SY-SUBRC EQ 0. WRITE WA_ITAB-CAMPO1.ENDIF.

    ______________________________________________________________________________________Xioma Consulting

    63

  • Rangos

    Los rangos en ABAP se utilizan para definir un conjunto de valores que posteriormente se pueden utilizar como parte de un filtro en una consulta SQL, con SUBMIT, CHECK, IF o en el WHILE. Su utilizacin y estructura es idntica a la que se logra con la instruccin SELECT-OPTIONS.

    Al definir un rango se genera una tabla interna donde se almacenan los valores que definen el rango. Cada registro de la tabla se puede asumir como un subrango que define al rango.

    La estructura de la tabla es la siguiente:

    Campo DescripcinLOW Valor de la cota inferior, el tipo de este campo se

    define al definir el rango.HIGH Valor de la cota superior, el tipo de este campo se

    define al definir el rango.SIGN Indica que operador relacional (EQ,LT,BT,...) define

    el comportamiento del subrango. OPTION Indica si el subrango es inclusivo o exclusivo. Los

    valores son: I (Inclusivo) y E (exclusivo)

    Cuando se utiliza el campo SIGN diferente de BT (entre), el valor que se almacena en HIGH es ignorado, y la comparacin se realiza nicamente contra el campo LOW.

    Sintaxis: RANGES: FOR .

    Ejemplo:

    RANGES: FECHA FOR SY-DATUM.

    FECHA-LOW = 200510010. FECHA-HIGH = ''. FECHA-SIGN = 'EQ'. FECHA-OPTION = 'E'. APPEND FECHA.

    FECHA-LOW = 20051001. FECHA-HIGH = 20051201. FECHA-SIGN = 'BT'. FECHA-OPTION = 'I'. APPEND FECHA. IF SY-DATUM IN FECHA. WRITE:/'El da de hoy esta entre el 1ero de octubre', ' y el 1ero de diciembre.'. WRITE:/'Y no es 10 de octubre'. ENDIF.

    ______________________________________________________________________________________Xioma Consulting

    64

  • Tablas Transparentes

    Una tabla transparente es aquella tabla que, estando definida en el diccionario de datos, tiene una relacin uno a uno contra su equivalente en la base de datos (mismo nombre de tabla, mismos nombres de campos y mismo nmero de registros). El diccionario de datos puede ser definido como una interfase a datos (informacin, programas, pantallas, etc) que son independientes de la plataforma que se este usando, y que se encuentran almacenados en una base de datos (Oracle, SQL Server, Informix, etc). En SAP existen otros tipos de tablas en el diccionario como las Pooled tables y las Cluster tables.

    SE11/SE16 Existe en SAP dos formas de acceder al diccionario de datos, la transaccin SE16 que se utiliza para visualizar datos en las tablas del diccionario, y la SE11 que contiene todas las herramientas necesarias para manipular el diccionario de datos.

    Fig de la transaccin SE16.

    ______________________________________________________________________________________Xioma Consulting

    65

  • FIG. de la transaccin SE11.

    Creacin de una Tabla ZLa creacin se realiza utilizando la transaccin SE11 y seleccionando la

    opcin Tabla base de datos. Y oprimir el botn Crear. Es importante tomar en cuenta que al igual que en la mayora de las adiciones de nuevos objetos en el sistema, al crear una nueva tabla se le debe agregar la letra Z al inicio.

    ______________________________________________________________________________________Xioma Consulting

    66

  • Es necesario indicar una descripcin para la tabla, adems de especificar la clase de entrega con el valor A para indicar que la tabla es de tipo aplicacin (especficamente para almacenar datos maestros y movimientos).

    Seguidamente se deben definir los campos de la tabla transparente, para ello se selecciona la pestaa etiquetada como Campos.

    En esta parte se indican todos los campos que se utilizaran. Para agregar campos en una lnea determinada se puede utilizar el botn de agregar o en caso de que se quiera eliminar una lnea se selecciona y se oprime el botn de eliminar campo .

    La columna llamada Tipo campo sirve para indicar uno de los tipos ya definidos en el sistema, del cual tomar las caractersticas el campo de la tabla que se esta creando. Por ejemplo en el cuadro anterior se puede observar que el campo NOMBRE toma el tipo CHAR20 que es un tipo definido en el sistema como de 20 caracteres. Es posible definir nuevos tipos en el diccionario, o bien se puede utilizar el botn Elemento datos/Tipo directo para poder agregar una definicin personalizada.

    Una vez que se han definido todos los campos que tendr la tabla, es importante asignar cual es la tabla de referencia o verificacin que puedan tener valores como moneda y cantidad. En algunos casos, como la moneda, establecer esta relacin es obligatorio.

    ______________________________________________________________________________________Xioma Consulting

    67

  • En el cuadro anterior TCURC-WAERS hace referencia al tipo de moneda que utiliza el campo SALARIO.

    Una vez definido todo esto, hace es necesario definir la configuracin bsica en las opciones tcnicas de la tabla oprimiendo el botn correspondiente en la barra de herramientas. En esa opcin es necesario definir los parmetros de memoria lgicos. La clase de datos indica en el sistema administrador de bases de datos a que mbito fsico al que pertenece la tabla. En el caso de la seleccin APPL0, indica que pertenece al mbito de datos maestros. La categora de tamao se refiere a la cantidad de espacio que debe reservar por bloque la base de datos, esta opcin se considera dependiendo del volumen de informacin que se almacenar en la tabla.

    ______________________________________________________________________________________Xioma Consulting

    68

  • Para finalizar se almacenan estas modificaciones y se retorna a la pantalla principal, donde se puede realizar una verificacin de la definicin de la tabla

    utilizando el botn verificar . Para que la tabla pueda ser accesada en el sistema

    es necesaria activarla utilizando el botn de activacin (ste botn realiza la verificacin, guarda los cambios y finalmente activa el objeto en el sistema).

    TABLESSe utiliza para declarar las tablas del diccionario de datos que se desean

    utilizar en un programa.

    Sintaxis:TABLES: , , , .

    Ejemplo:

    TABLES: T001, MARA.

    ______________________________________________________________________________________Xioma Consulting

    69

  • InsertPara aadir registro a registro o varios registros a la vez. En los dos casos se

    puede usar la orden INSERT pero con diferentes opciones.

    REGISTRO A REGISTRO

    Sintaxis:

    INSERT INTO [CLIENT SPECIFIED] VALUES .

    VARIOS REGISTROS.Se puede guardar una tabla interna en una tabla de diccionario con una sola

    instruccin sin tener que hacer ningn ciclo.

    Sintaxis:

    INSERT FROM TABLE .

    DeleteCon sta instruccin se borran los registros de la tabla. Existen tres formas

    distintas para hacerlo.

    UN SOLO REGISTRO.

    Sintaxis:

    DELETE FROM .

    VARIOS REGISTROS

    Sintaxis:

    DELETE FROM [CLIENT SPECIFIED] WHERE .

    A TRAVS DE UNA TABLA INTERNA

    Sintaxis:

    DELETE tabla_dicc FROM TABLE tabla-int.

    ______________________________________________________________________________________Xioma Consulting

    70

  • UPDATE

    Actualiza una tabla del diccionario y puede ser utilizado de tres formas diferentes.

    UN SOLO REGISTROPara modificar un slo registro utilizamos la orden UPDATE.

    Sintaxis:

    UPDATE FROM .

    VARIOS CAMPOS A LA VEZ

    Para este campo utilizamos tambin la orden UPDATE, pero de diferente forma.

    Sintaxis:

    UPDATE [SET .. [WHERE ].

    En el SET se colocan los campos a modificar con sus nuevos valores, o sea, S1 a Sn pudindose desglosar de la siguiente manera:

    f = n

    Donde f es el nombre del campo a modificar y n es su nuevo valor.

    f = f + g

    Al campo f se le suma lo que vale g.

    f = f g

    Al campo f se le resta lo que vale g.

    ______________________________________________________________________________________Xioma Consulting

    71

  • Elementos de datos.

    Describen el significado de un campo independientemente de las tablas dnde se utilizan. Es decir, tienen un carcter semntico.

    El elemento de datos puede ser uno ya existente en el diccionario, uno creado por el usuario ( Z, Y ) o una subestructura. Si en el nombre del campo se utiliza .INCLUDE hace referencia a una substructura. El elemento de datos proporciona la informacin sobre la funcionalidad de este tipo de datos en el sistema, es decir indica qu se est almacenando en el campo que tiene este elemento de datos (por ejemplo un n de factura, un importe, etc). Los elementos de datos estn definidos por un dominio.

    Para crear un nuevo elemento de datos utilizamos la transaccin SE11, y colocamos el nombre del nuevo elemento de datos en la referencia del nuevo campo seguido de un doble click.

    Al oprimir el botn S se muestra la pantalla de creacin para el elemento de datos, ac se debe definir a que dominio pertenece el elemento de datos o si el elemento de datos hace referencia a un tipo instalado o a otro elemento de texto. Tambin es importante definir para el elemento de texto una descripcin y los denominadores de campo respectivos que permiten al sistema desplegar la descripcin de los campos del diccionario que utilicen el elemento de texto. Una vez definido todo esto se debe activar el elemento de texto para que este disponible.

    ______________________________________________________________________________________Xioma Consulting

    72

  • ______________________________________________________________________________________Xioma Consulting

    73

  • DominiosEl dominio es una agrupacin de propiedades formales de campos, tales como tipo de datos

    y cantidad de posiciones del campo. Define principalmente el mbito de valores para todos los campos que hacen referencia al dominio, de tal forma que al cambiar la definicin de un dominio todos los elementos de datos relacionados cambian automticamente.

    En la definicin de un dominio se puede introducir una rutina de conversin para los datos de este dominio. Con esto lo que se consigue es que la introduccin o salida de datos se hagan con un formato determinado a partir de otro formato de datos. Por ejemplo, el cdigo de los materiales tienen el dominio MATNR el cual se tienen las siguientes rutinas de conversin :

    CONVERSION_EXIT_MATN1_INPUT (para entrada)CONVERSION_EXIT_MATN1_OUTPUT (para salida)

    Estas rutinas almacenan los datos aadindoles ceros hasta completar 18 posiciones.

    La creacin de nuevos dominios se realiza a travs de la transaccin SE11.

    Se debe indicar para el dominio una descripcin, un tipo de datos (que proviene de los tipos de datos que existen en el sistema, una cantidad de posiciones. Tambin es posible indicar los atributos de salida, los cuales van a determinar la longitud que puede desplegar el dominio, si existe una rutina de conversin de datos, si es un valor numrico indicar si es posible que represente valores negativos y si es un valor de texto si es posible que contenga letras minsculas.

    ______________________________________________________________________________________Xioma Consulting

    74

  • En la pestaa de mbito se definen los valores posibles que puede tomar el dominio, o los rangos en los que puede estar. Igualmente puede hacerse referencia a una tabla que contenga esos valores.

    Al finalizar la definicin del rango, este debe ser activado para que pueda ser utilizado en el sistema.

    ______________________________________________________________________________________Xioma Consulting

    75

  • Vistas de Base de Datos

    Una vista es una visin lgica de una ms tablas, es decir, no se almacena fsicamente, sino que se deriva de una o ms tablas. Para crear una vista se utiliza la transaccin SE11.

    Siempre que sea posible es importante tomar campos que sean parte de la llave primaria para establecer la relacin entre las tablas, y siempre indicar el campo MANDT en tablas que son dependientes de mandante.

    Con el boton RELACIONES es posible invocar relaciones predefinidas en el sistema para las tablas que se hayan indicado.

    En la pestaa de campos de vista se han de seleccionar cuales son los campos que se desean mostrar y con que nombres han de aparecer.

    ______________________________________________________________________________________Xioma Consulting

    76

  • En la pestaa condiciones de seleccin se determinan una serie de condiciones bsicas para filtrar los resultados de la seleccin.

    ______________________________________________________________________________________Xioma Consulting

    77

  • Estructuras

    Las estructuras son objetos de datos globales en el sistema que estan formados por varios campos. Sin embargo no permiten el almacenamiento de informacin en la base de datos. Su creacin es a travs de la transaccin SE11.

    ______________________________________________________________________________________Xioma Consulting

    78

  • Las estructuras no son objetos dependientes de mandante, por lo que no es importante declarar el campo MANDT, igualmente no requieren de la definicin de llaves.

    Ayudas de Bsqueda

    Las ayudas de bsqueda permiten crear un dilogo de seleccin para un campo de la interfase de usuario donde los usuarios pueden seleccionar valores dentro de una lista de valores propuestos. La creacin se realiza a travs de la transaccin SE11, y se pueden crear ayudas de bsqueda elemental o compuestas (basadas en otras ayudas de bsqueda ya existentes).

    ______________________________________________________________________________________Xioma Consulting

    79

  • El campo mtodo de seleccin indica cual tabla del diccionario contiene los datos sobre los cuales se basa la propuesta. Los parametros indican los campos que deben salir y el orden en que han de ser desplegados. El check de import indica que el campo es relevante para la seleccin de la ayuda de bsqueda, el check de export indica que el parmetro es de salida y debe indicarse al menos uno. P.I indica el orden de las columnas en la ventana de seleccin y PosS el orden en la ventana de filtros.

    ______________________________________________________________________________________Xioma Consulting

    80

  • Vista de Actualizacin

    Las vistas de actualizacin se generan desde la transaccin SE11. Se debe seleccionar la tabla transparente a la que se le desea crear la vista de actualizacin, y en el men seleccionar Utilidades->Generador actualiz tab. Es importante que la tabla en las opciones de entrega permita la actualizacin y que con anterioridad se tenga claro cual es el grupo de funciones que se utilizar para generar la vista. La creacin de grupos de funciones ser explicada ms adelante.

    En las vistas de actualizacin es posible indicar un grupo de autorizaciones que permite brindar mayor seguridad, en la descripcin de este proceso se utilizara el grupo &NC& que indica que no se desea utilizar ningn grupo de autorizacin. Es necesario tambin definir el paquete donde se crear la vista. El tipo de actualizacin determinara si la modificacion o inclusin de nuevos registros se har en una o dos imgenes.

    ______________________________________________________________________________________Xioma Consulting

    81

  • Para realizar la edicin o inclusin de registros se debe utilizar la transaccin SM30. Y oprimir el botn Actualizar.

    ______________________________________________________________________________________Xioma Consulting

    82

  • En la siguiente imagen se muestra como se despliega el contenido de la tabla transparente. Los ttulos que aparecen sobre las columnas son derivados de los elementos de texto de cada campo. Si un campo no tuviese asignado un elemento