Tonare 0 Denunciar post Postado Fevereiro 20, 2012 Olá Pessoal, Preciso da ajuda de vocês para o seguinte caso. Tenho uma aplicação Windows Forms VB.NET e esta se comunica com um Webservice ASP.NET. Preciso fazer uma carga de dados através da leitura de arquivo TXT pela App e passar estes dados para o WS que fará o papel de gravar os dados no banco de dados SQL Server Eu desenvolvi a estrutura de campos no WS assim: Public Class Carga_PNs_Input Public vm_campos() As List(Of Carga_PNs_Input_Campos) End Class Public Class Carga_PNs_Output Public vm_return As New Carga_PNs_Output_Campos End Class Public Class Carga_PNs_Input_Campos Public vm_codigo As String Public vm_nome As String Public vm_cpfcnpj As String Public vm_fone1 As String Public vm_fone2 As String End Class Public Class Carga_PNs_Output_Campos Public vm_codigo As String Public vm_resultado As Integer End Class <SoapHeader("Credencial")> _ <WebMethod(Description:="")> _ Public Function Carga_PNs(vm_dados As Carga_PNs_Input) As Carga_PNs_Output <Código para processamento não desenvolvido pois ainda não consegui receber os dados> End Function Na prática, a App faz a leitura do TXT e deve armazenando na estrutura usada pelo WS até o fim dos registros. Após isso, o WS irá ler linha a linha do que foi passado e inserir no banco de dados. Porém, não consegui de forma alguma montar esta estrutura para usar na App. Vocês podem por favor ajudar com exemplos? Muito obrigado! Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Fevereiro 22, 2012 Como esta seu código que consome o webservice? O que ocorreu? Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
Tonare 0 Denunciar post Postado Fevereiro 22, 2012 Como esta seu código que consome o webservice? O que ocorreu? Abraços... Olá amigo, Segue abaixo ' Instancia objetos para inserir os registros no DB Dim obj_ws As New SR_PSE_WS.PSE_WSSoapClient Dim obj_dados As New SR_PSE_WS.Carga_PNs_Input Dim vm_dados As New List(Of SR_PSE_WS.Carga_PNs_Input_Campos)() Dim vm_dados_aux As New SR_PSE_WS.Carga_PNs_Input_Campos() 'Percorre o arquivo linha a linha While Not vm_linha.EndOfStream 'Splita linha strLin = vm_linha.ReadLine.Trim().Split(";") 'Preenche mensagem de status SLA_STATUS.Text = "Importando registro " & PBA_Status.Value & " - " & _ "Instalação: " & strLin(0).ToString If PBA_Status.Value Mod 100 = 0 Then System.Windows.Forms.Application.DoEvents() 'Adiciona registro vm_dados_aux = New SR_PSE_WS.Carga_PNs_SAP_Input_Campos vm_dados_aux.vm_codigo = strLin(0).ToString vm_dados_aux.vm_nome = strLin(1).ToString vm_dados_aux.vm_cpfcnpj = strLin(2).ToString vm_dados_aux.vm_fone1 = strLin(3).ToString vm_dados_aux.vm_fone2 = strLin(4).ToString obj_dados.vm_dados.Add(vm_dados_aux) <<<==== Aqui já está o problema (Explicação abaixo) 'A cada pacote de X, envia ao servidor para gravar no banco. If PBA_Status.Value Mod 1000 = 0 Then Dim obj_return = obj_ws.Carga_PNs_SAP(obj_ws_token, obj_dados) End If End While Quando eu uso através da instância de WS, não é reconhecido como um Array o obj_dados.vm_dados Se eu uso a classe diretamente dentro do WS, o mesmo código funciona perfeitamente, pois reconhece a variável como um arraylist. Muito obrigado pela ajuda! Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Fevereiro 24, 2012 Tente por em prática: http://www.macoratti.net/vbn_col1.htm a parte do CollectionBase onde cria os próprios métodos. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
@fabiosantosrj 0 Denunciar post Postado Março 6, 2012 O ideal quando trabalha com webservice, principalmente porque você não sabe qual a aplicação está consumindo o WS, é trabalhar com XML. Sendo assim, faça com que o seu app gere um xml do txt e envie esse xml para o ws. Depois o ws interpreta o xml e faz o que quiser com os dados. Compartilhar este post Link para o post Compartilhar em outros sites