Saltar al contenido principal

⏩ 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

CampoDefaultDescripción
Case IDmsg.payload.casoIdUUID del caso a transicionar
workingSubStatePrimaryLevelIdmsg.payload.workingSubStatePrimaryLevelIdUUID 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

SalidaCampoDescripció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;