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

  • Question

  • 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
    Tuesday, June 10, 2014 4:28 AM

Answers

  • You always need a SOAP Action Header for sending yes, not for receiving.

    The error you get "Metadata could not be obtained" is because (or could be because) the function module you are calling on SAP is not remote enabled on SAP.


    Morten la Cour

    • Marked as answer by Angie Xu Tuesday, June 17, 2014 2:24 AM
    Tuesday, June 10, 2014 7:17 AM

All replies

  • According to the answer here:

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

    It is because the function module you are calling is not remote enabled.

    Morten la Cour

    Tuesday, June 10, 2014 5:15 AM
  • 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

    Tuesday, June 10, 2014 6:45 AM
  • Of course you are, you can't use WCF without a SOAP Action Header??? What I'm talking about is a setting on SAP.


    Morten la Cour

    Tuesday, June 10, 2014 6:46 AM
  • Hello Morten,

    I did not get you. Can you please elaborate further whether SOAP header is mandatory in WCF-SAP adapter or not?

    Per my understanding for sending an IDOC to SAP via WCF-SAP adapter there is no settings required in SAP in terms of the function name. However, for receiving IDOC from SAP it will be required. Is that not correct?

    Thanks,

    Tarun

    Tuesday, June 10, 2014 7:13 AM
  • You always need a SOAP Action Header for sending yes, not for receiving.

    The error you get "Metadata could not be obtained" is because (or could be because) the function module you are calling on SAP is not remote enabled on SAP.


    Morten la Cour

    • Marked as answer by Angie Xu Tuesday, June 17, 2014 2:24 AM
    Tuesday, June 10, 2014 7:17 AM