You are on page 1of 3

Symptom

SAPSQL_ARRAY_INSERT_DUPREC, table BALHDR Open SQL array insert causes duplicate records in the database.

For Releases < 4.6A: ======================================================== Symptom: ABAP/4 runtime error (short dump) in program SAPLSLG0 Place in the source code: Function module APPL_LOG_WRITE_DB Program SAPLSLG0 Include LSLG0U07 ... 000570 UPDATE BALHDR FROM TABLE BALHDR_U. =====> INSERT BALHDR FROM TABLE BALHDR_I. 000590 DELETE BALHDRP FROM TABLE BALHDRP_D. ... For Releases 4.6A to 4.6B: ======================================================== Symptom: ABAP/4 runtime error (short dump) in program SAPLSBAL_DB Or: Update termination in BAL_DB_SAVE_IN_UPDATE_TASK Place in the source code: Function module BAL_DB_SAVE_NO_UPDATE_TASK Program SAPLSBAL_DB Include LSBAL_DBU07 ... 000440 IF NOT I_S_DB_TABLES-BALHDR_I IS INITIAL. =====> INSERT BALHDR FROM TABLE I_S_DB_TABLES-BALHDR_I. 000460 ENDIF. ... For Releases >= 4.6C: ======================================================== Symptom: ABAP/4 runtime error (short dump) in SAPLSBAL_DB_INTERNAL Or: Update termination in BAL_DB_INTERNAL_IN_UPDATE_TASK Place in the source code: Function module BAL_DB_INTERNAL_NO_UPDATE_TASK Program SAPLSBAL_DB_INTERNAL Include LSBAL_DB_INTERNALU02 ... 000540 IF NOT i_s_db_tables-balhdr_i IS INITIAL. =====> INSERT balhdr CLIENT SPECIFIED FROM TABLE i_s_db_tables-balhdr_i. 000560 ENDIF. ...

Other terms
Application log log logs

messages save database BALHDR BALHDRP APPL_LOG_WRITE_DB SAPLSLG0 LSLG0U07 BAL_DB_SAVE BAL_DB_SAVE_IN_UPDATE_TASK BAL_DB_INTERNAL_NO_UPDATE_TASK SAPLSBAL_DB_INTERNAL LSBAL_DB_INTERNALU02 BAL_DB_INTERNAL_IN_UPDATE_TASK AL_DB_INTERNAL_NO_UPDATE_TASK APLSBAL_DB_INTERNAL SBAL_DB_INTERNALU02 Number ranges Number range object

Reason and Prerequisites


Table BALHDR belongs to the application log. This is a tool to collect, save and display messages. In this tool, the messages are grouped to logs where each log gets a unique number (in the respective client). When the system saves the log, this number is determined from the number range object APPL_LOG in which the number assigned last was saved. If this last number has an incorrect status, a number already existing can be assigned, a short dump occurs when you save, as the database already contains an entry of this type.

Solution
Step 1: Determining the last assigned number =============================================================== In the R/3 System, call transaction SE16. Table: BALHDR. Select the 'Table contents' icon (F7) On the following selection screen in the last field (Maximum no. of hits) enter the value 999999999 and choose 'Execute' (F8). A list is displayed. Scroll through the list to the end.Note the value in the bottom line in column 'LOGNUMBER' (for example 176508) Step 2: Correcting the current number level =============================================================== In the R/3 System, call Transaction SLGN. Choose the menu path Interval -> Change status (Shift F6). Here, you should see the following: No From number To number Current number 01 00000000000000000001 99999999999999999999 16936 The Current number field usually contains a value that is bigger than the one you noted before. However, if the current number is smaller than the value you noted, enter the value you noted and add another 1000 (to be on the safe side). Save the entry. Step 3: Buffering the number range object =============================================================== If the dump still occurs, the buffer of the current server still contains obsolete numbers. In this case, execute the RSSLGK00 report several times, until the dump no longer occurs and until the result

list displays a log number that is greater than or equal to the number entered by you. If the dump still occurs, then the problem is caused by something else. The problem cannot be corrected with this note.

You might also like