Skip to Content
0
Former Member
Apr 06, 2010 at 08:39 AM

Shortdump in VMD_EI_API when creating vendor

120 Views

Hello folks,

I use VMD_EI_API=>MAINTIAN_BAPI for creating a new vendor. In general, the API works fine. However in a certain scenario, I get a shortdump SYSTEM_ON_COMMIT_INTERRUPTED and the reason is that an exception is raised during a perform on commit routine:

Method VMD_EI_API=>MAINTIAN_BAPI calls

perform data_save on commit (of function module VMD_DATA_SAVE)

which finally calls function module ADDR_MEMORY_SAVE where the error occurs:

...

654 ELSEIF NOT la_group[] IS INITIAL. "*1010i

655 * Es soll nur ein Teil der Adressdaten gesichert werden. "*1010i

656 * Wir müssen also prüfen, zu welcher Adressgruppe die "*1010i

657 * Handles gehören. "*1010i

658 LOOP AT addr_appl_to_int "*1010i

659 WHERE nation IS INITIAL. "*1010i

660 * Eine Überprüfung pro Handle reicht. "*1010i

661 PERFORM read_table_index_i "*1010i

662 TABLES iadrc "*1010i

663 USING 'IADRC' "*1010i

664 addr_appl_to_int-anr. "*1010i

665 IF iadrc-addr_group IN la_group. "*1010i

666 MESSAGE e830 RAISING address_number_missing. "*1010i

667 ENDIF. "*1010i

>>>> ENDLOOP. "*1010i

669 ELSE.

...

Here, value of iadrc-addr_group = 'BP' and the selection group la_group contains an entry for BP (I,EQ,BP,).

Therefore, the exception is raised.

Form routine read_table_index before read internal table iadrc with index 2 (iadrc contains two entries) where the second entry had no address number assigned.

I do not know the exact logic here so the question is why in a particular scenario this shortdump is raised. In this scenario I have assigned the vendor to be created as a debitor (i.e. with a KUNNR assigned) with this customer already being assigned to an existing vendor. But such a scenario also worked without a shortdump already.

Can anybody assist?

Thanks and kind regards,

Christoph