Sondeo Jira del 6-ago: customfield IDs de FAC capturados y documentados; cierra el pendiente del script de lectura. En balam-plataforma quedan construidas la bandeja de solicitudes y el detalle con datos reales (solo lectura) + shell del prototipo; token movido a propuesta/ y user-secrets

This commit is contained in:
Johann
2026-08-06 01:11:03 -06:00
parent 7f86497314
commit 4ce5640e76
2 changed files with 29 additions and 1 deletions
+28
View File
@@ -290,3 +290,31 @@ Estas van por correo o en la siguiente sesión; ninguna se contesta probando:
> Para JSM, usar `/rest/servicedeskapi` al consultar request types y su contrato de campos. FAC tiene los request types Bajas (84), Facturación adicional (83), Automatización (389) y Facturación (12). Bajas y Facturación adicional ya tienen su contrato verificado; el segundo incluye cliente, moneda, crédito, periodo y recurrencia, pero no monto ni conceptos estructurados.
>
> Pendientes técnicos: revisar changelog y origen de tickets; muestrear tickets nacionales, extranjeros y recurrentes; y diseñar un script de escritura de una sola operación para revisión previa. El script debe ser idempotente, no incluir credenciales y ejecutarse únicamente en sandbox o acompañado en un ticket de prueba acordado.
---
## Sondeo del 6-ago-2026 — customfield IDs capturados (cierre del pendiente de mapeo)
Corridas: `pruebas-jira-lectura.sh` (todo 200; token renovado funciona, el 401 del 29-jul quedó atrás) + `GET /rest/api/3/field` + `search/jql` con los customfields sobre los **69 tickets** de FAC. Bodies en `/tmp/jira-probes-20260806-004526` (fuera del repo).
| Campo | ID | Tipo real | Poblado (de 69) |
|---|---|---|---|
| Request Type | `customfield_10010` | `sd-customerrequesttype` (`{requestType:{name}}`) | 59 |
| Nombre del Cliente | `customfield_10202` | ⚠️ **ADF** (schema dice string, el valor es doc) | 54 |
| Cliente Nuevo | `customfield_10052` | option (`{value:"No"}`) — el duplicado `10094` está vacío, no usarlo | 48 |
| Tipo de Moneda | `customfield_10053` | option | 48 |
| Días de Crédito | `customfield_10054` | option (`{value:"45"}`) | 48 |
| Periodo de Incidencias | `customfield_10203` | ⚠️ **ADF** | 46 |
| Facturación recurrente | `customfield_10552` | option (`Si`) | 32 |
| Periodo de recurrencia | `customfield_10553` | string (`"12"`) | 32 |
| Empresa origen | `customfield_11423` | option (ej. `Helmstone`) | **7** — casi vacío; NO sirve como filtro hoy |
| Monto sin IVA | `customfield_11556` | number | **2** |
| Monto con IVA | `customfield_11522` | number | 0 |
Hallazgos que corrigen al Bloque 2 del 30-jul:
- **Sí existen campos estructurados de monto** (`Monto sin IVA` / `Monto con IVA`), pero casi nadie los llena (2/69 y 0/69). La pantalla los lee (`MontoEstimado = customfield_11556`) y muestra "—" cuando falten; si Balam empieza a llenarlos, aparecen solos.
- "Nombre del Cliente" y "Periodo de Incidencias" llegan como **ADF**, no texto plano — el mapper aplana con `AdfText.Flatten`.
- El filtro del prototipo "empresa origen = Balam" no es viable aún (7/69 poblados, y con valores como `Helmstone`): la bandeja muestra todo FAC con nota honesta.
- Distribución real: 48 Facturación adicional · 6 Bajas · 4 Automatización · 1 Facturación · 10 sin RT. Estatus: 65 Facturado · 2 Cancelado · 1 En proceso · 1 En validación nacional.
Los IDs quedaron en `balam-plataforma/backend/src/Balam.Api/appsettings.Development.json` (sección `Jira:Fields`, config-driven — los IDs no son secretos).