Atualmente nossas aplicações estão demandando regras de negócios cada
vez mais inovadoras e desafiantes com objetivo de conhecer nosso
cliente agregando valor ao negócio.
Com intuito de compartilhar
entre as organizações e a todos que desejarem fazer a integração em
seus aplicativos, estou disponibilizando nesse artigo passos para que
sua aplicação esteja ela disponibilizada na web e ou na intranet seja
interligada com o Google registrando a latitude e longitude de seus
clientes.
Esta aplicação faz a leitura de um arquivo
texto , com dados de cadastro do cliente e registra um arquivo texto
com a latitude e longitude destes clientes que foram encontrados no
google.
Lembrando que no nosso caso estamos gravando as
informações em um arquivo texto , mas nada impede que sejam atualizadas
essas informações na base dados .
1 – Passo :
Abrimos um projeto web no Visual Studio 2005 e escolhemos com linguagem o vb.net.
Clique na imagem para ampliar
2 – Passo :
2.1 - Adicionamos em nosso aplicativo um projeto de Dataset com os seguintes Atributos :
Cnpjcpf , Logradouro , Bairro, Cidade , Cep .
2.2– Adicionamos os seguintes componente ao nosso layout :
Button > Renomeie para Gera Informações
FileUpload
Label
3 – Passo :
Implementamos o método que efetua a leitura do arquivo e grava as informações no Dataset.
Vejamos o código :
Private Sub LerArquivoCRM()
Dim fluxoTexto As IO.StreamReader
Dim linhaTexto As String
Dim arquivo As String = FileUpload1.PostedFile.FileName
FileUpload1.SaveAs(arquivo)
Dim cnpjcpf As String
Dim logradouro As String
Dim bairro As String
Dim cidade As String
Dim cep As String
Dim row As DataSetLeituraArquivo.Tbl_AtualizaClienteCRMGUIDRow
Dim DsLeituraArquivo As New DataSetLeituraArquivo
If IO.File.Exists(arquivo) Then
fluxoTexto = New IO.StreamReader(arquivo)
linhaTexto = fluxoTexto.ReadLine
While linhaTexto <> Nothing
cnpjcpf = CType(linhaTexto.Split(";"c).GetValue(0), String)
logradouro = CType(linhaTexto.Split(";"c).GetValue(1), String)
bairro = CType(linhaTexto.Split(";"c).GetValue(2), String)
cidade = CType(linhaTexto.Split(";"c).GetValue(3), String)
cep = CType(linhaTexto.Split(";"c).GetValue(4), String)
linhaTexto = fluxoTexto.ReadLine
row = DsLeituraArquivo.Tbl_AtualizaClienteCRMGUID.NewTbl_AtualizaClienteCRMGUIDRow()
row.cnpjcpf = cnpjcpf
row.ds_logradouro = logradouro
row.ds_bairro = bairro
row.ds_cidade = cidade
row.ds_cep = cep
DsLeituraArquivo.Tbl_AtualizaClienteCRMGUID.Rows.Add(row)
End While
fluxoTexto.Close()
BuscaLatitudeLongitude(DsLeituraArquivo)
End If
End Sub
4 – Passo :
Declaramos uma variável que aponta para o caminho e o nome do arquivo
que será gravado com as informações de latitude e longitude.
Lembrando que em nosso artigo aponta para diretório especifico , mas
nada impende que seja implementado por parâmetros que pode ser
especificado efetuando a leitura do web.config da aplicação.
Private arquivoINSERE As String = "C:\ClientesLatitude.txt"
5 – Passo :
Implementamos agora o metodo que vai buscar os dados do dataset e
chamar a API do google para registrar as informações de latitude e
longitude gravando no arquivo texto a saida.
Lembrete : Para
a utilização da API do google deve ser feito o registro , para obter a
chave de registro que será passada na url como parametro.
Private Sub BuscaLatitudeLongitude(ByVal ds As DataSetLeituraArquivo)
strm = New StreamWriter(arquivoINSERE, True)
For Each dr As DataSetLeituraArquivo.Tbl_AtualizaClienteGUIDRow In ds.Tbl_AtualizaClienteGUID.Rows
Dim Endereco As String = dr.ds_logradouro
Dim CEP As String = dr.ds_cep
Dim Rua As String = dr.ds_logradouro
Dim BairroLt As String = dr.ds_bairro
Dim CidadeLt As String = dr.ds_cidade
Dim url As String = "http://maps.google.com/maps/geo?q=" &
HttpUtility.UrlEncode(Endereco & CEP) &
"&output=csv&key=ChaveRegistrono Google"
Dim req As WebRequest = HttpWebRequest.Create(url)
req.Timeout = 30000
Dim res As WebResponse = req.GetResponse()
Dim sr As New StreamReader(res.GetResponseStream())
Try
Dim strRetorno As String = sr.ReadToEnd()
If strRetorno Is Nothing OrElse strRetorno.Equals(String.Empty) Then
Throw New Exception("Not found!")
End If
Dim Latitude As String = strRetorno.Split(",")(2)
Dim Longitude As String = strRetorno.Split(",")(3)
strmErro.WriteLine("CNPJ/CPF: " & dr.cnpjcpf & " Latitude: "
& Latitude.ToString & " Longitude: " & Longitude.ToString)
Finally
sr.Close()
End Try
Next
strmErro.Close()
Label1.Text = " Informações Atualizadas "
End Sub
6 – Passo :
Implementamos a chamada dos metodos pelo cliente do botão Gera
Informações e fazemos a validação para saber se antes efetuar a geração
de informações o arquivo foi selecionado.
If FileUpload1.HasFile Then
LerArquivoCRM()
Else
Label1.Text = " Selecione um arquivo de extensão .TXT"
End If
7 – Passo :
Finalmente chegamos ao final de nossa aplicação e temos um layout que
pode ser visualizado abaixo e uma inteligência integrada com Google
com um grande poder de integração de valor ao negócio.
Clique na imagem para ampliar