0

I wrote a test class and tried to run it from RSPLAN.

I created a planning function in RSPLF1 with these settings:

  • "without blocks"
  • "process empty records"

I enter the planning sequence in RSPLAN, but when I start it, I get a dump:

UNCAUGHT_EXCEPTION
CX_RSR_X_MESSAGE
SAPLRRMS
BW4-AE

I created a class using the standard interfaces IF_RSPLFA_SRVTYPE_IMP_EXEC and IF_RSPLFA_SRVTYPE_TREX_EXEC, and ES_DATA - completely replicates the aggregation level on which my planning sequence is based.

aggregation level

My full class:

CLASS zicl_rspls_script DEFINITION
  PUBLIC FINAL
  CREATE PUBLIC.

  PUBLIC SECTION.
    INTERFACES if_amdp_marker_hdb.
    INTERFACES if_rsplfa_srvtype_imp_exec.
    INTERFACES if_rsplfa_srvtype_trex_exec.

    TYPES:
      BEGIN OF es_data,
        infoprov  TYPE rsinfoprov,
        icaccfem  TYPE /bic/oiicaccfem,
        icbunit   TYPE /bic/oiicbunit,
        icesuvers TYPE /bic/oiicesuvers,
        icfipasst TYPE /bic/oiicfipasst,
        icfipproj TYPE /bic/oiicfipproj,
        icinesuvr TYPE /bic/oiicinesuvr,
        icrstep   TYPE /bic/oiicrstep,
        icvrplfem TYPE /bic/oiicvrplfem,
        ifkeyfig  TYPE /bic/oiifkeyfig,

      END OF es_data.

    " Table type
    TYPES et_data TYPE STANDARD TABLE OF es_data WITH EMPTY KEY.

    CLASS-METHODS r_calc
      IMPORTING VALUE(i_view) TYPE  et_data
      EXPORTING VALUE(e_view) TYPE  et_data.

ENDCLASS.


CLASS zicl_rspls_script IMPLEMENTATION.
  METHOD if_rsplfa_srvtype_imp_exec~execute.
  ENDMETHOD.

  METHOD if_rsplfa_srvtype_imp_exec~finish_execution.
  ENDMETHOD.

  METHOD if_rsplfa_srvtype_trex_exec~init_and_check.
    e_trex_supported = rs_c_true.
  ENDMETHOD.

  METHOD if_rsplfa_srvtype_imp_exec~init_execution.
  ENDMETHOD.

  METHOD if_rsplfa_srvtype_trex_exec~trex_execute.
    DATA lr_sql_script     TYPE REF TO if_rspls_sql_script.
    DATA lv_procedure_name TYPE string.
    DATA lt_iobj_param     TYPE if_rsr_pe_adapter=>tn_t_iobj_param.

    lr_sql_script = cl_rspls_session_store_manager=>get_sql_script_instance(
                        i_r_store = i_r_store ).

    lr_sql_script->get_parameter_values(
      EXPORTING i_r_param_set             = i_r_param_set
                i_para_name_for_procedure = 'R_CALC'
      IMPORTING e_procedure_name          = lv_procedure_name
                e_t_iobj_param            = lt_iobj_param ).

    lv_procedure_name = 'ZICL_RSPLS_SCRIPT=>R_CALC'.
    r_s_view-view = lr_sql_script->execute_sql_script(
                        i_view                  = i_view
                        i_t_iobj_param          = lt_iobj_param
                        i_proc_name             = lv_procedure_name
                        i_sql_script_returns_ai = abap_true
                        i_r_msg                 = i_r_msg ).
  ENDMETHOD.

  METHOD r_calc BY DATABASE PROCEDURE FOR HDB
                LANGUAGE SQLSCRIPT
                OPTIONS READ-ONLY.
    E_VIEW = SELECT * FROM I_VIEV;
  ENDMETHOD.
ENDCLASS.

If I start debugging, it crashes inside the call to the method execute_sql_script, marked below with -->:

    lv_procedure_name = 'ZICL_RSPLS_SCRIPT=>R_CALC'.
--> r_s_view-view = lr_sql_script->execute_sql_script(
                        i_view                  = i_view
                        i_t_iobj_param          = lt_iobj_param
                        i_proc_name             = lv_procedure_name
                        i_sql_script_returns_ai = abap_true
                        i_r_msg                 = i_r_msg ).

If I go further inside execute_sql_script, there are some standard functions written by SAP. Since the dump is standard, I think there is an error somewhere in the declaration/syntax, but I can't find it.

The program does not even enter the method R_CALC.

Below is a source code snippet from the dump message

   *... keine Meldung, wenn kein Handler initialisiert
        IF g_active IS INITIAL.
          return.
        ELSE.
          l_type = 'W'.
        ENDIF.
    
        " if i_r_previous was passed, also print out the exception
        IF i_r_previous IS BOUND.
          CALL FUNCTION 'RRMS_EXCEPTION_HANDLING'
            EXPORTING
              i_r_exception = i_r_previous
              i_msgty       = l_type.
        ENDIF.
    
        CALL FUNCTION 'RRMS_MESSAGE_HANDLING'
          EXPORTING
            i_class  = 'BRAIN'
            i_type   = l_type
            i_number = '299'
            i_msgv1  = i_program
            i_msgv2  = i_text.
    
      ELSE.
        DATA: l_text  TYPE string,
              l_repid TYPE syrepid.
    
        l_repid = i_program.
        l_text  = i_text.
    
  -->  RAISE EXCEPTION TYPE cx_rsr_x_message
          EXPORTING
            text     = l_text
                     program = l_repid
                     previous = i_r_previous.
      ENDIF.
    
    ENDFUNCTION.

l_text = MATERIALIZE_VIEW-03
l_repid = CL_RSPLS_SESSION_STORE_MANAGER

Contents of system fields

SY-SUBRC 0
SY-INDEX 1
SY-TABIX 0
SY-DBCNT 1
SY-FDPOS 40
SY-LSIND 0
SY-PAGNO 0
SY-LINNO 1
SY-COLNO 1
SY-PFKEY STATUS_2000
SY-UCOMM
SY-TITLE View scheduling sequence
SY-MSGTY E
SY-MSGID RSR_PE
SY-MSGNO 005
SY-MSGV1 2.048
SY-MSGV2 column store error: alterPlanningSession error:
SY-MSGV3 [38001] Session ‘2024122811113532_9870660’ not
SY-MSGV4 valid.#Last error: Condition ‘pi-
SY-MODNO 0
SY-DATUM 20241228
SY-UZEIT 143532
SY-XPROG SAPLRSR_TRANSACTION_HANDLING
SY-XFORM XAB_WFLUSH

I've been trying to find something about the error RSR_PE 005 2.048. On the saphelp forum there was a solution to change the field names in the internal table to different ones from the aggregation level, but unfortunately it didn't help me.

I will be glad for any help/advice.

4
  • 1
    Bug due to a typo in the procedure name? (one space in front of ' ZICL_RSPLS_SCRIPT=>R_CALC') Note that the dump contains more information about the error, but you have given only the 4 first lines. The exception object CX_RSR_X_MESSAGE also contains more information about the issue. Commented Dec 27, 2024 at 16:07
  • @SandraRossi Regarding the problem with the space in the procedure name, it came up while editing the question on the site. The procedure name itself does not contain a space in the system, and I have corrected it here. Regarding CX_RSR_X_MESSAGE, I have included the information I could find in this post. Unfortunately, I am not very experienced in analysing ABAP dumps. If you could advise me where to look, I would appreciate it. Commented Dec 28, 2024 at 11:55
  • I have fixed your question ('ZICL_RSPLS_SCRIPT=>R_CALC'). Could you attach the short dump then? Commented Dec 29, 2024 at 9:41
  • It's i_r_previous that contains closer exception details (which may itself refer to a previous one and so on). The SAP note 2426974 - Detailing UNCAUGHT_EXCEPTION error in BWIP also explains how to get more information (ask your SAP administrator an "S-User" to view it). There is also the SAP note 2866051 - PE error 2,048: column store error: alterPlanningSession error: [38001] Commented Dec 29, 2024 at 10:10

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.