on 02-05-2014 9:20 AM
Hi,
I have a transformation from DSO to Cube.Some data manipulation is done Start_Routine.i have used an INCLUDE to write my logic.
I have used and an internal table of type source_package with an extra flag at the last.and after all my calculation i am doing a REFRESH in Source_Package and moving my internal table data to Source_Package.
When i am doing DTP simulation i can see that all the records are correctly calculated and moved to Source_Package but when i display the actual data loaded in cube its not the same.For half records the calculation is absolutely correct but for rest it seems like the code is not applied i;e the calculation is not done.
Kindly Help on this.
Appreciate your quick reply.
Thanks,
Anil K.
You need to get your code rectified and debuged if it has some issue.Without seeing the code it is difficult to decipher and conclude something at least in my eyes.
Regards,
AL
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
HI Anil,
if you possible please share the start routine code and what you want achieve.
Thanks,
Phani.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Phani,
Below is code i am using.
**************************************************************************************************************
SORT source_package STABLE BY rt_serial /bic/zdateopen ASCENDING.
gt_source_package[] = source_package[].
LOOP AT gt_source_package ASSIGNING <fs_result>.
lv_tabix1 = sy-tabix.
lv_tabix2 = sy-tabix + 1.
CLEAR : lv_match.
AT NEW ship_to.
lv_ship_to = <fs_result>-ship_to.
ENDAT.
SELECT SINGLE timesec FROM zam_time INTO lv_timesec.
READ TABLE gt_source_package INTO gw_source_package INDEX lv_tabix2.
IF sy-subrc = 0.
IF ( lv_ship_to = gw_source_package-ship_to ).
IF <fs_result>-/bic/zdatclose EQ gw_source_package-/bic/zdateopen .
IF <fs_result>-/bic/ztimclose LT gw_source_package-/bic/ztimeopen.
CALL FUNCTION 'SCOV_TIME_DIFF'
EXPORTING
im_date1 = <fs_result>-/bic/zdatclose
im_date2 = gw_source_package-/bic/zdateopen
im_time1 = <fs_result>-/bic/ztimclose
im_time2 = gw_source_package-/bic/ztimeopen
IMPORTING
ex_days = lv_days
ex_time = lv_time
EXCEPTIONS
start_larger_than_end = 1
OTHERS = 2.
IF sy-subrc <> 0.
ENDIF.
IF lv_time LE lv_timesec."'00:01:00'.
<fs_result>-c_x = 'X'.
*******Logic for Entr no concatenation*******
IF <fs_result>-/bic/zentrymat IS INITIAL.
CONCATENATE <fs_result>-/bic/zentryno
','
gw_source_package-/bic/zentryno
INTO gw_source_package-/bic/zentrymat.
ELSE.
CONCATENATE <fs_result>-/bic/zentrymat
','
gw_source_package-/bic/zentryno
INTO gw_source_package-/bic/zentrymat.
ENDIF.
*******Logic for Entr no concatenation*******
gw_source_package-/bic/ztimeopen = <fs_result>-/bic/ztimeopen.
gw_source_package-/bic/zdateopen = <fs_result>-/bic/zdateopen.
gw_source_package-rt_serial = gw_source_package-rt_serial.
gw_source_package-/bic/zbillbltm = gw_source_package-/bic/zbillbltm + <fs_result>-/bic/zbillbltm.
gw_source_package-/bic/zadjdiff = gw_source_package-/bic/zadjdiff + <fs_result>-/bic/zadjdiff.
gw_source_package-/bic/ztotalhr = gw_source_package-/bic/zbillbltm - gw_source_package-/bic/zadjdiff .
MODIFY gt_source_package INDEX lv_tabix2 FROM gw_source_package
TRANSPORTING /bic/zentrymat
/bic/ztimeopen
/bic/zdateopen
rt_serial
/bic/zbillbltm
/bic/zadjdiff
/bic/ztotalhr
c_x.
ELSE.
gw_source_package-/bic/ztotalhr = gw_source_package-/bic/zbillbltm - gw_source_package-/bic/zadjdiff .
MODIFY gt_source_package FROM gw_source_package TRANSPORTING /bic/ztotalhr.
ENDIF.
ELSEIF <fs_result>-/bic/ztimclose GT gw_source_package-/bic/ztimeopen.
CALL FUNCTION 'SCOV_TIME_DIFF'
EXPORTING
im_date1 = <fs_result>-/bic/zdatclose
im_date2 = gw_source_package-/bic/zdateopen
im_time1 = gw_source_package-/bic/ztimeopen
im_time2 = <fs_result>-/bic/ztimclose
IMPORTING
ex_days = lv_days
ex_time = lv_time
EXCEPTIONS
start_larger_than_end = 1
OTHERS = 2.
IF sy-subrc <> 0.
ENDIF.
IF lv_time LE lv_timesec."'00:01:00'.
<fs_result>-c_x = 'X'.
*******Logic for Entr no concatenation*******
IF <fs_result>-/bic/zentrymat IS INITIAL.
CONCATENATE <fs_result>-/bic/zentryno
','
gw_source_package-/bic/zentryno
INTO gw_source_package-/bic/zentrymat.
ELSE.
CONCATENATE <fs_result>-/bic/zentrymat
','
gw_source_package-/bic/zentryno
INTO gw_source_package-/bic/zentrymat.
ENDIF.
*******Logic for Entr no concatenation*******
gw_source_package-/bic/ztimeopen = <fs_result>-/bic/ztimeopen.
gw_source_package-/bic/zdateopen = <fs_result>-/bic/zdateopen.
gw_source_package-rt_serial = gw_source_package-rt_serial.
gw_source_package-/bic/zbillbltm = gw_source_package-/bic/zbillbltm + <fs_result>-/bic/zbillbltm.
gw_source_package-/bic/zadjdiff = gw_source_package-/bic/zadjdiff + <fs_result>-/bic/zadjdiff.
gw_source_package-/bic/ztotalhr = gw_source_package-/bic/zbillbltm - gw_source_package-/bic/zadjdiff .
MODIFY gt_source_package INDEX lv_tabix2 FROM gw_source_package
TRANSPORTING /bic/zentrymat
/bic/ztimeopen
/bic/zdateopen
rt_serial
/bic/zbillbltm
/bic/zadjdiff
/bic/ztotalhr
c_x.
ELSE.
gw_source_package-/bic/ztotalhr = gw_source_package-/bic/zbillbltm - gw_source_package-/bic/zadjdiff .
MODIFY gt_source_package FROM gw_source_package TRANSPORTING /bic/ztotalhr.
ENDIF.
ENDIF.
ELSEIF <fs_result>-/bic/zdatclose GT gw_source_package-/bic/zdateopen .
CALL FUNCTION 'SCOV_TIME_DIFF'
EXPORTING
im_date1 = gw_source_package-/bic/zdateopen
im_date2 = <fs_result>-/bic/zdatclose
im_time1 = gw_source_package-/bic/ztimeopen
im_time2 = <fs_result>-/bic/ztimclose
IMPORTING
ex_days = lv_days
ex_time = lv_time
EXCEPTIONS
start_larger_than_end = 1
OTHERS = 2.
IF sy-subrc <> 0.
ENDIF.
IF lv_time LE lv_timesec."'00:01:00'.
<fs_result>-c_x = 'X'.
*******Logic for Entr no concatenation*******
IF <fs_result>-/bic/zentrymat IS INITIAL.
CONCATENATE <fs_result>-/bic/zentryno
','
gw_source_package-/bic/zentryno
INTO gw_source_package-/bic/zentrymat.
ELSE.
CONCATENATE <fs_result>-/bic/zentrymat
','
gw_source_package-/bic/zentryno
INTO gw_source_package-/bic/zentrymat.
ENDIF.
*******Logic for Entr no concatenation*******
gw_source_package-/bic/ztimeopen = <fs_result>-/bic/ztimeopen.
gw_source_package-/bic/zdateopen = <fs_result>-/bic/zdateopen.
gw_source_package-rt_serial = gw_source_package-rt_serial.
gw_source_package-/bic/zbillbltm = gw_source_package-/bic/zbillbltm + <fs_result>-/bic/zbillbltm.
gw_source_package-/bic/zadjdiff = gw_source_package-/bic/zadjdiff + <fs_result>-/bic/zadjdiff.
gw_source_package-/bic/ztotalhr = gw_source_package-/bic/zbillbltm - gw_source_package-/bic/zadjdiff .
MODIFY gt_source_package INDEX lv_tabix2 FROM gw_source_package
TRANSPORTING /bic/zentrymat
/bic/ztimeopen
/bic/zdateopen
rt_serial
/bic/zbillbltm
/bic/zadjdiff
/bic/ztotalhr
c_x.
ELSE.
gw_source_package-/bic/ztotalhr = gw_source_package-/bic/zbillbltm - gw_source_package-/bic/zadjdiff .
MODIFY gt_source_package FROM gw_source_package TRANSPORTING /bic/ztotalhr.
ENDIF.
ELSEIF gw_source_package-/bic/zdateopen GT <fs_result>-/bic/zdatclose .
CALL FUNCTION 'SCOV_TIME_DIFF'
EXPORTING
im_date1 = <fs_result>-/bic/zdatclose
im_date2 = gw_source_package-/bic/zdateopen
im_time1 = <fs_result>-/bic/ztimclose
im_time2 = gw_source_package-/bic/ztimeopen
IMPORTING
ex_days = lv_days
ex_time = lv_time
EXCEPTIONS
start_larger_than_end = 1
OTHERS = 2.
IF sy-subrc <> 0.
ENDIF.
IF lv_time LE lv_timesec."'00:01:00'.
<fs_result>-c_x = 'X'.
*******Logic for Entr no concatenation*******
IF <fs_result>-/bic/zentrymat IS INITIAL.
CONCATENATE <fs_result>-/bic/zentryno
','
gw_source_package-/bic/zentryno
INTO gw_source_package-/bic/zentrymat.
ELSE.
CONCATENATE <fs_result>-/bic/zentrymat
','
gw_source_package-/bic/zentryno
INTO gw_source_package-/bic/zentrymat.
ENDIF.
*******Logic for Entr no concatenation*******
gw_source_package-/bic/ztimeopen = <fs_result>-/bic/ztimeopen.
gw_source_package-/bic/zdateopen = <fs_result>-/bic/zdateopen.
gw_source_package-rt_serial = gw_source_package-rt_serial.
gw_source_package-/bic/zbillbltm = gw_source_package-/bic/zbillbltm + <fs_result>-/bic/zbillbltm.
gw_source_package-/bic/zadjdiff = gw_source_package-/bic/zadjdiff + <fs_result>-/bic/zadjdiff.
gw_source_package-/bic/ztotalhr = gw_source_package-/bic/zbillbltm - gw_source_package-/bic/zadjdiff .
MODIFY gt_source_package INDEX lv_tabix2 FROM gw_source_package
TRANSPORTING /bic/zentrymat
/bic/ztimeopen
/bic/zdateopen
rt_serial
/bic/zbillbltm
/bic/zadjdiff
/bic/ztotalhr
c_x.
ELSE.
gw_source_package-/bic/ztotalhr = gw_source_package-/bic/zbillbltm - gw_source_package-/bic/zadjdiff .
MODIFY gt_source_package FROM gw_source_package TRANSPORTING /bic/ztotalhr.
ENDIF.
ENDIF.
ELSE.
READ TABLE gt_source_package INTO gw_source_package INDEX lv_tabix1.
CLEAR gw_source_package-/bic/ztotalhr.
gw_source_package-/bic/ztotalhr = gw_source_package-/bic/zbillbltm - gw_source_package-/bic/zadjdiff .
MODIFY gt_source_package FROM gw_source_package TRANSPORTING /bic/ztotalhr.
ENDIF.
ELSE.
READ TABLE gt_source_package INTO gw_source_package INDEX lv_tabix1.
IF sy-subrc = 0.
gw_source_package-/bic/ztotalhr = gw_source_package-/bic/zbillbltm - gw_source_package-/bic/zadjdiff .
MODIFY gt_source_package FROM gw_source_package TRANSPORTING /bic/ztotalhr.
ENDIF.
ENDIF.
CLEAR : lv_days , lv_time , lv_timesec,gw_source_package.
ENDLOOP.
DELETE gt_source_package WHERE c_x = 'X'.
SORT gt_source_package BY /bic/zdateopen
/bic/ztimeopen ASCENDING.
***************
gt_source_package1[] = gt_source_package[].
LOOP AT gt_source_package1 ASSIGNING <fs_result1>.
lv_tabix3 = sy-tabix.
lv_tabix4 = sy-tabix + 1.
AT NEW ship_to.
lv_ship_to = <fs_result1>-ship_to.
ENDAT.
SELECT SINGLE timesec FROM zam_time INTO lv_timesec.
READ TABLE gt_source_package1 INTO gw_source_package1 INDEX lv_tabix4.
IF sy-subrc = 0.
IF ( lv_ship_to = gw_source_package1-ship_to ).
***********
IF <fs_result1>-/bic/zdatclose EQ gw_source_package1-/bic/zdateopen .
IF <fs_result1>-/bic/ztimclose LT gw_source_package1-/bic/ztimeopen.
CALL FUNCTION 'SCOV_TIME_DIFF'
EXPORTING
im_date1 = <fs_result1>-/bic/zdatclose
im_date2 = gw_source_package1-/bic/zdateopen
im_time1 = <fs_result1>-/bic/ztimclose
im_time2 = gw_source_package1-/bic/ztimeopen
IMPORTING
ex_days = lv_days
ex_time = lv_time
EXCEPTIONS
start_larger_than_end = 1
OTHERS = 2.
IF sy-subrc <> 0.
ENDIF.
IF lv_time LE lv_timesec."'00:01:00'.
<fs_result1>-c_x = 'X'.
*******Logic for Entr no concatenation*******
IF <fs_result1>-/bic/zentrymat IS INITIAL.
CONCATENATE <fs_result1>-/bic/zentryno
','
gw_source_package1-/bic/zentryno
INTO gw_source_package1-/bic/zentrymat.
ELSE.
CONCATENATE <fs_result1>-/bic/zentrymat
','
gw_source_package1-/bic/zentryno
INTO gw_source_package1-/bic/zentrymat.
ENDIF.
*******Logic for Entr no concatenation*******
gw_source_package1-/bic/ztimeopen = <fs_result1>-/bic/ztimeopen.
gw_source_package1-/bic/zdateopen = <fs_result1>-/bic/zdateopen.
gw_source_package1-rt_serial = gw_source_package1-rt_serial.
gw_source_package1-/bic/zbillbltm = gw_source_package1-/bic/zbillbltm + <fs_result1>-/bic/zbillbltm.
gw_source_package1-/bic/zadjdiff = gw_source_package1-/bic/zadjdiff + <fs_result1>-/bic/zadjdiff.
gw_source_package1-/bic/ztotalhr = gw_source_package1-/bic/zbillbltm - gw_source_package1-/bic/zadjdiff .
MODIFY gt_source_package1 INDEX lv_tabix4 FROM gw_source_package1
TRANSPORTING /bic/zentrymat
/bic/ztimeopen
/bic/zdateopen
rt_serial
/bic/zbillbltm
/bic/zadjdiff
/bic/ztotalhr
c_x.
ELSE.
gw_source_package1-/bic/ztotalhr = gw_source_package1-/bic/zbillbltm - gw_source_package1-/bic/zadjdiff .
MODIFY gt_source_package1 FROM gw_source_package1 TRANSPORTING /bic/ztotalhr.
ENDIF.
ELSEIF <fs_result1>-/bic/ztimclose GT gw_source_package1-/bic/ztimeopen.
CALL FUNCTION 'SCOV_TIME_DIFF'
EXPORTING
im_date1 = <fs_result1>-/bic/zdatclose
im_date2 = gw_source_package1-/bic/zdateopen
im_time1 = gw_source_package1-/bic/ztimeopen
im_time2 = <fs_result1>-/bic/ztimclose
IMPORTING
ex_days = lv_days
ex_time = lv_time
EXCEPTIONS
start_larger_than_end = 1
OTHERS = 2.
IF sy-subrc <> 0.
ENDIF.
IF lv_time LE lv_timesec."'00:01:00'.
<fs_result1>-c_x = 'X'.
*******Logic for Entr no concatenation*******
IF <fs_result1>-/bic/zentrymat IS INITIAL.
CONCATENATE <fs_result1>-/bic/zentryno
','
gw_source_package1-/bic/zentryno
INTO gw_source_package1-/bic/zentrymat.
ELSE.
CONCATENATE <fs_result1>-/bic/zentrymat
','
gw_source_package1-/bic/zentryno
INTO gw_source_package1-/bic/zentrymat.
ENDIF.
*******Logic for Entr no concatenation*******
gw_source_package1-/bic/ztimeopen = <fs_result1>-/bic/ztimeopen.
gw_source_package1-/bic/zdateopen = <fs_result1>-/bic/zdateopen.
gw_source_package1-rt_serial = gw_source_package1-rt_serial.
gw_source_package1-/bic/zbillbltm = gw_source_package1-/bic/zbillbltm + <fs_result1>-/bic/zbillbltm.
gw_source_package1-/bic/zadjdiff = gw_source_package1-/bic/zadjdiff + <fs_result1>-/bic/zadjdiff.
gw_source_package1-/bic/ztotalhr = gw_source_package1-/bic/zbillbltm - gw_source_package1-/bic/zadjdiff .
MODIFY gt_source_package1 INDEX lv_tabix4 FROM gw_source_package1
TRANSPORTING /bic/zentrymat
/bic/ztimeopen
/bic/zdateopen
rt_serial
/bic/zbillbltm
/bic/zadjdiff
/bic/ztotalhr
c_x.
ELSE.
gw_source_package1-/bic/ztotalhr = gw_source_package1-/bic/zbillbltm - gw_source_package1-/bic/zadjdiff .
MODIFY gt_source_package1 FROM gw_source_package1 TRANSPORTING /bic/ztotalhr.
ENDIF.
ENDIF.
ELSEIF <fs_result1>-/bic/zdatclose GT gw_source_package1-/bic/zdateopen .
CALL FUNCTION 'SCOV_TIME_DIFF'
EXPORTING
im_date1 = gw_source_package1-/bic/zdateopen
im_date2 = <fs_result1>-/bic/zdatclose
im_time1 = gw_source_package1-/bic/ztimeopen
im_time2 = <fs_result1>-/bic/ztimclose
IMPORTING
ex_days = lv_days
ex_time = lv_time
EXCEPTIONS
start_larger_than_end = 1
OTHERS = 2.
IF sy-subrc <> 0.
ENDIF.
IF lv_time LE lv_timesec."'00:01:00'.
<fs_result1>-c_x = 'X'.
*******Logic for Entr no concatenation*******
IF <fs_result1>-/bic/zentrymat IS INITIAL.
CONCATENATE <fs_result1>-/bic/zentryno
','
gw_source_package1-/bic/zentryno
INTO gw_source_package1-/bic/zentrymat.
ELSE.
CONCATENATE <fs_result1>-/bic/zentrymat
','
gw_source_package1-/bic/zentryno
INTO gw_source_package1-/bic/zentrymat.
ENDIF.
*******Logic for Entr no concatenation*******
gw_source_package1-/bic/ztimeopen = <fs_result1>-/bic/ztimeopen.
gw_source_package1-/bic/zdateopen = <fs_result1>-/bic/zdateopen.
gw_source_package1-rt_serial = gw_source_package1-rt_serial.
gw_source_package1-/bic/zbillbltm = gw_source_package1-/bic/zbillbltm + <fs_result1>-/bic/zbillbltm.
gw_source_package1-/bic/zadjdiff = gw_source_package1-/bic/zadjdiff + <fs_result1>-/bic/zadjdiff.
gw_source_package1-/bic/ztotalhr = gw_source_package1-/bic/zbillbltm - gw_source_package1-/bic/zadjdiff .
MODIFY gt_source_package1 INDEX lv_tabix4 FROM gw_source_package1
TRANSPORTING /bic/zentrymat
/bic/ztimeopen
/bic/zdateopen
rt_serial
/bic/zbillbltm
/bic/zadjdiff
/bic/ztotalhr
c_x.
ELSE.
gw_source_package1-/bic/ztotalhr = gw_source_package1-/bic/zbillbltm - gw_source_package1-/bic/zadjdiff .
MODIFY gt_source_package1 FROM gw_source_package1 TRANSPORTING /bic/ztotalhr.
ENDIF.
ELSEIF gw_source_package1-/bic/zdateopen GT <fs_result1>-/bic/zdatclose .
CALL FUNCTION 'SCOV_TIME_DIFF'
EXPORTING
im_date1 = <fs_result1>-/bic/zdatclose
im_date2 = gw_source_package1-/bic/zdateopen
im_time1 = <fs_result1>-/bic/ztimclose
im_time2 = gw_source_package1-/bic/ztimeopen
IMPORTING
ex_days = lv_days
ex_time = lv_time
EXCEPTIONS
start_larger_than_end = 1
OTHERS = 2.
IF sy-subrc <> 0.
ENDIF.
IF lv_time LE lv_timesec."'00:01:00'.
<fs_result1>-c_x = 'X'.
*******Logic for Entr no concatenation*******
IF <fs_result1>-/bic/zentrymat IS INITIAL.
CONCATENATE <fs_result1>-/bic/zentryno
','
gw_source_package1-/bic/zentryno
INTO gw_source_package1-/bic/zentrymat.
ELSE.
CONCATENATE <fs_result1>-/bic/zentrymat
','
gw_source_package1-/bic/zentryno
INTO gw_source_package1-/bic/zentrymat.
ENDIF.
*******Logic for Entr no concatenation*******
gw_source_package1-/bic/ztimeopen = <fs_result1>-/bic/ztimeopen.
gw_source_package1-/bic/zdateopen = <fs_result1>-/bic/zdateopen.
gw_source_package1-rt_serial = gw_source_package1-rt_serial.
gw_source_package1-/bic/zbillbltm = gw_source_package1-/bic/zbillbltm + <fs_result1>-/bic/zbillbltm.
gw_source_package1-/bic/zadjdiff = gw_source_package1-/bic/zadjdiff + <fs_result1>-/bic/zadjdiff.
gw_source_package1-/bic/ztotalhr = gw_source_package1-/bic/zbillbltm - gw_source_package1-/bic/zadjdiff .
MODIFY gt_source_package1 INDEX lv_tabix4 FROM gw_source_package1
TRANSPORTING /bic/zentrymat
/bic/ztimeopen
/bic/zdateopen
rt_serial
/bic/zbillbltm
/bic/zadjdiff
/bic/ztotalhr
c_x.
ELSE.
gw_source_package1-/bic/ztotalhr = gw_source_package1-/bic/zbillbltm - gw_source_package1-/bic/zadjdiff .
MODIFY gt_source_package1 FROM gw_source_package1 TRANSPORTING /bic/ztotalhr.
ENDIF.
ENDIF.
ELSE.
READ TABLE gt_source_package1 INTO gw_source_package1 INDEX lv_tabix3.
CLEAR gw_source_package-/bic/ztotalhr.
gw_source_package1-/bic/ztotalhr = gw_source_package1-/bic/zbillbltm - gw_source_package1-/bic/zadjdiff .
MODIFY gt_source_package1 FROM gw_source_package1 TRANSPORTING /bic/ztotalhr.
ENDIF.
ELSE.
READ TABLE gt_source_package1 INTO gw_source_package1 INDEX lv_tabix3.
IF sy-subrc = 0.
gw_source_package1-/bic/ztotalhr = gw_source_package1-/bic/zbillbltm - gw_source_package1-/bic/zadjdiff .
MODIFY gt_source_package1 FROM gw_source_package1 TRANSPORTING /bic/ztotalhr.
ENDIF.
ENDIF.
CLEAR : lv_days , lv_time , lv_timesec,gw_source_package1.
ENDLOOP.
*******Moving values to Source_package*******
DELETE gt_source_package1 WHERE c_x = 'X'.
REFRESH source_package.
source_package[] = gt_source_package1[] .
**************************************************************************************************************
Anil.
User | Count |
---|---|
90 | |
10 | |
10 | |
10 | |
7 | |
7 | |
6 | |
5 | |
4 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.