*&---------------------------------------------------------------------*
*& Report ZBDC_CALL_TRANS
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZBDC_CALL_TRANS.
TYPES: BEGIN OF LINE_TYPE,
KUNNR TYPE KUNNR,
LAND1 TYPE LAND1,
NAME1 TYPE NAME1_GP,
ORT01 TYPE ORT01_GP,
END OF LINE_TYPE.
DATA ITAB TYPE TABLE OF LINE_TYPE WITH HEADER LINE.
DATA IT_BDCDATA TYPE TABLE OF BDCDATA WITH HEADER LINE.
PARAMETERS P_FILE LIKE IBIPPARMS-PATH.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
PERFORM BROWSE_FILE.
START-OF-SELECTION.
PERFORM UPLOAD_FILE.
LOOP AT ITAB.
IT_BDCDATA-PROGRAM = 'SAPMZMOD67'.
IT_BDCDATA-DYNPRO = '100'.
IT_BDCDATA-DYNBEGIN = 'X'.
APPEND IT_BDCDATA.
CLEAR IT_BDCDATA.
IT_BDCDATA-FNAM = 'KNA1-KUNNR'.
IT_BDCDATA-FVAL = ITAB-KUNNR.
APPEND IT_BDCDATA.
CLEAR IT_BDCDATA.
PERFORM SUB1 USING 'KNA1-LAND1' ITAB-LAND1.
PERFORM SUB1 USING 'KNA1-NAME1' ITAB-NAME1.
PERFORM SUB1 USING 'KNA1-ORT01' ITAB-ORT01.
PERFORM SUB1 USING 'BDC_OKCODE' 'FCT1'.
IT_BDCDATA-PROGRAM = 'SAPMZMOD67'.
IT_BDCDATA-DYNPRO = '100'.
IT_BDCDATA-DYNBEGIN = 'X'.
APPEND IT_BDCDATA.
CLEAR IT_BDCDATA.
PERFORM SUB1 USING 'BDC_OKCODE' 'FCT2'.
CALL TRANSACTION 'ZTKNA1' USING IT_BDCDATA
UPDATE 'A'
MODE 'A'.
ENDLOOP.
*LOOP AT ITAB.
* WRITE: / ITAB-KUNNR,ITAB-LAND1,ITAB-ORT01,ITAB-NAME1.
*ENDLOOP.
*&---------------------------------------------------------------------*
*& Form BROWSE_FILE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM BROWSE_FILE .
CALL FUNCTION 'F4_FILENAME'
* EXPORTING
* PROGRAM_NAME = SYST-CPROG
* DYNPRO_NUMBER = SYST-DYNNR
* FIELD_NAME = ' '
IMPORTING
FILE_NAME = P_FILE
.
ENDFORM. " BROWSE_FILE
*&---------------------------------------------------------------------*
*& Form UPLOAD_FILE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM UPLOAD_FILE .
DATA F_FILE TYPE STRING.
f_file = P_FILE.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = F_FILE
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 = ITAB
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.
ENDFORM. " UPLOAD_FILE
*&---------------------------------------------------------------------*
*& Form SUB1
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_0083 text
* -->P_ITAB_LAND1 text
*----------------------------------------------------------------------*
FORM SUB1 USING FNAME FVALUE.
IT_BDCDATA-FNAM = FNAME.
IT_BDCDATA-FVAL = FVALUE.
APPEND IT_BDCDATA.
CLEAR IT_BDCDATA.
ENDFORM. " SUB1