cancel
Showing results for 
Search instead for 
Did you mean: 

SAPSQL_ARRAY_INSERT_DUPREC

Former Member
0 Kudos

Dear All,

I was completed the Remote client copy from Production to Quality client. After that we are getting the ABAP dump while creating the PO.

Please find the below dump

*****************************************************************************************************

Runtime Errors SAPSQL_ARRAY_INSERT_DUPREC

Exception CX_SY_OPEN_SQL_DB

Date and Time 27.07.2010 15:36:54

Short text

The ABAP/4 Open SQL array insert results in duplicate database records.

What happened?

Error in the ABAP Application Program

The current ABAP program "SAPFSSO1" had to be terminated because it has

come across a statement that unfortunately cannot be executed.

What can you do?

Note down which actions and inputs caused the error.

To process the problem further, contact you SAP system

administrator.

Using Transaction ST22 for ABAP Dump Analysis, you can look

at and manage termination messages, and you can also

keep them for a long time.

Error analysis

An exception occurred that is explained in detail below.

The exception, which is assigned to class 'CX_SY_OPEN_SQL_DB', was not caught

in

procedure "SOES_INSARR" "(FORM)", nor was it propagated by a RAISING clause.

Since the caller of the procedure could not have anticipated that the

exception would occur, the current program is terminated.

The reason for the exception is:

If you use an ABAP/4 Open SQL array insert to insert a record in

the database and that record already exists with the same key,

this results in a termination.

(With an ABAP/4 Open SQL single record insert in the same error

situation, processing does not terminate, but SY-SUBRC is set to 4.)

How to correct the error

Use an ABAP/4 Open SQL array insert only if you are sure that none of

the records passed already exists in the database.

If the error occures in a non-modified SAP program, you may be able to

find an interim solution in an SAP Note.

If you have access to SAP Notes, carry out a search with the following

keywords:

"SAPSQL_ARRAY_INSERT_DUPREC" "CX_SY_OPEN_SQL_DB"

"SAPFSSO1" or "FSSO1E07"

"SOES_INSARR"

If you cannot solve the problem yourself and want to send an error

notification to SAP, include the following information:

1. The description of the current problem (short dump)

To save the description, choose "System->List->Save->Local File

(Unconverted)".

2. Corresponding system log

Display the system log by calling transaction SM21.

Restrict the time interval to 10 minutes before and five minutes

after the short dump. Then choose "System->List->Save->Local File

(Unconverted)".

3. If the problem occurs in a problem of your own or a modified SAP

program: The source code of the program

In the editor, choose "Utilities->More

Utilities->Upload/Download->Download".

4. Details about the conditions under which the error occurred or which

actions and input led to the error.

The exception must either be prevented, caught within proedure

"SOES_INSARR" "(FORM)", or its possible occurrence must be declared in the

RAISING clause of the procedure.

To prevent the exception, note the following:

em environment

SAP-Release 700

Application server... "TCLQEC"

Network address...... "172.20.0.9"

Operating system..... "AIX"

Release.............. "5.3"

Hardware type........ "00CE8A034C00"

Character length.... 16 Bits

Pointer length....... 64 Bits

Work process number.. 15

Shortdump setting.... "full"

Database server... "TCLQEC"

Database type..... "ORACLE"

Database name..... "ECQ"

Database user ID.. "SAPTCL"

Terminal................. "MUM-L9AG073"

Char.set.... "C"

SAP kernel....... 700

created (date)... "Aug 23 2009 20:51:38"

create on........ "AIX 2 5 005DD9CD4C00"

Database version. "OCI_102 (10.2.0.2.0) "

Patch level. 221

Patch text.. " "

Database............. "ORACLE 9.2.0.., ORACLE 10.1.0.., ORACLE 10.2.0.."

SAP database version. 700

Operating system..... "AIX 1 5, AIX 2 5, AIX 3 5, AIX 1 6"

Memory consumption

Roll.... 2751920

EM...... 0

Heap.... 9713120

Page.... 16384

MM Used. 12318832

MM Free. 100480

User and Transaction

Client.............. 330

User................ "P2P1"

Language key........ "E"

Transaction......... "ME21N "

Transactions ID..... "4C4EB80088BA04FAE1008000AC140009"

Program............. "SAPFSSO1"

Screen.............. "RSM13000 3000"

Screen line......... 2

Information on where terminated

Termination occurred in the ABAP program "SAPFSSO1" - in "SOES_INSARR".

The main program was "RSM13000 ".

In the source code you have the termination point in line 367

of the (Include) program "FSSO1E07".

The program "SAPFSSO1" was started in the update system.

The termination is caused because exception "CX_SY_OPEN_SQL_DB" occurred in

procedure "SOES_INSARR" "(FORM)", but it was neither handled locally nor

declared

in the RAISING clause of its signature.

The procedure is in program "SAPFSSO1 "; its source code begins in line

349 of the (Include program "FSSO1E07 ".

Source Code Extract

Line SourceCde

337 * * take the one out where the time is wrong

338 LOOP AT SOES_ARRAY.

339 MOVE-CORRESPONDING SOES_ARRAY TO SOES_TAB.

340 APPEND SOES_TAB.

341 ENDLOOP.

342 *-Give the SY-SUBRC to the field RCODE

343 MOVE SY-SUBRC TO RCODE.

344

345 ENDFORM.

346

347 * =====================================================================

348

349 FORM SOES_INSARR TABLES SOES_TAB STRUCTURE SOESO

350 CHANGING VALUE(DBCNT)

351 VALUE(RCODE).

352 * Array table

353 DATA BEGIN OF SOES_ARRAY OCCURS 0.

354 INCLUDE STRUCTURE SOES.

355 DATA END OF SOES_ARRAY.

356 DATA COUNT_ITEMS TYPE I VALUE 0.

357

358 * Fill the array table and add the client

359 LOOP AT SOES_TAB.

360 MOVE-CORRESPONDING SOES_TAB TO SOES_ARRAY.

361 MOVE SY-MANDT TO SOES_ARRAY-MANDT.

362 APPEND SOES_ARRAY.

363 ADD 1 TO COUNT_ITEMS.

364 ENDLOOP.

365 IF COUNT_ITEMS GT 0.

366 * Update the array on the database

>>>>> INSERT SOES FROM TABLE SOES_ARRAY.

368 * Set the return parameters

369 MOVE: SY-SUBRC TO RCODE,

370 SY-DBCNT TO DBCNT.

371 ELSE.

372 * No entries, just set the return parameters

373 MOVE 0 TO: RCODE,

374 DBCNT.

375 ENDIF.

376 ENDFORM.

377 FORM SOES_UPDARR TABLES SOES_TAB STRUCTURE SOESO

378 CHANGING VALUE(DBCNT)

379 VALUE(RCODE).

380 * Array table

381 DATA BEGIN OF SOES_ARRAY OCCURS 0.

382 INCLUDE STRUCTURE SOES.

383 DATA END OF SOES_ARRAY.

384 DATA COUNT_ITEMS TYPE I VALUE 0.

385

386 * Fill the array table and add the client

**********************************************************************************************************************

Thanks and Regards,

Vishal Kalekar

Accepted Solutions (0)

Answers (4)

Answers (4)

former_member184119
Active Contributor
0 Kudos

Hi I am also facing the same issue,

Kindly reply what have u done to avoid this.

Regards

Sas

Former Member
0 Kudos

Hi Vishal,

As suggested in the previous replies, you can explore one fo the options. You can take the help of an ABAPer to debug the PO creation process to know exactly when the dump is generated and how to fix the error.

Thanks,

Vasu

former_member204746
Active Contributor
0 Kudos

adapt range numbers properly. this can be done, (I am not sure), with transaction SNRO (or is it SRNO ?)

Former Member
0 Kudos

Dears,

Dump says : you are trying to make duplicate entry in the table.

So I would suggest you to please once contact to ABAPer to know exactly what is happening.

Regards,

Shivam Mittal