Carga masiva por Excel
La estructura del PDI —ejes, programas, proyectos, metas y acciones— no se captura a mano: se carga desde un libro de Excel en /s-plan/actualizacion. Esta página documenta el formato exacto que espera el cargador y qué escribe en la base de datos.
update multipath sobre todo el árbol: reemplaza campo por campo lo que traiga el archivo. Un archivo
incompleto no borra nodos, pero sí puede dejar vacíos los campos que vengan en blanco. Respalda antes de cargar y
usa siempre el archivo consolidado completo.El libro y su hoja
- Formato
.xlsxo.xls. - La hoja debe llamarse exactamente
S-PLAN. Si no existe, el cargador aborta con el mensaje “La hoja 'S-PLAN' no fue encontrada”. - La primera fila son los encabezados; los nombres de columna deben coincidir carácter por carácter
con los de las tablas de abajo, incluidas las tildes de
año. - Cada fila es una acción. Los datos de eje, programa, proyecto y meta se repiten en todas las filas de esa rama: el cargador los reescribe con el último valor leído.
- Una fila sin
id_ejese ignora en silencio.
Columnas de la hoja S-PLAN
Todas las columnas del cargador principal (pestaña Cargar Todo), en el orden jerárquico en que se aplican.
| Columna | Nivel | Se escribe en / observaciones |
|---|---|---|
id_eje | Eje | Clave del nodo. Obligatoria: sin ella la fila se descarta. |
titulo_eje | Eje | titulo_eje |
descripcion_eje | Eje | descripcion_eje |
avance_eje_100 | Eje | avance_eje — se guarda tal cual viene. |
id_programa | Programa | Clave del nodo. Si viene vacía, no se baja a este nivel. |
programa | Programa | programa (el nombre). |
avance_programa_100 | Programa | avance_programa |
id_proyecto | Proyecto | Clave del nodo (código BPU). |
nombre_proyecto | Proyecto | nombre_proyecto |
avance_proyecto_100 | Proyecto | avance_proyecto |
id_meta | Clave del nodo (E2M14). | |
titulo_meta | titulo_meta | |
ponderacion_meta | ponderacion_meta — en este cargador se guarda sin normalizar. | |
valor_meta | valor_meta | |
tipo_programacion | porcentaje · cantidad | |
tipo_acumulacion | acumulado · no acumulado | |
proyeccion_año1 … proyeccion_año4 | Se agrupan en proyeccion_anual = { año1..año4 }. | |
avance_año1 … avance_año4 | Se agrupan en programacion_avance_anual = { año1..año4 }. | |
id_accion | Acción | Clave del nodo (A-001). Sin ella no se escribe la acción. |
titulo_accion | Acción | titulo_accion |
ponderacion_accion | Acción | ponderacion_accion |
evidencia | Acción | Descripción del soporte esperado. |
responsable | Acción | Código Rn. Evita espacios y saltos de línea al final. |
avance_accion | Acción | Se guarda como avance_accion/{fecha de hoy}. Por defecto "0". |
avance_accion_año1 … avance_accion_año4 | Acción | Se guardan como avance_accion_anual/{fecha de hoy}/{añoN}. |
inversion_realizada | Acción | Se guarda en la acción y se acumula en inversion_realizada de la meta. |
cronograma_anual —los meses
programados de cada acción— no tiene columna en esta hoja: se edita desde la ficha de meta. Una carga masiva no lo
altera, lo cual es deliberado.Qué hace exactamente el cargador
Lee la hoja completa en memoria
Convierte cada fila a objeto con las celdas vacías como cadena vacía, y arma un diccionario de rutas → valores.
Acumula la inversión por meta
Suma la inversion_realizada de todas las filas de una misma meta y la escribe como total de la meta.
Marca la fecha de actualización
Escribe S-PLAN/fecha_actualizacion con el timestamp de la carga: es el sello que muestran el
dashboard y los informes.
Escribe todo en una sola operación
Un único update multipath desde la raíz. O entra todo, o no entra nada: si un solo valor es inválido,
Firebase rechaza la escritura completa.
avance_meta ni
metas_con_ponderacion (eso ocurre al abrir cada meta), no toca las evidencias, no crea entradas en
indices_metas y no elimina metas que hayan desaparecido del archivo. Depurar el árbol es una tarea manual
y deliberada.Cargador de ponderaciones
La segunda pestaña actualiza solo el peso de cada meta. Es la vía correcta cuando se recalibra el plan sin tocar su estructura.
| Columna | Requerida | Observaciones |
|---|---|---|
id_eje, id_programa, id_proyecto, id_meta | Sí | Las cuatro son obligatorias: si falta alguna, la fila se omite con advertencia en consola. |
ponderacion_meta | Sí | Se normaliza: si el valor es mayor que 1 se divide entre 100 (35 → 0,35). Un valor no numérico se registra como 0. |
Al terminar escribe S-PLAN/fecha_actualizacion_ponderaciones.
Pestaña “Seguimiento / Cargar Responsables”
S-PLAN/metas_responsables. Se documenta para evitar que alguien dé por hecho que su archivo se cargó.Lista de verificación antes de cargar
- Respalda
S-PLAN/ejescompleto. - Confirma que la hoja se llama
S-PLANy que los encabezados coinciden exactamente. - Revisa que no haya ids con espacios finales (
"E2M14 "crea una meta distinta). - Comprueba que las ponderaciones de acciones sumen 1 dentro de cada meta.
- Comprueba que las ponderaciones de metas sumen 1 en todo el plan.
- Carga fuera del horario de mayor uso: la escritura es masiva y los usuarios verán los cambios al instante.
- Después de cargar, abre dos o tres metas conocidas y verifica avance, acciones e inversión.
Relacionado: Modelo de datos · Cálculo del avance · Manual de administrador.