RFC Send could not be resolved against SAP system because its metadata could not be obtained...EXCEPTION FU_NOT_FOUND RAISED

10-11  Source: Network gathering  Views:8 

Advertisement
Hello,
I am getting the following error in sending IDOC to SAP via WCF-SAP adapter in BizTalk Server 2009. I have the SOAP header in the adapter mentioned below. Also, wondering what is the convension for Action URL? Is it always "http://Microsoft.LobServices.Sap/2007/03/Rfc/"
+ Operation name mentioned in the Orchestration? I would appreciate if anyone could help me resolve this error.
The adapter failed to transmit message going to send port "SendReceive_PO_IDOC_TO_SAP" with URL "sap://CLIENT=111;LANG=EN;@a/123.456.789.101/00?GWHOST=123.456.789.101&GWSERV=sapgw00&ListenerProgramId=ABCDEF111&RfcSdkTrace=False&AbapDebug=False".
It will be retransmitted after the retry interval specified for this Send Port. Details:"Microsoft.ServiceModel.Channels.Common.MetadataException: RFC Send could not be resolved against SAP system because its metadata could not be obtained. ---> Microsoft.Adapters.SAP.RFCException:
Details: ErrorCode=RFC_EXCEPTION. ErrorGroup=RFC_ERROR_APPLICATION_EXCEPTION. SapErrorMessage=EXCEPTION FU_NOT_FOUND RAISED.  AdapterErrorMessage=An error occurred while determining the function interface of the RFC Send.
   at Microsoft.Adapters.SAP.RFCException.HelperThrow(Int32 retCode, String additionalErrorMessage)
   at Microsoft.Adapters.SAP.RfcClientConnection.GetRfcFunctionInterface(String rfcName)
   at Microsoft.Adapters.SAP.InternalRfcMetadata..ctor(String originalRfcName, SAPConnection sapConnection)
   at Microsoft.Adapters.SAP.SAPMetadataContract.ResolveOperationMetadata(String operationId, TimeSpan timeout, TypeMetadataCollection& extraTypeMetadataResolved)
   at Microsoft.ServiceModel.Channels.Common.Design.MetadataCache.GetOperationMetadata(String uniqueId, Guid clientId, TimeSpan timeout)
   at Microsoft.ServiceModel.Channels.Common.MetadataLookup.GetOperationDefinition(String operationId, TimeSpan timeout)
   at Microsoft.Adapters.SAP.SapFunctionMetadata.ResolveOperationMetadataUsingSdk(String absoluteName, String displayName, String funcName, String operationNamespace, SAPConnection sapConnection, Boolean isTrfc, MetadataLookup metadataLookup, TimeoutHelper
timeoutHelper)
   --- End of inner exception stack trace ---
Server stack trace: 
   at System.ServiceModel.AsyncResult.End[TAsyncResult](IAsyncResult result)
   at System.ServiceModel.Channels.ServiceChannel.SendAsyncResult.End(SendAsyncResult result)
   at System.ServiceModel.Channels.ServiceChannel.EndCall(String action, Object[] outs, IAsyncResult result)
   at System.ServiceModel.Channels.ServiceChannel.EndRequest(IAsyncResult result)
Exception rethrown at [0]: 
   at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
   at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
   at System.ServiceModel.Channels.IRequestChannel.EndRequest(IAsyncResult result)
   at Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfClient`2.RequestCallback(IAsyncResult result)".
For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.
SOAP Header:
<BtsActionMapping xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Operation Name="Send" Action="http://Microsoft.LobServices.Sap/2007/03/Rfc/Send" />
</BtsActionMapping>
Thanks,
Tarun
Hello Morten,
The Send is actually just the name of the operation in Orchestration and it does not exist in SAP. Hence, do I really need to have the SOAP header in WCF-SAP adapter or can I send the IDOC without any SOAP header info? When I try to send without
SOAP header I get the following error. Can you help me resolve this?
The adapter failed to transmit message going to send port "SendReceive_PO_IDOC_TO_SAP" with URL "sap://CLIENT=111;LANG=EN;@a/123.456.789.101/00?GWHOST=123.456.789.101&GWSERV=sapgw00&ListenerProgramId=ABCDEF111&RfcSdkTrace=False&AbapDebug=False". It
will be retransmitted after the retry interval specified for this Send Port.  Details:"System.ArgumentNullException: Value cannot be null.
Parameter name: key
   at System.ThrowHelper.ThrowArgumentNullException(ExceptionArgument argument)
   at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
   at Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfClient`2.CreateChannelFactory[TChannel](IBaseMessage bizTalkMessage)
   at Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfClient`2.InitializeValues(IBaseMessage message)
   at Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfClient`2..ctor(IBaseMessage message, WcfTransmitter`2 transmitter)
   at Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfTransmitter`2.GetClientFromCache(String spid, IBaseMessage message)
   at Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfAsyncBatch`2.BatchWorker(List`1 messages)".
For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.
Thanks,
Tarun
Related articles