01 abap - diccionario de datos

Upload: serginho2626

Post on 01-Mar-2018

231 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/26/2019 01 ABAP - Diccionario de Datos

    1/89

    Int roducc in ABAP

  • 7/26/2019 01 ABAP - Diccionario de Datos

    2/89

    Das 1 y 2

    Diccionario de Datos

    Das 3 y 4

    Introduccin a Programacin ABAP

    Da 5

    Transacciones interactivas

    Da 6 y7

    Ejercicios

    Evaluacin

    AlcanceAlcance

  • 7/26/2019 01 ABAP - Diccionario de Datos

    3/89

    Que es ABAP?Advanced Business Aplication Programing.

    El ABAP/4 es un lenguaje de programacin de 4 generacin (4GL)orientado como su definicin especifica, al desarrollo de aplicaciones denegocio. Todos los mdulos disponibles en SAP han sido programados eneste lenguaje de programacin.Adems podemos escribir nuevas aplicaciones en ABAP/4 comocomplemento a las ya existentes o como apoyo a la configuracin delsistema.

    IntroduccinIntroduccin

  • 7/26/2019 01 ABAP - Diccionario de Datos

    4/89

    Qu es el entorno de Desarrollo ABAP?

    Es un conjunto integrado de herramientas de desarrollo, funciones,lenguaje de programacin, y diccionario de datos agrupados bajo elnombre genrico de ABAP.

    Qu son los objetos de Desarrollo?Son todos los componentes de una aplicacin ABAP: elementos deprogramas, cdigos de programas, transacciones, clases de mensaje,objetos de diccionario.

  • 7/26/2019 01 ABAP - Diccionario de Datos

    5/89

    Diccionario de Datos

  • 7/26/2019 01 ABAP - Diccionario de Datos

    6/89

    Qu es el Diccionario de Datos ABAP?

    Es la utilidad y el almacn central del entorno de desarrollo, y su funcin esla de proporcionar las definiciones de los datos y las relaciones de lainformacin usada en los mdulos y aplicaciones de R/3.

    Cul es la ut il idad de un diccionar io de datos?

    Permite crear, modificar, o borrar definiciones de los datos. Es al mismotiempo una gran fuente de informacin, no solo para el entorno si notambin para el usuario.

    Diccionario de datosDiccionario de datos

  • 7/26/2019 01 ABAP - Diccionario de Datos

    7/89

    Es un conjunto de registros que se almacenan de forma estructurada.

    Es un conjunto de datos organizados de tal forma que mediante unprograma se pueden obtener rpidamente subconjuntos de informacin.

    Tradicionalmente se componen de campos, registros y tablas.

    Diccionario de datosDiccionario de datos

  • 7/26/2019 01 ABAP - Diccionario de Datos

    8/89

    SAP y bases de datosSAP y bases de datos

    BASE DE DATOS

  • 7/26/2019 01 ABAP - Diccionario de Datos

    9/89

    Componentes del Dicc ionari o de datosComponentes del Dicc ionari o de datos

    Transaccin SE11

  • 7/26/2019 01 ABAP - Diccionario de Datos

    10/89

    Componentes del Diccionario de dat osComponentes del Diccionario de dat os

    Definicin TIPOSEstructura

    Tipo Tabla

    ElementoDatos

    Dominio

    Tablainterna

    Objetos DB

    VistaMantenimientoTablas

  • 7/26/2019 01 ABAP - Diccionario de Datos

    11/89

    DominioDominio

    Define las caractersticaspermanentes de un campo.

    mbito de valores.

  • 7/26/2019 01 ABAP - Diccionario de Datos

    12/89

    Elemento de dat osElemento de dat os

    Asignacin de dominio.

    Generalidades para el manejo del campo.

    Descripcin.

  • 7/26/2019 01 ABAP - Diccionario de Datos

    13/89

    Componente bsico de tablas y estructuras.

    Asignacin de elemento de datos.

    CampoCampo

  • 7/26/2019 01 ABAP - Diccionario de Datos

    14/89

    Reflejo en la base de datos.

    Conjuncin de campos.

    Componente bsico de la base de datos.

    Tabla t ransparent eTabla t ransparent e

  • 7/26/2019 01 ABAP - Diccionario de Datos

    15/89

    Generador de mant enimientoGenerador de mant enimiento

    Herramienta que permite la generacin de pantallas para elmantenimiento bsico de una tabla y/o vista

  • 7/26/2019 01 ABAP - Diccionario de Datos

    16/89

    Ayudas de bsquedaAyudas de bsqueda

    Son las fuentes de informacin para los

    matchcodes.

  • 7/26/2019 01 ABAP - Diccionario de Datos

    17/89

    EstructurasEstructuras

    reas de trabajo dentro de programas.

    No existen en la base de datos.

  • 7/26/2019 01 ABAP - Diccionario de Datos

    18/89

    Tipo t ablaTipo t abla

    Son estructuras bidimensionales.

    No existen dentro del manejador de base de datos.

    Son una forma fija de tablas de uso en desarrollos.

    Se crean con referencia a una estructura o una tabla.

  • 7/26/2019 01 ABAP - Diccionario de Datos

    19/89

    VistaVista

    Es la subconjuncin de una o varias tablas. Se crea con referencia a tablas planas.

    Existe su reflejo dentro del manejador de la base de datos.

  • 7/26/2019 01 ABAP - Diccionario de Datos

    20/89

    Son cdigos de ABAP que definen objetos que despus se puedenutilizar dentro de los desarrollos como libreras de datos.

    Grupos de t iposGrupos de t ipos

  • 7/26/2019 01 ABAP - Diccionario de Datos

    21/89

    Tienen por finalidad controlar el acceso concurrente a los datos. El tipo debloqueo puede ser:

    Compartido (tipo S)

    Exclusivo (tipo E)

    Exclusivo no acumulado (tipo X)

    Objetos de bloqueoObjetos de bloqueo

  • 7/26/2019 01 ABAP - Diccionario de Datos

    22/89

    Preguntas

  • 7/26/2019 01 ABAP - Diccionario de Datos

    23/89

    Ejercicios

  • 7/26/2019 01 ABAP - Diccionario de Datos

    24/89

    Programacin ABAP

  • 7/26/2019 01 ABAP - Diccionario de Datos

    25/89

    Programas ABAP

    Reporting

    Programacin de dialogo

    Otras aplicaciones (Interfaz, programas conexin)

    Programas ABAPProgramas ABAP

  • 7/26/2019 01 ABAP - Diccionario de Datos

    26/89

    Para crear un programa se pueden utilizar 2 transacciones:

    Editor ABAP SE38

    Entorno de desarrolloEntorno de desarrollo

    Navegador de objetos SE80

  • 7/26/2019 01 ABAP - Diccionario de Datos

    27/89

    Tipos de instrucciones

    Declarativos

    Eventos

    Control

    Operativos

    Tipos de Datos

    Campos de base de datos

    Literales

    Variables internas

    Programas ABAPProgramas ABAP

  • 7/26/2019 01 ABAP - Diccionario de Datos

    28/89

    Se pueden utilizar

    Tipos de dat osTipos de dat os

    TIPOS DESCRIPCIONLONG. POR

    DEFECTO

    POSIBLE

    LONGITUD

    VALOR

    INICIAL

    C Texto 1 1-32000 Espacios

    F Punto flotante 8 8 0

    I Entero 4 4 0

    N Texto numrico 1 1-32000 0000

    P Nmero empaquetado 8 1-16 0

    X Hexadecimal 1 1-29870 x00D Fecha YYYYMMDD 8 8 00000000

    T Hora HHMMSS 6 6 000000

  • 7/26/2019 01 ABAP - Diccionario de Datos

    29/89

    Definicin

    Data

    Types

    Constants

    Tables

    Parmetros

    Parameters

    Select-options

    Selection-screen

    Instrucciones Declara t ivasInstrucciones Declara t ivas

  • 7/26/2019 01 ABAP - Diccionario de Datos

    30/89

    Se declaran variables del report con la sentencia DATA. Si no se indica locontrario las variables sern del tipo carcter (Texto) y la longitud 1.

    DATAg_test.

    Con el parmetro TYPE podemos utilizar otros tipos de datos.DATAl_num_car(5)TYPEn.

    DATAl_numero(2)TYPEp.

    DATAl_fecha_limiteTYPEd.

    Con el parmetro LIKE podemos declarar una variable con los mismosatributos de longitud y tipo que una variable de base de datos

    DATAl_acreedorLIKElfa1-lifnr.

    Con el parmetro VALUE podemos inicializar la variable con un valordistinto al que tiene por defecto.

    DATAl_bukrsTYPEchar4VALUE1000.

    VariablesVariables

  • 7/26/2019 01 ABAP - Diccionario de Datos

    31/89

    Un registro de datos es un conjunto de campos relacionados lgicamenteen una estructura.

    TYPES:BEGIN OFproveedor,

    lifnrLIKElfa1-lifnr,

    name1LIKElfa1-name1,

    ciudadTYPEchar20,

    fechaTYPE d,END OFproveedor.

    Tambin usaremos la instruccin DATA para declarar tablas internasDATAit_proveedorTYPE TABLE OFproveedor.

    DATAit_lfa1TYPE TABLE OFlfa1.

    Posteriormente el acceso a los campos del registro de datos ser medianteun espacio de trabajo del mismo tipo de la tabla:

    DATAwa_lfa1TYPElfa1.

    WRITEwa_lfa1-lifnr.

    VariablesVariables

  • 7/26/2019 01 ABAP - Diccionario de Datos

    32/89

    Tambin se realizan las declaraciones que hacen referencia a las tablasinternas del Diccionario de datos mediante la sentencia TABLES.

    TABLESlfa1.

    La instruccin CONSTANTS se utiliza para declarar datos constantes en el

    programa.CONSTANTSc_periodTYPEnumc4VALUE2012.

    VariablesVariables

  • 7/26/2019 01 ABAP - Diccionario de Datos

    33/89

    Para declarar los parmetros de la interfaz del usuario de un programa seutiliza la sentencia PARAMETERS.

    Parmetro de captura:PARAMETERSp_lifnrTYPEchar10.

    SELECT-OPTIONSp_lifnrFORlfa1-lifnr.

    Parmetro de opciones:PARAMETERSp_opt1RADIOBUTTON GROUPgpo1DEFAULT'X'.

    Casilla de seleccin:PARAMETERSp_testAS CHECKBOX.

    Lista de valores:PARAMETERSp_listTYPEzlistAS LISTBOX

    VISIBLE LENGTH20.

    ParmetrosParmetros

  • 7/26/2019 01 ABAP - Diccionario de Datos

    34/89

    La sentencia SELECTION-SCREEN se usa para cambiar la apariencia dela pantalla de seleccin. Permite colocar marcos, bloques, reorganizar losdistintos elementos.

    BEGIN OF BLOCK bloque : Sirve para crear bloques de elementos

    de pantalla (para agruparlos), los cuales se pueden anidar. La opcin WITHFRAME se usa para crear un marco visible que engloba el bloque.Con TITLE se aade un ttulo identificativo en el marco creado. El bloquese cierra con END OF BLOCK, poniendo el mismo nombre para el bloque

    SELECTION-SCREEN BEGIN OF BLOCKblk1WITH FRAME TITLE text-t01.

    PARAMETERSp_msg1RADIOBUTTON GROUPgpo1DEFAULT'X'.

    PARAMETERSp_msg2RADIOBUTTON GROUPgpo1.

    SELECTION-SCREEN END OF BLOCKblk1.

    Personali zar aparienciaPersonali zar apariencia

  • 7/26/2019 01 ABAP - Diccionario de Datos

    35/89

    BEGIN OF LINE y END OF LINE: Estas dos opciones engloban unbloque de sentencias declarativas (PARAMETERS, SELECT-OPTIONS y/o SELECTION-SCREEN) que aparecern en la misma lneade la pantalla de seleccin, en lugar de en columna.

    SELECTION-SCREEN:BEGIN OF LINE,

    COMMENT1(15)txparam.

    PARAMETERSp_paramTYPE cLENGTH20.

    SELECTION-SCREEN:COMMENT40(40)p_descr,

    END OF LINE.

    SKIP [ n ]: Produce n lneas en blanco (una por defecto).SELECTION-SCREEN SKIP2.

    Personali zar aparienciaPersonali zar apariencia

  • 7/26/2019 01 ABAP - Diccionario de Datos

    36/89

    FUNCTION KEY se usa para crear iconos en el men o barra deherramientas. Se pueden activar hasta 5 de ellos. Se decide cul hapulsado el usuario chequeando el campo del sistema SY-UCOMM en eleventoAT SELECTION-SCREEN.

    Varaibles requeridas:TYPE-POOLS icon.TABLESsscrfields.

    DATAbtn_functionTYPEsmp_dyntxt.

    SELECTION-SCREEN:FUNCTION KEY1.

    INITIALIZATION.btn_function-icon_id =icon_CANCEL.

    btn_function-quickinfo='Cancelar'.

    btn_function-icon_text='Cancelar'.

    sscrfields-functxt_01=btn_function.

    Personali zar aparienciaPersonali zar apariencia

  • 7/26/2019 01 ABAP - Diccionario de Datos

    37/89

    PUSHBUTTON : Sirve para crear iconos en la propia pantalla deseleccin. Con la opcin USER-COMMAND se le asocia un cdigo defuncin.

    SELECTION-SCREEN:BEGIN OF LINE,

    PUSHBUTTON2(10)btn_pushUSER-COMMANDfcode,

    POSITION1.

    SELECTION-SCREEN END OF LINE.

    COMMENT : Permite incluir comentarios en la pantalla de seleccin(textos, labels).

    SELECTION-SCREEN: BEGIN OF LINE,

    COMMENT 40(40) p_descr,

    END OF LINE.

    ULINE : Permite dibujar lneas horizontales (con subrayados). Sepuede asociar la lnea a un grupo de modificacin (como el resto deelementos de la pantalla de seleccin

    SELECTION-SCREEN ULINE.

    Personali zar AparienciaPersonali zar Apariencia

  • 7/26/2019 01 ABAP - Diccionario de Datos

    38/89

    Eventos

    Initialization

    At selection-screen

    Start-of-selection

    Instrucc iones de EventosInstrucc iones de Eventos

  • 7/26/2019 01 ABAP - Diccionario de Datos

    39/89

    El evento INITIALIZATION se ejecuta siempre antes de que aparezca lapantalla de seleccin, una sola vez. Se usa para inicializar parmetros ycriterios de seleccin.

    PARAMETERSp_fechaTYPEdDEFAULTsy-datum.

    INITIALIZATION.

    ADD1TOp_fecha.

    AT SELECTION-SCREEN es un bloque de proceso que se activa mientrasse procesa la pantalla de seleccin, o bien despus de sta. Segn susparmetros, se activar cuando el usuario realice cierta accin en lapantalla de seleccin.

    AT SELECTI ON- SCREEN.I F p_bukr s I S NOT I NI TI AL.

    MOVE 1 TO l _val i dat e.ENDI F.

    EventosEventos

  • 7/26/2019 01 ABAP - Diccionario de Datos

    40/89

    START-OF-SELECTION.

    Bloque de proceso que se ejecutar tras procesar la pantalla de seleccin,y antes de acceder a las tablas de la base de datos lgica. En este eventotiene lugar la seleccin de datos por parte del usuario y la ejecucin de lafuncionalidad principal del programa.

    START-OF-SELECTION.

    WRITEp_fecha.

    EventosEventos

  • 7/26/2019 01 ABAP - Diccionario de Datos

    41/89

    Instrucciones OperativasInstrucciones Operativas

    Asignacin de valores

    MOVE

    MOVE-CORRESPONDING

    CLEAR

    Operaciones Aritmticas ADD TO , SUBSTRACT FROM,

    MULTIPLY BY y DIVIDE BY

    DIV, MOD, STRLEN.

    Procesamiento de Textos

    SHIFT REPLACE

    TRANSLATE

    SEARCH

    CONCATENATE

    CONDENSE

    Presentacin de datos WRITE

    Variables del Sistema Estructura SYST

  • 7/26/2019 01 ABAP - Diccionario de Datos

    42/89

    La instruccin MOVE realiza un transporte del contenido una variable aotra.

    MOVEl_var1TOl_var2.

    Tambin es posible referenciar o asignar valores a una parte de la variable

    utilizando el offset.VARIABLE+offset(longitud)DATA: l _var 1 TYPE char 7 VALUE ' ABCDEFG' ,

    l _var 2 TYPE char 7.MOVE L_var 1+2( 4) TO var2.

    Resultado: CDEF.

    Asignacin de valoresAsignacin de valores

  • 7/26/2019 01 ABAP - Diccionario de Datos

    43/89

    La instruccin MOVE-CORRESPONDING realiza el contenido de unaestructura a otra de aquellos campos que tengan idntico nombre.

    MOVE- CORRESPONDI NG wa_l f a1 TO wa_t bl _r epor t .

    Para inicializar las variables utilizamos la sentencia CLEAR.CLEAR: l _count ,

    wa_l f a1,i t _ l f a1[ ] .

    Asignacin de valoresAsignacin de valores

  • 7/26/2019 01 ABAP - Diccionario de Datos

    44/89

  • 7/26/2019 01 ABAP - Diccionario de Datos

    45/89

    Para realizar un desplazamiento del contenido de un campo utilizamosSHIFT.

    SHIFT BY PLACES

    Variantes:SHIFTcampo BY2 PLACES

    Ej empl o: campo = HOLAResul t ado: campo = LA

    DATAcampo TYPECHAR10.

    SHIFTcampoRIGHT DELETING TRAILINGspace.

    Ej empl o: campo = ABCDE Resul t ado: campo = ABCDE

    SHIFTcampoLEFT DELETING LEADINGspace.

    Ej empl o: campo = ABCDE

    Resul t ado: campo = ABCDE

    Procesamient o de TextosProcesamient o de Textos

  • 7/26/2019 01 ABAP - Diccionario de Datos

    46/89

    Podemos reemplazar el contenido de ciertos campos con la instruccinREPLACE.

    REPLACE WITH INTO.

    Existe otra instruccin de sustitucin, TRANSLATE.

    Convierte a MaysculasTRANSLATE TO UPPER CASE.

    Convierte a MinsculasTRANSLATE TO LOWER CASE.

    La instruccin SEARCH busca una cadena dentro de un campo o una tabla.SEARCH/ FOR.

    Procesamient o de TextosProcesamient o de Textos

  • 7/26/2019 01 ABAP - Diccionario de Datos

    47/89

    Para borrar los blancos de una cadena utilizaremos CONDENSE.CONDENSE [NO-GAPS].

    Esta instruccin borra todos los blancos que se encuentren comenzando lacadena por la izquierda y en caso de encontrar series de blancos intermedios

    dejar nicamente uno por serie La clusula NO-GAPS borra todos los blancos estn donde estn.

    Para unir el contenido de dos o mas campos en otra variable se utiliza lasentencia CONCATENATE.

    CONCATENATE campo1 campo2 campoNINTO campo_texto

    [SEPARATED BY SPACE].

    La clusula SPACEpuede ser sustituida por otro carcter separador de loscontenidos. SEPARATED BY ,.

    Procesamient o de TextosProcesamient o de Textos

  • 7/26/2019 01 ABAP - Diccionario de Datos

    48/89

    Element os de Textos y MensajesElement os de Textos y Mensajes

    Elementos de Textos

    Mensajes

    Informacin

    Error

    Advertencia

    Dump

  • 7/26/2019 01 ABAP - Diccionario de Datos

    49/89

    Los elementos de texto pueden ser ttulos de reports, cabeceras dereports, textos de seleccin y textos numerados.

    Con los Ttulos y Cabeceras podemos tratar el ttulo, cabeceras dereport y cabeceras de columna que saldrn por pantalla e impresora.

    Con los Textos de seleccin trataremos los comentarios queacompaan a los parmetros del tipo PARAMETERS o SELECT-OPTIONS.

    Con los Textos numerados podemos utilizar constantes de tipo textosin necesidad de declararlas en el cdigo del programa. Los nombres delas constantes sern TEXT-nnn, donde nnn es un nmero de tres dgitos.Adems podemos mantener los textos numerados en varios idiomas.

    Elementos de TextosElementos de Textos

  • 7/26/2019 01 ABAP - Diccionario de Datos

    50/89

    Para visualizar un mensaje utilizamos la sentencia MESSAGE.MESSAGE texto TYPE t .

    Donde T es el tipo de mensaje:

    A = Cancelacin.

    E = Error. Es necesaria una correccin de los datos.I = Informacin. Mensaje meramente informativo. El proceso

    continuar con un ENTER.

    S = Confirmacin. Informacin en la pantalla siguiente.

    W = Warning. Nos da un aviso. Podemos cambiar los datos o

    pulsar ENTER para continuar.X = Dump

    Podemos acompaar los mensajes de parmetros variablesMESSAGE I D SY- MSGI DTYPE SY- MSGTY NUMBER SY- MSGNO

    WI TH SY- MSGV1 SY- MSGV2 SY- MSGV3 SY- MSGV4.

    MensajesMensajes

  • 7/26/2019 01 ABAP - Diccionario de Datos

    51/89

    Condiciones

    IF..

    ELSEIF..ELSE..

    ENDIF.

    CASE..

    WHEN.. OTHERWISE..ENDCASE.

    CHECK.

    Instrucciones de ControlInstrucciones de Control

  • 7/26/2019 01 ABAP - Diccionario de Datos

    52/89

    Las expresiones lgicas tpicas son de la forma

    Operando1 OperadorOperando2

    Operadores para todo tipo de datos:

    EQ , = (Igual)

    NE , (Diferente)LT , < (Menor que)

    LE , (Mayor que)

    GE , >= (Mayor o igual que)

    Expresiones lgicas y OperadoresExpresiones lgicas y Operadores

  • 7/26/2019 01 ABAP - Diccionario de Datos

    53/89

    Para tipos alfanumricos y numricos:

    CO (contiene slo ...)

    CN (no contiene slo ...)

    CA (contiene algn ...)

    NA (no contiene algn ...)

    CS (contiene el string ...)NS (no contiene el string ...)

    CP (contiene el patrn ...)

    NP (no contiene el patrn ...).

    Operaciones lgicas especiales:Rango: Operando1 BETWEEN Operando2 AND Operando3.

    OperadoresOperadores

  • 7/26/2019 01 ABAP - Diccionario de Datos

    54/89

    Valor inicial:

    Operando IS INITIAL.

    Para saber si el valor de operando es el inicial por defecto o no. Paranmeros el valor inicial es 0; para caracteres y cadenas es SPACE

    IFl_bukrsIS INITIAL.

    Criterio de seleccin:

    Operando IN criterio_seleccin.

    Para saber si el valor de operando est dentro o no del criterioespecificado. Muy usado en los CHECK y en los SELECT ... WHERE ... El

    criterio de seleccin recoge la informacin que el usuario ha introducido enun SELECT-OPTIONCHECK l _mont h I N p_per i od.

    OperadoresOperadores

  • 7/26/2019 01 ABAP - Diccionario de Datos

    55/89

    Las sentencias IF..., ELSE, ENDIF... Son utilizadas comprobar si secumple una condicin antes depasar a la siguiente instruccin.

    IFl_importEQ100.

    ADDl_importTOg_total.

    ELSEIFl_import EQ50.

    SUBTRACTl_importFROMg_total.

    ELSE.CONTINUE.

    ENDIF.

    Las sentencias CASE se utilizan para comprobar si se cumple unacondicin mediante un bloque de instrucciones.

    CASE l _i mpor t .

    WHEN 100.ADD l _i mpor t TO g_t ot al .

    WHEN 50 .SUBTRACT l _i mpor t FROM g_total .

    WHEN OTHERS.CONTI NUE.

    ENDCASE.

    CondicionesCondiciones

  • 7/26/2019 01 ABAP - Diccionario de Datos

    56/89

    Instrucciones de ControlInstrucciones de Control

    Control

    DO..ENDDO.

    WHILE..ENDWHILE.

    CONTINUE

    EXIT

  • 7/26/2019 01 ABAP - Diccionario de Datos

    57/89

    La instruccin DO permite ejecutar un bloque de instrucciones tantas vecescomo se especifique.

    DO TI MES.. . .

    ENDDO.

    En la variable del sistema SY-INDEX tendremos un contador del nmerode repeticiones.

    La instruccin WHILE permite ejecutar un bloque de instrucciones mientrasse cumpla una condicin.

    WHI LE .. . .

    ENDWHI LE.

    Instrucciones de ControlInstrucciones de Control

  • 7/26/2019 01 ABAP - Diccionario de Datos

    58/89

  • 7/26/2019 01 ABAP - Diccionario de Datos

    59/89

    Tablas InternasTablas Internas

    Manejo de tablas internas

    Append

    Collect

    Loop AT..EndLoop

    Read table

    Insert Modify

    Delete

  • 7/26/2019 01 ABAP - Diccionario de Datos

    60/89

    La utilidad principal de las tablas internas es guardar una coleccin deregistros de datos de la misma estructura en memoria sin necesidad deacceder a la base de datos y poder realizar operaciones diversas con esteconjunto de informacin.

    Declaracin de tablas internas y lneas de encabezado o rea de trabajo:

    DATAit_lfa1TYPE TABLE OFlfa1.

    DATAwa_lfa1TYPElfa1.

    Tablas internasTablas internas

  • 7/26/2019 01 ABAP - Diccionario de Datos

    61/89

    APPEND Aade un registro a una tabla interna con los valores quetengamos en el rea de trabajo.

    APPENDwa_lfa1TOit_lfa1.

    COLLECT Aade o suma la lnea de cabecera. Sumar los campos detipo P,F,I, si existe una lnea en la tabla con campos idnticos (tipo C) a losdel rea de trabajo.

    COLLECTwa_lfa1INTOit_lfa1.

    El problema de esta instruccin es que es bastante lenta. Se puede sustituirpor las instrucciones READ e INSERT o MODIFY.

    Llenado de TablasLlenado de Tablas

  • 7/26/2019 01 ABAP - Diccionario de Datos

    62/89

    Podemos llenar una tabla interna con el contenido de una tabla de base dedatos. Siempre que la tabla interna tenga la misma estructura que la tabla debase de datos.

    SELECT*APPENDING TABLEit_lfa1

    FROMlfa1.

    [WHERE ][ORDER BY ]

    [GROUP BY ]

    Llenado de TablasLlenado de Tablas

  • 7/26/2019 01 ABAP - Diccionario de Datos

    63/89

    Podemos recorrer una tabla interna con la instruccin LOOP ... ENDLOOP.

    LOOP ATit_lfa1INTOwa_lfa1.

    ....

    ENDLOOP.

    Podemos restringir el proceso de una tabla con una condicin WHERE.

    Si no existe ningn registro de la tabla que cumpla la condicinespecificada en la clusula WHERE, la variable del sistema SY-SUBRCser distinta que 0.

    Dentro del LOOP la variable SY-TABIX contiene el ndice de la entradaque est procesando en ese momento

    Procesamient o de TablasProcesamient o de Tablas

  • 7/26/2019 01 ABAP - Diccionario de Datos

    64/89

    Podemos buscar un registro concreto en una tabla sin necesidad derecorrerla a travs de la sentencia READ TABLE.

    READ TABLEit_lfa1INTOwa_lfa1

    WITH KEYlifnr='10001'.

    El resultado de la bsqueda lo tendremos en SY-SUBRC.Si SY-SUBRC = 0 la bsqueda ha sido positiva.

    Si SY-SUBRC 0 no ha encontrado el registro solicitado.

    Es posible una bsqueda an ms rpida con una bsqueda binariaadicionando la sentencia BI NARY SEARCH.

    Una lectura directa de un registro de la tabla la podemos realizar con:

    READ TABLEit_lfa1INTOwa_lfa1

    INDEX 4.

    Lectura de Tabla Int ernaLectura de Tabla Int erna

  • 7/26/2019 01 ABAP - Diccionario de Datos

    65/89

    Una vez llena la tabla interna tenemos la posibilidad de modificar los datoscon una serie de sentencias ABAP/4.

    MODIFY: Podemos sobreescribir el contenido de la entrada con elcontenido de la lnea de cabecera.

    MODIFYit_lfa1FROMwa_lfa1.

    Variantes:I NDEX. Para especificar la lnea en la tabla que se desea

    modificar

    TRANSPORTI NG . Especifica los campos que se requierenafectar con la modificacin.

    MODIFYit_lfa1FROMwa_lfa1INDEX3TRANSPORTINGname1.

    Modifi cac in de Tabla Int ernaModifi cac in de Tabla Int erna

  • 7/26/2019 01 ABAP - Diccionario de Datos

    66/89

    La sentencia INSERT aade una nueva entrada a la tabla con el contenidode la lnea de cabecera, en la posicin indicada .

    INSERTwa_lfa1INTOit_lfa1INDEX1.

    Para eliminar una entrada de la tabla utilizamos la sentencia DELETE.

    DELETEit_lfa1INDEX1.

    La sentencia FREE Libera el espacio ocupado por una tabla en memoria.

    FREEit_lfa1.

    Modifi cac in de Tabla Int ernaModifi cac in de Tabla Int erna

  • 7/26/2019 01 ABAP - Diccionario de Datos

    67/89

    Para clasificar una tabla interna utilizamos SORT.

    SORT BY .....

    SORTit_lfa1BYlifnr.

    Si no se indica lo contrario la ordenacin por defecto es ascendente.SORT ...ASCENDING. o DESCENDING

    Para obtener el total de registros de una tabla interna:

    DESCRIBE TABLEit_lfa1LINESl_count.

    Trat amient o Tablas InternasTrat amient o Tablas Internas

  • 7/26/2019 01 ABAP - Diccionario de Datos

    68/89

    Tablas del Dicci onario de datosTablas del Dicci onario de datos

    Manejo de tablas fsicas Select

    Insert

    Modify

    Delete

  • 7/26/2019 01 ABAP - Diccionario de Datos

    69/89

    ABAP/4 tiene un subconjunto de sentencias SQL para su aplicacin sobretablas de la base de datos SAP.

    Estas son:SELECT, INSERT, UPDATE, MODIFY, DELETE

    Adems de las variables del sistema:

    SY-SUBRC: Cdigo de retorno de una operacin.

    SY-DBCNT: Cantidad de registros afectados por la operacinprocesada.

    Instrucciones SQL de ABAPInstrucciones SQL de ABAP

  • 7/26/2019 01 ABAP - Diccionario de Datos

    70/89

    La sentencia SELECT ser la instruccin fundamental para leerinformacin de la base de datos.

    Lectura de un nico registro :SELECT SINGLE*INTOwa_lfa1

    FROMlfa1

    WHERElifnrEQ'10001'.

    Como realizamos la bsqueda de un registro, en la condicin slopodremos utilizar la igualdad y el operador AND, ya que especificaremostoda la clave del registro.

    Si SY-SUBRC = 0 Registro encontrado. Resultado en rea de trabajo.

    Si SY-SUBRC = 4 No existe el registro buscado.

    Selecc in de regist rosSelecc in de regist ros

  • 7/26/2019 01 ABAP - Diccionario de Datos

    71/89

    Podemos leer una tablas de base de datos y simultneamente llenar unatabla interna con el resultado de la lectura.

    SELECT*INTO TABLEit_lfa1

    FROMlfa1.

    ( WHERE )

    Si queremos que respete los registros que tena la tabla interna antes derealizar el SELECT tendremos que utilizar :

    SELECT*APPENDING TABLEit_lfa1

    FROMlfa1.

    ( WHERE )

    Selecc in de regist rosSelecc in de regist ros

  • 7/26/2019 01 ABAP - Diccionario de Datos

    72/89

    La sentencia INSERT permite introducir registros sencillos o el contenidode una tabla interna en una base de datos SAP.

    INSERT INTOlfa1VALUESwa_lfa1.

    INSERTlfa1FROM TABLEit_lfa1.

    Si SY-SUBRC = 0 Registro insertado.

    Si SY-SUBRC > 0 La clave del registro que queramos insertar ya exista en latabla.

    Si existe algn registro en la base de datos con clave igual aalgn registro de la tabla Interna, se producir un error de

    ejecucin del programa.

    Insertar registrosInsertar registros

  • 7/26/2019 01 ABAP - Diccionario de Datos

    73/89

    La sentencia UPDATE permite modificar el contenido de uno o variosregistros y desde una tabla interna.

    UPDATElfa1FROMwa_lfa1.

    UPDATElfa1FROM TABLEit_lfa1.

    Si queremos modificar el contenido de ms de un registro a la vez:UPDATElfa1SETland1='PAN'WHEREland1EQMX'.

    Si el sistema no puede actualizar un registro, el proceso no finalizar sino

    que continuar con el siguiente registro.Si SY-SUBRC = 0 Todos los registros modificados.Si SY-SUBRC = 4 No todos los registros han sido modificados.En SY-DBCNT Tendremos la cantidad de registros modificados.

    Act ualizar regist rosAct ualizar regist ros

  • 7/26/2019 01 ABAP - Diccionario de Datos

    74/89

  • 7/26/2019 01 ABAP - Diccionario de Datos

    75/89

    Para realizar borrados de datos se aplica la sentencia DELETE.DELETElfa1FROMwa_lfa1.

    Borrar el registro que especifiquemos en el rea de trabajo.

    Para borrar ms de un registro (todos los que cumplan una ciertacondicin).

    DELETE FROMlfa1WHEREland1 EQ PAN.

    Podemos borrar de BDD todos los registros de una tabla interna.

    DELETElfa1FROM TABLEit_lfa1.

    Si SY-SUBRC = 0 Todos los registros han sido borrados.

    Si SY-SUBRC = 4 No todos los registros han sido borrados.

    En SY-DBCNT Tendremos la cantidad de registros borrados.

    Eliminar registrosEliminar registros

  • 7/26/2019 01 ABAP - Diccionario de Datos

    76/89

    RutinasRutinas

    Subrutinas Funciones

  • 7/26/2019 01 ABAP - Diccionario de Datos

    77/89

    Son unidades de modularizacin que permiten segregar un grupo de lineasde cdigo del resto, y lo ejecutamos en un momento determinado.

    Existen 3 tipos de subrutinas o subprogramas.

    Internas : El Subprograma y la llamada a ste estn en el mismo

    programa. Externas : El Subprograma y la llamada a ste estn en programas

    distintos.

    Biblioteca de funciones (Mdulos de funcin) : Funciones externas al

    programa con interface de llamada claramente definido.

    SubrutinasSubrutinas

  • 7/26/2019 01 ABAP - Diccionario de Datos

    78/89

    Llamada a un procedimiento o subprograma.PERFORM.

    Declaracin de una Rutina:FORM

    .... Subprograma.

    ENDFORM.

    El programa principal y el procedimiento se podrn comunicar mediante

    parmetros.

    PERFORMUSINGvar1 var2 ...

    FORM USINGvar1 var2 ...

    .... Subprograma.

    ENDFORM.

    SubrutinasSubrutinas

  • 7/26/2019 01 ABAP - Diccionario de Datos

    79/89

    Tambin es posible pasar como parmetro tablas internas.PERFORM TABLES USING .

    FORM TABLES USING .

    ENDFORM.

    Con la clusula STRUCTURE podemos pasar la estructura de una tabla,

    entonces podemos acceder a campos de una tabla pasada comoparmetro con :

    PERFORM TABLES USING .

    FORM TABLES STRUCTURE

    USING .

    ENDFORM.

  • 7/26/2019 01 ABAP - Diccionario de Datos

    80/89

    Los mdulos de funcin son mdulos especiales guardados en unalibrera central, y agrupados por la funcin que realizan. Principalmente se

    caracterizan por un interface definido y porque realizan tratamiento deexcepciones.

    Donde en el EXPORTING especificamos los parmetros de entrada, enel IMPORTING(opcional) el resultado o retorno de la funcin y enTABLES(opcional) las tablas que se utilizan como parmetros.

    Los mdulos de funcin tambin se caracterizan por realizar untratamiento de excepciones. En el interface de los mdulos de funcin se

    indican los valores de excepciones para el retorno del mdulo, queposteriormente con el SY-SUBRC se pueden comprobar.

    El cdigo de la funcin puede activar excepciones mediante lasinstrucciones: MESSAGE.... RAISING.

    M dulo de FuncionesM dulo de Funciones

  • 7/26/2019 01 ABAP - Diccionario de Datos

    81/89

    Preguntas

  • 7/26/2019 01 ABAP - Diccionario de Datos

    82/89

    Programacin Interact iva

  • 7/26/2019 01 ABAP - Diccionario de Datos

    83/89

    La programacin Interactiva esta conformada por: Una pantalla (dynpro)

    Procesamiento lgico ABAP/4 (ModulPool)

    Una transaccin para la ejecucin del proceso lgico.

  • 7/26/2019 01 ABAP - Diccionario de Datos

    84/89

    En la programacin Interactiva se trabaja con ModulPool, el cual es unprograma ABAP conocido como tipo M y controla el flujo de la transaccin yrealiza las acciones necesarias para cumplir la funcionalidad de latransaccin. Estos programas solo permiten sentencias INCLUDE. Almenos existirn 3 Includes:

    Un TOP para las variables globales, tablas, , etc.

    Un PBO para los procesos PBO (Process Before Output:Procesos que se ejecutan siempre antes de que la pantalla seadesplegada.

    Un PAI para los procesos PAI(Process After Input: Procesos

    que se ejecutan una vez que el usuario ha elegido la accin arealizar.

    ModulPoolModulPool

  • 7/26/2019 01 ABAP - Diccionario de Datos

    85/89

    Una dynpro se define como un conjunto de elementos que tiene porfinalidad obtener interfaces para que el usuario realice diversasoperaciones.

    El Screen Painter y el Menu Painter se utilizan para crear y disearplantillas de pantalla y programas de pantalla.

    Objetos disponibles: Campo de Texto

    Campo de Entrada / Salida

    Casilla de seleccin

    Botn de seleccin

    Pulsador Control de fichas

    Marco

    rea subscreen

    Control Tabla

    DynprosDynpros

  • 7/26/2019 01 ABAP - Diccionario de Datos

    86/89

    Se componen de: Diseo

    PBO

    Mdulos

    Status

    Ttulo PAI

    Existen 3 tipos de dynrpos:

    Pantallas

    Sub-screens Ventanas dilogo modal

    DynprosDynpros

  • 7/26/2019 01 ABAP - Diccionario de Datos

    87/89

    TransaccionesTransacciones

    Los Programas tipo Module Pool nicamente sonejecutables a travs de una Transaccin:

    Programa y Dynpro.

  • 7/26/2019 01 ABAP - Diccionario de Datos

    88/89

    Ejercicios

  • 7/26/2019 01 ABAP - Diccionario de Datos

    89/89

    Evaluacin