Actualizado el 18-oct-2026. Primera versión de la arquitectura de esta épica.
Qué responde. Cómo funciona por dentro FT-INT-03: qué piezas participan, en qué orden hablan, qué APIs hay que construir con su request y su response, y qué le entrega a la épica siguiente.
Para quién. Los equipos que van a construir la épica, QA y arquitectura.
Estado. [Propuesta] del TL del Nuevo PIM, 18-oct-2026, construida sobre ADR-12. La spec de cada épica dice el qué; estas páginas, el cómo.
Fuente. docs/arquitectura/por-epica/epicas/FT-INT-03.json, generada con generar.py; la ficha de la épica es trazabilidad/features/FT-INT-03-entrada-skus-sap-exclusion-conciliacion.md.
En 30 segundos
Todo artículo que se crea en SAP, venga de una propuesta, de la MM41, de PLM o de B2B, regresa en el archivo 122. Esta épica hace que cada uno llegue al PIM sin intervención: la ingesta (MS-07) lee el archivo, aparta lo que excluyen las reglas que Gobierno de Datos configura con motivo y responsable, y entrega el resto a Producto. Lo que no entra queda en una lista «no vive» para reprocesarlo o pedirlo a SAP.
- Módulo dueño: MS-07 Ingesta de archivos. También participan: MS-01 Catálogo, MS-02 Producto, MS-14 Avisos y ayuda.
- Etapa 5 · SKU en SAP. Recibe «PE-5 · Visto bueno dado» y entrega «PE-6 · SKU asignado».
- APIs: construye 4 y usa 6 que construyen otras épicas.
- Eventos: publica 8 y consume 4.
1. Dónde encaja
Recibe
| De | Qué |
|---|---|
| PE-5 · Visto bueno dado | La propuesta en Creación de SKU, con los 4 TXT ya entregados a SAP y la tarea SKU en SAP abierta. |
| FT-PRD-02 · Creación de SKU con SAP | La regla única del 122 en Producto (API-02-049): SKU y EAN únicos por negocio, estado por negocio e identidad de Marketplace. |
| FT-REF-01 · Datos de referencia administrables | La tabla de exclusiones de SAP por grupo de artículos, negocio, flujo u origen, con motivo, responsable y revisión, que MS-07 tiene en memoria. |
| FT-INT-04 · Catálogos maestros, precios y costos desde SAP/S4H | La jerarquía comercial y los proveedores de SAP ya cargados en el catálogo. |
Entrega
| A | Qué |
|---|---|
| PE-6 · SKU asignado | Cada variante con su SKU y su EAN: la propuesta pasa a En enriquecimiento y el artículo nacido en SAP entra al PIM con su plantilla. |
| FT-PRD-02 · Creación de SKU con SAP | Los registros del 122 que leyó MS-07, ya filtrados por las exclusiones y en lotes de hasta 100, productos antes que atributos. |
| FT-CAT-04 · Clasificación SAP derivada | Cada SKU del 122 con su grupo de artículos y su tipo de producto, para asignarle plantilla y la hoja que falte. |
| FT-INT-06 · Avisos de cambios a Entrada Única y consumidores | Los Conjuntos Look que crea SAP (E14), ya leídos por MS-07. |
| FT-INT-02 · Publicación a OMS, DWH y Señalización | El SKU asignado (SKU_ASSIGNED), del que sale el envío exprés a OMS, incluida la multioferta de Esfera. |
| FT-RAC-04 · Consistencia entre sistemas y gobierno de datos proactivo | El libro de registros de SAP y la lista «no vive» por variante, para la consistencia entre sistemas. |
| FT-RAC-06 · Métricas de tiempos por paso y clasificación de errores | Los errores de SAP (el 141 y los SKU que no viven) que avisa MS-07 con SAP_ARTICLE_FAILED, para clasificarlos como detectados en SAP. |
| FT-MIG-04 · Convivencia P360 ↔ nuevo PIM | La lectura del 122 lista para encenderse por interfaz en el corte, cuando P360 deje de leer esa carpeta. |
Cambios de estado que hace
| Transición | De → a | Cuándo |
|---|---|---|
| T02 | Inicio → Creación de SKU | Alta directa de PLM, MM41 o B2B. |
| T06 | Creación de SKU → En enriquecimiento | SAP crea el artículo (archivo 122). |
Tareas que abre o cierra: SKU en SAP, Gobierno de Datos.
2. Diagrama de contexto
Quién participa y cómo se conecta. Las pantallas llegan por el BFF del portal, que valida el token y compone; cada módulo vuelve a validar el token y decide sus permisos con los roles de MS-13.
🟩 Verde: nuevo, se construye · 🟦 Azul: ya existe y se queda, se reutiliza su código · 🟧 Naranja: temporal o se retira (se apaga en R3) · ⬜ Gris: sistema externo · ★ módulo dueño
3. Diagrama de flujo
El camino principal, paso por paso. Cuando una pantalla llama a un módulo se ven dos flechas: la pantalla al BFF y el BFF al módulo. Los eventos salen del outbox del módulo después de guardar; quien los consume ignora los repetidos.
Los pasos en texto
| Paso | De | A | Qué hace | API o evento |
|---|---|---|---|---|
| 1 | SAP | Archivos e imágenes (almacén y CDN) | Deja por transferencia de archivos el 122: productos y atributos | — |
| 2 | Archivos e imágenes (almacén y CDN) | MS-07 Ingesta de archivos | Avisa que llegó un archivo nuevo | catalog.egress.files/OBJECT_FINALIZE |
| 3 | MS-07 Ingesta de archivos | Base pim | Registra el par de archivos con copia y huella | — |
| 4 | MS-07 Ingesta de archivos | Base pim | Aparta lo excluido con la regla que lo excluyó | — |
| 5 | MS-07 Ingesta de archivos | MS-02 Producto | Entrega productos y luego atributos, en lotes de 100 | API-02-049 |
| 6 | MS-02 Producto | MS-01 Catálogo | Pide plantilla por grupo y producto; crea la hoja | API-01-018 |
| 7 | MS-02 Producto | Base pim | Asigna SKU y EAN por negocio y cierra SKU en SAP | — |
| 8 | MS-07 Ingesta de archivos | Base pim | Guarda el resultado de cada registro | — |
| 9 | MS-07 Ingesta de archivos | Eventos | Avisa lo aplicado con su archivo y registro | catalog.sap.inbound/SAP_ARTICLE_CREATED |
| 10 | MS-02 Producto | Eventos | Avisa el SKU asignado | catalog.product.changed/SKU_ASSIGNED |
| 11 | MS-02 Producto | Eventos | Pasa la propuesta a En enriquecimiento | catalog.product.changed/STATUS_CHANGED |
3.1 Artículo o Conjunto Look creado directo en SAP
3.2 Si Gobierno de Datos reactiva un grupo excluido
3.3 Lista «no vive» y reenvío
4. Si algo sale mal
- Un registro del 122 no se puede aplicar (grupo sin plantilla, EAN que ya usa otro SKU del negocio). MS-02 lo rechaza con su motivo. Si el error es pasajero, MS-07 reintenta hasta 10 veces; si no, queda fallido en la lista «no vive». Si era de una propuesta, MS-02 abre una tarea de Gobierno de Datos y la propuesta sigue en Creación de SKU.
- Llegan los atributos antes que los productos del mismo momento. MS-07 los empareja por la marca de tiempo del nombre y espera al de productos hasta 30 minutos; nunca aplica atributos de un SKU que todavía no existe. Si no llega, el archivo queda incompleto en el monitor.
- El mismo 122 llega dos veces. Cada registro tiene llave (archivo, SKU y marca de tiempo) y recibo: lo ya aplicado no se repite y el archivo repetido sólo queda registrado.
- SAP creó un SKU y nunca mandó su 122. Aparece en la lista «no vive» con el motivo «SAP no lo mandó» al cruzar el control del día. Gobierno de Datos pide el reenvío a SAP; el PIM no inventa el artículo.
- Producto no responde. El lote se reintenta con espera creciente sin perder el orden del archivo; los demás archivos esperan su turno y el atraso se ve en el monitor.
5. APIs
Las que construye esta épica (4)
GET /api/v2/sap-ingest/files?interface=&state= · Archivos recibidos de SAP
| Campo | Valor |
|---|---|
| API | API-07-001 · MS-07 Ingesta de archivos |
| Para qué | Lista los archivos que llegaron de SAP (122, Conjunto Look, 141, 142, listas, jerarquía, proveedores y EAN) con su estado y cuántos registros se aplicaron, no traían cambios, se excluyeron por regla o fallaron. Es el monitor de Gobierno de Datos y de Gobierno de Producto. |
| En esta épica | Monitor de archivos de SAP con sus conteos |
| Quién la llama | BFF del portal |
| Permiso | Gobierno de Datos y Gobierno de Producto (lectura de integraciones) |
| Cabeceras | Authorization, X-Request-Id |
| Parámetros | interface = 122, state = COMPLETED_WITH_ERRORS, system = ECC, from = 2026-10-17T00:00:00Z, page = 1, size = 50 |
| También la usan | FT-ARQ-02, FT-INT-04, FT-PRD-02, FT-RAC-08 |
Request
null
Response · 200
{
"success": true,
"data": {
"items": [
{
"fileId": "sapf-20261018-122-0007",
"interface": "122",
"system": "ECC",
"name": "GenericXMLproducts_20261018013000.xml",
"pairedWith": "sapf-20261018-122-0008",
"receivedAt": "2026-10-18T07:30:04Z",
"finishedAt": "2026-10-18T07:30:41Z",
"sha256": "9f2c4e7a1b0d55e3c8a6f1e2d4b7a9c0e5f3d2b1a8c7e6f5d4c3b2a1f0e9d8c7",
"state": "COMPLETED_WITH_ERRORS",
"records": {
"total": 412,
"applied": 405,
"unchanged": 0,
"excluded": 4,
"failed": 3,
"pending": 0
},
"copyRef": "sap-in/122/ECC/2026-10-18/GenericXMLproducts_20261018013000.xml"
},
{
"fileId": "sapf-20261018-lov-0001",
"interface": "LOV",
"system": "ECC",
"name": "LOV20261017210000.XML",
"pairedWith": null,
"receivedAt": "2026-10-18T05:00:12Z",
"finishedAt": "2026-10-18T05:06:55Z",
"sha256": "1c0a9e8d7f6b5a4c3e2d1f0a9b8c7d6e5f4a3b2c1d0e9f8a7b6c5d4e3f2a1b0c",
"state": "COMPLETED_WITH_ERRORS",
"records": {
"total": 18240,
"applied": 312,
"unchanged": 17925,
"excluded": 0,
"failed": 3,
"pending": 0
},
"copyRef": "sap-in/LOV/ECC/2026-10-18/LOV20261017210000.XML"
}
],
"page": 1,
"size": 50,
"total": 2
}
}
Errores
| HTTP | Código | Cuándo |
|---|---|---|
| 400 | VALIDATION_ERROR | Un filtro trae una interfaz o un estado que no existe |
| 403 | AUTHORIZATION_ERROR | Quien llama no tiene lectura de integraciones |
POST /api/v2/sap-ingest/files/{id}/reprocess · Reprocesar lo fallido de un archivo
| Campo | Valor |
|---|---|
| API | API-07-002 · MS-07 Ingesta de archivos |
| Para qué | Vuelve a entregar al módulo dueño sólo los registros fallidos de un archivo, por ejemplo después de corregir la plantilla de un grupo de artículos. Lo que ya se aplicó no se repite, porque cada registro tiene su recibo. |
| En esta épica | Reprocesar lo fallido de un archivo |
| Quién la llama | BFF del portal |
| Permiso | Gobierno de Datos |
| Cabeceras | Authorization, X-Request-Id, Idempotency-Key |
| Parámetros | id = sapf-20261018-122-0007 |
| Escribe en | sap_inbound_files |
| Publica | catalog.sap.inbound/SAP_ARTICLE_FAILED |
| También la usan | FT-INT-04, FT-PRD-02 |
Request
{
"scope": "FAILED",
"reason": "Se asignó plantilla al grupo de artículos 1203 con producto 0045"
}
Response · 202
{
"success": true,
"data": {
"jobId": "job-ri-5512",
"status": "ACCEPTED",
"records": 3,
"links": {
"file": "/api/v2/sap-ingest/files?fileId=sapf-20261018-122-0007",
"records": "/api/v2/sap-ingest/records?jobId=job-ri-5512"
}
}
}
Errores
| HTTP | Código | Cuándo |
|---|---|---|
| 404 | NOT_FOUND | El archivo no existe |
| 423 | LOCKED | El archivo todavía se está procesando |
| 409 | IDEMPOTENCY_MISMATCH | Se repite la llave de idempotencia con otro alcance |
GET /api/v2/sap-ingest/records?interface=&result=&key=¬Alive= · Registros de SAP y su resultado
| Campo | Valor |
|---|---|
| API | API-07-003 · MS-07 Ingesta de archivos |
| Para qué | Busca los registros de los archivos de SAP por SKU, interfaz o resultado, con el motivo de cada uno. Con notAlive=true da la lista «no vive»: SKU que SAP creó y no viven en el PIM, porque se excluyeron, fallaron o SAP nunca mandó su 122, y si se pueden reprocesar. |
| En esta épica | La lista «no vive» y el resultado de cada registro |
| Quién la llama | BFF del portal |
| Permiso | Gobierno de Datos y Gobierno de Producto (lectura de integraciones) |
| Cabeceras | Authorization, X-Request-Id |
| Parámetros | interface = 122, notAlive = True, business = MKP, from = 2026-10-11T00:00:00Z, to = 2026-10-18T00:00:00Z, page = 1, size = 50 |
| También la usan | FT-INT-04 |
Request
null
Response · 200
{
"success": true,
"data": {
"items": [
{
"recordKey": "122:ECC:1000004812",
"interface": "122",
"fileId": "sapf-20261018-122-0007",
"sku": "1000004812",
"business": "MKP",
"articleGroup": "1203",
"result": "EXCLUDED",
"reason": {
"code": "EXCLUSION_RULE",
"ruleId": "RUL-EXC-0031",
"detail": "Grupo de artículos excluido para Marketplace"
},
"attempts": 1,
"lastAttemptAt": "2026-10-18T07:30:22Z",
"reprocessable": true
},
{
"recordKey": "122:ECC:1000004813",
"interface": "122",
"fileId": "sapf-20261018-122-0007",
"sku": "1000004813",
"business": "MER",
"articleGroup": "1203",
"result": "FAILED",
"reason": {
"code": "NO_TEMPLATE_MAPPING",
"detail": "El grupo de artículos 1203 con producto 0045 no tiene plantilla"
},
"attempts": 10,
"lastAttemptAt": "2026-10-18T08:12:40Z",
"reprocessable": true
},
{
"recordKey": "CONTROL:ECC:1000004820",
"interface": "CONTROL",
"fileId": "sapf-20261018-ctl-0001",
"sku": "1000004820",
"business": "MER",
"articleGroup": "0871",
"result": "NOT_RECEIVED",
"reason": {
"code": "SAP_NOT_SENT",
"detail": "Viene en el archivo de control del día y no llegó su 122"
},
"attempts": 0,
"lastAttemptAt": null,
"reprocessable": false
}
],
"page": 1,
"size": 50,
"total": 3
}
}
Errores
| HTTP | Código | Cuándo |
|---|---|---|
| 400 | VALIDATION_ERROR | El rango de fechas pasa de 90 días o un filtro no existe |
POST /api/v2/sap-ingest/records/reprocess · Reprocesar registros que no viven
| Campo | Valor |
|---|---|
| API | API-07-004 · MS-07 Ingesta de archivos |
| Para qué | Vuelve a entregar al módulo dueño registros fallidos o excluidos por una regla que ya cambió, por ejemplo un grupo de Esfera que se reactivó. Lo que SAP nunca mandó no se puede reprocesar aquí: se le pide a SAP. |
| En esta épica | Reprocesar los registros que no viven |
| Quién la llama | BFF del portal |
| Permiso | Gobierno de Datos |
| Cabeceras | Authorization, X-Request-Id, Idempotency-Key |
| Escribe en | sap_inbound_files |
| Publica | catalog.sap.inbound/SAP_ARTICLE_FAILED |
Request
{
"recordKeys": [
"122:ECC:1000004812",
"122:ECC:1000004813"
],
"reason": "Se reactivó la multioferta de Esfera Boutique (regla RUL-EXC-0031)"
}
Response · 202
{
"success": true,
"data": {
"jobId": "job-ri-5520",
"status": "ACCEPTED",
"accepted": 2,
"rejected": [],
"links": {
"records": "/api/v2/sap-ingest/records?jobId=job-ri-5520"
}
}
}
Errores
| HTTP | Código | Cuándo |
|---|---|---|
| 422 | BUSINESS_ERROR | Un registro ya está aplicado o SAP nunca lo mandó; details trae la llave y el motivo de cada uno |
| 409 | IDEMPOTENCY_MISMATCH | Se repite la llave de idempotencia con otros registros |
Las que usa y construye otra épica (6)
Su request y su response están en la página de la épica que la construye.
| API | Método y ruta | Para qué, aquí | La construye |
|---|---|---|---|
| API-02-049 | POST /internal/product/sap/122 | Entregar el 122 en lotes de hasta 100 registros, productos antes que atributos | FT-PRD-02 · Creación de SKU con SAP |
| API-01-018 | POST /api/v2/rules/classify | Plantilla automática por grupo de artículos y producto, y la hoja que falte | FT-CAT-04 · Clasificación SAP derivada |
| API-02-050 | POST /internal/product/sap/look | Entregar el Conjunto Look que crea SAP (E14) | FT-INT-06 · Avisos de cambios a Entrada Única y consumidores |
| API-01-012 | GET /api/v2/reference-tables/{t}/entries | Cargar al arrancar la tabla de exclusiones que MS-07 tiene en memoria | FT-REF-01 · Datos de referencia administrables |
| API-01-013 | POST /api/v2/reference-tables/{t}/entries/plans | Preparar el cambio a la tabla de exclusiones | FT-REF-01 · Datos de referencia administrables |
| API-01-004 | POST /api/v2/catalog-plans/{planId}/apply | Confirmar el cambio a la tabla de exclusiones | FT-PLT-01 · Fundamentos de gobierno de plantillas |
6. Eventos
Publica
| Evento | Cuándo | Quién lo consume |
|---|---|---|
catalog.sap.inbound/SAP_ARTICLE_FAILED | Un SKU de SAP no vive en el PIM (falló tras sus reintentos, lo excluyó una regla o SAP no mandó su 122) o llega un error 141 de SAP | FT-RAC-06 |
catalog.sap.inbound/SAP_ARTICLE_CREATED | Un registro del 122 quedó aplicado o creó un producto: archivo, registro y SKU, para la bitácora | MS-05 (bitácora) |
catalog.product.changed/SKU_ASSIGNED | MS-02 asigna el SKU que trajo el 122 | FT-ACT-02, FT-ACT-03, FT-ARQ-02, FT-INT-02, FT-INT-05, FT-PRD-02, FT-PRD-10 |
catalog.product.changed/STATUS_CHANGED | La familia completa su SKU y pasa a En enriquecimiento | FT-ACT-05, FT-ARQ-02, FT-CAT-05, FT-FLU-01, FT-IA-04, FT-PRD-02, FT-PRD-04, FT-PRD-06, FT-PRD-10, FT-RAC-03, FT-RAC-05, FT-RAC-06 |
catalog.product.changed/PRODUCT_CREATED | Llega un artículo nacido en SAP sin propuesta | FT-ARQ-01 |
catalog.product.changed/TASK_CHANGED | Se cierra SKU en SAP o se abre Gobierno de Datos | FT-ACT-05, FT-ACT-06, FT-ARQ-02, FT-CAT-06, FT-FLU-01, FT-IA-06, FT-PRD-02, FT-PRD-05, FT-PRD-06, FT-PRD-07, FT-PRD-08, FT-RAC-02, FT-RAC-03, FT-RAC-04, FT-RAC-05, FT-RAC-06 |
catalog.governance.changed/TAXONOMY_NODE_CHANGED | MS-01 crea la hoja de grupo con producto que faltaba | FT-CAT-04, FT-IA-02, FT-PLT-05, FT-PLT-06 |
catalog.governance.changed/REFERENCE_TABLE_CHANGED | Gobierno de Datos cambia la tabla de exclusiones | FT-REF-01 |
Consume
| Evento | Para qué | Quién lo publica |
|---|---|---|
catalog.egress.files/OBJECT_FINALIZE | MS-07 lee el 122, el E14 y el control diario que SAP deja en el almacén | D-ARCHIVOS |
catalog.governance.changed/REFERENCE_TABLE_CHANGED | MS-07 refresca en segundos su copia de la tabla de exclusiones | esta misma épica |
catalog.sap.inbound/SAP_ARTICLE_FAILED | MS-14 avisa a Gobierno de Datos los SKU que no viven; los reportes clasifican el error como detectado en SAP | esta misma épica |
catalog.sap.inbound/SAP_ARTICLE_CREATED | Auditoría guarda de qué archivo y registro de SAP salió cada SKU | esta misma épica |
7. Datos
Cada colección tiene un solo dueño, el único que escribe en ella.
| Colección | Dueño | Qué guarda | Esta épica |
|---|---|---|---|
sap_inbound_files | MS-07 | Cada archivo que llega de SAP y el avance de sus registros. | escribe |
products | MS-02 | La familia del producto con sus variantes, valores, imágenes (URL), clasificaciones, estado, tareas abiertas y rechazos. | escribe |
identifier_registry | MS-02 | Unicidad de SKU y de EAN por negocio. | escribe |
tasks | MS-02 | Todo el trabajo asignado: visto bueno, corrección, Gobierno de Datos, foto, secciones, QA, revisión del cambio y repoblamiento. | escribe |
taxonomy_nodes | MS-01 | Plantillas y nodos de grupo de artículo, con la configuración de atributos de cada plantilla. | escribe |
reference_tables | MS-01 | Las entradas de los diccionarios: tallas, colores, impuestos, excepciones y demás datos de referencia. | lee |
8. Historias que cubre
| Historia | Prioridad | Cómo la cubre |
|---|---|---|
| FT-INT-03·H1 · Que todo SKU creado en SAP llegue al PIM sin intervención, sin importar el medio | P1 | pasos 1, 2, 3, 5, 7, 9, 10; flujo «Artículo o Conjunto Look creado directo en SAP»; API-02-049 |
| FT-INT-03·H2 · Exclusiones que combinen grupo de artículos con negocio, flujo u origen | P1 | pasos 4; flujo «Si Gobierno de Datos reactiva un grupo excluido»; API-01-013, API-07-004 |
| FT-INT-03·H3 · Procesar el 122 con las reglas de hoy | P1 | pasos 3, 5, 6, 7; API-02-049, API-01-018 |
| FT-INT-03·H4 · Un indicador "no vive" por variante | P2 | flujo «Lista «no vive» y reenvío»; API-07-003, API-07-004 |
| FT-INT-03·H5 · Saber si el producto de SAP lo gobierna P360 o STEP | P3 | Fuera: Con ADR-12 todo lo que entra por el 122 lo gobierna el Nuevo PIM; el «owner» P360 o STEP sólo sobrevive en el aviso a Entrada Única (FT-INT-06) y GetProductSystemOwner no se construye (D-INT-03-6). Si STEP sigue vivo queda en DUD-11. |
9. Decisiones de esta épica
Las tomó el TL como arquitecto; quedan como [Propuesta] hasta que el equipo de la épica las revise.
- D-INT-03-1. MS-07 lee el 122 de ECC (E15) y de S4H (E13) con las reglas de hoy: empareja productos y atributos del mismo momento y los entrega en ese orden, guarda copia de cada archivo y entrega en lotes de hasta 100 a MS-02. Producto es quien asigna SKU y EAN, el estado por negocio y el ID LVP o SBB más SKU del nacido en SAP. Por qué: La misma lógica sirve para cualquier origen si vive en Producto (FT-PRD-02); MS-07 sólo lee, ordena, filtra y reintenta. La copia corrige que hoy sólo haya archivos desde el 24-sep. Se apoya en FT-PRD-02, RN-INT-03, DUD-23.
- D-INT-03-2. Las exclusiones se deciden en el PIM y no en la variante de SAP: SAP manda todo el 122 y MS-07 aparta, con la tabla de exclusiones de MS-01 en memoria, lo que combina grupo de artículos con negocio, flujo u origen. Cada entrada lleva motivo, responsable y fecha de revisión, y un cambio se confirma con plan en MS-01 y llega a MS-07 en segundos por REFERENCE_TABLE_CHANGED. Por qué: La variante de SAP excluye sólo por grupo y deja fuera la multioferta de Esfera; en el PIM la regla tiene dueño, se ve y cambia en menos de los 5 minutos de hoy. Se alinea con FT-REF-01 y FT-PRD-02. Se apoya en RF-INT-02, DEC-70, PEN-69, FT-REF-01.
- D-INT-03-3. Lo excluido también se registra: queda en el libro de MS-07 con la regla que lo apartó, para reprocesarlo cuando la regla cambie (API-07-004) sin pedir otro archivo a SAP. Por qué: Reactivar un grupo no debe depender de que SAP vuelva a mandar lo que ya mandó. Se apoya en RF-INT-03, DEC-80.
- D-INT-03-4. «No vive» por variante es todo SKU que SAP mandó y no está aplicado en el PIM (excluido o fallido) y, cuando SAP entregue un archivo de control diario con los artículos creados o cambiados ese día, también lo que SAP creó y nunca mandó. Se calcula al cerrar cada archivo y cada noche contra el control. Por qué: Hasta 7 a 9 mil SKU por semana no llegan y nadie lo ve; sin el control de SAP, el PIM sólo puede ver lo que recibió. Se apoya en RF-INT-03, DEC-80, PEN-116, DUD-23.
- D-INT-03-5. Capacidad: el 122 se lee al llegar, sin ventana de lote. Cada archivo es independiente y cada lote de 100 se reintenta hasta 10 veces con espera creciente antes de quedar fallido. Por qué: Un lote diario no alcanza para el volumen de hoy; el aviso del almacén quita la espera de 10 s y la ventana. Se apoya en DUD-25, PEN-116.
- D-INT-03-6. Todo lo que entra por el 122 lo gobierna el Nuevo PIM. El dato «owner» P360 o STEP sólo sobrevive en el aviso a Entrada Única mientras exista (FT-INT-06), y la ruta GetProductSystemOwner no se construye (decisión 20 que adopta ADR-12). Por qué: Con un solo sistema ya no hay dos dueños posibles del producto que nace en SAP. Se apoya en ADR-12, DUD-11, FT-INT-06.
- D-INT-03-7. Mientras P360 sea la fuente (hasta el corte de R3), el 122 lo sigue leyendo el middleware de P360. MS-07 se enciende por interfaz en el corte: P360 termina el archivo en curso y MS-07 empieza con el siguiente. Por qué: Dos lectores de la misma carpeta duplicarían o perderían registros. Se apoya en PD-11, FT-MIG-04.
- D-INT-03-8. MS-07 avisa en catalog.sap.inbound sólo lo que nadie más puede avisar: SAP_ARTICLE_CREATED por cada registro aplicado, con su archivo y su registro, para la bitácora; y SAP_ARTICLE_FAILED por cada SKU que no vive y cada error 141, para Gobierno de Datos y la clasificación de errores. Los cambios del producto los sigue avisando Producto (SKU_ASSIGNED, STATUS_CHANGED). Por qué: La bitácora necesita el origen exacto en SAP y los errores que se repiten hay que vigilarlos; repetir los avisos de Producto los duplicaría. Se apoya en P-32, FT-ARQ-02.
Qué falta decidir
| ID | Qué falta |
|---|---|
| DUD-23 | Que el equipo de SAP confirme el 122 sin broker y si puede mandar el archivo de control diario de artículos creados o cambiados. |
| DUD-11 | Confirmar si STEP sigue vivo detrás del broker. |
| PD-16 | Política de identificadores del nacido en SAP: LVP o SBB más SKU frente al prefijo de negocio. |
También siguen abiertos: PEN-108, Revisar con SAP qué grupos de Esfera se reactivan al quitar la variante de exclusión; PEN-69, Documentar por qué se excluyó cada grupo hoy, para cargar la tabla con motivo y responsable; PEN-116, Ubicar el proceso por lotes de SAP que deja SKU sin mandar.
Fuentes
- [D]
trazabilidad/features/FT-INT-03-entrada-skus-sap-exclusion-conciliacion.md: la ficha de la épica, con sus historias, reglas y bloqueos. - [D] ADR-12 · Un solo sistema: backend compartido y una sola base (sección 3.4).
- [D]
docs/arquitectura/por-epica/base/: piezas, colecciones, eventos y el hilo de punta a punta. - [D]
docs/arquitectura/omega-a-pim-headless/contratos-api.md: convenciones y endpoints de partida. - [D]
docs/arquitectura/maquina-de-estados-to-be/propuesta-maquina-de-estados.md§7: estados, tareas y canales. - [I] Las decisiones de la sección 9 son del TL sobre esas fuentes.