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

Objects not created after the AT USER-COMMAND

Former Member
0 Likes
452

Hi experts, gud evening. I'm new to ooabap. in my prog. after the at user-command the objects are not getting created. so i've created even before that. even then i couldn't get that created. so pls help me where the prob. is

Prog :

REPORT yrj_my_oops.

----


  • CLASS cl_vbak DEFINITION

----


*

----


CLASS cl_vbak DEFINITION.

PUBLIC SECTION.

METHODS : load_data IMPORTING value(im_kunnr) TYPE vbak-kunnr,

display_head,

write_data.

PROTECTED SECTION.

PRIVATE SECTION.

DATA : it_vbak TYPE TABLE OF vbak,

wa_vbak TYPE vbak.

ENDCLASS. "cl_vbak DEFINITION

DATA : w_vbeln TYPE vbak-vbeln.

----


  • CLASS cl_vbap DEFINITION

----


*

----


CLASS cl_vbap DEFINITION.

PUBLIC SECTION.

METHODS : load_data IMPORTING value(im_vbeln) TYPE vbak-vbeln,

write_data.

PROTECTED SECTION.

PRIVATE SECTION.

DATA : it_vbap TYPE TABLE OF vbap,

wa_vbap TYPE vbap.

ENDCLASS. "cl_vbap DEFINITION

----


  • CLASS cl_vbap IMPLEMENTATION

----


*

----


CLASS cl_vbap IMPLEMENTATION.

METHOD load_data.

SELECT * FROM vbap INTO TABLE it_vbap WHERE vbeln = w_vbeln.

ENDMETHOD. "load_data

METHOD write_data.

LOOP AT it_vbap INTO wa_vbap.

WRITE : /5 wa_vbap-posnr,

20 wa_vbap-matnr,

35 wa_vbap-arktx,

70 wa_vbap-netpr.

ENDLOOP.

ENDMETHOD. "write_data

ENDCLASS. "cl_vbap IMPLEMENTATION

----


  • CLASS cl_vbak IMPLEMENTATION

----


*

----


CLASS cl_vbak IMPLEMENTATION.

METHOD load_data.

SELECT * FROM vbak INTO TABLE it_vbak WHERE kunnr EQ im_kunnr.

ENDMETHOD. "load_data

METHOD display_head.

WRITE : /5 'Order No.',

15 'Order Date',

30 'Net Value'.

ENDMETHOD. "display_head

METHOD write_data.

LOOP AT it_vbak INTO wa_vbak.

WRITE : /5 wa_vbak-vbeln,

15 wa_vbak-audat,

30 wa_vbak-netwr.

ENDLOOP.

ENDMETHOD. "write_data

ENDCLASS. "cl_vbak IMPLEMENTATION

PARAMETERS : p_kunnr TYPE vbak-kunnr.

DATA : o_vbak TYPE REF TO cl_vbak,

o_vbap TYPE REF TO cl_vbap.

START-OF-SELECTION.

SET PF-STATUS : 'YRJ_MY_OOPS'.

CREATE OBJECT o_vbak.

CREATE OBJECT o_vbap.

CALL METHOD o_vbak->load_data

EXPORTING

im_kunnr = p_kunnr.

CALL METHOD o_vbak->display_head.

CALL METHOD o_vbak->write_data.

AT USER-COMMAND.

w_vbeln = sy-lisel+4(10).

CASE sy-ucomm.

WHEN 'BACK' or 'EXIT'.

LEAVE LIST-PROCESSING.

WHEN 'ITEM'.

  • CREATE OBJECT o_vbap.

CALL METHOD o_vbap->load_data

EXPORTING

im_vbeln = w_vbeln.

CALL METHOD o_vbap->write_data.

  • WHEN OTHERS.

ENDCASE.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
408

Hi,

I dont see any problem with you code. I ran your code in my system and worked fine. Except for one thing that is you need to do a conversion exit on the w_vbeln before selecting data from VBAP in method load data. This is because when you ouput the data, the VBELN is converted to external format and thus needs to be converted to internal format if you want to do further selects based on it.


CLASS cl_vbap IMPLEMENTATION.
  METHOD load_data.

" Add this , so it converts the VBELN to internal format. 
    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
      EXPORTING
        input  = w_vbeln
      IMPORTING
        output = w_vbeln.

    SELECT * FROM vbap INTO TABLE it_vbap WHERE vbeln = w_vbeln.
  ENDMETHOD. "load_data
  METHOD write_data.
    LOOP AT it_vbap INTO wa_vbap.

      WRITE : /5 wa_vbap-posnr,
      20 wa_vbap-matnr,
      35 wa_vbap-arktx,
      70 wa_vbap-netpr.

    ENDLOOP.

  ENDMETHOD. "write_data

regards,

Advait

3 REPLIES 3
Read only

Former Member
0 Likes
408

(Post deleted)

Edited by: Thorsten Franz on Nov 22, 2008 10:21 AM

--- Whoops, sorry, gave a wrong information ---

Read only

Former Member
0 Likes
408

HI Vaddepati,

To best of my knowledge we can create the objects only in START-OF-SELECTION.

try it out.

Regards

Ramchander Rao.K

Read only

Former Member
0 Likes
409

Hi,

I dont see any problem with you code. I ran your code in my system and worked fine. Except for one thing that is you need to do a conversion exit on the w_vbeln before selecting data from VBAP in method load data. This is because when you ouput the data, the VBELN is converted to external format and thus needs to be converted to internal format if you want to do further selects based on it.


CLASS cl_vbap IMPLEMENTATION.
  METHOD load_data.

" Add this , so it converts the VBELN to internal format. 
    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
      EXPORTING
        input  = w_vbeln
      IMPORTING
        output = w_vbeln.

    SELECT * FROM vbap INTO TABLE it_vbap WHERE vbeln = w_vbeln.
  ENDMETHOD. "load_data
  METHOD write_data.
    LOOP AT it_vbap INTO wa_vbap.

      WRITE : /5 wa_vbap-posnr,
      20 wa_vbap-matnr,
      35 wa_vbap-arktx,
      70 wa_vbap-netpr.

    ENDLOOP.

  ENDMETHOD. "write_data

regards,

Advait