Ver Mensaje Individual
  #1  
Viejo 08/03/13, 16:26:03
Avatar de ABellamy
ABellamy ABellamy is offline
Member
 
Fecha de Ingreso: dic 2011
Mensajes: 44
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.
Responder Con Cita