locked
Como receber determinados tipos de dados de um WebService RRS feed

  • Pergunta

  • Olá a todos.

    Tenho a seguinte questão em mãos: Estou desenvolvendo um Aplicativo que deverá se comunicar com um WebService de um sistema ERP.

    Minha dúvida é a seguinte, quando vou inserir um Pedido (por exemplo) este pode ter vários itens. Em um Site ou W.Form eu saberia fazer isso tranquilamente, no entanto não sei como realizar isso para um App Windows Phone 7. Eu consigo receber do WP7  Arrays ? DataSets ? ou algum tipo similar ? Estou tentando descobrir para que o meu WebMethod receba o mesmo tipo de variavel que o WP7 passa.

    Agradeço desde já a atenção de todos.


    Brian Souza - Análise e Desenvolvimento de Sistemas

    sexta-feira, 11 de maio de 2012 15:43

Respostas

  • Brian,

    Parece ter alguma coisa estranha por aí, pois repare que na mensagem de erro ele diz que o seu InserirCotação está esperando um System.Collections.ObjectModel.ObservableCollection e não um List.

    O que pode ter acontecido é que na hora de adicionar a referencia ao seu WebServices, ele fez o mapeamento de coleções para ObservableCollection, para ver se é isso mesmo e tentar alterar, clique com o botão direito na referência de seu WebServices, e selecione Configure Web Services, ou algo assim... Aí na tela que vai ser exibida dá uma conferida nas informações :)

    []s


    Thiago J. Mônaco
    MVP Windows Phone Development
    MCP, MCAD, MCSD, MCDBA, MCTS, MCPD and MCT Professional
    Scrum Developer I and Professional Scrum Master
    http://www.windowsphonebrasil.net
    @thiagojmonaco

    • Marcado como Resposta Brian Souza terça-feira, 15 de maio de 2012 19:22
    segunda-feira, 14 de maio de 2012 17:12

Todas as Respostas

  • Brian,
    é possível consumir o webservice normalmente.
    Sendo que o windows phone só consegue consumir o mesmo de forma assincrona.

    Se quiser poste aqui seu código que iremos dar detalhes

    Att,
    Paulo

    sexta-feira, 11 de maio de 2012 17:16
  • No caso, eu ainda nem desenvolvi.

    É que sempre utilizo DataSet e segundo me informaram o WP7 não utiliza. Na verdade o que eu quero é economizar tempo, desenvolvendo um código que o WP7 não tenha problemas tanto em receber quanto em passar informações.


    Brian Souza - Análise e Desenvolvimento de Sistemas

    sexta-feira, 11 de maio de 2012 17:26
  • Brian,

    Eu recomendaria que vc trabalhe com Collections em seus metódos, podendo utilizar o List, List<Pedidos> por exemplo.

    []s


    Thiago J. Mônaco
    MVP Windows Phone Development
    MCP, MCAD, MCSD, MCDBA, MCTS, MCPD and MCT Professional
    Scrum Developer I and Professional Scrum Master
    http://www.windowsphonebrasil.net
    @thiagojmonaco

    sexta-feira, 11 de maio de 2012 17:40
  • Ok, obrigado.

    Vou fazer alguns testes e se conseguir já lhe marco como resposta.


    Brian Souza - Análise e Desenvolvimento de Sistemas

    sexta-feira, 11 de maio de 2012 19:46
  • Eu estou tentando aqui, mas sinceramente estou meio perdido.

    Se puderem me auxiliar, agradeço.

    Segue código no Web Service:

     [WebMethod]
            public string InserirCotacao(string codigocliente,DateTime validade,int condicaoPagamento,string formaPagamento,List<LinhasCotacao> objLinhaCot)
            {
                Cotacao cotacao = new Cotacao(codigocliente, validade, condicaoPagamento, formaPagamento);
                 return cotacao.Add(objLinhaCot);
            }



    E como eu fiz no WP7:

    public partial class cotacao : PhoneApplicationPage
        {
            public cotacao()
            {
                InitializeComponent();
            }
    
            string CodigoCliente;
            DateTime DataValidade;
            int CondicaoPagamento;
            string FormaPagamento;
    
            WSMobile.Service1SoapClient s1 = new WSMobile.Service1SoapClient();
            List<WSMobile.LinhasCotacao> objLinhaCot = new List<WSMobile.LinhasCotacao>();
    
            private void button1_Click(object sender, RoutedEventArgs e)
            {
                
    
            }
            private void InserirCotacao()
            {
                
                s1.InserirCotacaoCompleted +=new EventHandler<WSMobile.InserirCotacaoCompletedEventArgs>(s1_InserirCotacaoCompleted);
                s1.InserirCotacaoAsync(CodigoCliente, DataValidade, CondicaoPagamento,FormaPagamento,objLinhaCot);
                
                
            }
            void s1_InserirCotacaoCompleted(object sender, WSMobile.InserirCotacaoCompletedEventArgs e)
            {
                
    
            }
    
        }

    No entanto ele continua apresentando o seguinte erro:

    Error 1 The best overloaded method match for 'MobileS1.WSMobile.Service1SoapClient.InserirCotacaoAsync(string, System.DateTime, int, string, System.Collections.ObjectModel.ObservableCollection<MobileS1.WSMobile.LinhasCotacao>)' has some invalid arguments C:\Users\Brian\Documents\Visual Studio 2010\Projects\MobileS1\MobileS1\cotacao.xaml.cs 40 13 MobileS1

    Error 2 Argument 5: cannot convert from 'System.Collections.Generic.List<MobileS1.WSMobile.LinhasCotacao>' to 'System.Collections.ObjectModel.ObservableCollection<MobileS1.WSMobile.LinhasCotacao>' C:\Users\Brian\Documents\Visual Studio 2010\Projects\MobileS1\MobileS1\cotacao.xaml.cs 40 98 MobileS1

    Como é minha primeira aplicação WP7, estou bem perdido..rs..

    Agradeço desde já o auxilio.


    Brian Souza - Análise e Desenvolvimento de Sistemas

    segunda-feira, 14 de maio de 2012 15:02
  • Brian,

    Parece ter alguma coisa estranha por aí, pois repare que na mensagem de erro ele diz que o seu InserirCotação está esperando um System.Collections.ObjectModel.ObservableCollection e não um List.

    O que pode ter acontecido é que na hora de adicionar a referencia ao seu WebServices, ele fez o mapeamento de coleções para ObservableCollection, para ver se é isso mesmo e tentar alterar, clique com o botão direito na referência de seu WebServices, e selecione Configure Web Services, ou algo assim... Aí na tela que vai ser exibida dá uma conferida nas informações :)

    []s


    Thiago J. Mônaco
    MVP Windows Phone Development
    MCP, MCAD, MCSD, MCDBA, MCTS, MCPD and MCT Professional
    Scrum Developer I and Professional Scrum Master
    http://www.windowsphonebrasil.net
    @thiagojmonaco

    • Marcado como Resposta Brian Souza terça-feira, 15 de maio de 2012 19:22
    segunda-feira, 14 de maio de 2012 17:12