CRESTONE
Tutorial
Cómo configurar Delta Extraction con extractores estándar de SAP
CRESTONE Blog • Tutorial • Tiempo de lectura: 8 min
Extraer todos los datos de SAP en cada ejecución —lo que se conoce como Full Load— es una estrategia válida para tablas pequeñas o para la carga inicial[cite: 4]. Pero cuando se trabaja con tablas de millones de registros (documentos financieros, movimientos de stock, pedidos de venta), el Full Load se vuelve lento, costoso y difícil de sostener operativamente[cite: 4].
La alternativa es Delta Extraction: extraer solo los registros que cambiaron desde la última ejecución[cite: 4]. SAP tiene un mecanismo nativo para esto basado en sus extractores estándar (también llamados DataSources), que mantienen un puntero de control —el Delta Pointer— que registra hasta dónde llegó la última extracción[cite: 4]. CRESTONE soporta este mecanismo de forma nativa[cite: 4].
¿Qué son los extractores estándar de SAP?
SAP incluye cientos de extractores estándar (DataSources) diseñados originalmente para alimentar SAP BW (Business Warehouse)[cite: 4]. Cada extractor expone un conjunto de datos de un área funcional específica y está preparado para soportar dos modos de extracción[cite: 4]:
- Full (Init): carga completa inicial[cite: 4]. Se ejecuta una sola vez para poblar el histórico en el destino[cite: 4].
- Delta: carga incremental[cite: 4]. Extrae solo los registros nuevos o modificados desde la última ejecución de Init o Delta[cite: 4].
Algunos de los extractores más utilizados son[cite: 4]:
2LIS_11_VAHDR— Cabeceras de pedidos de venta (módulo SD)[cite: 4].2LIS_11_VAITM— Posiciones de pedidos de venta (módulo SD)[cite: 4].2LIS_02_HDR— Cabeceras de órdenes de compra (módulo MM)[cite: 4].2LIS_02_ITM— Posiciones de órdenes de compra (módulo MM)[cite: 4].0FI_GL_4— Documentos del libro mayor (módulo FI)[cite: 4].0FI_AR_4— Partidas de cuentas por cobrar (módulo FI)[cite: 4].0FI_AP_4— Partidas de cuentas por pagar (módulo FI)[cite: 4].0CO_OM_CCA_9— Controlling: órdenes internas (módulo CO)[cite: 4].
Los extractores de la familia 2LIS (logística) requieren una inicialización especial en SAP antes de poder usarlos en modo Delta[cite: 4]. Este proceso se realiza una sola vez y habilita la cola Delta del extractor en el sistema SAP[cite: 4].
El flujo de Delta Extraction en CRESTONE
CRESTONE gestiona el ciclo completo de Delta Extraction en tres fases[cite: 4]:
Fase 1 — Init (Full Load inicial): la primera ejecución extrae todos los registros históricos del extractor[cite: 4]. CRESTONE registra el Delta Pointer en este momento[cite: 4].
Fase 2 — Delta (cargas incrementales): cada ejecución posterior extrae solo los registros que SAP acumuló en la cola Delta desde la última extracción[cite: 4]. CRESTONE avanza el Delta Pointer automáticamente[cite: 4].
Fase 3 — Re-Init (opcional): si necesitás recargar el histórico completo (por ejemplo, después de un cambio de modelo de datos en destino), podés reinicializar el extractor desde CRESTONE sin afectar el sistema SAP productivo[cite: 4].
-- Ciclo típico de un extractor Delta en CRESTONE:
Ejecución 1 → INIT → Full Load de todos los registros históricos
Ejecución 2 → DELTA → Solo registros nuevos/modificados desde Ejec 1
Ejecución 3 → DELTA → Solo registros nuevos/modificados desde Ejec 2
... → DELTA → Continúa acumulando incrementalmente
Configuración paso a paso en CRESTONE
Para configurar un Node con Delta Extraction de extractor SAP[cite: 4]:
- Creá un nuevo Node y seleccioná la conexión SAP correspondiente[cite: 4].
- En Extraction Type, elegí Extractor (en lugar de Table o BAPI)[cite: 4].
- En Extractor Name, ingresá el nombre del DataSource SAP[cite: 4]. Por ejemplo:
2LIS_11_VAHDR[cite: 4]. - En Load Mode, seleccioná Init para la primera ejecución[cite: 4].
- Configurá el destino y la tabla de destino en el Data Warehouse[cite: 4].
- Ejecutá el Job[cite: 4]. CRESTONE realizará la carga completa inicial y registrará el Delta Pointer[cite: 4].
- En las siguientes ejecuciones, cambiá Load Mode a Delta[cite: 4]. CRESTONE extraerá automáticamente solo los registros nuevos desde la última ejecución[cite: 4].
Una vez completada la fase Init, podés programar el Job en modo Delta con el schedule que necesites: diario, cada 4 horas, semanal[cite: 4]. CRESTONE garantiza que cada Delta extrae exactamente lo que cambió en el período, sin duplicados y sin omisiones[cite: 4].
Extractores 2LIS: inicialización en SAP
Los extractores de la familia 2LIS (logística de ventas, compras, producción) requieren una inicialización previa en el sistema SAP antes de que CRESTONE pueda extraer en modo Delta[cite: 4]. Este proceso habilita la cola de cambios (Delta Queue) del extractor en SAP[cite: 4].
El proceso de inicialización se realiza en la transacción LBWE de SAP y tiene dos pasos[cite: 4]:
- Activar el extractor: en
LBWE, seleccioná el DataSource correspondiente (ej.2LIS_11_VAHDR) y activá la extracción[cite: 4]. Esto habilita que SAP empiece a registrar los cambios en la cola Delta[cite: 4]. - Rellenar la cola (opcional): si necesitás histórico previo a la activación, podés ejecutar un "Setup" desde la transacción
LBWGoOLI*correspondiente al módulo (OLI9BWpara SD,OLIIBWpara MM)[cite: 4].
La inicialización 2LIS es un proceso de una sola vez por extractor[cite: 4]. Una vez activado, SAP mantiene automáticamente la cola Delta y CRESTONE la consume en cada ejecución incremental[cite: 4].
Extractores FI/CO: sin inicialización especial
A diferencia de los extractores 2LIS, los extractores del área financiera (familia 0FI_*) y de Controlling (familia 0CO_*) no requieren inicialización previa en SAP[cite: 4]. Están diseñados para funcionar con Init + Delta directamente desde CRESTONE, sin pasos previos en el sistema SAP[cite: 4].
Esto los hace más simples de poner en marcha[cite: 4]:
0FI_GL_4(Libro Mayor): configurá el Node con Load Mode Init en la primera ejecución[cite: 4]. CRESTONE extrae todos los documentos GL históricos[cite: 4].0FI_AR_4(Cuentas por Cobrar): mismo procedimiento[cite: 4]. La cola Delta se habilita automáticamente[cite: 4].0FI_AP_4(Cuentas por Pagar): ídem[cite: 4].
En las ejecuciones siguientes, cambiá a Load Mode Delta y programá el schedule[cite: 4]. El extractor entregará solo los documentos nuevos o modificados desde la última extracción[cite: 4].
Modos de carga en destino: Append vs Upsert
Cuando usás Delta Extraction, el modo de carga en la tabla de destino también importa[cite: 4]:
- Append: agrega los registros Delta al final de la tabla de destino[cite: 4]. Adecuado cuando los registros Delta son siempre nuevos (ej. documentos contables que no se modifican)[cite: 4].
- Upsert (Insert or Update): si el registro ya existe en destino (por clave primaria), lo actualiza; si no existe, lo inserta[cite: 4]. Adecuado cuando los Delta pueden incluir modificaciones de registros existentes (ej. pedidos de venta que cambian de estado)[cite: 4].
Para extractores como 2LIS_11_VAHDR (pedidos de venta), usá Upsert: un pedido puede aparecer en múltiples Deltas a medida que cambia su estado (creado, confirmado, facturado)[cite: 4]. El Upsert garantiza que la tabla de destino siempre refleje el estado más reciente de cada documento[cite: 4].
Ventajas del Delta Extraction frente al filtro por fecha
- No dependés de asumir qué campo indica el cambio: SAP gestiona internamente qué registros entraron en cada Delta[cite: 4].
- Capturás modificaciones en registros antiguos: un pedido de 2020 que se modifica hoy aparece en el Delta de hoy, aunque su fecha de creación sea antigua[cite: 4].
- Volumen predecible: cada Delta extrae exactamente lo que cambió, sin escanear toda la tabla[cite: 4].
- Sin gaps temporales: no hay riesgo de perder registros por diferencias de zona horaria o retrasos en la actualización de campos de fecha[cite: 4].
Próximo artículo
Próxima entrega: cómo implementar CDC (Change Data Capture) desde SAP con CRESTONE usando las tablas CDHDR y CDPOS, para capturar cambios en maestros y documentos sin depender de extractores estándar[cite: 4].
— Equipo CRESTONE | Seidor Analytics[cite: 4]