Contenido
Contenido
1. Definición
La instrucción “MESH” la usamos para establecer una relación entre varias tablas y así poder realizar operaciones. Puede estar definida con una cardinalidad uno a uno o uno a n.
Las “mallas” o “meshes” son estructuras especiales. Sus componentes (denominados nodos) son tablas internas estructuradas o variables de referencia que apuntan a tablas internas estructuradas.
Los tipos de tablas incluidos deben ser de tipo estructurado completamente definido. Debemos incluir la clave única, sin esto, no podemos incluirlos en la malla.
![Meshes 2 01](https://logaligroup.com/wp-content/uploads/2022/07/01-1400x217.png)
Para usar un tipo de malla, debemos tener en cuenta lo siguiente:
– Declarar una variable con tipo de estructura de malla.
– Asignar los valores a los nodos de la malla.
– Utilizar las rutas de la malla para obtener los resultados.
– Utilizar el selector de componentes “-“ o el selector de objetos “->” para seleccionar el componente del tipo de malla.
Definimos la estructura compleja con la palabra clave “BEGIN OF MESH” junto con la asociación. Añadimos 4 componentes, uno por cada tipo que hemos creado.
![Meshes 3 Blog Logali SAP Meshes](https://logaligroup.com/wp-content/uploads/2022/07/02.png)
- ASSOCIATION: Se usa para identificar el nodo y se puede acceder al nodo de destino desde el nodo origen, es decir, podemos definir la asociación entre 2 nodos. Esta relación sería parecida a la relación de la clave externa en las tablas de base de datos.
El nombre de las asociaciones no puede tener más de 30 caracteres y solo puede contener las letras de la A a la Z y los dígitos de 0-9, solo el carácter _, y no puede comenzar por un dígito.
SAP recomienda usar el prefijo _ para la nomenclatura que asignemos a nuestras asociaciones, igual que el nombre también debe contener el nombre del nodo de destino, esto para diferenciarlas y facilitar su lectura.
- TO: Se define el nodo al que se refiere esa asociación.
- ON: Se definen los campos que se utilizarían para la asociación. Para cada asociación se debe especificar una condición después de ON que consiste en al menos una comparación de igualdad.
También se pueden agregar comparaciones adicionales para la igualdad, usando AND.
Este tipo de tablas se conoce como nodos.
La ventaja de utilizar Mesh o mallas como tipo de dato es que se evita utilizar iteraciones “LOOP” anidadas, ya que no se consideran una buena práctica.
Estas relaciones semánticas entre los nodos de malla se pueden evaluar en las rutas de malla.
1. Navegación
El siguiente paso después de definir las mallas, es navegar en estas utilizando la ruta de malla o más conocida como “MESH PATH”.
Es posible acceder a los nodos de la malla utilizando la asociación. Las asociaciones también se pueden enlazar para generar resultados, además, la primera asociación debe tener la condición para encontrar el nodo en la malla.
Declaramos la tabla interna “GT_FLIGHTS2” del tipo “GTY_FLIGHTS”.
Posteriormente llenamos mediante “SELECT”, cada columna de la tabla “GT_FLIGHTS2” y obtenemos los datos de las tablas SFLIGHT, SAIRPORT, SCARR y SPFLI.
Realizamos una asociación directa, declarando la estructura de la ruta de malla “GS_FLIGHT2” con el nodo de “SCARR_NODE”.
![Meshes 4 Blog Logali SAP Meshes](https://logaligroup.com/wp-content/uploads/2022/07/03-1238x800.png)
Esta ruta, entra a la tabla de la malla “GT_FLIGHTS2” de estructura de tipo complejo, después navega al nodo y con el “\” navega hacia la asociación que tiene con la tabla “SPFLI”.
Sintaxis:
mesh-node\association[ CONDITION ]\assocation1[ ]\association2[ ]\..
Una ruta de llama siempre se construye de la siguiente manera:
- Primero debe contener el nombre de la malla y luego se navega a el nodo base.
- Es importante añadir el símbolo de barra inclinada invertida.
- A continuación, el nombre de una asociación inicial entre dos nodos, en este caso, “_SPFLI”.
- Posteriormente se pueden añadir más asociaciones “\_asocciacion2 \_asociación3”
Cada columna de la tabla “GT_FLIGHTS2” es una tabla.
Activamos y ejecutamos el programa para ver los resultados.
![Meshes 5 Blog Logali SAP Meshes](https://logaligroup.com/wp-content/uploads/2022/07/04-1400x208.png)
En resumen, lo que se realiza es lo siguiente: Se toma la tabla principal de la malla, en este caso, “GT_FLIGHTS2”, sabemos que, dentro de la malla, en cada columna tenemos otra tabla anidada, esta es conocida como una estructura profunda o compleja. Posteriormente se navega al nodo “SCARR_NODE”.
Mediante la diagonal invertida indicamos que este nodo tiene una asociación con el nodo de “SPFLI_NODE” llamada “_SPFLI”.
La sintaxis utilizada para especificar la fila del nodo fuente es poner entre corchetes el nodo y luego de nuevo en corchetes la condición.
También es posible realizar asociaciones inversas, con un componente de direccionamiento, agregando más condiciones o incluso se pueden utilizar Field symbols dentro de su operación.