You are on page 1of 16

MANUALES Y TUTORIALES WWW.MUNDOSAP.

COM

BATCH INPUTS El batch input es una herramienta muy til que sirve para cargar en una transaccin cualquiera, datos de forma masiva. Por ejemplo, tenemos una transaccin (la xk01) en la cual se tienen que rellenar muchsimos datos y en muchas pantallas diferentes. Rellenar cada campo de forma manual sera demasiado tedioso y desesperante. Pues un batch input te rellena todos esos datos en todas las pantallas automticamente. La tcnica se basa en la repeticin de una accin que tu grabas para que el programa sepa lo que tendr que hacer tantas veces como campos tenga que rellenar. O sea, que tu lo que tendrs que hacer es rellenar todos esos campos UNA SOLA VEZ mientras el programa va grabando y memorizando como lo haces. Digamos que t le vas indicando lo que va a tener que hacer luego el automticamente un montn de veces. Para hacer todo esto, lo mas til es crearte primero un archivo Excel que contenga TODOS los datos que t vas a querer rellenar, por ejemplo si tu quieres rellenar los campos de NOMBRE, CONCEPT DE BSQUEDA, PAS E IDIOMA, debers crear un Excel con todos los nombres, conceptos de bsqueda pases e idiomas que quieras introducir. Luego, el batch input acceder a ese fichero ir leyendo todos los datos y los ir colocando cada uno en su sitio (recuerda que ya sabe donde tiene que ponerlos porque tiene en memoria como lo tiene que hacer gracias a la grabacin hecha anteriormente). Vamos a hacer un ejemplo prctico: Lo vamos a hacer con la transaccin xk01. Esta transaccin la funcin que tiene es rellenar una tabla con los campos que t le vayas introduciendo. Lo primero que vamos a hacer es ver un poco como trabaja esta transaccin para que luego sea ms fcil entender lo que hace el batch input. Cuando vamos a la transaccin xk01 nos sale lo siguiente:

Aqu introducimos el grupo de cuentas (yo he puesto zbcn porque soy de Barcelona, pero se puede escoger el que se quiera) y le damos a INTRO. Nos sale la siguiente pantalla:

MANUALES Y TUTORIALES WWW.MUNDOSAP.COM

Cada campo que hay para introducir es un campo de la tabla que se rellenar cuando le demos a Guardar. Como vemos, Todos los campos no son obligatorios, solo lo son los que estn marcados con un tic. Y como esta hay algunas pantallas ms con un montn de campos. Bueno, pues ahora nos vamos a meter enteramente en lo que es el batch input.

MANUALES Y TUTORIALES WWW.MUNDOSAP.COM

Vamos a la transaccin sm35 y nos sale lo siguiente:

La lista que sale son todos los batch inputs que se han procesado hasta el momento. Vamos a poner el nuestro aqu. Ahora le damos a Grabacin y luego a Grabacin nueva. Nos sale:

MANUALES Y TUTORIALES WWW.MUNDOSAP.COM

En grabacin le ponemos un nombre cualquiera, por ejemplo grabacin1 En Cd. transaccin ponemos la transaccin que vamos a utilizar para la grabacin, en nuestro caso xk01, y le damos a INTRO A partir de aqu el programa estar atento en todo momento por si haces algo para grabarlo y memorizalo.. Nos sale esta pantalla (que como vemos es la transaccin xk01 en s):

MANUALES Y TUTORIALES WWW.MUNDOSAP.COM

Como antes ponemos en grupo de cuentas (que es obligatorio) que queramos. Yo voy a poner ZBCN, y le damos a INTRO. Ahora rellenamos Nombre, Concepto de bsqueda Pas e Idioma como antes (si queris rellenar mas campos como queris, yo digo estos 4 porque son los obligatorios). Le podemos introducir cualquier cosa, ya que lo que nos interesa es la accin de rellenar un campo u otro para que el programa lo sepa, no los datos en s. Una vez llenos los campos nos queda as :

MANUALES Y TUTORIALES WWW.MUNDOSAP.COM

Ahora le damos a grabar (icono del disquete que hay arriba en la barra de herramientas). Y automticamente nos salta una pantalla donde se muestra todo lo que hemos hecho desde que empezamos la grabacin hasta que le hemos dado a grabar:

MANUALES Y TUTORIALES WWW.MUNDOSAP.COM

Nos salen un total de 12 lnias. La primera nos indica que transaccin hemos elegido para la grabacin. La segunda nos indica el cdigo de la primera pantalla que nos ha salido al darle a iniciar grabacin La tercera nos indica donde hemos puesto el cursor del Mouse. En nuestro caso nos est indicando que le hemos dado con el ratn al campo de grupo de cuentas. La cuarta y la quinta nos indican que al campo de grupo de cuentas le hemos puesto zbcn y le hemos dado al INTRO ( /00 nos indica que hemos presionado INTRO). Las lneas siguientes siguen el mismo patrn, solo compensar que =UPDA quiere decir que hemos hecho un clic con el ratn en algn sitio, en nuestro caso cuando le hemos dado a grabar. Ahora le damos al botn de grabar arriba para grabar este cdigo que se ha generado. Ahora lo que vamos a hacer es crear un Excel con los datos que nosotros queramos cargar con el batch input. Abrimos un Excel nuevo y ponemos por ejemplo esto:

MANUALES Y TUTORIALES WWW.MUNDOSAP.COM

Podemos poner los datos que queramos. Ahora vamos a Archivo- Guardar comotabulaciones) y le damos a guardar. y en guardar como tipo elegimos Texto(delimitado por

Nos har un par de preguntas, le decimos que si a todo y ya tenemos el fichero donde el programa va a acceder para saber los datos que tiene que introducir : datos.txt. Volvamos a SAP.

MANUALES Y TUTORIALES WWW.MUNDOSAP.COM

Una vez le hemos dado a grabar vamos para atrs y nos sale esta pantalla:

Le damos ahora a Programa, Introducimos el nombre del programa y marcamos la opcin Marcar de la grabacin. Yo le pondr el nombre ZEjemplo1. Le damos a INTRO, introducimos un ttulo y le damos a Cdigo Fuente. Luego a Objeto Local.

MANUALES Y TUTORIALES WWW.MUNDOSAP.COM

Nos quedamos en una pantalla como esta:

MANUALES Y TUTORIALES WWW.MUNDOSAP.COM

Este programa ya es ejecutable, pero no hace lo que nosotros queremos que haga, esto en un batch input que carga solo 1 campo de la tabla, y nosotros queremos que nos cargue todo el fichero Excel que hemos creado anteriormente. Por tanto tenemos que modificar un poco este cdigo para que se adapte a lo que nosotros queremos. Primero lo que vamos a hacer es declarar una tabla interna que ser donde guardaremos todos los registros que tenemos en nuestro fichero: DATA: begin of i_tabla occurs 0, Nombre(30), Conbus(2), Pais(2), Idioma(2), END OF i_tabla.

Seguidamente declaramos dos parameters. Uno que nos mostrar el nombre del usuario con el que hemos entrado a SAP y el otro que nos mostrar la ruta de nuestro fichero donde tenemos todos los datos:

MANUALES Y TUTORIALES WWW.MUNDOSAP.COM

PARAMETERS: p_user LIKE apqi-userid OBLIGATORY DEFAULT sy-uname, "user p_fich LIKE rlgrap-filename OBLIGATORY DEFAULT 'C:\datos.txt'. Ahora, dentro ya del START OF SELECTION llamaremos a la funcin UPLOAD que ser la encargada de pasar los datos de nuestro archivo a la tabla interna i_tab que hemos creado: START-OF-SELECTION. CALL FUNCTION 'UPLOAD' EXPORTING filename filetype TABLES data_tab EXCEPTIONS conversion_error invalid_table_width invalid_type no_batch unknown_error

= p_fich = 'DAT' = i_tabla = = = = = 1 2 3 4 5.

Una vez hecho esto, ya solo nos falta indicarle que haga un Loop por la tabla y que vaya introduciendo todos los datos. El trozo de cdigo nos quedara as: PERFORM open_group. LOOP AT i_tabla FROM 2. PERFORM bdc_dynpro PERFORM bdc_field PERFORM PERFORM PERFORM PERFORM PERFORM PERFORM PERFORM PERFORM PERFORM PERFORM ENDLOOP. PERFORM close_group. LOOP AT i_tabla FROM 2. El from 2 quiere decir que empiece a coger los datos a partir de la segunda fila, ya que en la primera tenemos la descripcin de los campos(Nombre, concepto de bsqueda, pas e idioma) y es a partir de la segunda donde esta lo que a nosotros nos interesa. El cdigo final por lo tanto nos quedara as: REPORT zejemplo1 NO STANDARD PAGE HEADING LINE-SIZE 255. INCLUDE bdcrecx1. USING 'SAPMF02K' '0100'. USING 'BDC_CURSOR' 'RF02K-KTOKK'. bdc_field USING 'BDC_OKCODE' '/00'. bdc_field USING 'RF02K-KTOKK' 'zbcn'. bdc_dynpro USING 'SAPMF02K' '0110'. bdc_field USING 'BDC_CURSOR' 'LFA1-SPRAS'. bdc_field USING 'BDC_OKCODE' '=UPDA'. bdc_field USING 'LFA1-NAME1' i_tabla-nombre. bdc_field USING 'LFA1-SORTL' i_tabla-conbus. bdc_field USING 'LFA1-LAND1' i_tabla-pais. bdc_field USING 'LFA1-SPRAS' i_tabla-idioma. bdc_transaction USING 'XK01'.

MANUALES Y TUTORIALES WWW.MUNDOSAP.COM

DATA: BEGIN OF i_tabla OCCURS 0, nombre(30), conbus(2), pais(2), idioma(2), END OF i_tabla. PARAMETERS: p_user LIKE apqi-userid OBLIGATORY DEFAULT sy-uname, "user p_fich LIKE rlgrap-filename OBLIGATORY DEFAULT 'C:\datos.txt'. START-OF-SELECTION. CALL FUNCTION 'UPLOAD' EXPORTING filename filetype TABLES data_tab EXCEPTIONS conversion_error invalid_table_width invalid_type no_batch unknown_error PERFORM open_group. LOOP AT i_tabla FROM 2. PERFORM bdc_dynpro PERFORM bdc_field PERFORM PERFORM PERFORM PERFORM PERFORM PERFORM PERFORM PERFORM PERFORM PERFORM ENDLOOP. PERFORM close_group. Activamos y ejecutamos el programa. Nos saldr lo siguiente: USING 'SAPMF02K' '0100'. USING 'BDC_CURSOR' 'RF02K-KTOKK'. bdc_field USING 'BDC_OKCODE' '/00'. bdc_field USING 'RF02K-KTOKK' 'zbcn'. bdc_dynpro USING 'SAPMF02K' '0110'. bdc_field USING 'BDC_CURSOR' 'LFA1-SPRAS'. bdc_field USING 'BDC_OKCODE' '=UPDA'. bdc_field USING 'LFA1-NAME1' i_tabla-nombre. bdc_field USING 'LFA1-SORTL' i_tabla-conbus. bdc_field USING 'LFA1-LAND1' i_tabla-pais. bdc_field USING 'LFA1-SPRAS' i_tabla-idioma. bdc_transaction USING 'XK01'.

= p_fich = 'DAT' = i_tabla = = = = = 1 2 3 4 5.

MANUALES Y TUTORIALES WWW.MUNDOSAP.COM

En nombre del juego de ponemos un nombre cualquiera, y marcamos la opcin Conservar juego de dat para que luego si ha habido un error lo podamos ver. Ejecutamos y en la siguiente pantalla le damos a Transferir. Si todo ha salido OK nos tiene que salir una pantalla como esta:

Ahora solo nos falta ir a ejecutar el batch input. Vamos a la transaccin sm35 y ya veremos nuestro proceso listo para ejecutarse en primera posicin. Lo marcamos:

MANUALES Y TUTORIALES WWW.MUNDOSAP.COM

Y le damos a Ejecutar. Marcamos los campos de la siguiente manera:

Y le damos a Ejecutar. Si no ha habido ningn error podemos ver que nuestro proceso ha pasado a la pestaa de Procesado. Y ya tenemos hecha la carga de todos los datos. Para ver el resultado podemos dirigirnos a la transaccin xk03 y comprobar nosotros mismos que se han cargado OK los datos.

MANUALES Y TUTORIALES WWW.MUNDOSAP.COM

Tambin podemos ir directamente a la tabla LFA1 y comprobar que los datos que nosotros tenamos en el Excel estn ahora en esta tabla:

AQU VEMOS NUESTROS DATOS GRABADOS EN LA TABLA CORRECTAMENTE.

You might also like