Tabla de Contenidos Table of Contents

14

Transcript of Tabla de Contenidos Table of Contents

Page 1: Tabla de Contenidos Table of Contents
Page 2: Tabla de Contenidos Table of Contents

5

Tabla de Contenidos

Table of Contents

Prólogo 9

1 Introducción 111.1 Presentación general de SAP 111.1.1 Principios fundamentales 121.1.2 Arquitectura técnica 121.2 Presentación general 131.2.1 ABAP 131.2.2 Componentes del lenguaje ABAP 141.2.3 Utilidad de transportes 141.2.4 Ventajas 15

2 El diccionario de datos 172.1 Los elementos principales 182.1.1 Los dominios 182.1.2 Los tipos de datos 212.1.3 Las tablas 242.1.4 Las vistas 282.1.5 Los grupos de tipos (type group) 322.1.6 Las ayudas para búsqueda 332.1.7 Los objetos de bloqueo 362.1.8 El concepto de clave externa 362.2 Visualización y gestión de entradas 382.3 Corrección de los ejercicios 422.3.1 Creación de un dominio 422.3.2 Creación del elemento de datos 422.3.3 Creación de una tabla 432.3.4 Añadir las claves externas 442.3.5 Generador de actualización de tabla 45

3 Programación en ABAP 473.1 Generalidades 473.2 Creación de un programa 483.2.1 Atributos de un programa 483.2.2 Asignación de paquete 503.2.3 Pantalla principal de la SE38 52

Page 3: Tabla de Contenidos Table of Contents

6

Tabla de Contenidos

3.3 Declaración de datos 573.3.1 Instrucciones de declaración 573.3.2 Datos disponibles sin declaración 593.3.3 Tipos de variables 603.4 Creación de la pantalla de selección 623.5 Instrucciones básicas 643.5.1 Asignación de valores 643.5.2 Operaciones con variables 663.5.3 Visualización de datos 713.5.4 Control del flujo 753.5.5 ASSIGN 803.6 Tratamiento de tablas en SAP 833.6.1 Selección de datos 833.6.2 Actualización de datos 923.7 Manejo de tablas internas 953.7.1 Modificación del contenido de una tabla interna 963.7.2 Lectura del contenido de una tabla 1013.8 Programación estructurada 1063.8.1 Los eventos 1063.8.2 Include 1073.8.3 Las subrutinas 1083.8.4 Los módulos de funciones 1113.8.5 Clases y métodos 1203.9 Mensajes 1233.10 Informes interactivos 1263.10.1 El menú Painter 1263.10.2 Instrucciones útiles 1313.10.3 Selección de una línea 1363.10.4 Botón de acción 1363.11 Gestióndeficheros 1373.11.1 En el servidor de presentación 1373.11.2 Sobre el servidor de aplicación 1403.12 Un paso más allá: ABAP 7.40 1433.12.1 La declaración de datos 1433.12.2 La lectura de una tabla interna 1443.12.3 La instrucción de conversión 1453.12.4 La instrucción de asignación 1463.12.5 La instrucción FOR 1473.12.6 La instrucción REDUCE 1483.12.7 Las instrucciones COND y SWITCH 149

Page 4: Tabla de Contenidos Table of Contents

7

Tabla de Contenidos

3.12.8 La instrucción CORRESPONDING 1513.12.9 Instrucciones para cadenas 1533.12.10 El bucle externo 1573.12.11 MESH 1593.12.12 FILTER 1623.13 Corrección de los ejercicios 1643.13.1 Creación del programa 1643.13.2 Declaración de datos 1653.13.3 Pantalla de selección 1653.13.4 Tratamiento de tablas 1683.13.5 Uso de tablas internas 1713.13.6 Estructuración del programa 1743.13.7 Clase de mensajes 1773.13.8 Añadir botones a la pantalla del listado 1793.13.9 Acción de selección de una línea 1813.13.10 Acción botón 1833.13.11 Exportar al servidor de presentación 1873.13.12 Cargar datos del servidor de presentación 1893.13.13 Exportar al servidor de aplicación 1923.13.14 Cargar datos del servidor de aplicación 194

4 Conclusión 197

A Sobre los autores 200

B Índice 203

C Aviso legal 208

Page 5: Tabla de Contenidos Table of Contents

17

2 El diccionario de datos

La base de datos contiene los datos que están guardados en el siste-ma. A dichos datos se accede mediante tablas, aunque el diccionario de datos no consta únicamente de tablas. A lo largo de este capítulo, vamos a explicar los distintos elementos del diccionario que permi-ten que el sistema pueda ejecutarse y que se gestionan en SAP a través de la transacción SE11, como puede verse en la Figura 2.1.

Figura 2.1: Pantalla principal de la transacción SE11

La definición de los objetos de datos se realiza de forma gráfica; por lo tan-to, no es necesario conocer el lenguaje SQL (Structured Query Language). El sistema ejecuta de manera automática todas las instrucciones SQL de definición de datos (CREATE TABLE, ALTER TABLE, etc.) mediante la acti-vación de los objetos. SQL es un lenguaje informático que permite explotar bases de datos relacionales (aquellas en las que los datos se almacenan en tablas) y está compuesto de cuatro partes:

Page 6: Tabla de Contenidos Table of Contents

18

El diccionario de datos

f el lenguaje de manipulación de datos que permite buscar, añadir, modificar y suprimir los datos;

f el lenguaje de definición de datos que permite crear y modificar la organización de los datos;

f el lenguaje de control de transacciones que permite comenzar y ter-minar transacciones (un conjunto de operaciones que se efectúan juntas, como una compra, una reserva o un pago, por ejemplo);

f el lenguaje de control de datos gracias al cual se autoriza o prohíbe el acceso a ciertos datos a diferentes personas.

2.1 Los elementos principales

2.1.1 Los dominios

Figura 2.2: Definición de un dominio

Page 7: Tabla de Contenidos Table of Contents

19

El diccionario de datos

Como se ilustra en la Figura 2.2, un dominio permite definir:

f El formato de un campo mediante el tipo de datos (cadena de ca-racteres, número entero, texto numérico, etc.), su tamaño (número de posiciones) y el número de decimales.

4 Lista de los tipos de datos existentes

Pulse (F4) sobre el campo «Tipo de datos» para ver la lista de tipos que existen.

f Sus propiedades: como la longitud, si se le debe añadir un signo (Signo +/-) en el caso de un número, si se permite el uso de minús-culas en el caso de una cadena de caracteres y también la configu-ración de una rutina de conversión entre el valor guardado en la base de datos (INPUT) y el valor mostrado en pantalla (OUTPUT).

1 Diferencias entre input y output

Un cliente cuyo número es 178956 se guarda en realidad en la base de datos con el valor 0000178956.

Otro ejemplo, el código de idioma se guarda en SAP usando un único ca-rácter, pero se muestra usando dos. Por ejemplo, el código para español se muestra como ES, pero se guarda como una sola letra S.

Las unidades de cantidad, de volumen y de tiempo se almacenan igual-mente utilizando un formato interno diferente del que se muestra por pantalla: la unidad «pieza» se muestra como PC, pero se guarda como ST.

f Los valores que el campo puede tomar, mediante una lista o me-diante una tabla de valores (ver Figura 2.3).

Un dominio puede utilizarse en varios elementos de datos, como se expli-cará en la sección 2.1.2.

Page 8: Tabla de Contenidos Table of Contents

20

El diccionario de datos

Figura 2.3 Rango de valores de un dominio

5 Creación de un dominio

Vamos a crear un dominio que tenga por nombre ZSTATUS_CLIENTE, y que consista en una cadena de 50 caracteres, permitiendo mayúsculas y minúsculas. Una vez creado, le asignaremos varios valores constan-tes.

Este ejercicio puede comprobarse en el capítulo 2.3, Corrección de los ejercicios.

Page 9: Tabla de Contenidos Table of Contents

21

El diccionario de datos

2.1.2 Los tipos de datos

Al intentar crear un tipo de datos, el sistema nos propone tres elementos diferentes, como se puede ver en la Figura 2.4:

Figura 2.4: Los tipos de datos

Los elementos de datos:

Un elemento de datos permite definir:

f los distintos textos de un campo (corto, mediano, largo) como se muestra en la Figura 2.6;

f su tipo de datos asignando, bien un tipo elemental (que puede ser un dominio o un tipo predefinido por el sistema) o bien asignando un tipo de referencia, que puede ser mismamente otro elemento de datos o un tipo predefinido (ver Figura 2.5).

f Igualmente es posible definir otras propiedades adicionales opcio-nales (ver Figura 2.7). entre las que se encuentran:

f asignar una ayuda para búsqueda por defecto (ver la sección 2.1.6);

f la definición de un ID parámetro, que se utiliza en los progra-mas para asignar un valor a un campo de la pantalla a partir del valor guardado en memoria.

1 El elemento de datos cliente

El elemento de datos KUNNR (número de cliente), asociado al dominio del mismo nombre, sirve como clave de la tabla de datos maestros de clientes (KNA1).

Page 10: Tabla de Contenidos Table of Contents

Índice

203

B Índice

AABAP 9, 13, 14, 15, 32, 47, 53, 57,

96, 106, 140, 143, 164, 168, 197, 200, 201

ABAP 7.40 143ABS 70Actualización del contenido de

tablas 38ADD 69ADJACENT DUPLICATES 99AL11 141, 193Algoritmo hash 96Almacén 12Aplicación 49APPEND 96APPENDING 85Arquitectura 12ASSIGN 58, 80ASSIGNING 58AT END 172AT END OF 104AT FIRST 103AT LAST 103AT LINE-SELECTION 136, 181AT NEW 104, 172AT SELECTION-SCREEN 106AT USER-COMMAND 136, 183AVG 91Ayuda 47Ayuda ABAP 75Ayuda para búsqueda 21, 33, 34

Elemental 34

BBase de datos 12, 13, 14, 17, 24,

26, 27, 38, 62Bloqueo del editor 49

Bucle externo 157Búsqueda binaria 96Búsqueda secuencial 95

CCálculo de coma fija 50CALL TRANSACTION 133, 184CASE 76, 150CEIL 70CENTERED 72Centro 12Changing 114CHECK 76CHECKBOX 73, 132Clase 120Clase de mensajes 51, 124, 177Clave estándar 97Clave externa 36, 37, 38, 44Clave primaria 23, 24, 26, 36CLEAR 64, 100CLOSE DATASET 140, 141Código fuente 14, 15, 48COLLECT 97COLOR 73Combinación de tablas 89Comentario 47CONCATENATE 66, 153COND 149CONDENSE 67Condiciones de selección 28Constantes 32CONSTANTS 58CONTINUE 79Controles 47CONV 145CORRESPONDING 69, 151COS 71

Page 11: Tabla de Contenidos Table of Contents

Índice

204

COUNT 90CURRENCY 72

DDATA 57, 62, 95Datos

Selección 47Tratamiento 47

Datos del sistema 59Datos globales 108Datos locales 108DDIC 14, 52, 95, 169DECIMALS 72Declaración de datos 47, 57, 165DELETE 93, 99DEQUEUE 36Desarrollos propios 12DESCRIBE 100DESCRIBE TABLE 178Diccionario de datos 14, 17, 26, 38DIRECTORY_BROWSE 138DIV 69DIVIDE 69DO 77Documentación 164Dominio 19, 20, 21, 23, 24, 25

propiedades 19

EEditor 50, 55Elemento de datos 19, 21, 23Elementos de texto 48, 59END-OF-PAGE 51, 107, 174END-OF-SELECTION 107ENQUEUE 36Entorno 14ERP 9, 12Estructura 23, 24, 95Eventos 13, 47, 106Excepciones 114EXCEPT 152

EXIT 78Exit ayuda para búsqueda 34Export 114

FFichero 137, 139, 140, 187FIELD-SYMBOL 58, 80, 160, 161FILE_OPEN_DIALOG 139, 189File_save_dialog 138FILTER 162FIND 68FLOOR 70FOR 147, 148FOR ALL ENTRIES IN 88FOR INPUT 141FORM 108, 115Formateo de la visualización 154Formato de un campo 19FOR OUTPUT 140FRAC 70FREE 100FROM 83Funciones 16Funciones de agregación 83FUNCTION 115

GGenerador de actualización de

tablas 40, 45GET CURSOR 131GET PARAMETER ID 134GROUP BY 157Grupo de autorizaciones 40Grupo de funciones 111Grupo de tipos 32Grupo SAP 9GUI_DOWNLOAD 137, 187GUI_UPLOAD 139, 190

HHOTSPOT 73, 136, 181

Page 12: Tabla de Contenidos Table of Contents

Índice

205

IICON 73ID parámetro 21IF 75, 149Import 114INCLUDE 107, 112Informes interactivos 126INITIALIZATION 106INNER JOIN 89INPUT 73, 132INSERT 92, 97Instrucciones de declaración 57Interfaz de usuario 13INTO 84, 85INTO / APPENDING CORRESPON-

DING FIELDS OF TABLE 85INTO / APPENDING TABLE 85INTO CORRESPONDING FIELDS OF

84

JJOIN 89

LLEAVE TO TRANSACTION 133, 184LEFT-JUSTIFIED 72LEFT OUTER JOIN 90LINE-COUNT 51, 107, 174LINE-SIZE 51, 174Llamada por referencia 109LOG 71LOOP 102, 143, 148

MMandante 11, 24MANDT 24MAPPING 152MAX 90MEMORY ID 63Mensajes de error 60

Menú Painter 126MESH 159, 160MESSAGE 123MESSAGE-ID 51Método 120MIN 90MOD 69Modelo 53MODIFY 93, 97MODIFY LINE 131Módulo 11, 12, 49Módulo de función 53, 111MOVE 64, 66, 152MOVE-CORRESPONDING 66, 151MULTIPLY 69

NNO-EXTENSION 62NO-GAP 72NO-GAPS 67NO-GROUPING 72NO INTERVALS 62Nombre del campo 38NO STANDARD PAGE HEADING 51,

174NO-ZERO 72

OObjeto de bloqueo 36OBLIGATORY 63Offset 65OPEN DATASET 140Operaciones 47Orden de transporte 14, 40OVERLAY 68

PPantalla de actualización 40Pantalla de selección 62, 165Paquete 50PARAMETERS 62

Page 13: Tabla de Contenidos Table of Contents

Índice

206

PERFORM 108Pie de página 51Pool de tables  27Popup 33Pretty Printer 54, 57, 164Programa

Atributos 48Documentación 48, 52

Programación 47Programa ejecutable 164

RRAISE 115READ 101, 143, 144READ DATASET 141READ LINE 131REDUCE 148REFRESH 100REPLACE 66REPORT 51RFC 16RIGHT-JUSTIFIED 72Ruta de transporte 15Rutina de conversión 19Rutina de grabación 40

SSAP 11, 12, 15, 26, 38SAPGUI 13SAP Workbench 14SE11 17, 38, 40, 42, 43, 44, 45SE16 38SE16N 38SE24 120SE37 111, 113, 116SE38 48, 52, 115, 118, 164, 178SE41 127, 129, 179SE91 124, 125, 177SELECT 83, 87, 143

SINGLE 86SELECT-OPTIONS 62, 64

Servidor de aplicaciónCargar 194Exportar 192

Servidor de presentación 137, 189SET PARAMETER ID 134SET PF-STATUS 130, 179SHIFT 67SIGN 70Símbolos de texto 56SKIP FIRST SCREEN 133SM30 40, 42, 45Sociedad 12SORT 101SPACE 59SPLIT 66SQL 17START-OF-SELECTION 106Status 126, 127Subrutina 108SUBTRACT 69SUM 91SWITCH 150SYMBOL 73SYST 59

TTabla base de datos 44, 45Tabla de customizing 25Tabla de parametrización 25, 37Tabla de valores 19Tabla estándar 95Tabla hash 96Tabla ordenada 96Tablas de aplicación 26Tablas de parametrización 26, 29Tablas de textos 26, 27Tablas internas 16, 95Tabla transparente 26Table pool 27TABLES 57, 165TAN 71Textos de selección 56

Page 14: Tabla de Contenidos Table of Contents

Índice

207

Textos de un campo 21Tipo de datos 21Tipo de programa  49Tipo de referencia 21Tipo de tabla 24Tipo elemental 21Tipo predefinido 21, 24Título 49TOP-OF-PAGE 107, 174Traducción 56Transacción 17TRANSFER 140TRANSLATE 68Transportes 14TRANSPORTING 98TRUNC 70TYPES 58

UUNDER 72Unicode 49, 140UNIT 72UPDATE 93UP TO 1 ROWS 87

VValores constantes 20VALUE 146Variables 32Verificación Unicode 49Vista 28Vista de la base datos 29Vistas de actualización 29Vistas de ayuda 32Vistas de la base de datos 28Vistas de proyección 28

WWHERE 86, 148WHILE 78WRITE 65, 71, 72