⏩⏩ shori-next-state-massive
Cambia el estado de múltiples casos de forma masiva. Soporta 3 modos que pueden usarse de forma estática en el formulario o dinámicamente desde msg.payload.
Diagrama del nodo
Campos del formulario
| Campo | Descripción |
|---|---|
| Estado Destino | UUID del estado al que van todos los casos. También acepta msg.payload.workingSubStatePrimaryLevelId |
| IDs de Casos | UUIDs separados por coma. También acepta msg.payload.casoIds como array |
| Filas dinámicas | Pares casoId + workingSubStatePrimaryLevelId cuando cada caso va a un estado diferente |
Modos de operación (prioridad)
| Prioridad | Fuente | Cuándo usarlo |
|---|---|---|
| 1 | msg.payload.casos (array) | Casos con estados diferentes, construido dinámicamente |
| 2 | Filas del formulario | Casos con estados diferentes, definidos estáticamente |
| 3 | Estado Destino + IDs de Casos | Todos los casos van al mismo estado |
Salidas
| Salida | Campo | Descripción |
|---|---|---|
| 1 (éxito) | msg.payload | { success: true, count: N, casos: [{casoId, workingSubStatePrimaryLevelId}] } |
| 2 (error) | msg.error | { message, name, stack } |
Ejemplos
Modo 1 — Formulario estático: mismo estado para todos
Rellena directamente en el nodo:
- Estado Destino:
estado-uuid - IDs de Casos:
uuid-1,uuid-2,uuid-3
Modo 2 — Dinámico desde function: mismo estado para todos
// Ejemplo en nodo function:
msg.payload = {
casoIds: ["uuid-1", "uuid-2", "uuid-3"],
workingSubStatePrimaryLevelId: "estado-cerrado-uuid"
};
return msg;
Modo 3 — Estados diferentes por caso (formulario)
Agrega filas en la sección "Casos individuales":
uuid-caso-1 + estado-A-uuid
uuid-caso-2 + estado-B-uuid
uuid-caso-3 + estado-C-uuid
Modo 4 — Estados diferentes por caso (dinámico)
msg.payload = {
casos: [
{ casoId: "uuid-1", workingSubStatePrimaryLevelId: "estado-A" },
{ casoId: "uuid-2", workingSubStatePrimaryLevelId: "estado-B" },
{ casoId: "uuid-3", workingSubStatePrimaryLevelId: "estado-C" },
]
};
return msg;
Flujo completo: buscar y cerrar masivamente
Equivalente en código
// Mismo estado para todos
await client.caso().state().nextMassive([
{ casoId: "uuid-1", workingSubStatePrimaryLevelId: "estado-uuid" },
{ casoId: "uuid-2", workingSubStatePrimaryLevelId: "estado-uuid" },
{ casoId: "uuid-3", workingSubStatePrimaryLevelId: "estado-uuid" },
]);
// Estados diferentes por caso
await client.caso().state().nextMassive([
{ casoId: "uuid-1", workingSubStatePrimaryLevelId: "estado-A" },
{ casoId: "uuid-2", workingSubStatePrimaryLevelId: "estado-B" },
]);