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 / pendiente →
Responsevacío,IsNullResponse= falso yHasErrors= falso. El worker aún no la ha procesado (o la está procesando ahora). - Procesada con resultado →
Responsetiene contenido. - Procesada sin datos →
IsNullResponse= verdadero (se ejecutó bien, pero no devuelve nada). - Con error →
HasErrors= verdadero; el motivo está enErrorResponse.
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.