ABAP Open SQL – La mejor manera de seleccionar de múltiples tablas.
Quiero hacer un informe a partir de una selección en varias tablas con filtros para aplicar.
Nada nuevo, pero me pregunto cuál es la mejor implementación posible (considerando que estoy utilizando un sistema S/4HANA).
Especificación
Datos
Por ejemplo, queremos recuperar datos de las tablas:
Encabezado de orden EKKO
Elemento de orden EKPO
Asignación de elemento de orden EKKN
Histórico de elemento de orden EKBE
Las tablas tienen las siguientes relaciones:
EKKO 1 – n EKPO
EKPO 1 – n EKKN
EKPO 1 – n EKBE
Filtros
Quisiéramos que al menos un elemento de cada tabla esté presente (INNER JOIN), si el encabezado no tiene un elemento, no cargamos los datos del encabezado, si el elemento no tiene una asignación, no cargamos los datos de la publicación, etc.
Aplicaríamos filtros a varias áreas de la tabla, por ejemplo:
Planta EKPO-WERKS
etc. ..
Implementación
Selección con join
La primera solución sería hacer una selección en todas las tablas con uniones y luego desarmarlas después con LOOP AT … GROUP BY … luego LOOP AT GROUP.
¡Pero ya me estoy haciendo preguntas!
¿En qué orden se debe seleccionar los datos? ¿EKKO->EKPO->etc. o EKPO->EKKO, etc.?
Selección múltiple
Seleccionar encabezados y luego los elementos según los encabezados, luego la asignación según los elementos, etc.
La ventaja es que es más legible (no estoy seguro) y tenemos menos datos redundantes, por otro lado, debemos aplicar ciertos filtros después de la selección en ABAP.
???
¿Otra solución?
Conclusión
Entonces, estoy un poco perdido y me gustaría tener su opinión.
davy.ai
¿Cuál crees que es la mejor solución? ¿Hay alguna otra solución?