none
SAP WCF Adapter Transmission failure RRS feed

  • Question

  • Environment is VS2008, WCF SAP Adapter, BT2009

    < = =

    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)

    = = =>

    How do you debug this message; the schema is as generated by the LOB adapter wizard and it looks fine and and the XML file (to be transmitted) matches the schema.

    We have a C++ app that does the same call via direct RFC calls, and it works (with the paramters we pass) and which is reflected in the XML.  

    The BT generated schema is not much help because all the elements are "nillable=true"

    The schema was generated by the BT Consume Adapter Service Wizard, so we know the connection to SAP is OK.

     

    Saturday, April 17, 2010 3:19 PM

Answers

  • Hi,

    Did you entered something in the Action part, when configuring BizTalk SAP Adapter Send Port. The WCF SAP Adapter using WCF Custom adapter, the important thing is the SOAP Action Header under General Tab in Configuration.

    This is a sample of SOAP Header:

    <BtsActionMapping xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <Operation Name="Z_BAPI_PIP3B2_INBOUND" Action="http://Microsoft.LobServices.Sap/2007/03/Rfc/Z_BAPI_PIP3B2_INBOUND" />
    </BtsActionMapping>

    Name parameter correspond to the Operation of the logical orchestration port and Action usually correspond to MessageType without #.
    This is default using from adapter wizard.

    Regards,

    Steef-Jan Wiggers
    MCTS BizTalk Server
    http://soa-thoughts.blogspot.com/
    If this answers your question please mark it accordingly


    BizTalk
    Saturday, April 17, 2010 7:16 PM
    Moderator
  • Hi,

    Make sure the operation name in the logical port is the same as the operation name specified as part of the action in the physical port. Do one of the following:

    • Change the operation name in the logical port in BizTalk orchestration from Operation_1, etc. to the operation for which you generate metadata, for example RFC_CUSTOMER_GET.
    • Change the operation name in the action on the physical port to the operation name in the logical port. For example, you could change the action in the physical port to resemble the following:
      <Operation Name="Operation_1" Action="http://Microsoft.LobServices.Sap/2007/03/Rfc/RFC_CUSTOMER_GET" />
      

    From Troubleshoot Opertional Issues.

    Regards,

    Steef-Jan Wiggers
    MCTS BizTalk Server
    http://soa-thoughts.blogspot.com/
    If this answers your question please mark it accordingly


    BizTalk
    • Marked as answer by aargeekay Sunday, April 18, 2010 7:23 PM
    Sunday, April 18, 2010 4:30 PM
    Moderator

All replies