You are on page 1of 46

ABAP

Advanced Bussines Aplication


Programing
Trabajo con estructuras
y
tablas internas
Definición de estructuras con tipos globales
Definición de estructuras con tipos locales
Acceder a componentes de estructura
Copia de componentes de estructura con el mismo nombre
Estructuras en modo debugging
Ejercicio 6: Obtener datos de un cliente

1. Crear el grupo de funciones ZFG##_CLIENTES.


2. Dentro del grupo de funciones anterior, crear el FM
ZFM_LEER_CLIENTE##
3. Definir un parámetro import para el código de cliente, ejm
I_KUNNR TYPE KUNNR
4. Definir un parámetro export que sea una estructura para los
datos del cliente, ejm ES_KNA1 TYPE KNA1
5. Usar la siguiente sentencia OpenSQL:
SELECT SINGLE *
INTO ES_KNA1
FROM KNA1
WHERE KUNNR = I_KUNNR.
6. Crear un programa report ZAB##_DATOS_CLIENTE con un
parámetro de entrada P_KUNNR.
7. Invocar al FM ZFM_LEER_CLIENTE## y mostrar los resultados
como una lista ABAP. Usar como cliente 1032
Tablas internas: opciones de uso
Atributos de tablas internas
Atributos y uso de los tipos de tabla
Definición de tablas internas con tipos globales
Definición de tablas internas con tipos locales
Definición independiente de tablas internas
Posibles definiciones de tablas internas
Acceso a registros individuales (resumen)
Procesamiento de sets de registros (resumen)
Ejemplo de sintaxis: insertar una fila
Ejemplo de sintaxis: salida de una tabla interna fila por fila
Ejemplo de sintaxis: lectura por índice
Ejemplo de sintaxis: lectura por clave
Ejemplo de sintaxis: clasificar y borrar contenido
Analizar tablas en modo debugging
Comparación: tablas internas con y sin líneas de cabecera
EJERCICIO 2: Obtener el listado de todos los clientes de la sociedad
1000
1. Construir un módulo de funciones ZFM_LEER_CLIENTES_SOC##
dentro del grupo de funciones ZFG##CLIENTES.
2. En el FM ZFM_LEER_CLIENTES_SOC## definir un parámetro
import para el código de la sociedad ejm I_BUKRS TYPE BUKRS.
3. En el FM ZFM_LEER_CLIENTES_SOC## definir un parámetro
export para devolver una tabla interna, cuyo tipo de línea sea
como la tabla KNB1. Utilizar la referencia de utilización para
encontrar un tipo tabla adecuado
4. Usar la siguiente instrucción Open SQL para la codificación:
SELECT * INTO TABLE ET_KNB1
FROM KNB1
WHERE BUKRS = I_BUKRS
5. Crear un programa report ZAB##_REPORTE_CLIENTES_SOC con un
parámetro de entrada P_BUKRS.
6. Invocar al FM ZFM_LEER_CLIENTES_SOC## y mostrar los
resultados en un reporte lista. Usar un LOOP para recorrer la tabla
interna de resultados
ABAP Open SQL
Operadores en las condiciones WHERE
Operadores en las condiciones WHERE
Comparación de campos de tabla
Sets de línea individual y multilínea
Lista de objetos de datos en lugar de la
estructura individual
APPENDING en lugar de INTO
Suplemento PACKAGE SIZE
OPEN CURSOR ... FETCH ... CLOSE CURSOR
Variantes del suplemento ORDER BY
Suplemento ORDER BY
Sentencia SELECT DISTINCT
Las funciones de agregado que admite ABAP Open SQL
Sentencia SELECT con expresiones agregadas
Suplemento GROUP BY
Suplemento HAVING
Sentencias SELECT anidadas
Ejemplo – INNER JOIN o OUTER JOIN
Subselects y Subqueries
Ejercicio 3: Obtener los documentos contables de
una sociedad, por ejercicio y periodo (mes)
1. Cree el programa ZAB##_OPENSQL1
2. Agregar 4 parámetros de la siguiente forma:
tables: BKPF.
parameters pbukrs type bkpf-bukrs.
select-options s_belnr for bkpf-belnr.
parameters: pgjahr type bkpf-gjahr,
pmonat type bkpf-monat.
3. Incluir lectura de la tabla BKPF (cabecera doc.
contable) con los parámetros bukrs, belnr, gjahr,
monat. Almacenar los resultados en una tabla interna
T_BKPF.
4. Leer la tabla BSEG (posición doc contable) utilizando
una instrucion SELECT… FOR ALL ENTRIES. Utilizar
la tabla interna T_BKPF como comparación.
Almacenar los resultados en una tabla interna
T_BSEG.
5. Mostrar los resultados en pantalla, agrupando los
datos por cabecera (campos BKPF: BUKRS, BELNR,
GJAHR, MONAT, BUDAT, WAERS, XBLNR) y
posición (campos BSEG: BUZEI, KOART, HKONT,

You might also like