Está en la página 1de 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 como- y en guardar como tipo elegimos Texto(delimitado por
tabulaciones) y le damos a guardar.





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 = p_fich
filetype = 'DAT'
TABLES
data_tab = i_tabla
EXCEPTIONS
conversion_error = 1
invalid_table_width = 2
invalid_type = 3
no_batch = 4
unknown_error = 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 USING 'SAPMF02K' '0100'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RF02K-KTOKK'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'RF02K-KTOKK'
'zbcn'.
PERFORM bdc_dynpro USING 'SAPMF02K' '0110'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFA1-SPRAS'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=UPDA'.
PERFORM bdc_field USING 'LFA1-NAME1'
i_tabla-nombre.
PERFORM bdc_field USING 'LFA1-SORTL'
i_tabla-conbus.
PERFORM bdc_field USING 'LFA1-LAND1'
i_tabla-pais.
PERFORM bdc_field USING 'LFA1-SPRAS'
i_tabla-idioma.
PERFORM bdc_transaction USING 'XK01'.

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.

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 = p_fich
filetype = 'DAT'
TABLES
data_tab = i_tabla
EXCEPTIONS
conversion_error = 1
invalid_table_width = 2
invalid_type = 3
no_batch = 4
unknown_error = 5.


PERFORM open_group.


LOOP AT i_tabla FROM 2.

PERFORM bdc_dynpro USING 'SAPMF02K' '0100'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RF02K-KTOKK'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'RF02K-KTOKK'
'zbcn'.
PERFORM bdc_dynpro USING 'SAPMF02K' '0110'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFA1-SPRAS'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=UPDA'.
PERFORM bdc_field USING 'LFA1-NAME1'
i_tabla-nombre.
PERFORM bdc_field USING 'LFA1-SORTL'
i_tabla-conbus.
PERFORM bdc_field USING 'LFA1-LAND1'
i_tabla-pais.
PERFORM bdc_field USING 'LFA1-SPRAS'
i_tabla-idioma.
PERFORM bdc_transaction USING 'XK01'.

ENDLOOP.

PERFORM close_group.


Activamos y ejecutamos el programa. Nos saldr lo siguiente:


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.

También podría gustarte