Inicio Rápido
De cero a ver los errores de tu integración en 5 pasos.
Tiempo estimado: 10 minutos
URL base: https://one.fracttal.com/hub/api/v1
Paso 1 — Obtener tu token
La API acepta dos tipos de token:
Copia el token de sesión desde la consola de tu navegador en one.fracttal.com.
Tiene una vida útil de ~12 horas.
Si tu empresa tiene un cliente OAuth2 configurado con acceso al Hub:
Scope automático
No necesitas enviar tu id_company como parámetro. La API lo extrae del token automáticamente.
Paso 2 — Listar tus integraciones (DAGs)
curl -s "https://one.fracttal.com/hub/api/v1/dags" \
-H "Authorization: Bearer $TOKEN" \
| jq '.dags[] | {id: .dag_id, nombre: .description}'
Respuesta típica:
[
{"id": "a1b2c3d4-...", "nombre": "Fracttal → SAP B1 — Órdenes de trabajo"},
{"id": "e5f6a7b8-...", "nombre": "SAP B1 → Fracttal — Inventario"},
{"id": "c9d0e1f2-...", "nombre": "Fracttal → SAP B1 — Solicitudes de compra"}
]
Guarda el dag_id de la integración que quieres analizar.
Paso 3 — Ver el resumen del mes
DAG_ID="a1b2c3d4-..."
curl -s "https://one.fracttal.com/hub/api/v1/dags/$DAG_ID/stats?start_date=2026-04-01&end_date=2026-04-30" \
-H "Authorization: Bearer $TOKEN" \
| jq '{total: .total_runs, exitosas: .load_success, fallidas: .load_failed}'
Respuesta:
Interpretar los resultados
load_failed indica que la fase de carga no completó correctamente. Un número alto aquí señala un problema recurrente en la integración.
Paso 4 — Buscar las ejecuciones fallidas
Filtra por estado y rango de fechas para ver solo las ejecuciones con error:
curl -s "https://one.fracttal.com/hub/api/v1/dags/$DAG_ID/runs?date_from=2026-04-01&date_to=2026-04-30&load_status=failed&limit=20" \
-H "Authorization: Bearer $TOKEN" \
| jq '.runs[] | {fecha: .date, run_id: .run_id, tipo: .type}'
Respuesta:
[
{"fecha": "2026-04-01", "run_id": "manual__2026-04-01T10:00:00+00:00", "tipo": "ERROR"},
{"fecha": "2026-04-02", "run_id": "manual__2026-04-02T10:00:00+00:00", "tipo": "ERROR"}
]
run_id vacío en ejecuciones históricas
Las ejecuciones con run_id: "" son anteriores al despliegue del escritor S3. Para estas,
las fases de detalle no están disponibles, pero los estadísticos del paso 3 sí funcionan.
Las ejecuciones nuevas tienen artefactos completos.
Para buscar un error específico en el contenido del evento (por ejemplo, un número de OT):
curl -s "https://one.fracttal.com/hub/api/v1/dags/$DAG_ID/runs?date_from=2026-04-01&date_to=2026-04-30&event_keyword=OT-12345" \
-H "Authorization: Bearer $TOKEN" \
| jq '.runs[0]'
Paso 5 — Ver el detalle del error
Con el date y run_id de una ejecución fallida:
DATE="2026-04-01"
RUN_ID="manual__2026-04-01T10:00:00%2B00:00" # URL-encoded
# Ver qué falló en la fase de carga
curl -s "https://one.fracttal.com/hub/api/v1/dags/$DAG_ID/runs/$DATE/$RUN_ID/phases/load/errors" \
-H "Authorization: Bearer $TOKEN" \
| jq '.rows[] | {tipo: .error_type, detalle: .error_detail}'
Respuesta:
[
{
"tipo": "ConnectionError",
"detalle": "SAP B1 Service Layer no disponible — connection refused on port 50000"
}
]
URL-encoding del run_id
Los run_id contienen + y :. Encódalos antes de usarlos en la URL:
+ → %2B, : → %3A.
En Python: from urllib.parse import quote; quote(run_id, safe='')
Referencia rápida
| Objetivo | Endpoint |
|---|---|
| Listar integraciones | GET /dags |
| Resumen de ejecuciones | GET /dags/{dag_id}/stats?start_date=...&end_date=... |
| Buscar ejecuciones fallidas | GET /dags/{dag_id}/runs?date_from=...&date_to=...&load_status=failed |
| Buscar por OT o clave | GET /dags/{dag_id}/runs?date_from=...&event_keyword=OT-xxx |
| Errores de una fase | GET /dags/{dag_id}/runs/{date}/{run_id}/phases/load/errors |
| Logs detallados | GET /dags/{dag_id}/runs/{date}/{run_id}/phases/load/logs?level=ERROR |
| Datos de la fase | GET /dags/{dag_id}/runs/{date}/{run_id}/phases/load/data |
Próximos pasos
- Autenticación — diferencias entre Web JWT y OAuth2, cómo usar Swagger UI
- Filtros y fechas — parámetros de fecha por endpoint, rangos máximos
- Manejo de errores — cómo interpretar las respuestas de error RFC 9457
- Referencia de Endpoints — documentación completa de todos los endpoints