‎2010 Feb 22 8:30 AM
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
‎2010 Feb 22 2:07 PM
*----------------------------------------------------------------------*
* 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 ).
‎2010 Feb 22 1:49 PM
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
‎2010 Feb 22 2:07 PM
*----------------------------------------------------------------------*
* 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 ).
‎2010 Feb 23 5:30 AM
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.
‎2010 Feb 23 9:56 AM
Hi Lokesh,
Can you please update whether your problem is solved. If solved please mark the question as answered.
Regards,
Ramesh.