Extractor BW a partir de un reporte ALV

La creación de fuentes desde un SAP ECC a BW puede ser variada, desde una simple vista replicada a BW, un infoset, una tabla, donde los datos pueden ser datos maestros, textos o bien transaccionales, es decir, que conforman datos del día a día en una empresa ( Pedidos, facturas, ordenes compra, etc), en este contenido realizamos un ejemplo a partir de un reporte ALV ya creado para realizar el extractor.

Para este ejemplo disponemos de un alv el cual se encarga de mostrar un stock en consignación con estructura comercial, estos datos se requieren cargar en BW para realizar un reporte en BI para censo de información.

Creamos una estructura en el diccionario de datos que contendrá los datos para la carga en BW con los mismos campos de salida  del ALV:

Se toma una copia del módulo de función RSAX_BIW_GET_DATA_SIMPLE y se le pone el nombre deseado para la carga de los datos para nuestro caso pondremos ZMF_CENSO_INFO_BW y también creamos el grupo de funciones ZBW_SD_EXTRACTORES dentro del cual va el modulo de función y el paquete correspondiente en este caso ZSD.

Ahora pasamos a implementar la lógica dentro del módulo de función estándar para extraer y cargar los datos dentro del extractor. Para ello lo hacemos a partir de las siguientes líneas de comentario que se muestra en el código estándar copiado dentro de nuestro modulo de función, aquí crearemos una subrutina en la cual vamos a capturar lo datos del reporte ALV a través de la instrucción submit, «A través de esta instrucción ejecutamos la transacción que ejecuta el reporte alv pero lo haremos en modo no visible y con parámetros de entrada constante para ejecutar el reporte.

Posteriormente capturamos esos datos que arroja el reporte de fondo en memoria a una tabla interna con los mismos campos de salida del reporte ALV

En este caso los datos quedaran en la tabla gt_report_zsd005 hemos creado otra subrutina para pasar estos datos a una tabla transparente creada en el diccionario de datos y realizar el select a partir de esta para la extracción, aunque no es estrictamente necesario puesto que se pueden pasar directamente los datos de la tabla interna gt_report_zsd005 a la estructura dispuesta donde se cargan los datos del extractor, es nuestro caso queremos que esos datos queden guardados en la tabla transparente creada ztsd_censo_info y a partir de ahí el extractor cargue los datos nuevos cada que ejecute todo el proceso y deje los que ya estén cargados sin modificar o volver a cargar de nuevo todo.

A partir de aquí hacemos la extracción a la estructura de salida de nuestro extractor para el modulo de función creada al inicio, cabe resaltar que dentro del modulo de función debemos definir en tipo tablas nuestra estructura con referencia a la estructura creada en el diccionario de datos.

Como se puede observar usamos la sentencia open cursor with hold Esta sentencia abre un cursor de base de datos para la selección definida después de FOR, y asocia una variable de cursor con el cursor de base de datos. El conjunto de resultados de la selección se puede leer con la instrucción FETCH next cursor y package size nos define el numero de registros por paquete en el cual se cargaron los datos y debemos cerrar el cursor si no hay más datos que extraer con close cursor, cada que se carguen mas datos realizara la carga por paquetes sin afectar los datos que ya están cargados después de into o en nuestro caso el appending corresponding fields.

Después de realizar la lógica de nuestro extractor solo resta definir el datasource en la transacción RSO2 para probar el extractor

llenamos los datos en nuestro caso como lo muestra la imagen

Posteriormente probamos el extractor ya creado por la RSA3

Hacemos una prueba de extracción colocando 500 Registros en un paquete

Y como vemos los datos fueron cargados Y por medio del botón GRID ALV podemos visualizarlos

Conclusión: al realizar un extractor para BW por medio de módulo de función dependerá de la fuente de extracción de la cual nos piden los datos y de igual forma realizamos nuestra lógica para hacer la extracción.

Así vemos la industria

Evolución de la prestación de servicios desde la comunidad IT ALLIANCE

En aras de participar en la creación de nuevos modelos de trabajo para hacer más...

Más información

Devops Realidad

¿Qué son los DevOps? DevOps es un término que está tomando mucha fuerza en el...

Más información

Consumo de servicio Web API REST

La intención de este contenido es compartir un recurso para consumir un servicio web desde...

Más información
Más artículos