⏩ shori-next-state
Avanza un caso al siguiente estado en el flujo de trabajo de Shori. Requiere msg.shoriClient inyectado por shori-config.
Diagrama del nodo
Campos
| Campo | Default | Descripción |
|---|---|---|
| Case ID | msg.payload.casoId | UUID del caso a transicionar |
| workingSubStatePrimaryLevelId | msg.payload.workingSubStatePrimaryLevelId | UUID del subestado destino |
¿Qué es workingSubStatePrimaryLevelId?
Es el UUID del subestado al que deseas transicionar el caso. No es el stateId genérico — es el identificador específico del subestado en el contexto del nivel primario del flujo de trabajo de Shori.
Salidas
| Salida | Campo | Descripción |
|---|---|---|
| 1 (éxito) | msg.payload | { success: true, casoId, workingSubStatePrimaryLevelId } |
| 2 (error) | msg.error | { message, name, stack } |
Uso desde nodo function
// Nodo function antes del shori-next-state:
msg.payload = {
casoId: "550e8400-e29b-41d4-a716-446655440000",
workingSubStatePrimaryLevelId: "uuid-del-subestado-destino"
};
return msg;
Ejemplos
Ejemplo 1 — Cambiar estado con valores fijos en el formulario
Ejemplo 2 — Estado dinámico desde nodo function
Ejemplo 3 — Pipeline completo: obtener caso → comentar → cambiar estado
Equivalente en código
await client.caso().state().next({
casoId: "550e8400-e29b-41d4-a716-446655440000",
workingSubStatePrimaryLevelId: "uuid-del-subestado-destino",
});
Cómo obtener el workingSubStatePrimaryLevelId
El workingSubStatePrimaryLevelId se obtiene consultando el tipo de caso:
// En código TypeScript:
const tipoCaso = await client.caso().casoType().findById("uuid-tipo");
const estados = tipoCaso.workingStates ?? [];
// Buscar el estado destino por nombre
const estadoDestino = estados.find(s => s.name === "EN PROCESO");
console.log(estadoDestino?.id); // → workingSubStatePrimaryLevelId
O desde Axetflow con un nodo function:
// Usa los estados de un caso ya obtenido con shori-get-case
const estados = msg.payload.workingStates ?? [];
const destino = estados.find(s => s.name === "EN PROCESO");
msg.payload = {
casoId: msg.payload.casoId,
workingSubStatePrimaryLevelId: destino?.id
};
return msg;