Altius Community

Altius Consulting Community
Welcome to Altius Community Sign in | Join | Help
in Search

Glen Chambers

May 2008 - Posts

  • ITAB_DUPLICATE_KEY ABAP Dump Prevents Loading of Data

    In my current project we have a typical system landscape where we use a project stack consisting of 3 servers (Development/QA/Production) and also a production stack.  The project stack is used by multiple projects for the client and many other system connections are both added and removed on a regular basis, this activity can lead to inconsistency within the servers; especially after transporting objects.

    We successfully transported a number of items to our QA system however I couldn't load any data as I kept getting an ABAP dump: ITAB_DUPLICATE_KEY.  The data was loading fine in the development system so I was a little baffled!

    After consulting a few SAP guru's I found the solution which I have outlined below.  The cause of the issue is that even after an old system connection has been removed some unused objects can still remain, failing to be cleaned up properly, this causes duplicates and hence the ABAP dump.  In short you have to identify and delete the duplicate objects yourself and then you will be able to load data again.

    A screen shot of the ABAP dump is shown below:

    image

    Firstly you have to identify the duplicate objects by using program: RSAR_RSISOSMAP_REPAIR in SE38:

    image

    In that program click the Execute button without checking the 'Repair Mode' check-box (we found this to be ineffective).  The resulting report should identify the duplicate objects along with the source system to which they are associated.

    image image

    Now you have identified the issue you need to correct it, so view table RSISOSMAP in SE16.

    image

    We found the easiest way to identify the duplicates within this table was to change the view to Grid View.  Then simply locate and delete the duplicate from the disconnected system that no longer exists.  If you do not have delete permission then ask your Basis team to delete it for you.