Sie sind auf Seite 1von 6

BATCH INPUT

Los Batch Input son programas que se utilizan para realizar una seria de tareas sin intervencin del usuario. Estas tareas se pasan a un fichero de colas, en forma de sesiones de Batch Input. Para tratar los Batch Inputs (generarlos, modificarlos y ejecutarlos) se puede acceder de dos maneras: - Directamente desde la transaccin SM35 (SHDB Abre directamente la grabadora). - Por men: Sistema Servicios Batch Input

Para generar el Batch Input se puede hacer de varias maneras: La ms fcil es a travs de la grabadora de la SM35 que despus, automticamente nos genera el programa. Pero si no se quiere generar automticamente, la grabadora, adems, nos da los pasos que hay que seguir para rellenar la BDCDATA. Hay dos tipos de Batch Input: - Unos pasan los datos desde un fichero y generan una sesin Batch Input. - Otros pasan los datos desde una transaccin haciendo un CALL TRANSACTION Desde la SM35, entrar en Grabacin [ ] y crear Grabacin nueva: hay que darle un nombre a la grabacin e introducir el cdigo de transaccin en la que se quiere comenzar el proceso e iniciar grabacin.

Se entra de esta manera en la transaccin desde la que se quieren procesar los datos y hay que ir haciendo, a manera de prueba, el tratamiento de uno de los registros.

Al grabar se genera un esquema de los pasos que se siguen para generar el BI; la estructura definida es a partir de la tabla BDCDATA: PROGRAM nombre del programa que llamamos DYNPRO n de pantalla en la que se procesan los datos DYNBEGIN switch que indica si es el inicio de una nueva pantalla FNAM nombre el campo en el que se quiere meter el valor FVAL valor del campo que se introduce

El programa BI estar dividido en las siguientes partes: Tablas internas necesarias: o Tabla con la estructura BDCDATA para luego pasar los datos: DATA: BEGIN OF bdc_tab OCCURS 0. INCLUDE STRUCTURE bdcdata. DATA: END OF bdc_tab. o Tabla con la estructura del fichero de entrada con los datos a tratar. La pantalla de seleccin tendr un parmetro para introducir el nombre del fichero que contenga los datos y su ubicacin. SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME. PARAMETERS: p_fichero LIKE rlgrap-filename DEFAULT 'c:\datos2.txt'. SELECTION-SCREEN END OF BLOCK blk1. * Llamada a la funcin F4_FILENAME para el match-code. AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_fichero. CALL FUNCTION 'F4_FILENAME' EXPORTING program_name = syst-cprog * DYNPRO_NUMBER = SYST-DYNNR * FIELD_NAME = IMPORTING file_name = p_fichero. END-OF-SELECTION.

Paso del fichero a la tabla interna: start-of-selection ... end-of-selection. CALL FUNCTION 'UPLOAD' EXPORTING filename = p_fichero filetype = 'DAT' filetype_no_show ='' TABLES data_tab = fichero_entrada EXCEPTIONS CONVERSION_ERROR =1 INVALID_TABLE_WIDTH = 2 INVALID_TYPE =3 NO_BATCH =4 UNKNOWN_ERROR =5 OTHERS = 7. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. Lectura de los datos transferidos y procesamiento. LOOP AT fichero_entrada. AT FIRST. * abrir_grupo. CALL FUNCTION 'BDC_OPEN_GROUP' EXPORTING group = group_jd keep = 'X' user = sy-uname .... ENDAT. * Rellenar los campos de la tabla interna, con los datos de la grabacin que ya tenemos, para que luego se pasen a la BDCDATA con un INSERT. PERFORM pantallas_campos. * Insertar en la tabla CALL FUNCTION 'BDC_INSERT' EXPORTING tcode = 'FD02' TABLES dynprotab = t_datos ... REFRESH t_datos. CLEAR t_datos. AT LAST. * cerrar_grupo. CALL FUNCTION 'BDC_CLOSE_GROUP' ENDAT. ENDLOOP.

SAP guarda en una cola los batch input generados. Se accede a ellos desde la misma transaccin SM35 carpetas .

En la pantalla se nos presenta en distintas carpetas todos los batch input creados y su status. Principal [ ]: estn todos los BI creados y sus caractersticas (autor, fecha de creacin, status...) Nuevos: los BI creados pero no ejecutados; con status Nvo. Errneos: aquellos BI que se han ejecutado y han terminado de manera errnea; con status errneos. Procesado: BI que se han ejecutado y han terminado de manera correcta; status procesado. En tratamiento: aquellos que se estn procesando en el mismo instante de la visualizacin. En proc. Fondo: son los BI que estn creados y que estn programados para que se ejecuten en una fecha y hora determinadas. En creacin: BI que han sido dados de alta pero que todava no ha sido generado su juego de datos. Blq: BI bloqueados.

Pulsaremos en Anlisis para visualizar las transacciones que se van a ejecutar, las dynpros, los programas que incluyen...

Si lo que queremos es ejecutar el BI pulsaremos en el botn correspondiente y nos saldr una pantalla para elegir el modo en el que queremos ejecutar el juego de datos.

Segn el modo de ejecucin podemos hacer que el batch input se ejecute de tres formas diferentes: - Ejecutar visible: Ver todo el proceso. Se va viendo el paso por todas las transacciones y hay que ir confirmando todas las pantallas. Si nos da un error tenemos la oportunidad de corregirlo en el momento. Adems tenemos la posibilidad de una vez visto el funcionamiento de la transaccin, pasar al otro modo. - Visul. Slo errores: Slo mostrar los errores del batch input. Se ejecuta sin tener que ir confirmando todos los pasos, pero para el proceso cuando se produce un error; por lo que se puede corregir. - Invisible: No mostrar nada. No necesita confirmacin y se ejecuta hasta el final. Para ver la ejecucin del BI iremos al log. Si pulsamos en estadsticas, de un BI ya procesado, nos mostrara una pantalla con la informacin correspondiente:

Los LOG de procesos nos indican la hora de inicio del proceso (de la sesin y de las transacciones), mensajes de incidencias (o proceso correcto...).

Si el juego de datos ha terminado de manera errnea se puede reprocesar una vez tratados los registros que dieron error. Comandos especiales durante el proceso: /n cancela la transaccin activa (se usa cuando ha dado un error) /bdel borra una transaccin /bend cancela el proceso hasta el final

NOTA Con los batch input hay un problema si se ejecuta un batch input en dos o ms ordenadores con resoluciones diferentes. Es decir si en una pantalla se muestran 4 campos (pero tiene 6) SAP toma 4 esos campos como una pantalla. Si movemos la pantalla, SAP asume que los campos 5 y 6 estn en otra pantalla. Para arreglar esto, en teora, si vamos al icono de antena 3 (el icono que salen los colores rojo, verde y azul arriba a la izquierda) y pulsamos ah sale un men contextual, despus pulsamos en default size. La pantalla se pone en la resolucin, fuente de letras, nmero de colores, etc. que tiene por defecto SAP. Pero hay ordenadores (como por ejemplo en el que estoy haciendo el manual) que si lo pulsas, sale el siguiente error:

En un Call Transaction las transacciones correctas se actualizan, las errneas no. Hay que rellenar la BDCDATA por cada llamada CALL TRANSACTION y cuando vuelva el control al programa principal hay que controlar el SY-SUBRC para verificar que la operacin ha terminado correctamente. Hay que lanzar un Call Transaction por cada registro de la tabla. - El modo de actualizacin puede ser A(Asncrono) S(Sncrono) y L(Local) - El modo de ejecucin puede ser A (visible) N (Invisible) Si el programa se lanza en fondo da igual el MODE ('A', 'E' o 'N') del Call-Transaction; en este caso, si se quiere ver una orden SPOOL con los errores es necesario hacer el LOOP sobre la tabla de los errores y escribirlos con WRITE. Se habilita un procedimiento para guardar en un juego de datos las transacciones (registros) incorrectas. Esto es muy til si el CALL TRANSACTION tiene lugar en un job de fondo donde no se permite el procesamiento on-line de las transacciones incorrectas. Resultado on-line: El proceso depende del modo de visualizacin escogido. A: se procesan on-line todas las transacciones. E: slo se procesan on-line las transacciones errneas. N: no hay procesamiento on-line. Las transacciones incorrectas se pierden, salvo que se hayan corregido on-line. En el modo 'N' estas transacciones se pierden irremediablemente. Para evitar perder las transacciones errneas stas pueden almacenarse en un JD para procesarlas posteriormente on-line. Resultado en background: Independientemente del modo de visualizacin (A, E N), las transacciones correctas se actualizan en el sistema y las incorrectas se pierden salvo que se hayan guardado en un JD. El resultado es similar al on-line. Tanto si es batch-input como call-transaction, se tiene que limpiar la tabla BDCTAB al comienzo de cada transaccin, sino se van acumulando las transacciones y siempre se ejecutara la primera.

Das könnte Ihnen auch gefallen