none
WCF-SQL Composite Operation issue RRS feed

  • Question

  • I've still not been able to get this to work right.  Any ideas?  I get have already set CompositeOperation as the Action and followed these steps: http://msdn.microsoft.com/en-us/library/dd788136(v=bts.10).aspx

    Only difference, I'm not using orchestrations. 

      

    <ns1:Request xmlns:ns2="http://schemas.microsoft.com/Sql/2008/05/Types/Tables/dbo" xmlns:ns0="http://schemas.microsoft.com/Sql/2008/05/TableOp/dbo/Products" xmlns:ns1="*WHERE" _mce_href="http://PRP.InventoryManagement.ExternalSchemas.Alpha_CompositeOperation"><ns0:Select><ns0:Columns>*</ns0:Columns><ns0:Query>WHERE">http://PRP.InventoryManagement.ExternalSchemas.Alpha_CompositeOperation"><ns0:Select><ns0:Columns>*</ns0:Columns><ns0:Query>WHERE Stock = 'Low' and OrderStatus = 'Filled'</ns0:Query></ns0:Select>
      <ns0:Update>
        <ns0:Rows>
          <ns0:RowPair>
            <ns0:After>
              <ns2:OrderStatus>In Progress</ns2:OrderStatus>
            </ns0:After>
            <ns0:Before>
              <ns2:OrderStatus>Filled</ns2:OrderStatus>
              <ns2:Stock>Low</ns2:Stock>
            </ns0:Before>
          </ns0:RowPair>
        </ns0:Rows>
      </ns0:Update>
    </ns1:Request>

     

    Any ideas?

     

    The adapter failed to transmit message going to send port "IM_WcfSql_Send_AlphaProducts" with URL "mssql://localhost/sqlexpress/AlphaInventory?InboundId=GetProductInventory". It will be retransmitted after the retry interval specified for this Send Port. Details:"Microsoft.ServiceModel.Channels.Common.XmlReaderParsingException: The start element with name "Select" and namespace "http://schemas.microsoft.com/Sql/2008/05/TableOp/dbo/Products" was unexpected. Please ensure that your input XML conforms to the schema for the operation.

    Server stack trace:

    at System.Runtime.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)

     

    BT2010 Dev, SQL 2008 R2


    If this answers your question, please Mark as Answer

     

    Tuesday, May 31, 2011 9:25 PM

Answers

All replies

  • Sadly, I think I'm answering my own question: http://msdn.microsoft.com/en-us/library/dd788151(v=bts.10).aspx

    Looks like the adapter won't do what I want it to. 

    -Dan


    If this answers your question, please Mark as Answer
    • Marked as answer by Dan Rosanova Thursday, June 2, 2011 6:42 PM
    Tuesday, May 31, 2011 10:09 PM
  • True, the adapter will not allow you to include a SELECT in a composite operation.  This appears to be a design decision that I can't quite grasp.  Or maybe the development team ran out of time and that feature was cut ;-)

    Wednesday, June 1, 2011 1:36 PM
  • The main reason behind supporting a composite operation was to have all the member operations be performed in a single transaction. It's unlikely that somone would want to do a SELECT operation in a transaction.


    ______ Nitin Mehrotra, BizTalk Server CCxG, http://blogs.msdn.com/nitinme/
    Wednesday, June 8, 2011 5:24 AM