How do you Create a batch input program for transaction VA01.
The scenerio is
Input fields: Manditory fields to create a new Sales Order using VA01.
Hint: Take an existing Sales Order and use the master data which was previously used.
Conditions:
1)Upload the input data from a text file stored in your note pc.
2)Use call transaction method.
3)Your program should allow to input the file path and file name to select the data.
Here I'm attaching BDC Code for 'VA01'.
report ZBDC3_VA01
no standard page heading line-size 255.
include bdcrecx1.
types : begin of ty_head,
auart(4),
vkorg(4),
vtweg(2),
spart(2),
kunnr(10),
bstkd(10),
end of ty_head.
types: begin of ty_item,
matnr(18) type c,
kwmeng(13) type c,
end of ty_item.
data: it_head type table of ty_head. " Header
data: wa_head like line of it_head.
data: it_item type table of ty_item. " Item
data: wa_item like line of it_item.
data:v_kwmeng(30) type c,
v_mabnr(30) type c.
DATA: VAL(2) TYPE N VALUE 01.
DATA : w_file2 TYPE string,
w_file1 TYPE string.
PARAMETERS: filename LIKE rlgrap-filename.
PARAMETERS: filenam1 LIKE rlgrap-filename.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR filename.
CALL FUNCTION 'F4_FILENAME'
IMPORTING
file_name = filename.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR filenam1.
CALL FUNCTION 'F4_FILENAME'
IMPORTING
file_name = filenam1.
START-OF-SELECTION.
w_file2 = filename.
w_file1 = filenam1.
*************** HEADER ************************
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = w_file2
filetype = 'ASC'
has_field_separator = 'X'
TABLES
data_tab = it_head.
*************** Item *******************
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = w_file1
filetype = 'ASC'
has_field_separator = 'X'
TABLES
data_tab = it_item.
perform open_group.
loop at it_head into wa_head.
.
perform bdc_dynpro using 'SAPMV45A' '0101'.
perform bdc_field using 'BDC_CURSOR'
'VBAK-AUART'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'VBAK-AUART'
WA_HEAD-AUART.
perform bdc_field using 'VBAK-VKORG'
WA_HEAD-VKORG.
perform bdc_field using 'VBAK-VTWEG'
WA_HEAD-VTWEG.
perform bdc_field using 'VBAK-SPART'
WA_HEAD-SPART.
perform bdc_dynpro using 'SAPMV45A' '4001'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'VBKD-BSTKD'
WA_HEAD-BSTKD.
perform bdc_field using 'VBKD-BSTDK'
'30.01.2006'.
perform bdc_field using 'KUAGV-KUNNR'
WA_HEAD-KUNNR.
perform bdc_field using 'RV45A-KETDAT'
'30.01.2006'.
perform bdc_field using 'RV45A-KPRGBZ'
'D'.
perform bdc_field using 'VBKD-ZTERM'
'0001'.
perform bdc_field using 'VBKD-INCO1'
'CIF'.
perform bdc_field using 'VBKD-INCO2'
'COST INSUSRABCE FRIEGHT'.
loop at it_item into wa_item .
CONCATENATE 'RV45A-MABNR(' '0' VAL ')' INTO v_MABNR. CONCATENATE 'RV45A-KWMENG(' '0' VAL ')' INTO v_kwmeng.
perform bdc_field using 'BDC_CURSOR'
v_kwmeng.
perform bdc_field using v_mabnr
wa_item-matnr.
perform bdc_field using v_kwmeng
wa_item-kwmeng.
perform bdc_dynpro using 'SAPMV45A' '4001'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
VAL = VAL + 1.
IF VAL > 5.
VAL = 5.
ENDIF.
endloop.
VAL = 01.
perform bdc_dynpro using 'SAPMV45A' '4001'.
perform bdc_field using 'BDC_OKCODE'
'=SICH'.
perform bdc_transaction using 'VA01'.
endloop.
perform close_group.
No comments:
Post a Comment