# La lista de corridas

> La lista Corridas y sus filtros, la anatomía de una fila, la paginación y la actualización, el control de importación y la eliminación de una corrida o de una tanda entera.

La mitad izquierda del navegador se encabeza **Corridas**, con dos controles en su
encabezado: **Importar** (un archivo `.glab` grabado en otro lado,
[Importar corridas](histories-import)) y **Actualizar**. Debajo, la tira de filtros, la
barra de lote cuando hay corridas marcadas, una página de 50 corridas, del arranque más
reciente al más antiguo, y el paginador ("1–50 de 3214"), que solo aparece mientras al menos
una corrida coincide. No hay ningún otro orden. Al seleccionar una fila se abre la corrida a la
derecha y se marca la fila.

Actualizar recarga la página y vuelve a leer las opciones de Unidad y de Responsable, así
que una unidad configurada o un usuario creado desde que se abrió el panel pasa a ser
filtrable sin salir del navegador. La lista no se actualiza sola: una corrida grabada
mientras se lee otra aparece en la siguiente actualización, cambio de filtro o paso de
página.

## La fila {#the-row}

| Elemento | Significado |
| --- | --- |
| Nombre de la corrida | El nombre con el que se grabó la corrida: "Procedimiento · Unidad" para la corrida de un procedimiento, "Instantánea · Datalog" o "Evaluar · Evaluación" para un comando suelto. |
| Insignia de automatización | La corrida la admitió la interfaz de automatización de la unidad, no una persona. |
| Insignia de importada | La corrida llegó como archivo `.glab` desde otra instalación. |
| Punto verde | La corrida está En marcha. |
| Insignia Conforme, No conforme o Indeterminado | El veredicto. Una corrida que no lleva ninguna no tiene veredicto, o no ha terminado. |
| Línea inferior | El estado del ciclo de vida, después **Enclavamiento** cuando la señal de paro externa de la unidad terminó la corrida, después quién la arrancó y después el instante de arranque en el formato de la estación. Una columna estrecha recorta el nombre del responsable; la línea entera está en la información emergente de la fila. |
| Casilla | Marca la corrida para la eliminación en lote ("Seleccionar para eliminar"). Solo se dibuja para un rol que tenga Gestionar los históricos. Atenuada para una corrida que no ha terminado ("Una corrida que no ha terminado no se puede eliminar.") y en una estación de solo lectura. |

## Filtros {#filters}

Todo filtro es una columna del índice de corridas, la caja de búsqueda incluida: el índice guarda
los valores de los metadatos de cada corrida junto a su nombre. Así que la tira se resuelve como
una sola consulta indexada: no se abre ningún archivo de corrida para decidir una coincidencia, y
un archivo de años nunca se carga entero. Cambiar un filtro regresa a la primera página.

| Filtro | Opciones | Notas |
| --- | --- | --- |
| Filtrar las corridas por nombre o valor de los metadatos | Texto libre | Una parte del nombre de la corrida o de cualquier valor de metadatos con el que se arrancó (un número de serie, un lote), sin distinguir mayúsculas, aplicada mientras se escribe. |
| Veredicto | Todos los veredictos, Conforme, No conforme, Indeterminado, Sin veredicto | **Sin veredicto** lista las corridas que no llevan ninguno, hayan terminado o no. |
| Estado | Todos los estados, En marcha, En pausa, Completada, Abortada, Fallida | **En marcha** lista también una corrida que todavía está escribiendo su archivo (Guardando), que a efectos prácticos no ha dejado de grabar. |
| Unidad | Todas las unidades y después una entrada por unidad como "Modelo · Unidad" | Dónde ocurrió la corrida, por orden de modelo y después de unidad. Una corrida importada no pertenece a ninguna unidad y solo se lista bajo Todas las unidades. |
| Responsable | Todos los responsables, Estación, Automatización, Agente y después todos los usuarios locales por su nombre | Quién arrancó la corrida. A una persona se la reconoce por la identidad congelada en la corrida, no por el nombre: un operador renombrado conserva sus corridas, y uno eliminado sigue entre las opciones mientras sus corridas lo nombren. |
| Desde / Hasta | Días de calendario | El arranque más antiguo y el más reciente que se listan. Los dos son días locales de la estación; el día Hasta se incluye entero. |

Si ninguna corrida coincide, la lista no dibuja filas ni paginador, solo una línea en su lugar.
Mientras haya algún filtro puesto, la caja de búsqueda incluida, la línea dice
"Ninguna corrida coincide con los filtros.", incluso en una estación que no ha grabado nada; sin
ningún filtro puesto, solo una estación sin ninguna corrida no encuentra nada, y la línea dice
"Todavía no hay corridas registradas." Hasta que se lee la primera página del índice, la línea dice "Cargando las corridas…"; si el índice no se puede leer, lo dice, con el motivo.

Las corridas grabadas por una versión cuyo índice no guardaba los valores de los metadatos los
reciben una vez, en segundo plano, a partir del primer arranque después de la actualización. La
estación lee un archivo de corrida a la vez y espera mientras una corrida está grabando o el
runtime está detenido, así que nada queda retenido. Mientras eso no termina, una búsqueda encuentra
esas corridas solo por el nombre y lo dice bajo la caja: "La búsqueda todavía no abarca los
metadatos de las corridas más antiguas: aún se están indexando y, mientras tanto, solo se encuentran
por su nombre." Un archivo de corrida que no se puede leer se omite, y esa corrida solo se encuentra
por el nombre hasta que
[Reconstruir el índice del histórico de corridas](settings-backups#rebuild-run-history-index) lo
vuelva a leer.

## Paginación {#paging}

Página anterior y Página siguiente recorren la coincidencia de página en página; el
conjunto marcado y la corrida abierta sobreviven a un paso de página. Eliminar la cola del
archivo mueve la posición a la última página que todavía existe.

## Eliminar corridas {#deleting-runs}

Eliminar una corrida exige **Gestionar los históricos**. Un rol sin ese permiso no recibe
casilla, ni barra de tanda, ni **Eliminar**: el gesto no se dibuja, en vez de aparecer
atenuado.

**Eliminar**, el verbo de peligro al final de la tira del registro, quita la corrida abierta
y su archivo después de "¿Eliminar 'nombre'? Esto elimina la corrida y su archivo. Los
documentos ya publicados para ella se quedan en la carpeta de reportes. Una corrida que no
ha terminado no se puede eliminar." Está atenuado en una estación de solo lectura y para una
corrida En marcha, En pausa o Guardando; el servicio rechaza con la misma regla una corrida
que todavía posee sus bloqueos de origen. El resultado aterriza en el registro de acciones
("Eliminada · nombre").

Para una tanda, marque corridas en la lista: aparece una barra de lote con "N
seleccionadas", **Página** (marca todas las corridas eliminables de esta página),
**Limpiar** (desmarca todas las corridas) y **Eliminar** (atenuado en una estación de solo
lectura y mientras corre una tanda). El conjunto marcado se guarda por la identidad de cada
corrida y sobrevive a la paginación y a la actualización, así que una tanda filtrada por
fecha se puede armar página a página antes de que una sola confirmación ("¿Eliminar
permanentemente N corridas registradas y sus archivos? Los documentos ya publicados para
ellas se quedan en la carpeta de reportes. Esta acción no se puede deshacer.") la elimine. Cada corrida se
elimina por su cuenta, la fila del índice y el archivo juntos, así que una corrida que el
runtime todavía posee se rechaza individualmente y el registro reporta "Eliminadas X de Y
corridas · Z rechazadas: motivo" en vez de fallar la tanda entera. Eliminar una corrida quita
también su aportación a la producción de la unidad. Además libera el nombre de archivo de
exportación de la corrida, salvo que un documento publicado para esa corrida siga en la
carpeta de reportes: los documentos se quedan ahí por diseño y llevan ese nombre, así que
sigue ocupado mientras ellos estén, y ninguna corrida posterior puede publicar encima de uno
de ellos.

## Qué no hace la lista {#what-the-list-does-not-do}

No ordena por nada que no sea el instante de arranque, no busca en los comentarios ni en los
valores grabados de una corrida (solo en su nombre y en los valores de sus metadatos) y no abre dos
corridas a la vez; una segunda pestaña del navegador es un segundo navegador con su propia
selección y sus propios filtros.
