SAP — Read tree
SAP — Read tree
Sección titulada «SAP — Read tree»Tipo: sap-tree-read · Paquete: SAP Activities v1.0.5 · Salida: List<Dictionary<string,object>>
Lista los nodos de un árbol de SAP (como el menú de SAP Easy Access o los árboles de navegación de muchas transacciones) con su clave, su texto y su nivel. Es la forma de averiguar las claves que necesitan las demás actividades de árbol, y también sirve para leer el contenido de un árbol como datos.
Cómo funciona
Sección titulada «Cómo funciona»Espera a que SAP termine lo que esté procesando, busca el árbol por su selector y recorre sus nodos. Por cada nodo devuelve un elemento con tres campos:
| Campo | Contenido |
|---|---|
key | Clave del nodo. Es la que usan SAP — Expand tree node y SAP — Select tree node. |
text | Texto visible del nodo. |
level | Nivel de profundidad del nodo en el árbol, como texto. |
En los árboles de SAP, los nodos se identifican por su clave, no por el texto ni por la posición. La clave la asigna el programa de SAP y es estable; el texto cambia con el idioma de la sesión y la posición cambia en cuanto se expande otra rama. Además, las claves suelen llevar espacios significativos (por ejemplo " 1"), así que lo más seguro es tomarlas de la salida de esta actividad en lugar de escribirlas a mano.
Si el control no es un árbol, la actividad falla indicándolo. Si el árbol todavía no está en pantalla, lo espera hasta el plazo configurado (timeout o el elementTimeout del ámbito, 30 segundos por defecto).
Parámetros requeridos
Sección titulada «Parámetros requeridos»| Parámetro | Tipo | Por defecto | Descripción |
|---|---|---|---|
selector | selector | — | El árbol. Selector capturado o id de SAP, por ejemplo wnd[0]/usr/cntlTREE/shellcont/shell. |
Parámetros opcionales
Sección titulada «Parámetros opcionales»| Parámetro | Tipo | Por defecto | Descripción |
|---|---|---|---|
session | ZoanSapSession | — | Sesión de SAP. Omítela dentro del body de un SAP — Attach o SAP — Log on. |
timeout | number | — | Segundos que se espera a que aparezca el árbol. Manda sobre el elementTimeout del ámbito. Vacío usa el del ámbito (30 por defecto); 0 falla al primer intento. Admite decimales. |
Devuelve una List<Dictionary<string,object>>: una lista con un elemento por nodo cargado, en el orden en que SAP los entrega, cada uno con key (string), text (string) y level (el nivel, como string). Si SAP no puede dar el texto o el nivel de un nodo, ese campo viene como "". En el log queda cuántos nodos se leyeron.
Errores comunes
Sección titulada «Errores comunes»| Mensaje | Causa y solución |
|---|---|
El control no respondió a GetAllNodeKeys; ¿de verdad es un GuiTree? | El selector no apunta a un árbol. Captura el shell del árbol. |
El componente '…' no existe en la sesión de SAP. Se esperó … s a que apareciera. La pantalla actual es … dynpro … (transacción …). … | El elemento no apareció en el plazo. El mensaje dice en qué pantalla está la sesión: casi siempre es otra distinta de la esperada (un diálogo delante, un paso que no se dio). Si la pantalla tarda, sube timeout. |
Además, los errores comunes a todas las actividades.
Ejemplo
Sección titulada «Ejemplo»Buscar un nodo por su texto y abrirlo:
SAP — Read tree selector = "wnd[0]/usr/cntlTREE/shellcont/shell" → output: nodos
For Each items = nodos itemVariable = nodo └─ activities: If condition = nodo["text"] == "Informes mensuales" └─ then: SAP — Select tree node selector = "wnd[0]/usr/cntlTREE/shellcont/shell" nodeKey = nodo["key"]Actividades relacionadas
Sección titulada «Actividades relacionadas»- SAP — Expand tree node — expandir una rama para ver sus hijos.
- SAP — Select tree node — seleccionar o abrir un nodo.