30
OPEN BUSINESS CONSULTING SOFTWARE SERVICES COMPANY 2. ELEMENTOS de PROGRAMACIÓN ABAP I ABAP Training Program Fall 2006

ABAP Training Sample

Embed Size (px)

Citation preview

Page 1: ABAP Training Sample

OPEN BUSINESS CONSULTINGSOFTWARE SERVICES COMPANY

2. ELEMENTOS de PROGRAMACIÓN ABAP I

ABAP Training Program Fall 2006

Page 2: ABAP Training Sample

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

Page 3: ABAP Training Sample

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:

Page 4: ABAP Training Sample

• 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

Page 5: ABAP Training Sample

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.

Page 6: ABAP Training Sample

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

Page 7: ABAP Training Sample

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.

Page 8: ABAP Training Sample

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

Page 9: ABAP Training Sample

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.

Page 10: ABAP Training Sample

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

Page 11: ABAP Training Sample

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.

Page 12: ABAP Training Sample

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 …

Page 13: ABAP Training Sample

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'.

Page 14: ABAP Training Sample

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

Page 15: ABAP Training Sample

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:

Page 16: ABAP Training Sample

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

Page 17: ABAP Training Sample

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.

Page 18: ABAP Training Sample

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.

Page 19: ABAP Training Sample

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

Page 20: ABAP Training Sample

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)

Page 21: ABAP Training Sample

OPEN BUSINESS CONSULTING| Elementos ABAP | Diccionario ABAP

Tablas – Campos de Referencia

Page 22: ABAP Training Sample

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]

Page 23: ABAP Training Sample

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.

Page 24: ABAP Training Sample

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

Page 25: ABAP Training Sample

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:

Page 26: ABAP Training Sample

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.

Page 27: ABAP Training Sample

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

Page 28: ABAP Training Sample

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

Page 29: ABAP Training Sample

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

Page 30: ABAP Training Sample

OPEN BUSINESS CONSULTING| Elementos ABAP | Open SQL