Hi,
Are you talking about the fields which can be extracted also from trans_total datasource? I'm planning to remove them too since users don't use them anyway..
Here is the new BADI code:
method IF_EX_RSU5_SAPI_BADI~DATA_TRANSFORM.
CHECK i_datasource = '0RT_PA_TRAN_CONTROL'.
DATA: lt_data TYPE TABLE OF /POSDW/BW_RETAIL_CONTROL.
FIELD-SYMBOLS: <ls_data> TYPE /POSDW/BW_RETAIL_CONTROL.
*----------------------------------------------------------------*
* Internal table for /POSDW/TLOGF
*----------------------------------------------------------------*
TYPES:
BEGIN OF ty_tran_control,
FIELDGROUP TYPE /POSDW/BW_RETAIL_CONTROL-FIELDGROUP,
FIELDNAME TYPE /POSDW/BW_RETAIL_CONTROL-FIELDNAME,
FIELDVALUE TYPE /POSDW/BW_RETAIL_CONTROL-FIELDVALUE,
RETAILSTOREID TYPE /POSDW/BW_RETAIL_CONTROL-RETAILSTOREID,
BUSINESSDAYDATE TYPE /POSDW/BW_RETAIL_CONTROL-BUSINESSDAYDATE,
TRANSINDEX TYPE /POSDW/BW_RETAIL_CONTROL-TRANSINDEX,
ROWKEY type /POSDW/TLOGF-ROWKEY,
END OF ty_tran_control.
DATA:
lt_tran_control type standard table of ty_tran_control,
ls_tran_control type ty_tran_control.
lt_data[] = c_t_data[].
*----------------------------------------------------------------*
* Read data into internal memory
*----------------------------------------------------------------*
select
FIELDGROUP
FIELDNAME
FIELDVALUE
RETAILSTOREID
BUSINESSDAYDATE
TRANSINDEX
ROWKEY
from /POSDW/TLOGF
into table lt_tran_control
for all entries in lt_data
where
RETAILSTOREID = lt_data-RETAILSTOREID and
BUSINESSDAYDATE = lt_data-BUSINESSDAYDATE and
TRANSINDEX = lt_data-TRANSINDEX and
FIELDNAME = 'MIN'.
sort lt_tran_control by RETAILSTOREID DESCENDING
BUSINESSDAYDATE DESCENDING
TRANSINDEx DESCENDING
fieldgroup DESCENDING
fieldname DESCENDING
fieldvalue DESCENDING.
delete ADJACENT DUPLICATES FROM lt_tran_control COMPARING RETAILSTOREID BUSINESSDAYDATE TRANSINDEX.
LOOP AT lt_data ASSIGNING <ls_data>.
read table lt_tran_control into ls_tran_control
with key
RETAILSTOREID = <ls_data>-RETAILSTOREID
BUSINESSDAYDATE = <ls_data>-BUSINESSDAYDATE
TRANSINDEX = <ls_data>-TRANSINDEX.
if sy-subrc eq 0.
<ls_data>-FIELDGROUP = ls_tran_control-FIELDGROUP.
<ls_data>-FIELDNAME = ls_tran_control-FIELDNAME.
<ls_data>-FIELDVALUE = ls_tran_control-FIELDVALUE.
endif.
ENDLOOP.
REFRESH c_t_data.
c_t_data[] = lt_data[].
endmethod.
What internal table? I debug it and the error occurs in line 547 below..I'm wondering how to know the FIELD or DATA which causes the error..Do you have any idea?
Thank you..
Loed