Vous êtes sur la page 1sur 10

BATCH INPUT

Se va a realizar batch input a la transaccin TUTT: Tutorial de Workbench. TRANSACCION TUTT

PARA ANALIZAR CON QUE CAMPOS ESTAN RELACIONADOS LAS CAJAS DE INGRESO DE INFORMACION, PRESIONAMOS F1 SOBRE ESTOS E INGRESAMOS A SU INFORMACION TECNICA. DE: FLIGHT INFORMACION / DEPARTURE

PARA FlightId, TENEMOS: SCREEN DATA TUTPROG 0100 DATOS GUI TUTPROG 100 DATOS DE CAMPO WTABLE

NOMBRE DE PROGRAMA NUMERO DE SCREEN NOMBRE DE PROGRAMA STATUS TABLA TRANSPARENTE NOMBRE DE CAMPO

FLID

ELEMENTO DE DATOS MA_FLID DE SUPPLEMENT 0 DESCRIPCION DE CAMPOS PARA BATCH INPUT CAMPO SCREEN WBTABLE-FLID PARA Departure TENEMOS: SCREEN DATA TUTPROG 0100 DATOS GUI TUTPROG 100 DATOS DE CAMPO WTABLE

NOMBRE DE PROGRAMA NUMERO DE SCREEN NOMBRE DE PROGRAMA STATUS TABLA TRANSPARENTE NOMBRE DE CAMPO

LVCITY

ELEMENTO DE DATOS MA_LVCITY DE SUPPLEMENT 0 DESCRIPCION DE CAMPOS PARA BATCH INPUT CAMPO SCREEN WBTABLE-LVCITY De amanera similar para los dems campos. Buscar los campos relacionados

Esta transaccin llena la tabla WBTABLE de estructura:

Y datos:

Modificado por alumnos, comparar:

CREAR UNA BATCH INPUT A LA TUTT 1. SHDB 2. 3. 4. 5. Grabar nueva: o Crear (F5) Nombrar la grabacin (Z_TUTT_XX01) Especificar el cdigo de transaccin (TUTT) Iniciar grabacin Start recording:

6. Se presenta la pantalla de la transaccin TuTT. 7. Completar los datos y grabar 8. Finalmente volver Back (F3) . 9. Aparece la ventana de grabacion de la BI .

10. Grabar

Save (Ctrl+S)

CREAR UN PROGRAMA QUE LLAME A LA TRANSACCION USO DE: CALL TRANSACTION


*----------------------Tablas para el Batch Input----------------------* DATA: T_BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE. DATA: T_MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE. *----------------------------------------------------------------------* PERFORM TUTT_LLENA_DYNPRO_FIELD. CALL TRANSACTION 'TUTT' USING T_BDCDATA MODE 'N' UPDATE 'A' MESSAGES INTO T_MESSTAB. *----------------------------------------------------------------------* FORM BDC_DYNPRO USING PROGRAM DYNPRO. CLEAR T_BDCDATA. T_BDCDATA-PROGRAM = PROGRAM. T_BDCDATA-DYNPRO = DYNPRO. T_BDCDATA-DYNBEGIN = 'X'. APPEND T_BDCDATA. ENDFORM. *----------------------------------------------------------------------* FORM BDC_FIELD USING FNAM FVAL. CLEAR T_BDCDATA. T_BDCDATA-FNAM = FNAM. T_BDCDATA-FVAL = FVAL. APPEND T_BDCDATA. ENDFORM. *----------------------------------------------------------------------* * Hacer un ingreso de un juego de datos FIJOS *----------------------------------------------------------------------* FORM TUTT_LLENA_DYNPRO_FIELD. PERFORM BDC_DYNPRO USING 'TUTPROG' '0100'. PERFORM BDC_FIELD USING 'BDC_CURSOR' 'WBTABLE-CHRTR'. PERFORM BDC_FIELD USING 'BDC_OKCODE' '=CREA'. PERFORM BDC_FIELD USING 'WBTABLE-FLID' 'EF07'. PERFORM BDC_FIELD USING 'WBTABLE-LVCITY' 'JFK'. PERFORM BDC_FIELD USING 'WBTABLE-ARCITY' 'TXL'. PERFORM BDC_FIELD USING 'WBTABLE-LVDATE' '29.09.2005'. PERFORM BDC_FIELD USING 'WBTABLE-ARDATE' '30.09.2005'. PERFORM BDC_FIELD USING 'WBTABLE-LVTIME' '11:11:11'. PERFORM BDC_FIELD USING 'WBTABLE-ARTIME' '22:22:22'. PERFORM BDC_FIELD USING 'WBTABLE-REGLR' ''. PERFORM BDC_FIELD USING 'WBTABLE-CHRTR' 'X'. ENDFORM.

MODIFICAR EL PROGRAMA PARA QUE LEA LOS DATOS DE UN ARCHIVO USO DE: CALL TRANSACTION CALL FUNCTION 'WS_UPLOAD'
TYPES: BEGIN OF Ty_CAMPOS, FLID LIKE WBTABLE-FLID, LVCITY LIKE WBTABLE-LVCITY, LVTIME LIKE WBTABLE-LVTIME, REGLR LIKE WBTABLE-REGLR, CHRTR LIKE WBTABLE-CHRTR, MOVIE LIKE WBTABLE-MOVIE, SNACK LIKE WBTABLE-SNACK, FMEAL LIKE WBTABLE-FMEAL, ARCITY LIKE WBTABLE-ARCITY, ARTIME LIKE WBTABLE-ARTIME, LVDATE LIKE WBTABLE-LVDATE, ARDATE LIKE WBTABLE-ARDATE, END OF Ty_CAMPOS.

DATA: ARCHIVO LIKE RLGRAP-FILENAME, TIPO LIKE RLGRAP-FILETYPE. DATA: t_REGISTRO TYPE Ty_CAMPOS OCCURS 10 WITH HEADER LINE. *----------------------Tablas para el Batch Input----------------------* DATA: T_BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE. DATA: T_MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE. *----------------------------------------------------------------------* * LEER LAYOUT Y CARGARLO EN TABLA INTERNA. PERFORM LEE_LAYOUT. * HACER LOOP A LA TABLA INTERNA LOOP AT t_REGISTRO. PERFORM TUTT_LLENA_DYNPRO_FIELD USING t_REGISTRO. ENDLOOP. CALL TRANSACTION 'TUTT' USING T_BDCDATA MODE 'N' UPDATE 'A' MESSAGES INTO T_MESSTAB. *----------------------------------------------------------------------* FORM BDC_DYNPRO USING PROGRAM DYNPRO. CLEAR T_BDCDATA. T_BDCDATA-PROGRAM = PROGRAM. T_BDCDATA-DYNPRO = DYNPRO. T_BDCDATA-DYNBEGIN = 'X'. APPEND T_BDCDATA. ENDFORM. *----------------------------------------------------------------------* FORM BDC_FIELD USING FNAM FVAL. CLEAR T_BDCDATA. T_BDCDATA-FNAM = FNAM. T_BDCDATA-FVAL = FVAL. APPEND T_BDCDATA. ENDFORM. *----------------------------------------------------------------------* FORM TUTT_LLENA_DYNPRO_FIELD USING AUART. PERFORM BDC_DYNPRO USING 'TUTPROG' '0100'. PERFORM BDC_FIELD USING 'BDC_CURSOR' 'WBTABLE-CHRTR'. PERFORM BDC_FIELD USING 'BDC_OKCODE' '=CREA'. PERFORM BDC_FIELD USING 'WBTABLE-FLID' t_REGISTRO-FLID. PERFORM BDC_FIELD USING 'WBTABLE-LVCITY' t_REGISTRO-LVCITY. PERFORM BDC_FIELD USING 'WBTABLE-ARCITY' t_REGISTRO-ARCITY. PERFORM BDC_FIELD USING 'WBTABLE-LVDATE' t_REGISTRO-LVDATE. PERFORM BDC_FIELD USING 'WBTABLE-ARDATE' t_REGISTRO-ARDATE. PERFORM BDC_FIELD USING 'WBTABLE-LVTIME' t_REGISTRO-LVTIME. PERFORM BDC_FIELD USING 'WBTABLE-ARTIME' t_REGISTRO-ARTIME. PERFORM BDC_FIELD USING 'WBTABLE-REGLR' t_REGISTRO-REGLR. PERFORM BDC_FIELD USING 'WBTABLE-CHRTR' t_REGISTRO-CHRTR. PERFORM BDC_FIELD USING 'WBTABLE-MOVIE' t_REGISTRO-MOVIE. PERFORM BDC_FIELD USING 'WBTABLE-SNACK' t_REGISTRO-SNACK. PERFORM BDC_FIELD USING 'WBTABLE-FMEAL' t_REGISTRO-FMEAL. ENDFORM. *----------------------------------------------------------------------* FORM LEE_LAYOUT. ARCHIVO = 'C:\TEMP\ABC.DAT'. TIPO = 'DAT'. CALL FUNCTION 'WS_UPLOAD' EXPORTING FILENAME = ARCHIVO FILETYPE = TIPO TABLES DATA_TAB = t_REGISTRO. ENDFORM.

report ZEJEMPLOBATCHINPUT no standard page heading line-size 255. include bdcrecx1. parameters: dataset(132) lower case. *** DO NOT CHANGE - the generated data section - DO NOT CHANGE *** * * If it is nessesary to change the data section use the rules: * 1.) Each definition of a field exists of two lines * 2.) The first line shows exactly the comment * '* data element: ' followed with the data element * which describes the field. * If you don't have a data element use the * comment without a data element name * 3.) The second line shows the fieldname of the * structure, the fieldname must consist of * a fieldname and optional the character '_' and * three numbers and the field length in brackets * 4.) Each field must be type C. * *** Generated data section with specific formatting - DO NOT CHANGE *** data: begin of record, * data element: MA_FLID FLID_001(005), * data element: MA_LVCITY LVCITY_002(005), * data element: MA_ARCITY ARCITY_003(005), * data element: MA_LVDATE LVDATE_004(010), * data element: MA_ARDATE ARDATE_005(010), * data element: MA_LVTIME LVTIME_006(008), * data element: MA_ARTIME ARTIME_007(008), * data element: MA_REGLR REGLR_008(001), * data element: MA_MOVIE MOVIE_009(001), * data element: MA_FLID FLID_010(005), * data element: MA_LVCITY LVCITY_011(005), * data element: MA_ARCITY ARCITY_012(005), * data element: MA_LVDATE LVDATE_013(010), * data element: MA_ARDATE ARDATE_014(010), * data element: MA_LVTIME LVTIME_015(008), * data element: MA_ARTIME ARTIME_016(008), * data element: MA_REGLR REGLR_017(001), * data element: MA_MOVIE MOVIE_018(001), end of record. *** End generated data section *** start-of-selection.

perform open_dataset using dataset. perform open_group. do. read dataset dataset into record. if sy-subrc <> 0. exit. endif. perform bdc_dynpro using 'TUTPROG' '0100'. perform bdc_field using 'BDC_CURSOR' 'WBTABLE-MOVIE'. perform bdc_field using 'BDC_OKCODE' '=CREA'. perform bdc_field using 'WBTABLE-FLID' record-FLID_001. perform bdc_field using 'WBTABLE-LVCITY' record-LVCITY_002. perform bdc_field using 'WBTABLE-ARCITY' record-ARCITY_003. perform bdc_field using 'WBTABLE-LVDATE' record-LVDATE_004. perform bdc_field using 'WBTABLE-ARDATE' record-ARDATE_005. perform bdc_field using 'WBTABLE-LVTIME' record-LVTIME_006. perform bdc_field using 'WBTABLE-ARTIME' record-ARTIME_007. perform bdc_field using 'WBTABLE-REGLR' record-REGLR_008. perform bdc_field using 'WBTABLE-MOVIE' record-MOVIE_009. perform bdc_dynpro using 'TUTPROG' '0100'. perform bdc_field using 'BDC_CURSOR' 'WBTABLE-FLID'. perform bdc_field using 'BDC_OKCODE' '=BACK'. perform bdc_field using 'WBTABLE-FLID' record-FLID_010. perform bdc_field using 'WBTABLE-LVCITY' record-LVCITY_011. perform bdc_field using 'WBTABLE-ARCITY' record-ARCITY_012. perform bdc_field using 'WBTABLE-LVDATE' record-LVDATE_013. perform bdc_field using 'WBTABLE-ARDATE' record-ARDATE_014. perform bdc_field using 'WBTABLE-LVTIME' record-LVTIME_015. perform bdc_field using 'WBTABLE-ARTIME' record-ARTIME_016. perform bdc_field using 'WBTABLE-REGLR' record-REGLR_017. perform bdc_field using 'WBTABLE-MOVIE' record-MOVIE_018. perform bdc_transaction using 'TUTT'. enddo. perform close_group. perform close_dataset using dataset.

ESQUEMA GENERAL
ESTRUCTURA INTERNA CON LOS CAMPOS DE LA TABLA RELACIONADA (Ty_CAMPOS). RLGRAP, ESTRUCTURA QUE PERMITE TRANSFERIR ARCHIVO DE DATOS.
DATA: ARCHIVO LIKE RLGRAP-FILENAME, TIPO LIKE RLGRAP-FILETYPE.

TRES TABLAS: T_REGISTRO EN BASE A Ty_CAMPOS. T_BDCDATA T_MESSTAB CUERPO PRINCIPAL


PERFORM LEE_LAYOUT. LOOP AT t_REGISTRO. PERFORM TUTT_LLENA_DYNPRO_FIELD USING t_REGISTRO. ENDLOOP. CALL TRANSACTION 'TUTT' USING T_BDCDATA MODE 'N' UPDATE 'A' MESSAGES INTO T_MESSTAB.

FORM BDC_DYNPRO USING PROGRAM DYNPRO.

FORM BDC_FIELD USING FNAM FVAL.

FORM TUTT_LLENA_DYNPRO_FIELD USING AUART. UTILIZA PROCEDIMIENTO BDC_DYNPRO (1 VEZ) UTILIZA PROCEDIMIENTO BDC_FIELD (N CAMPOS +2)

FORM LEE_LAYOUT LEVANTA ARCHIVO CON WS_UPLOAD Y ARCHIVO FISICO

HAY QUE LEVANTAR LA INFORMACION EN EL MISMO FORMATO QUE MUESTRA EXCEL, ASI NO TENGA EL MISMO FORMATO QUE MANEJA ABAP. POR EJEMPLO FECHA 08/05/2005 (COMO ESTA EN EXCEL) Y NO 20050508 (COMO LO ENTENDERIA EL ABAP). POR ESOES EL MODELO. OJO, EL SEGUNDO CAMPO (LVCITY) SOLO SON VALORES FIJOS PERTENECIENTES A UNA LISTA, NO CUALQUIER VALOR.

Vous aimerez peut-être aussi