Lila Modeler v1.0.0-beta.26 EN GitHub
Docs›Guías›Parámetros desde Excel/CSV

Parámetros del escenario desde Excel o CSV

El panel de escenario puede rellenar un escenario desde una hoja de cálculo: tiempos de procesamiento, llegadas, grupos de recursos, qué grupo usa cada tarea y los calendarios semanales. Está pensado para los parámetros que ya tienes en Excel, así no hay que copiarlos campo a campo.

  1. En el panel de escenario, pulsa Descargar plantilla. Obtienes un .xlsx con una hoja por tabla, ya rellena con el escenario que editas y con una fila por elemento del diagrama.
  2. Edítala en Excel, LibreOffice, Numbers o Google Sheets. Cambia lo que necesites y deja el resto.
  3. Pulsa Importar Excel/CSV… y elige el archivo. Todavía no cambia nada: el panel enseña lo que cambiaría (con la hoja y la fila de cada cambio), las filas que no coinciden con nada y los valores inválidos, cada uno con su hoja, fila y columna, y los errores que tendría el escenario al aplicar.
  4. Aplicar escribe los cambios en el escenario que editas, y Deshacer importación los revierte mientras no hayas editado nada más. Cancelar (o Escape) deja el escenario como estaba. Aplicar queda desactivado mientras el archivo fuera a dar al escenario un error nuevo (se muestra en la fila que más probablemente lo causó), y cuando el escenario o el diagrama cambiaron después de leer el archivo: entonces impórtalo de nuevo. Los errores que el escenario ya tenía no bloquean, aunque el archivo reordene una lista; si el escenario no pasaba el esquema, los errores de reglas que aparecen después son notas.

El resultado es una edición normal del escenario, así que la lista de validación del panel lo revisa como siempre. Si el escenario hereda de otro (extends), los cambios van al archivo de este escenario, igual que cuando editas un campo a mano (SCENARIO_FORMAT.md § 6).

Reglas

  • Una celda vacía no cambia nada. La importación rellena el escenario, no lo reemplaza. Una hoja con solo la columna mean cambia las medias y nada más. Una hoja o una fila que el archivo no trae deja esos valores como están.
  • Las filas se emparejan por id BPMN y, si no hay id, por nombre BPMN. El nombre se compara sin distinguir mayúsculas y sin espacios de más. Si dos elementos comparten nombre, la fila se informa como ambigua y no se aplica: escribe el id para elegir uno.
  • Una fila se aplica entera o no se aplica. Si una fila tiene un valor inválido, no se aplica nada de esa fila. Las asignaciones de una tarea y los intervalos de un calendario ocupan varias filas: una fila inválida deja esa tarea o ese calendario sin cambios.
  • Los valores se comprueban con las mismas reglas que el escenario (SCENARIO_FORMAT.md § 3 y § 5), así que los motivos son los que dan el panel y la CLI.
  • Los nombres de columnas y de hojas van en inglés, como en la plantilla. Las mayúsculas, los espacios y una unidad entre paréntesis no importan: Fixed cost (MXN) es fixedCost. Las hojas también pueden llamarse Elementos, Llegadas, Recursos, Asignaciones y Calendarios. Las columnas desconocidas se ignoran con una nota.
  • Las asignaciones y los intervalos de calendario reemplazan una lista entera. Las filas de una tarea en Assignments son todos sus grupos, y las filas de un calendario son todos sus intervalos: borrar una de las dos filas de una tarea le quita ese grupo. Una tarea o un calendario que la hoja no menciona conserva lo que tiene.
  • Los números siguen al archivo. Un CSV separado por ; (lo que escribe un Excel en español) usa , para decimales y . para miles: 7,5, 1.500 (mil quinientos), 1.234.567,5. Un CSV separado por , usa . para decimales y , para miles, que entonces va entre comillas: 7.5, "1,500". Un separador que no es el decimal tiene que agrupar las cifras de tres en tres; si no, el valor es un error que dice la convención (1.5 en un archivo con ;). En un libro, las celdas numéricas son números y no necesitan nada de esto; un número escrito como texto sigue el idioma de la app, y uno que se puede leer de las dos formas (1.500) lleva una nota. Vale el porcentaje (78% es 0.78); los valores no finitos (1e999) son un error. Un archivo separado por tabuladores («Texto Unicode» de Excel) sigue el idioma de la app, como el texto de un libro. La columna points es la excepción: no tiene miles, así que su decimal puede ser . o , en cualquier archivo.
  • Las hojas ocultas no se leen, con una nota: la importación nunca aplica datos que no ves en el archivo. Una fórmula sin resultado guardado (un archivo escrito por un script, o Excel en cálculo manual) se lee vacía, con una nota: abre el archivo en Excel y guárdalo de nuevo.
  • Se rechaza un libro de más de 50 MB de hojas descomprimidas, de más de 1 000 000 de celdas (contando las celdas y filas vacías antes del último valor de cada fila y hoja), o con celdas más allá de la última fila o columna de Excel. Son decenas de miles de filas de la plantilla, mucho más que cualquier escenario. Sus imágenes y gráficos nunca se leen.
  • Los datos en una columna sin cabecera se ignoran con una nota: suele ser un valor que el separador partió porque no iba entre comillas.

Hojas

Elements

Una fila por tarea, temporizador, evento de fin y flujo de salida de una compuerta.

Columna Significado
id, name Id y nombre BPMN del elemento. Basta con uno de los dos.
kind task, timer, end, flow… Solo informativa: la importación la ignora.
distribution Distribución del tiempo de procesamiento (processingTime): constant, uniform, triangular, exponential, normal, truncatedNormal, lognormal, gamma, erlang, weibull, beta, poisson, binomial o user. También valen en español: constante, uniforme, exponencial, normal truncada, usuario.
unit Unidad de los tiempos de la fila: s, min, h o day. Vacía es run.baseTimeUnit, la unidad que muestra el panel.
value … p Una columna por parámetro de distribución: value, min, mode, max, mean, sd, shape, scale, k, alpha, beta, n, p. Rellena los de la distribución elegida y deja vacíos los demás. value, min, mode, max, mean y sd son tiempos en unit.
points Solo para user: pares valor:probabilidad separados por ;, por ejemplo 5:0,2; 10:0,8 (o 5:0.2; 10:0.8). Los valores van en unit.
fixedCost Costo fijo por ejecución.
calendar Clave del calendario; tiene que existir en el escenario o en la hoja Calendars.
probability Para un flujo que sale de una compuerta: entre 0 y 1, o un porcentaje.
selection and u or, cuando la tarea usa varios grupos.

Una distribución siempre necesita su tipo: parámetros sin distribution son un error, y también un parámetro que la distribución no tiene.

Arrivals

Una fila por evento de inicio: id, name, las mismas columnas de distribución (interTriggerTimer, el tiempo entre llegadas), triggerCount (cuántos casos llegan, entero ≥ 1), fixedCost y calendar.

Resources

Una fila por grupo de recursos: id, name, type (role o equipment), capacity, costPerHour, fixedCost y calendar.

  • capacity es un número entero, o la capacidad por turno como pares calendario:unidades separados por ; (dia:3; noche:1).
  • Una fila con un id que el escenario no tiene crea ese grupo. Sin id, la fila se empareja por name, y un nombre que no coincide con ningún grupo se informa.
  • name renombra un grupo solo cuando la fila también trae su id.

Assignments

Qué grupos usa cada tarea: elementId, elementName, resourceId, resourceName y quantity (vacía es 1). Una fila por tarea y grupo. Las filas de una tarea reemplazan su lista entera, así que una tarea que no está en la hoja conserva sus grupos. Una fila con la tarea y sin grupo deja la tarea sin grupos.

Calendars

Una fila por intervalo semanal: id, days, from y to. Las filas de un calendario reemplazan sus intervalos, y un id que el escenario no tiene crea el calendario.

  • days: MON,TUE,WED, un rango como MON-FRI (también MON - FRI o con raya), nombres completos (Monday), o las abreviaturas y nombres en español LUN, MAR, MIE, JUE, VIE, SAB, DOM, lunes… Solo palabras completas: Marzo no es martes.
  • from y to: HH:MM, con 24:00 permitido como fin del día. También vale una hora que Excel guarda como hora del día. Los calendarios guardan horas y minutos, así que los segundos se descartan con una nota.
  • Un calendario con fechas mensuales o anuales (monthDays, monthWeekdays, dates) o con festivos (holidays) no se edita en esta hoja. La plantilla lo omite y la importación lo conserva intacto, entero, con una nota en el informe. Se edita en el panel.

CSV

Un archivo CSV contiene una tabla. La hoja se deduce del nombre del archivo (recursos.csv, Assignments.csv…) o, si el nombre no lo dice, de sus columnas. El separador se detecta: ,, ; (lo que escribe un Excel en español, con la coma decimal) o tabulador, y se entiende la primera línea sep=; de Excel. El separador decide también cómo se escriben los números (ver Reglas). El archivo puede estar en UTF-8, en la codificación de Windows que usa Excel para «CSV (delimitado por comas)» o en UTF-16 («Texto Unicode»).

Límites

  • La importación no cambia run (duración, réplicas, semilla), las condiciones de compuerta (conditions) ni los campos reservados. Esos se editan en el panel.
  • Salvo los grupos de una tarea, no puede quitar un valor, solo ponerlo: una celda vacía nunca borra. Los valores se quitan en el panel.
  • La importación está en la web; la CLI lila todavía no tiene un comando para importar. Sus funciones son públicas en @lila-modeler/engine/scenario-sheets (scenarioTemplate, readScenarioFile, planScenarioImport, applyImportChanges).
✎ Editar esta páginaPara v1.0.0-beta.26