Saltar al contenido principal

CaseTypeModule

Sub-módulo casoType — Producto en Shori.

En el SDK este sub-módulo se accede con client.caso().casoType(). Conceptualmente en Shori, un Producto (casoType) es un subproceso — no es un "tipo de caso" genérico, sino el cuarto nivel de la jerarquía de clasificación de Shori:

Servicio (primaryLevel)
└── Proceso (secondaryLevel)
└── Producto (productType / casoType) ← este módulo
└── Caso

El Producto agrupa casos del mismo subproceso y define su estructura de estados, formularios y flujo de trabajo. Se accede a través de client.caso().casoType().

Uso principal

// Obtener un producto con todos sus estados
ProductResponse producto = client.caso().casoType().findById("producto-documentId");
System.out.println("Producto: " + producto.getName());

// Obtener los estados disponibles del producto
List estados = producto.getStates();
estados.forEach(e -> System.out.println("Estado: " + e.getName() + " - " + e.getId()));

Metodos

findById(String casoTypeId)

Obtiene la definición completa de un Producto por su identificador.

Retorna toda la información del Producto incluyendo sus estados, lo cual es útil para:

  • Obtener IDs de estados para filtrar búsquedas de casos
  • Conocer los estados disponibles para cambios de estado
  • Validar la configuración del flujo de trabajo del producto
// Obtener el producto y sus estados
ProductResponse producto = client.caso().casoType().findById("D0480B5C-8730-4CD9-858A-151AF7C0D852");

// Obtener IDs de estados abiertos con ShoriUtils
List idsAbiertos = ShoriUtils.openStatesIds(producto);

// Buscar todos los casos del producto en estados abiertos
List casos = client.caso().searchAll(
CaseFilter.builder()
.casoTypeId(FilterOperator.EQ, producto.getId())
.workingSubStateId(FilterOperator.IN, idsAbiertos.toArray(new String[0]))
);

Parametros:

  • casoTypeId — Identificador único (UUID) del Producto (casoType)

Retorna: CasoTypeResponse con la definición completa del Producto y sus estados

Lanza:

  • ResourceNotFoundException — si el Producto no existe (HTTP 404)
  • ApiException — si hay error al consultar el API

findByIdLite(String casoTypeId)

Obtiene la definición básica (sin estados detallados) de un Producto.

Más rápido que findById cuando no necesitas los estados.

Parametros:

  • casoTypeId — Identificador único (UUID) del Producto (casoType)

Retorna: CasoTypeResponse sin la definición completa del Producto