Você está na página 1de 3

REPORT ZB_SD_VENDOR_137.

TYPES : BEGIN OF TY_FINAL,


LIFNR TYPE LIFNR,
BUKRS TYPE BUKRS,
KTOKK TYPE KTOKK,
NAME1 TYPE NAME1,
SORTL TYPE SORTL,
LAND1 TYPE LAND1,
AKONT TYPE AKONT,
FDGRV TYPE FDGRV,
END OF TY_FINAL.
DATA : LT_FINAL TYPE TABLE OF TY_FINAL,
LS_FINAL TYPE TY_FINAL,
LT_BDCDATA TYPE TABLE OF BDCDATA,
LS_BDCDATA TYPE BDCDATA,
LT_BDCMSGCOLL TYPE TABLE OF BDCMSGCOLL,
LS_BDCMSGCOLL TYPE BDCMSGCOLL,
BDC_1 TYPE IBIPPARMS-PATH,
BDC_2 TYPE STRING.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME
= SYST-CPROG
DYNPRO_NUMBER
= SYST-DYNNR
FIELD_NAME
= ' '
IMPORTING
FILE_NAME
= BDC_1.
BDC_2 = BDC_1.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME
= BDC_2
FILETYPE
= 'ASC'
HAS_FIELD_SEPARATOR
= 'X'
* HEADER_LENGTH
= 0
* READ_BY_LINE
= 'X'
* DAT_MODE
= ' '
* CODEPAGE
= ' '
* IGNORE_CERR
= ABAP_TRUE
* REPLACEMENT
= '#'
* CHECK_BOM
= ' '
* VIRUS_SCAN_PROFILE
=
* NO_AUTH_CHECK
= ' '
* IMPORTING
* FILELENGTH
=
* HEADER
=
TABLES
DATA_TAB
= LT_FINAL
* CHANGING
* ISSCANPERFORMED
= ' '
* 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
UNKNOWN_DP_ERROR
ACCESS_DENIED
DP_OUT_OF_MEMORY
DISK_FULL
DP_TIMEOUT
OTHERS
.
IF SY-SUBRC <> 0.
MESSAGE 'ERROR FOUND' TYPE 'E'.
ENDIF.
.
start-of-selection.

=
=
=
=
=
=
=

11
12
13
14
15
16
17

LOOP AT LT_FINAL INTO LS_FINAL.


REFRESH LT_BDCDATA.
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-LIFNR'
LS_FINAL-LIFNR."'A0001'.
perform bdc_field
using 'RF02K-BUKRS'
LS_FINAL-BUKRS."'1000'.
perform bdc_field
using 'RF02K-KTOKK'
LS_FINAL-KTOKK."'0001'.
perform bdc_dynpro
using 'SAPMF02K' '0110'.
perform bdc_field
using 'BDC_CURSOR'
'LFA1-LAND1'.
perform bdc_field
using 'BDC_OKCODE'
'=UPDA'.
perform bdc_field
using 'LFA1-NAME1'
LS_FINAL-NAME1."'V1'.
perform bdc_field
using 'LFA1-SORTL'
LS_FINAL-SORTL."'V'.
perform bdc_field
using 'LFA1-LAND1'
LS_FINAL-LAND1."'DE'.
perform bdc_field
using 'BDC_OKCODE'
'=VW'.
perform bdc_dynpro
using 'SAPMF02K' '0120'.
perform bdc_field
using 'BDC_CURSOR'
'LFA1-KUNNR'.
perform bdc_field
using 'BDC_OKCODE'
'=VW'.
perform bdc_dynpro
using 'SAPMF02K' '0130'.
perform bdc_field
using 'BDC_CURSOR'
'LFBK-BANKS(01)'.
perform bdc_field
using 'BDC_OKCODE'
'=VW'.
perform bdc_dynpro
using 'SAPMF02K' '0380'.
perform bdc_field
using 'BDC_CURSOR'
'KNVK-NAMEV(01)'.
perform bdc_field
using 'BDC_OKCODE'
'=VW'.
perform bdc_dynpro
using 'SAPMF02K' '0210'.
perform bdc_field
using 'BDC_CURSOR'
'LFB1-FDGRV'.
perform bdc_field
using 'BDC_OKCODE'
'=VW'.

perform bdc_field

using 'LFB1-AKONT'
LS_FINAL-AKONT."'31000'.
perform bdc_field
using 'LFB1-FDGRV'
LS_FINAL-FDGRV."'A1'.
CALL TRANSACTION 'XK01' USING LT_BDCDATA UPDATE 'A' MODE 'A' MESSAGES INTO LT_BD
CMSGCOLL.
ENDLOOP.
*----------------------------------------------------------------------*
*
Start new screen
*
*----------------------------------------------------------------------*
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
CLEAR LS_BDCDATA.
LS_BDCDATA-PROGRAM = PROGRAM.
LS_BDCDATA-DYNPRO = DYNPRO.
LS_BDCDATA-DYNBEGIN = 'X'.
APPEND LS_BDCDATA TO LT_BDCDATA.
ENDFORM.
*----------------------------------------------------------------------*
*
Insert field
*
*----------------------------------------------------------------------*
FORM BDC_FIELD USING FNAM FVAL.
* IF FVAL <> SPACE.
CLEAR LS_BDCDATA.
LS_BDCDATA-FNAM = FNAM.
LS_BDCDATA-FVAL = FVAL.
APPEND LS_BDCDATA TO LT_BDCDATA.
* ENDIF.
ENDFORM.

Você também pode gostar