class /HEC1/CL_CONFIG_DET_GENERAL definition
  public
  inheriting from /HEC1/CL_LIB_D_SUPERCLASS
  create public .

public section.

  interfaces /HEC1/IF_CONFIG_DET_GENERAL .

  class-methods CLASS_CONSTRUCTOR .

  methods /BOBF/IF_FRW_DETERMINATION~EXECUTE
    redefinition .
protected section.

  methods EXECUTE
    redefinition .
  PRIVATE SECTION.

    TYPES:
      BEGIN OF ts_actmap,
        act_methodname TYPE seocpdname,
        act_key        TYPE /bobf/act_key,
      END OF ts_actmap .
    TYPES:
      tt_actmap TYPE HASHED TABLE OF ts_actmap WITH UNIQUE KEY act_methodname .
    TYPES:
      BEGIN OF ts_queue,
        ctx           TYPE /hec1/s_ctx_general,
        det_key       TYPE /bobf/det_key,
        act_exectime  TYPE /bobf/conf_exectime,
        act_key       TYPE /bobf/act_key,
        act_execorder TYPE /hec1/s_bopf_act_exorder,
        act_clsname   TYPE seocpdname,
        act_internal  TYPE boole_d,
        act_param     TYPE REF TO data,
        act_notify    TYPE boole_d,
        t_inst_key    TYPE /bobf/t_frw_key,
      END OF ts_queue .
    TYPES:
      tt_queue TYPE TABLE OF ts_queue .

    CLASS-DATA st_queue TYPE tt_queue .
    CLASS-DATA st_actmap TYPE tt_actmap .
ENDCLASS.



CLASS /HEC1/CL_CONFIG_DET_GENERAL IMPLEMENTATION.


  METHOD /hec1/if_config_det_general~get_act_key.

    CHECK iv_act_methode_name IS NOT INITIAL.

    TRY.
        rv_act_key = st_actmap[ act_methodname = iv_act_methode_name ]-act_key.
      CATCH cx_sy_itab_line_not_found.
    ENDTRY.


  ENDMETHOD.


  METHOD /hec1/if_config_det_general~set_act_node_keys.

    CHECK: iv_action IS NOT INITIAL,
           it_key    IS NOT INITIAL.

    INSERT VALUE #( ctx           = is_ctx
                    act_key       = iv_action
                    act_param     = ir_act_param
                    act_execorder = iv_act_execorder
                    act_exectime  = COND #( WHEN iv_act_exectime IS INITIAL
                                            THEN /bobf/if_conf_c=>sc_time_after_modify
                                            ELSE iv_act_exectime                       )
                    act_internal  = abap_true
                    act_notify    = iv_notify
                    t_inst_key    = it_key                                                ) INTO TABLE st_queue.

  ENDMETHOD.


  METHOD class_constructor.

    " Create phase
    INSERT VALUE #( act_methodname = /hec1/if_config_constant=>gc_act_method-create_phase
                    act_key        = /bobf/cl_frw_factory=>get_new_transient_key( )                ) INTO TABLE st_actmap.

    " Create landscape
    INSERT VALUE #( act_methodname = /hec1/if_config_constant=>gc_act_method-create_landscape
                    act_key        = /bobf/cl_frw_factory=>get_new_transient_key( )                ) INTO TABLE st_actmap.

    " Create delivery unit
    INSERT VALUE #( act_methodname = /hec1/if_config_constant=>gc_act_method-create_delivery_unit
                    act_key        = /bobf/cl_frw_factory=>get_new_transient_key( )                ) INTO TABLE st_actmap.

    " Create managed service baseline
    INSERT VALUE #( act_methodname = /hec1/if_config_constant=>gc_act_method-create_man_serv_baseline
                    act_key        = /bobf/cl_frw_factory=>get_new_transient_key( )                ) INTO TABLE st_actmap.

    " Create tier
    INSERT VALUE #( act_methodname = /hec1/if_config_constant=>gc_act_method-create_tier
                    act_key        = /bobf/cl_frw_factory=>get_new_transient_key( )                ) INTO TABLE st_actmap.

    " Create tier sla
    INSERT VALUE #( act_methodname = /hec1/if_config_constant=>gc_act_method-create_tier_sla
                    act_key        = /bobf/cl_frw_factory=>get_new_transient_key( )                ) INTO TABLE st_actmap.

    " Create Material
    INSERT VALUE #( act_methodname = /hec1/if_config_constant=>gc_act_method-create_material
                    act_key        = /bobf/cl_frw_factory=>get_new_transient_key( )                 ) INTO TABLE st_actmap.

    " Create Software Item
    INSERT VALUE #( act_methodname = /hec1/if_config_constant=>gc_act_method-create_software_item
                    act_key        = /bobf/cl_frw_factory=>get_new_transient_key( )                 ) INTO TABLE st_actmap.

    " Create DB/App server instance
    INSERT VALUE #( act_methodname = /hec1/if_config_constant=>gc_act_method-create_serv_inst
                    act_key        = /bobf/cl_frw_factory=>get_new_transient_key( )                ) INTO TABLE st_actmap.

    " Create intance DB
    INSERT VALUE #( act_methodname = /hec1/if_config_constant=>gc_act_method-create_inst_db
                    act_key        = /bobf/cl_frw_factory=>get_new_transient_key( )                ) INTO TABLE st_actmap.

    " Create DB server node
    INSERT VALUE #( act_methodname = /hec1/if_config_constant=>gc_act_method-create_db_node
                    act_key        = /bobf/cl_frw_factory=>get_new_transient_key( )                ) INTO TABLE st_actmap.

    " Create DB server performance category
    INSERT VALUE #( act_methodname = /hec1/if_config_constant=>gc_act_method-create_db_spc
                    act_key        = /bobf/cl_frw_factory=>get_new_transient_key( )                ) INTO TABLE st_actmap.

    " Create DB server storage amount
    INSERT VALUE #( act_methodname = /hec1/if_config_constant=>gc_act_method-create_db_qty
                    act_key        = /bobf/cl_frw_factory=>get_new_transient_key( )                ) INTO TABLE st_actmap.

    " Create DB server
    INSERT VALUE #( act_methodname = /hec1/if_config_constant=>gc_act_method-create_db_server
                    act_key        = /bobf/cl_frw_factory=>get_new_transient_key( )                ) INTO TABLE st_actmap.

    " Create DB server storage
    INSERT VALUE #( act_methodname = /hec1/if_config_constant=>gc_act_method-create_db_storage
                    act_key        = /bobf/cl_frw_factory=>get_new_transient_key( )                ) INTO TABLE st_actmap.

    " Create DB server storage backup
    INSERT VALUE #( act_methodname = /hec1/if_config_constant=>gc_act_method-create_db_backup
                    act_key        = /bobf/cl_frw_factory=>get_new_transient_key( )                ) INTO TABLE st_actmap.

    " Create App server node
    INSERT VALUE #( act_methodname = /hec1/if_config_constant=>gc_act_method-create_app_node
                    act_key        = /bobf/cl_frw_factory=>get_new_transient_key( )                ) INTO TABLE st_actmap.

    " Create App server performance category
    INSERT VALUE #( act_methodname = /hec1/if_config_constant=>gc_act_method-create_app_spc
                    act_key        = /bobf/cl_frw_factory=>get_new_transient_key( )                ) INTO TABLE st_actmap.

    " Create App server storage amount
    INSERT VALUE #( act_methodname = /hec1/if_config_constant=>gc_act_method-create_app_qty
                    act_key        = /bobf/cl_frw_factory=>get_new_transient_key( )                ) INTO TABLE st_actmap.

    " Create App server
    INSERT VALUE #( act_methodname = /hec1/if_config_constant=>gc_act_method-create_app_server
                    act_key        = /bobf/cl_frw_factory=>get_new_transient_key( )                ) INTO TABLE st_actmap.

    " Create App server storage
    INSERT VALUE #( act_methodname = /hec1/if_config_constant=>gc_act_method-create_app_storage
                    act_key        = /bobf/cl_frw_factory=>get_new_transient_key( )                ) INTO TABLE st_actmap.

    " Create App server storage backup
    INSERT VALUE #( act_methodname = /hec1/if_config_constant=>gc_act_method-create_app_backup
                    act_key        = /bobf/cl_frw_factory=>get_new_transient_key( )                ) INTO TABLE st_actmap.

    " Set predecessor/successor
    INSERT VALUE #( act_methodname = /hec1/if_config_constant=>gc_act_method-set_success_predec
                    act_key        = /bobf/cl_frw_factory=>get_new_transient_key( )                ) INTO TABLE st_actmap.

    " Update additional service
    INSERT VALUE #( act_methodname = /hec1/if_config_constant=>gc_act_method-update_additional_service
                    act_key        = /bobf/cl_frw_factory=>get_new_transient_key( )                 ) INTO TABLE st_actmap.

    " Update storage backup price
    INSERT VALUE #( act_methodname = /hec1/if_config_constant=>gc_act_method-update_storage_backup_price
                    act_key        = /bobf/cl_frw_factory=>get_new_transient_key( )                 ) INTO TABLE st_actmap.

    " Update Infrastructure Baseline
    INSERT VALUE #( act_methodname = /hec1/if_config_constant=>gc_act_method-update_if_baseline
                    act_key        = /bobf/cl_frw_factory=>get_new_transient_key( )                 ) INTO TABLE st_actmap.

    " Update App Node
    INSERT VALUE #( act_methodname = /hec1/if_config_constant=>gc_act_method-update_app_node
                    act_key        = /bobf/cl_frw_factory=>get_new_transient_key( )                 ) INTO TABLE st_actmap.

    " Update App Server Perf Cat
    INSERT VALUE #( act_methodname = /hec1/if_config_constant=>gc_act_method-update_app_server_perf_cat
                    act_key        = /bobf/cl_frw_factory=>get_new_transient_key( )                 ) INTO TABLE st_actmap.

    " Update App Storage
    INSERT VALUE #( act_methodname = /hec1/if_config_constant=>gc_act_method-update_app_storage
                    act_key        = /bobf/cl_frw_factory=>get_new_transient_key( )                 ) INTO TABLE st_actmap.

    " Update App Storage Amount
    INSERT VALUE #( act_methodname = /hec1/if_config_constant=>gc_act_method-update_app_storage_amount
                    act_key        = /bobf/cl_frw_factory=>get_new_transient_key( )                 ) INTO TABLE st_actmap.

    " Update App Storage Backup
    INSERT VALUE #( act_methodname = /hec1/if_config_constant=>gc_act_method-update_app_storage_backup
                    act_key        = /bobf/cl_frw_factory=>get_new_transient_key( )                 ) INTO TABLE st_actmap.

    " Update DB Node
    INSERT VALUE #( act_methodname = /hec1/if_config_constant=>gc_act_method-update_db_node
                    act_key        = /bobf/cl_frw_factory=>get_new_transient_key( )                 ) INTO TABLE st_actmap.

    " Update DB Server Perf Cat
    INSERT VALUE #( act_methodname = /hec1/if_config_constant=>gc_act_method-update_db_server_perf_cat
                    act_key        = /bobf/cl_frw_factory=>get_new_transient_key( )                 ) INTO TABLE st_actmap.

    " Update Instance DB
    INSERT VALUE #( act_methodname = /hec1/if_config_constant=>gc_act_method-update_instance_db
                    act_key        = /bobf/cl_frw_factory=>get_new_transient_key( )                 ) INTO TABLE st_actmap.

    " Update DB Storage Amount
    INSERT VALUE #( act_methodname = /hec1/if_config_constant=>gc_act_method-update_db_storage_amount
                    act_key        = /bobf/cl_frw_factory=>get_new_transient_key( )                 ) INTO TABLE st_actmap.

    " Update DB Storage Backup
    INSERT VALUE #( act_methodname = /hec1/if_config_constant=>gc_act_method-update_db_storage_backup
                    act_key        = /bobf/cl_frw_factory=>get_new_transient_key( )                 ) INTO TABLE st_actmap.

    " Update APP Server
    INSERT VALUE #( act_methodname = /hec1/if_config_constant=>gc_act_method-update_app_server
                    act_key        = /bobf/cl_frw_factory=>get_new_transient_key( )                 ) INTO TABLE st_actmap.

    " Update DB Server
    INSERT VALUE #( act_methodname = /hec1/if_config_constant=>gc_act_method-update_db_server
                    act_key        = /bobf/cl_frw_factory=>get_new_transient_key( )                 ) INTO TABLE st_actmap.

    " Update DB Storage
    INSERT VALUE #( act_methodname = /hec1/if_config_constant=>gc_act_method-update_db_storage
                    act_key        = /bobf/cl_frw_factory=>get_new_transient_key( )                 ) INTO TABLE st_actmap.

    " Update DB Storage Backup
    INSERT VALUE #( act_methodname = /hec1/if_config_constant=>gc_act_method-update_db_storage_backup
                    act_key        = /bobf/cl_frw_factory=>get_new_transient_key( )                 ) INTO TABLE st_actmap.

    " Inherit Phase assignment
    INSERT VALUE #( act_methodname = /hec1/if_config_constant=>gc_act_method-inherit_phase_assignment
                    act_key        = /bobf/cl_frw_factory=>get_new_transient_key( )                 ) INTO TABLE st_actmap.

    " Update Managed Service Baseline
    INSERT VALUE #( act_methodname = /hec1/if_config_constant=>gc_act_method-update_man_serv_baseline
                    act_key        = /bobf/cl_frw_factory=>get_new_transient_key( )                 ) INTO TABLE st_actmap.

    " Update Landscape
    INSERT VALUE #( act_methodname = /hec1/if_config_constant=>gc_act_method-update_landscape
                    act_key        = /bobf/cl_frw_factory=>get_new_transient_key( )                 ) INTO TABLE st_actmap.

    " Update Delivery Unit
    INSERT VALUE #( act_methodname = /hec1/if_config_constant=>gc_act_method-update_delivery_unit
                    act_key        = /bobf/cl_frw_factory=>get_new_transient_key( )                 ) INTO TABLE st_actmap.

    " Update Datacenter
    INSERT VALUE #( act_methodname = /hec1/if_config_constant=>gc_act_method-update_datacenter
                    act_key        = /bobf/cl_frw_factory=>get_new_transient_key( )                 ) INTO TABLE st_actmap.

    " Update Connectivity
    INSERT VALUE #( act_methodname = /hec1/if_config_constant=>gc_act_method-update_connectivity
                    act_key        = /bobf/cl_frw_factory=>get_new_transient_key( )                 ) INTO TABLE st_actmap.

    " Update Tier from Landscape
    INSERT VALUE #( act_methodname = /hec1/if_config_constant=>gc_act_method-update_tier_from_landscape
                    act_key        = /bobf/cl_frw_factory=>get_new_transient_key( )                 ) INTO TABLE st_actmap.

    " Update Tier Additional Service
    INSERT VALUE #( act_methodname = /hec1/if_config_constant=>gc_act_method-update_tier_add_service
                    act_key        = /bobf/cl_frw_factory=>get_new_transient_key( )                 ) INTO TABLE st_actmap.


    " Update Tier from LTB Class
    INSERT VALUE #( act_methodname = /hec1/if_config_constant=>gc_act_method-update_tier_lt_backup
                    act_key        = /bobf/cl_frw_factory=>get_new_transient_key( )                 ) INTO TABLE st_actmap.

    " Update Tier
    INSERT VALUE #( act_methodname = /hec1/if_config_constant=>gc_act_method-update_tier
                    act_key        = /bobf/cl_frw_factory=>get_new_transient_key( )                 ) INTO TABLE st_actmap.

    " Update Solution
    INSERT VALUE #( act_methodname = /hec1/if_config_constant=>gc_act_method-update_solution
                    act_key        = /bobf/cl_frw_factory=>get_new_transient_key( )                 ) INTO TABLE st_actmap.

    " Update DB Server Instance
    INSERT VALUE #( act_methodname = /hec1/if_config_constant=>gc_act_method-update_db_server_instance
                    act_key        = /bobf/cl_frw_factory=>get_new_transient_key( )                 ) INTO TABLE st_actmap.

    " Update Phase
    INSERT VALUE #( act_methodname = /hec1/if_config_constant=>gc_act_method-update_phase
                    act_key        = /bobf/cl_frw_factory=>get_new_transient_key( )                 ) INTO TABLE st_actmap.

    " Delete Node
    INSERT VALUE #( act_methodname = /hec1/if_config_constant=>gc_act_method-delete_node
                    act_key        = /bobf/cl_frw_factory=>get_new_transient_key( )                 ) INTO TABLE st_actmap.

    " Copy Node
    INSERT VALUE #( act_methodname = /hec1/if_config_constant=>gc_act_method-copy_node
                    act_key        = /bobf/cl_frw_factory=>get_new_transient_key( )                 ) INTO TABLE st_actmap.


  ENDMETHOD.


  METHOD execute.

    DATA: lt_parameter TYPE abap_parmbind_tab.

    " *************************************
    " Trigger the registerd actions
    " *************************************
    IF st_queue IS NOT INITIAL.
      SORT st_queue BY act_exectime  ASCENDING
                       act_execorder ASCENDING.

      LOOP AT st_queue ASSIGNING FIELD-SYMBOL(<fs_queue>)
       WHERE act_exectime = is_ctx-exectime.

        CASE <fs_queue>-act_internal.
            "------------------------
            " Internal action
            "------------------------
          WHEN abap_true.
            TRY.
                DATA(lv_method_name) = st_actmap[ act_key = <fs_queue>-act_key ]-act_methodname. "#EC CI_HASHSEQ

                IF lv_method_name IS NOT INITIAL.
                  " With action parameter
                  IF <fs_queue>-act_param IS BOUND.
                    lt_parameter =  VALUE #( ( name  = 'IS_CTX'
                                               kind  = cl_abap_objectdescr=>exporting
                                               value = REF #( <fs_queue>-ctx )        )
                                             ( name  = 'IT_KEY'
                                               kind  = cl_abap_objectdescr=>exporting
                                               value = REF #( <fs_queue>-t_inst_key ) )
                                             ( name  = 'IO_READ'
                                               kind  = cl_abap_objectdescr=>exporting
                                               value = REF #( io_read )               )
                                             ( name  = 'IO_MODIFY'
                                               kind  = cl_abap_objectdescr=>exporting
                                               value = REF #( io_modify )             )
                                             ( name  = 'IR_PARAMETER'
                                               kind  = cl_abap_objectdescr=>exporting
                                               value = REF #( <fs_queue>-act_param )  )
                                             ( name  = 'EO_MESSAGE'
                                               kind  = cl_abap_objectdescr=>importing
                                               value = REF #( eo_message )            )
                                             ( name  = 'ET_FAILED_KEY'
                                               kind  = cl_abap_objectdescr=>importing
                                               value = REF #( et_failed_key )         ) ).

                    " Without action parameter
                  ELSE.
                    lt_parameter =  VALUE #( ( name  = 'IS_CTX'
                                               kind  = cl_abap_objectdescr=>exporting
                                               value = REF #( <fs_queue>-ctx )        )
                                             ( name  = 'IT_KEY'
                                               kind  = cl_abap_objectdescr=>exporting
                                               value = REF #( <fs_queue>-t_inst_key ) )
                                             ( name  = 'IO_READ'
                                               kind  = cl_abap_objectdescr=>exporting
                                               value = REF #( io_read )               )
                                             ( name  = 'IO_MODIFY'
                                               kind  = cl_abap_objectdescr=>exporting
                                               value = REF #( io_modify )             )
                                             ( name  = 'EO_MESSAGE'
                                               kind  = cl_abap_objectdescr=>importing
                                               value = REF #( eo_message )            )
                                             ( name  = 'ET_FAILED_KEY'
                                               kind  = cl_abap_objectdescr=>importing
                                               value = REF #( et_failed_key )         ) ).
                  ENDIF.

                  DATA(lr_action_intern) = /hec1/cl_config_action_intern=>get_instance( ).
                  CALL METHOD lr_action_intern->(lv_method_name) PARAMETER-TABLE lt_parameter.
                ENDIF.

              CATCH cx_sy_itab_line_not_found.
                "ToDo
                " write the failed key to ET_FAILED_KEY
                " Set message
                CONTINUE. " >>>>>>
            ENDTRY.

            "------------------------
            " BOPF action
            "------------------------
          WHEN abap_false.
            io_modify->do_action( EXPORTING iv_act_key              = <fs_queue>-act_key
                                            it_key                  = <fs_queue>-t_inst_key
                                            is_parameters           = <fs_queue>-act_param
                                  IMPORTING eo_message              = eo_message
                                            et_failed_key           = et_failed_key         ).
        ENDCASE.

        DELETE st_queue.
      ENDLOOP.
    ENDIF. " IF st_queue IS NOT INITIAL.


  ENDMETHOD.


  METHOD /hec1/if_config_det_general~set_act_node_keys_direct.

    CHECK: iv_action IS NOT INITIAL,
           it_key    IS NOT INITIAL.

    INSERT VALUE #( ctx           = is_ctx
                    act_key       = iv_action
                    act_param     = ir_act_param
                    act_execorder = iv_act_execorder
                    act_exectime  = COND #( WHEN iv_act_exectime IS INITIAL
                                            THEN /bobf/if_conf_c=>sc_time_after_modify
                                            ELSE iv_act_exectime                       )
                    t_inst_key   = it_key                                                ) INTO TABLE st_queue.

  ENDMETHOD.


  METHOD /BOBF/IF_FRW_DETERMINATION~EXECUTE.

    DATA: lt_parameter TYPE abap_parmbind_tab.

    " *************************************
    " Trigger the registerd actions
    " *************************************
    IF st_queue IS NOT INITIAL.
      SORT st_queue BY act_exectime  ASCENDING
                       act_execorder ASCENDING.

      LOOP AT st_queue ASSIGNING FIELD-SYMBOL(<fs_queue>)
       WHERE act_exectime = is_ctx-exectime.

        CASE <fs_queue>-act_internal.
            "------------------------
            " Internal action
            "------------------------
          WHEN abap_true.
            TRY.
                DATA(lv_method_name) = st_actmap[ act_key = <fs_queue>-act_key ]-act_methodname. "#EC CI_HASHSEQ

                IF lv_method_name IS NOT INITIAL.
                  " With action parameter
                  IF <fs_queue>-act_param IS BOUND.
                    lt_parameter =  VALUE #( ( name  = 'IS_CTX'
                                               kind  = cl_abap_objectdescr=>exporting
                                               value = REF #( <fs_queue>-ctx )        )
                                             ( name  = 'IT_KEY'
                                               kind  = cl_abap_objectdescr=>exporting
                                               value = REF #( <fs_queue>-t_inst_key ) )
                                             ( name  = 'IO_READ'
                                               kind  = cl_abap_objectdescr=>exporting
                                               value = REF #( io_read )               )
                                             ( name  = 'IO_MODIFY'
                                               kind  = cl_abap_objectdescr=>exporting
                                               value = REF #( io_modify )             )
                                             ( name  = 'IR_PARAMETER'
                                               kind  = cl_abap_objectdescr=>exporting
                                               value = REF #( <fs_queue>-act_param )  )
                                             ( name  = 'EO_MESSAGE'
                                               kind  = cl_abap_objectdescr=>importing
                                               value = REF #( eo_message )            )
                                             ( name  = 'ET_FAILED_KEY'
                                               kind  = cl_abap_objectdescr=>importing
                                               value = REF #( et_failed_key )         ) ).

                    " Without action parameter
                  ELSE.
                    lt_parameter =  VALUE #( ( name  = 'IS_CTX'
                                               kind  = cl_abap_objectdescr=>exporting
                                               value = REF #( <fs_queue>-ctx )        )
                                             ( name  = 'IT_KEY'
                                               kind  = cl_abap_objectdescr=>exporting
                                               value = REF #( <fs_queue>-t_inst_key ) )
                                             ( name  = 'IO_READ'
                                               kind  = cl_abap_objectdescr=>exporting
                                               value = REF #( io_read )               )
                                             ( name  = 'IO_MODIFY'
                                               kind  = cl_abap_objectdescr=>exporting
                                               value = REF #( io_modify )             )
                                             ( name  = 'EO_MESSAGE'
                                               kind  = cl_abap_objectdescr=>importing
                                               value = REF #( eo_message )            )
                                             ( name  = 'ET_FAILED_KEY'
                                               kind  = cl_abap_objectdescr=>importing
                                               value = REF #( et_failed_key )         ) ).
                  ENDIF.

                  DATA(lr_action_intern) = /hec1/cl_config_action_intern=>get_instance( ).
                  CALL METHOD lr_action_intern->(lv_method_name) PARAMETER-TABLE lt_parameter.
                ENDIF.

              CATCH cx_sy_itab_line_not_found.
                "ToDo
                " write the failed key to ET_FAILED_KEY
                " Set message
                CONTINUE. " >>>>>>
            ENDTRY.

            "------------------------
            " BOPF action
            "------------------------
          WHEN abap_false.
            io_modify->do_action( EXPORTING iv_act_key              = <fs_queue>-act_key
                                            it_key                  = <fs_queue>-t_inst_key
                                            is_parameters           = <fs_queue>-act_param
                                  IMPORTING eo_message              = eo_message
                                            et_failed_key           = et_failed_key         ).
        ENDCASE.

        DELETE st_queue.
      ENDLOOP.
    ENDIF. " IF st_queue IS NOT INITIAL.


  ENDMETHOD.
ENDCLASS.
