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.
- En el panel de escenario, pulsa Descargar plantilla. Obtienes un
.xlsxcon una hoja por tabla, ya rellena con el escenario que editas y con una fila por elemento del diagrama. - Edítala en Excel, LibreOffice, Numbers o Google Sheets. Cambia lo que necesites y deja el resto.
- 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.
- 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
meancambia 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)esfixedCost. Las hojas también pueden llamarseElementos,Llegadas,Recursos,AsignacionesyCalendarios. 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.5en 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%es0.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 columnapointses 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.
capacityes un número entero, o la capacidad por turno como parescalendario:unidadesseparados por;(dia:3; noche:1).- Una fila con un
idque el escenario no tiene crea ese grupo. Sinid, la fila se empareja porname, y un nombre que no coincide con ningún grupo se informa. namerenombra un grupo solo cuando la fila también trae suid.
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 comoMON-FRI(tambiénMON - FRIo con raya), nombres completos (Monday), o las abreviaturas y nombres en españolLUN,MAR,MIE,JUE,VIE,SAB,DOM,lunes… Solo palabras completas:Marzono es martes.fromyto:HH:MM, con24:00permitido 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
lilatodavía no tiene un comando para importar. Sus funciones son públicas en@lila-modeler/engine/scenario-sheets(scenarioTemplate,readScenarioFile,planScenarioImport,applyImportChanges).