Friday, 25 May 2012

SQL Joins

OPP'S Examples programs

 
 When class implementation is done at the end of the program like
 forms of a performno need of start of selection
********   Begin of Program    one on OOP's*****************
----------------------------------------------------------------------*
       CLASS tax DEFINITION
----------------------------------------------------------------------*

----------------------------------------------------------------------*
CLASS tax DEFINITION.
  PUBLIC SECTION.
    DATA : salary TYPE p DECIMALS 2 VALUE '50000'.
    METHODS: calc_tax IMPORTING sal TYPE p
                      EXPORTING tax_amt TYPE p.


ENDCLASS.                    "tax DEFINITION


----------------------------------------------------------------------*
       CLASS tax IMPLEMENTATION
----------------------------------------------------------------------*

----------------------------------------------------------------------*
CLASS tax IMPLEMENTATION.

  METHOD calc_tax.

      sal = salary.
    tax_amt = sal / 10.

  ENDMETHOD.                    "calc_tax
ENDCLASS.                    "tax IMPLEMENTATION


START-OF-SELECTION.
  DATA : taxamt TYPE p.
  DATA : salary TYPE p VALUE '10025606511'.
  DATA: obj1 TYPE REF TO tax.
  CREATE OBJECT : obj1.

  CALL METHOD: obj1->calc_tax EXPORTING  sal = salary
                              IMPORTING tax_amt = taxamt.

  WRITE: / 'Tax amount is ', taxamt.


********  End of Program    one on OOP's*****************



 When class implementation is done at the end of the program like
 forms of a performno need of start of selection
********   Begin of Program    2 on OOP's*****************
----------------------------------------------------------------------*
       CLASS tax DEFINITION
----------------------------------------------------------------------*

----------------------------------------------------------------------*
CLASS tax DEFINITION.
  PUBLIC SECTION.
    DATA : salary TYPE p DECIMALS 2 VALUE '50000'.
    METHODS: calc_tax IMPORTING sal TYPE p
                      EXPORTING tax_amt TYPE p.


ENDCLASS.                    "tax DEFINITION


START-OF-SELECTION.
  DATA : taxamt TYPE p.
  DATA : salary TYPE p VALUE '10025606511'.
  DATA: obj1 TYPE REF TO tax.
  CREATE OBJECT : obj1.

  CALL METHOD: obj1->calc_tax EXPORTING  sal = salary
                              IMPORTING tax_amt = taxamt.

  WRITE: / 'Tax amount is ', taxamt.

----------------------------------------------------------------------*
       CLASS tax IMPLEMENTATION
----------------------------------------------------------------------*

----------------------------------------------------------------------*
CLASS tax IMPLEMENTATION.

  METHOD calc_tax.

      sal = salary.
    tax_amt = sal / 10.

  ENDMETHOD.                    "calc_tax
ENDCLASS.                    "tax IMPLEMENTATION

********  End of Program 2 on OOP's*****************









********   Begin of Program    3 on OOP's*****************
----------------------------------------------------------------------*
       CLASS tax DEFINITION
----------------------------------------------------------------------*

----------------------------------------------------------------------*
CLASS c1 DEFINITION.
  PUBLIC SECTION.
    DATA : salary TYPE p DECIMALS 2 VALUE '50000'.
    METHODS: m1.

ENDCLASS.                    "tax DEFINITION

----------------------------------------------------------------------*
       CLASS c2 DEFINITION
----------------------------------------------------------------------*

----------------------------------------------------------------------*
CLASS c2 DEFINITION INHERITING FROM c1.
  PUBLIC SECTION.
    METHODS: m2.

ENDCLASS.                    "c2 DEFINITION

----------------------------------------------------------------------*
       CLASS tax IMPLEMENTATION
----------------------------------------------------------------------*

----------------------------------------------------------------------*
CLASS c1 IMPLEMENTATION.

  METHOD m1.

    WRITE: / 'This is the method in class 1'.

  ENDMETHOD.                    "calc_tax
ENDCLASS.                    "tax IMPLEMENTATION

----------------------------------------------------------------------*
       CLASS c2 IMPLEMENTATION
----------------------------------------------------------------------*

----------------------------------------------------------------------*
CLASS c2 IMPLEMENTATION.
  METHOD m2.
    WRITE : / 'this is the method in class c2'.
  ENDMETHOD.                    "m1

ENDCLASS.                    "c2 IMPLEMENTATION

START-OF-SELECTION.

  DATA : obj1 TYPE REF TO c1,
        obj2 TYPE REF TO c2.

  CREATE OBJECT: obj1, obj2.

  CALL METHOD : obj1->m1 , obj2->m2 , obj2->m1.


********  End of Program 3 on OOP's*****************












********   Begin of Program    4 on OOP's*****************
----------------------------------------------------------------------*
       CLASS tax DEFINITION
----------------------------------------------------------------------*

----------------------------------------------------------------------*
CLASS c1 DEFINITION.
  PUBLIC SECTION.
    DATA : salary TYPE p DECIMALS 2 VALUE '50000'.
    METHODS: m1.

ENDCLASS.                    "tax DEFINITION

----------------------------------------------------------------------*
       CLASS c2 DEFINITION
----------------------------------------------------------------------*

----------------------------------------------------------------------*
CLASS c2 DEFINITION INHERITING FROM c1.
  PUBLIC SECTION.
    METHODS: m2.

ENDCLASS.                    "c2 DEFINITION

----------------------------------------------------------------------*
       CLASS tax IMPLEMENTATION
----------------------------------------------------------------------*

----------------------------------------------------------------------*
CLASS c1 IMPLEMENTATION.

  METHOD m1.

    WRITE: / 'This is the method in class 1'.

  ENDMETHOD.                    "calc_tax
ENDCLASS.                    "tax IMPLEMENTATION

----------------------------------------------------------------------*
       CLASS c2 IMPLEMENTATION
----------------------------------------------------------------------*

----------------------------------------------------------------------*
CLASS c2 IMPLEMENTATION.
  METHOD m2.
    WRITE : / 'this is the method in class c2'.
  ENDMETHOD.                    "m1

ENDCLASS.                    "c2 IMPLEMENTATION

START-OF-SELECTION.

  DATA : obj1 TYPE REF TO c1,
        obj2 TYPE REF TO c2.

  CREATE OBJECT: obj1, obj2.

  CALL METHOD : obj1->m1 , obj2->m2 , obj2->m1.


********  End of Program 4 on OOP's*****************


***********************************************************************************

 THis is for the static keyword, this is implemented using CLASS-
********   Begin of Program  5 on OOP's*****************
----------------------------------------------------------------------*
       CLASS tax DEFINITION
----------------------------------------------------------------------*

----------------------------------------------------------------------*
CLASS c1 DEFINITION.
  PUBLIC SECTION.

    CLASS-DATA: assign_value(10TYPE c.

    DATA : salary TYPE p DECIMALS 2 VALUE '50000'.
    METHODS: m1.

    CLASS-METHODS: cm1.


ENDCLASS.                    "tax DEFINITION

----------------------------------------------------------------------*
       CLASS c2 DEFINITION
----------------------------------------------------------------------*

----------------------------------------------------------------------*
CLASS c2 DEFINITION INHERITING FROM c1.
  PUBLIC SECTION.
    METHODS: m2.

ENDCLASS.                    "c2 DEFINITION

----------------------------------------------------------------------*
       CLASS tax IMPLEMENTATION
----------------------------------------------------------------------*

----------------------------------------------------------------------*
CLASS c1 IMPLEMENTATION.

  METHOD m1.

    WRITE: / 'This is the method in class 1'.

  ENDMETHOD.                    "m1

  METHOD cm1. " static method.



    DATA : name(10TYPE c VALUE 'Bharat'.
    assign_value  = name. " we don't get error here because assign_value is a static data type

    salary = '4555'.       This gives error because static methods


    WRITE: / ' This is inside the static method and variable name', name.

  ENDMETHOD.                    "m1

ENDCLASS.                    "tax IMPLEMENTATION

----------------------------------------------------------------------*
       CLASS c2 IMPLEMENTATION
----------------------------------------------------------------------*

----------------------------------------------------------------------*
CLASS c2 IMPLEMENTATION.
  METHOD m2.
    WRITE : / 'this is the method in class c2'.
  ENDMETHOD.                    "m1

ENDCLASS.                    "c2 IMPLEMENTATION

START-OF-SELECTION.

  DATA : obj1 TYPE REF TO c1,
        obj2 TYPE REF TO c2.

  CREATE OBJECT: obj1, obj2.

  CALL METHOD : obj1->m1 , obj2->m2 , obj2->m1.

  CALL METHOD: obj1->cm1 , c1=>cm1 , obj2->cm1.

  c1=>assign_value = 'Country'.

  obj1->assign_value = 'India'.


  WRITE: / c1=>assign_value.
  WRITE: / obj1->assign_value.



  WRITE: / ' Test'.

********  End of Program 5 on OOP's*****************


********* **************** **************** **************** ****************
Best program in which a method is called in the implementation of another method of the same class.
*********  Begin of Program 6 on OOP's*****************

CLASS c1 DEFINITION.
  PUBLIC SECTION.

    METHODS : m1 IMPORTING inp1 TYPE i
                 EXPORTING out1 TYPE i,
              m2 IMPORTING inp2 TYPE i
                 EXPORTING out2 TYPE i.

ENDCLASS.                    "c1 DEFINITION



&---------------------------------------------------------------------*
&       Class (Implementation)  c1
&---------------------------------------------------------------------*
        Text
----------------------------------------------------------------------*
CLASS c1 IMPLEMENTATION.

  METHOD m1.

    out1 = inp1.

  ENDMETHOD.                    "m1

  METHOD m2.

    CALL METHOD : m1 EXPORTING inp1 = inp2
                     IMPORTING out1 = out2.

  ENDMETHOD.                    "m2

ENDCLASS.               "c1

START-OF-SELECTION.
DATA : number TYPE i.
DATA :  obj1 TYPE REF TO c1.
CREATE OBJECT OBJ1.

CALL METHOD: obj1->m2 EXPORTING inp2 = '10'
                      IMPORTING out2 = number.

WRITE : number.



*********  End of Program 6 on OOP's*****************




***********************************************************************************************
program to demonstrate constructor
**********  Begin of Program 7 on OOP's*****************


CLASS c1 DEFINITION.

PUBLIC SECTION.

  METHODS: constructor.

ENDCLASS.                    "c1 DEFINITION

----------------------------------------------------------------------*
       CLASS c1 IMPLEMENTATION
----------------------------------------------------------------------*

----------------------------------------------------------------------*
CLASS c1 IMPLEMENTATION.
  METHOD constructor.
The constructor method name should be constructor only.
    WRITE : / ' The constructor has been called automatically'.
  ENDMETHOD.                    "constructor
ENDCLASS.                    "c1 IMPLEMENTATION

START-OF-SELECTION.

DATA : obj TYPE REF TO c1.
create OBJECT obj.


**********  End of Program 8 on OOP's*****************



***********************************************************************************************
program to demonstrate static constructor and instance constructor
**********  Begin of Program8 on OOP's*****************


CLASS c1 DEFINITION.

  PUBLIC SECTION.

    CLASS-METHODS: class_constructor.

ENDCLASS.                    "c1 DEFINITION

----------------------------------------------------------------------*
       CLASS c1 IMPLEMENTATION
----------------------------------------------------------------------*

----------------------------------------------------------------------*
CLASS c1 IMPLEMENTATION.
  METHOD class_constructor.

    WRITE : / ' The constructor has been called automatically'.
  ENDMETHOD.                    "constructor
ENDCLASS.                    "c1 IMPLEMENTATION

START-OF-SELECTION.

  DATA : obj TYPE REF TO c1.
  CREATE OBJECT obj.

**********  End of Program8 on OOP's*****************


**********************************************************************************

Inheritance

********** Begin of Program 9 ******************
CLASS c1 DEFINITION.
  PUBLIC SECTION.
    DATA: name1 TYPE c LENGTH 30 VALUE 'bharat'.
    METHODS: m1 , "IMPORTING nam TYPE c
                EXPORTING nam1 TYPE c.
              m2.

ENDCLASS.                    "c1 DEFINITION


----------------------------------------------------------------------*
       CLASS c1 IMPLEMENTATION
----------------------------------------------------------------------*

----------------------------------------------------------------------*
CLASS c1 IMPLEMENTATION.

  METHOD m1.

    CONCATENATE nam 'Good' INTO nam1 SEPARATED BY space.
    WRITE:/ ' This is a method in super class c1.'.

  ENDMETHOD.                    "m1

  METHOD m2.
    WRITE: / ' This is the method 2 of the super class c1.'.
  ENDMETHOD.                    "m2
ENDCLASS.                    "c1 IMPLEMENTATION

----------------------------------------------------------------------*
       CLASS s1 DEFINITION
----------------------------------------------------------------------*

----------------------------------------------------------------------*
CLASS s1 DEFINITION INHERITING FROM c1.
  PUBLIC SECTION.

    METHODS m1 REDEFINITION.
    METHODS: sm1.
ENDCLASS.                    "s1 DEFINITION

----------------------------------------------------------------------*
       CLASS s1 IMPLEMENTATION
----------------------------------------------------------------------*

----------------------------------------------------------------------*
CLASS s1 IMPLEMENTATION.
  METHOD sm1.

    CALL METHOD super->m1.
    WRITE: / ' This is a method in subclass SM1'.

  ENDMETHOD.                    "sm1


ENDCLASS.                    "s1 IMPLEMENTATION

START-OF-SELECTION.

  DATA : obj1 TYPE REF TO c1.

  DATA : objs1 TYPE REF TO s1.

  CREATE OBJECT : obj1 , objs1.

  CALL METHOD : objs1->sm1.

  CALL METHOD : objs1->m1,objs1->m2.
CALL METHOD objs1->m1.
**********End of program 9******************







CLASS counter DEFINITION.
  PUBLIC SECTION.
    METHODSset IMPORTING value(set_value) TYPE i,
             increment,
             get EXPORTING value(get_value) TYPE i.
  PROTECTED SECTION.
    DATA count TYPE i.
ENDCLASS.                    "counter DEFINITION

----------------------------------------------------------------------*
       CLASS counter IMPLEMENTATION
----------------------------------------------------------------------*

----------------------------------------------------------------------*
CLASS counter IMPLEMENTATION.
  METHOD set.
    count = set_value.
  ENDMETHOD.                    "set
  METHOD increment.
    ADD 1 TO count.
  ENDMETHOD.                    "increment
  METHOD get.
    get_value = count.
  ENDMETHOD.                    "get
ENDCLASS.                    "counter IMPLEMENTATION

----------------------------------------------------------------------*
       CLASS counter_ten DEFINITION
----------------------------------------------------------------------*

----------------------------------------------------------------------*
CLASS counter_ten DEFINITION INHERITING FROM counter.
  PUBLIC SECTION.
    METHODS increment REDEFINITION.
    DATA count_ten.
ENDCLASS.                    "counter_ten DEFINITION

----------------------------------------------------------------------*
       CLASS counter_ten IMPLEMENTATION
----------------------------------------------------------------------*

----------------------------------------------------------------------*
CLASS counter_ten IMPLEMENTATION.
  METHOD increment.
    DATA modulo TYPE i.
    CALL METHOD super->increment.
    WRITE / count.
    modulo = count MOD 10.
    IF modulo = 0.
      count_ten = count_ten + 1.
      WRITE count_ten.
    ENDIF.
  ENDMETHOD.                    "increment
ENDCLASS.                    "counter_ten IMPLEMENTATION

DATAcount TYPE REF TO counter,
      number TYPE i VALUE 5.

START-OF-SELECTION.

  CREATE OBJECT count TYPE counter_ten.

  CALL METHOD count->set
    EXPORTING
      set_value = number.

  DO 20 TIMES.
    CALL METHOD count->increment.
  ENDDO.

Functional Flow






Inquiry - VA11 / VA12 / VA13
Quotation - VA21 / VA22 / VA23
Sales Order - VA01 / VA02 / VA03
Delivery - VL01N / VL02N / VL03N
Billing / Invoicing - VF01 / VF02 / VF03
·         SD Flow Cycle:

INQUIRY ( VA11)
|
QUOTATION (VA21)
|
PURCHASE ORDER (ME21)
|
ORDER CONFIRMATION (VA01)
|
PICKING LIST – (VL36)
|
PACKING LIST - (VL02, VL01)
|
SHIPPING – (VT01)
|
INVOICE – (VF21, VF01)
|AR
·         SD FLOW

SD Flow Cycle and T Codes:

INQUIRY ( VA11)
|
QUOTATION (VA21)
|
PURCHASE ORDER (ME21)
|
ORDER CONFIRMATION (VA01)
|
PICKING LIST – (VL36)
|
PACKING LIST - (VL02, VL01)
|
SHIPPING – (VT01)
|
INVOICE – (VF21, VF01)
|
AR

·         MM Cycle:
Purchase Requisition-> STaff in an orgn places Pur requisition for want of some goods/products - ME51

Request for Quotation(RFQ)-> The Purchase dept in the orgn calls/requests for the quotation for the products against which PR was raised. - ME41

Vendor Evaluation->After receving the RFQ's, after comparison a Vendor is finalised based on the terms and conditions.

Purchase Order(PO)-> Pur order was issued to that vendor asking him to supply the goods/products -ME21N

Goods Receipt Note(GRN)->Vendor supplies the material/Products to the orgn-
MB01
Goods Issue (GI)  -> People receives their respective itesm for which they have placed the Requisitions

Invoice Verification-> ALong with the Material Vendor submits a Invoice for which the Company Pays the amount - .MIRO

Data to FI -> data will be posted to FI as per the vendor invoices



Thursday, 24 May 2012

ALV OOP'S

  REPORT  ybharat.


TABLES : vbak.
**********************************************************************
*ALV related delcarations for initial container

DATA : gdt_fieldcat               TYPE lvc_t_fcat ,
       gds_fieldcat               TYPE lvc_s_fcat,
*      Referencing Object for Container and ALV Grid
       gro_cont                   TYPE REF TO cl_gui_custom_container,
       gro_alv                    TYPE REF TO cl_gui_alv_grid,
       gdf_flag                   TYPE c,
       gds_layout                 TYPE lvc_s_layo.




**********************************************************************
TYPES : BEGIN OF lts_vbak,
        vbeln TYPE vbeln_va,
        erdat TYPE erdat,
        erzet TYPE erzet,
        ernam TYPE ernam,
        angdt TYPE angdt_v,
        bnddt TYPE bnddt,
        audat TYPE audat,
        END OF lts_vbak.

DATA : gdt_vbak TYPE STANDARD TABLE OF lts_vbak,
       gds_vbak TYPE lts_vbak.

SELECT-OPTIONS: s_vbeln FOR vbak-vbeln.

START-OF-SELECTION.

  SELECT * FROM vbak INTO CORRESPONDING FIELDS OF TABLE gdt_vbak
                     WHERE vbeln IN s_vbeln.


  CALL SCREEN 100.


*&---------------------------------------------------------------------*
*&      Module  STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
  SET PF-STATUS 'PF_STATUS'.
  SET TITLEBAR 'ALV_TITLE'.

ENDMODULE.                 " STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
*&      Module  PREPARE_CONTAINER_0100  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE prepare_container_0100 OUTPUT.

  IF gro_cont IS INITIAL.
* Creating  Custom Container
    CREATE OBJECT gro_cont
      EXPORTING
*        parent                      =
        container_name              = 'ALV_DISPLAY' " this is the container which we created in the screen 100 layout
*        style                       =
*        lifetime                    = lifetime_default
*        repid                       =
*        dynnr                       =
*        no_autodef_progid_dynnr     =
*      EXCEPTIONS
*        cntl_error                  = 1
*        cntl_system_error           = 2
*        create_error                = 3
*        lifetime_error              = 4
*        lifetime_dynpro_dynpro_link = 5
*        others                      = 6
        .
    IF sy-subrc <> 0.
      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                 WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.


* Create an instance of ALV control
    CREATE OBJECT gro_alv
      EXPORTING
*        i_shellstyle      = 0
*        i_lifetime        =
        i_parent          = gro_cont
*        i_appl_events     = space
*        i_parentdbg       =
*        i_applogparent    =
*        i_graphicsparent  =
*        i_name            =
*        i_fcat_complete   = space
*      EXCEPTIONS
*        error_cntl_create = 1
*        error_cntl_init   = 2
*        error_cntl_link   = 3
*        error_dp_create   = 4
*        others            = 5
        .
    IF sy-subrc <> 0.
*     MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*                WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.

* Creating Field Catalog

    PERFORM field_catalog.

* Hot spot Event handler
    PERFORM hotspot_event_handler1.


* Method for calling ALV grid to display
    CALL METHOD gro_alv->set_table_for_first_display
      EXPORTING
*        is_layout       = gds_layout
*        is_variant      = gdf_variant
*        i_save          = 'A'
        i_default       = 'X'
      CHANGING
        it_outtab       = gdt_vbak
        it_fieldcatalog = gdt_fieldcat.

  ENDIF.




ENDMODULE.                 " PREPARE_CONTAINER_0100  OUTPUT
*&---------------------------------------------------------------------*
*&      Form  FIELD_CATALOG
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM field_catalog .

* refresh fieldcatalog internal table
  REFRESH gdt_fieldcat.
  CLEAR gds_fieldcat.

  PERFORM get_field_info USING  'VBELN' 'Sales Document' '10' 'CHAR' 'X' 'X' 'X'.
  PERFORM get_field_info USING 'ERDAT' 'Date on Which Record Was Created' '8' 'CHAR' ' ' ' ' ' '.
  PERFORM get_field_info USING 'ERZET' 'Entry time' '6' 'CHAR' ' ' ' ' ' '.
  PERFORM get_field_info USING 'ERNAM' 'Name of Person who Created the Object' '12' 'CHAR' ' ' ' ' ' '.
  PERFORM get_field_info USING 'ANGDT' 'Quotation/Inquiry is valid from' '8' 'CHAR' ' ' ' ' ' '.
  PERFORM get_field_info USING 'BNDDT' 'Date until which bid/quotation is binding (valid-to date)' '8' 'CHAR' ' ' ' ' ' '.
  PERFORM get_field_info USING 'AUDAT' 'Document Date (Date Received/Sent)' '8' 'CHAR' ' ' ' ' ' '.



ENDFORM.                    " FIELD_CATALOG
*&---------------------------------------------------------------------*
*&      Form  GET_FIELD_INFO
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_0161   text
*      -->P_0162   text
*      -->P_0163   text
*      -->P_0164   text
*      -->P_0165   text
*      -->P_0166   text
*      -->P_0167   text
*----------------------------------------------------------------------*
FORM get_field_info  USING value(pvf_field) TYPE any
                          value(pvf_text) TYPE any
                          value(pvf_len) TYPE i
                          value(pvf_type) TYPE any
                          value(pvf_gcf_x) TYPE c
                          value(pvf_emphasize) TYPE any
                          value(pvf_hspot) TYPE c.

  CLEAR gds_fieldcat.
* Assigning the values to Fieldcat
  gds_fieldcat-fieldname       = pvf_field.
  gds_fieldcat-coltext         = pvf_text.
  gds_fieldcat-outputlen       = pvf_len.
  gds_fieldcat-datatype        = pvf_type.
  gds_fieldcat-key             = pvf_gcf_x. " like freeze pane in excel
  gds_fieldcat-emphasize       = pvf_emphasize. " for shading
  gds_fieldcat-hotspot             = pvf_hspot.

  APPEND gds_fieldcat TO gdt_fieldcat.


ENDFORM.                    " GET_FIELD_INFO


*&---------------------------------------------------------------------*
*&       Class GCL_EVENTS_CLICK
*&---------------------------------------------------------------------*
*        Text
*----------------------------------------------------------------------*
CLASS gcl_events_click DEFINITION.
  PUBLIC SECTION.

    METHODS: meth_hotspot_click FOR EVENT hotspot_click
                                OF        cl_gui_alv_grid
                                IMPORTING e_row_id e_column_id.

ENDCLASS.               "GCL_EVENTS_CLICK


* class for hotspot

DATA gro_events1            TYPE REF TO gcl_events_click.

*&---------------------------------------------------------------------*
*&       Class (Implementation)  gcl_events_click
*&---------------------------------------------------------------------*
*        Text
*----------------------------------------------------------------------*
class gcl_events_click implementation.

METHOD meth_hotspot_click.

    CONSTANTS:  lcf_vbe    TYPE RSEUX-CR_VALUE VALUE 'VF',
                lcf_va03   TYPE sy-tcode VALUE 'VF02'.



      READ TABLE gdt_vbak INDEX e_row_id INTO gds_vbak.
      IF sy-subrc EQ 0.

        SET PARAMETER ID lcf_vbe FIELD gds_vbak-vbeln.

        CALL TRANSACTION lcf_va03 AND SKIP FIRST SCREEN.
      ENDIF.
*


  ENDMETHOD.                    "meth_hotspot_click

endclass.               "gcl_events_click


*DATA gro_events1            TYPE REF TO gcl_events_click.


*&---------------------------------------------------------------------*
*&      Form  HOTSPOT_EVENT_HANDLER1
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM hotspot_event_handler1 .

  CREATE OBJECT gro_events1.
  SET HANDLER gro_events1->meth_hotspot_click FOR gro_alv.

ENDFORM.                    " HOTSPOT_EVENT_HANDLER1