none
BizTalk Adapter Pack- SAP Connection issue RRS feed

  • Question

  • When I try to connect to SAP through Consumer Adapter Service from VS 2005 IDE. I am getting following error, when I try to browse through the Send/Receive Operations

    Error occurred while browsing the LOB system. Adapter Message: Details: ErrorCode=RFC_SYS_EXCEPTION. ErrorGroup=RFC_ERROR_SYSTEM_FAILURE. SapErrorMessage=This function module is not active or contains no code..  AdapterErrorMessage=Error returned by RfcCallReceiveEx while calling RFC: RFC_READ_TABLE..

    When I checked with SAP guys, They said that the Adapter is trying to read from the RFC_READ_TABLE, But that module does not exist.
    Further they said as per SAP Note 758278, this has been renamed/moved to YRFC_READ_TABLE as recommended by SAP

    Is there any where that I can be configure in SAP adapter to get metadata from YRFC_READ_TABLE Module.



    Thursday, September 11, 2008 5:36 AM

Answers

  • There is a sample for using the IMetadataRetrievalContract at http://msdn.microsoft.com/en-us/library/cc185184.aspx
    This uses Oracle, but it is very similar for SAP.
    Firstly, ignore the path which calls the Browse() and Search() functions. We're mainly interested in the GetMetadata() function. GetMetadata() requires passing in an arry of MetadataRetrievalNode objects, which each object having the NodeId set correctly.
    Information for the NodeIds (Actions) can be found here. For example,
    "http://Microsoft.LobServices.Sap/2007/03/Idoc/3/ORDERS05//620/Send"
    Replace 620 with the release number you are interested in. Send() retrieves the WSDL for the Send operation (sending an IDOC to SAP) - you can replace "Send" with "Receive" if required. Replace ORDERS05 with the IDOCTYP of interest. If you also need to specify a CIMTYP, specify it between the 2 slashes you see above (after "ORDERS05").
    Monday, September 15, 2008 10:59 AM

All replies

  • What SAP version are you using? Currently, there is no way to configure the adapter to use YRFC_READ_TABLE instead.

    As a workaround, what you can do is - if you already know the IDOCTYP for which you want to generate metadata, you could write a small amount of code and programmatically obtain the WSDL (and/or convert it to a proxy). Let me know if you want help with that.

    Regards,

    Mustansir

     

    Thursday, September 11, 2008 9:47 AM
  •  

    Thanks a lot Smile

     

    we are using SAP R/3 Enterprise 4.7

    Ya we know the IDOCTYP. Please let me know how should i proceed on this.

     

     

    Monday, September 15, 2008 10:45 AM
  • There is a sample for using the IMetadataRetrievalContract at http://msdn.microsoft.com/en-us/library/cc185184.aspx
    This uses Oracle, but it is very similar for SAP.
    Firstly, ignore the path which calls the Browse() and Search() functions. We're mainly interested in the GetMetadata() function. GetMetadata() requires passing in an arry of MetadataRetrievalNode objects, which each object having the NodeId set correctly.
    Information for the NodeIds (Actions) can be found here. For example,
    "http://Microsoft.LobServices.Sap/2007/03/Idoc/3/ORDERS05//620/Send"
    Replace 620 with the release number you are interested in. Send() retrieves the WSDL for the Send operation (sending an IDOC to SAP) - you can replace "Send" with "Receive" if required. Replace ORDERS05 with the IDOCTYP of interest. If you also need to specify a CIMTYP, specify it between the 2 slashes you see above (after "ORDERS05").
    Monday, September 15, 2008 10:59 AM
  • Hi!

    What is the version of the SAP server which you're using? On all our R/3 systems, we see that RFC_READ_TABLE does indeed exist.

     

    Thanks,

    Mustansir

     

    Monday, November 17, 2008 6:02 AM
  • When I try to call an RFC in SAP. I get the below error message.

    Could let me know what's the resolution for it?


    A message sent to adapter "WCF-Custom" on send port "SP_CALL_BAPI_REQUISITION" with URI "sap://CLIENT=100;LANG=EN;@A/XXX.XXXXX/00?ListenerGwServ=sapgw00&RfcSdkTrace=False&AbapDebug=False" is suspended.

    Error details: Microsoft.Adapters.SAP.RFCException: Details: ErrorCode=RFC_SYS_EXCEPTION. ErrorGroup=RFC_ERROR_SYSTEM_FAILURE. SapErrorMessage=No more storage space available for extending an internal table.. AdapterErrorMessage=Error returned by RfcCallReceiveEx while calling RFC: BAPI_REQUISITION_GETITEMS..

    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)

    MessageId: {62D94A21-3A2A-44BC-B692-6F8EB3EB859C}

    InstanceID: {AC247933-6621-489E-A9EB-90626D451E4E}

    For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.


    Ashith Raj
    • Edited by Ashi Thursday, June 11, 2009 10:43 PM Server names included in the exception
    Saturday, June 6, 2009 12:40 AM
  • Hi Ashi,

    From the exception message, you can see that "SapErrorMessage=No more storage space available for extending an internal table".
    This means during the execution of the Rfc(BAPI_REQUISITION_ITEMS), the above error is thrown by the sap server. You can confirm the same by calling the same rfc with the same parameters from SapGUI. You can contact your Sap experts to resolve this issue.

    Hope this helps!

    Thanks,
    Jeevitha
    Saturday, June 6, 2009 3:40 AM