learn how to create bdc program for table control
Program Code
report ZVD51_BDC_TC
no standard page heading line-size 255.
include bdcrecx1.
types : begin of tp_itab,
kunnr(10),
vkorg(4),
vtweg(2),
matnr(18),
cust_matnr(20),
end of tp_itab.
data : gt_itab type STANDARD TABLE OF tp_itab,
gs_itab type tp_itab,
gt_itab1 type STANDARD TABLE OF tp_itab,
gs_itab1 type tp_itab.
data : gv_file type string,
gv_sno(2) type n,
gv_fname(60).
SELECTION-SCREEN skip.
PARAMETERS : P_FILE TYPE IBIPPARMS-PATH OBLIGATORY.
SELECTION-SCREEN SKIP.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
CALL FUNCTION 'F4_FILENAME'
* EXPORTING
* PROGRAM_NAME = SYST-CPROG
* DYNPRO_NUMBER = SYST-DYNNR
* FIELD_NAME = ' '
IMPORTING
FILE_NAME = P_FILE.
start-of-selection.
clear : gv_file, gt_itab[].
gv_file = p_file.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = GV_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 = gt_itab
* 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 = 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.
* Implement suitable error handling here
ENDIF.
gt_itab1[] = gt_itab[].
sort gt_itab1 by kunnr vkorg vtweg.
sort gt_itab by kunnr vkorg vtweg.
delete ADJACENT DUPLICATES FROM gt_itab1 COMPARING kunnr vkorg vtweg.
perform open_group.
loop at gt_itab1 into gs_itab1.
perform bdc_dynpro using 'SAPMV10A' '0100'.
perform bdc_field using 'BDC_CURSOR'
'MV10A-VTWEG'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'MV10A-KUNNR'
gs_itab1-kunnr. "'5000000002'.
perform bdc_field using 'MV10A-VKORG'
gs_itab1-vkorg. "'1024'.
perform bdc_field using 'MV10A-VTWEG'
gs_itab1-vtweg. "'24'.
perform bdc_dynpro using 'SAPMV10A' '0200'.
perform bdc_field using 'BDC_CURSOR'
'MV10A-MATNR(01)'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
clear : GV_SNO.
loop at gt_itab into gs_itab WHERE kunnr = gs_itab1-kunnr
and vkorg = gs_itab1-vkorg
and vtweg = gs_itab1-vtweg.
gv_sno = gv_sno + 01.
clear : gv_fname.
CONCATENATE 'MV10A-MATNR(' gv_sno ')' into gv_fname.
perform bdc_field using gv_fname "'MV10A-MATNR(01)'
gs_itab-matnr. "'11000004'.
clear : gv_fname.
CONCATENATE 'MV10A-KDMAT(' gv_sno ')' into gv_fname.
perform bdc_field using gv_fname "'MV10A-KDMAT(01)'
gs_itab-CUST_MATNR.
clear : gs_itab.
endloop.
*perform bdc_field using 'MV10A-MATNR(01)'
* '11000004'.
*perform bdc_field using 'MV10A-MATNR(02)'
* '11000002'.
*perform bdc_field using 'MV10A-MATNR(03)'
* '11001657'.
*perform bdc_field using 'MV10A-KDMAT(01)'
* 'SAND CRUSH'.
*perform bdc_field using 'MV10A-KDMAT(02)'
* 'CEMENT'.
*perform bdc_field using 'MV10A-KDMAT(03)'
* 'BRASS'.
perform bdc_dynpro using 'SAPMV10A' '0200'.
perform bdc_field using 'BDC_CURSOR'
'MV10A-MATNR(01)'.
perform bdc_field using 'BDC_OKCODE'
'=SICH'.
perform bdc_transaction using 'VD51'.
clear : gs_itab1.
endloop.
perform close_group.
no standard page heading line-size 255.
include bdcrecx1.
types : begin of tp_itab,
kunnr(10),
vkorg(4),
vtweg(2),
matnr(18),
cust_matnr(20),
end of tp_itab.
data : gt_itab type STANDARD TABLE OF tp_itab,
gs_itab type tp_itab,
gt_itab1 type STANDARD TABLE OF tp_itab,
gs_itab1 type tp_itab.
data : gv_file type string,
gv_sno(2) type n,
gv_fname(60).
SELECTION-SCREEN skip.
PARAMETERS : P_FILE TYPE IBIPPARMS-PATH OBLIGATORY.
SELECTION-SCREEN SKIP.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
CALL FUNCTION 'F4_FILENAME'
* EXPORTING
* PROGRAM_NAME = SYST-CPROG
* DYNPRO_NUMBER = SYST-DYNNR
* FIELD_NAME = ' '
IMPORTING
FILE_NAME = P_FILE.
start-of-selection.
clear : gv_file, gt_itab[].
gv_file = p_file.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = GV_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 = gt_itab
* 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 = 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.
* Implement suitable error handling here
ENDIF.
gt_itab1[] = gt_itab[].
sort gt_itab1 by kunnr vkorg vtweg.
sort gt_itab by kunnr vkorg vtweg.
delete ADJACENT DUPLICATES FROM gt_itab1 COMPARING kunnr vkorg vtweg.
perform open_group.
loop at gt_itab1 into gs_itab1.
perform bdc_dynpro using 'SAPMV10A' '0100'.
perform bdc_field using 'BDC_CURSOR'
'MV10A-VTWEG'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'MV10A-KUNNR'
gs_itab1-kunnr. "'5000000002'.
perform bdc_field using 'MV10A-VKORG'
gs_itab1-vkorg. "'1024'.
perform bdc_field using 'MV10A-VTWEG'
gs_itab1-vtweg. "'24'.
perform bdc_dynpro using 'SAPMV10A' '0200'.
perform bdc_field using 'BDC_CURSOR'
'MV10A-MATNR(01)'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
clear : GV_SNO.
loop at gt_itab into gs_itab WHERE kunnr = gs_itab1-kunnr
and vkorg = gs_itab1-vkorg
and vtweg = gs_itab1-vtweg.
gv_sno = gv_sno + 01.
clear : gv_fname.
CONCATENATE 'MV10A-MATNR(' gv_sno ')' into gv_fname.
perform bdc_field using gv_fname "'MV10A-MATNR(01)'
gs_itab-matnr. "'11000004'.
clear : gv_fname.
CONCATENATE 'MV10A-KDMAT(' gv_sno ')' into gv_fname.
perform bdc_field using gv_fname "'MV10A-KDMAT(01)'
gs_itab-CUST_MATNR.
clear : gs_itab.
endloop.
*perform bdc_field using 'MV10A-MATNR(01)'
* '11000004'.
*perform bdc_field using 'MV10A-MATNR(02)'
* '11000002'.
*perform bdc_field using 'MV10A-MATNR(03)'
* '11001657'.
*perform bdc_field using 'MV10A-KDMAT(01)'
* 'SAND CRUSH'.
*perform bdc_field using 'MV10A-KDMAT(02)'
* 'CEMENT'.
*perform bdc_field using 'MV10A-KDMAT(03)'
* 'BRASS'.
perform bdc_dynpro using 'SAPMV10A' '0200'.
perform bdc_field using 'BDC_CURSOR'
'MV10A-MATNR(01)'.
perform bdc_field using 'BDC_OKCODE'
'=SICH'.
perform bdc_transaction using 'VD51'.
clear : gs_itab1.
endloop.
perform close_group.
2 Comments
Thanks a lot .......unforgettable work
ReplyDeletework sucesssfully
ReplyDelete