‎2007 Apr 03 10:23 AM
Hi This is my BDC upload program. when i am uploading data then unit in measure comes in 'LITER' but i want that litre to be accesed as 'KILOLITER'. How I will do that. Any body could help me out of this. Where do I need to make changes to produce the desired output.
&----
*& Report ZMM_GI_FUEL
*&
&----
*&
*&
&----
REPORT zmm_gi_fuel.
PARAMETERS : p_file LIKE rlgrap-filename.
TYPES: BEGIN OF ty_data_format_gi,
flt_no TYPE char8,
tail TYPE char3,
text1 TYPE char3,
text2 TYPE char3,
date TYPE char10,
qty TYPE char13,
org TYPE char3,
des TYPE char3,
tech TYPE char6,
indicator TYPE char1,
END OF ty_data_format_gi.
DATA: it_data_gi TYPE TABLE OF ty_data_format_gi,
wa_data_gi LIKE LINE OF it_data_gi.
DATA: file TYPE string.
DATA: bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE.
messages of call transaction
DATA: messtab LIKE bdcmsgcoll OCCURS 0 WITH HEADER LINE.
INITIALIZATION.
START-OF-SELECTION.
file = p_file.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = file
has_field_separator = '#'
TABLES
data_tab = it_data_gi
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.
PERFORM make_gi.
&----
*& Form make_gi
&----
text
----
--> p1 text
<-- p2 text
----
FORM make_gi .
data: text(20).
LOOP AT it_data_gi INTO wa_data_gi.
clear text.
PERFORM bdc_dynpro USING 'SAPMM07M' '0400'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RM07M-LGORT'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'MKPF-BLDAT'
wa_data_gi-date.
"'02.12.2006'.
PERFORM bdc_field USING 'MKPF-BUDAT'
wa_data_gi-date.
"'02.12.2006'.
concatenate wa_data_gi-flt_no '-' wa_data_gi-tail '-' wa_data_gi-text1 '-' wa_data_gi-text2 into text.
PERFORM bdc_field USING 'MKPF-BKTXT'
text.
"wa_data_gi-tech.
"'201377'.
PERFORM bdc_field USING 'RM07M-BWARTWA'
'201'.
PERFORM bdc_field USING 'RM07M-WERKS'
'1000'.
PERFORM bdc_field USING 'RM07M-LGORT'
'1001'.
PERFORM bdc_field USING 'XFULL'
'X'.
PERFORM bdc_field USING 'RM07M-WVERS2'
'X'.
PERFORM bdc_dynpro USING 'SAPMM07M' '0421'.
PERFORM bdc_field USING 'BDC_CURSOR'
'MSEG-ERFME(01)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
IF wa_data_gi-indicator = 'Y'.
PERFORM bdc_field USING 'MSEG-MATNR(01)'
'200568'.
ELSE.
PERFORM bdc_field USING 'MSEG-MATNR(01)'
'200566'.
ENDIF.
PERFORM bdc_field USING 'MSEG-ERFMG(01)'
" '1.025'.
wa_data_gi-qty.
PERFORM bdc_field USING 'MSEG-ERFME(01)'
'L'.
PERFORM bdc_field USING 'DKACB-FMORE'
'X'.
PERFORM bdc_dynpro USING 'SAPLKACB' '0002'.
PERFORM bdc_field USING 'BDC_CURSOR'
'COBL-KOSTL'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=COBL_XERGO'.
PERFORM bdc_field USING 'COBL-KOSTL'
'10122'.
PERFORM bdc_dynpro USING 'SAPLKEAK' '0300'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RKEAK-FIELD(12)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=P+'.
PERFORM bdc_field USING 'RKEAK-FIELD(08)'
'1000'.
PERFORM bdc_field USING 'RKEAK-FIELD(09)'
'1000'.
PERFORM bdc_field USING 'RKEAK-FIELD(12)'
'KF'.
PERFORM bdc_dynpro USING 'SAPLKEAK' '0300'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RKEAK-FIELD(05)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=WEIT'.
PERFORM bdc_field USING 'RKEAK-FIELD(05)'
" 'CCU'.
wa_data_gi-org.
PERFORM bdc_field USING 'RKEAK-FIELD(02)'
"'DEL-CCU'.
wa_data_gi-tail.
PERFORM bdc_field USING 'RKEAK-FIELD(07)'
"'DEL'.
wa_data_gi-des.
PERFORM bdc_field USING 'RKEAK-FIELD(08)'
"'IT-601'.
wa_data_gi-flt_no.
PERFORM bdc_dynpro USING 'SAPLKACB' '0002'.
PERFORM bdc_field USING 'BDC_CURSOR'
'COBL-KOSTL'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTE'.
PERFORM bdc_field USING 'COBL-KOSTL'
'10122'.
PERFORM bdc_dynpro USING 'SAPLKACB' '0002'.
PERFORM bdc_field USING 'BDC_CURSOR'
'COBL-KOSTL'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTE'.
PERFORM bdc_field USING 'COBL-KOSTL'
'10122'.
PERFORM bdc_dynpro USING 'SAPMM07M' '0421'.
PERFORM bdc_field USING 'BDC_CURSOR'
'MSEG-ERFMG(01)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=BU'.
PERFORM bdc_field USING 'DKACB-FMORE'
'X'.
PERFORM bdc_dynpro USING 'SAPLKACB' '0002'.
PERFORM bdc_field USING 'BDC_CURSOR'
'COBL-KOSTL'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTE'.
CALL TRANSACTION 'MB1A' USING bdcdata MODE 'N' UPDATE 'S'.
REFRESH bdcdata.
"PERFORM bdc_transaction USING 'MB1A' using bdcdata.
ENDLOOP.
ENDFORM. " make_gi
----
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.
CLEAR bdcdata.
bdcdata-fnam = fnam.
bdcdata-fval = fval.
APPEND bdcdata.
ENDFORM. "bdc_field
‎2007 Apr 03 12:45 PM
hi abhay
i just replied to one of your same post.
kindly check there and close this thread.
Regards
Zarina