cancel
Showing results for 
Search instead for 
Did you mean: 

SAP .NET Connector - tRFC Server

Former Member
0 Kudos

All,

I tried creating a RFC server using .NET connector and it works fine.

When i call the same function module in background (tRFC), I get an error

in SAP "FUNCTION NOT IMPLEMENTED raised by external server" in SM58.

I am not able to figure what is going on.

I will appreciate if anyone can help me on this issue.

Accepted Solutions (0)

Answers (3)

Answers (3)

Former Member
0 Kudos

Hi all,

I get the same Error in SAP : "FUNCTION NOT IMPLEMENTED".

I'm using the .Net Connector Class SAPIDocReceiver to receive Text-IDOCs from SAP.

When my process crashes, for several reasons, I get this error on SAP, and I have to wait some minutes or to reboot the PC to have again a clean connection.

I've tested my process with 3 different SAP systems (different Customers) and just in one case I get this error.

Can someone help me to find if the problem is on SAP or in my process.

I think that's the SAP Sys is calling an unimplemented function on the .Net Connector, or the SAP is using tRFC and not RFC, can this be true

Best regards.

Christophe

reiner_hille-doering
Active Contributor
0 Kudos

Hello Christope,

can you please open a SAP support ticket for this (CSN)?

Reiner.

Former Member
0 Kudos

Hello Reiner.

I found a solution to my problem !

In the .NET Con Samples for the SAPIDocReceiver class there is the following piece of code:

if( host.Components.Count == 0 )

{

for (int i=0;i < 3; i++)

{

idocrec = new SAPIDocReceiver( "-a AAAA -g HHHH -x XXXX -t", host );

idocrec.BeginReceive += new SAPIDocReceiver.ReceiveEventHandler(this.idoc_BeginReceive);

idocrec.EndReceive += new SAPIDocReceiver.ReceiveEventHandler(this.idoc_EndReceive);

}

}

host.Start();

You can see that the code loops 3 time to create 3 Receive Handle. That is, 3 connections on the specified TCP port.

I have noticed with a simple NETSTAT command that after we get the "FUNCTION NOT IMPLEMENTED" error, that one of this 3 TCP session was no longer in state ESTABLISHED but rather in state TIME_WAIT.

So after this observation I tried to do just one connection, and you know what ... It works fine now !?!

We are confused because in 1 of our 3 project using the .NET Con, the loop of 3 works good, but for the remaining 2 this doesn't.

So everthing is now OK, but:

1- Are this multi-connections used to allow a kind of parallelism ?

2- What is different on the SAP side that do not allow this mutli-connection feature ?

Thanks for any answer.

Best Regards.

Christophe

reiner_hille-doering
Active Contributor
0 Kudos

Hi Christophe,

1. indeed the multiple objects (on multiple thread) should allow your server to scale better. If there is only one SAP server with typically one process (e.g. a batch process) that uses your RFC server, one object should be sufficient.

2. There was a known issue in NCo 1.0 and 1.0.1 that prevented the multip connection feature from working correctly. It's fixed in version 1.0.2. Are you using it?

Reiner.

reiner_hille-doering
Active Contributor
0 Kudos

Hi,

have you turned on tRFC on the .NET Connector designer?

It might be also necessary to override some of the tRFC specific methods that control transaction like CheckTransaction, CommitTransaction, ConfirmTransaction and RollbackTransaction.

Former Member
0 Kudos

SAP,

Please respond to my issue.