Skip to Content
0
Former Member
Jan 05, 2011 at 03:42 PM

data count mismatch between CT_DATA and internal table in BADI

113 Views

Hi all,

I am trying to understand why would there be different data count for CT_DATA and my internal table <lt_tx_data> in the code below. I am not restricting with any XDIM command. I run my BADI through UJK_SCRIPT_LOGIC_TESTER using *CALL_CUSTOM_LOGIC CUST_CALC_ACCT.

My data count is as follows in debug mode:

<LT_TX_DATA> Standard Table[16789x8(292)]

CT_DATA Standard Table[9259x9(332)]

break-point.
DATA: lo_dataref TYPE REF TO data.
DATA: lo_model  TYPE REF TO if_uj_model.
DATA: lo_appl TYPE REF TO cl_uja_application .

DATA: lt_appl_dim TYPE uja_t_appl_dim.
DATA: ls_appl_dim LIKE LINE OF lt_appl_dim.

DATA: lt_dim_name TYPE ujq_t_dim.
DATA: ls_dim_name LIKE LINE OF lt_dim_name.

DATA: lv_appset_id TYPE uj_appset_id VALUE 'Test_AppSet_DD'.
DATA: lv_application_id TYPE uj_appl_id VALUE 'PLANNING'.

FIELD-SYMBOLS: <lt_tx_data> TYPE STANDARD TABLE.

* Get applications dimensions
CREATE OBJECT lo_appl
  EXPORTING
    i_appset_id      = lv_appset_id
    i_application_id = lv_application_id.

REFRESH lt_appl_dim.
lo_appl->get_appl_dim(
          EXPORTING
              i_appl_id   = lv_application_id
          IMPORTING
              et_appl_dim = lt_appl_dim ).

* populate internal table for SQE call
REFRESH lt_dim_name.
LOOP AT lt_appl_dim INTO ls_appl_dim.
  ls_dim_name = ls_appl_dim-dimension.
  APPEND ls_dim_name TO lt_dim_name.
ENDLOOP.

* Get the structure of the result
TRY.
    lo_model = cl_uj_model=>get_model( lv_appset_id ).
    lo_model->create_tx_data_ref(
     EXPORTING
       i_appl_name  = lv_application_id
       i_type       = 'T'
       it_dim_name  = lt_dim_name
       if_tech_name = space
     IMPORTING
       er_data      = lo_dataref ).
  CATCH cx_uj_static_check.
ENDTRY.

ASSIGN lo_dataref->* TO <lt_tx_data>.

* Call SQE to read transaction data
TRY.
    CALL FUNCTION 'UJQ_RUN_RSDRI_QUERY'
      EXPORTING
        i_appset_id       = lv_appset_id
        i_appl_id         = lv_application_id
        it_dim_name       = lt_dim_name
        if_check_security = abap_false
      IMPORTING
        et_data           = <lt_tx_data>.
  CATCH cx_ujq_exception.

ENDTRY.

thanks in advance.

Diksha.