cancel
Showing results for 
Search instead for 
Did you mean: 

Error with Receiver Agreement in communication from JDBC to RFC

Former Member
0 Kudos

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.

Accepted Solutions (0)

Answers (3)

Answers (3)

Former Member
0 Kudos

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.

former_member184681
Active Contributor
0 Kudos

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

Former Member
0 Kudos

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.

baskar_gopalakrishnan2
Active Contributor
0 Kudos

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.

http://scn.sap.com/thread/1608828

rajasekhar_reddy14
Active Contributor
0 Kudos

Perform cache refresh and delete existing receiver agreement and create once again.

Ryan-Crosby
Active Contributor
0 Kudos

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