cancel
Showing results for 
Search instead for 
Did you mean: 

DTP Request

sameer_mehta
Participant
0 Kudos

Hi,

I am writing a transformation from source to target. Source is header DSO while target is a merged DSO i.e. it will have merge records from header and item DSO. So, I am appending additional records in result_package while while writting routine for some of the fields.

Now the problem is after I run DTP a request gets generated and when I check new data table it gets populated accurately i.e. according to the transformation but the prblem lies when I activate the request. After activating the request data gets moved from new data table to active data table but some of the non-key fields of the target DSO for which I have written transformation doesnot gets populated. Dont know why...Please help.

I am also getting one error while activating the DTP request: activation sid for datastore object changed while activating the request.

Accepted Solutions (1)

Accepted Solutions (1)

anshu_lilhori
Active Contributor
0 Kudos

Hi,

I guess you have written end routine and the reason that your field is not getting updated can be-Just double click on trasnformation beside end routine one icon is there (Update behavior of fields of end routine). Click on that icon and select the radio buttonAll target fields(Independent of active rules).

Activate the transformation again and execute the dtp and check if data gets updated or not.

Plesae let me know if this helps or not.

Regards,

AL

sameer_mehta
Participant
0 Kudos

Hi,

Thank you very much for your help. It is working now.

I have one more doubt regarding my code logic of end routine.

1st Method - I am refreshing RESULT_PACKAGE at the start of END_ROUTINE then I am filling the result_package through global internal table (which i have filled in start routine). i.e.

REFRESH RESULT_PACKAGE.

loop at gt_src_pack into lwa_imsrc_pack.

some code....

append work area to RESULT_PACKAGE.

endloop.

2nd Mehthod: I am looping RESULT_PACKAGE and then reading the contents through global internal table and filling another internal table which is of type result_package then refreshing the RESULT_PACKAGE and then transferring contents of internal table to RESULT_PACKAGE i.e.

loop at RESULT_PACKAGE assigning <result_fields>.

some code....

append <result_fields> to lt_result_package

endloop.

REFRESH: RESULT_PACKAGE.

RESULT_PACKAGE[] = lt_result_package[].

Please tell which method is a better one...??

anshu_lilhori
Active Contributor
0 Kudos

Hi,

As i am not a good abaper so i cant give you any hints or guidelines regarding performance of code.

First select statement should be there in code so that at one shot you select all the data and hit the database once.

After that you can apply loop then read table.

Hope it helps.

Regards,

AL

Answers (0)