abap training sample
TRANSCRIPT
OPEN BUSINESS CONSULTINGSOFTWARE SERVICES COMPANY
2. ELEMENTOS de PROGRAMACIÓN ABAP I
ABAP Training Program Fall 2006
OPEN BUSINESS CONSULTING| Elementos ABAP | Índice
2. Elementos de Programación ABAP I
Declaración de Datos
Introducción al Diccionario ABAP
Introducción a Open SQL
Operaciones y Expresiones Lógicas
Expresiones de Control
Operaciones con Cadenas de Caracteres
Mensajes y Gestión de Errores
OPEN BUSINESS CONSULTING| Elementos ABAP | Objetivos
Objetivos
• Diferenciar entre Tipos de Datos y Objetos de Datos
• Identificar los Tipos de Datos Elementales
• Declarar los diferentes Tipos y Objetos de Datos
• Aprender los diferentes Tipos de Tablas Internas
• Conocer los principales Campos de Sistema
En esta Unidad se estudian los elementos para:
• Objetos de Datos Elementales- De longitud fija- De longitud variable texto libre
Importe
OPEN BUSINESS CONSULTING| Elementos ABAP | Declaración de Datos
• Objetos de Datos Complejos- Estructuras- Tablas Internas
• Variables de Referencia
Ob
jeto
s d
e D
ato
s
• Objetos de Datos Fijos constantes, literales, elementos de texto
Fecha
Sales Order
Atributosde los
Objetos de Datos
TYPE d
Long. 8yyyymmdd
OPEN BUSINESS CONSULTING| Elementos ABAP | Declaración de Datos
Objetos de DatosTipo de Datos
• Atributos de los datos (plantillas)
• No ocupan memoria de programa
TIPOS PREDEFINIDOS d (date), t (time), c (character), i(integer)…
TIPOS GLOBALES en DICCIONARIO kunnr (número de cliente) …
TIPOS DEFINIDOS en PROGRAMAS
TYPES <varname> TYPE <type>.
TYPES t_text(20) TYPE c.
• Instancia de un tipo de dato
• Ocupan memoria según tipo de dato
DATA <varname> TYPE <type>.
DATA p_text TYPE t_text.
DATA p_text(20) TYPE c.
OPEN BUSINESS CONSULTING| Elementos ABAP | Declaración de Datos
Tipos Elementales
Tipo Descripción Longitud Valor inicial
i Integer 4 0 p Packed Number 8 (1-16) 0 f Floating Point Number 8 0 c Alphanumeric Text 1 (*) ‘ ‘ n Numeric Text 1 (*) ‘0…0’ d Date 8 ‘00000000’ t Time 6 ‘000000’ x Hexadecimal 1 (*) ’00…00’
Tip
os
de
lon
git
ud
fija
Tipos de longitud variablestringxstring
OPEN BUSINESS CONSULTING| Elementos ABAP | Declaración de Datos
Definición de Tipos: TYPES Definición de Datos: DATA
TYPES type[(len)] TYPE type [DECIMALS dec ].
DATA dobj[(len)] TYPE type [DECIMALS dec ] [ VALUE val ].
DATA p_code(5) TYPE n VALUE ‘08009’.DATA p_rate TYPE p DECIMALS 2 .
p_rate = 3 / 2.
Convención de nombres
Nombre <= 30 caracteresLetras, números y ‘_’
Nombre(1) = letraPalabras reservadas
La convención de nombres de los objetosde desarrollo debe ser significativa, bien establecida y seguida por todo el equipo.
static types
TYPES | DATA …. LIKE dobj.
DATA p_length LIKE p_rate.
OPEN BUSINESS CONSULTING| Elementos ABAP | Declaración de Datos
Structured Types
TYPES | DATA: BEGIN OF structure,
k1 {TYPE type | LIKE dobj} , k2 {TYPE type | LIKE dobj} ,
…. , kn {TYPE type | LIKE dobj},
END OF structure.
TYPES | DATA structure LIKE dbtab.
structure1 = structure2 . write: / structure-k2 .Las estructuras pueden ser tratadas como una unidad o componente a componente
OPEN BUSINESS CONSULTING| Elementos ABAP | Declaración de Datos
Table Types - Tablas InternasLas tablas internas quedan definidas por: - Tipo de Tabla - Tipo de Línea - Clave de la Tabla
Tipo de Tabla
Tipo de Línea
Clave
TYPES | DATA itab { TYPE | LIKE } tabkind OF { linetype | lineobj } WITH key.
DATA itab TYPE TABLE OF dbtab.
OPEN BUSINESS CONSULTING| Elementos ABAP | Declaración de Datos
Table Types - Tablas Internas Tipo de Tabla
¿Cómo accede el programa a la tabla interna?
¿Cómo se gestiona en la memoria del programa?
ANY TABLE
STANDARD TABLE
INDEX TABLE
SORTED TABLE HASHED TABLE
Acceso por índice
Acceso por índice
HashAlgorithm
sorted by ascending keyin the memory
unordered in the memory
STANDARD TABLE DATA itab TYPE SORTED TABLE OF { linetype | lineobj } … HASHED TABLE
Internally managed bya logical index
Tipos elementales de longitud fija (c,n,i…)
OPEN BUSINESS CONSULTING| Elementos ABAP | Declaración de Datos
Objetos de Datos Fijos
CONSTANTS const[(len)] { TYPE type | LIKE dobj } [DECIMALS dec ] VALUE val . Const.
TEXT SYMBOLS TEXT-### ‘Text’(###)
Textos mantenidos fuera del programa Goto Text Elements Text symbols
WRITE: / text-010.WRITE: / ‘Importe’(010).
LITERALES ‘Text_literal’
SYSTEM FIELDS
Textos hasta 255 caracteres Números hasta 31 dígitos (+ signo).
‘Text’(###)
‘Texto’ ‘Bob’’s Name’
DATA: p_rate TYPE p DECIMALS 2.p_rate = 364p_rate = ‘456.786-’.
Campos predefinidos del sistema. Son llenados en el entrono de ejecución del programa según contexto.
OPEN BUSINESS CONSULTING| Elementos ABAP | Declaración de Datos
Campos de Sistema
ABAP Program
estructura SY
estructura SYST(Diccionario ABAP)
SY-UNAMESY-UZEITSY-DATUM…SY-SUBRC…
SY-SUBRC = 0SY-SUBRC = 4SY-SUBRC = 8
estructura SY
Runtime Environment
SY-SUBRC Valor de retorno en muchas sentencias ABAP.
( 0 ejecución sin error )SY-UNAME Usuario logon SY-DATUM Fecha (servidor de aplicación) SY-UZEIT Hora (servidor de aplicación)SY-LANGU Idioma logonSY-REPID Nombre del programa SY-TCODE Código de transacciónSY-ULINE Línea horizontal (255)SY-INDEX Número de paso en DO / WHILE SY-TABIX Índice llamado en itab (no hashed)SY-DBCNT Líneas de dbtab tratadas (OpenSQL)SY-UCOMM Código de función de usuarioSY-MSGNO Número de mensaje ( MESSAGE)
SY-MSGID SY-MSGTY …
OPEN BUSINESS CONSULTING| Elementos ABAP | Declaración de Datos
Otras Declaraciones de Datos
PARAMETERS parameter[(len)] { TYPE type | LIKE dobj } [DECIMALS dec ] [ DEFAULT value ]. Como DATA, declara la variable parameter y genera campo input en la pantalla de selección.
TABLE WORK AREA (Área de trabajo)
DATA wa_dbtab TYPE dbtab. DATA wa_itab TYPE t_itab.
TABLE dbtab. La sentencia equivale a: DATA dbtab TYPE dbtab.
En versiones anteriores a 4.0, la sentencia era necesaria para acceder a la dbtab desde el programa. En versiones posteriores TABLES es sólo necesario en el transporte de datos en screens generadas con tipos del Diccionario. En los demás casos, la sentencia es obsoleta.
PARAMETERS: p_carrid LIKE sflight-carrid DEFAULT 'AA'.
OPEN BUSINESS CONSULTING| Elementos ABAP | Índice
2. Elementos de Programación ABAP I
Declaración de Datos
Introducción al Diccionario ABAP
Introducción a Open SQL
Operaciones y Expresiones Lógicas
Expresiones de Control
Operaciones con Cadenas de Caracteres
Mensajes y Gestión de Errores
OPEN BUSINESS CONSULTING| Elementos ABAP | Diccionario ABAP
Objetivos
• Identificar los diferentes Objetos de Diccionario ABAP
• Conocer los elementos de una Tabla de Diccionario
• Utilizar las diferentes opciones en la definición de
Dominios
• Declarar Tipos y Objetos de Datos con referencia al
Diccionario ABAP
En esta Unidad se estudian los elementos para:
OPEN BUSINESS CONSULTING| Elementos ABAP | Diccionario ABAP
Diccionario ABAP
Diccionario ABAP
Editor ABAP
Editor Funciones
Screen Painter
Class Builder
Smartforms
Dominios
Elementos de Datos (Tipos)
Estructuras
Tablas
Vistas de Tablas
Vistas de Ayudas
Matchcodes
Objetos de Bloqueo
Type-Pools
OBJETOS de DICCIONARIO
OPEN BUSINESS CONSULTING| Elementos ABAP | Diccionario ABAP
Tablas de Diccionario
Campos Datos Técnicos
Índices
Claves Externas
Elemento de Datos
Dominio
Controlan cómo la tablas se crea en la base de datos
(Tamaño, buffering, tipo deregistros…) Clave
Índices secundarios para optimizaraccesos de lectura frecuentes
Define la relación de una tabla con otras.(Base de datos relacional)
Optimizar primero el código de programa. No crear índices sec.
innecesarios.
Optimizar primero el código de programa. No crear índices sec.
innecesarios.
OPEN BUSINESS CONSULTING| Elementos ABAP | Diccionario ABAP
Tablas – Campos - Elementos de Datos - Dominios
Campos
Elemento de Datos
Dominio
Nombres de campo hasta 16 letrasIndicar flag de campo claveNombre de campo(1) = letra
ClaveCampos que identifican un registrode la tabla de forma única
Rango de valoresTipo de dato (char, num…)longitud [número decimales],[más restricciones]
Significado semántico del campo.Descripciones. ID de memoria.
Algunos campos son guardados endbtablas con formatos diferentes alos de presentación. En el dominio, puedes encontrar la rutina de conversión que aplica.
Algunos campos son guardados endbtablas con formatos diferentes alos de presentación. En el dominio, puedes encontrar la rutina de conversión que aplica.
OPEN BUSINESS CONSULTING| Elementos ABAP | Diccionario ABAP
Tablas – Campos - Elementos de Datos - Dominios
Elemento de DatosFecha Entrada
Dominio DATS
Elemento de DatosFecha Entrada
Elemento de DatosFecha Caducidad
OPEN BUSINESS CONSULTING| Elementos ABAP | Diccionario ABAP
Tablas –Estructura Appends – Campos de Referencia
Campos
Estructura AppendCustomizing Include
Las tablas estándares de Diccionariopueden ser ampliadas mediante
estructuras Append. (condiciones)
Campos de Referencia
Campo Importe ref. Campo Moneda Tipo CURR Tipo CUKY
Campo Cantidad ref. Campo Unidad Tipo QUAN Tipo UNIT
Los campos de referencia pueden ser de otra tabla (Tabla de Referencia)
OPEN BUSINESS CONSULTING| Elementos ABAP | Diccionario ABAP
Tablas – Campos de Referencia
OPEN BUSINESS CONSULTING| Elementos ABAP | Diccionario ABAP
Dominios
Campos
Elemento de Datos
Dominio
RESTRICCIONES
• Valores fijos• Intervalos de valores• Tablas de valores
CONVERSIONESde ENTRADA y SALIDA
VALUE RANGES
Tipo de datos, longitud, [núm. decimales]
OPEN BUSINESS CONSULTING| Elementos ABAP | Diccionario ABAP
Declaraciones con referencia al Diccionario
Campos
Elemento de Datos
Dominio
DATA p_carrid LIKE sflight-carrid.
Tabla
DATA p_carrid TYPE s_carrid_id.
DATA it_sflight TYPE STANDARD TABLE
OF sflight.
Las declaraciones con referencia al Diccionario son
preferibles a definiciones propias.
Las declaraciones con referencia al Diccionario son
preferibles a definiciones propias.
OPEN BUSINESS CONSULTING| Elementos ABAP | Índice
2. Elementos de Programación ABAP I
Declaración de Datos
Introducción al Diccionario ABAP
Introducción a Open SQL
Operaciones y Expresiones Lógicas
Expresiones de Control
Operaciones con Cadenas de Caracteres
Mensajes y Gestión de Errores
OPEN BUSINESS CONSULTING| Elementos ABAP | Open SQL
Objetivos
• Comprender el acceso a la Base de Datos desde los
programas ABAP
• Conocer las principales sentencias Open SQL
• Programar lecturas de tablas de la Base de Datos
• Conocer opciones para la optimización del código de
programas ABAP
En esta Unidad se estudian los elementos para:
OPEN BUSINESS CONSULTING| Elementos ABAP | Open SQL
Open SQL
ABAP Program
SELECT … FROM… INTO… WHERE…
SQL Structured Query Language
SQL Open SQL
RD
BM
S
Inte
rfa
ce
SAP es independiente de la Base de Datos. En el entorno de ejecución los programas acceden a la BD a través del RDBMS (Relational Database Management System) que actúa como interfase.
El RDBMS traslada todas las sentencias Open SQL a sentencias SQL estándares y adaptadas al fabricante de la Base de Datos.
Open SQL contiene varias sentencias SQL estándares y otras propias que simplifican y optimizan el acceso a BD desde programas ABAP.
OPEN BUSINESS CONSULTING| Elementos ABAP | Open SQL
Open SQL
SQL ABAP - Open SQL
Definición DB
DDL(Data Definition Language)CREATE, ALTER…
Procesar datos DB
DDL(Data Manipulation Lang.)SELECT, INSERT..
Consistencia DB
DCL(Data Control Language)
Definición DB
Diccionario ABAP
Procesar datos DB
Open SQL
Consistencia DB
SAP LUW conceptSAP Locks
OPEN BUSINESS CONSULTING| Elementos ABAP | Open SQL
Open SQL
SELECT Lee tablas DB
INSERT Añade líneas a tablas DB
UPDATE Modifica líneas tablas DB
MODIFY Añade / Modif. tablas DB
DELETE Borra líneas tablas DB
OPEN CURSOR
FETCH
CLOSE CURSOR
COMMIT WORK Confirma modificaciones DB
ROLLBAK WORK Deshace modificaciones DB
Sentencias Open SQL
No actualizar tablasestándares de la BD
con Open SQL.Pierdes los chequeos,
actualizaciones yla consistencia
de SAP.
No actualizar tablasestándares de la BD
con Open SQL.Pierdes los chequeos,
actualizaciones yla consistencia
de SAP.
SAP LUW concept
OPEN BUSINESS CONSULTING| Elementos ABAP | Open SQL
SELECT - Lectura BD
¿Qué Tabla?
¿Qué Campos?
¿Qué leer?
Program
¿Dónde guardar?
FROM
WHERE
INTO
SELECT SELECT select_clause FROM from_clause INTO into_clause WHERE where_clause. [ ENDSELECT ].
Optimización de código. Todo SELECT debe tener
select_clause y where_clause
Optimización de código. Todo SELECT debe tener
select_clause y where_clause
OPEN BUSINESS CONSULTING| Elementos ABAP | Open SQL