Hi Gareth,
So here is what I did:
DATASOURCE -> NEW_DSO
1. Added the Change_Flag field
2. Added an end routine
***working fine already
SALES_DSO -> ANOTHER_DSO -> CUBE
3. Added the field routine in Status_Code and Status_Date
4. Created a DELTA DTP
5. Created a FULL DTP with routine
FOR CUSTOMER:
data: l_idx like sy-tabix.
read table l_t_range with key
fieldname = 'CUSTOMER'.
l_idx = sy-tabix.
*....
data: it_pack type STANDARD TABLE OF NEW_DSO,
wa_pack like LINE OF it_pack.
select CUSTOMER
from NEW_DSO
into CORRESPONDING FIELDS OF TABLE it_pack
where CHANGE_FLAG = 'X'.
delete ADJACENT DUPLICATES FROM it_pack.
if sy-subrc = 0.
loop at it_pack into wa_pack.
l_t_range-IOBJNM = 'CUSTOMER'.
l_t_range-FIELDNAME = 'CUSTOMER'.
l_t_range-sign = 'I'.
l_t_range-option = 'EQ'.
l_t_range-low = wa_pack-CUSTOMER.
APPEND l_t_range.
endloop.
else.
l_t_range-IOBJNM = 'CUSTOMER'.
l_t_range-FIELDNAME = 'CUSTOMER'.
l_t_range-sign = 'I'.
l_t_range-option = 'EQ'.
l_t_range-low = ''.
endif.
if l_idx <> 0.
modify l_t_range index l_idx.
else.
append l_t_range.
endif.
p_subrc = 0.
FOR CALDAY (i will only load last 2 months of data):
data: l_idx like sy-tabix.
read table l_t_range with key
fieldname = 'CALDAY'.
l_idx = sy-tabix.
*....
data: yest_date like sy-datum,
first_date1 like sy-datum,
first_date2 like sy-datum,
temp_date like sy-datum.
data: it_pack type STANDARD TABLE OF NEW_DSO,
wa_pack like LINE OF it_pack.
select CUSTOMER
from NEW_DSO
into CORRESPONDING FIELDS OF TABLE it_pack
where CHANGE_FLAG = 'X'.
*if current day is March 16, 2015
yest_date = sy-datum - 1.
if sy-subrc = 0.
*result is March 1, 2015
CONCATENATE yest_date(6) '01' into first_date1.
*result is February 28,2015
first_date1 = first_date1 - 1.
*result is February 1, 2015
CONCATENATE first_date1(6) '01' into first_date2.
*result is January 31, 2015
first_date2 = first_date2 - 1.
*result is January 1, 2015
CONCATENATE first_date2(6) '01' into temp_date.
l_t_range-IOBJNM = 'CALDAY'.
l_t_range-FIELDNAME = 'CALDAY'.
l_t_range-sign = 'I'.
l_t_range-option = 'BT'.
l_t_range-low = temp_date.
l_t_range-high = yest_date.
else.
l_t_range-IOBJNM = 'CALDAY'.
l_t_range-FIELDNAME = 'CALDAY'.
l_t_range-sign = 'I'.
l_t_range-option = 'EQ'.
l_t_range-low = yest_date.
endif.
if l_idx <> 0.
modify l_t_range index l_idx.
else.
append l_t_range.
endif.
p_subrc = 0.
Here is my process chain:
START
|
DATASOURCE (infopackage)
|
NEW_DSO (dtp)
|
ACTIVATE NEW_DSO
|
ANOTHER_DSO (delta dtp from SALES_DSO)
|
ANOTHER_DSO (full dtp from SALES_DSO)
|
ACTIVATE ANOTHER_DSO
However, loading in FULL DTP for ANOTHER_DSO takes a long time if there are NO CHANGES for the statuses in a day..I can't debug it, my PC hangs when I try to debug it..After several hours of loading, I can see that FULL DTP takes all records from SALES_DSO..
Can you check my codes? Thank you..
Regards,
Loed