84 lines
3.2 KiB
Markdown
84 lines
3.2 KiB
Markdown
# Análisis de tiempos del pipeline Shopify → SAP
|
|||
|
|
|
||
|
|
Fecha de medición: 2026-09-25. Entorno: SAP Service Layer (`SBODemoCL`) en la misma
|
||
|
|
red/VPN, Shopify Admin API por internet.
|
||
|
|
|
||
|
|
## Latencias individuales medidas (llamadas aisladas)
|
||
|
|
|
||
|
|
| Llamada | Tiempo promedio |
|
||
|
|
|---|---|
|
||
|
|
| SAP GET (misma red/VPN) | ~0.056 s |
|
||
|
|
| Shopify GET orden completa | ~0.469 s |
|
||
|
|
|
||
|
|
## Ciclo real completo (20 órdenes, `snobbycl`, sin RUT)
|
||
|
|
|
||
|
|
| Métrica | Valor |
|
||
|
|
|---|---|
|
||
|
|
| Duración total | 87 s |
|
||
|
|
| Promedio por orden | ~4.3 s |
|
||
|
|
| Intervalo configurado ("rapido") | 600 s |
|
||
|
|
| Margen usado | ~14% del ciclo |
|
||
|
|
|
||
|
|
Esta medición corresponde a órdenes **sin RUT** (ninguna llamó a `BusinessPartners`),
|
||
|
|
caso "tienda" completo: Invoice → Payment → InventoryTransferRequest → StockTransfer
|
||
|
|
→ Delivery, con sus referencias cruzadas.
|
||
|
|
|
||
|
|
## Ruta más larga: tienda + RUT nuevo (creación de BusinessPartner)
|
||
|
|
|
||
|
|
16 llamadas en total:
|
||
|
|
|
||
|
|
| # | Servicio | Llamada | Tiempo aprox. |
|
||
|
|
|---|---|---|---|
|
||
|
|
| 1 | Shopify | GET `orders/{id}.json` | ~0.47 s |
|
||
|
|
| 2 | SAP | GET `BusinessPartners` (buscar por RUT) | ~0.06 s |
|
||
|
|
| 3 | SAP | POST `BusinessPartners` (crear, RUT no existía) | ~0.40 s |
|
||
|
|
| 4 | SAP | POST `Invoices` | ~0.35 s |
|
||
|
|
| 5 | SAP | POST `IncomingPayments` | ~0.35 s |
|
||
|
|
| 6 | SAP | POST `InventoryTransferRequests` | ~0.35 s |
|
||
|
|
| 7 | SAP | GET `Invoices` (leer referencias) | ~0.06 s |
|
||
|
|
| 8 | SAP | PATCH `Invoices` (agregar ref. ITR) | ~0.35 s |
|
||
|
|
| 9 | SAP | GET `InventoryTransferRequests` (traer líneas completas) | ~0.06 s |
|
||
|
|
| 10 | SAP | POST `StockTransfers` | ~0.35 s |
|
||
|
|
| 11 | SAP | GET `Invoices` (leer referencias) | ~0.06 s |
|
||
|
|
| 12 | SAP | PATCH `Invoices` (agregar ref. StockTransfer) | ~0.35 s |
|
||
|
|
| 13 | SAP | GET `StockTransfers` (traer líneas completas) | ~0.06 s |
|
||
|
|
| 14 | SAP | POST `DeliveryNotes` | ~0.35 s |
|
||
|
|
| 15 | SAP | GET `Invoices` (leer referencias) | ~0.06 s |
|
||
|
|
| 16 | SAP | PATCH `Invoices` (agregar ref. Delivery) | ~0.35 s |
|
||
|
|
|
||
|
|
### Subtotales
|
||
|
|
|
||
|
|
| Tipo | Cantidad | Tiempo total |
|
||
|
|
|---|---|---|
|
||
|
|
| Shopify GET | 1 | ~0.47 s |
|
||
|
|
| SAP GET | 6 | ~0.36 s |
|
||
|
|
| SAP POST | 6 | ~2.15 s |
|
||
|
|
| SAP PATCH | 3 | ~1.05 s |
|
||
|
|
| **Total** | **16** | **~4.0-4.6 s** |
|
||
|
|
|
||
|
|
Coincide con lo medido en vivo (~4.3 s/orden en `snobbycl` sin RUT — a esa ruta le
|
||
|
|
faltan las llamadas 2 y 3 de la tabla, por eso da un poco menos que esta ruta
|
||
|
|
completa con creación de BusinessPartner).
|
||
|
|
|
||
|
|
Caso CD (solo ITR, sin StockTransfer ni Delivery, sin RUT): ~5 llamadas, bastante
|
||
|
|
más rápido que el caso tienda completo.
|
||
|
|
|
||
|
|
## Capacidad estimada por ciclo
|
||
|
|
|
||
|
|
Con ~4.3-4.6 s/orden real, dejando colchón de seguridad (~70-80% del intervalo
|
||
|
|
usado, el resto para variabilidad de red, reintentos por 401, rate limit de
|
||
|
|
Shopify):
|
||
|
|
|
||
|
|
| Modo | Intervalo | Teórico máx. | Recomendado con margen |
|
||
|
|
|---|---|---|---|
|
||
|
|
| rapido | 600 s | ~139 órdenes | ~95-110 |
|
||
|
|
| full | 1800 s | ~418 órdenes | ~290-330 |
|
||
|
|
|
||
|
|
## Configuración aplicada
|
||
|
|
|
||
|
|
`max_orders_per_cycle = 50` para ambas tiendas (`snobbycl` y
|
||
|
|
`on-chile-distributor-prod`), muy por debajo de la capacidad real medida —
|
||
|
|
deja margen amplio para picos de tráfico o llamadas más lentas de lo normal.
|
||
|
|
|
||
|
|
Con 50 órdenes/ciclo y ~4.6 s/orden en el peor caso (todas con RUT nuevo),
|
||
|
|
un ciclo tardaría ~230 s, menos del 40% del intervalo "rapido" de 600 s.
|