2011 Nov 07 7:30 PM
Customer is posting CATS records via interface from externa system to IDoc for CATS processing. Either the create BAPI (BAPI_...) is used or if there is a change to an already existing posting (BAPI_...). For his i have slightly modified the SAP standard existing FM for CATS inbound processing (IDOC_) to handle both scenarios, create and change. I basically examine CATS data from external system and if it is already existing then I call the change BAPI and if not found the I call the create BAPI.
We have no problem posting with these BAPIs when there postings are imported one by one. But, when several CATS postings arrive at the same second then not all postings are handled correctly. We receive error message "Transaction locked by user XXX" (error message e002(lr)) and XXX is the background communication user. No luck using "Where used" for error 002 in message class LR either. Also tried tracing with trans SE30 but no luck there either. Data is always different but can be for the same personell number. User is correct and not locked - it is the transaction (like CAT2) thats SAP standard reports as locked. Some postings go through alright but then after a few corrrect posting this problem pops up. Very frustating.
Code is correct as it seems only to be a "overflow" problem. Config and data is also correct. Customer was also facing the very same error using the same BAPIs called via RFC and not via IDoc.
Reason to change to IDoc was of course to set the posting as synchronous thus avoiding this "overflow" problem. In standard SAP is IDocs processed in parallell which is fine in many circumstances but not here. Or it might be OK as long as this error don't occur but have found no way so far. Customer is in production and this must be solved. We also tried this in a band new upgraded ECC 6.0 EhP5 system as customer is in the process of upgrading. Same error.
I have found very few hints when searching through Google, SAPNet, SDN etc. This is one of the very few links I found: [;
So I checked this in trans WE46 but as customer is running ECC 6.0 EhP3 we have no such option. Then tried trans nOYEAn setting the parameter "Synchronous processing" but I do not understand how this is supposed to work. Problem stills remains. The values are stored in table EDICONFIG and here parameter INBSYNC is used for the synchrounous setting as of my understanding but we only have this for a user called EDIADMIN and that is certainly not our background user. I don't understand how to set this parameter correctly I guess. SAP help doen't give more insight either - at least not for me.
Does anyone have a suggestion how to solve this problem? Anyone solved this before and willing to share a solution?
<< Moderator message - Please do not promise points >>
I maybe beed to send this to SAP OSS but trying this option first.
To me this is puzzling. Find very few references which normally means few have encountered this. Strange. CATS BAPI interfacing must be used by a lot of companies.
BR, Johan
Edited by: Rob Burbank on Nov 7, 2011 2:36 PM
2011 Nov 11 10:32 AM
Hi Johan,
These kind of problems arise when there is a very little time gap between two successive postings. So put a 'WAIT UP TO 2 SECONDS' between each of the postings. This will give time for the previous posting to perform the updates even before the next posting hits the same transaction. This will solve your problem.