cancel
Showing results for 
Search instead for 
Did you mean: 

IDoc AAX Sender Adapter: Message ID ... already exists in database

martin_pichlo
Participant
0 Kudos

Hi there,

we are upgrading to PI 7.31 Single Stack and have configured several IDoc scenarios. Within this scenarios we have many different subsystems which are sending IDocs via IDoc AAE IDoc adapter "into" PI. While testing we determine a strange behaviour with duplicate IDoc numbers:

Our problem

Whenever any system is using an IDoc-Number it is not possible to use the same IDoc number for any other system. So it seems that one IDoc-Number have to be unique over all systems!

Example

First Step: SAP EPR is sending an IDoc to PI. Therefore the ERP system takes the next free IDoc number within the ERP. For example 0000000001.

Result: The PI is receiving the IDoc and everything is fine.

Second Step: Let's asume we have an SAP HR wich also have to send data to PI. Therefore it generates an IDoc and may the next free IDoc number within the SAP HR is also 0000000001.

Result: We got an error in SM58 of the SAP HR system, because the PI declines receiving. The Log Viewer within the PI shows the following error: Message ID 0000000001 already exists in database: com.sap.sql.exception.OpenSQLIntegrityConstraintViolationException: ORA-00001: Unique Constraint

Conclusion: The PI seems to use the external IDoc number of the sender system for internal storage. Compaired to ABAP-IDoc receivers this seems to be very strange. Because whenever an ABAP bases system receives an IDoc itself allocates the next free number for internal storage. In our opinion this is the only way to ensure IDoc comunication with several systems.

Do anyone knows this behaviour? Is there any option to archieve that the PI allocates own IDoc numbers for received IDocs?

Thanks in advance

Martin

Accepted Solutions (1)

Accepted Solutions (1)

MichalKrawczyk
Active Contributor
0 Kudos

Hi Martin,

in property of JavaIdocAdapter can you set:

AutoNumberFromDB - false

and let me know if this helped ?

Regards,

Michal Krawczyk

martin_pichlo
Participant
0 Kudos

Hi Michal,

we already tried this. Without success.

Any others ideas?

Cheers

Martin

Former Member
0 Kudos

Hi Martin,

have you resolved your issue?

Thanks

Rene

former_member184720
Active Contributor
0 Kudos

Hi Rene - Can you have a look at the SAP note # 1721113 - Duplicate IDoc numbers and transaction ids generated

Former Member
0 Kudos

Hi Hareesh,

it looks plausible.

I have asked basis-team to check, whether this note importable.

I'll let you know if it works.

Regards

Rene

martin_pichlo
Participant
0 Kudos

Hi Rene,

please also check 1885963. This has solved our problem.

Martin

Former Member
0 Kudos

Hi Martin,

this parameter "DuplicateCheck" is the new property which should be imported under this note 1885963

My PI is PI 7.31 SP07 Level 0 which has already parameter "DuplicateCheckPersisit", which is different from "DuplicateCheck"?

Regards

Rene

martin_pichlo
Participant
0 Kudos

Hi Rene,

in our szenario the duplicates results from different systems. E.g. an IDoc 1 from sender 1 and an IDoc 2 from sender 2. We could solve our error just by using the mentioned patch. We have AutoNumberFromDB activated and DuplicateCheck deactivated.

Could you give us some more informations about how the problem appear at your system?

Regards

Martin

Former Member
0 Kudos

Hi Martin,

thank you for your kind reply!

My case could be different as yours.

PI get IDoc from one service. The service could send same Idoc twice.

Here is my error message:

Look, the IDoc 83660 war sent 3 times. The first time is OK. Then the rest have this error.

I've changed the parameter AutoNumberFromDB to the value false.

It does not work.

Your patch could be helpful to my problem?

Thanks & Regards

Rene

martin_pichlo
Participant
0 Kudos

Hi,

the parameter AutoNumberFromDB is responsible for creating ascending IDocs numbers for for outbound IDocs (IDoc Receiver). It sounds that you have an inbound error (IDoc Sender). As result the parameter AutoNumberFromDB doesn't matters in my opinion.It sounds that the parameter DuplicateCheck mentioned in my note above could solve your problem. Have you allready tried this?

Regards

Martin

Former Member
0 Kudos

Hi Martin,

according to the feedback from process cosultants it will not happen, 2 IDocs with same number come to PI.

My case ocurrs just during test.

Therefore, it is no more necessary to add this function.

Thanks a lof!

Regards

Rene

Answers (0)