Edición masiva
La edición masiva es la acción caballo de batalla — cubre desde "establece a todos en este grupo al tipo de miembro Adulto" hasta "actualiza el campo personalizado Fecha de bautismo para toda una clase de incorporación." Cada edición que apilas en el formulario aplica a cada miembro seleccionado.

Abrir el diálogo
Desde la lista de miembros, selecciona las filas que quieres cambiar, luego haz clic en Editar campos en la barra de acciones. El diálogo se abre con el conteo de selección en el encabezado — confirma que ese conteo coincide con lo que pretendías antes de añadir ediciones.
Tres tipos de campos
El selector agrupa los campos en tres categorías. Puedes mezclar y combinar — una sola edición masiva puede actualizar un campo directo, una junción y un campo personalizado juntos.
| Tipo | Ejemplos | Qué sucede |
|---|---|---|
| Directo | Tipo de miembro, género, estado civil, notas | Un solo UPDATE en la tabla members para todo el lote |
| Junción | Unidad org, ministerio, escuela | Añade o reemplaza la fila de enlace en la tabla de junción |
| Campo personalizado | Cualquier cosa que hayas definido en Campos personalizados | Hace upsert en member_field_values |
El diálogo filtra su selector por lo que tu org realmente usa. Si no tienes campos personalizados, el grupo Campo personalizado está oculto; si no hay ministerios configurados, la fila Ministerio está oculta.
Apilar múltiples ediciones
Haz clic en Añadir otra edición para apilar cambios. Un patrón común:
- Directo: establece Tipo de miembro a Adulto
- Junción: asigna a Unidad org Sucursal — Campus Norte
- Campo personalizado: establece Nivel de discipulado a Nivel 2
Los tres aplican por fila, atómicamente por miembro. Si una sola edición falla para un miembro dado, ese miembro termina en la lista de fallidos con el error — pero los demás miembros en el mismo lote aún tienen éxito.
TIP
Establece un campo a una cadena vacía o Ninguno para limpiarlo. El diálogo distingue "dejar en paz" (no en la lista de ediciones) de "establecer en vacío" (valor explícito).
Semántica de edición de junción
Los campos de junción se comportan ligeramente diferente de los campos directos. El grande para conocer:
- Unidad org (nivel N) reemplaza la asignación existente del miembro en ese nivel. Si María ya estaba en Campus Norte en el nivel 1, asignarla a Campus Sur la mueve — no la añade a ambos.
- Ministerio / grupo / escuela son upserts. Si María ya estaba en ministerio de Jóvenes, la edición masiva es un no-op para su fila (el upsert golpea la restricción única y se trata como éxito).
Eso significa que la edición masiva es segura de re-ejecutar — es idempotente para junciones de upsert y solo-reemplaza para asignaciones de unidad org.
WARNING
La re-asignación de unidad org es un reemplazo solo en ese nivel. Si tu jerarquía tiene tres niveles y haces asignación masiva en el nivel 1, los niveles 2 y 3 quedan intactos. Usa una edición separada por nivel si necesitas mover toda una ruta de jerarquía.
Semántica de edición de campo personalizado
Los campos personalizados se almacenan en member_field_values indexados por (member_id, field_definition_id). La edición masiva hace upsert de esa fila, así que re-ejecutar una edición masiva de campo personalizado siempre gana — el último valor se queda.
El diálogo renderiza la entrada correcta para el tipo de campo — selector de fecha para fechas, select para campos de elección, texto para texto libre, multi-select para multi-elección. La validación corre por fila del lado del servidor, así que si el valor existente de un miembro no puede ser parseado al nuevo tipo, esa fila termina en la lista de fallidos.
Lo que muestra el registro de auditoría
Cada miembro actualizado por una edición masiva obtiene updated_by estampado con el administrador que ejecutó la acción, no "Sistema." Tu registro de actividad mostrará:
María Johnson — tipo de miembro cambiado de Visitante a Adulto — por Pastor James — vía acción masiva
Haz clic en el enlace vía acción masiva para saltar a la página de detalle de la acción masiva, donde puedes ver cada fila que tocó y cualquier falla.
Lotes y reintentos
Las ediciones masivas se procesan en lotes de 50 miembros. Entre lotes la acción verifica la cancelación y actualiza la barra de progreso. Si la actualización de toda la tabla de un lote falla (ej. una violación de restricción de base de datos), la acción cae a fallas por fila, y cada fila en ese lote aterriza en failed_items con la cadena de error.
Cuando reintentas los items fallidos, solo los IDs fallidos se convierten en una nueva acción masiva — los mismos params (la misma lista de ediciones) se re-ejecutan contra solo esas filas.
Preguntas comunes
¿Puedo editar masivamente un campo que es de solo lectura en el perfil? La mayoría de los campos de solo lectura (correo, teléfono con estado de verificación, rol) aún son editables masivamente, pero van por la misma ruta de escritura que el perfil — así que las banderas de verificación se reinician.
¿Qué pasa con los campos computados como racha de asistencia? Los campos computados no están en el selector. Derivan de otras tablas y se recomputan en su propio horario.
¿Se notificará a los miembros? No — la edición masiva es silenciosa. Si quieres que los miembros sepan de un cambio, ejecuta un Enviar mensaje justo después.
Próximos pasos
- Asignar y asistir — para operaciones solo de asignación.
- Monitoreo y reintentos — qué hacer con la lista de fallidos.
