Listing 6.20  Der Quelltext des Programms ZPTB00_Product_Event_GL
REPORT  zptb00_product_event.

* Main program ***
DATA:
  l_category_root TYPE REF TO ZPTB00_cl_category,
  l_category TYPE REF TO ZPTB00_cl_category,
  l_salesproduct TYPE REF TO ZPTB00_cl_salesproduct,
  l_purchaseproduct TYPE REF TO 
     ZPTB00_cl_purchaseproduct.

CREATE OBJECT l_category_root
  EXPORTING
    i_title      = 'Products'.
CREATE OBJECT l_category
  EXPORTING
    i_rcl_parent = l_category_root
    i_title      = 'Hardware'.
CREATE OBJECT l_purchaseproduct
  EXPORTING
    i_rcl_parent = l_category
    i_title      = 'Toshiba Satellite 430s'
    i_net_price  = '1500'.
CREATE OBJECT l_salesproduct
  EXPORTING
    i_rcl_parent = l_category
    i_title      = 'Toshiba Satellite 430s'
    i_net_price  = '1500'.
l_category_root->write_to_screen( ).
* connect l_purchaseproduct to event of 
* l_salesproduct, so we get noticed in 
* l_purchaseproduct
SET HANDLER l_salesproduct->set_title FOR l_purchaseproduct.
CALL METHOD l_purchaseproduct->set_title
  EXPORTING
    i_title = 'Toshiba Portege 120s'.
l_category_root->write_to_screen( ).
* End of main program ***