cancel
Showing results for 
Search instead for 
Did you mean: 

RFC sender adapter

Former Member
0 Kudos

Hi,  My PI scenario ECC-> PI-> FILE.  I have configured RFC at the sender side succesfully with the status green.  But i am not getting any data on PI or in communication channel monitor when i execute a program on ECC.   I could not able to figure out the issue.  Thanks  Vijay

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi Satish,  Yes its failed and the error message is "JCO.Server could not find server function".  Thanks Vijay

ambrish_mishra
Active Contributor
0 Kudos

Hi Vijay,

please check the link http://scn.sap.com/message/5035082

cheers

Ambrish

sunil_singh13
Active Contributor
0 Kudos

Vijay,

As error suggest you have not configured your RFC Destination of Type TCP/IP properly. It is trying to find the RFC on PI server. As it is developed on ECC server you have to give ECC Host name and Gateway.

Open your RFC Destination throug Transaction SM59 in ECC. And Modify "Gateway Option".

In Gateway Host Provide ECC Host Name and in Gateway Service Provide Service of ECC. It should work.

I think as of now you have PI Gaveway Host and Service mentioned in RFC destination.

Thanks,

Sunil Singh

Former Member
0 Kudos

Hi Sunil,

Yes thanks. i have changed and RFC is working means i can see the log in communication channel

but now i found another error  saying "

Error: Commit fault com.sap.aii.af.rfc.afcommunication.RfcAFWException: alt

in sm58 and in CC "Sendor aggrement not found".

For both the issues i got a SAP note 730870. But i have followed everything what they have mentioned . But still am getting sendor aggrement not found.

Thanks

Vijay

sunil_singh13
Active Contributor
0 Kudos

Vijay,

Sometimes "Sender Agreement" issue for RFC communication is due to mismatch between logical System Name and actual Business System name. As I see in your communication Channel Details

Your BS name is BS_IDES800CLNT and logical system name as  RFC_Sender_clnt800. If you can correct them (Make both of them Identical), it will solve your issue.

Thanks,

Sunil Singh

Former Member
0 Kudos

Sunil,

I have verified in SLD also. business system name is BS_IDES800CLNT

The Business system name is correct and above BS_IDES800CLNT and RFC_Sender_clnt800 as a communication channel.

How to verify and check the name of logicalsystem.?

Thanks

Vijay

sunil_singh13
Active Contributor
0 Kudos

Vijay,

To Check Logical System name Associated with Business System :

Open Business System -> Communication Component - > Adapter-Specific Identifier

You can see Logical System Name there (it is very significant for Idoc related scenario and sometimes causes issue for RFC related scenario like yours )...

Other way to find logical system name is from SLD. Open the Business System ->Integration -> Logical System Name

Just Make sure Business System Name and Logical System Name is Same.

Also Before you do that try to what Business System RFC Adapter is trying to find. You should be able to see error like Party, Service XXX, Interface XXXX not found in cache.

Please check if value shown in Service (in Error Text) Matches with what you have configured.

Thanks,

Sunil Singh

Former Member
0 Kudos

Hi Sunil,

Yes the Business system name is BS_IDESCLNT800 and its logical system name is SENDER_P. yes both are different as you suggested.

You mean to say like the BS what we create in SLD say 'X' and logical system name should be 'X'???

Thanks

Vijay

Former Member
0 Kudos

Hi Sunil,

The logical system name what we have to give , it should be defined like in IDOC we assign logical system or its just a name we should give.?? .

Can u susggest me?

Thanks

Vijay

sunil_singh13
Active Contributor
0 Kudos

Vijay,

Had you chance to see error Message in RWB which Business System it is referring to while giving you error? If you see "SENDER_P" then Yes you have to make Sure if your Business System is "X" then the LogicalSystem Name should be "X"...

In Case of Idoc Partner Profile Should be same as your Logical System Name (Idoc Receiver). In Case of Idoc Sender Logical System Maps to Business System(Internally) thats why you won't get error related to Sender Agreement. But Sometimes (depending on SP level) in case of Sender RFC communication Logical System doesn't Maps to Business System and you see Sender Agreement issue.

Thanks,

Sunil Singh

Former Member
0 Kudos

Sunil,

Yes it is the same error i am getting. Problem is this Business system already has many channels,

Say if i delete and import again with a new name, will it create any problems??

Is there a safe way to do this?

Thanks

Vijay

sunil_singh13
Active Contributor
0 Kudos

Vijay,

As you mentioned it is used by other Interfaces, I won't advice for deleting it.

- Once solution could be you create Business service with the name as in Logical System and use that in RFC scenario

-  Another could be: If you are not using any Idoc scenario(which is not using that Logical System name) for communication then you can change the logical system name (After consulting with your Basis team to make sure it is not used by other system)

- Did you try to search for Any note in this regard on Market place? I hope there should be one..

Thanks,

Sunil Singh

Former Member
0 Kudos

Sunil,

As you know Sunil, we can create only one business system for one client. But is there a way to change the business system name for the same client.?

I referred this SAP note 730870 for sendor RFC problems..

Thanks

vijay



sunil_singh13
Active Contributor
0 Kudos

Vijay,

Did you try "Also this stricter verification can be disabled by setting the J2EE Service Property 'verifySenderAgreement' for RFC adapter to false. Setting this property to false in the Visual Administrator/NetWeaver Administrator will prevent such a check for all the RFC calls made through the RFC Adapter." ?

I was talking about "Business Service" and not "Business System". Create a Business Service with the same name as in the Logical System Name.

Thanks,

Sunil

Former Member
0 Kudos

Thanks For everyone guys. Answers are really helpful .

Thanks Sunil, you were really helpful.

Thanks

Vijay

Answers (8)

Answers (8)

Former Member
0 Kudos

Hi Vijay,

As I have told you earlier also,please do these bullets points again

  • Can you go to that RFC destination and check  the RFC.chances may be instead of java port you may have entered abap port.I have faced this issue.Just checj RFC destination whether it is successful while doing test and if not with what error it is failing.
  • please just try to switch off the communication channel and restart it again.Sometimes.what happen is that channel is not properly on so message doesnt come.
  • One more thing go back to configuration again check whether you have configurted the channel properly or not.
  • Go to ESR side and check whether you have imported the correct RFC only or not.

One as a workaround,can you take the payload and check the payload in ID side(yes configuration side) what are the pipeline steps it is completing successfuly.

After doing this go back to RWB and send the test message and after that go that moni and see the status of that message.

Even after doing this,if your scenerio is not working than please check with basis team,may be they have not configured the JCO call correctly while delievering the system.

Please do this step and share the screenshot.I hope we will short out this issue.

Regards,

Abhi

former_member440061
Participant
0 Kudos

Hi,

Plaese also check if your RFC program is registered at the gateway with the same program ID.

Former Member
0 Kudos

Hi Vijay,

Did you try to check SM58 log, your message might be failed over there.

Thanks,

Satish.

Former Member
0 Kudos

Hi Vijay,

Please check if your communication channel is running in test mode.If the communication channel is configuerd in test mode it doesnt show the messages when you run the channel.

Thanks and Best Regards,

Ankit Baid

Former Member
0 Kudos

Hi,

If it has not reached PI, can you check SXMB_MONI in ECC?

Regards

Krishna

Former Member
0 Kudos

Hi,

No messages in ECC also.

Muniyappan
Active Contributor
0 Kudos

Hi,

if the message is not reaching PI some times there could be some issues with your report program.

check you are using correct function module and destination name in report program.

Can you share us the function module,destination name and your report program code?

Regards,

Muniyappan.

Former Member
0 Kudos

Hi Muniyappa,

Please find the code below.

data : it_mara type  table of mara,

        wa_mara type mara.

select single * from mara into wa_mara where matnr = '000000000000000098'.

if sy-subrc = 0.

call function 'ZRFC_SW_TEST_PI' in background task destination 'ECC_PI'

  exporting

    brgew            = wa_mara-brgew

    ernam            = wa_mara-ernam

    ersda            = wa_mara-ersda

    gewei            = wa_mara-gewei

*   MAKTX            = WA_mara-MAKTX

    matkl            = wa_mara-matkl

    matnr            = wa_mara-matnr

    mbrsh            = wa_mara-mbrsh

    meins            = wa_mara-meins

    mtart            = wa_mara-mtart

    mtpos_mara       = wa_mara-mtpos_mara

           .

commit work.

Thanks

Vijay

iaki_vila
Active Contributor
0 Kudos

Hi,

Have you debug that code? is the sy-subrc = 0 when the call function finish?, is the destination ECC_PI pointing to the PI system that you are monitoring?, may be it points to QUA instead of DEV PI system

Regards.

Former Member
0 Kudos

Hi,

Yes the Sy-SUBRC value is 0 and the RFC is pointing PI which i have mentioned is ABAP type

and i checked with RFC type T also.

Atleast i am not getting a log in RFC communication channel also.

Thanks

Vijay

iaki_vila
Active Contributor
0 Kudos

Hi Vijay,

Are you using the integrated configuration object in the integration directory?

Regards.

Former Member
0 Kudos

HI ,

No its 'classic' configuration objects .

Thanks

Vijay

Former Member
0 Kudos

Hi praveen,  I have tried your suggestion also. But still the problem exists.   Thanks Vijay

Former Member
0 Kudos

Hi Vijay,

If you are using RFC,than create RFC destination of type T and provide program id and gateway service. Same program id and gateway service needs to be provided in PI communication channel so we need to create RFC channel and RFC adapter is on java stack and communication happens via Jco. so message keeps on jumping from one stack to another.

Please provide the program id and try after that.It will definetly work.

Regards,

Abhi

Former Member
0 Kudos

Hi Abhinav,

I have tried the what you have suggested above.

Former Member
0 Kudos

Hi Vijay,

It is just quick question.

Are you able to see this message  inst PI moni. Why I am asking this question is because I just want to check whether message is coming to PI or not.

If yes,than can you please share the screenshot with pipeline steps.

One more important point I just want to check with you

As soon as you create Sender RFC communication channel,SAVE and ACTIVATE it.after that create RFC destination in R/3 side.

Regards,

Abhi

Former Member
0 Kudos

No . PI message is not coming.

Thanks

vijay

praveen_sutra
Active Contributor
0 Kudos

Hi Vijay,

Could you please restart the channel. Sometimes it resolves the issue with RFC channel.

thanks and regards,

Praveen T

iaki_vila
Active Contributor
0 Kudos

Hi Vijay,

Have you put the program id in the RFC sender communication channel?, have you got any exception in the st22 transaction in the ECC?, have you enabled the monitoring in PI?.

On the other hand i think you should consider to use the ABAP proxy like a sender instead of RFC, it works better.

Regards.

Former Member
0 Kudos

HI Inaki vila,

Thanks for your reply.

1. Have you put the program id in the RFC sender communication channel?

yes i hv added the pgm ID.

have you got any exception in the st22 transaction in the ECC?

No Dumps 

How to check whether monitoring has been enabled or not.?

Thanks Vijay

iaki_vila
Active Contributor
0 Kudos

Hi Vijay,

If you are using the integration engine in PI (sender agreement, receiver determination, etc) you can check like Michal Krawczyk said in its blog http://scn.sap.com/community/pi-and-soa-middleware/blog/2005/05/10/xi-i-cannot-see-some-of-my-messag...

Regards.

Former Member
0 Kudos

HI,

Everything is as suggested as Michal Krawczyk.  

Thanks

Vijay

rodrigoalejandro_pertierr
Active Contributor
0 Kudos

let me know if you perform the next configuration steps

create the comunication channel

check if the program ID exist in the ECC system ---> SMGW-->logged on client

Create a TCP/IP destination (SM59) --> select registered program option and put the program ID defined in the channel. (complete all the values strikethrough)

in the program make sure you are calling the funtion using a code like

Parameters: l_id type scustom-id default '1',

dest type rfcdes-rfcdest default 'XI_SERVER'.

DATA: l_scust type scustom,

mess_text(200).

CALL FUNCTION 'XXXXXXXXXXXXXXXXXXXXX'

destination dest

EXPORTING

i_id = l_id

IMPORTING

e_SCUSTOM = l_scust

EXCEPTIONS

NO_ENTRY_FOUND = 1

system_failure = 2 message mess_text

communication_failure = 3 message mess_text

OTHERS = 4

.

case sy-subrc. ...

endcase.

2011