2009 Aug 02 2:03 PM
.
Problem : "WA_FI01-BANKS" is not type-compatible with formal parameter "IM_FVAL". In place of this if I directly specify the <br>value like u20181001u2019, it is accepting. So could you tell me where i went wrong.
<pre>REPORT ZBDC_FI01_OOABAP .
types : begin of ty_fi01,
banks like bnka-banks,
bankl like bnka-bankl,
banka like bnka-banka,
end of ty_fi01.
data : wa_fi01 type ty_fi01.
data : it_fi01 like table of wa_fi01.
data: wa_bdcdata like bdcdata,
it_bdcdata like table of wa_bdcdata.
start-of-selection.
data : o_bdc_session type ref to ZGCL_BDC_FI01_INHERIT.
create object o_bdc_session.
uploading data from flat file to internal table
CALL METHOD O_BDC_SESSION->UPLOAD_FILE_DATA
EXPORTING
IM_FILE = 'd:/fi01.txt'
IM_SEP = 'X'
IMPORTING
IT_fi01 = it_fi01.
bdc open group
CALL METHOD O_BDC_SESSION->OPEN_SESSION
EXPORTING
IM_CLIENT = sy-mandt
IM_GROUP = 'zcrk_fi01'
IM_KEEP = 'X'
IM_USER = sy-uname.
bdc RECORD CREATION screen by screen with field values
loop at it_fi01 into wa_fi01.
refresh it_bdcdata.
calling first screen
CALL METHOD O_BDC_SESSION->FILL_SCREEN_DETAILS
EXPORTING
IM_PROGRAM = 'SAPMF02B'
IM_DYNPRO = '0100'
IM_DYNBEGIN = 'X'
IMPORTING
IT_PROCEDURE = it_bdcdata.
inserting first screen fields
CALL METHOD O_BDC_SESSION->FILL_FIELD_DETAILS
EXPORTING
IM_FNAM = 'BNKA-BANKL'
IM_FVAL = wa_fi01-banks
IMPORTING
IT_PROCEDURE = it_bdcdata.
CALL METHOD O_BDC_SESSION->FILL_FIELD_DETAILS
EXPORTING
IM_FNAM = 'BNKA-BANKL'
IM_FVAL = wa_fi01-bankl
IMPORTING
IT_PROCEDURE = it_bdcdata.
CALL METHOD O_BDC_SESSION->FILL_FIELD_DETAILS
EXPORTING
IM_FNAM = 'BDC_OKCODE'
IM_FVAL = '/00'
IMPORTING
IT_PROCEDURE = it_bdcdata.
calling second screen
CALL METHOD O_BDC_SESSION->FILL_SCREEN_DETAILS
EXPORTING
IM_PROGRAM = 'SAPMF02B'
IM_DYNPRO = '0110'
IM_DYNBEGIN = 'X'
IMPORTING
IT_PROCEDURE = it_bdcdata.
FILLING SECOND SCREEN FIELDS INFORMATION
CALL METHOD O_BDC_SESSION->FILL_FIELD_DETAILS
EXPORTING
IM_FNAM = 'BNKA-BANKA'
IM_FVAL = wa_fi01-banka
IMPORTING
IT_PROCEDURE = it_bdcdata.
CALL METHOD O_BDC_SESSION->FILL_FIELD_DETAILS
EXPORTING
IM_FNAM = 'BDC_OKCODE'
IM_FVAL = '=UPDA' " save record
IMPORTING
IT_PROCEDURE = it_bdcdata.
inserting recorded record into fi01
CALL METHOD O_BDC_SESSION->INSERT_SESSION
EXPORTING
IM_TCODE = 'FI01'
CHANGING
IM_DYNPROTAB = it_bdcdata.
endloop.
now closing bdc session
CALL METHOD O_BDC_SESSION->CLOSE_SESSION<pre>
<br><br>Edited by: Matt on Aug 3, 2009 10:34 AM - fixed formatting.
2009 Aug 03 7:59 AM
.
Problem : "WA_FI01-BANKS" is not type-compatible with formal parameter "IM_FVAL". In place of this if I directly specify the <br>value like u20181001u2019, it is accepting. So could you tell me where i went wrong.
<pre>REPORT ZBDC_FI01_OOABAP .
types : begin of ty_fi01,
banks like bnka-banks,
bankl like bnka-bankl,
banka like bnka-banka,
end of ty_fi01.
data : wa_fi01 type ty_fi01.
data : it_fi01 like table of wa_fi01.
data: wa_bdcdata like bdcdata,
it_bdcdata like table of wa_bdcdata.
start-of-selection.
data : o_bdc_session type ref to ZGCL_BDC_FI01_INHERIT.
create object o_bdc_session.
uploading data from flat file to internal table
CALL METHOD O_BDC_SESSION->UPLOAD_FILE_DATA
EXPORTING
IM_FILE = 'd:/fi01.txt'
IM_SEP = 'X'
IMPORTING
IT_fi01 = it_fi01.
bdc open group
CALL METHOD O_BDC_SESSION->OPEN_SESSION
EXPORTING
IM_CLIENT = sy-mandt
IM_GROUP = 'zcrk_fi01'
IM_KEEP = 'X'
IM_USER = sy-uname.
bdc RECORD CREATION screen by screen with field values
loop at it_fi01 into wa_fi01.
refresh it_bdcdata.
calling first screen
CALL METHOD O_BDC_SESSION->FILL_SCREEN_DETAILS
EXPORTING
IM_PROGRAM = 'SAPMF02B'
IM_DYNPRO = '0100'
IM_DYNBEGIN = 'X'
IMPORTING
IT_PROCEDURE = it_bdcdata.
inserting first screen fields
CALL METHOD O_BDC_SESSION->FILL_FIELD_DETAILS
EXPORTING
IM_FNAM = 'BNKA-BANKL'
IM_FVAL = wa_fi01-banks
IMPORTING
IT_PROCEDURE = it_bdcdata.
CALL METHOD O_BDC_SESSION->FILL_FIELD_DETAILS
EXPORTING
IM_FNAM = 'BNKA-BANKL'
IM_FVAL = wa_fi01-bankl
IMPORTING
IT_PROCEDURE = it_bdcdata.
CALL METHOD O_BDC_SESSION->FILL_FIELD_DETAILS
EXPORTING
IM_FNAM = 'BDC_OKCODE'
IM_FVAL = '/00'
IMPORTING
IT_PROCEDURE = it_bdcdata.
calling second screen
CALL METHOD O_BDC_SESSION->FILL_SCREEN_DETAILS
EXPORTING
IM_PROGRAM = 'SAPMF02B'
IM_DYNPRO = '0110'
IM_DYNBEGIN = 'X'
IMPORTING
IT_PROCEDURE = it_bdcdata.
FILLING SECOND SCREEN FIELDS INFORMATION
CALL METHOD O_BDC_SESSION->FILL_FIELD_DETAILS
EXPORTING
IM_FNAM = 'BNKA-BANKA'
IM_FVAL = wa_fi01-banka
IMPORTING
IT_PROCEDURE = it_bdcdata.
CALL METHOD O_BDC_SESSION->FILL_FIELD_DETAILS
EXPORTING
IM_FNAM = 'BDC_OKCODE'
IM_FVAL = '=UPDA' " save record
IMPORTING
IT_PROCEDURE = it_bdcdata.
inserting recorded record into fi01
CALL METHOD O_BDC_SESSION->INSERT_SESSION
EXPORTING
IM_TCODE = 'FI01'
CHANGING
IM_DYNPROTAB = it_bdcdata.
endloop.
now closing bdc session
CALL METHOD O_BDC_SESSION->CLOSE_SESSION<pre>
<br><br>Edited by: Matt on Aug 3, 2009 10:34 AM - fixed formatting.
2009 Aug 03 7:59 AM
2009 Aug 03 9:42 AM
Please post in the correct forum. This is an objects question - it's only indirectly related to data transfer. I've moved it for you
Please use a more meaningful subject in future posts
Please note - there is a 2500 character limit on posts. Only post the RELEVANT part of your code In this case, the relevant parts are:
types : begin of ty_fi01,
banks like bnka-banks,
bankl like bnka-bankl,
banka like bnka-banka,
end of ty_fi01.
...
data : o_bdc_session type ref to ZGCL_BDC_FI01_INHERIT.
...
*** inserting first screen fields
CALL METHOD O_BDC_SESSION->FILL_FIELD_DETAILS
EXPORTING
IM_FNAM = 'BNKA-BANKL'
IM_FVAL = wa_fi01-banks
IMPORTING
IT_PROCEDURE = it_bdcdata.Now, to solve your problem. It means exactly what it says. Look at the method definition of FILL_FIELD_DETAILS in the class ZGCL_BDC_FI01_INHERIT. Look at the type of the parameter IM_FVAL. You need to define banks in your structure ty_fi01 to be the same type.
It may be appropriate to change the method definition. But I'd use type CLIKE rather than ANY. The tighter the typing, the safer the program. Using ANY indiscriminately is BAD programming practice.
matt
Edited by: Matt on Aug 3, 2009 10:42 AM