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