🔢 shori-count-cases
Cuenta el número de casos que coinciden con un filtro dado. Usa el mismo CaseFilter que shori-search-cases — mismos filtros, misma lógica, pero en vez de devolver los casos devuelve solo el conteo.
Diagrama del nodo
Filtros disponibles (mismo que shori-search-cases)
| Filtro | Operadores | Descripción |
|---|---|---|
| Producto (casoTypeId) | EQ, IN, NOT IN | UUID del tipo de caso |
| Estado (workingSubStateId) | EQ, IN, NOT IN | UUID(s) del estado |
| Servicio (primaryLevelId) | EQ, IN, NOT IN | UUID del servicio |
| Proceso (secondaryLevelId) | EQ, IN, NOT IN | UUID del proceso |
| Desde (createdAtFrom) | — | Fecha de inicio YYYY-MM-DD |
| Hasta (createdAtTo) | — | Fecha de fin YYYY-MM-DD |
| Zona Horaria | — | Requerido si se usan fechas. Ej: America/Lima |
| dataField | EQ, NE, GT, GE, LT, LE, IN, NOT IN, BETWEEN, LIKE, IS NULL, IS NOT NULL | Filtros sobre campos del formulario del caso |
Salidas
| Salida | Campo | Descripción |
|---|---|---|
| 1 (éxito) | msg.payload | { count: N } — número entero |
| 2 (error) | msg.error | { message, name, stack } |
Ejemplos
Contar casos de un producto con filtro de estado
Desde nodo function
msg.payload = {
casoTypeId: { op: "eq", value: "tipo-uuid" },
workingSubStateId: { op: "in", value: "estado-1,estado-2" },
createdAtFrom: "2025-01-01",
createdAtTo: "2025-12-31",
timeZone: "America/Lima"
};
return msg;
Con filtros de datos del formulario
msg.payload = {
casoTypeId: { op: "eq", value: "tipo-uuid" },
dataField: [
{ fieldId: "estado", op: "eq", value: "ACTIVO" },
{ fieldId: "monto", op: "gt", value: "1000" }
]
};
return msg;
Equivalente en código
const count = await client.caso().count(
CaseFilter.builder()
.casoTypeId(FilterOperator.EQ, "tipo-uuid")
.workingSubStateId(FilterOperator.IN, "estado-1", "estado-2")
.build()
);
console.log("Total:", count);