‎2008 Mar 24 7:37 AM
Hi Freinds,
When i compile this program i am getting the error ? what is the problem in the below code ? can any solve this problem ?
My code is
&----
*& Report ZOOPS_vij *
*& *
&----
*& *
*& *
&----
REPORT zoops_vij .
----
CLASS sales DEFINITION
----
*
----
CLASS sales DEFINITION.
PUBLIC SECTION.
TYPES: BEGIN OF t_sales,
vbeln TYPE vbak-vbeln,
ernam TYPE vbak-ernam,
erdat TYPE vbak-erdat,
netwr TYPE vbak-netwr,
spart TYPE vbak-spart,
END OF t_sales.
DATA : wa_sales TYPE t_sales,
itab_sales TYPE STANDARD TABLE OF t_sales.
METHODS : get_data IMPORTING v_vbeln TYPE vbak-vbeln,
disp_data.
ENDCLASS. "spfli DEFINITION
----
CLASS sales IMPLEMENTATION
----
*
----
CLASS sales IMPLEMENTATION.
METHOD get_data.
SELECT vbeln ernam erdat netwr spart FROM vbak INTO TABLE itab_sales WHERE vbeln IN v_vbeln.
ENDMETHOD. "get_spfli
METHOD disp_data.
LOOP AT itab_sales INTO wa_sales.
WRITE : / wa_sales-vbeln, wa_sales-ernam, wa_sales-erdat,
wa_sales-netwr, wa_sales-spart.
ENDLOOP.
ENDMETHOD. "get_spfli
ENDCLASS. "spfli IMPLEMENTATION
TABLES : vbak.
DATA : sales_obj TYPE REF TO sales.
SELECT-OPTIONS : s_vbeln FOR vbak-vbeln.
START-OF-SELECTION.
CREATE OBJECT sales_obj.
CALL METHOD sales_obj->get_data
EXPORTING
v_vbeln = s_vbeln.
CALL METHOD sales_obj->disp_data.
‎2008 Mar 24 8:32 AM
Hi Vijaya,
Please change the select option to parameter as in the definition of method get_data IMPORTING v_vbeln TYPE vbak-vbeln, you are passing v_vbeln as a single value. If u want to pass a select option then u have to pass a table type like structure of a select option.
Please see the modified code..
REPORT zoops_vij .
TABLES : vbak.
PARAMETERS : s_vbeln LIKE vbak-vbeln.
*----
CLASS sales DEFINITION deferred.
*----
*----
CLASS sales DEFINITION.
PUBLIC SECTION.
TYPES: BEGIN OF t_sales,
vbeln TYPE vbak-vbeln,
ernam TYPE vbak-ernam,
erdat TYPE vbak-erdat,
netwr TYPE vbak-netwr,
spart TYPE vbak-spart,
END OF t_sales.
DATA : wa_sales TYPE t_sales,
itab_sales TYPE STANDARD TABLE OF t_sales.
METHODS : get_data IMPORTING s_vbeln like s_vbeln,
disp_data.
ENDCLASS. "spfli DEFINITION
*----
*CLASS sales IMPLEMENTATION
*----
*
*----
CLASS sales IMPLEMENTATION.
METHOD get_data.
SELECT vbeln ernam erdat netwr spart
FROM vbak
INTO TABLE itab_sales
WHERE vbeln eq s_vbeln.
ENDMETHOD. "get_spfli
METHOD disp_data.
LOOP AT itab_sales INTO wa_sales.
WRITE : / wa_sales-vbeln, wa_sales-ernam, wa_sales-erdat,
wa_sales-netwr, wa_sales-spart.
ENDLOOP.
ENDMETHOD. "get_spfli
ENDCLASS. "spfli IMPLEMENTATION
DATA : sales_obj TYPE REF TO sales.
START-OF-SELECTION.
CREATE OBJECT sales_obj.
CALL METHOD sales_obj->get_data
EXPORTING
s_vbeln = s_vbeln.
CALL METHOD sales_obj->disp_data.
Hope this solves ur problem.
‎2008 Mar 24 8:53 AM
Hi Vijaya,
I have noted some mistake .
1) METHODS : get_data IMPORTING v_vbeln TYPE vbak-vbeln,
disp_data.
-
Here get_data method import variable (V_VBELN)
CALL METHOD sales_obj->get_data
EXPORTING
v_vbeln = s_vbeln.
-
Here exporting V_VBELN = S_VBELN.
how it possible one variable can not store ranges value (Multiple value ). thats why problem occur.
If helpful give me rewards
Thanks
Shambhu
‎2008 Mar 24 11:06 AM
Your modified code is shown below
CLASS sales DEFINITION.
PUBLIC SECTION.
TYPES: BEGIN OF t_sales,
vbeln TYPE vbak-vbeln,
ernam TYPE vbak-ernam,
erdat TYPE vbak-erdat,
netwr TYPE vbak-netwr,
spart TYPE vbak-spart,
END OF t_sales.
DATA : wa_sales TYPE t_sales,
itab_sales TYPE STANDARD TABLE OF t_sales.
METHODS : get_data IMPORTING v_vbeln TYPE vbak-vbeln,
disp_data.
ENDCLASS. "spfli DEFINITION
*----------------------------------------------------------------------*
* CLASS sales IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS sales IMPLEMENTATION.
METHOD get_data.
SELECT vbeln ernam erdat netwr spart FROM vbak INTO *TABLE itab_sales WHERE vbeln = v_vbeln.* ENDMETHOD. "get_spfli
METHOD disp_data.
LOOP AT itab_sales INTO wa_sales.
WRITE : / wa_sales-vbeln, wa_sales-ernam, wa_sales-erdat,
wa_sales-netwr, wa_sales-spart.
ENDLOOP.
ENDMETHOD. "get_spfli
ENDCLASS. "spfli IMPLEMENTATION
TABLES : vbak.
DATA : sales_obj TYPE REF TO sales.
*PARAMETER : s_vbeln LIKE vbak-vbeln.*
START-OF-SELECTION.
CREATE OBJECT sales_obj.
CALL METHOD sales_obj->get_data
EXPORTING
v_vbeln = s_vbeln.
CALL METHOD sales_obj->disp_data.
‎2008 Mar 24 1:07 PM
Hi,
Please find the code below. You modify like this and check. please reward points if helpful.
TABLES : vbak.
SELECT-OPTIONS : s_vbeln FOR vbak-vbeln.
*----
*CLASS sales DEFINITION .
*----
*
*----
CLASS sales DEFINITION.
PUBLIC SECTION.
TYPES: BEGIN OF t_sales,
vbeln TYPE vbak-vbeln,
ernam TYPE vbak-ernam,
erdat TYPE vbak-erdat,
netwr TYPE vbak-netwr,
spart TYPE vbak-spart,
END OF t_sales.
CLASS-DATA:it_tab1 TYPE TABLE OF dsvasattrrange.
DATA : wa_sales TYPE t_sales,
itab_sales TYPE STANDARD TABLE OF t_sales.
CLASS-METHODS:class_constructor.
METHODS : get_data,
disp_data.
ENDCLASS. "spfli DEFINITION
*----
*CLASS sales IMPLEMENTATION
*----
*
*----
CLASS sales IMPLEMENTATION.
METHOD class_constructor.
DATA:wa_vbeln TYPE dsvasattrrange.
LOOP AT s_vbeln INTO wa_vbeln.
APPEND s_vbeln TO it_tab1.
ENDLOOP.
ENDMETHOD. "class_construtor
METHOD get_data.
SELECT vbeln ernam erdat netwr spart FROM vbak INTO TABLE itab_sales WHERE vbeln IN it_tab1.
ENDMETHOD. "get_spfli
METHOD disp_data.
LOOP AT itab_sales INTO wa_sales.
WRITE : / wa_sales-vbeln, wa_sales-ernam, wa_sales-erdat,
wa_sales-netwr, wa_sales-spart.
ENDLOOP.
ENDMETHOD. "get_spfli
ENDCLASS. "spfli IMPLEMENTATION
*
*TABLES : vbak.
DATA : sales_obj TYPE REF TO sales,
ref_vbeln TYPE REF TO data.
START-OF-SELECTION.
CREATE OBJECT sales_obj.
GET REFERENCE OF s_vbeln INTO ref_vbeln.
CALL METHOD sales_obj->get_data.
CALL METHOD sales_obj->disp_data.