on 07-11-2013 10:37 AM
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
Hi Martin,
in property of JavaIdocAdapter can you set:
AutoNumberFromDB - false
and let me know if this helped ?
Regards,
Michal Krawczyk
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Rene - Can you have a look at the SAP note # 1721113 - Duplicate IDoc numbers and transaction ids generated
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
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
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
User | Count |
---|---|
85 | |
10 | |
10 | |
9 | |
7 | |
6 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.