ABAP Training Sample

También podría gustarte

Está en la página 1de 30

2.

ELEMENTOS de PROGRAMACIÓN ABAP I

ABAP Training Program Fall 2006

OPEN BUSINESS CONSULTING


SOFTWARE SERVICES COMPANY
| Elementos ABAP | Índice OPEN BUSINESS CONSULTING

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
| Elementos ABAP | Objetivos OPEN BUSINESS CONSULTING

Objetivos

En esta Unidad se estudian los elementos para:

• 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
| Elementos ABAP | Declaración de Datos OPEN BUSINESS CONSULTING

Atributos
• Objetos de Datos Fijos
de los
constantes,
Objetos de Datos literales, elementos de texto

• dObjetos de Datos Elementales


TYPE Fecha
- De longitud fija Importe
Objetos de Datos

Long. 8
yyyymmdd - De longitud variable texto libre

• Objetos de Datos Complejos


- Estructuras
- Tablas Internas

• Variables de Referencia Sales Order


| Elementos ABAP | Declaración de Datos OPEN BUSINESS CONSULTING

Tipo de Datos Objetos de Datos

• Atributos de los datos (plantillas) • Instancia de un tipo de dato


• No ocupan memoria de programa • Ocupan memoria según tipo de dato

TIPOS PREDEFINIDOS
d (date), t (time), c (character), i(integer)…

TIPOS GLOBALES en DICCIONARIO DATA <varname> TYPE <type>.


kunnr (número de cliente) …

TIPOS DEFINIDOS en PROGRAMAS DATA p_text TYPE t_text.


DATA p_text(20) TYPE c.
TYPES <varname> TYPE <type>.
TYPES t_text(20) TYPE c.
| Elementos ABAP | Declaración de Datos OPEN BUSINESS CONSULTING

Tipos Elementales

Tipo Descripción Longitud Valor inicial

Tipos de longitud fija


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’

string Tipos de longitud variable


xstring
| Elementos ABAP | Declaración de Datos OPEN BUSINESS CONSULTING

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 ].
static types

Convención de nombres DATA p_code(5) TYPE n VALUE ‘08009’.


DATA p_rate TYPE p DECIMALS 2 .
Nombre <= 30 caracteres p_rate = 3 / 2.
Letras, números y ‘_’
Nombre(1) = letra
Palabras reservadas
TYPES | DATA …. LIKE dobj.

La convención de nombres de los objetos DATA p_length LIKE p_rate.


de desarrollo debe ser significativa, bien
establecida y seguida por todo el equipo.
| Elementos ABAP | Declaración de Datos OPEN BUSINESS CONSULTING

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.

Las estructuras pueden ser


tratadas como una unidad o structure1 = structure2 . write: / structure-k2 .
componente a componente
| Elementos ABAP | Declaración de Datos OPEN BUSINESS CONSULTING

Las tablas internas quedan


Table Types - Tablas Internas definidas por:
- Tipo de Tabla
- Tipo de Línea
- Clave de la Tabla

Clave

Tipo de Línea

Tipo de Tabla

DATA itab TYPE TABLE OF dbtab.


TYPES | DATA itab { TYPE | LIKE } tabkind
OF { linetype | lineobj }
WITH key.
| Elementos ABAP | Declaración de Datos OPEN BUSINESS CONSULTING

Table Types - Tablas Internas Tipo de Tabla


¿Cómo accede el programa
a la tabla interna?
ANY TABLE ¿Cómo se gestiona en la
memoria del programa?

INDEX TABLE

STANDARD TABLE SORTED TABLE HASHED TABLE

Acceso por Acceso por Hash


índice índice Algorithm
Internally managed by sorted by ascending key unordered in the memory
a logical index in the memory

STANDARD TABLE
DATA itab TYPE SORTED TABLE OF { linetype | lineobj } …
HASHED TABLE
| Elementos ABAP | Declaración de Datos OPEN BUSINESS CONSULTING

Objetos de Datos Fijos

CONSTANTS const[(len)] { TYPE type | LIKE dobj } [DECIMALS dec ] VALUE val .
Const.

Tipos elementales de longitud fija (c,n,i…)

TEXT SYMBOLS TEXT-### Textos mantenidos fuera del programa WRITE: / text-010.
‘‘Text’(###)
Text’(###) Goto  Text Elements  Text symbols WRITE: / ‘Importe’(010).

‘Texto’ ‘Bob’’s Name’


Textos hasta 255 caracteres DATA: p_rate TYPE p DECIMALS 2.
LITERALES ‘Text_literal’
p_rate = 364
Números hasta 31 dígitos (+ signo). p_rate = ‘456.786-’.

Campos predefinidos del sistema. Son llenados en el


SYSTEM FIELDS entrono de ejecución del programa según contexto.
| Elementos ABAP | Declaración de Datos OPEN BUSINESS CONSULTING

Campos de Sistema estructura SYST


(Diccionario ABAP)

estructura SY
ABAP Program
SY-SUBRC Valor de retorno en muchas
estructura SY sentencias ABAP.
( 0  ejecución sin error )
SY-UNAME Usuario logon
SY-UNAME SY-DATUM Fecha (servidor de aplicación)
SY-UZEIT SY-UZEIT Hora (servidor de aplicación)
SY-DATUM SY-LANGU Idioma logon
… SY-REPID Nombre del programa
SY-SUBRC SY-SUBRC = 0 SY-TCODE Código de transacción
… SY-SUBRC = 4 SY-ULINE Línea horizontal (255)
SY-SUBRC = 8 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)
Runtime Environment SY-UCOMM Código de función de usuario
SY-MSGNO Número de mensaje ( MESSAGE)
SY-MSGID SY-MSGTY …
| Elementos ABAP | Declaración de Datos OPEN BUSINESS CONSULTING

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. PARAMETERS: p_carrid
LIKE sflight-carrid DEFAULT 'AA'.

TABLE WORK AREA (Área de trabajo)

TABLE dbtab.
La sentencia equivale a: DATA dbtab TYPE dbtab.
En versiones anteriores a 4.0, la sentencia era necesaria DATA wa_dbtab TYPE dbtab.
para acceder a la dbtab desde el programa. En versiones DATA wa_itab TYPE t_itab.
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.
| Elementos ABAP | Índice OPEN BUSINESS CONSULTING

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
| Elementos ABAP | Diccionario ABAP OPEN BUSINESS CONSULTING

Objetivos

En esta Unidad se estudian los elementos para:

• 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
| Elementos ABAP | Diccionario ABAP OPEN BUSINESS CONSULTING

Diccionario ABAP

Editor ABAP

OBJETOS de DICCIONARIO

Editor Funciones
Dominios
Elementos de Datos (Tipos)
Estructuras
Tablas
Smartforms
Vistas de Tablas
Vistas de Ayudas
Matchcodes
Objetos de Bloqueo Screen Painter
Type-Pools
Diccionario ABAP

Class Builder
| Elementos ABAP | Diccionario ABAP OPEN BUSINESS CONSULTING

Tablas de Diccionario

Datos Técnicos Campos


Controlan cómo la tablas se
crea en la base de datos
(Tamaño, buffering, tipo de
Clave
registros…)

Elemento de Datos
Índices
Índices secundarios para optimizar Claves Externas
accesos de lectura frecuentes
Dominio

Optimizar
Optimizarprimero
primeroelel
código
códigodedeprograma.
programa.
No
No crear índicessec.
crear índices sec.
innecesarios.
innecesarios.
Define la relación de una tabla con otras.
(Base de datos relacional)
| Elementos ABAP | Diccionario ABAP OPEN BUSINESS CONSULTING

Tablas – Campos - Elementos de Datos - Dominios

Campos
Nombres de campo hasta 16 letras
Indicar flag de campo clave
Nombre de campo(1) = letra
Campos que identifican un registro
Clave
de la tabla de forma única

Significado semántico del campo.


Elemento de Datos
Descripciones. ID de memoria.

Algunos campos
Algunosconcampos son
songuardados
guardados enen
dbtablas
dbtablas formatos
con formatos diferentes
diferentesaa
Rango de valores los de presentación. En el dominio,
Tipo de dato (char, num…) los de encontrar
puedes presentación. En elde
lalarutina dominio,
Dominio puedes encontrar
conversión rutina de
longitud [número decimales], conversiónque
queaplica.
aplica.
[más restricciones]
| Elementos ABAP | Diccionario ABAP OPEN BUSINESS CONSULTING

Tablas – Campos - Elementos de Datos - Dominios

Elemento de Datos Elemento de Datos


Fecha Entrada Fecha Entrada

Elemento de Datos
Dominio DATS Fecha Caducidad
| Elementos ABAP | Diccionario ABAP OPEN BUSINESS CONSULTING

Tablas –Estructura Appends – Campos de Referencia

Campos

Campos de Referencia

Campo Importe ref. Campo Moneda


Tipo CURR Tipo CUKY Estructura Append
Customizing Include
Campo Cantidad ref. Campo Unidad
Tipo QUAN Tipo UNIT Las tablas estándares de Diccionario
pueden ser ampliadas mediante
Los campos de referencia pueden ser estructuras Append. (condiciones)
de otra tabla (Tabla de Referencia)
| Elementos ABAP | Diccionario ABAP OPEN BUSINESS CONSULTING

Tablas – Campos de Referencia


| Elementos ABAP | Diccionario ABAP OPEN BUSINESS CONSULTING

Dominios

VALUE RANGES
Tipo de datos, longitud, [núm. decimales]
Campos
RESTRICCIONES
• Valores fijos
• Intervalos de valores
• Tablas de valores
Elemento de Datos CONVERSIONES
de ENTRADA y SALIDA

Dominio
| Elementos ABAP | Diccionario ABAP OPEN BUSINESS CONSULTING

Declaraciones con referencia al Diccionario

Tabla DATA it_sflight TYPE STANDARD TABLE


OF sflight.

DATA p_carrid LIKE sflight-carrid.


Campos

Elemento de Datos DATA p_carrid TYPE s_carrid_id.

Las
Lasdeclaraciones
declaracionescon
con
Dominio referencia
referenciaalalDiccionario
Diccionarioson
son
preferibles a definiciones propias.
preferibles a definiciones propias.
| Elementos ABAP | Índice OPEN BUSINESS CONSULTING

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
| Elementos ABAP | Open SQL OPEN BUSINESS CONSULTING

Objetivos

En esta Unidad se estudian los elementos para:

• 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
| Elementos ABAP | Open SQL OPEN BUSINESS CONSULTING

Open SQL

SAP es independiente de la Base de


ABAP Program Datos. En el entorno de ejecución
los programas acceden a la BD a
SELECT … FROM… través del RDBMS (Relational
INTO…
WHERE…
Database Management System) que
actúa como interfase.

El RDBMS traslada todas las


RDBMS Interface

sentencias Open SQL a sentencias


SQL estándares y adaptadas al
fabricante de la Base de Datos.

Open SQL contiene varias sentencias


SQL Open SQL
SQL estándares y otras propias que
simplifican y optimizan el acceso a
SQL Structured Query Language
BD desde programas ABAP.
| Elementos ABAP | Open SQL OPEN BUSINESS CONSULTING

Open SQL

SQL ABAP - Open SQL

Definición DB Definición DB
DDL
(Data Definition Language) Diccionario ABAP
CREATE, ALTER…

Procesar datos DB Procesar datos DB


DDL
(Data Manipulation Lang.) Open SQL
SELECT, INSERT..

Consistencia DB Consistencia DB

DCL SAP LUW concept


(Data Control Language) SAP Locks
| Elementos ABAP | Open SQL OPEN BUSINESS CONSULTING

Open SQL

Sentencias Open SQL

SELECT Lee tablas DB No


Noactualizar
actualizartablas
tablas
INSERT Añade líneas a tablas DB estándares
estándares de laBD
de la BD
con Open SQL.
con Open SQL.
UPDATE Modifica líneas tablas DB Pierdes
Pierdeslos loschequeos,
chequeos,
actualizaciones
actualizacionesyy
MODIFY Añade / Modif. tablas DB lalaconsistencia
consistencia
de
deSAP.
SAP.
DELETE Borra líneas tablas DB
OPEN CURSOR
FETCH
CLOSE CURSOR
COMMIT WORK Confirma modificaciones DB
SAP LUW concept
ROLLBAK WORK Deshace modificaciones DB
| Elementos ABAP | Open SQL OPEN BUSINESS CONSULTING

SELECT - Lectura BD

¿Qué Campos?

¿Qué leer? SELECT SELECT select_clause


FROM from_clause
WHERE
INTO into_clause
WHERE where_clause.

[ ENDSELECT ].

Program
¿Qué Tabla? Optimización
Optimizacióndedecódigo.
código.
Todo
TodoSELECT
SELECTdebedebetener
tener
select_clause y where_clause
select_clause y where_clause
FROM

INTO ¿Dónde guardar?


| Elementos ABAP | Open SQL OPEN BUSINESS CONSULTING

También podría gustarte