RE: [BizTalker] Biztalk Std - Using the SOAP Adapter to call web services


    [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
    • From: Bill Chesnut
    • Subject: RE: [BizTalker] Biztalk Std - Using the SOAP Adapter to call web services
    • Date: Wed, 09 Jan 2008 04:40:05 -0800

    Patrice,
    
    What version of BizTalk are we talking about 2004, 2006, 2006 R2?
    
    Any way you can attach the WSDL file, just interested in seeing what the object they send back are.
    
    But off the top of my head I don't think there is a way to use the BizTalk SOAP adapter to do what you want.
    
    Bill Chesnut
    BizTalk Server MVP
    Melbourne, Australia
    
    -----Original Message-----
    From: biztalkerlist@xxxxxxxxxxxxxxxxxxxxxx [mailto:biztalkerlist@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of pparuit@xxxxxxxxxxxxxx
    Sent: Wednesday, 9 January 2008 10:05 PM
    To: Biztalker@xxxxxxxxxxxxxxxxxxxxxx
    Cc: pparuit@xxxxxxxxxxxxxxxxx
    Subject: [BizTalker] Biztalk Std - Using the SOAP Adapter to call web services
    
    Hi,
    
    I have the WSDL file and the proxy classes to make a Web Service call to retrieve an array of objects. To retrieve rows two calls are required, one to retrieve a cursor object the next a call to retrieve an -array- of custom objects. See sample implementation below when not using Biztalk.
    
    .
    .
           Dim records() As apex.sObject
            Dim qr As apex.QueryResult = Nothing
    .
    .       [WebProxy binding code here]
    .
    
            qr = WebProxybinding.query("select id, Name, AccountId from Contact")
    
            records = qr.records
    
            Console.WriteLine(" -- Contacts -- ")
    
            'we can loop through the returned records
            For i As Integer = 0 To records.GetUpperBound(0)
                'Because we asked for accounts we will convert
                'the SObject for each record into an Contact object
                Dim contact As apex.Contact = CType(records(i), apex.Contact)
    
                'Now we can access any of the fields we had in the query
                'select clause directly from the account variable
                Console.Write((i + 1).ToString() + ". ")
                Console.Write(Contact.Id + ", ")
                Console.Write(Contact.Name + ", ")
                Console.WriteLine(Contact.AccountId)
            Next
    
    What I'd like to do is use the SOAP Adapter on a Send port to call the service, I understand that a SOAP call can be made with a single param without too much fuss where the rows are returned in single Service call. But this interface requires 
    two calls, one to get a cursor object and another to get an array of custom objects.
    
    Using the abovementioned interface is it possible to get the rows and load them into a single message based on the object schemas (which have been pre-provided)? I do recall reading at one time that arrays were not supported when using the SOAP Adapter.
    
    If not, is there an alternative means using Biztalk? Samples?
    
    Here's hoping.
    
    Regards
    Patrice
    
    
    to unsubscribe to this list, please send a message back to the list with 'unsubscribe' as the subject. Powered by mailenable.com - List managed by http://www.readify.net
    
    
    
    
    
    
    to unsubscribe to this list, please send a message back to the list with 'unsubscribe' as the subject. Powered by mailenable.com - List managed by http://www.readify.net
    
    
    
    
    



    (Click here for more information on the biztalkers mailling list)