Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Regarding OOABAP BDC

Former Member
0 Likes
641

.

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.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
499

take this field type is IM_FVAL any

like IM_FVAL type any.

2 REPLIES 2
Read only

Former Member
0 Likes
500

take this field type is IM_FVAL any

like IM_FVAL type any.

Read only

matt
Active Contributor
0 Likes
499

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