Skip to Content

Delta Initialisation via an ABAP program

In this weblog I would be covering how to carry out Initialisation of delta programmatically.  As per our normal process we need to manually delete the previous init using Scheduler –> Initializations Options for source system. This step needs to be done manually whenever we do an init run.  Here’s a way out of this. In case we need to carry out the same programmatically the steps are as follows  1)     Create an infopackage with update type as ‘Init’.      We can even create infopackages manually using BAPIs as depicted in this article.How to Create and Delete InfoPackages with BAPI    However, my experience made me understand that we cannot create Init infopackages using this, atleast in BW 3.5. So adopted this step of creating one manually first. Instead of using ‘BAPI_IPAK_CREATE’ as in the article we can use ‘BAPI_IPAK_CHANGE’ giving reference of technical id of our manually created infopackage.    Using the above article we can take care of the data selections, scheduling (whether periodic, immediate etc) for the infopackage according to the requirements at run time. One can even have a dynamic name for the infopackage  ( eg. ‘ Init for a April 2006’— Here April 2006 is set dynamically’) .  2)     Execute function ‘RSS1_QUEUE_DELETED_IN_OLTP’ by giving concerned data source and logical source system name as input. This is the step for deleting previous initialization (this replaces Scheduler –> Initializations Options for source system step from infopackage ) image 3)     Now that the Init infopackage is all set, all we need to do is start the infopackage using ‘BAPI_IPAK_START’    To summarize, the steps are:  1) Create an infopackage with update type ‘Initialise’ and change it using BAPI_IPAK_CHANGE , if needed. 2) Call function ‘RSS1_QUEUE_DELETED_IN_OLTP’3) Execute the Init infopackage using ‘BAPI_IPAK_START’ We can club it in an ABAP program and include the same in the process chain, thus automating the manual process. I am not very sure the usage of the same in real time, as we rarely need to automate the Init loads. However, just thought of sharing this with the BW community.
You must be Logged on to comment or reply to a post.
  • Seriously.. I mean, when you think of initialization using ABAP, you start thinking of all the code that probably will go into it … This is an innovative approach.. and pretty practical too !
  • Good tip!  You would think this functionality would be built into the process chain somehow.  We are going to use this for when we do system copies.  Thanks.
  • Hi Satyashilpa;

    I didn’t found any useful application using the creation of infopackage but deleting previous initialisation rocks.

    Ok, let me explain. On all environnement excepting Production we often need to suppress all the data to reload them as solution is getting implemented or bugs corrected.

    Deleting all data of infoproviders is not so long but manually it’s boring and not error safe. So we use a chain to do it. However we are still in the obligation to delete manually all the initializations .. well we were.

    Now we have embeded the function ‘RSS1_QUEUE_DELETED_IN_OLTP’ into a ABAP program that we launch one time per infopackage within a chain !

    We have shorten our “massive deletion process ” to something nearly negligeable. (Well loading in another story ;).

    So thanks much for the tips !

    • Thanks Bertrand for the comments 🙂

      It is also nice to know that it has reduced your manual activity to a large extent.

      I agree with you that creation of infopackage for Init loads is very rarely used. But I cannot deny the fact that many a times it is required due to certain errors in source extractors (if any)wherein one requires a periodic Init load for correcting erroroneous data (for say a single company code) . And in this cases one need not suppress all data (for all comapany codes) but load selectively using Inits. It may be then required to create/ change infopackages as well.