
A menudo se requiere cargar una gran cantidad de datos en SAP (datos maestros de empleados, cuentas contables, etc.), por lo que hacerlo manualmente a través de una transacción resultaría muy poco práctico, incluso inabordable. Como sabemos, una forma de cargar datos de forma masiva en SAP es ejecutando un Batch Input o juego de datos.
Para ello, resultaría de gran utilidad para el usuario disponer de una plantilla de Excel que le indique qué campos debe rellenar, en qué orden y qué formato. Si la plantilla se genera automáticamente, el usuario no tendrá que preocuparse de si esta se pierde o se ha sobrescrito algún campo.
Crear de forma dinámica una plantilla de Excel en ABAP
En este artículo vamos a explicar cómo crear de forma dinámica una plantilla de Excel en ABAP para que el usuario rellene los datos de interés y, a partir de este Excel, generar un batch input que cargue todos los datos en SAP.
Hemos desarrollado un report que permite generar diferentes plantillas de Excel, en función de la opción que seleccione el usuario. Una vez que el usuario rellene la plantilla con los datos a cargar, se generará un Batch Input que cargará los datos de forma masiva.

Para evitar hardcodear, hemos creado y rellenado una tabla en SAP que indica, para cada una de las opciones (infty), el nombre técnico (fieldname) y la posición (possi) de los campos que deben aparecer en el Excel.


Por lo que, para seleccionar los campos de interés, bastaría hacer un select a esa tabla con la opción elegida por del usuario. En este ejemplo, hemos seleccionado el infotipo 0105 que almacena datos de comunicación de un empleado, como su dirección de mail.

A continuación, necesitamos rellenar el catálogo con las propiedades de los campos (nombre, descripción, tipo de dato, etc). Utilizaremos la función LVC_FIELDCATALOG_MERGE, que nos devolverá el catálogo automáticamente, a partir de la estructura indicada (en este ejemplo, la estructura correspondiente es la ‘PA0105’).



Sin embargo, esta función nos devolverá todos los campos de la estructura elegida, pero para rellenar el Excel, no todos los campos son necesarios (en este ejemplo, solo se requieren 5 campos). Eliminaremos las entradas sobrantes del catálogo, y nos quedaremos solo con los campos que nos interesan.

Crear una plantilla Excel con tecnología OLE
A continuación, crearemos la plantilla de Excel usando la tecnología OLE. OLE (Object linking and embedding) es una herramienta que usa SAP para integrar MS Excel y MS Word.






Es muy importante establecer formato texto en las celdas, para evitar errores en la carga posterior del Excel. De este modo, cuando pulsamos el botón de la Plantilla, se nos generará el Excel correspondiente:

Comentarios:

El usuario rellenará la plantilla con los datos y lo guardará en la ruta de destino.

A continuación, veremos cómo hacer para cargar el Excel en una tabla interna de nuestro report. A partir del catálogo, crearemos una tabla de forma dinámica con el método estático create_dynamic_table de la clase cl_alv_table_create.

Con la función ‘TEXT_CONVERT_XLS_TO_SAP’, introduciremos la ruta del fichero y volcaremos los datos del Excel directamente en nuestra tabla interna

Comprobamos que los datos se han cargado correctamente.

Por último, solo nos quedaría generar nuestro juego de datos a partir de la tabla interna. Para ello:
- Creamos una grabación en la transacción SM35.

- Abrimos el Batch Input.

- Rellenamos la tabla bdcdata con los datos de nuestra tabla interna.


- Cerramos el Batch Input.

Finalmente, ejecutaríamos nuestro Batch Input desde la transacción SM35.

Como hemos visto, la grabación que hemos realizado para este ejemplo se corresponde al infotipo 0105. Habrá que realizar una grabación y un Batch Input para cada uno de los infotipos que se muestran en la pantalla de selección. Dentro del report, en función de la elección del usuario, ejecutaremos el Batch Input correspondiente.
Esperamos que este artículo te haya sido de utilidad. Recuerda que si tienes alguna pregunta puedes dejarla en los comentarios. Además, si estás interesad@ en nuestra área de finanzas, no dudes en ponerte en contacto con nosotros.
Más información:
Quizas te pueda interesar
Cambios clave en las transferencias SEPA:
qué debes saber
A partir de noviembre de 2025, la normativa europea instaurará nuevas reglas para las transferencias en euros dentro de la zona SEPA (Single Euro Payments Area). Estos cambios, impulsados por el Reglamento (UE) 2024/886 y recogidos en el SEPA Credit Transfer Scheme...
Anticípate a la Ley Crea y Crece con ELOISE
La Facturación Electrónica B2B en España está al caer debido a la ley Crea y Crece. Esto obligará a recibir las facturas de nuestros proveedores nacionales en formato XML. Esto supondrá un cambio técnico en nuestros sistemas, pero ¿por qué quedarse aquí? Adelántate a...
SAP S/4HANA Cloud Public
Seguramente habrás escuchado el término GROW with SAP (¡ojo!, no confundir con RISE with SAP). GROW with SAP proporciona una cartera de soluciones y servicios para una rápida y exitosa adopción de ERP en la nube para cualquier empresa. GROW with SAP está estrechamente...