Manual Batch Input
Short Description
Download Manual Batch Input...
Description
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
BATCH INPUTS
El batch input es una herramienta muy útil que sirve para cargar en una transacción cualquiera, datos de forma masiva. Por ejemplo, tenemos una transacción (la xk01) en la cual se tienen que rellenar muchísimos datos y en muchas pantallas diferentes. Rellenar cada campo de forma manual sería demasiado tedioso y desesperante. Pues un batch input te rellena todos esos datos en todas las pantallas automáticamente. La técnica se basa en la repetición de una acción 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 tendrás 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 automáticamente un montón 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 BÚSQUEDA, PAÍS E IDIOMA, deberás crear un Excel con todos los nombres, conceptos de búsqueda países 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 s u sitio (recuerda que ya sabe donde tiene que ponerlos porque p orque tiene en memoria como lo tiene que hacer gracias a la grabación hecha anteriormente). Vamos a hacer un ejemplo práctico: Lo vamos a hacer con la transacción xk01. Esta transacción la función que tiene es rellenar una tabla con los campos que tú le vayas introduciendo. intro duciendo. Lo primero que vamos a hacer es ver un poco como trabaja esta transacción para que luego sea más fácil entender lo que hace el batch input. Cuando vamos a la transacción xk01 nos sale lo siguiente: si guiente:
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 están marcados con un tic. Y como esta hay algunas pantallas más con un montón 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 transacción 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 “Grabación” y luego a “Grabación nueva”. Nos sale:
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
En grabación le ponemos un nombre cualquiera, por ejemplo grabación1 En Cód. transacción ponemos la transacción que vamos a utilizar para la grabación, 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 transacción 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 búsqueda País e Idioma como antes (si queréis rellenar mas campos como queráis, yo digo estos 4 porque son los obligatorios). Le podemos introducir cualquier cosa, ya que lo que nos interesa es la acción 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 automáticamente nos salta una pantalla donde se muestra todo lo que hemos hecho desde que empezamos la grabación hasta que le hemos dado a grabar:
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
Nos salen un total de 12 línias. La primera nos indica que transacción hemos elegido para la grabación. La segunda nos indica el código de la primera pantalla que nos ha salido al darle a iniciar grabación La tercera nos indica donde hemos puesto el cursor del Mouse. En nuestro caso nos está indicando que le hemos dado con el ratón 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 líneas siguientes siguen el mismo patrón, solo compensar que =UPDA quiere decir que hemos hecho un clic con el ratón en algún sitio, en nuestro caso cuando le hemos dado a grabar. Ahora le damos al botón de grabar arriba para grabar este código 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 atrás y nos sale esta pantalla:
Le damos ahora a Programa, Introducimos el nombre del programa y marcamos la opción “Marcar de la grabación”. Yo le pondré el nombre ZEjemplo1. Le damos a INTRO, introducimos un título y le damos a “Código 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 código 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 función ‘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 código nos quedaría 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
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'.
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 descripción de los campos(Nombre, concepto de búsqueda, país e idioma) y es a partir de la segunda donde esta lo que a nosotros nos interesa. El código final por lo tanto nos quedaría 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 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.
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
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'.
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 opción “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 transacción sm35 y ya veremos nuestro proceso listo para ejecutarse en primera posición. 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 ningún error podemos ver que nuestro proceso ha pasado a la pestaña de “Procesado”. Y ya tenemos hecha la carga de todos los datos. Para ver el resultado podemos dirigirnos a la transacción xk03 y comprobar nosotros mismos que se han cargado OK los datos.
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
También podemos ir directamente a la tabla LFA1 y comprobar que los datos que nosotros teníamos en el Excel están ahora en esta tabla:
AQUÍ VEMOS NUESTROS DATOS GRABADOS EN LA TABLA CORRECTAMENTE.
View more...
Comments