Curso Basico Csti Abap

471
SAP & ABAP Entorno & Generalidades CSTI Consultoría en Tecnologías de Información Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635 http://www.csti.com.pe

Transcript of Curso Basico Csti Abap

Page 1: Curso Basico Csti Abap

SAP & ABAPEntorno & Generalidades

CSTI Consultoría en Tecnologías de Información

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

Page 2: Curso Basico Csti Abap

- SAP R/3 / ABAP4 Entorno y Generalidades

- Diccionario de Datos

- Introducción a la programación en ABAP

- Listados

- Reportes Interactivos

- Dynpros

- Funciones

- Sap Script

- Smart Forms

- ABAP Objects

- ABAP List Viewer

- Enhancements

Contenido del CursoCSTI Consultoría en Tecnologías de Información

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

Page 3: Curso Basico Csti Abap

- Instancia.

- Mandante

- Objetos en una Instancia.

Estructura entorno SAP R/3CSTI Consultoría en Tecnologías de Información

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

Page 4: Curso Basico Csti Abap

Procedimiento de accesoCSTI Consultoría en Tecnologías de Información

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

Page 5: Curso Basico Csti Abap

Opciones AvanzadasCSTI Consultoría en Tecnologías de Información

En el Sap logon – Opciones avanzadas existe un flag de conexión rápida: “low speed connection”, que cuando no está marcado permite mantener en memoria las últimas 10 entradas.

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

Page 6: Curso Basico Csti Abap

- Barra de Títulos (Title bar)

- Ventana (Windows)

- Barra de Menú (Menu bar)

- Botones Standard (Standard Tool bar)

- Botones Aplicación (Aplication Toolbar)

- Pantalla (Screen)

- Opción Menú (Menu)

- Barra de Estado (Status bar)

- Línea de Comandos (Command box)

Pantalla SAPCSTI Consultoría en Tecnologías de Información

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

Page 7: Curso Basico Csti Abap

CSTI Consultoría en Tecnologías de Información

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

Page 8: Curso Basico Csti Abap

SAP proviene de: Systems, Applications, Products in Data

Processing.

Este sistema comprende muchos módulos completamente

integrados y abarca prácticamente todos los aspectos de la

administración empresarial. Ha sido desarrollado para

cumplir con las necesidades crecientes de las organizaciones

mundiales y su importancia está más allá de toda duda. SAP

ha puesto su mirada en el negocio como un todo, así ofrece

un sistema único que soporta virtualmente todas las áreas en

una escala global.

¿Qué es SAP?CSTI Consultoría en Tecnologías de Información

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

Page 9: Curso Basico Csti Abap

SAP comercializa todos sus productos en diferentes industrias del mundo desde

las compañías privadas hasta las gubernamentales.

Industrias tales como:

- Materias primas, minería y agricultura

- Gas y petróleo

- Químicas

- Farmaceúticas

- Materiales de construcción, arcilla y vidrio

- Construcción pesada

- Servicios

- Consultorías y Software

- Sanatorios y hospitales

- Muebles

- Automoción

- Textil y vestido

- Papel y madera

Mercado SAPCSTI Consultoría en Tecnologías de Información

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

Page 10: Curso Basico Csti Abap

SAP R/3 es un ERP, una aplicación de gestión empresarial diseñada

para cubrir la demanda de todas las áreas funcionales de

cualquier empresa.

Está integrado por varios módulos coordinados entre ellos,

generando un flujo de información entre los distintos usuarios.

SAP R/3CSTI Consultoría en Tecnologías de Información

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

Page 11: Curso Basico Csti Abap

Es un código como máximo de 20 Caracteres a través del cual se

puede acceder a una tarea (Programa).

Se ingresa en la Línea de comandos.

¿Qué es una transacción SAP?CSTI Consultoría en Tecnologías de Información

Línea de Comandos

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

Page 12: Curso Basico Csti Abap

Si trabaja usted con varias sesiones, puede:

- Ejecutar diferentes transacciones en paralelo.

- Abrir una sesión desde cualquier pantalla y siempre que lo

desee.

Manejo de SesionesCSTI Consultoría en Tecnologías de Información

Modo 2

Modo 1

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

Page 13: Curso Basico Csti Abap

Permite el manejo de:

- Administración de Modos (Sesiones)

- Manejo de Transacciones

Línea de ComandosCSTI Consultoría en Tecnologías de Información

Línea de Comandos

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

Page 14: Curso Basico Csti Abap

Disposición LocalCSTI Consultoría en Tecnologías de Información

Estas configuraciones son a nivel de usuario

Si esta marcado muestra solo códigoAv. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

Page 15: Curso Basico Csti Abap

Menú SistemaCSTI Consultoría en Tecnologías de Información

- Funciones SAP que afectan a la sesión en su totalidad.

- Componentes:

- Crear/Borrar Modo. - Jobs Propios.

- Valores Prefijados - Mensajes Breves

- Servicios - Status

- Utilidades - Salir del Sistema

- Lista

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

Page 16: Curso Basico Csti Abap

Valores PrefijadosCSTI Consultoría en Tecnologías de Información

- Información de usuario que afecta a la sesión en su totalidad.

- Componentes:

- Retener / Fijar / Borrar Datos.

- Valores Fijos Usuarios.

- Dirección de Usuario.

- Parámetros Usuarios.

- Actualizar Menú Usuario.

- Activar Menú Usuario.

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

Page 17: Curso Basico Csti Abap

Menú Sistema - ServiciosCSTI Consultoría en Tecnologías de Información

Permite llevar a cabo funciones como:

- Manejo de reportes

- Transferencia a PC de reportes

- SAP office

- Manejo de jobs

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

Page 18: Curso Basico Csti Abap

Servicios de ImpresiónCSTI Consultoría en Tecnologías de Información

- Atributos del reporte

- Visualizar reporte

- Impresión de reporte

- Eliminación de reporte

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

Page 19: Curso Basico Csti Abap

Menú Sistema – Trabajos (jobs)CSTI Consultoría en Tecnologías de Información

Desde el Sub-menú ‘Jobs’ se puede llevar a cabo básicamente dos

funciones:

- Definición de trabajos (job definition).

- Revisión de trabajos (job overview).

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

Page 20: Curso Basico Csti Abap

Ejecución de trabajos en BackgroundCSTI Consultoría en Tecnologías de Información

- No son de ejecución interactiva.

- Integrado en el Sistema SAP.

- Pueden ser procesados en paralelo con operaciones en línea

- Procesamiento distribuido

Page 21: Curso Basico Csti Abap

Pasos de un proceso en backgroundCSTI Consultoría en Tecnologías de Información

Planificación

del proceso

Ejecución del

proceso

Revisión del

proceso

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

Page 22: Curso Basico Csti Abap

Planificando Procesos en backgroundCSTI Consultoría en Tecnologías de Información

Definir función de tarea

Nombre de la tarea

Grabar

Pasos

Detalle impresión

Fecha inicio

Periocidad

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

Page 23: Curso Basico Csti Abap

ABAP/4.6 Object NavigatorCSTI Consultoría en Tecnologías de Información

Transacción SE80

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

Page 24: Curso Basico Csti Abap

ABAP/4.6 Object Navigator otrosCSTI Consultoría en Tecnologías de Información

Otros

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

Page 25: Curso Basico Csti Abap

ABAP/4.6 Object Navigator DiccionarioCSTI Consultoría en Tecnologías de Información

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

Page 26: Curso Basico Csti Abap

ABAP/4.6 Object Navigator ProgramaCSTI Consultoría en Tecnologías de Información

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

Page 27: Curso Basico Csti Abap

Diccionario de Datos

Conceptos & Definiciones

CSTI Consultoría en Tecnologías de Información

Page 28: Curso Basico Csti Abap

¿Qué es un Diccionario de Datos?

Es la fuente central de información para un sistema

manejador de datos.

La función principal es la creación y administración de

las definiciones de datos.

Diccionario de DatosCSTI Consultoría en Tecnologías de Información

¿Cómo está

constituida la data?

¿Qué son

atributos?

¿Qué es la Data?

Page 29: Curso Basico Csti Abap

Una gran parte de la ayuda en línea es dada por el

Abap/4 dictionary, la cual ayuda a reducir la

redundancia de documentación.

Uso del ABAP/4.6 Dictionary InformationCSTI Consultoría en Tecnologías de Información

ABAP/4

Dictionary

Visualizar todos los objetos de tipo X con atributo Y

Visualizar todos los objetos de tipo X que son usados por el objeto Y

Visualizar todas las relaciones existente para la tabla X

Visualizar todos los objetos de tipo X que fueron modificados por User, Date..

Search by attribute Where-used lists

Information on relationships between tables Modification analysis

Page 30: Curso Basico Csti Abap

Para acceder al Diccionario ABAP debemos ingresar

mediante la transacción SE11 desde la ventana de

comandos

ABAP/4.6 DictionaryCSTI Consultoría en Tecnologías de Información

Page 31: Curso Basico Csti Abap

Componentes Básicos del ABAP/4.6 Dictionary

CSTI Consultoría en Tecnologías de Información

Table A Table B Table C

Data element 1 Data element 2

Domain

Tables

Data

Elements

Dominios

Page 32: Curso Basico Csti Abap

¿Qué es un Dominio?

Un Dominio describe los atributos técnicos de un

campo, tales como el tipo de datos o la cantidad de

posiciones del campo. Un dominio define

principalmente un ámbito de valores que describe los

valores de datos válidos para los campos que hacen

referencia al dominio.

CSTI Consultoría en Tecnologías de Información

Page 33: Curso Basico Csti Abap

Creación de un DominioCSTI Consultoría en Tecnologías de Información

Descripción del Dominio

Tipo de Dato

Longitud de Campo

Longitud Máxima de I/O

Page 34: Curso Basico Csti Abap

Grabando un DominioCSTI Consultoría en Tecnologías de Información

Clase de Desarrollo

Page 35: Curso Basico Csti Abap

¿Qué es un Elemento de Datos?

El elemento de datos (dominio semántico)

es aquel que describe el rol de un dominio dentro

del contexto técnico de un campo.

La información semántica incluye la descripción

del campo así como los títulos de columna.

CSTI Consultoría en Tecnologías de Información

Page 36: Curso Basico Csti Abap

Creación de un Elemento de DatosCSTI Consultoría en Tecnologías de Información

Page 37: Curso Basico Csti Abap

Creación de un Elemento de DatosCSTI Consultoría en Tecnologías de Información

Mediante un ID Parámetro se puede llenar un campo con valores de propuesta de la memoria SAP.

Descripción

Etiquetas

Id Parametro

Page 38: Curso Basico Csti Abap

Creación de un Elemento de DatosCSTI Consultoría en Tecnologías de Información

Definición de Etiquetas

Con esta opción podremos traducir los textos a otro idioma

Page 39: Curso Basico Csti Abap

Grabando un Elemento de DatosCSTI Consultoría en Tecnologías de Información

Clase de Desarrollo

Page 40: Curso Basico Csti Abap

¿Qué es una Estructura (Tipos Estructurados)?

Los tipos estructurados describen la estructura y los

atributos funcionales de cualquier objeto de datos

estructurado, es decir, de estructuras de datos con

componentes de cualquier tipo.

Un componente puede ser un campo con un tipo elemental

o también puede ser, a su vez, una estructura. Una tabla

también se puede usar como componente de una

estructura.

Una tabla de base de datos posee una estructura por lo

tanto es implícitamente un tipo estructurado. No obstante,

sus componentes sólo pueden poseer un tipo elemental.

CSTI Consultoría en Tecnologías de Información

Page 41: Curso Basico Csti Abap

Creación de una EstructuraCSTI Consultoría en Tecnologías de Información

Page 42: Curso Basico Csti Abap

Creación de una EstructuraCSTI Consultoría en Tecnologías de Información

Page 43: Curso Basico Csti Abap

Grabando una EstructuraCSTI Consultoría en Tecnologías de Información

Page 44: Curso Basico Csti Abap

¿Qué es una Tabla?

Es una agrupación de campos; constituida en base a

otros objetos; como elementos de datos y dominios.

Componentes:

- Campos de tablas: Nombres de campo y los tipos de datos de los campos contenidos en la tabla.

- Clave externa o Foránea: Mediante la clave externa se especifican las relaciones de la tabla con otras tablas.

- Opciones técnicas: Con las opciones técnicas se controla cómo se crea la tabla en la base de datos.

- Índices: Para acelerar la selección de datos de la tabla se pueden crear índices para la tabla

CSTI Consultoría en Tecnologías de Información

Page 45: Curso Basico Csti Abap

Creación de una TablaCSTI Consultoría en Tecnologías de Información

Page 46: Curso Basico Csti Abap

CSTI Consultoría en Tecnologías de InformaciónCreación de una Tabla

Page 47: Curso Basico Csti Abap

Grabando una TablaCSTI Consultoría en Tecnologías de Información

Page 48: Curso Basico Csti Abap

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

Grabando una TablaCSTI Consultoría en Tecnologías de Información

Page 49: Curso Basico Csti Abap

Tipos de Datos Moneda/CantidadCSTI Consultoría en Tecnologías de Información

Los tipos de datos Moneda y/o Cantidad merecen un

tratamiento especial por tanto es necesario indicar la tabla y

campo referencia en la pestaña Campos Moneda/Cantidad; de

los contrario no podremos activar nuestra tabla.

Page 50: Curso Basico Csti Abap

ÍndicesCSTI Consultoría en Tecnologías de Información

- Un índice es una estructura de datos que permite recuperar las

filas de una tabla de forma más rápida además de proporcionar

una ordenación distinta a la natural de la tabla.

- Un índice se define sobre una columna o sobre un grupo de

columnas, y las filas se ordenarán según los valores contenidos

en esas columnas.

- Al ser el índice una estructura de datos adicional a la tabla,

ocupa un poco más de espacio en disco.

- Cuando se añaden, modifican o se borran filas de la tabla, el

sistema debe actualizar los índices afectados por esos cambios lo

que supone un tiempo de proceso mayor.

- Por estas razones no es aconsejable definir índices de forma

indiscriminada.

Page 51: Curso Basico Csti Abap

Creando un índiceCSTI Consultoría en Tecnologías de Información

Page 52: Curso Basico Csti Abap

Utilidad para Tablas de Base de DatosCSTI Consultoría en Tecnologías de Información

Page 53: Curso Basico Csti Abap

Estructuras AppendCSTI Consultoría en Tecnologías de Información

Page 54: Curso Basico Csti Abap

Generador de Mantenimiento de TablaCSTI Consultoría en Tecnologías de Información

Page 55: Curso Basico Csti Abap

Generador de Mantenimiento de TablaCSTI Consultoría en Tecnologías de Información

Page 56: Curso Basico Csti Abap

Mantenimiento StandardCSTI Consultoría en Tecnologías de Información

Page 57: Curso Basico Csti Abap

¿Qué es una Vista?

Es una agrupación de campos de diferentes tablas

conectados por algún foreign key en común.

Una vista es una tabla virtual.

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 58: Curso Basico Csti Abap

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

Creación de una VistaCSTI Consultoría en Tecnologías de Información

Tipo de Vista

Page 59: Curso Basico Csti Abap

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

Creación de una VistaCSTI Consultoría en Tecnologías de Información

Relaciones

Descripción de la vista

Page 60: Curso Basico Csti Abap

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de InformaciónCreación de una Vista

Componentes

Page 61: Curso Basico Csti Abap

¿Qué es una Ayuda para Búsqueda?

Es un objeto del diccionario que nos va a permitir obtener

ayudas para entradas de datos.

Existen 2 tipos de ayuda:

Elemental: Realizan una trayectoria de búsqueda para

determinar las entradas posibles.

Compuesta: Constan de varias Ayudas para búsqueda elemental,

es decir, ponen a disposición varias trayectorias de búsqueda

alternativas para las entradas posibles.

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de InformaciónAyudas de Búsqueda

Page 62: Curso Basico Csti Abap

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

Creando una Ayuda para BúsquedaCSTI Consultoría en Tecnologías de Información

Tipo de

búsqueda

Page 63: Curso Basico Csti Abap

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

Creando una Ayuda para BúsquedaCSTI Consultoría en Tecnologías de Información

Descripción de la

búsqueda

Tabla o Vista Origen

Componentes

Page 64: Curso Basico Csti Abap

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

Al pulsarnos llevará a esta pantalla donde podremos visualizar como será la salida de nuestra ayuda de búsqueda al dar ENTER.

CSTI Consultoría en Tecnologías de Información

1

Ejecutando una Ayuda para Búsqueda

Utilización

Asignando una ayuda de búsqueda

Al pulsar F4

2

Page 65: Curso Basico Csti Abap

¿Qué es un Objeto de Bloqueo?

Un objeto de bloqueo es una unión virtual de varias tablas SAP

que sincroniza el acceso simultáneo de dos usuarios al mismo

set de datos.

La solicitud y/o liberación de los bloqueos se realiza en la

programación de las transacciones de diálogo mediante la

llamada de determinados módulos de funciones que se generan

automáticamente de la definición de los objetos de bloqueo.

Estos objetos deben crearse explícitamente en el Diccionario.

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 66: Curso Basico Csti Abap

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

Creando un Objeto de BloqueoCSTI Consultoría en Tecnologías de Información

Descripción del

Obj. Bloqueo

Tabla

Modo de

Bloqueo

Page 67: Curso Basico Csti Abap

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Parámetros de bloqueo

Clase de desarrollo

Creando un Objeto de Bloqueo

Page 68: Curso Basico Csti Abap

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Para visualizar o

modificar registros

existentes

Para adicionar

nuevos registros

Al pulsar

nos mostrará la

siguiente pantalla.

SE16

Mantenimiento de Tablas

Page 69: Curso Basico Csti Abap

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

Mantenimiento de TablasCSTI Consultoría en Tecnologías de Información

Podemos configurar mediante el siguiente menú para obtener:- Un listado solo con los campos definidos por el usuario.- Definir secuencia de los campos en el reporte.- Definir los campos y los criterios de selección.- Definir mostrar campos técnicos o denominaciones.- Definir otras opciones específicas del usuario.

SE16

Page 70: Curso Basico Csti Abap

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

Base de Datos Lógica SE36CSTI Consultoría en Tecnologías de Información

- Una base de datos lógica puede acceder a datos almacenados en una o varias tablas físicas del sistema.

- La Lectura en una Base de Datos Lógica es de arriba hacia abajo, según su estructura.

- Una Base de Datos Lógica puede accesar a varias bases de datos físicas.

Page 71: Curso Basico Csti Abap

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

Visualizando una Base de Datos LógicaCSTI Consultoría en Tecnologías de Información

Modos:

- Bajo la transacción SE36.

- Bajo la transacción SE80.

- Bajo el comando editor SHOW DATABASE

<dbs>

Page 72: Curso Basico Csti Abap

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

Usando una Base de Datos LógicaCSTI Consultoría en Tecnologías de Información

Para trabajar con una base de datos lógica es necesario definir en el programa la BD con la que se trabajará

Para accesar debemos usar el comando:GET [Nombre del Nodo].

También podemos usar:GET [Nombre del Nodo] LATE.Este comando es procesado solo luego de que se hayan leído y procesado los nodos subordinados.

Base de datos PNP

Page 73: Curso Basico Csti Abap

Laboratorio 1: Diccionario de Datos

Laboratorio Diccionario de DatosCSTI Consultoría en Tecnologías de Información

1. Crear los dominio, elementos de datos y tablas necesarios para implementar el siguiente DER.

Page 74: Curso Basico Csti Abap

Laboratorio Diccionario de Datos

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

2. Crear ayudas de búsqueda para producto, punto de venta, cliente y empleado

3. Crear Vista de actualización para producto, punto de venta, cliente y empleado.

Page 75: Curso Basico Csti Abap

ABAP/4

Introducción

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 76: Curso Basico Csti Abap

El editor de programas se activa la digitar la transacción SE38 desde la

línea de comandos.

En programa pondremos el nombre del objeto que deseamos crear,

modificar o visualizar

ABAP/4 EDITOR SE38

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 77: Curso Basico Csti Abap

Operaciones en el Editor

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Renombrar

Copiar

Eliminar

Chequeo

Activar

Ejecutar

Where-Used-list

Análisis de Entorno

Page 78: Curso Basico Csti Abap

Nos va a indicar la referencia de utilización de un objeto.

Where Used List

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Si se trata de un programa

Si se trata de una tabla

Page 79: Curso Basico Csti Abap

Verificar sintaxis (CTRL + F2 ó ).- Nos va a permitir visualizar solamente

los errores de sintaxis del código de un programa.

Verificación ampliada (SLIN).- Verificación de sintaxis + performance.

Verificar Sintaxis vs. Verificación Ampliada

Una verificación completa como:

• Consistencia de campos

• Consistencias de dynpros

• Utilización de sentencias

• Salidas de campos

• Mensajes

• Autorizaciones

• Llamadas a programas externos.

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 80: Curso Basico Csti Abap

Modos de Editor

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 81: Curso Basico Csti Abap

Crear un Programa

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Titulo

Tipo

Estado

Aplicación

Grupo de Autorización

Page 82: Curso Basico Csti Abap

Clase de Desarrollo

La clase de desarrollo describe el área funcional a la que pertenece el objeto.

Esto permite agrupar los objetos de acuerdo a un área temática.

Al crear un objeto nuevo del Workbench ABAP, aparece una ventana de

entrada en la que deberá asignar al objeto una de las clases de desarrollo ya

existentes.

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

12

Page 83: Curso Basico Csti Abap

Clase de Desarrollo

Un programa u otro objeto del repositorio deben tener siempre asociados

una clase de desarrollo.

Se puede modificar la clase de desarrollo la Transacción SE80.

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 84: Curso Basico Csti Abap

Orden de Transporte

Las órdenes o tareas sirven para gestionar objetos de Repository R/3 o de

Customizing dentro de un Sistema R/3 o para transportarlos entre diferentes

Sistemas R/3.

¿Cuándo usamos una orden de transporte?

Cada vez que se crea un objeto en el repositorio o cada vez que se realice una

modificación nos solicitará una orden de transporte.

Tipos de Ordenes:

- Orden de modificación transportable.- Grabación de las modificaciones en

objetos de Repository y su transporte a otros Sistemas R/3.

- Ordenes de modificaciones locales.- Grabación de las modificaciones en

objetos de Repository dentro de un Sistema R/3.

- Orden Customizing.- Grabación de las modificaciones en parametrizaciones

Customizing y su posible transporte a otros Sistemas R/3 o a otros

mandantes.

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 85: Curso Basico Csti Abap

Orden de Transporte

Para administrar las ordenes de Transporte podemos acceder a la transacción SE10.

Al pulsar nos permitirá crear una orden de transporte

Al pulsar ordenes propias nos permitirá seleccionar una de las órdenes definidas anteriormente

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 86: Curso Basico Csti Abap

Editando un Programa

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Código del programa

Page 87: Curso Basico Csti Abap

Elementos de Texto de un programa

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 88: Curso Basico Csti Abap

Elementos de Texto

Símbolos de texto:

Nos va a permitir asociar algún texto a un Id y utilizarlo a lo largo de

nuestro programa. Son útiles porque nos permiten traducir al idioma

deseado.

Textos de selección:

Están referidos de manera específica a los parámetros de selección del

programa.

Cabeceras de Listas:

Es útil cuando hagamos listados por impresora o por pantalla.

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 89: Curso Basico Csti Abap

Traduciendo Elementos de Texto

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 90: Curso Basico Csti Abap

Versiones de Programas

La gestión de versiones permite

tener un control de los cambios

que ha tenido un programa a lo

largo de su desarrollo.

Nos va a permitir poder comparar

el código así como también

recuperar una versión antigua.

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Versiones

Page 91: Curso Basico Csti Abap

Versiones de Programas

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Permitirá la comparación de 2 versiones seleccionadas.

Permitirá la visualización de la versión seleccionada.

Permitirá recuperar la versión antigua seleccionada.

Page 92: Curso Basico Csti Abap

Versiones de Programas

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Permitirá la visualización del texto de la orden de transporte

Permitirá comparar el programa en 2 sistemas distintos

Se específica el sistema con el cual se hará la comparación

Page 93: Curso Basico Csti Abap

Subiendo y Bajando el código de

un programa a PC

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Subir a PC

Bajar a PC

Page 94: Curso Basico Csti Abap

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 95: Curso Basico Csti Abap

ABAP/4

Programación Básica

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 96: Curso Basico Csti Abap

¿Qué es ABAP / 4?

(Advanced Business Aplication Programming 4th Generation)

El ABAP/4 es un lenguaje de programación de 4ta generación (4GL)

orientado tal como su definición específica, al desarrollo de

aplicaciones de negocios. Todos los módulos disponibles en SAP han

sido programados en este lenguaje de programación.

Además podemos escribir nuevas aplicaciones en ABAP/4 como

complemento a las ya existentes o como apoyo a la configuración del

sistema.

Es un lenguaje estructurado orientado a eventos; es decir la secuencia

de las instrucciones depende del cumplimiento de una condición o

evento.

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 97: Curso Basico Csti Abap

Características del ABAP/4

PROGRAMA SECUENCIA DE EVENTOS

SI EVENTO 1Instrucción 1Instrucción 2………Instrucción n

SI EVENTO 2Instrucción 1Instrucción 2………Instrucción n

SI EVENTO 3Instrucción 1Instrucción 2………Instrucción n

Inicio

EVENTO 2

EVENTO 3

EVENTO 1

Fin

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 98: Curso Basico Csti Abap

Aplicaciones del ABAP/4

- Reporting: Clásico o Interactivo.

- Programación de diálogo o transacciones (diseño de superficies CUA

y diseño de pantallas).

- Otras aplicaciones: Interfases Batch Input, Formularios Sap Script,

programas de comunicaciones, etc.)

Una vez instalado SAP, la principal aplicación ABAP es la generación de

informes ya sea porque no han sido contemplados por SAP o porque

en la instalación se requiera un informe con formato muy concreto.

Así pues ABAP/4 tendrá muchas instrucciones destinadas a facilitarnos

la tarea de programar reportes.

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 99: Curso Basico Csti Abap

Fundamentos de la programación

Tipos de Instrucciones

Un programa consiste en una serie de instrucciones ABAP que empieza con

una palabra clave y termina con un punto.

Tipos de palabras claves:

- Declarativas; para declarar los datos que se usarán a lo largo de todo el

programa. Ejemplo: Tables, Data, Ranges.

- Eventos; especifica un evento, es el punto donde ABAP ejecuta un cierto

proceso. Ejemplo: Start-of-selection.

- Control; sentencias de control de flujo de programa. Ejemplo: If, While, Do.

- Operativas; Realizan funciones propias según el tipo de palabra clave.

Ejemplo: Write, Move, Assign.

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 100: Curso Basico Csti Abap

Estructurando un programa

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 101: Curso Basico Csti Abap

Declarando y Procesando Datos

Tipos Long. Por

defecto

Posible

Longitud

Valor Inicial Descripción

C 1 1-32000 ESPACIOS Texto

F 8 8 0.0E+00 Punto flotante

I 4 4 0 Entero

N 1 1-32000 ´0000´ Texto Numérico

P 8 1-16 0 Número

Empaquetado

X 1 1-29870 x ´0´ Hexadecimal

D 8 8 00000000 Fecha YYYYMMDD

T 6 6 000000 Hora HHMMSS

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 102: Curso Basico Csti Abap

Declarando y Procesando Datos

Declaración de CamposSe declaran campos del reporte con la sentencia DATA.

Si no se indica un tipo de dato, el sistema asume que es de tipo carácter

(texto) y de longitud 1.

Con la cláusula TYPE podemos definir otros tipos de datos.

Ejemplo: data: fecha type d

Con la cláusula LIKE podemos declarar una variable con los mismos atributos

de longitud y tipo que una variable preexistente.

Ejemplo: data: w_lifnr like lfa1lifnr

Con la cláusula VALUE se puede inicializar una variable con un valor distinto

al que tiene por defecto.

Ejemplo: data: w_contador type p value 1

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 103: Curso Basico Csti Abap

Declarando Parámetros de Entrada

* Declarando Parámetros con Parameters:

Parameters:

par1(3) type n,

par 2 like tabla-campo,

par3 as ckeckbox default `X´,

par4 radiobutton group <n> default `X´,

par5 radiobutton group <n>.

Ejemplo:

Parameters: bldat_pa type d,

bukrs_pa like t001-bukrs,

print_pa check default `X´,

werk_pa radiobutton group RG default `X´,

Igort_pa radiobutton group RG.

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 104: Curso Basico Csti Abap

Declarando Parámetros de Entrada

* Declarando Parámetros con SELECT-OPTIONS:

SELECT-OPTIONS:

sel FOR f.

donde;

sel representa el nombre del campo

f representa la tabla-campo.

Ejemplo:

select-options:

s_gjahr for bsik-gjahr,

s_monat for bsik-monat,

s_blart for bsik-blart.

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 105: Curso Basico Csti Abap

Usando Selection-Screen

Variantes:

SELECTION-SCREEN BEGIN OF BLOCK block.SELECTION-SCREEN BEGIN OF TABBED BLOCK block FOR n LINESSELECTION-SCREEN END OF BLOCK block.

SELECTION-SCREEN TAB (len) tabname USER-COMMAND ucom.

SELECTION-SCREEN BEGIN OF LINESELECTION-SCREEN END OF LINE

SELECTION-SCREEN POSITION pos.SELECTION-SCREEN ULINESELECTION-SCREEN COMMENT fmt nameSELECTION-SCREEN PUSHBUTTON fmt name USER-COMMAND ucom.SELECTION-SCREEN SKIP n.SELECTION-SCREEN FUNCTION KEY.

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 106: Curso Basico Csti Abap

Ejemplo de Selection-Screen

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 107: Curso Basico Csti Abap

Declarando Variables,

Field Symbols y Range

* Declarando Variables * Declarando Fields Symbols

data: var1 type n, Fields-symbols:var2 like tabla-campo, <field1>,var3 type n value ´XXX´. <field2>.

Ejemplo: Ejemplo:

data: fecha like sy-datum, Fields-symbols: <monto>,company like t001-bukrs, <suma>.edad(2) type n,precio(7) type p decimals 2. Ranges:

R_RANGO for tabla-campo.

Ejemplo:

Ranges:R_BUKRS for T001-BUKRS

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 108: Curso Basico Csti Abap

Eventos

* Los Eventos pueden ser de 2 tipos:

- Asíncronos.- Pueden pasar en cualquier momento.- Síncronos.- Pasa con periocidad.

Tenemos los siguientes eventos:

INITIALIZATION.-En este evento se inicializarían todas las variables de los programas.

START-OF-SELECTION.-Se ejecuta cuando se procesa la instrucción REPORT. En ese momento se empieza a ejecutar el código que se encuentra entre REPORT y START-OF-SELECTION.Inmediatamente después se ejecuta el código contenido dentro de ese evento.

END-OF-SELECTION.-El código asociado a este evento se procesa cuando se termina la selección de datos de tablas o de base de datos lógicas.

TOP-OF-PAGE.-Se procesa antes de que el primer dato salga en cada página. Se suele usar para poner el título a las páginas o cabeceras.

END-OF-PAGE.-Se lanza cuando se crea automáticamente una nueva página. Esto ocurrirá cuando el nro de líneas procesado sobrepase el nro de lineas fijado para la página en la sentencia REPORT.No se ejecuta si se fuerza mediante NEW-PAGE

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 109: Curso Basico Csti Abap

EVENTO TOP-OF-PAGE

Report z0006 no standard page heading .

write / ‘line 1’.write / ‘line 2’.write / ‘line 3’.

Top-of-page.write: / ‘heading’,

Uline.

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 110: Curso Basico Csti Abap

Sentencias de Control

IFCASE

ENDIFENDCASE

DOWHILELOOP

ENDOENDWHILEENDLOOP

CHECKEXITSTOP

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 111: Curso Basico Csti Abap

Sentencia IF

IF <expresión lógica>.

ENDIF.IF <expresión lógica>.

ELSE.

ENDIF.IF <expresión lógica>.

ELSEIF <expresión lógica>.

ELSEIF <expresión lógica>.

ELSE.ENDIF.

sentencia

sentencia

sentencia

sentencia

sentencia

sentencia

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 112: Curso Basico Csti Abap

CASE <variable> CASE COUNTRY.

WHEN <valor1>. WHEN ‘D’.

…WHEN <valor2>. WHEN ‘USA’.

…WHEN <valor3>. WHEN ‘GB’.

…WHEN OTHERS. WHEN OTHERS.

ENDCASE. ENDCASE.

Sentencia CASE

sentencia

sentencia

sentencia

sentencia

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 113: Curso Basico Csti Abap

DO <n> TIMES.

ENDDO.

Variable de sistema, índice actual.

Sentencia DO

sentencia

SY-INDEX

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 114: Curso Basico Csti Abap

WHILE <expresión lógica>.

ENDWHILE.

Variable de sistema, índice actual.

WHILE CONTADOR > 0....

SUBTRACT 1 FROM CONTADOR.

ENDWHILE.

Sentencia WHILE

sentencias

SY-INDEX

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 115: Curso Basico Csti Abap

CHECK <expresión lógica>.

1.- CHECK dentro de una estructura de repetición

WHILE CONTADOR GT 0.

CHECK FLAG NE SPACE.

ENDWHILE.

2.- CHECK fuera de una estructura de repetición

CHECK <condición>

Sentencia CHECK

sentencias

sentencia

sentencia

sentencia

sentencia

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 116: Curso Basico Csti Abap

EXIT

1.- EXIT dentro de una estructura de repetición

DO.IF CONTADOR GE 100.EXIT.ENDIF.

ENDDO.

2.- EXIT fuera de una estructura de repetición

IF ….EXIT.

ENDIF.

Sentencia EXIT

sentencia

sentencia

sentencia

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 117: Curso Basico Csti Abap

Operadores Relacionales

Sintaxis Significado

EQ = Igual a

NE <> >< Distinto de

GT > Mayor que

GE >= => Mayor o igual que

LT < Menor que

LE <= =< Menor o igual que

BETWEEN f1 AND f2 Intervalo

IS INITIAL Valor inicial

DATA: START TYPE D,SUM1 TYPE F,SUM2 TYPE P.

IF START IS INITIAL.…ENDIF.IF SUM1 GT SUM2.…ENDIF.IF SUM1 BETWEEN 50 AND 100.…ENDIF.

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 118: Curso Basico Csti Abap

Expresiones Lógicas

CONTADOR GE 0

CONTADOR GT 0 AND

FLAG IS INITIAL

(FLAG1 NE SPACE OR FLAG2

NE SPACE) AND CONTADOR

BETWEEN 0 AND 100

CONTADOR EQ 0 AND NOT

(FLAG EQ SPACE AND FLAG2

EQ SPACE)

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 119: Curso Basico Csti Abap

Operaciones de Comparación

entre Cadenas de Caracteres

<f1> CO <f2> contiene sólo: f1 contiene sólo caracteres de f2

ACCOUNT CO ‘0123456789’

<f1> CA <f2> contiene cualquier: f1 contiene por lo menos un

caracter de f2

<f1> CS <f2> contiene cadenas de caracteres: f1 contiene la

cadena de caracteres f2

‘ABCDE’ CS ‘DE’

<f1> CP <f2> contiene patrón: f1 corresponde al modelo f2

Modelo:

* cualquier cadena de caracteres

+ cualquier carácter

‘ABXDE’ CP ‘*B+D*’

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 120: Curso Basico Csti Abap

Sentencia Select

La sentencia SELECT consiste en una serie de cláusulas donde especifican diferentes tareas:

Cláusulas mas usadas:

SELECTNombre de la sentencia

SINGLESelecciona el primer registro que cumpla con la condición, si esta cláusula es usada no es necesario colocar ENDSELECT.

*Si se desea seleccionar todos los campos.

FROM (tabla externa)Nombre de la tabla externa a utilizar.

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 121: Curso Basico Csti Abap

Sentencia Select

INTO VARIABLESSi no desea seleccionar todos los campos se puede derivar a variables, en vez de poner la cláusula * pondría los campos y luego del into las variables que van a recibir la información.

INTO CORRESPONDING FIELDS OF ESTRUCTURADeriva la información sólo a los campos con nombres iguales en la estructura.

INTO <CORRESPONDING FIELDS OF> TABLE TABLADeriva la información a una tabla interna. No es necesario colocar ENDSELECT.

WHERE/BETWEENAmbas son cláusulas de criterio de selección pero el between nos permite seleccionar el rango de un campo.

[WHERE <condiciones>][Campo Between variable de rango 1 AND variable de rango 2]

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 122: Curso Basico Csti Abap

Sentencia Select

[GROUP BY fields]Agrupa aquellos registros que tienen el mismo criterio de selección en una sola línea.

[ORDER BY order [ASCENDING] [DESCENDING]]Muestra el resultado ordenado en forma ascendente o descendente por el campo seleccionado o por la combinación de los dos si se desea ordenar por más de un campo

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 123: Curso Basico Csti Abap

Ejemplos Select

SELECT BUDAT BLDAT INTO CORRESPONDING FILEDS OF T_BKPF FROM BKPFWHERE BUKRS IN S_BUKRS AND

BELNR IN S_BELNR ANDGJAHR IN S_GJAHR.

APPEND T_BKPFENDSELECT.

SELECT * INTO TABLE T_BKPF FROM BKPFWHERE BUKRS IN S_BUKRS AND

BELNR IN S_BELNR ANDGJAHR IN S_GJAHR.

SELECT * APPENDING CORRESPONDING FIELDS OF TABLE T_BKPF FROM BKPFWHERE BUKRS IN S_BUKRS AND

BELNR IN S_BELNR ANDGJAHR IN S_GJAHR.

SELECT * APPENDING TABLE T_BKPF FROM BKPFWHERE BUKRS IN S_BUKRS AND

BELNR IN S_BELNR ANDGJAHR IN S_GJAHR.

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 124: Curso Basico Csti Abap

Sintaxis WRITE

WRITE <formato> <valor> <opciones>

<formato> /p(l)

donde / salto de líneap posición de columnal longitud de salida

<valor> campo o constante

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 125: Curso Basico Csti Abap

Sintaxis WRITE

<opciones>

NO-ZERO ROUND rNO-SIGN UNIT uNO GROUPING TIME ZONE tzDD/MM/YY EXPONENT eMM/DD/YY USING EDIT MASK maskDD/MM/YYYY USING NO EDIT MASKMM/DD/YYYY UNDER gDDMMYY NO-GAPMMDDYY LEFT-JUSTIFIEDYYMMDD CENTEREDCURRENCY w RIGHT-JUSTIFIEDDECIMALS d

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 126: Curso Basico Csti Abap

Declarando Tablas Internas

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 127: Curso Basico Csti Abap

Declarando Tipos

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

SENTENCIA TYPES

Ejemplo:

TYPES:tipo1 TYPE p DECIMALS 2,

tipo2(250) TYPE c,

BEGIN OF ty_tipo,campo1 TYPE tipo1,campo2 TYPE tipo2,

END OF ty_tipo.

Page 128: Curso Basico Csti Abap

Declarando Fields Symbols

FIELD-SYMBOLS: <XXXXX>ASSIGN (VARIABLE) TO <XXXXX>

Ejemplo:

FIELD-SYMBOLS: <POS>.DATA: W_VAR(4) TYPE C,

W_VAR2(5) TYPE C,W_TEXTO(10) TYPE C.

W_VAR = ‘YO’.W_VAR2 =‘TU’.W_TEXTO =‘W_VAR2’.

ASSIGN (W_TEXTO) TO <POS>.WRITE:/ <POS>.

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 129: Curso Basico Csti Abap

Sentencias más usadas

MOVE-CORRESPONDING: Mueve los datos de una estructura a otra, sólo de los campos con nombres iguales.

Table: TABNE.

DATA: BEGIN OF DATOS, . ….., END OF DATOS

ID NOMBRE1 CIUDAD

0001 JUAN LIMA

MOVE-CORRESPONDING TABNE TO DATOS.

FLAG ID NOMBRE CIUDAD

0001 LIMA

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 130: Curso Basico Csti Abap

Iniciando Variables y Tablas Internas

CLEAR <tab>. Inicializa todos los campos de la línea de cabecera de acuerdo a sus tipos.

REFRESH <tab>.Borra todas las líneas de la tabla. El espacio de almacenamiento de la tabla no es liberado.

FREE <tab>. Borra todas las líneas de la tabla. El espacio de almacenamiento de la tabla es liberado.

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 131: Curso Basico Csti Abap

ABAP/4

Transferencia de Datos

desde/hacia SAP

CSTI Consultoría en Tecnologías de Información

Page 132: Curso Basico Csti Abap

1.- Transferencia de Información.

SAP proporciona diferentes métodos para poder

transferir información de SAP a la PC/Servidor y

viceversa.

Transferencia de DatosCSTI Consultoría en Tecnologías de Información

Page 133: Curso Basico Csti Abap

2.- Funciones de Transferencia de Datos entre

PC/Servidor.

a) Download.

Es un procedimiento que nos permite enviar

información de las tablas SAP a otro sistema o PC a

través de una función llamada GUI_DOWNLOAD.

b) Upload.

Es un procedimiento que nos permite subir

información al sistema SAP utilizando la función

GUI_UPLOAD

Transferencia de DatosCSTI Consultoría en Tecnologías de Información

Page 134: Curso Basico Csti Abap

a) Download (Función GUI_DOWNLOAD).

Call function ‘GUI_DOWNLOAD’

exporting

filename = filename

filetype = ‘ASC’

tables

data_tab = Table

exceptions

file_open_error = 01

file_write_error = 02

invalid_filesize = 03

invalid_table_width= 04

invalid_type = 05

no_batch = 06

unknown_error = 07.

Transferencia de DatosCSTI Consultoría en Tecnologías de Información

Page 135: Curso Basico Csti Abap

b) Upload (Función GUI_UPLOAD).

Call function ‘GUI_UPLOAD’

exporting

codepage = ‘IBM’

filename = filename

filetype = ‘ASC’

importing

filelength = nflength

tables

data_tab = Table

exceptions

file_open_error = 1

file_read_error = 2

invalid_type = 3

unknown_error = 4.

Transferencia de DatosCSTI Consultoría en Tecnologías de Información

Page 136: Curso Basico Csti Abap

3.- Transferencia de datos al servidor

Para descargar archivos en servidores nativos UNIX.

OPEN DATASET FPROC FOR INPUT IN TEXT MODE .

DO.

READ DATASET FPROC INTO ASIENTO.

IF SY-SUBRC EQ 0.

APPEND ASIENTO.

CLEAR ASIENTO.

ELSE.

EXIT.

ENDIF

ENDDO.

CLOSE DATASET FPROC.

Transferencia de DatosCSTI Consultoría en Tecnologías de Información

Page 137: Curso Basico Csti Abap

Para eliminar archivos en servidores nativos UNIX.

OPEN DATASET FPROC FOR INPUT IN TEXT MODE .

DELETE DATASET FPROC.

CLOSE DATASET FPROC.

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

Transferencia de DatosCSTI Consultoría en Tecnologías de Información

Page 138: Curso Basico Csti Abap

4.- Tipos:

a. Cargas Directas: Comandos SQL:

a) Insert.

b) Update.

b. Otras cargas: a) Transacciones.

b) Batch Input Session.

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

Transferencia de DatosCSTI Consultoría en Tecnologías de Información

Page 139: Curso Basico Csti Abap

CARGAS DIRECTAS

INSERT

Inserta nuevas líneas a una base de datos.

Variantes:

1.- INSERT INTO dbtab [CLIENT SPECIFIED] VALUES wa.

2.- INSERT dbtab [CLIENT SPECIFIED].

3.- INSERT dbtab [CLIENT SPECIFIED] FROM TABLE itab

[ACCEPTING DUPLICATES KEYS].

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

Transferencia de DatosCSTI Consultoría en Tecnologías de Información

Page 140: Curso Basico Csti Abap

Ejemplos de Insert:

TABLES SCUSTOM.

SCUSTOM-MANDT = ‘999’

SCUSTOM-ID = ‘12400177’.

SCUSTOM-NAME = ‘James Bond’

SCUSTOM-POSTCODE = ‘69542’

SCUSTOM-CITY = ‘Lima’

SCUSTOM-CUSTTYPE = ‘P’

SCUSTOM-DISCOUNT = ‘007’

SCUSTOM-TELEPHONE = ‘999-2222’

INSERT INTO SCUSTOM CLIENT SPECIFIED VALUES SCUSTOM.

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

Transferencia de DatosCSTI Consultoría en Tecnologías de Información

Page 141: Curso Basico Csti Abap

UPDATE

Actualiza Valores en una base de datos.

Variantes:

1.- UPDATE dbtab [CLIENT SPECIFIED] SET s1 … sn.

2.- UPDATE dbtab [CLIENT SPECIFIED].

3.- UPDATE dbtab [CLIENT SPECIFIED] FROM TABLE

itab.

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

Transferencia de DatosCSTI Consultoría en Tecnologías de Información

Page 142: Curso Basico Csti Abap

Ejemplos de UPDATE:

TABLES SCUSTOM.

UPDATE SCUSTOM CLIENT SPECIFIED

SET TELEPHONE= ‘999-3333’

WHERE MANDT= ‘999’

AND SCUSTOM-ID = ‘12400177’

UPDATE SCUSTOM SET DISCOUNT = ‘007’

Nota: No se deben realizar las actualizaciones directas en las tablas

estándares de SAP

Transferencia de DatosCSTI Consultoría en Tecnologías de Información

Page 143: Curso Basico Csti Abap

OTRAS CARGAS

¿Qué es un Batch Input?

Es una técnica de programación de carga de datos SAP.

El Batch Input se utiliza generalmente para transferir

datos de Sistemas diferentes a SAP o para transferir

datos entre sistemas SAP.

Transferencia de DatosCSTI Consultoría en Tecnologías de Información

Page 144: Curso Basico Csti Abap

Flujo de Carga de Datos

Carga Clientes a tabla

CUSTOMER

Loop tabla CUSTOMER

Mover datos a

tabla CUSTOMER a

estructura

BDCDATA

CALL TRANSACTION ‘XD02’ USING BDCDATA

Fin del

loop

Transacción XD02 (Mant. Clientes)

Pantalla 101

Pantalla 110

Transferencia de DatosCSTI Consultoría en Tecnologías de Información

Page 145: Curso Basico Csti Abap

Screen Transaction.CALL TRANSACTION [TCODE]

Donde TCODE es el código de transacción.

Opciones:

1. …AND SKIP FIRST SCREEN.- No se visualiza la pantalla inicial de la transacción.

2. …USING itab.- Donde itab es la tabla interna.

2a. …MODE mode.- Indica los modos con los que se puede trabajar.

‘A’ Visualiza las pantallas

‘E’ Solo se visualiza en caso de error

‘N’ No se visualiza

2b. …UPDATE f.- Indica la forma de actualización.

‘A’ Asíncrona

‘B’ Síncrona

2c. …MESSAGES INTO itab.- Indica que los mensajes de retorno se almacenarán en la

tabla interna itab.

Transferencia de DatosCSTI Consultoría en Tecnologías de Información

Page 146: Curso Basico Csti Abap

Screen Transaction.

call transaction ‘XD02’ using bdcdata

mode modo

update ‘S’

if sy-subrc <> 0.

message id sy-msgid

type sy-msgty

number sy-msgno

with sy-msgv1

sy-msgv2

sy-msgv3

sy-msgv4

into texto.

Write: / texto, str-kunnr.

Endif.

Transferencia de DatosCSTI Consultoría en Tecnologías de Información

Page 147: Curso Basico Csti Abap

Ejemplo:DATA BEGIN OF BDCDATA OCCURS 100.

INCLUDE STRUCTURE BDCDATA.DATA END OF BDCDATA.DATA BEGIN OF MESSTAB OCCURS 10.

INCLUDE STRUCTURE BDCMSGCOLL.DATA END OF MESSTAB.DATA REPORT(8).

BDCDATA-PROGRAM = ‘SAPMS38M’ .BDCDATA-DYNPRO = ‘0100’ .BDCDATA-DYNBEGIN = ‘X’ .APPEND-BDCDATA.CLEAR BDCDATA.BDCDATA-FNAM = ‘RS38M-PROGRAMM’BDCDATA-FVAL = REPORT.APPEND BDCDATA.…CALL TRANSACTION ‘SE38’ USING MODE ´N´

MESSAGES INTO MESSTAB.

Transferencia de DatosCSTI Consultoría en Tecnologías de Información

Page 148: Curso Basico Csti Abap

BDC Session.

BDC (Batch Data Communication)

El BDC es una combinación de programación ABAP/4 y la

utilización de transacciones SAP.

Esta simula ingreso de datos por pantalla igual que

cualquier usuario lo realizaría.

Transferencia de DatosCSTI Consultoría en Tecnologías de Información

Page 149: Curso Basico Csti Abap

• Funcionalidad

Análisis

Manejo

Ejecución

• El contenido de la sesión.

• Los datos del Batch Input.

• El archivo Log.

• Eliminar sesiones selectivamente.

• Cambios en la sesión

• Mostrar toda la carga.

• Mostrar sólo los erróneos.

• No mostrar datos de carga

Transferencia de DatosCSTI Consultoría en Tecnologías de Información

Page 150: Curso Basico Csti Abap

Funciones BDC.

Función Descripción

BDC_OPEN_GROUP Abre cola para guardar la data del

Batch Input

BDC_INSERT Transfiere data al batch Input

BDC_CLOSE_GROUP Cierra la cola después de guardar

el Batch Input

Transferencia de DatosCSTI Consultoría en Tecnologías de Información

Page 151: Curso Basico Csti Abap

Flujo de Carga tipo BDCCarga Clientes a tabla

CUSTOMER

Loop tabla CUSTOMER

Mover datos a tabla CUSTOMER a estructura

BDCDATA

Call Function BDC_INSERT

Exporting

TCODE = ‘XD02’

Tables

DYNPROTAB = BDCDATA

Fin del

loop

Call Function

BDC_OPEN_GROUP

Call Function BDC_CLOSE_GROUP

Transferencia de Datos

Transacción XD02 (Mant. Clientes)

Pantalla 101

Pantalla 110

CSTI Consultoría en Tecnologías de Información

Page 152: Curso Basico Csti Abap

Liberar una sesión Batch Input Creada.

SUBMIT [REPORT]

Donde REPORT es el nombre de un programa.

Este comando permite la llamada a un reporte desde un programa.

submit rsbdcsub

With mappe = sesiname “Session name

With von = sy-datum “Creation Date (From)

With bis = ‘ ‘ “Creation Date (To)

With z_verarb = ‘X’ “Session to be processed

With fehler = ‘ ‘ “Incorrect Sessions

With batchsys = ‘ ‘ “Background System Target Host

With logall = ‘ ‘ “Extended Log

And return.

Transferencia de DatosCSTI Consultoría en Tecnologías de Información

Page 153: Curso Basico Csti Abap

Consideraciones.

- Identificar las pantallas y los campos a los cuales se le asignarán valores.

- Identificar el nombre de la transacción, nombre de la pantalla y el nombre

de los campos.

- Identificar el método de Batch Input a utilizar.

- Usar la transacción SHDB para obtener la secuencia de pantallas que se

emplearán en el Batch Input.

Transferencia de DatosCSTI Consultoría en Tecnologías de Información

Page 154: Curso Basico Csti Abap

Batch Input Session

-Transfiere datos a multiples transacciones.

- Actualiza sincrónicamente las Bases de Datos.

- Genera un log.

- Las sesiones no pueden ser generadas en paralelo.

¿Qué método usar?

Call Transaction

-Transfiere datos a una sola transacción.

- Actualiza sincrónicamente o asincrónicamente la B.D.

- No genera un log.

Transferencia de DatosCSTI Consultoría en Tecnologías de Información

Page 155: Curso Basico Csti Abap

Transacción SM35

Transferencia de DatosCSTI Consultoría en Tecnologías de Información

Page 156: Curso Basico Csti Abap

Transferencia de Datos

Analizar la Sesión

Ejecuta la Sesión

Visualizar Estadísticas

Visualizar y Analizar Log

Grabación

CSTI Consultoría en Tecnologías de Información

Page 157: Curso Basico Csti Abap

Transferencia de DatosCSTI Consultoría en Tecnologías de Información

Page 158: Curso Basico Csti Abap

Transferencia de Datos

Transacción ejecutada

Estado del proceso

CSTI Consultoría en Tecnologías de Información

Page 159: Curso Basico Csti Abap

Transferencia de Datos

Visualizar el Log

Visualizar la pantalla de ingreso con valores

CSTI Consultoría en Tecnologías de Información

Page 160: Curso Basico Csti Abap

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 161: Curso Basico Csti Abap

ABAP/4Tablas Internas

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 162: Curso Basico Csti Abap

Nueva Declaración de Tablas Internas

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

DATA t_tabla_interna TYPE [ STANDARD / SORTED / HASHED ] TABLEOF [ tipo simple / tipo estructurado ][ WITH HEADER LINE ]WITH [ DEFAULT / UNIQUE / NON-UNIQUE ] KEY

[ campo_clave1campo_clave2… ]

Page 163: Curso Basico Csti Abap

* DEFINICION DE TABLAS

TABLES: TABNA

* DEFINICION DE TABLAS INTERNAS

DATA: BEGIN OF TAB ACCURS 5,

COUNTRY LIKE TABNA-COUNTRY,

ID LIKE TABNA-ID,

SALES LIKE TABNA-SALES.

DATA: END OF TAB.

*INICIO DEL PROGRAMA

START-OF-SELECTION.

SELECT * FROM TABNA.

MOVE-CORRESPONDING TABNA TO TAB

APPEND TAB.

END SELECT.

Sentencia APPEND

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 164: Curso Basico Csti Abap

Sentencia COLLECT

COLLECT <tab>

TABLES: TABNA.

DATA: BEGIN OF TAB OCCURS 10,COUNTRY LIKE TABNA-COUNTRY,SALES LIKE TABNA-SALES,

END OF TAB.

SELECT * FROM TABNA.MOVE-CORRESPONDING TABNA TO

TAB.COLLECT TAB.

ENDSELECT.

COUNTRY SALES

D 500 000

USA 1 000 000

GB 2 000 000

D 700 000

Línea Cabecera

1200 000

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 165: Curso Basico Csti Abap

Sentencia Usadas en

Tablas Internas

SORT TAB.SORT TAB BY COUNTRY NAME1.SORT TAB BY COUNTRY ASCENDING

NAME1 DESCENDING.

LOOP AT TAB. LOOP AT TAB WHERE COUNTRY.…. BETWEEN ‘A’ AND ‘D’.END LOOP. ….

END LOOP.

PARAMETERS : INICIO LIKE SY-TABIX DEFAULT ‘10’,FIN LIKE SY-TABIX DEFAULT ‘20’.

LOOP AT TAB FROM INICIO TO FIN.….END LOOP

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 166: Curso Basico Csti Abap

Sentencia Usadas en

Tablas Internas

READ TABLE <tab>.READ TABLE <tab> WITH KEY <campo> = <var>…READ TABLE <tab> INDEX <i>.

INSERT <tab> INDEX <i>.MODIFY <tab> INDEX <i>.DELETE <tab> INDEX <i>.

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 167: Curso Basico Csti Abap

Quiebres en Tablas Internas

LOOP AT TAB.

AT NEW <campo>.….

ENDAT.

AT END OF <campo>.….

ENDAT.

AT FIRST.….

ENDAT.

AT LAST.….

ENDAT.

AT fg.….

ENDAT.

ENDLOOP.

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 168: Curso Basico Csti Abap

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 169: Curso Basico Csti Abap

ABAP/4Anexos

CSTI Consultoría en Tecnologías de Información

Page 170: Curso Basico Csti Abap

MODIFY

Format:

MODIFY table.

Ejemplo:

process before output.

Loop at t cursor c.

Endloop.

Process after input.

Lopp at t.

Field t-field1,

modify t index c.

Endloop.

Anexos (comandos)CSTI Consultoría en Tecnologías de Información

Page 171: Curso Basico Csti Abap

EXPORT

Format:

EXPORT obj1 … TO MEMORY

Adiciones:

1.- …TO g (por cada campo f a ser exportado)

2.- …ID key

Anexos (comandos)CSTI Consultoría en Tecnologías de Información

Page 172: Curso Basico Csti Abap

IMPORT

Format:

IMPORT obj1 … FROM MEMORY

Adiciones:

1.- …TO g (por cada campo f a ser importado)

2.- …ID key

Anexos (comandos)CSTI Consultoría en Tecnologías de Información

Page 173: Curso Basico Csti Abap

LEAVE

Variantes:

1.- LEAVE PROGRAM.

2.- LEAVE TO TRANSACTION tcod.

3.- LEAVE TO SCREEN scr.

4.- LEAVE SCREEN.

5.- LEAVE TO LIST-PROCESSING.

6.- LEAVE LIST-PROCESSING.

Anexos (comandos)CSTI Consultoría en Tecnologías de Información

Page 174: Curso Basico Csti Abap

SUBMIT

Format

SUBMIT <rep>

Adiciones:

1.- … LINE-SIZE col

2.- … LINE-COUNT lin

3.- … VIA SELECTION-SCREEN

4.- … AND RETURN

Anexos (comandos)CSTI Consultoría en Tecnologías de Información

Page 175: Curso Basico Csti Abap

SET

Variantes:

1.- SET PF-STATUS pfstat.

2.- SET TITLEBAR f.

3.- SET SCREEN scr.

4.- SET CURSOR …

5.- SET LANGUAGE lg.

Anexos (comandos)CSTI Consultoría en Tecnologías de Información

Page 176: Curso Basico Csti Abap

GET CURSOR

Variantes:

1.- GET CURSOR FIELD f.

2.- GET CURSOR LINE lin.

Anexos (comandos)CSTI Consultoría en Tecnologías de Información

Page 177: Curso Basico Csti Abap

EXIT

Variantes:

1.- EXIT.

2.- EXIT FROM STEP-LOOP.

Anexos (comandos)CSTI Consultoría en Tecnologías de Información

Page 178: Curso Basico Csti Abap

Laboratorio 2: Lenguaje ABAP

Laboratorio Lenguaje AbapCSTI Consultoría en Tecnologías de Información

1. Crear Programa para actualizar stock y precio en tabla de productos. Ingresar 3 campos : Código de producto y nuevo stock y precio ,

Validar que el producto exista y el nuevo stock y precio no sean negativos. Mostrar datos de producto modificado y stock y precio antiguo y nuevos.

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

Page 179: Curso Basico Csti Abap

Laboratorio Lenguaje AbapCSTI Consultoría en Tecnologías de Información

2. Cargar por batch input un archivo plano con los datos de empleados

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

Page 180: Curso Basico Csti Abap

Laboratorio Lenguaje AbapCSTI Consultoría en Tecnologías de Información

3. Crear un programa que cargue desde/descargue hacia archivo plano la tabla de facturas (con inserción directa).

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

Page 181: Curso Basico Csti Abap

Listas

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 182: Curso Basico Csti Abap

Sentencia REPORT

REPORT es la sentencia inicial de un programa de listas, pero tiene adiciones que le permiten modificar el formato del listado generado.

REPORT[NO STANDARD PAGE HEADING] [LINE-SIZE width] [LINE-COUNT page_lines[(footer_lines)]]

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 183: Curso Basico Csti Abap

Eventos

TOP-OF-PAGE.Evento que se ejecuta al inicio de una página. Usado para crear cabeceras de página.

END-OF-PAGE.Evento que se ejecuta al finalizar una página si es que se ha hecho una reserva de espacio para pie de página en la declaración del reporte.

Ejemplo:

REPORT zreporte LINE-COUNT 28(4).

TOP-OF-PAGE.* Se ejecuta antes de la primera sentencia WRITE de cada página

END-OF-PAGE.* Se ejecuta antes de una sentencia WRITE que vaya a crear una nueva página.

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 184: Curso Basico Csti Abap

Sentencia WRITE

WRITE permite escribir datos en un listado.

WRITE <formato> <valor> <opciones>

<formato> /p(l)

donde / salto de líneap posición de columnal longitud de salida

<valor> campo o constante

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 185: Curso Basico Csti Abap

Las opciones de WRITE afectan el formato de datos antes de ser mostrados.

<opciones>

NO-ZERO ROUND rNO-SIGN UNIT uNO GROUPING TIME ZONE tzDD/MM/YY EXPONENT eMM/DD/YY USING EDIT MASK maskDD/MM/YYYY USING NO EDIT MASKMM/DD/YYYY UNDER gDDMMYY NO-GAPMMDDYY LEFT-JUSTIFIEDYYMMDD CENTEREDCURRENCY w RIGHT-JUSTIFIEDDECIMALS d

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información Sentencia WRITE

Page 186: Curso Basico Csti Abap

Sentencia FORMAT

FORMAT permite modificar el formato externo de la salida de un dato.

FORMAT [COLOR {{{color [ON]}|OFF}|{= col}}] [INTENSIFIED [{ON|OFF}|{= flag}]] [INVERSE [{ON|OFF}|{= flag}]] [HOTSPOT [{ON|OFF}|{= flag}]] [INPUT [{ON|OFF}|{= flag}]] [FRAMES [{ON|OFF}|{= flag}]] [RESET].

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 187: Curso Basico Csti Abap

Otras sentencias

SKIP n .Permite dejar “n” líneas en blanco al escribir una lista. Si n es 1 puede ser obviado.

ULINE.Permite dibujar una línea horizontal.Utilizando la adición AT puede establecerse un inicio y longitud para la línea.

NEW-PAGE.Permite cambiar de página.

POSITION pos.Posiciona al cursor en la posición “pos” de la línea actual.

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 188: Curso Basico Csti Abap

Quiebres en Tablas Internas

LOOP AT TAB.

AT NEW <campo>.….

ENDAT.

AT END OF <campo>.….

ENDAT.

AT FIRST.….

ENDAT.

AT LAST.….

ENDAT.

AT fg.….

ENDAT.

ENDLOOP.

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 189: Curso Basico Csti Abap

Laboratorio 3: Listas

Laboratorio ListasCSTI Consultoría en Tecnologías de Información

1. Crear listado de productos agrupándolos por laboratorio y ordenados por nombre y fecha de vencimiento

En la pantalla de selección colocar los siguientes filtros:

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

Page 190: Curso Basico Csti Abap

CSTI Consultoría en Tecnologías de Información

Mostrar un reporte similar al siguiente. Utilice los eventos adecuados para generar la cabecera del reporte.

Laboratorio Listas

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

Page 191: Curso Basico Csti Abap

CSTI Consultoría en Tecnologías de Información

2. Crear un listado de clientes, para cada cliente mostrar sus facturas y para cada factura mostrar los productos, en un esquema escalonado.

En la pantalla de selección colocar los siguientes parámetros:

Laboratorio Listas

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

Page 192: Curso Basico Csti Abap

CSTI Consultoría en Tecnologías de Información

Ordenar el reporte de la siguiente manera.

Laboratorio Listas

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

Page 193: Curso Basico Csti Abap

Reportes

Interactivos

Conceptos & Comandos

CSTI Consultoría en Tecnologías de Información

Page 194: Curso Basico Csti Abap

Son una forma de combinar las instrucciones de formato de

listados, los eventos y pantallas de selección, la unión de estas tres

cosas nos permite por ejemplo, que un usuario introduzca un dato

(a través de la pantalla de selección) seguidamente controlar si

pulsó una tecla (a través de los eventos) y por último dependiendo

de que tecla se pulso visualizar un tipo de listado u otro a través de

las órdenes de formateo de listado.

Reportes InteractivosCSTI Consultoría en Tecnologías de Información

Reportes Interactivos

Page 195: Curso Basico Csti Abap

Visualización General

Reportes InteractivosCSTI Consultoría en Tecnologías de Información

Listados

Secundarios

Ejecutar una

transacción

Windows

Ejecutar un reporte

Reportes

Interactivos

Page 196: Curso Basico Csti Abap

EventosReport DEMO.

START-OF-SELECTION.

END-OF-SELECTION

TOP-OF-PAGE

* Interactive Reporting

AT Pfnn.

AT LINE-SELECTION.

AT USER-COMMAND

TOP-OF-PAGE DURING LINE-SELECTION.

Reportes InteractivosCSTI Consultoría en Tecnologías de Información

sentencia

sentencia

sentencia

sentencia

sentencia

sentencia

sentencia

Page 197: Curso Basico Csti Abap

Cabecera de Página

Reportes InteractivosCSTI Consultoría en Tecnologías de Información

Listado

Básico

Listado

Secundario

Text

element

Choose

REPORT DEMO.TOP-OF-PAGE DURING LINE SELECTION.

TOP-OF-PAGE

Page 198: Curso Basico Csti Abap

Listas Secundarias & SY-LSIND

Reportes InteractivosCSTI Consultoría en Tecnologías de Información

Listado Básico

Escoger

1. Listado

secundario

Escoger

2. Listado

secundario

Escoger

3. Listado

secundario

SY-LSIND:0

SY-LSIND:1

SY-LSIND:2

Page 199: Curso Basico Csti Abap

Uso de HIDE: Seleccionar Data

Reportes InteractivosCSTI Consultoría en Tecnologías de Información

Cod. Area Nombre

01 A1 Luis Flores

01 A2 Rosa Figueroa

01 A2 Juan Flores

HIDE AREA

“ZTREMP-COD “ 01

“ZTREMP-AREA “ A1

“ZTREMP-COD “ 01

“ZTREMP-AREA “ A2

“ZTREMP-COD “ 02

“ZTREMP-AREA “ A2

Page 200: Curso Basico Csti Abap

Uso de HIDE: Seleccionar Data II

Reportes InteractivosCSTI Consultoría en Tecnologías de Información

Cod. Area Nombre

01 A1 Luis Flores

01 A2 Rosa Figueroa

01 A2 Juan Flores

HIDE AREA

“ZTREMP-COD “ 01

“ZTREMP-AREA “ A1

“ZTREMP-COD “ 01

“ZTREMP-AREA “ A2

“ZTREMP-COD “ 02

“ZTREMP-AREA “ A201 A1 Luis Flores

01 A1ZTREMP-COD

ZTREMP-AREA

Page 201: Curso Basico Csti Abap

Validación de la Línea de Selección

Reportes InteractivosCSTI Consultoría en Tecnologías de Información

HIDE AREA

“ZTREMP-COD “ 01

“ZTREMP-AREA “ A1

“ZTREMP-COD “ 01

“ZTREMP-AREA “ A2

“ZTREMP-COD “ 02

“ZTREMP-AREA “ A2

Page 202: Curso Basico Csti Abap

Campos del Sistema (SY)

Reportes InteractivosCSTI Consultoría en Tecnologías de Información

SY-LSIND = 0

SY-LSIND = 1

SY-LSIND = 2

SY-STARO

SY-STACO

SY-CPAGE

SY-CUCOL

SY-CUROW

Page 203: Curso Basico Csti Abap

Ejemplo Nro. 1

Reportes InteractivosCSTI Consultoría en Tecnologías de Información

1

2

3

Page 204: Curso Basico Csti Abap

Ejemplo Nro. 2

Reportes InteractivosCSTI Consultoría en Tecnologías de Información

1

2

Page 205: Curso Basico Csti Abap

Ejemplo Nro. 3

Reportes InteractivosCSTI Consultoría en Tecnologías de Información

1

2

3

Page 206: Curso Basico Csti Abap

SUMARIO

Reportes InteractivosCSTI Consultoría en Tecnologías de Información

-Se puede usar reportes interactivos para poder proveer al usuario estructuras de información adicionales y claras en una lista secundaria o ventanas.

- Para generar listas secundarias o ventanas, varios eventos especiales están disponibles que pueden ser ejecutados activando la tecla de función o vía clic del mouse.

- Además de la lista primaria, pueden haber adicionalmente veinte listas secundarias. El campo del sistema SY-LSIND contiene el índice de la lista ha ser generada por el reporte.

Page 207: Curso Basico Csti Abap

SUMARIO II

Reportes InteractivosCSTI Consultoría en Tecnologías de Información

- Para guardar data para las listas secundarias, se usa el comando HIDE. El sistema guarda el nombre del campo y su contenido por línea. Cuando un evento interactivo es ejecutado, el valor guardado en el área HIDE es regresado al campo original.

- Cabeceras de páginas para listas secundarias son definidas en el evento TOP-OF-PAGE DURING LINE-SELECTION.

Page 208: Curso Basico Csti Abap

Laboratorio 4: Reportes Interactivos

Laboratorio Reportes InteractivosCSTI Consultoría en Tecnologías de Información

1. Extender el reporte de Facturación por Cliente (Laboratorio 3, ejercicio 2). - Cuando se de doble click en el código o nombre del cliente, debe abrirse un nuevo listado

mostrando los datos completos del mismo. - Cuando se de doble click en el producto, se debe mostrar los datos completos del producto.

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

Page 209: Curso Basico Csti Abap

Menu Painter

Conceptos & Usos

CSTI Consultoría en Tecnologías de Información

Page 210: Curso Basico Csti Abap

- Es una herramienta del Workbench que nos permite crear

una interface gráfica para el usuario (GUI).

- La interface gráfica permite la visualización de los códigos de

función; esto significa hacer programas de fácil uso.

Menu PainterCSTI Consultoría en Tecnologías de Información

¿Qué es el Menu Painter?

Page 211: Curso Basico Csti Abap

Accediendo al Menu Painter

Menu PainterCSTI Consultoría en Tecnologías de Información

Mediante la transacción SE41

Page 212: Curso Basico Csti Abap

Creando un Status

Menu PainterCSTI Consultoría en Tecnologías de Información

Tipos de Status

Status Diálogo.- Una imagen de pantalla para el diálogo entre usuario y programa. Los dynpros de diálogo tienen campos de entrada y salida.

Ventana Diálogo.- Este tipo crea un status para una ventana de diálogo sin barra de menús. Para la definición de teclas de función, el sistema propone los códigos de función estándar para ventanas de diálogo.

Menú Contextual.- Contiene solo teclas de función.

Page 213: Curso Basico Csti Abap

Interface de un Status

Menu PainterCSTI Consultoría en Tecnologías de Información

Barra de Titulo

Barra de Pulsadores

Barra de Menú

Barra de Herramientas

GUI Title

GUI Status

GUI Status

Page 214: Curso Basico Csti Abap

Adicionando la barra de menú

Menu PainterCSTI Consultoría en Tecnologías de Información

Asignamos las siguientes funciones

Al dar doble click

Page 215: Curso Basico Csti Abap

Adicionando la barra de pulsadores

Menu PainterCSTI Consultoría en Tecnologías de Información

Al dar doble click

1

2

3

4

Page 216: Curso Basico Csti Abap

Adicionando la barra de herramientas

Menu PainterCSTI Consultoría en Tecnologías de Información

Page 217: Curso Basico Csti Abap

Activando un Status

Menu PainterCSTI Consultoría en Tecnologías de Información

Para activar un status:

•Pulsar CTRL + F3

•Pulsar

•Desde el menú

Nota:

Debemos activar el status siempre que hayamos realizado una modificación.

Page 218: Curso Basico Csti Abap

Llamando a un Status

Menu PainterCSTI Consultoría en Tecnologías de Información

Para acceder a un status desde nuestro programa debemos tener lasiguiente sentencia:

SET PF-STATUS ‘NOMBRE’.

Page 219: Curso Basico Csti Abap

Objetos de Interface de Usuario

Menu PainterCSTI Consultoría en Tecnologías de Información

Permite mostrar todos los objetos de interface de usuario que posee el programa actual.

Page 220: Curso Basico Csti Abap

Listas de Status

Menu PainterCSTI Consultoría en Tecnologías de Información

Permite mostrar todos los GUI Status que posee el programa actual.

Page 221: Curso Basico Csti Abap

Barra de Menú

Menu PainterCSTI Consultoría en Tecnologías de Información

Permite mostrar todos las barras de menú ordenadas por status

Page 222: Curso Basico Csti Abap

Lista de Menú

Menu PainterCSTI Consultoría en Tecnologías de Información

Permite mostrar la lista de todos los menús creados para el programa

Page 223: Curso Basico Csti Abap

Definiciones de Teclas de Función

Menu PainterCSTI Consultoría en Tecnologías de Información

Permite mostrar la lista de todas las teclas de función

Page 224: Curso Basico Csti Abap

Definiciones de Teclas de Función

Menu PainterCSTI Consultoría en Tecnologías de Información

Permite mostrar la lista de todas los códigos de función

Page 225: Curso Basico Csti Abap

Lista de Títulos

Menu PainterCSTI Consultoría en Tecnologías de Información

Creación

Visualización y Modificación

Page 226: Curso Basico Csti Abap

Llamando a un Título

Menu PainterCSTI Consultoría en Tecnologías de Información

Para acceder a un Título desde nuestro programa debemos tener la siguiente sentencia:

SET TITLEBAR ‘TITULO’.

Titulo

Page 227: Curso Basico Csti Abap

Otras Operaciones

Menu PainterCSTI Consultoría en Tecnologías de Información

Elimina todos los componentes de la interfase de usuario.

Elimina el status previamente indicado.

Copia de un programa a otro todos los componentes de la interfase de usuario.

Copia de un programa a otro un status.

Renombra la interfase de usuario.

Page 228: Curso Basico Csti Abap

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 229: Curso Basico Csti Abap

Screen Painter

Conceptos & Usos

CSTI Consultoría en Tecnologías de Información

Page 230: Curso Basico Csti Abap

¿Qué es el Screen Painter?

Screen PainterCSTI Consultoría en Tecnologías de Información

- Screen Painter es una herramienta del ABAP Workbench

que permite crear Dynpros (Dynamic Program) para sus

transacciones y/o programas.

- Una Dynpro es la combinación de un screen asociado a un

flujo lógico.

Page 231: Curso Basico Csti Abap

Accediendo al Screen Painter

Screen PainterCSTI Consultoría en Tecnologías de Información

Aquí ingresamos el nombre del programa y el número de la dynpro que deseamos crear.

Mediante la transacción SE51

Componentes

Page 232: Curso Basico Csti Abap

Componentes

Screen PainterCSTI Consultoría en Tecnologías de Información

• Lógica del Proceso .- Controla el flujo del programa (Código de la dynpro).

• Lista de Elementos .- Elementos del screen. Definidos en el ABAP/4 Dictionary o en el programa.

• Atributos .- Describe al objeto dynpro. Incluye al programa al que pertenece y el tipo de Screen.

• Editor Disposición .- Contiene un conjunto de elementos. Los elementos son partes del screen con los que interactúa el usuario. Incluye por ejemplo los checkboxes, cajas de texto, etiquetas, etc.

Page 233: Curso Basico Csti Abap

Creando una Dynpro

Screen PainterCSTI Consultoría en Tecnologías de Información

Definiendo los atributos

Page 234: Curso Basico Csti Abap

Lista de Atributos

Screen PainterCSTI Consultoría en Tecnologías de Información

• Program• Screen Number• Descripción• Idioma• Ultima Modificación• Ultima Generación• Tipos Dynpro• Opciones:

• Retener Datos• Desactivar Comprob. Tmpo. ej.• Modelo: No ejec.• Mant. Pos. desplaz.

• Dynpros Siguiente.• Posición Cursor• Grupo Dynpros• Líneas / Columnas usadas• Líneas / Columnas actuales• Menú de contexto

Page 235: Curso Basico Csti Abap

Modos de EditorEntorno Gráfico del Editor

Screen PainterCSTI Consultoría en Tecnologías de Información

Área de trabajo

Elementos

Page 236: Curso Basico Csti Abap

Entorno Texto del Editor

Screen PainterCSTI Consultoría en Tecnologías de Información

Área de trabajo

Elementos

Page 237: Curso Basico Csti Abap

Elementos del Screen (Gráfico)

Screen PainterCSTI Consultoría en Tecnologías de Información

Texto

Checkbox

Pushbutton

BoxSubscreen

Status

Campo entrada/salida

Radiobutton

Tabstrip

Table Control

Custom Control

Page 238: Curso Basico Csti Abap

Crear Elementos

Screen PainterCSTI Consultoría en Tecnologías de Información

Page 239: Curso Basico Csti Abap

Atributos del Elemento

Screen PainterCSTI Consultoría en Tecnologías de Información

Características

Funciones

Atributos

Page 240: Curso Basico Csti Abap

Lista de Elementos (Gráfico)

Screen PainterCSTI Consultoría en Tecnologías de Información

Page 241: Curso Basico Csti Abap

Definición de LOOP

Screen PainterCSTI Consultoría en Tecnologías de Información

Page 242: Curso Basico Csti Abap

Ejemplo de LOOP

Screen PainterCSTI Consultoría en Tecnologías de Información

Editor de Disposición

Lógica del Proceso

Page 243: Curso Basico Csti Abap

Ejemplo de LOOP

Screen PainterCSTI Consultoría en Tecnologías de Información

Page 244: Curso Basico Csti Abap

Table Control (Gráfico)

Screen PainterCSTI Consultoría en Tecnologías de Información

Table Control

Texto

Page 245: Curso Basico Csti Abap

Table Control - Atributos

Screen PainterCSTI Consultoría en Tecnologías de Información

C/cabcol .- Si está marcado; se asigna una línea de cabecera de columnas al table control, con lo que cada columna (excepto las columnas para marcar líneas) podrá tener una cabecera. Configurable .- Si está marcado, el atributo ‘ Posibilidad de configurar’influye en la posibilidad de almacenar las modificaciones realizadas por el usuario en la secuencia y el ancho de las columnas.C/Título .- El atributo determina, si el table control puede llevar un título o no en la línea superior.Resizing.- Este atributo controla el comportamiento del elemento de dynpro cuando se modifica manualmente la altura/anchura de ventana.Líneas Separación .- Este atributo sirve para modificar el aspecto de la tabla. Cuando está activado, se visualizan líneas de separación verticalesy/o horizontales.Marcar Línea .- El atributo permite marcar líneas, controla el número de líneas de una tabla que pueden marcarse al mismo tiempo.Marcar Columna .- El atributo permite marcar columnas, controla el número de columnas de una tabla que pueden marcarse al mismo tiempo.C.Marc. Col .- Este atributo crea una columna adicional con pulsadores delante del primer campo de la tabla.Col. Fijas.- Este atributo influye en la posibilidad de desplazar columnas mediante el ratón y al pasar páginas horizontalmente.

Page 246: Curso Basico Csti Abap

Ejemplo de Table Control

Screen PainterCSTI Consultoría en Tecnologías de Información

Editor de Disposición

Lógica del Proceso

Page 247: Curso Basico Csti Abap

Screen PainterCSTI Consultoría en Tecnologías de Información

Ejemplo de Table Control

Page 248: Curso Basico Csti Abap

¿Qué es Tabstrib Control?

Screen PainterCSTI Consultoría en Tecnologías de Información

Un control Tabstrip es un objeto screen que consiste de dos o más páginas.

Cada página de la lengüeta tiene un título y un área de página. Si el área ocupada por el control Tabstrip es demasiado estrecha no se exhibirán todos los título de la lengüeta, entonces aparecerá un srollbar.

Los controles de Tabstrip permiten que usted coloque una serie de pantallas que pertenecen a un uso en una sola pantalla, y que navegue entre ellas fácilmente.

Page 249: Curso Basico Csti Abap

Características del Tabstrip Control

Screen PainterCSTI Consultoría en Tecnologías de Información

• El área del tabstrip tiene un nombre único y una posición, una longitud y una altura.

• El área del tabstrip se puede volver a clasificar según el tamaño vertical u horizontal cuando el usuario vuelva a clasificar según el tamaño de la ventana.

• Todas las páginas de la lengüeta residen localmente en el SAPgui.

• Cuando el usuario está trabajando en una página de la lengüeta, los cheques de la entrada pueden saltar a un campo obligatorio sin llenar en otra página.

• Cuando el usuario elije una página de la lengüeta, se acciona el acontecimiento del PAI, y usted debe incluir un módulo en su lógica del flujo que active la página.

Page 250: Curso Basico Csti Abap

Al crear un Tabstrip Control

Screen PainterCSTI Consultoría en Tecnologías de Información

• Definir el área de la lengüeta en una screen y los títulos de la lengüeta.• Asigne al subscreen área a cada cada título de la lengüeta.• Programe la lógica del flujo de la pantalla.• Programe la lógica de proceso de ABAP.

Texto o lengüeta del Tabstrip

Área del Tabstrip

Pantalla del Tabstrip

+

+

Page 251: Curso Basico Csti Abap

Pantalla de un Tabstrip Control

Screen PainterCSTI Consultoría en Tecnologías de Información

Page 252: Curso Basico Csti Abap

Ejemplo de Tabstrip Control

Screen PainterCSTI Consultoría en Tecnologías de Información

Page 253: Curso Basico Csti Abap

Flow Logic

Screen PainterCSTI Consultoría en Tecnologías de Información

• Inicializar variables• Inserta valores por defecto• Posicionamiento del cursor• Mostrar y Ocultar campos• Modificar dinámicamente los atributos de un campo• Definición Títulos• Definición de Barra de Menú y Botones• Carga de datos

PBO DISPLAY PAYINPUT ACTION

• Mostrar datos procesados• Mostrar Dynpro

• Validar Información• Procesar Función seleccionada• Llamadas a nuevos Dynpro• Manejar errores

Page 254: Curso Basico Csti Abap

Flow Logic

Screen PainterCSTI Consultoría en Tecnologías de Información

Doble click en el nombre del módulo nos muestra la siguiente ventana.

Al confirmar, deberemos seleccionar el programa o include para crear el módulo.

Page 255: Curso Basico Csti Abap

Flow Logic Command

Screen PainterCSTI Consultoría en Tecnologías de Información

Formato:

PROCESS

Variantes:

1. PROCESS BEFORE OUTPUT2. PROCESS AFTER INPUT3. PROCESS ON HELPREQUEST4. PROCESS ON VALUE-REQUEST

PROCESS

Page 256: Curso Basico Csti Abap

Screen PainterCSTI Consultoría en Tecnologías de Información

Process Before Output (PBO)Es automáticamente ejecutado antes de que el screen sea visualizado.

Process After Input (PAI)Es ejecutado cuando el usuario elige una tecla de función o ingresa algún dato en la pantalla.

Process On Help-Request (POH)Es ejecutado cuando el usuario pulsa F1 sobre un campo definido en el screen.

Process On Value-Request (POV)Es ejecutado cuando el usuario pulsa F4 sobre un campo definido en el screen.

PROCESS

Page 257: Curso Basico Csti Abap

Screen PainterCSTI Consultoría en Tecnologías de Información

PROCESS

Keyword Function

MODULE Llama a un módulo en un programa Abap/4

FIELD Determina los campos que se verán involucrados en el módulo del programa

ON Usado en conjunción con FIELD

VALUES Usado en conjunción con FIELD

Page 258: Curso Basico Csti Abap

Screen PainterCSTI Consultoría en Tecnologías de Información

Formato:

MODULE <module>

Variantes:

1. …ON INPUT (In PAI with field assigment)2. …ON CHAIN-INPUT (In PAI with field assigment)3. …ON REQUEST ((In PAI with field assigment)4. …ON CHAIN-REQUEST (In PAI with field assigment)5. …ON-INPUT (In PAI with field assigment)6. …AT CURSOR-SELECTION (In PAI with field assigment)7. …AT EXIT-COMMAND (In PAI).

MODULE

Page 259: Curso Basico Csti Abap

Screen PainterCSTI Consultoría en Tecnologías de Información

MODULE

Page 260: Curso Basico Csti Abap

Screen PainterCSTI Consultoría en Tecnologías de Información

Formato:

CALL SCREEN <scr>

Variantes:

…STARTING AT x1 y1 …ENDING AT x2 y2

CALL SCREEN

Page 261: Curso Basico Csti Abap

Screen PainterCSTI Consultoría en Tecnologías de Información

Formato:

CALL SUBSCREEN <area> INCLUDING <program><scr>

Variantes:

CALL CUSTOMER-SUBSCREEN <area> INCLUDING ‘SAPLX’…’<scr>

CALL SUBSCREEN

Page 262: Curso Basico Csti Abap

Screen PainterCSTI Consultoría en Tecnologías de Información

CALL SUBSCREEN

Page 263: Curso Basico Csti Abap

Screen PainterCSTI Consultoría en Tecnologías de Información

Formato:

CHAIN.field: <d0300-f01>, <d0300-f02>, <d0300-f03>.…

ENDCHAIN.

Ejemplo:

chain.field:d0300-plate, d0300-name1, d0300-license.module d0300_check_plate on chain-request.

endchain.

CHAIN

Page 264: Curso Basico Csti Abap

Screen PainterCSTI Consultoría en Tecnologías de Información

Formato:

LOOP.…

ENDLOOP.

Variantes:1. LOOP2. LOOP AT itab CURSOR f3. LOOP AT table.

Adiciones:…WITH CONTROL f

LOOP

Ejemplo:

Process before output.Loop at itab cursor c.Endloop.

Process after input.Loop at itab.module line_in on request.Endloop.

Page 265: Curso Basico Csti Abap

Laboratorio 5: Dynpros

DynprosCSTI Consultoría en Tecnologías de Información

1. Crear una dynpro que permita realizar una venta.

Page 266: Curso Basico Csti Abap

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

� El usuario debe poder seleccionar entre emitir una boleta o una factura.

� El usuario ingresará la moneda y los códigos de punto de venta, empleado y cliente, el programa deberá utilizar las tablas maestras para leer las descripciones de estos campos y completarlas. Adicionalmente completará el RUC del cliente si es que se ha seleccionado Factura.

� Para agregar un producto el usuario deberá ingresar un código de producto y una cantidad y presionar el botón de agregar fila. El programa deberá verificar que el código exista y que la cantidad no sea cero y sea como máximo el stock disponible del producto. El producto se agregará a la tabla y los datos restantes deberán ser completados utilizando los datos maestros y las siguientes consideraciones:

Precio Base = Precio Unitario X CantidadDescuento = Precio Base X %DescuentoIGV = (Precio Base – Descuento) X %IGVPrecio Línea = (Precio Base – Descuento) + IGV

� Para borrar una fila de la tabla se deberá seleccionar la fila a borrar y presionar el botón de borrar fila. El programa debe verificar que hay una fila seleccionada y si no existiera deberámostrar el mensaje “Seleccione una fila”.

� Al crear el documento el programa deberá autogenerar el número interno y seleccionar el número SUNAT adecuado al tipo de documento.

Dynpros

Page 267: Curso Basico Csti Abap

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de InformaciónDynpros

Luego de crear el documento de ventas el programa deberá mostrar una dynpro indicando el MODAL con el código SUNAT, el código interno, la fecha y hora de creación del documento generado.

Al confirmar este diálogo debe terminar el programa.

Page 268: Curso Basico Csti Abap

Dynpros

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

2. Crear una dynpro que se muestre antes de la dynpro de ventas, donde el usuario pueda seleccionar el empleado y punto de venta que desea utilizar para el resto de su sesión.

� El programa debe completar las descripciones leyendo la tabla de datos maestros.� La dynpro de ventas debe modificarse para que simplemente “herede” los datos de esta

ventana y ya no sean editables.� Si el usuario cancela, el programa de ventas termina.� Si el usuario acepta, el programa continua en la pantalla de ventas.� La pantalla de ventas debe cambiar para que luego de mostrar la ventana de confirmación de

resultado ya no debe terminar sino limpiar todos los campos (salvo el punto de venta y empleado que son heredados de esta) y prepararse para una nueva venta.

Page 269: Curso Basico Csti Abap

Funciones

CSTI Consultoría en Tecnologías de Información

Page 270: Curso Basico Csti Abap

Las funciones en SAP son tipos de programas capaces de recibir parámetros de entrada

y producir un resultado. Se diferencian de una función normal (no SAP), en que pueden

poseer una estructura bastante compleja y deben ser diseñados en su propio entorno

(SE37), fuera del programa que lo utilizará.

Existen dos tipos de módulos de funciones comúnes, las Standard y las RFC (Remote

Function Call – Llamada de Procedimiento Remoto), que sirven para la comunicación

entre sistemas externos y el sistema SAP.

Además se cuenta con las Bapi’s, que son funciones encapsuladas y orientadas

exclusivamente al negocio.

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de InformaciónFunciones

Page 271: Curso Basico Csti Abap

- Un grupo de funciones es un programa ABAP con tipo F (grupo de funciones), el cual es

un programa creado exclusivamente para contener módulos de funciones.

- Los módulos de funciones de similares características o funcionalidad se agrupan en

grupos de funciones.

- Cada grupo de función puede contener:

Data Objects que se pueden considerar o cambiar por todos los

módulos de función en el grupo. Estos objetos de datos

están activos mientras el grupo esté activo.

Subrutinas las cuales pueden llamarse desde cualquier módulo de

función en el grupo.

Screens las cuales pueden llamarse por cualquier módulo de

función del grupo.

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de InformaciónGrupo de Funciones

Grupo de Funciones

Page 272: Curso Basico Csti Abap

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

SAP AG 1999

Function Group

Func

tion

mod

ule

FM3

Inte

rfac

eIn

terf

ace

Interface

Interface

Function module

FM2

Interface

Interface

Function m

odule

FM1

Function module

FM

5

InterfaceInterface

Function moduleFM4

InterfaceInterface

Import parameters

Export parameters

Changing parameters

Exceptions

Subroutine

Interface

Grupo de Funciones

Page 273: Curso Basico Csti Abap

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Los Grupos de Función se crean por la transacción S E37

Grupo de Funciones

Page 274: Curso Basico Csti Abap

- Los módulos de funciones son unidades modulares con interfaces que pueden ser

llamadas desde cualquier programa ABAP. La interface puede contener los siguientes

elementos:

Parámetros Import, son parámetros pasados al módulo de función.

Parámetros Export, son pasados desde el módulo de función al programa que realizó la

llamada.

Parámetros Changing, son pasados al módulo de función y pueden ser cambiados por

ella.

Parámetros Tables, son tablas que pueden ser pasada al módulo de función y pueden

ser cambiados por ella.

Parámetros Exceptions, son usados para interceptar errores. Si un error dispara una

excepción en un módulo de función, este se detiene. Estas excepciones pueden ser

manipuladas por el programa que realizó la llamada.

- Cada módulo de función puede contener objetos de datos locales y accesar a los

objetos de datos globales que pertenecen a su grupo de función.

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de InformaciónMódulo de Funciones

Módulo de Funciones

Page 275: Curso Basico Csti Abap

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

SAP AG 1999

Function Module

sy-subrc

Function moduleFunction moduleAdministrationAdministration

Local data objectsLocal data objectsSource CodeSource Code

GlobalGlobaldata objectsdata objects

Function groupFunction group Subroutine

Interface

InterfaceInterface

Import parametersImport parameters Export parametersExport parameters Changing parametersChanging parameters ExceptionsExceptions

Módulo de Funciones

Page 276: Curso Basico Csti Abap

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Los Módulos de Función se crean por la transacción SE37

Módulo de Funciones

Page 277: Curso Basico Csti Abap

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Visualización de un módulo de función existente.

Módulo de Funciones

Page 278: Curso Basico Csti Abap

Los tipos más comunes son los siguientes:

Módulos de Función Standard, son los módulos de función que pueden ser

llamados por cualquier programa ABAP dentro del mismo ambiente SAP.

Módulos de Función RFC (Remot Function Call), son módulos de función que

pueden ser llamados por cualquier programa ABAP, por sistemas externos o

entre sistemas SAP.

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información Tipos de Módulos de Funciones

Módulo de Funciones

Page 279: Curso Basico Csti Abap

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Módulo de Función Standard

Tipos de Módulos de Funciones

Page 280: Curso Basico Csti Abap

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Módulo de Función RFC

Tipos de Módulos de Funciones

Page 281: Curso Basico Csti Abap

BAPI’s

Business Application Programming Interface

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de InformaciónFunciones

Page 282: Curso Basico Csti Abap

- Una BAPI es un módulo de función orientado al negocio con características de

RFC.

- Es un punto de la entrada al sistema R/3, es decir, un punto en el cual el

sistema R/3 proporciona el acceso a los datos y a los procesos de negocio.

- Normalmente las BAPI’s son utilizadas para realizar tareas específicas, como

por ejemplo, crear pedidos, realizar contabilizaciones, cargar y actualizar datos

maestros, etc.

- Son funciones muy estables, puesto que cuentan con muchos mecanismos de

control y aseguramiento de calidad. Además, encapsulan operaciones

complejas en una simple interfaz.

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de InformaciónBAPI

Business Application Programming Interface

Page 283: Curso Basico Csti Abap

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Usos de una BAPI

S A P A G 1999

B u s in es s W o rk flo w

R /3 sa te llite sy s tem s an dd is tr ib u ted s ce n a rio s(A L E )

In te rn e t / In tran e t

C u s to m e r an d p a rtn e rd e ve lo p m en t

V isu a l B as ic /J A V A ...

R /3 co m p o n e n tc o m p o s it io n

B

B u s inessC o m p on en t

B u s inessC o m p o n en t

B u s in essC o m p on en t

W h e re A re B A P Is U s e d ?

BAPI

Page 284: Curso Basico Csti Abap

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Las BAPI’s se pueden explorar por la transacción BA PI

BAPI

Page 285: Curso Basico Csti Abap

Anexo de Funciones Útiles

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de InformaciónFunciones

Page 286: Curso Basico Csti Abap

1.- Para descargar archivos en servidores remotos Windows o PCs.

1.1.- DOWNLOAD : Con diálogo de confirmación.

1.2.- WS_DOWNLOAD : Sin diálogo de confirmación.

1.3.- GUI_DOWNLOAD : Con diálogo de confirmación.

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de InformaciónFunciones

2.- Para cargar archivos en servidores remotos Windows o PCs.

3.1.- UPLOAD --> Con diálogo de confirmación.

3.2.- WS_UPLOAD --> Sin diálogo de confirmación.

3.3.- GUI_UPLOAD --> Con diálogo de confirmación.

3.- Para eliminar archivos en servidores remotos Windows

4.1.- WS_FILE_DELETE

Page 287: Curso Basico Csti Abap

4.- Para eliminar imágenes en documentadores IXOS

6.1.- ARCHIV_DELETE_META

5.- Para confirmar eventos

7.1.- POPUP_TO_CONFIRM.

6.- Para mandar a SAP a espera.

8.1.- ENQUE_SLEEP

7.- Para separar las rutas de archivos en disco, extensión, nombre, nombre con

extensión y ruta.

9.1.- PC_SPLIT_COMPLETE_FILENAME.

8.- Para pedir un archivo en servidores remotos Windows.

10.1.- FILENAME_GET. --> Con diálogo.

10.2.- WS_FILENAME_GET --> Sin diálogo.

CSTI Consultoría en Tecnologías de InformaciónFunciones

Page 288: Curso Basico Csti Abap

9.- Para obtener todos los atributos de una tabla.

11.1.- DDIF_TABL_GET --> Atributos.

11.2.- RPY_DOMAIN_READ --> Dominios.

11.3.- RPY_DATAELEMENT_READ --> Elementos de datos

10.- Para cargar una tabla en SAP.

12.1.- DDIF_TABL_PUT --> Tabla.

12.2.- RPY_DOMAIN_INSERT --> Dominios.

12.3.- RPY_DATAELEMENT_INSERT --> Elementos de datos.

12.4.- RS_DD_ACTIVATE --> Activar los dominios,

elementos de datos.

11.- Obtener los módulos de funciones e Includes que pertenecen a un grupo

de funciones.

13.1.- FUNCTION_INCLUDES_SPLIT.

CSTI Consultoría en Tecnologías de InformaciónFunciones

Page 289: Curso Basico Csti Abap

Laboratorio 6: Funciones

Laboratorio FuncionesCSTI Consultoría en Tecnologías de Información

1. Crear una función que retorne el precio unitario, porcentaje e importe de descuento, porcentaje e importe de IGV y precio total por producto consultado.

Parámetros de entrada:Cod_Producto

Tablas:Tabla de importesCampos: Precio_Unitario

%DsctoImporte_DsctoIGVImporte IGVPrecio_Total

Page 290: Curso Basico Csti Abap

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 291: Curso Basico Csti Abap

SAP

SCRIPT

Layout Set

CSTI Consultoría en Tecnologías de Información

Page 292: Curso Basico Csti Abap

Accesos al Sap Script SE71

CSTI Consultoría en Tecnologías de Información

Page 293: Curso Basico Csti Abap

Componentes

CSTI Consultoría en Tecnologías de Información

1.- Header 1.- Cabecera

2.- Paragraphs 2.- Párrafos

3.- Character Strings 3.- Conjunto de Caracteres

4.- Windows 4.- Ventanas

5.- Pages 5.- Páginas

6.- Page Windows 6.- Ventanas de Páginas

Page 294: Curso Basico Csti Abap

Menú Principal

CSTI Consultoría en Tecnologías de Información

Page 295: Curso Basico Csti Abap

Header

CSTI Consultoría en Tecnologías de Información

Page 296: Curso Basico Csti Abap

Paragraphs

CSTI Consultoría en Tecnologías de Información

Page 297: Curso Basico Csti Abap

Paragraphs – Font

CSTI Consultoría en Tecnologías de Información

Page 298: Curso Basico Csti Abap

Paragraphs – Tabs

CSTI Consultoría en Tecnologías de Información

Page 299: Curso Basico Csti Abap

Paragraphs – Outline

CSTI Consultoría en Tecnologías de Información

Page 300: Curso Basico Csti Abap

Characters Strings

CSTI Consultoría en Tecnologías de Información

Page 301: Curso Basico Csti Abap

Characters Strings – Font

CSTI Consultoría en Tecnologías de Información

Page 302: Curso Basico Csti Abap

Windows

CSTI Consultoría en Tecnologías de Información

Page 303: Curso Basico Csti Abap

Page

CSTI Consultoría en Tecnologías de Información

Page 304: Curso Basico Csti Abap

Page Windows

CSTI Consultoría en Tecnologías de Información

Page 305: Curso Basico Csti Abap

Text Element

CSTI Consultoría en Tecnologías de Información

Page 306: Curso Basico Csti Abap

Tag Column

CSTI Consultoría en Tecnologías de Información

U1 Párrafo creado por el usuarioU2 Párrafo creado por el usuario* Párrafo usado por defecto

Texto fluido= Continuación de Línea( Línea bruta/ Avance de Línea/= Avance de Línea y Línea larga/( Avance de Línea y Línea Bruta/: Línea de comando/* Línea para comentario/E Elemento de texto

Page 307: Curso Basico Csti Abap

Comandos más Usados

CSTI Consultoría en Tecnologías de Información

- Perform .- Ejecuta una subrutina o subprograma en la rutina actual, también se le puede pasar parámetros.

- New-Page .- Inclusión de una nueva página en la edición del formulario.

- Box .- Crea cajas gráficas en las distintas páginas del formulario, estas pueden sobreponerse unas a otras.

- If.- Asigna condicionales en las diferentes sentencias que forman parte de la creación del formulario.

Page 308: Curso Basico Csti Abap

Comandos más Usados

CSTI Consultoría en Tecnologías de Información

- Set Date Mask .- Da formato a la fecha del sistema.

- Set Time Mask .- Da formato a la hora del sistema.

- Set Country .- Utilizado en la asignación del formato a utilizar en el formulario para lalocalidad.

- Define .- Utilizado para la asignación de valores establecidos en los diversos TextSymbols, estos text symbols deberán ir encerrados entre el símbolo &.

Page 309: Curso Basico Csti Abap

Símbolos del Sistema

CSTI Consultoría en Tecnologías de Información

- &DATE& .- Muestra en el reporte la fecha completa, incluyendo día, mes y año.

- &DAY&.- Muestra en el reporte el día en formato de dos dígitos, incluyendo ceros.

- &YEAR&.- Utilizando para mostrar en el reporte el año en formato de 4 dígitos.

- &NAME_OF_DAY&.- Sirve para mostrar el nombre del día actual del reporte.

Page 310: Curso Basico Csti Abap

Símbolos del Sistema

CSTI Consultoría en Tecnologías de Información

- NAME_OF_MONTH& .- Muestra el nombre del mes actual.

- &TIME& .- Muestra el tiempo actual en el reporte.

- &HOURS& .- Muestra la hora actual en el reporte.

- &SECONDS& .- Muestra el valor de los segundos en el tiempo actual.

- &PAGE& .- Muestra la numeración correspondiente a cada página del reporte.

Page 311: Curso Basico Csti Abap

Símbolos del Sistema

CSTI Consultoría en Tecnologías de Información

-&NEXTPAGE& .- Muestra el valor numérico de la próxima página a la actual.

- &DEVICE& .- Utilizado para asignar la salida del reporte, puede ser Printer, Screen, Telex, etc.

- &SPACE& .- Sirve para asignar un espacio en el reporte.

- &ULINE& .- Sirve para ingresar una línea de subrayado.

- &VLINES& .- Sirve para ingresar una línea vertical del tamaño del carácter empleado en la edición del reporte

Page 312: Curso Basico Csti Abap

Definición de Variables y Constantes

CSTI Consultoría en Tecnologías de Información

Variables:Las variables se definen mediante el uso del símbolo “&”, y se le asigna valores mediante el comando DEFINE.

Ejemplo: &variable&Se efectúa una diferencia del contenido de las variables:

&KNA1-ORT01&’-’&KNA1-ORT02&

Constantes:Las constantes pueden utilizarse en cualquier parte del reporte sin especificar algún formato necesariamente, no se puede incluir en una línea de comandos ‘/:’, se muestran como texto en el reporte.

Page 313: Curso Basico Csti Abap

Tabulación y Cadenas

CSTI Consultoría en Tecnologías de Información

Tabulación:La forma de hacer referencia a las tabulaciones ya preestablecidas en el Paragraph Tabs es mediante el uso de la doble coma ‘,,’.Se puede hacer referencia a una doble tabulación mediante ’,,,,’, y así sucesivamente.

Cadenas:La forma de hacer referencia a las cadenas ya creadas en el Character String es mediante el uso de los símbolos <XX> y </>, donde XX es el identificador de la cadena a seleccionar.Por ejemplo:

<D3>DATADEEXPIRACION:,,,,&ZLPRNLABE-prn_vfdat&</>

Page 314: Curso Basico Csti Abap

Rutinas básicas de Impresión

CSTI Consultoría en Tecnologías de Información

OPEN_FORM:

Inicio de formularioEjemplo:

Call function ‘OPEN_FORM’exporting

form = formoptions = options

exceptions

Page 315: Curso Basico Csti Abap

Rutinas básicas de Impresión

CSTI Consultoría en Tecnologías de Información

START_FORM:

Inicio de formularioEjemplo:

Call function ‘START_FORM’exporting

form = formlanguage = sy-langustartpage = page

importinglanguage = sy-langu

exceptionsform = 1.format = 2uneneded = 3unopened = 4unused = 5.

Page 316: Curso Basico Csti Abap

Rutinas básicas de Impresión

CSTI Consultoría en Tecnologías de Información

WRITE_FORM:

Salida de text element en la ventana del formulario.Ejemplo:

Call function ‘WRITE_FORM’exporting

element = elementwindow = windows

exceptionselement = 1function = 2type = 3unopened = 4unstarted = 5window = 6

Page 317: Curso Basico Csti Abap

Rutinas básicas de Impresión

CSTI Consultoría en Tecnologías de Información

CLOSE_FORM:

Fin de Formulario.

Ejemplo:

Call function ‘CLOSE_FORM’importing

result = itcppexceptions

unopened = 3.

Page 318: Curso Basico Csti Abap

Laboratorio 7: SAP Script

Laboratorio SAP ScriptCSTI Consultoría en Tecnologías de Información

1. Crear un formulario SAP Script para imprimir la factura utilizando el siguiente formato. Considere que las facturas se imprimen sobre hojas pre-impresas.

Page 319: Curso Basico Csti Abap

Smart Forms

CSTI Consultoría en Tecnologías de Información

Page 320: Curso Basico Csti Abap

¿Qué es Smart Forms?

Smart FormsCSTI Consultoría en Tecnologías de Información

Smart Forms es la nueva herramienta de SAP para diseño e impresión de documentos, cuyo propósito es suceder a SAP Script.

Smart Forms es una solución más simple, potente y versátil que SAP Script.

Los nuevos formularios para los documentos de SAP se desarrollan en Smart Forms.

SAP apunta a continuar con el desarrollo de esta herramienta.

Page 321: Curso Basico Csti Abap

Acceso a Smart Forms

Smart Forms

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Se utiliza la transacción SMARTFORMS.

Page 322: Curso Basico Csti Abap

Smart Forms

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 323: Curso Basico Csti Abap

Parametrizaciones Globales

Smart Forms

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Atributos del formulario, contiene datos generales como el tamaño de la página y el estilo asociado al formulario.

Interfase formulario, definición de los parámetros de entrada, salida, tablas y excepciones del formulario. Todos los smartforms vienen con un grupo de parámetros predefinidos que no pueden ser cambiados.

Definiciones globales…

Page 324: Curso Basico Csti Abap

Definiciones Globales

Smart Forms

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 325: Curso Basico Csti Abap

Definiciones Globales

Smart Forms

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Datos globales, constantes, variables, estructuras y tablas visibles en todo el formulario.

Tipos, tipos globales del formulario.

Símbolos de campo, field symbols globales.

Inicialización, primera rutina que se ejecuta al llamar al formulario.

Rutinas form, subrutinas visibles en todo el formulario.

Campos Moneda/Cantidad, definición de campos de unidad de moneda/cantidad.

Page 326: Curso Basico Csti Abap

Páginas

Smart Forms

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Los smartforms se dividen en páginas las cuales permiten construir documentos complejos con diferentes secciones de diferente estructura o contenido, por ejemplo: carátula, índice, reportes, resumen.

Cada página tiene su propia estructura y se puede controlar la secuencia en la que se pasa de una página a la siguiente.

Page 327: Curso Basico Csti Abap

Propiedades de una Página

Smart Forms

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Las propiedades generales permiten controlar la secuencia y numeración de las páginas.

Page 328: Curso Basico Csti Abap

Propiedades de una Página (2)

Smart Forms

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Las opciones de salida controlan la orientación y modo de impresión de la página.

Page 329: Curso Basico Csti Abap

Propiedades de una Página (3)

Smart Forms

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 330: Curso Basico Csti Abap

Controles en Smart Forms

Smart Forms

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Smartforms cuenta con una gama de controles que permiten al formulario procesar datos, crear tablas, mostrar textos, imágenes y marcos, ejecutar instrucciones ABAP, ejecutar instrucciones de control y otras cosas.

Al visualizar un control, se muestran para este una serie de pestañas que contienen las propiedades definidas para el mismo.

Diferentes controles tienen diferentes grupos de propiedades, por ejemplo los controles de código ABAP tienen código fuente, mientras que los controles de texto tienen opciones de salida.

Page 331: Curso Basico Csti Abap

Propiedades de los Controles

Smart Forms

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Existen diferentes grupos de propiedades y están asignados de manera diversa a los controles dependiendo de su funcionalidad. A continuación los más comunes.

Propiedades generales, contiene propiedades generales del control y difiere de acuerdo al tipo de control.

Opciones de salida, opciones para formatear un control que produce una salida en el formulario, como por ejemplo un campo de texto o un gráfico.

Condiciones, presente en casi todos los controles, permite establecer las condiciones bajo las cuales se procesa un determinado control.

Page 332: Curso Basico Csti Abap

Ventanas

Smart Forms

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Las ventanas son los controles básicos de un smartform.

Las ventanas son las que permiten organizar el contenido del formulario, crear áreas para insertar textos y objetos gráficos, crear marcos, etc.

Page 333: Curso Basico Csti Abap

Control Texto

Smart Forms

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Es un control que permite imprimir texto en el formulario.

Page 334: Curso Basico Csti Abap

Control Texto (2)

Smart Forms

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Los textos pueden contener textos estáticos y/o textos variables. Pueden mostrar el contenido de las diferentes estructuras de datos que tiene el formulario.

Los textos pueden ser formateados de maneras muy diversas e incluir formatos de párrafo y carácter, así como tabulaciones, dependiendo del estilo que tengan asignado.

Page 335: Curso Basico Csti Abap

Control Gráfico

Smart Forms

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Permite incluir gráficos dentro del formulario.

Page 336: Curso Basico Csti Abap

Control Máscara de Edición

Smart Forms

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 337: Curso Basico Csti Abap

Control Máscara de Edición (2)

Smart Forms

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

La máscara de edición permite crear una alineación particular para un grupo de otros controles, separándolos en filas y posiciones (las cuales no necesariamente deben forman una cuadrícula, pueden estar alineados de manera arbitraria).

Dentro de la máscara de edición pueden anidarse textos, gráficos, grupos de instrucciones y otros controles.

Page 338: Curso Basico Csti Abap

Control Table

Smart Forms

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 339: Curso Basico Csti Abap

Control Table (2)

Smart Forms

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

El control Table es uno de los más potentes y útiles de Smart Forms. Permite recorrer, procesar, formatear y mostrar los contenidos de una tabla interna de manera casi directa.

Tiene opciones para ordenamiento, agrupación y filtrado de los datos de la tabla, y permite definir uno o más formatos de línea para mostrar los datos de la manera en que se requiera.

Dentro del control Table se puede anidar casi cualquier otro tipo de control de smartforms y las definiciones de línea creadas para el control Table serán válidas para todos los controles anidados que generen algún tipo de salida.

Page 340: Curso Basico Csti Abap

Control Loop

Smart Forms

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 341: Curso Basico Csti Abap

Control Loop (2)

Smart Forms

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

El control Loop es similar al control Table, es un control que sirve para procesar los datos de una tabla interna, pero no está forzado a generar alguna salida. No incluye por eso dentro de sus propiedades la definición de tipos de linea.

Sin embargo es posible incluir dentro de un control Loop, otros controles que si generan salida en el formulario como máscaras de edición, textos y gráficos.

Page 342: Curso Basico Csti Abap

Control Líneas de Programa

Smart Forms

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 343: Curso Basico Csti Abap

Control Líneas de Programa (2)

Smart Forms

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Son controles que permiten procesar datos de manera más específica. Estos controles son virtualmente subrutinas de ABAP y pueden ejecutar cualquier instrucción.

Desde estos controles es posible utilizar las estructuras de datos, tipos y subrutinas definidas en la sección de declaraciones globales del formulario.

Sin embargo cabe resaltar que para trabajar con los datos globales del formulario estos deben ser declarados previamente en los listados de parámetros de entrada y salida que aparecen en la parte superior de las propiedades generales.

Page 344: Curso Basico Csti Abap

Control Alternativa

Smart Forms

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 345: Curso Basico Csti Abap

Control Alternativa (2)

Smart Forms

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

El control alternativa permite evaluar un conjunto de condiciones. Si el resultado de estas condiciones es Verdadero, se ejecutan los controles que se incluyen bajo el nodo TRUE del control. En caso contrario se ejecutan los controles bajo el nodo FALSE.

Es importante notar que las condiciones de la pestaña Propiedades Generales determinan que nodo se ejecutará a continuación y no deben confundirse con las condiciones de la pestaña Condiciones, las cuales como habíamos visto regulan si el control Alternativa en su conjunto se ejecuta o no.

Page 346: Curso Basico Csti Abap

Control Comando

Smart Forms

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 347: Curso Basico Csti Abap

Control Comando (2)

Smart Forms

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

El control Comando permite afectar el flujo de las páginas del formulario y enviar comandos determinados a la impresora y al spool para activar o desactivar características determinadas.

Page 348: Curso Basico Csti Abap

Llamar a un Smart Form

Smart Forms

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Para invocar un smartform desde un programa ABAP se requiere utilizar la función SSF_FUNCTION_MODULE_NAME, enviando como parámetro el nombre del formulario.

Page 349: Curso Basico Csti Abap

Llamar a un Smart Form

Smart Forms

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

El resultado de la función anterior es el nombre de otra función, la cual es la que imprime el formulario requerido. Con el nombre obtenido debemos realizar una llamada dinámica enviando los parámetros que hemos definido en la interfaz del smartform.

Page 350: Curso Basico Csti Abap

Smart Styles

Smart Forms

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Es el complemento de Smart Forms para definir los estilos de párrafo y carácter que se usarán en los formularios. Se accede tambien desde la transacción SMARTFORMS.

Page 351: Curso Basico Csti Abap

Componentes de un Estilo

Smart Forms

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 352: Curso Basico Csti Abap

Formatos de Párrafo

Smart Forms

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Los formatos de párrafos permite definir la alineación, interlineado, sangría, tabuladores, fuentes y numeración de los párrafos.

Estos formatos se aplican dentro de los controles Texto de los formularios Smart Form.

Page 353: Curso Basico Csti Abap

Formatos de Caracter

Smart Forms

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Los formatos de caracter definen la fuente y los efectos que se aplicarán a los caracteres dentro de los controles Texto de un formulario smartform.

Cuando se aplica un formato de caracter a un texto, dicho formato se superpone al del párrafo y lo reemplaza para todos los caracteres a los cuales se ha aplicado.

Page 354: Curso Basico Csti Abap

Laboratorio 8: Smartform

Laboratorio SmartformCSTI Consultoría en Tecnologías de Información

1. Crear un formulario Smartform para imprimir la factura utilizando el siguiente formato.

Page 355: Curso Basico Csti Abap

ABAP Objects

CSTI Consultoría en Tecnologías de Información

Page 356: Curso Basico Csti Abap

Programación Orientada a Objetos

ABAP Objects

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

La programación orientada a objetos es un método de desarrollo de software basado en el comportamiento real de los objetos en el mundo real.

Se pretende desarrollar componentes de software que se comporten como los objetos reales a los que representan.

La orientación a objetos es una técnica usada en muchos lenguajes de programación los cuales comparten una terminología usada universalmente.

Page 357: Curso Basico Csti Abap

ABAP Objects

ABAP Objects

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

ABAP Objects es una extensión del lenguaje ABAP/4 que le permite implementar la POO.

ABAP Objects está construido en base a prácticas conocidas y de funcionamiento y efectividad comprobados, teniendo como principal antecesor al lenguaje Java.

Las instrucciones de ABAP Objects son perfectamente compatibles y completamente integrables con las de ABAP convencional y dentro de un programa ABAP común pueden convivir instrucciones de programación estructurada y POO sin inconvenientes.

Page 358: Curso Basico Csti Abap

Clase

ABAP Objects

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Una clase es la plantilla de un objeto. Es una descripción abstracta de un objeto.

Desde un punto de vista estrictamente técnico, una clase es un conjunto de código que contiene la definición de los componentes y el comportamiento de un objeto.

Las clases en ABAP pueden ser locales y globales.

Page 359: Curso Basico Csti Abap

Clases Locales y Globales

ABAP Objects

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Las clases locales son definidas dentro del código de un programa ABAP y son visibles únicamente dentro de dicho programa.

Las clases globales son definidas desde la transacción SE24 y son visibles para todos los programas.

Salvo por su visibilidad y la manera en como se definen, tanto su implementación como su utilización son exactamente iguales.

Page 360: Curso Basico Csti Abap

Objetos

ABAP Objects

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Los objetos son instancias de las clases y están modelados por las mismas.

Desde un punto de vista técnico, son porciones de memoria que agrupan un conjunto de datos y un conjunto de servicios.

Page 361: Curso Basico Csti Abap

Creación de Clases Locales

ABAP Objects

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

La definición de una clase dentro de un programa comprende una parte declarativa donde se definen los componentes, y si es necesario una parte de implementación en la que se implementan estos componentes.

Page 362: Curso Basico Csti Abap

Componentes

ABAP Objects

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Las clases (y los objetos) tienen 2 tipos principales de componentes:

Atributos, son los datos contenidos dentro del objeto y cuya función es describir al objeto. El estado de un objeto, es el conjunto de valores de sus atributos en un momento determinado.

Métodos, definen el comportamiento de un objeto. Pueden acceder a los atributos del objeto y esto les permite modificar el estado del mismo.

Page 363: Curso Basico Csti Abap

Visibilidad de Componentes

ABAP Objects

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

La visibilidad de un componente define el grado de acceso que se tiene al mismo desde los programas. Existen 3 tipos de visibilidad:

Público, el componente es accesible tanto por los métodos del objeto como por el programa del cual forma parte el objeto.

Privado, el componente es accesible únicamente por los métodos del objeto.

Protegido, es un híbrido. Se comporta como privado para el programa que invoca al objeto y como público para las subclases del objeto.

Page 364: Curso Basico Csti Abap

Cardinalidad de Componentes

ABAP Objects

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

La cardinalidad de un componente define el número de veces que el componente existe en la memoria durante la ejecución de un programa. Existen 2 tipos de cardinalidad:

Componentes de Instancia, son componentes que existen una vez por cada instancia que exista de una clase, es decir, cada objeto tiene estos componentes independientemente.

Componentes Estáticos, existen UNA UNICA VEZ para todos las instancias de la clase, es decir, son componentes compartidos por todos los objetos instanciados de una misma clase.

Page 365: Curso Basico Csti Abap

Definición de Componentes

ABAP Objects

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 366: Curso Basico Csti Abap

Atributos

ABAP Objects

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Los atributos de una clase pueden tener cualquier tipo:

� Campos individuales de tipo ABAP predefinido (i, f, p, d, etc.) o de un tipo DD (matnr, char1, dec13_3).� Campos estructurados de tipo DD o definidos ahí mismo.� Tablas internas� Otros objetos!

Page 367: Curso Basico Csti Abap

Métodos

ABAP Objects

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Al definir un método dentro de una clase, este debe ser declarado dentro del bloque DEFINITION y debe ser implementado dentro del bloque IMPLEMENTATION.

De manera similar a las funciones, un método tiene una firma, es decir, un conjunto de parámetros que son recibidos y devueltos por el mismo y un grupo de excepciones.

Al definir los parámetros de un método, estos pueden adoptar cualquier tipo, de manera similar a los atributos del objeto.

Page 368: Curso Basico Csti Abap

Declaración de Métodos

ABAP Objects

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 369: Curso Basico Csti Abap

Implementación de métodos

ABAP Objects

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 370: Curso Basico Csti Abap

Constructores

ABAP Objects

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Los constructores son métodos especiales que se ejecutan automáticamente al momento de instanciar un objeto (constructor de instancia) y al momento de acceder a la clase por primera vez (constructor estático). Pueden definirse con cualquier visibilidad.

Sus nombres son siempre los mismos en cualquier clase: CONSTRUCTORCLASS_CONSTRUCTOR

Tienen la característica de que en sus firmas sólo pueden tener parámetros IMPORTING y excepciones.

Page 371: Curso Basico Csti Abap

Otros Componentes de una Clase

ABAP Objects

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

En una clase también pueden ser definidos otros componentes:

� Eventos� Tipos� Constantes

Page 372: Curso Basico Csti Abap

Constructores

ABAP Objects

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 373: Curso Basico Csti Abap

Instanciación de clases

ABAP Objects

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Para instanciar una clase, es decir, para crear un objeto de la misma, se debe primero definir una variable de referencia (puntero) a la clase.

Luego se crea el objeto usando la variable de referencia.

Page 374: Curso Basico Csti Abap

Acceso a Componentes

ABAP Objects

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Para acceder a los componentes de un objeto se utiliza la referencia seguida por el operador de referencia y el nombre del componente.

En el caso de los componentes estáticos se utiliza el nombre de la clase, el operador de referencia estática y el nombre del componente.

No siempre es posible acceder a un componente, debe tenerse en cuenta la visibilidad del componente que se desea acceder.

Page 375: Curso Basico Csti Abap

Seudoreferencia ME

ABAP Objects

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Al interior de los métodos de una clase, la seudoreferencia ME es una referencia de la propia clase que apunta al objeto actual.

Page 376: Curso Basico Csti Abap

Llamar a Métodos

ABAP Objects

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Se utiliza la sentencia CALL METHOD para llamar a un método.

Page 377: Curso Basico Csti Abap

Llamar a Métodos Funcionales

ABAP Objects

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Los métodos funcionales pueden llamados usando una sintaxis abreviada.Las dos formas a continuación son equivalentes.

La sintaxis abreviada puede ser usada en asignaciones directas (MOVE) y operaciones aritméticas. No puede ser usada en sentencias WRITE.

Page 378: Curso Basico Csti Abap

Herencia

ABAP Objects

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Propiedad de la POO que permite crear una clase nueva a partir de una clase existente, de tal manera que la nueva clase “hereda” los componentes definidos en la clase existente.

ABAP Objects implementa únicamente herencia simple, es decir que una clase sólo puede tener UNA superclase. Por el contrario una clase puede ser superclase de varias subclases.

Page 379: Curso Basico Csti Abap

Componentes Heredados

ABAP Objects

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Una subclase hereda todos los componentes de su superclase.

Sin embargo los componentes privados de la superclase, si bien son heredados no son visibles desde la subclase.

Por esta razón, en la subclase pueden definirse componentes privados con los mismos nombres que los componentes privados de su superclase.

Page 380: Curso Basico Csti Abap

Polimorfismo

ABAP Objects

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

El polimorfismo es una característica por la cual objetos diferentes tienen comportamientos diferentes invocando un mismo método.

En ABAP el polimorfismo se implementa mediante la redefinición de métodos.

Sólo pueden ser redefinidos los métodos visibles en la subclase.

Page 381: Curso Basico Csti Abap

Redefinición de Métodos

ABAP Objects

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Los métodos se redefinen con la instrucción REDEFINITION.

Al redefinir un método, su interfaz no puede ser modificada, únicamente su implementación.

Page 382: Curso Basico Csti Abap

Seudoreferencia SUPER

ABAP Objects

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Al interior de un método redefinido, la seudoreferencia SUPER permite el acceso al método original en la superclase.

Page 383: Curso Basico Csti Abap

Casting

ABAP Objects

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Es el cambio del tipo de un objeto durante la ejecución de un programa.

Al hacer casting se puede acceder a un objeto desde una referencia a una de sus superclases o subclases.

Utilizar casting permite efectuar llamadas polimórficas a los métodos de una clase.

Page 384: Curso Basico Csti Abap

Up Casting

ABAP Objects

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Conocido también como generalización, consiste en acceder a un objeto mediante una referencia a una de sus superclases.

El Up Casting siempre es posible.

Page 385: Curso Basico Csti Abap

Down Casting

ABAP Objects

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Conocido también como especialización, consiste en acceder a un objeto mediante una referencia a una de sus subclases.

Sólo es posible hacer down-cast a un objeto que ha pasado previamente por un up-cast. Se debe utilizar el operador de casting explícito ?=

Page 386: Curso Basico Csti Abap

Tipo Estático y Dinámico de una Referencia

ABAP Objects

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Gracias al casting, se puede diferenciar 2 tipos en una referencia.

Tipo Estático, determinado por la declaración de la referencia en la sentencia DATA, establece qué componentes son accesibles.

Tipo Dinámico, determinado por el tipo con el que fue instanciado originalmente el objeto al momento de su creación. Es visible sólo en tiempo de ejecución y determina qué código se ejecutará en los métodos redefinidos.

Page 387: Curso Basico Csti Abap

Eventos

ABAP Objects

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Los eventos son componentes de las clases como los atributos y métodos. Se declaran en la sección DEFINITION de una clase y están sujetos a las mismas condiciones de visibilidad y cardinalidad.

Los eventos son avisos que se generan durante la ejecución de los métodos de un objeto y que permiten al entorno (programa principal, otros objetos en la memoria) reaccionar frente a los cambios de estado ocurridos en el objeto que inicia el evento.

Page 388: Curso Basico Csti Abap

Manejo de Eventos

ABAP Objects

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Se conoce como “trigger” al método que inicia el evento y como “handler” al método que reacciona ante dicho evento.

En el manejo de eventos hay 4 momentos:

� Declaración del evento, en la clase emisora� Definición e implementación del método handler, en la clase receptora� Registro del handler, en cualquier punto de la ejecución antes de la

emisión del evento.� Emisión del evento, mediante la ejecución del método trigger de la clase

emisora.

Page 389: Curso Basico Csti Abap

Declaración de Eventos

ABAP Objects

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Los eventos se declaran mediante las sentencias EVENTS y CLASS-EVENTS en el bloque DEFINITION de las clases.

Los eventos pueden tener parámetros pero únicamente de tipo exporting. Todos los eventos tienen siempre el parámetro implícito SENDER que contiene una referencia al objeto que inicia el evento.

Page 390: Curso Basico Csti Abap

Emisión del Evento

ABAP Objects

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Los eventos son lanzados durante la implementación de un método.

Un evento puede ser lanzado por más de un método y un método puede lanzar más de un evento.

Page 391: Curso Basico Csti Abap

Definición de Métodos Handler

ABAP Objects

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Una clase puede definir métodos handler tanto para sus propios eventos como para los de otras clases.

Los métodos handler se definen en el bloque DEFINITION de la clase.

Page 392: Curso Basico Csti Abap

Definición de Métodos Handler

ABAP Objects

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Al definir un handler, no es necesario más que enumerar los parámetros que este recibirá. La definición de los mismos es tomada de la declaración del evento.

Los métodos handler deben implementarse como todos los métodos en el bloque IMPLEMENTATION de la clase.

Los métodos handler pueden ser llamados normalmente con la sentencia CALL METHOD.

Page 393: Curso Basico Csti Abap

Registro de Handlers

ABAP Objects

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Los handler deben ser registrados antes de que ocurran los eventos para que estos puedan ser escuchados y manejados.

El registro puede realizarse en cualquier punto del programa donde las referencias estén disponibles y puede realizarse para todas las referencias, incluyendo las que aun no han sido creadas.

Para eventos estáticos no se usa referencia del emisor.

Page 394: Curso Basico Csti Abap

Constructor de Clases (SE24)

ABAP Objects

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Es una transacción especializada para crear clases e interfases globales.

Page 395: Curso Basico Csti Abap

Atributos en SE24

ABAP Objects

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 396: Curso Basico Csti Abap

Métodos en SE24

ABAP Objects

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 397: Curso Basico Csti Abap

Entorno de Pruebas

ABAP Objects

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 398: Curso Basico Csti Abap

Laboratorio 9: Objetos

Laboratorio Objetos

CSTI Consultoría en Tecnologías de Información

1. Crear una clase local para manejar los datos del modelo de Botica. La clase debe contener (como mínimo) los siguientes métodos:

- Consulta de datos maestros (Cajas / Punto de Venta, Productos, Clientes y Empleados).

- Consulta de documentos de venta (facturas, boletas, etc.) por fecha, cliente y/o producto.

- Creación de documentos de venta.

- Actualización de productos (stock y precios).

Page 399: Curso Basico Csti Abap

ALV

Abap List Viewer

CSTI Consultoría en Tecnologías de Información

Page 400: Curso Basico Csti Abap

¿Qué es ALV?

ALVCSTI Consultoría en Tecnologías de Información

ALV es el acrónimo de Abap List Viewer.

Es un conjunto de programas estándar predefinidos que permiten generar listados de una manera estandarizada y simplificada.

Al utilizar ALV el programador puede concentrarse estrictamente en la carga de los datos y se ve obligado a programar la salida de los mismos, así como las funciones allegadas a la salida de la información (ordenamiento, filtrado en pantalla, exportación de los datos a archivos, etc.)

Page 401: Curso Basico Csti Abap

Funcionalidades Predefinidas

ALVCSTI Consultoría en Tecnologías de Información

� Modificar la apariencia del reporte luego de generado.� Grabar, recuperar y administrar el formato de visualización (variante de

visualización)� Ordenar el listado por una o varias columnas.� Filtrar el listado (en salida) por una o varias columnas.� Exportar los datos mostrados a varios formatos de archivos.� Generación de gráficos.

Page 402: Curso Basico Csti Abap

Grupo de Tipos SLIS

ALVCSTI Consultoría en Tecnologías de Información

Grupo de Tipos donde se encuentran las declaraciones de las estructuras usadas en listados ALV.

Si se desea utilizar ALV dentro de un programa, se debe incluir entre las declaraciones del mismo la instrucción:

TYPE-POOLS SLIS

Page 403: Curso Basico Csti Abap

ALV List

ALVCSTI Consultoría en Tecnologías de Información

ALV List es el tipo básico de listado ALV.

Se crea utilizando la función REUSE_ALV_LIST_DISPLAY.

El formato de salida es similar al de un reporte generado con sentencias WRITE.

Page 404: Curso Basico Csti Abap

ALV List

ALVCSTI Consultoría en Tecnologías de Información

Page 405: Curso Basico Csti Abap

ALV Grid

ALVCSTI Consultoría en Tecnologías de Información

ALV Grid es el segundo formato de salida de los reportes ALV.

Se crea utilizando la función REUSE_ALV_GRID_DISPLAY.

El formato de salida es similar al de un archivo Excel y es por esto más atractivo visualmente que el ALV List.

Page 406: Curso Basico Csti Abap

ALV Grid

ALVCSTI Consultoría en Tecnologías de Información

Page 407: Curso Basico Csti Abap

Parámetros del ALV

ALVCSTI Consultoría en Tecnologías de Información

t_outtab Tabla interna Tabla que contiene los datos del reporte

i_callback_program sy-repid Programa que llama al ALV, obligatorio si se usan eventos.

i_save A' = Activar variantes de visualización

is_variant disvariant Variante de visualización.

is_layout slis_layout_alv Formatos generales del reporte ALV.

it_fieldcat slis_t_fieldcat_alv Tabla para definir las columnas del reporte y el formato de las mismas.

it_events slis_t_event Tabla de eventos definidos para el reporte.

it_sort slis_t_sortinfo_alv Tabla de ordenamiento y agrupación del reporte.

Page 408: Curso Basico Csti Abap

IT_FIELDCAT

ALV

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

row_pos Mostrar en la fila n (hasta 3 filas)

col_pos Posición en la columna

fieldname Nombre de la columna en la tabla interna

tabname Nombre de la tabla interna

ref_fieldname Nombre del campo en la estructura de referencia

ref_tabname Nombre de la estructura DD de referencia

cfieldname Nombre del campo que contiene la moneda

ctabname Nombre de la tabla que contiene la moneda

qfieldname Nombre del campo que contiene la unidad de medida

qtabname Nombre de la tabla que contiene la unidad de medida

Page 409: Curso Basico Csti Abap

IT_FIELDCAT

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

ALVCSTI Consultoría en Tecnologías de Información

roundfieldnameNombre del campo que contiene el numero de decimales para redondeo

roundtabnameNombre de la tabla que contiene el numero de decimales para redondeo

round Redondear a n decimales

decimalsfieldnameNombre del campo que contiene el numero de decimales para salida

decimalstabnameNombre del campo que contiene el numero de decimales para salida

decimals_out Mostrar n decimales

exponent Exponente fijo (sólo números flotantes)

key Campo resaltado como clave

icon Mostrar columna como ícono

Page 410: Curso Basico Csti Abap

IT_FIELDCAT

ALV

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

symbol Mostrar columna como símbolo

checkbox Mostrar columna como checkbox

just Justificación L, R o C

lzero Rellenar con ceros a la izquierda hasta la longitud del campo

no_sign No mostrar el signo

no_zero Mostrar blanco si el valor es 0

edit_mask Mostrar el campo con una máscara de edición

emphasize Resaltar el campo

fix_column La columna aparece a la izquierda y siempre es visible

do_sum Columna sumarizada (sólo para columnas numéricas)

no_out Columna oculta (X), columna no puede ser ocultada (O)

tech Columna oculta y no aparece en el pool de columnas

Page 411: Curso Basico Csti Abap

IT_FIELDCAT

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

ALVCSTI Consultoría en Tecnologías de Información

outputlen Longitud de salida

seltext_s Texto corto

seltext_m Texto mediano

seltext_l Texto largo

reptext_ddic Texto cabecera

ddictxt S, M o L, permite seleccionar cual texto mostrar

rollname Elemento de datos del campo

datatype Tipo de datos básico

ddic_outputlen Longitud de salida definida

intlen Longitud definida del campo

hotspot Mostrar columna es acceso directo

input Columna editable

Page 412: Curso Basico Csti Abap

IT_FIELDCAT

ALV

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Puede utilizarse la función REUSE_ALV_FIELDCATALOG_MERGE para cargar el catálogo de campos cuando este esté basado en una única estructura del diccionario de datos.

La función carga el catálogo con todas las columnas de la estructura y luego estas pueden ser tratadas para acomodarse al reporte necesario.

Page 413: Curso Basico Csti Abap

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

IS_LAYOUT

colwidth_optimize Optimizar ancho de columnas

no_colhead No mostrar cabeceras

no_hotspot Las cabeceras no son hotspot (solo ALV List)

zebra Filas de color intercalado

no_vline No mostrar separadores de columnas

window_titlebar Titulo de la ventana

lights_fieldname Campo en la tabla que contiene el valor de la excepcion

lights_tabname Tabla que contiene el valor de la excepcion

no_sumchoice No aparece el boton de totales

no_totalline No aparecen las filas de totales

no_subchoice No aparece el boton de subtotales

ALV

Page 414: Curso Basico Csti Abap

IS_LAYOUT

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

ALVCSTI Consultoría en Tecnologías de Información

no_totalline No aparecen las filas de totales

no_subchoice No aparece el boton de subtotales

no_subtotals No se puede subtotalizar

numc_sum Hacer posible subtotales de campos NUMC

totals_only Mostrar solo totales

totals_text Texto para fila de totales

subtotals_text Texto para filas de subtotales

box_fieldname Campo que permite seleccionar la fila

box_tabname Tabla que contiene a dicho campo

Page 415: Curso Basico Csti Abap

IS_LAYOUT

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

ALVCSTI Consultoría en Tecnologías de Información

expand_fieldname Campo para expandir la fila

no_input Todos los campos son no editables

f2code User command que se ejecuta al hacer doble click

no_keyfix No se puede fijar columnas

no_scrolling No se puede hacer desplazamiento

detail_popup Mostrar detalle en una ventana popup

detail_initial_lines Mostrar detalle para lineas en blanco

detail_titlebar Titulo para la ventana de detalle

coltab_fieldname Columna que contiene la tabla de colores de la fila

Page 416: Curso Basico Csti Abap

IT_SORT

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

ALVCSTI Consultoría en Tecnologías de Información

spos Prioridad del ordenamiento

fieldname Columna por la cual se debe ordenar

tabname Tabla de la columna

up Ordenar ascendente

down Ordenar descendente

group Agrupar: (*) cambio de página, (UL) linea de separación

subtot Mostrar subtotales para el grupo

Page 417: Curso Basico Csti Abap

IT_EVENTS

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

ALVCSTI Consultoría en Tecnologías de Información

name Nombre del evento

form Nombre de la subrutina FORM que lo controla

Page 418: Curso Basico Csti Abap

IT_EVENTS

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

ALVCSTI Consultoría en Tecnologías de Información

La tabla de eventos permite definir y manejar los eventos que ocurren en un reporte ALV.

Para utilizarla, se le carga con la función REUSE_ALV_EVENTS_GET, la cual cargará la lista de eventos del ALV.

A continuación deberá asignarse subrutinas de control a los eventos que se requieran y se debe definir las subrutinas correspondientes.

Al llamar a la función ALV el parámetro I_CALLBACK_PROGRAM es obligatorio y debe contener el nombre del programa que contiene a las subrutinas de control.

Page 419: Curso Basico Csti Abap

Otros ALV

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

ALVCSTI Consultoría en Tecnologías de Información

ALV JerárquicoREUSE_ALV_HIERSEQ_LIST_DISPLAYGeneración de reportes jerárquicos (cabecera y detalle).

Bloques ALVREUSE_ALV_BLOCK*Permite colocar simultáneamente varios ALV (list y jerárquico) dentro de una única pantalla de reporte.

Page 420: Curso Basico Csti Abap

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Page 421: Curso Basico Csti Abap

Clase ALV

O-O Abap List Viewer

CSTI Consultoría en Tecnologías de Información

Page 422: Curso Basico Csti Abap

Introducción

Clase ALVCSTI Consultoría en Tecnologías de Información

CL_GUI_ALV_GRID es una clase estándar que permite crear reportes ALV Grid mediante programación orientada a objetos y permite embeber dichos reportes dentro de dynpros.

Si bien es muy similar a la función REUSE_ALV_GRID_DISPLAY en los resultados que se pueden obtener, su uso es muy diferente pues se hace uso de los conceptos de ABAP Objects.

Page 423: Curso Basico Csti Abap

Ventajas

Clase ALVCSTI Consultoría en Tecnologías de Información

� Orientado a objetos� Se puede utilizar en dynpros� Se puede mostrar varios simultáneamente en una misma pantalla� Reemplaza al TABLE CONTROL, incluyendo todas las funcionalidades de la

función ALV Grid.� Interfaz directa con Office mediante el modo de visualización Excel.

Page 424: Curso Basico Csti Abap

Como Usar CL_GUI_ALV_GRID

Clase ALVCSTI Consultoría en Tecnologías de Información

Para utilizar la clase, se debe crear una dynpro y definir dentro de la dynpro un control CUSTOM CONTROL, el cual separará el área de la dynpro donde se embeberá el ALV Grid.

Page 425: Curso Basico Csti Abap

Definición de datos

Clase ALVCSTI Consultoría en Tecnologías de Información

En el programa, deben definirse 2 objetos de las siguientes clases:

CL_GUI_CUSTOM_CONTAINER para manipular el CUSTOM CONTROL de la dynpro.

CL_GUI_ALV_GRID para crear y manipular el ALV Grid

Page 426: Curso Basico Csti Abap

Definición de datos

Clase ALV

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Adicionalmente deben definirse datos con los siguientes tipos:

lvc_t_fcat Catálogo de campos del ALV

lvc_t_sort Ordenamiento (opcional)

lvc_s_layo Layout (opcional)

disvariant Variante de visualización (opcional)

Page 427: Curso Basico Csti Abap

Instanciación

Clase ALVCSTI Consultoría en Tecnologías de Información

Durante el PBO de la dynpro definida, se deben instanciar los objetos definidos previamente. Nótese que al instanciar el objeto ALV, se hace referencia al objeto Container.

Page 428: Curso Basico Csti Abap

Presentación del Grid

Clase ALVCSTI Consultoría en Tecnologías de Información

Luego de instanciar los objetos y de haber cargado los datos del reporte y el catálogo de campos (si van a utilizarse deberían cargarse también los otros parámetros) se utiliza el método SET_TABLE_FOR_FIRST_DISPLAY.

Page 429: Curso Basico Csti Abap

Presentación del Grid

Clase ALVCSTI Consultoría en Tecnologías de Información

El método SET_TABLE_FOR_FIRST_DISPLAY se debe usar, cómo su nombre lo indica, únicamente para mostrar la tabla por primera vez. Luego de eso no debe utilizarse y si los datos de la tabla base hubieran cambiado y se requiriera refrescarlos en la pantalla, se debe utilizar el método REFRESH_TABLE_DISPLAY.

Page 430: Curso Basico Csti Abap

Eventos

Clase ALVCSTI Consultoría en Tecnologías de Información

El manejo de eventos con la clase ALV es muy diferente al de las funciones ALV porque está orientado a objetos.

Para manejar los eventos de CL_GUI_ALV_GRID, se debe definir una clase que contenga los métodos HANDLER correspondientes y se debe instanciar dicha clase y establecer las relaciones entre eventos y métodos handler adecuadamente.

Page 431: Curso Basico Csti Abap

Eventos

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

Clase ALVCSTI Consultoría en Tecnologías de Información

Declare e implemente la clase manejadora.

Page 432: Curso Basico Csti Abap

Eventos

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

Clase ALVCSTI Consultoría en Tecnologías de Información

Declare e instancie un objeto de la clase definida previamente.

Page 433: Curso Basico Csti Abap

Eventos

Clase ALV

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de Información

Establezca las relaciones entre los métodos handler y los eventos del objeto ALV Grid.

Algunos eventos requieren ser “activados” dentro del ALV.

Page 434: Curso Basico Csti Abap

Algunos Métodos

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

Clase ALVCSTI Consultoría en Tecnologías de Información

set_table_for_first_display Mostrar la tabla por primera vez

refresh_table_display Actualizar la visualización

get_frontend_fieldcatalog Leer el catálogo de campos actual

set_frontend_fieldcatalog Actualizar el catálogo de campos

get_selected_rows Leer las filas seleccionadas

get_selected_columns Leer las columnas seleccioandas

get_selected_cells Leer las celdas seleccionadas

check_changed_data Verificar los datos modificados en la tabla

Page 435: Curso Basico Csti Abap

Algunos Eventos

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

Clase ALVCSTI Consultoría en Tecnologías de Información

onf4 Presionaron F4

data_changed Datos modificados en algún punto de la grilla

user_commandPresionaron un botón (no estándar) de la barra de herramientas

double_click Doble click en algún punto de la grilla

print_top_of_page Top of page cuando se imprime la lista

print_end_of_page End of page cuando se imprime la lista

toolbar Para modificar la barra de herramientas del ALV

Page 436: Curso Basico Csti Abap

Laboratorio 10: ALV

Laboratorio ALVCSTI Consultoría en Tecnologías de Información

1. Crear reportes ALV para los Productos y Documentos de Venta. En la pantalla de selección de cada reporte coloque una opción para mostrar el reporte en formato lista y en formato grilla.

2. Copie el programa de creación de datos para registrar las ventas (Laboratorio 5, ejercicio 1) reemplace en la dynpro el table control con un custom control ALV Grid. La funcionalidad del programa debe mantenerse.

Page 437: Curso Basico Csti Abap

Enhancements

CSTI Consultoría en Tecnologías de Información

Ampliaciones

Page 438: Curso Basico Csti Abap

SAP ha desarrollado todos sus módulos (llámese FI, MM, SD, PP, etc.) con normas

internacionales estándares que son practicadas ampliamente en todas partes del

mundo. Sin embargo, las exigencias de clientes se diferencian de un lado a otro.

Bajo este escenario, se hace imperativo modificar los objetos creados por SAP para

satisfacer las necesidades generadas, para lo cual se han creado diversas técnicas

llamadas Ampliaciones (Enhancements), que son código ABAP externo a los programas

estándares y que se aplican a los procesos de negocio para adaptarlos a los

requerimientos específicos.

Entre las ampliaciones más usadas tenemos, los User Exits, BADIs, Enhancements Points

y BTEs.

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de InformaciónEnhancements

Introducción

Page 439: Curso Basico Csti Abap

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de InformaciónEnhancements

Un User-Exit es una rutina definida dentro de un programa estándar ABAP que está

vacía, es decir, sin código ABAP.

Está rutina está allí para que el usuario ponga su propio código fuente que le permita

realizar tareas específicas que no están previstas por SAP.

Las User-Exit se gestionan por la transacción SMOD y se implementan por la transacción

CMOD.

Una vez implementado el User-Exit, se debe activar el proyecto, ya que es la única

manera que pueda verse el efecto del código introducido en la rutina.

User Exit

Page 440: Curso Basico Csti Abap

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de InformaciónEnhancements

Proyecto de Ampliación

Page 441: Curso Basico Csti Abap

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de InformaciónEnhancements

Ampliaciones y Proyectos de Ampliaciones

Page 442: Curso Basico Csti Abap

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de InformaciónEnhancements

Procedimiento para creación de Ampliaciones

Page 443: Curso Basico Csti Abap

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de InformaciónEnhancements

Procedimiento para activación de Exits

Page 444: Curso Basico Csti Abap

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de InformaciónEnhancements

Creando Proyectos de Cliente por la CMOD

Page 445: Curso Basico Csti Abap

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de InformaciónEnhancements

Asignación de Ampliaciones a proyectos de Cliente

Page 446: Curso Basico Csti Abap

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de InformaciónEnhancements

Editando los componentes

Page 447: Curso Basico Csti Abap

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de InformaciónEnhancements

Activando Proyecto de Ampliación

Page 448: Curso Basico Csti Abap

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de InformaciónEnhancements

Transportando los Proyectos

Page 449: Curso Basico Csti Abap

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de InformaciónEnhancements

Overview de Programa Exit

Page 450: Curso Basico Csti Abap

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de InformaciónEnhancements

Módulo de Función Exit : Flujo de Proceso

Page 451: Curso Basico Csti Abap

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de InformaciónEnhancements

Llamando y Creando M ódulos de Función

Page 452: Curso Basico Csti Abap

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de InformaciónEnhancements

Encontrando M ódulos de Función Exit

Page 453: Curso Basico Csti Abap

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de InformaciónEnhancements

Editando M ódulos de Función Exit

Page 454: Curso Basico Csti Abap

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de InformaciónEnhancements

Resúmen: M ódulos de Función Exit

Page 455: Curso Basico Csti Abap

Las BADI's son un nuevo tipo de ampliación al sistema SAP basado en ABAP Objetcs.

El principal objetivo de las BADI’s, es cumplir con los requerimientos del cliente

permitiendo agregar nuevas funcionalidades dentro del código estándar de SAP.

De la misma manera que con los User Exit's, las BADI's tienen dos vistas: la de definición

y la de implementación.

Mediante la transacción SE18 accedemos a la Definición de las BADI's, en la cual se

pueden ver las características, parámetros de entrada, parámetros de salida, tipo de

BADI, etc.

Para la implementación de la BADI se utiliza la transacción SE19, en la que ademaás se

pueden ver todas las implementaciones que existan de una BADI determinada.

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de InformaciónEnhancements

BADIs (Business ADd-Ins)

Page 456: Curso Basico Csti Abap

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de InformaciónEnhancements

Transacción SE18 – Definición de BADI’s

- Para ver las definiciones existentes, pulse F4 en el nombre de la definición, aparecerá una pantalla pop-up en el cual pulsará el botón Aplicaciones SAP.

- El sistema muestra un árbol de las áreas funcionales (en SAP) de los módulos pertinentes, tales como, MM, SD y HR.

- Navegue en este árbol con el fin de encontrar el área (y por lo tanto la BADI) en la que se está interesado.

Page 457: Curso Basico Csti Abap

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de InformaciónEnhancements

Visualizando una definición estándar - Atributos

Page 458: Curso Basico Csti Abap

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de InformaciónEnhancements

Visualizando una definición estándar – Interface y n ombre del método

Page 459: Curso Basico Csti Abap

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de InformaciónEnhancements

Al pulsar doble click sobre el método se visualizan los detalles acercade los parámetros Importing, Exporting y Changing.

Page 460: Curso Basico Csti Abap

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de InformaciónEnhancements

Transacción SE19 – Implementando BADI’s

Para implemetar una BADI se necesitan hacer tres pasos:

1. Identificar la BADI a implementar (SE18, internet, etc).2. Crear una implementación vía SE19.3. Escribir el código para el método de la BADI.

Page 461: Curso Basico Csti Abap

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de InformaciónEnhancements

Creando la Implementación

Ingresar el nombre de la implementación y pulsar el botón Crear. Aparece unaventana para ingresar el nombre de la BADI.

Esto nos lleva a la siguiente pantalla…

Page 462: Curso Basico Csti Abap

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de InformaciónEnhancements

- Ingrese un nombre descriptivo acorde a la implementación.

- Pulse la ficha Interface para ver el nombre de la clase que se generará productode la implementación, se puede cambiar si se desea. También se muestra, elnombre del método de la BADI.

Page 463: Curso Basico Csti Abap

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de InformaciónEnhancements

Luego. Se pulsa doble click sobre el nombre del método (en nuestra casoSAP_SCRIPT_TABLES).

Esto nos lleva a la pantalla del editor del método. Esta es área donde se puedeescribir el código ABAP que le gustaría que se ejecute cuando el método BADI esLlamado.

Page 464: Curso Basico Csti Abap

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de InformaciónEnhancements

Escribiendo el código para el método de la BADI

Una vez ingresado el código necesario, activar la implementación de la BADI.

Page 465: Curso Basico Csti Abap

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de InformaciónEnhancements

Método para encontrar BADI’s

Para encontrar los lugares en donde existe una BADI, se puede usar elsiguiente método:Poner un BREAK-POINT de sesión dentro del métodoGET_INSTANCE de la clase CL_EXITHANDLER (transacción SE24).Luego, se ejecuta la transacción o programa que queremos verificar yel programa se detendrá en el BREAK-POINT, en la variable exit_name se muestran los nombres de las BADI's que implementa el programa. Este método puede resultar engorroso porque se detiene muchas veces la ejecución, pero nos aseguramos que si una BADI existe se detendrá en ese punto. Lo que estamos haciendo es poner un BREAK-POINT en el momento en que SAP verifica si una definición de BADI tiene alguna implementación activa; por lo tanto, aunque no exista ninguna implementación activa para esa BADI particular el método detectará que existe una BADI en ese punto.

Page 466: Curso Basico Csti Abap

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de InformaciónEnhancements

Otra forma:

Transacción ST05 (Performance Analysis)

Esta técnica de análisis se basa en el echo de que todas las BADI’s estánregistradas en tablas SAP. Por lo que en cada llamada a una BADI el sistemapasa por estas tablas. Las tablas de las BADI’s son las siguientes SXS_INTER,SXC_EXIT, SXC_CLASS y SXC_ATTR. A estas tablas, SAP siempre accedemediante las vistas V_EXT_IMP y V_EXT_ACT. Por lo que estas vistas(T: SE11) serán la base de nuestro análisis.

Page 467: Curso Basico Csti Abap

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de InformaciónEnhancements

EJEMPLO:

Supongamos que quiero saber que BADI’s son llamadas en la transacción “Maintain Business Partners” código BP.

PASOS:

1.- Primero chequeamos que ningún otro usuario (T:SM04) o jobs en fondo (T: SM50) están usando el mismo usuario que tú.

2.- Nos vamos a la transacción ST05 (Performance Analysis) y marcamos el flag "Buffer trace", después pulsamos el botón “Activate Trace “, para activar el Trace.

3.- Inmediatamente después ya que el sistema está ya “Grabando” nos vamos a la transacción BT que queremos analizar y pulsamos el boton "Organization" completando los campos con los siguientes datos de prueba:

Page 468: Curso Basico Csti Abap

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de InformaciónEnhancements

Al finalizar pulsamos el boton salvar.

4.- Volvemos a la ventana donde teníamos abierta la ST05 y pulsamos el botón "Deactivate Trace" para finalizar el trace y pulsamos sobre el botón "Display Trace", entonces el popup "Set Restrictions for Displaying Trace" aparecerá.

5.- Ahora vamos a filtrar el Trace con los objetos: V_EXT_IMP y V_EXT_ACT. Que son nuestras vistas.

Page 469: Curso Basico Csti Abap

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de InformaciónEnhancements

Pulsamos el botón "Copy (F8)" , Fill Operations: OPEN y pulsamos el botón"Enter“.

ANALISIS DE LOS RESULTADOS

Obtendremos un listado parecido a este que interpretaremos de la siguiente manera:

Page 470: Curso Basico Csti Abap

Av. Aviación 2905 Of. 203 San Borja Perú +51 1 2256635

http://www.csti.com.pe

CSTI Consultoría en Tecnologías de InformaciónEnhancements

Todas las “interface class names” de las vista V_EXT_IMP comienzan conIF_EX_. Este es el prefijo estándar de SAP para las “ BADI class interfaces “.El nombre de la BADI está después de este IF_EX_.

Es decir el nombre de la BADi para IF_EX_ADDR_LANGU_TO_VERS esADDR_LANGU_TO_VERS .

Page 471: Curso Basico Csti Abap

Laboratorio 11: Enhancements

Laboratorio Enhancements

CSTI Consultoría en Tecnologías de Información

Implementar una ampliación para que al grabar un pedido de ventas (transacción VA01), muestre un mensaje si el pedido tiene condición de pago al contado. Antes de implementar se debe buscar la BADI que se activa al momento de grabar el pedido.