01 abap - diccionario de datos
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