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