Saltar al contenido principal

⏩⏩ 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

CampoDescripción
Estado DestinoUUID del estado al que van todos los casos. También acepta msg.payload.workingSubStatePrimaryLevelId
IDs de CasosUUIDs separados por coma. También acepta msg.payload.casoIds como array
Filas dinámicasPares casoId + workingSubStatePrimaryLevelId cuando cada caso va a un estado diferente

Modos de operación (prioridad)

PrioridadFuenteCuándo usarlo
1msg.payload.casos (array)Casos con estados diferentes, construido dinámicamente
2Filas del formularioCasos con estados diferentes, definidos estáticamente
3Estado Destino + IDs de CasosTodos los casos van al mismo estado

Salidas

SalidaCampoDescripció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" },
]);