Skip to Content
author's profile photo
Former Member

Deletion of request through Process Chain

Hi experts,

I think I have a tricky situation while deletion of a request from an InfoCube.

I have a process that updates an InfoCube from itself. In other words there exists a DTP that extracts from Cube A, performs some transformations, and then writes back in Cube A. Obviously this is a full update.

So far so good. Now I want to run this DTP in a Process Chain. BUT beforehand I need to delete the old request .

My problem now is that there is no appropriate Process type available.

- I can't use complete deletetion from a target, because this InfoCube contains other requests from other sources as well.

- I can't use overlapping deletion because it requires to run the referencing load DTP BEFORE the deletion

I want

1) delete the request that comes from DTP Cube A -> Cube A

2) run DTP Cube A -> Cube A

Any idea of how I can realize this ?

Thanks

Add comment
10|10000 characters needed characters exceeded

  • Follow
  • Get RSS Feed

2 Answers

  • Best Answer
    author's profile photo
    Former Member
    Posted on May 05, 2011 at 10:03 AM

    hi,

    You can achieve this by writing a routine in the DTP while loading to cube A.

    In the DTP Cube A --> Cube A there will be field Request ID in the filters. Write a routine on this field and in the routine fetch the value of the last request which was loaded through the same DTP (you can find that by comparing the technical name of the DTP's) i.e. last successful request of DTP Cube A --> Cube A, once you have this request exclude this request in the current load.

    And introduce a delete overlapping request after this step in process chain.

    regards,

    Arvind.

    Add comment
    10|10000 characters needed characters exceeded

  • author's profile photo
    Former Member
    Posted on May 05, 2011 at 10:04 AM

    Hi there,

    I don't understand what's your issue...

    You have on a daily basis the request that comed from Cube A to Cube A (the request from yesterday). You want to first delete this request and after run the DTP.

    Why can't you do the other way around? I.e., first load the data from cube A to cube A, and then delete the overlapping requests from the same source and also from the same DTP?

    If you don't want to load from cube A to cube A the data from previous requests, but only for the day of the execution, you could filter that information in the DTP execution.

    Regards,

    Diogo.

    Add comment
    10|10000 characters needed characters exceeded

    • Former Member Former Member

      Hi there again.

      Ok, I think you can use another approach...

      Choose the process type of delete overlapp requests first.

      Use the option of Delete Existing requests and in the conditions don't choose anything. On the selections choose Same or more comprehensive. In the exceptions mark the option of "request selection Through routine".

      Here you can use a routine in ABAP code to append or remove the requests you wish to delete, this will be in the table l_t_request_to_delete

      In here, you can let all the requests inside the table that have the DTP = the_DTP_from_cube_a_to_cube_a

      This will delete all the requests that exist in the infocube from cube a to cube a.

      This will garantee that only those requests will be removed from the infocube.

      You can then execute the load from cube a to cube a after this step.

      Hope this helps.

      Regards,

      Diogo.