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

Type compatible error

Former Member
0 Likes
1,632

Hi All,

When i am trying to assign an exprorting parameter via an instance method i am getting the error "USR_NM IS NOT TYPE COMPATIBLE WITH FORMAL PARAMETER WA_USRNM".

START-OF-SELECTION.

*selection screen

SELECTION-SCREEN BEGIN OF BLOCK b1.

SELECT-OPTIONS : usr_nm FOR cl_details=>wa_details-bname MATCHCODE OBJECT user_comp.

SELECTION-SCREEN END OF BLOCK b1.

DATA : obj_ref TYPE REF TO cl_details.

  • FIELD-SYMBOLS : <fs> TYPE LINE OF wa_details.

CREATE OBJECT obj_ref.

obj_ref->get_details( usr_nm ).

END-OF-SELECTION.

CLASS cl_details DEFINITION.

PUBLIC SECTION.

CLASS-DATA : BEGIN OF wa_details, " types

bname TYPE xubname, " user ID

name_textc TYPE user_addr-name_textc, " user name

agr_name TYPE agr_users-agr_name, " Role's

END OF wa_details.

*internal table declarations

DATA : itab_details LIKE TABLE OF wa_details,

: itab_roles LIKE TABLE OF wa_details,

: itab_actygrps TYPE TABLE OF bapiagr,

: itab_return TYPE TABLE OF bapiret2.

*work area declartions

DATA : wa_detls LIKE wa_details,

: wa_roles LIKE wa_details,

: wa_actygrps LIKE wa_details,

: wa_return LIKE wa_details,

: bname TYPE xubname.

METHODS get_details IMPORTING wa_usrnm LIKE bname." string.

ENDCLASS. "details DEFINITION

CLASS cl_details IMPLEMENTATION.

METHOD get_details.

SELECT bname name_textc FROM user_addr INTO TABLE itab_details

WHERE bname IN ('LB'). "(usr_nm).

ENDMETHOD.

when i am using the USR_NM in the select statement it is giving an error. So, please advice

1 ACCEPTED SOLUTION
Read only

Pawan_Kesari
Active Contributor
0 Likes
1,195
*----------------------------------------------------------------------*
*       CLASS cl_details DEFINITION
*----------------------------------------------------------------------*
CLASS cl_details DEFINITION.
  PUBLIC SECTION.
    CLASS-DATA :
      BEGIN OF wa_details, " types
        bname TYPE xubname, " user ID
        name_textc TYPE user_addr-name_textc, " user name
        agr_name TYPE agr_users-agr_name, " Role's
      END OF wa_details.

    TYPES : tr_bname TYPE RANGE OF bname ,
            t_bname  TYPE LINE OF tr_bname.

*   internal table declarations
    DATA : itab_details LIKE TABLE OF wa_details,
           itab_roles LIKE TABLE OF wa_details,
           itab_actygrps TYPE TABLE OF bapiagr,
           itab_return TYPE TABLE OF bapiret2.

*   work area declartions
    DATA : wa_detls LIKE wa_details,
           wa_roles LIKE wa_details,
           wa_actygrps LIKE wa_details,
           wa_return LIKE wa_details,
           bname TYPE xubname.

    METHODS get_details IMPORTING wa_usrnm TYPE tr_bname." string.

ENDCLASS. "details DEFINITION

*----------------------------------------------------------------------*
*       CLASS cl_details IMPLEMENTATION
*----------------------------------------------------------------------*
CLASS cl_details IMPLEMENTATION.
  METHOD get_details.

    SELECT bname name_textc FROM user_addr INTO TABLE itab_details
    WHERE bname IN wa_usrnm .
  ENDMETHOD.                    "get_details
ENDCLASS.                    "cl_details IMPLEMENTATION

SELECTION-SCREEN BEGIN OF BLOCK b1.
SELECT-OPTIONS : usr_nm FOR cl_details=>wa_details-bname MATCHCODE OBJECT user_comp.
SELECTION-SCREEN END OF BLOCK b1.

DATA : obj_ref TYPE REF TO cl_details ,
       usrtmp  TYPE cl_details=>tr_bname ,
       usrwa   TYPE cl_details=>t_bname  .

START-OF-SELECTION .

  CREATE OBJECT obj_ref.

  LOOP AT usr_nm INTO usrwa .
    APPEND usrwa TO usrtmp .
  ENDLOOP.

  obj_ref->get_details( EXPORTING wa_usrnm = usrtmp ).
4 REPLIES 4
Read only

Former Member
0 Likes
1,195

Hi,

SELECT bname name_textc FROM user_addr INTO TABLE itab_details

WHERE bname IN ('LB'). "(usr_nm).

In your select statement you are using IN (WHERE bname IN ('LB'). "(usr_nm).).

If you are using IN then usr_nm should be a range or select option. Instead you change your statment as :

SELECT bname name_textc FROM user_addr INTO TABLE itab_details

WHERE bname = usr_nm.

Hope this helps.

Regards,

Ramesh Kashigari.

Edited by: Ramesh Kashigari on Feb 22, 2010 2:50 PM

Read only

Pawan_Kesari
Active Contributor
0 Likes
1,196
*----------------------------------------------------------------------*
*       CLASS cl_details DEFINITION
*----------------------------------------------------------------------*
CLASS cl_details DEFINITION.
  PUBLIC SECTION.
    CLASS-DATA :
      BEGIN OF wa_details, " types
        bname TYPE xubname, " user ID
        name_textc TYPE user_addr-name_textc, " user name
        agr_name TYPE agr_users-agr_name, " Role's
      END OF wa_details.

    TYPES : tr_bname TYPE RANGE OF bname ,
            t_bname  TYPE LINE OF tr_bname.

*   internal table declarations
    DATA : itab_details LIKE TABLE OF wa_details,
           itab_roles LIKE TABLE OF wa_details,
           itab_actygrps TYPE TABLE OF bapiagr,
           itab_return TYPE TABLE OF bapiret2.

*   work area declartions
    DATA : wa_detls LIKE wa_details,
           wa_roles LIKE wa_details,
           wa_actygrps LIKE wa_details,
           wa_return LIKE wa_details,
           bname TYPE xubname.

    METHODS get_details IMPORTING wa_usrnm TYPE tr_bname." string.

ENDCLASS. "details DEFINITION

*----------------------------------------------------------------------*
*       CLASS cl_details IMPLEMENTATION
*----------------------------------------------------------------------*
CLASS cl_details IMPLEMENTATION.
  METHOD get_details.

    SELECT bname name_textc FROM user_addr INTO TABLE itab_details
    WHERE bname IN wa_usrnm .
  ENDMETHOD.                    "get_details
ENDCLASS.                    "cl_details IMPLEMENTATION

SELECTION-SCREEN BEGIN OF BLOCK b1.
SELECT-OPTIONS : usr_nm FOR cl_details=>wa_details-bname MATCHCODE OBJECT user_comp.
SELECTION-SCREEN END OF BLOCK b1.

DATA : obj_ref TYPE REF TO cl_details ,
       usrtmp  TYPE cl_details=>tr_bname ,
       usrwa   TYPE cl_details=>t_bname  .

START-OF-SELECTION .

  CREATE OBJECT obj_ref.

  LOOP AT usr_nm INTO usrwa .
    APPEND usrwa TO usrtmp .
  ENDLOOP.

  obj_ref->get_details( EXPORTING wa_usrnm = usrtmp ).
Read only

Former Member
0 Likes
1,195

Hi Lokesh,

The first error that you are getting is because of the wrong data type declaration. If you look at your data declaration section, you will see that the

 usr_nm FOR cl_details=>wa_details-bname MATCHCODE OBJECT user_comp.usr_nm FOR cl_details=>wa_details-bname MATCHCODE OBJECT user_comp.

But in the method interface data declaration, the data type is different. So, have a look at the data declarations and check for the correct data type. This will resolve your problem.

For the second error, have a look again at the data declaration. As the Select statement expects an IN Statement for a Ranges or Select Options. The Data declaration seemed to be alright, but the data types may be different.

Hope this helps.

Thanks,

Samantak.

Read only

Former Member
0 Likes
1,195

Hi Lokesh,

Can you please update whether your problem is solved. If solved please mark the question as answered.

Regards,

Ramesh.