Skip to end of metadata
Go to start of metadata
Creation of a Subsystem
  • The simplest way to create a subsystem is by copying the CL_DPR_DEMO_SUBSYSTEM to a customer class - for example ZCL_DPR_SUBSYSTEM.
    This can be done in SE24.
  • Comment all the codes of the copied methodes.
  • Go to Tab "Attributes"
    -  Change the "Associated Type" of Attribute 'SR_INSTANCE' to "ZCL_DPR_SUBSYSTEM".
  • Go to Tab "Methods"
    -  Select method "GET_INSTANCE"
    -  And call the "Parameters" of this method
    - Change the "Associated Type" of returning parameter to ZCL_DPR_SUBSYSTEM.
  • Then you have to activate the class/methods with the button "activate".

After the above steps are done, you have a 'blank' subsystem, which still not have any logic.  

 

Initialization and Loading of subsystems

You can place a breakpoint here to see which subsystems are initialised (e.g. when first accessing Project Management in the frontend):

CL_DPR_APPL_OBJECT_MANAGER
CONSTRUCTOR
  init_plug_in_subsystems).

 

CL_DPR_APPL_OBJECT_MANAGER
INIT_PLUG_IN_SUBSYSTEMS

 

 

Call of the subsystem

Subsystems in Project Management are handled by class CL_DPR_APPL_OBJECT_MANAGER. The subsystems are processed within a loop in the following methods:

CL_DPR_APPL_OBJECT_MANAGER
SAVE
LOOP AT mt_subsystems INTO lr_subsystem.
    lv_rc = lr_subsystem->prepare_to_save( ).
  ...

 

CL_DPR_APPL_OBJECT_MANAGER
IF_DPR_PROVIDER_TRANSACTION~DO_SAVE

*/- Subsystems
  LOOP AT mt_subsystems INTO lr_subsystem.
         CLEAR lv_rc.
         lv_rc = lr_subsystem->save( ).
...

 

CL_DPR_APPL_OBJECT_MANAGER
IF_DPR_PROVIDER_TRANSACTION~AFTER_COMMIT

*/- Subsystems
  LOOP AT mt_subsystems INTO lr_subsystem.
    lr_subsystem->initialize_after_save( ).
  ENDLOOP.

 

CL_DPR_APPL_OBJECT_MANAGER
IF_DPR_PROVIDER_TRANSACTION~BEFORE_SAVE

*/Prepare save
*/- Prepare subsystems first
  LOOP AT mt_subsystems INTO lr_subsystem.
    lv_rc lr_subsystem->prepare_to_save).
...

 

 

Back

  • No labels