> For the complete documentation index, see [llms.txt](https://docs.realmjoin.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.realmjoin.com/es/dev-reference/runbook-output-data.md).

# Datos de salida de Runbook

Presenta los resultados de runbook como tablas ordenables y filtrables en el RealmJoin Portal, y escribe runbooks que emitan objetos estructurados.

## Resumen

**Datos de salida** es el equivalente estructurado de la **Consola** pestaña de una página de trabajo de runbook. La consola conserva el flujo de texto sin formato, línea por línea, de una ejecución; Datos de salida representa los objetos que esa misma ejecución emitió como tablas. Los valores largos, como GUID, se muestran completos en lugar de truncarse a `…` por el formateador de consola de PowerShell, y los conjuntos de resultados anchos siguen siendo legibles en lugar de ajustarse en varias líneas.

Características clave:

* **Sin configuración, sin permisos adicionales** — la pestaña está disponible para cada runbook que emite objetos. No hay que habilitar nada, y quién puede iniciar un runbook no se ve afectado.
* **Objetos en lugar de texto preformateado** — las tablas se construyen a partir de lo que el runbook escribe en el flujo de salida. Un runbook que preformatea sus resultados con `Format-Table` no produce Datos de salida en absoluto.
* **Tablas interactivas** — cada tabla se puede ordenar, filtrar, paginar y exportar a Excel o CSV independientemente de las demás.
* **Los datos anidados siguen siendo inspeccionables** — los objetos y matrices dentro de una celda se pueden expandir en lugar de aplanarse en una sola cadena ilegible.
* **La pestaña Consola no cambia** — la salida de texto completa sigue disponible y se puede copiar, que es lo que normalmente necesita un servicio o un ticket ITIL.

## Inicio rápido

El runbook mínimo viable emite un objeto marcador con el nombre de la tabla, y luego los datos:

```powershell
[PSCustomObject]@{ RjTableTitle = 'Non-compliant devices' }
Write-Output $nonCompliantDevices
```

Esto produce una tabla titulada **Dispositivos no conformes** en la pestaña Datos de salida — una fila por dispositivo, una columna por propiedad — además de una línea de resumen compacta en la pestaña Consola que enlaza con ella.

## Leer Datos de salida en el portal

Abra un trabajo desde [Registros de runbook](/es/automatizacion/runbooks/runbook-logs.md) y cambie a la **Datos de salida** pestaña. Consulte [Detalles del trabajo del runbook](/es/automatizacion/runbooks/runbook-logs/runbook-job-details.md) para ver las demás pestañas de esa página.

### Tablas y navegación

Cada conjunto de objetos que emite un runbook se convierte en una tabla. Una tabla contiene:

* **Un título** — ya sea el nombre que asignó el runbook (véase [Nombrar una tabla](#naming-a-table)) o el valor alternativo `Tabla 1`, `Tabla 2` y así sucesivamente.
* **Una entrada en la barra lateral** — cada tabla aparece en la izquierda; al hacer clic en un título se va a ella.
* **Un contador de filas** — `12 / 340 filas` muestra cuántas filas coinciden con el filtro actual de entre el total de la tabla.

### Filtro

El **Filtrar…** el cuadro encima de una tabla conserva solo las filas que contienen el texto introducido. El filtro es una coincidencia de subcadena sin distinción entre mayúsculas y minúsculas en todas las columnas de esa tabla. Cada tabla se filtra de forma independiente.

### Ordenar

Al hacer clic en el encabezado de una columna se ordena por esa columna; al volver a hacer clic se invierte la dirección. Una flecha (`▲` / `▼`) marca la columna activa. La ordenación distingue el tipo:

| Contenido de la columna | Orden de ordenación                                       |
| ----------------------- | --------------------------------------------------------- |
| Números                 | Numérico — `2` antes de `10`.                             |
| Fechas                  | Cronológico.                                              |
| Todo lo demás           | Alfabético, sin distinción entre mayúsculas y minúsculas. |

Las celdas vacías se ordenan primero.

### Paginación

Las tablas se paginan de 50 filas, con un paginador debajo de la tabla. El filtro y la ordenación se aplican siempre a toda la tabla, no solo a la página que se muestra actualmente.

### Objetos y listas anidados

Una celda que contiene un objeto o matriz anidado no se aplana en texto ilegible:

* La celda muestra un caret (`▸`). Al hacer clic se expande ese objeto o matriz en línea debajo de la fila.
* El encabezado de la columna lleva una flecha de expansión. Al hacer clic se expande toda la columna en su propia tabla: el valor anidado de cada fila padre se desglosa en filas, y una columna de referencia enlaza de vuelta con el número de fila padre. La nueva tabla se agrega al final de la página y a la barra lateral, y se puede filtrar, ordenar y exportar como cualquier otra.

### Exportar

Cada tabla tiene su propio **Exportar a Excel** (`.xlsx`) y **Exportar a CSV** botones. Las exportaciones respetan el filtro activo — solo se escriben las filas coincidentes — y usan el título de la tabla como nombre de archivo. Exportar a Excel también usa el título como nombre de la hoja y falla para títulos de más de 31 caracteres; véase [Nombrar una tabla](#naming-a-table).

La exportación desde el portal cubre el caso ad hoc. Para los archivos de informe que se supone que un runbook debe entregar por sí mismo — como adjunto de correo o como enlace de descarga — créelos en el runbook en su lugar, con [Export-RjRbXlsx](/es/dev-reference/report-functions/export-rjrbxlsx.md) y los ayudantes de entrega.

## Pestaña Consola

Cuando un trabajo emitió tablas, la **Consola** pestaña muestra una vista comprimida de forma predeterminada. Las tablas se dibujan al estilo de PowerShell pero truncadas, de modo que las líneas de estado sigan siendo legibles y un runbook que emitió cientos de objetos no inunde la página. En lugar de cada tabla, la consola muestra un cuadro de resumen:

```plaintext
╭─ Table ────────────────────────────────────────────╮
│ <table name> · <row count> rows                    │
╰───────────────────────────── → "Datos de salida" tab ──╯
```

Las tablas emitidas en sucesión directa comparten un solo cuadro:

```plaintext
╭─ Table ────────────────────────────────────────────╮
│ Devices                 · 3123 rows                │
│ Application credentials · 42 rows                  │
│ Large export sample     · 987654 rows              │
╰───────────────────────────── → "Datos de salida" tab ──╯
```

`→ "Datos de salida" tab` es un enlace y cambia a la tabla correspondiente.

Dos botones controlan la vista:

* **Mostrar salida completa** — cambia al texto completo, sin truncar.
* **Mostrar tablas comprimidas** — volver.

**Copiar al portapapeles** siempre copia la salida sin procesar completa, independientemente de la vista que se muestre.

## Emitir Datos de salida desde un runbook

La pestaña se construye a partir de los objetos que emite un runbook. Por tanto, las tablas limpias requieren que el runbook escriba objetos en lugar de preformatearlos como texto.

### Emita objetos, no texto formateado

> **Nunca canalice la salida a través de `Format-Table` o `Format-List`.** Esos cmdlets emiten registros del motor de formato, no datos. El portal los detecta y los oculta, y muestra una sugerencia de que la salida estaba mal formateada. Lo mismo se aplica allí donde PowerShell da formato automáticamente a un resultado porque se escribió en el host en lugar de en el flujo de salida.

`Format-*` cmdlets solo controlan *la presentación*. Lo para lo que se usaban tiene un equivalente en datos que Datos de salida puede representar — seleccionar columnas en particular es lo que `Select-Object` hace:

| En lugar de                          | Use                                  |
| ------------------------------------ | ------------------------------------ |
| `$devices \| Format-Table Name, Id`  | `$devices \| Select-Object Name, Id` |
| `$devices \| Format-Table -AutoSize` | `Write-Output $devices`              |
| `$devices \| Format-List`            | `Write-Output $devices`              |

`Select-Object Name, Id` produce la misma selección de columnas que `Format-Table Name, Id` habría mostrado — pero emite objetos, por lo que las columnas llegan a la pestaña Datos de salida en lugar de descartarse como registros de formato:

```powershell
# Bien — objetos reales, columnas elegidas con Select-Object
$devices | Select-Object Name, Id, OperatingSystem, LastSeen

# Mal — registros de formato, ocultos de Datos de salida
$devices | Format-Table Name, Id, OperatingSystem, LastSeen
```

Las propiedades seleccionadas son exactamente las columnas de la tabla resultante: `Nombre`, `Id`, `OperatingSystem` y `LastSeen`, una fila por dispositivo.

### Cómo los objetos se convierten en tablas

| Emitido                                               | Se representa como                                                                                            |
| ----------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
| Un objeto                                             | Una fila — sus propiedades se convierten en las columnas.                                                     |
| Objetos consecutivos con las mismas propiedades       | Una tabla.                                                                                                    |
| Un objeto con un conjunto diferente de propiedades    | Empieza una nueva tabla.                                                                                      |
| Un único valor simple (cadena, número)                | Una línea de texto en la consola, no una tabla.                                                               |
| Una línea que comienza con `##` seguida de un espacio | Un encabezado en la vista de consola.                                                                         |
| Un objeto o matriz anidado                            | JSON en la celda, expandible en la cuadrícula — véase [Objetos y listas anidados](#nested-objects-and-lists). |

### Nombrar una tabla

De forma predeterminada, las tablas se etiquetan `Tabla 1`, `Tabla 2` y así sucesivamente. Para dar a una tabla un nombre significativo, el runbook emite un objeto marcador justo antes de los datos. El marcador es un objeto de una sola propiedad cuya única propiedad es `RjTableTitle`:

```powershell
[PSCustomObject]@{ RjTableTitle = 'Non-compliant devices' }
Write-Output $nonCompliantDevices
```

La tabla siguiente se titula entonces **Dispositivos no conformes** — en el encabezado, en la barra lateral y en el nombre del archivo exportado.

* El propio marcador se **consume**. No aparece ni como fila ni como línea de consola.
* El nombre de la propiedad es **no distingue mayúsculas y minúsculas** — `RjTableTitle`, `rjtabletitle` y cualquier otra combinación de mayúsculas y minúsculas funciona.
* Una **en blanco** se ignora, por lo que un marcador vacío no puede borrar un nombre existente.
* El nombre se aplica a la **siguiente** tabla emitida, incluso cuando hay líneas de estado entre medias.

Repetir el patrón nombra varias tablas en una sola ejecución:

```powershell
[PSCustomObject]@{ RjTableTitle = 'Compliant devices' }
Write-Output $compliant

[PSCustomObject]@{ RjTableTitle = 'Non-compliant devices' }
Write-Output $nonCompliant
```

{% hint style="warning" %}
**Mantenga los títulos de las tablas en 31 caracteres como máximo.** **Exportar a Excel** usa el título de la tabla como nombre de la hoja, y Excel solo acepta nombres de 1 a 31 caracteres que no contengan ninguno de `\\ / ? * [ ] :` y no empiecen ni terminen con un apóstrofo. Un título más largo como `Usuarios deshabilitados con un buzón compartido` (36 caracteres) hace que la exportación falle con *"Se produjo un error al cargar los datos: el nombre de hoja 'Disabled users with a shared mailbox' no es válido - el número de caracteres DEBE ser mayor o igual que 1 y menor o igual que 31"*.

El límite incluye valores insertados en tiempo de ejecución, como un nombre de grupo o una fecha. Elija títulos cortos y significativos, y cuando el runbook también escriba un archivo de Excel con [Export-RjRbXlsx](/es/dev-reference/report-functions/export-rjrbxlsx.md#worksheet-names)utilice el mismo nombre para la tabla y la hoja correspondiente.
{% endhint %}

## Comportamiento y limitaciones

### Trabajos archivados

Datos de salida está disponible solo para ejecuciones en vivo. Un trabajo archivado muestra *"No se pueden recuperar datos estructurados de una ejecución archivada."* — esos resultados deben leerse desde la pestaña Consola. Consulte [Registros de runbook](/es/automatizacion/runbooks/runbook-logs.md) para ver la diferencia entre los registros de trabajos recientes y archivados.

### Runbooks sin salida estructurada

*"No hay datos de salida estructurados de este runbook."* significa que no se emitió nada con forma de tabla. Si el mensaje va acompañado de un icono de información, el runbook envió registros de formato de PowerShell en lugar de datos — véase [Emita objetos, no texto formateado](#emit-objects-not-formatted-text).

### Valores únicos

Un runbook que emite un único valor simple — una cadena de estado, un recuento — conserva ese valor como una línea de texto en la pestaña Consola. Solo los objetos se convierten en tablas, por lo que los mensajes de progreso y estado no se transforman cada uno en una tabla de una sola fila.

## Véase también

* [Detalles del trabajo del runbook](/es/automatizacion/runbooks/runbook-logs/runbook-job-details.md) — la página del trabajo que aloja las pestañas Consola y Datos de salida.
* [Export-RjRbXlsx](/es/dev-reference/report-functions/export-rjrbxlsx.md) — escriba los mismos objetos en un libro de Excel con estilo para entregarlo fuera del portal.
* [Send-RjRbReportEmail](/es/dev-reference/report-functions/send-rjrbreportemail.md) — entregue por correo electrónico los resultados del informe a los administradores.
* [Interactuar con los runbooks](/es/dev-reference/interacting-with-runbooks.md) — lea la salida del trabajo de forma programática a través de la API de RealmJoin.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.realmjoin.com/es/dev-reference/runbook-output-data.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
