on 04-30-2012 6:05 PM
Hi,
I'm getting this error "Missing or Invalid Receiver Agreement" when i try to set up a communication between JDBC and SAP (RFC). In the monitor the "Sender Component",the "Sender interface" and the "Receiver Component" are right but the "Receiver Interface" is not. The "Receiver Interface" should be my RFC FM but instead it is the same as the sender interface, i.e. my "Service Interface".
In the ID everything is correct, i have double checked this, i have defined communications channels for both system, database and SAP, i have the receiver determination and interface determination, and finally i also have the sender and receiver agreements. I have tested this configuration in the ID and it was successful.
So despite my receiver agreement is for the SAP system with the RFC Adapter, it seems that at runtime it tries to send it to the sender interface and not to the receiver interface.
Any help on, why this happens even thou my configuration is correct.
Thanks.
Regrards,
Diogo Silva.
Hi Raja and Ryan,
I already tried the refresh and redo the objects, but it didn't help, however i will try it again.
I have defined an "Operation Mapping" in the "Interface Determination", if i test this configuration in the IS it gives me no error, it finds all the objects it needs but at runtime i get the error.
It really doesn't make sense, it has all the objects it needs there is no need to search for a new agreement, that by the way is wrong.
Regards,
Diogo Silva.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Diogo,
Two ideas from me:
1. Are you sure your configuration in ID is correct? The fact that the configuration test is successful only means that the config is consistent, but might not meet your requirements (for instance incorrect receiver system/interface, as you are experiencing it now).
2. Did you change the configuration recently? If so, you could perform a cache refresh in SXI_CACHE.
Regards,
Greg
Hi Greg,
I refreshed the cache (Complete Refresh) and the problem persist, it tries to find a receiver agreement that doesn't exist. The receiver interface in the monitor is wrong, even thou the configuration is correct.
Yes I'm sure that my configuration is correct, i have revised it 1000 times (slightly exaggerated). But let us review it together.
My goal is to read data from a database table and call a RFC FM with that data, it is a simple structure. The structure of the DB Table and the Input Parameters is exactly the same.
So i have following objects in the ID:
- CC with JDBC Adapter to read the database table (Business System A).
- CC with RFC Adapter to call the RFC FM (Business System B).
- Receiver Determination, everything that comes from BS A and the specified interface goes to BS B.
- Interface Determination, mapping the single operation from the interface to the FM in BS B, there is also an OM from ESR.
- Sender and Receiver Agreements using the above CC, respectively.
If there is the need for another object please tell me, or if using JDBC Adapter is different, because i use other adapters to connect external system with SAP (same RFC FM) and it works fine.
PS: Let me put another question, since the JDBC Adapter can read multiple lines from the database, how this translate to RFC calls, will it be one call for each line? will it only do the first line? Or will it try to map all the row into the RFC message?
Thanks for the help.
Regards,
Diogo Silva.
Your ID configuration detail seems correct to me. You might want to cache refresh.
>PS: Let me put another question, since the JDBC Adapter can read multiple lines from the database, how this translate to RFC calls, will it be one call for each line? will it only do the first line? Or will it try to map all the row into the RFC message?
You can change the occurence of the RFC structure parent(upper most tag say 1 to unbounded) and map the uppermost tag element. This way you can map every record as individual RFC message. Otherwise you can send only the first line record.
You might want to check the below link.
Perform cache refresh and delete existing receiver agreement and create once again.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Diogo,
Your post implies that the sender and receiver interface are not the same, is that correct? If these two interfaces are not the same then you need to be sure that you have explicitly specified an operational/interface mapping in your interface determination. If nothing is specified here then the system will assume that the receiver interface is the same as the sender interface.
Regards,
Ryan Crosby
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
85 | |
10 | |
10 | |
10 | |
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.