Saltar al contenido principal

🔎 shori-search-working-substates

Busca working sub-states en Shori usando WorkingSubStateFilter. Todos los filtros son opcionales, con operadores configurables en el formulario o dinámicamente desde msg.payload.

Diagrama del nodo

Filtro (WorkingSubStateFilter)

interface WorkingSubStateFilter {
casoTypeId?: string; // "eq:uuid" | "in:uuid1,uuid2"
primaryLevelId?: string; // UUID del servicio
secondaryLevelId?: string; // UUID del proceso
finalist?: string; // "eq:true" | "eq:false"
active?: string; // "eq:true" | "eq:false"
pagination?: {
pageNumber?: number; // Default: 0
pageSize?: number; // Default: 20 (máx: 200)
sortDirection?: "ASC" | "DESC";
}
}

Campos del formulario

CampoOperadoresDescripción
ProductoEQ, IN, NOT INUUID del tipo de caso. Fallback: msg.payload.casoTypeId
ServicioIN, EQ, NOT INUUID del servicio. Fallback: msg.payload.primaryLevelId
ProcesoIN, EQ, NOT INUUID del proceso. Fallback: msg.payload.secondaryLevelId
FinalistaEQ, NEtrue / false. Fallback: msg.payload.finalist
ActivoEQ, NEtrue / false. Fallback: msg.payload.active
Tamaño páginaDefault: 20
Nº páginaDefault: 0

Salidas

SalidaCampoDescripción
1 (éxito)msg.payloadWorkingSubStateSearchResult
2 (error)msg.error{ message, name, stack }

Ejemplos

Buscar substates activos de un servicio (estático en formulario)

Búsqueda dinámica desde function

// Modo simple (operador configurado en formulario)
msg.payload = {
primaryLevelId: "servicio-uuid",
active: "true"
};

// Modo avanzado { op, value }
msg.payload = {
primaryLevelId: { op: "in", value: "uuid1,uuid2" },
active: { op: "eq", value: "true" },
finalist: { op: "eq", value: "false" }
};
return msg;

Obtener todos los substates de un producto

msg.payload = {
casoTypeId: { op: "eq", value: "tipo-uuid" },
active: { op: "eq", value: "true" },
pagination: { pageSize: 100 }
};
return msg;

Equivalente en código

const result = await client.caso().state().searchWorkingSubState(
WorkingSubStateFilter.builder()
.primaryLevelId(FilterOperator.IN, "servicio-uuid")
.active(FilterOperator.EQ, "true")
.pageSize(50)
.build()
);