#1
|
||||
|
||||
Duda con batch inout
Hola buen dia.
Hice un programita ejemplo para la carga de un excel en base a un batch input. pero como puedo ver o saber que es correcto? el programita que hice me sale con un write que le puse que dice"la cuenta se creo" el batch lo hice para la xk01 y luego me fui a la xk03 y aparecen los campos que capture cuando hice la grabacion. como o donde puedo ver que lo que puse en el excel que hice se cargo en verdad? Aquí mi código: REPORT ymmbatch NO STANDARD PAGE HEADING LINE-SIZE 255. * Quitamos este Include. *INCLUDE bdcrecx1. * Tipo de datos. TYPES: BEGIN OF ty_datos, name1 LIKE lfa1-name1, " Nombre sortl LIKE lfa1-sortl, " Cond. de Busq. ort01 LIKE lfa1-ort01, " Dirección. pstlz LIKE lfa1-pstlz, " C.P. land1 LIKE lfa1-land1, " País. spras LIKE lfa1-spras, " Idioma. END OF ty_datos. * Batchinputdata of single transaction DATA: bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE. * messages of call transaction DATA: messtab LIKE bdcmsgcoll OCCURS 0 WITH HEADER LINE. DATA: lv_filename TYPE string, lt_datos TYPE STANDARD TABLE OF ty_datos WITH HEADER LINE. * Pantalla de selección. PARAMETERS: pa_file LIKE ibipparms-path. * ibipparms = Parámetros de transferencia de datos * Pedir ruta y archivo. AT SELECTION-SCREEN ON VALUE-REQUEST FOR pa_file. CALL FUNCTION 'F4_FILENAME' IMPORTING file_name = pa_file. START-OF-SELECTION. lv_filename = pa_file. * Función para upload. CALL FUNCTION 'GUI_UPLOAD' EXPORTING filename = lv_filename filetype = 'ASC' has_field_separator = ' ' TABLES data_tab = lt_datos EXCEPTIONS file_open_error = 1 file_read_error = 2 no_batch = 3 gui_refuse_filetransfer = 4 invalid_type = 5 no_authority = 6 unknown_error = 7 bad_data_format = 8 header_not_allowed = 9 separator_not_allowed = 10 header_too_long = 11 unknown_dp_error = 12 access_denied = 13 dp_out_of_memory = 14 disk_full = 15 dp_timeout = 16 OTHERS = 17. IF sy-subrc <> 0. * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF. LOOP AT lt_datos. CLEAR bdcdata. REFRESH: bdcdata, messtab. * Primera pantalla. 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' 'VERT'. * Segunda pantalla. 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' 'Juan Lopez'. PERFORM bdc_field USING 'LFA1-SORTL' 'AA'. PERFORM bdc_field USING 'LFA1-ORT01' 'PONIETE 134'. PERFORM bdc_field USING 'LFA1-PSTLZ' '02403'. PERFORM bdc_field USING 'LFA1-LAND1' 'MX'. PERFORM bdc_field USING 'LFA1-SPRAS' 'ES'. * * quitamos esta. * PERFORM bdc_transaction USING 'XK01'. CALL TRANSACTION 'XK01' USING bdcdata MODE 'P' UPDATE 'S' MESSAGES INTO messtab. ENDLOOP. * Resultados. LOOP AT lt_datos. READ TABLE messtab WITH KEY msgtyp = 'E'. " Error. IF sy-subrc EQ 0. " Mensaje de error. WRITE:/ 'Error en acreedor', lt_datos-name1. ELSE. READ TABLE messtab WITH KEY msgtyp = 'S'. " Correcto. IF sy-subrc EQ 0. " Mensaje de ok. WRITE:/ 'Se creó la cuenta', messtab-msgv1. ENDIF. ENDIF. ENDLOOP. *----------------------------------------------------------------------* * Start new screen * *----------------------------------------------------------------------* FORM bdc_dynpro USING program dynpro. CLEAR bdcdata. bdcdata-program = program. bdcdata-dynpro = dynpro. bdcdata-dynbegin = 'X'. APPEND bdcdata. ENDFORM. "BDC_DYNPRO *----------------------------------------------------------------------* * Insert field * *----------------------------------------------------------------------* FORM bdc_field USING fnam fval. IF fval IS NOT INITIAL. CLEAR bdcdata. bdcdata-fnam = fnam. bdcdata-fval = fval. APPEND bdcdata. ENDIF. ENDFORM. "BDC_FIELD Saludos.
__________________
Es más fácil encontrar el final del arcoíris que el de un estándar SAP. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|