esofitec. CoreDocs

esofitec. CoreDocs

Referencia

Las tablas de la API

La API guarda su configuración y su actividad en unas tablas de SQL Server, dentro de la base de datos de la API (la que se crea al instalar; no es la de a3ERP). Normalmente no se tocan a mano —se gestionan desde la pantalla de Configuración de la API—, pero consultarlas con un SELECT es muy útil para investigar incidencias, sobre todo la tabla de cola.

Las tablas principales#

Tabla Qué contiene
Users Usuarios de la API: credenciales, empresa, datos de a3ERP, tiempo de sesión
Endpoints Catálogo de extremos configurados (vistas, procedimientos, operaciones custom)
Permissions Permisos: qué extremos puede usar cada usuario
Parameters Parámetros configurados de cada permiso
Queue La cola de tareas custom: cada petición encolada y su resultado

La tabla de cola (Queue)#

Es la más útil para soporte. Cada vez que llega una operación custom (POST /api/custom/...), se inserta una fila en Queue. El worker la procesa y escribe el resultado en esa misma fila. Ahí puedes ver el estado de cualquier petición.

Columna Qué es
PK_TaskId Identificador de la tarea (el número que devuelve la API y que se consulta en /api/task/{nº})
UserId Usuario de la API que encoló la petición
Dispatcher Dispatcher al que va dirigida
ItemName Nombre de la operación solicitada
QueuedOn Fecha y hora en que se encoló
Request La petición que se envió
Response El resultado, una vez procesada
IsNullResponse La tarea terminó correctamente pero sin datos de respuesta
HasErrors La tarea terminó con error
ErrorResponse El detalle del error (si HasErrors)

Cómo leer el estado de una tarea#

Combinando esas columnas sabes en qué punto está cada petición:

  • Encolada / pendienteResponse vacío, IsNullResponse = falso y HasErrors = falso. El worker aún no la ha procesado (o la está procesando ahora).
  • Procesada con resultadoResponse tiene contenido.
  • Procesada sin datosIsNullResponse = verdadero (se ejecutó bien, pero no devuelve nada).
  • Con errorHasErrors = verdadero; el motivo está en ErrorResponse.

Una consulta para ver las últimas peticiones y su estado:

SELECT PK_TaskId, UserId, Dispatcher, ItemName, QueuedOn, HasErrors, IsNullResponse
FROM Queue
ORDER BY QueuedOn DESC

La pregunta típica de soporte

"Encolé algo y no pasa nada." Localiza la fila en Queue (por PK_TaskId, o filtrando por UserId y ordenando por QueuedOn): si Response sigue vacío y HasErrors es falso, el worker no la está procesando (ver Solución de problemas); si HasErrors es verdadero, el motivo está en ErrorResponse.