PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV 24 → WX - Novo Webservice da WX Informatica para consulta de CEP do Brasil com 3 milhões de endereços do Brasil
WX - Novo Webservice da WX Informatica para consulta de CEP do Brasil com 3 milhões de endereços do Brasil
Iniciado por BOLLER, ago., 30 2017 5:51 AM - 9 respostas
Membro registado
2.916 mensagems
Popularité : +89 (91 votes)
Publicado em agosto, 30 2017 - 5:51 AM
Webservice para consulta de CEP





Total de 3.255.815 de endereços

Estrutura do arquivo





-- Script generated by WEBDEV on 30/08/2017 00:57:39
-- Tables of WsCep.wda analysis
-- for Generic SQL (ANSI 92)

-- Creating the clientes table
CREATE TABLE "clientes" (
"id" NUMERIC(19,0) PRIMARY KEY ,
"Nome" VARCHAR(50) UNIQUE ,
"Email" VARCHAR(50) UNIQUE ,
"Celular" VARCHAR(20) UNIQUE ,
"Token" VARCHAR(50) UNIQUE );

-- Creating the enderecoscorreios table
CREATE TABLE "enderecoscorreios" (
"Sequencial" NUMERIC(19,0) PRIMARY KEY ,
"LogradouroAbrev" NVARCHAR(150) ,
"Logradouro" VARCHAR(150) ,
"LogradouroCompl" VARCHAR(150) ,
"Fonetica" VARCHAR(150) ,
"LogradouroTipo" VARCHAR(20) ,
"CEP" VARCHAR(8) ,
"Bairro" VARCHAR(150) ,
"BairroAbrev" VARCHAR(150) ,
"IDCidade" NUMERIC(19,0) ,
"Cidade" VARCHAR(150) ,
"SubCidadeAbrev" VARCHAR(150) ,
"SubCidade" VARCHAR(150) ,
"CodIBGECid" NUMERIC(19,0) ,
"CodIBGEUF" NUMERIC(19,0) ,
"UF" VARCHAR(2) ,
"LogradouroIniciais" VARCHAR(5) ,
"DMSLatitude" VARCHAR(20) ,
"DMSLongitude" VARCHAR(20) ,
"GDLatitude" NUMERIC(18,6) ,
"GDLongitude" NUMERIC(18,6) ,
"NumeroInicial" INTEGER ,
"NumeroFinal" INTEGER ,
"LogradouroUpper" VARCHAR(150) ,
"Pais" VARCHAR(20) );
CREATE INDEX "WDIDX_enderecoscorreios_LogradouroAbrev" ON "enderecoscorreios" ("LogradouroAbrev");
CREATE INDEX "WDIDX_enderecoscorreios_Logradouro" ON "enderecoscorreios" ("Logradouro");
CREATE INDEX "WDIDX_enderecoscorreios_LogradouroCompl" ON "enderecoscorreios" ("LogradouroCompl");
CREATE INDEX "WDIDX_enderecoscorreios_Fonetica" ON "enderecoscorreios" ("Fonetica");
CREATE INDEX "WDIDX_enderecoscorreios_CEP" ON "enderecoscorreios" ("CEP");
CREATE INDEX "WDIDX_enderecoscorreios_Bairro" ON "enderecoscorreios" ("Bairro");
CREATE INDEX "WDIDX_enderecoscorreios_IDCidade" ON "enderecoscorreios" ("IDCidade");
CREATE INDEX "WDIDX_enderecoscorreios_Cidade" ON "enderecoscorreios" ("Cidade");
CREATE INDEX "WDIDX_enderecoscorreios_CodIBGECid" ON "enderecoscorreios" ("CodIBGECid");
CREATE INDEX "WDIDX_enderecoscorreios_CodIBGEUF" ON "enderecoscorreios" ("CodIBGEUF");
CREATE INDEX "WDIDX_enderecoscorreios_LogradouroUpper" ON "enderecoscorreios" ("LogradouroUpper");
CREATE INDEX "WDIDX_enderecoscorreios_KUnico" ON "enderecoscorreios" ("LogradouroAbrev","Logradouro","LogradouroCompl","Fonetica","LogradouroTipo","CEP","Bairro","BairroAbrev","Cidade","SubCidadeAbrev","SubCidade","UF","Cidade","Pais","NumeroInicial","NumeroFinal");

-- Creating the wslog table
CREATE TABLE "wslog" (
"id" NUMERIC(19,0) PRIMARY KEY ,
"datahora" TIMESTAMP ,
"ip" VARCHAR(15) ,
"acao" LONGVARCHAR ,
"Token" VARCHAR(50) );
CREATE INDEX "WDIDX_wslog_datahora" ON "wslog" ("datahora");
CREATE INDEX "WDIDX_wslog_ip" ON "wslog" ("ip");
CREATE INDEX "WDIDX_wslog_Token" ON "wslog" ("Token");


//server
arr_Resultados is array of string

//Declara webservice//

gsValorMemorizado is string = 1 //Necessario um valor

DeclareWebserviceContext(gsValorMemorizado) //Principal funcao que declara webservice//

DeclareWebserviceContext(arr_Resultados) //Principal funcao que declara webservice//


Procedure Ws_BuscaEndereco(Token, Endereco)

//Variaveis
arrResultado is array of string
ok is boolean = False
X is int = 0
nTokenOk is int = 0
sTabela is string = "Enderecos"
Resultado is string = ""
sErro is string = ""
GloToken is string = ""

OkConn is boolean = False

OkConn = HConnectionOpen(MyHfsql)

ok = HExecuteQuery(QRY_Select_Cliente,hQueryWithoutHFCorrection,Token)

IF ok = True THEN

FOR EACH QRY_Select_Cliente

IF HFound(QRY_Select_Cliente) = True AND Token = QRY_Select_Cliente.Token THEN

GloToken = QRY_Select_Cliente.Token

ELSE

GloToken = ""

END

END

END

//Code
IF Token <> "" AND Token = GloToken

IF OkConn = True THEN

ok = HExecuteQuery(QRY_Select_Cliente,MyHfsql,hQueryWithoutHFCorrection,Token)

IF ok = True THEN

FOR EACH QRY_Select_Cliente

IF HFound(QRY_Select_Cliente) = True THEN

ok = HExecuteQuery(QRY_Select_CEP,MyHfsql,hQueryWithoutCorrection,Endereco)

IF ok =True THEN

Resultado = "<Xml><Retorno>"

FOR EACH QRY_Select_CEP

IF HFound(QRY_Select_CEP) = True AND X = 0

X += 1

Resultado += ws_xml_registro_comeco(X)

Resultado += ws_xml_registro_corpo(QRY_Select_CEP.Sequencial,"Sequencial")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.LogradouroUpper,"LogradouroUpper")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.LogradouroAbrev,"LogradouroAbrev")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.Logradouro,"Logradouro")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.LogradouroCompl,"LogradouroCompl")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.Fonetica,"Fonetica")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.LogradouroTipo,"LogradouroTipo")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.CEP,"CEP")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.Bairro,"Bairro")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.BairroAbrev,"BairroAbrev")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.IDCidade,"IDCidade")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.Cidade,"Cidade")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.SubCidadeAbrev,"SubCidadeAbrev")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.SubCidade,"SubCidade")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.CodIBGECid,"CodIBGECid")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.CodIBGEUF,"CodIBGEUF")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.UF,"UF")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.Pais,"Pais")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.LogradouroIniciais,"LogradouroIniciais")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.NumeroInicial,"NumeroInicial")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.NumeroFinal,"NumeroFinal")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.DMSLatitude,"DMSLatitude")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.DMSLongitude,"DMSLongitude")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.GDLatitude,"GDLatitude")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.GDLongitude,"GDLongitude")

Resultado += ws_xml_registro_final()

END

END

IF X = 0 THEN
Resultado = ws_zero_registros(sTabela)
END

Resultado += "<TOTAL>"+X+"</TOTAL>" //Total de Registros para usar em barras de progresso
Resultado += "</Retorno></Xml>"

ELSE

Resultado += "<Error>Erro 002 tabela<Error>"

END

ELSE

Resultado += "<Error>Erro 003 tabela<Error>"

END


END


ELSE

Resultado += "<Error>Erro 004 tabela<Error>"

END


ELSE

Resultado += "<Error>Erro 005 Conexao<Error>"

END

ip is string = WebserviceClientIPAddress(False)
//Verdadeiro para recuperar o endereço inicial especificado no cabeçalho HTTP,
//Falso (valor padrão) para recuperar o Endereco ip na variável de ambiente "REMOTE_ADDR" definida pelo servidor da Web.

ok = HExecuteQuery(QRY_Insert_Log,hQueryWithoutHFCorrection,DateSys()+TimeSys(),ip,Token,Endereco)

HReset(QRY_Select_CEP) // <----- Limpar atenção

HReset(QRY_Select_Cliente) // <----- Limpar atenção

HConnectionClose(ConnNativa)

ELSE

Resultado += "<Error>Token invalido<Error>"

END

nTamanho is int = Length(Resultado)

Add(arrResultado,Resultado)

RESULT (arrResultado)


Modo de usar:

http://wxmagazine.pcscloud.net/WSCEP_WEB/awws/index.htm

http://wxmagazine.pcscloud.net/WSCEP_WEB/awws/WsCep.awws?wsdl


















Para usar importe o link WSDL para sua aplicação Windev, Webdev ou Windev Mobile informando esse endereço:

http://wxmagazine.pcscloud.net/WSCEP_WEB/awws/WsCep.awws?wsdl


Para usar em sua aplicação:

//Webservice
//############################################################################
XML_Retorno is string = ""

RetornoXml is a Ws_BuscaEnderecoResponse

RetornoXml = Ws_BuscaEndereco(0120120120120120120120120120120120120,"Clavio Molinari")

XML_Retorno = RetornoXml.Ws_BuscaEnderecoResult
//############################################################################


Para usar basta solicitar o token de uso é pelo e-mail adrianoboller@gmail.com

Por um certo tempo vai estar liberado o cadastro automático

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SOAP-ENV:Header>
<nhs:WSID mustUnderstand="1" xsi:type="xsd:hexBinary" xmlns:nhs="urn:WsCep" xmlns="urn:WsCep">3748E6F2B57B69A27761BE282AB47EE956293F86</nhs:WSID>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<ns1:Ws_IncluirClienteResponse xmlns:ns1="urn:WsCep">
<Ws_IncluirClienteResult><Xml><Retorno>OK - Anote o seu Token: 1</Retorno></Xml></Ws_IncluirClienteResult>
</ns1:Ws_IncluirClienteResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>


Anote o seu token ok.

:merci:

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Mensagem modificada, agosto, 30 2017 - 6:23 AM
Membro registado
2.916 mensagems
Popularité : +89 (91 votes)
Publicado em setembro, 01 2017 - 2:51 PM
O método teve a melhoria de retornar xml ou json









Procedure Ws_BuscaEndereco(Token, Endereco, CEP, TipoXmlJson)

//http://wxmagazine.pcscloud.net/WSCEP_WEB/awws/index.htm

//http://wxmagazine.pcscloud.net/WSCEP_WEB/awws/WsCep.awws?wsdl

//Variaveis
arrResultado is array of string
arrQuery is array of strings
ok is boolean = False
X is int = 0
nTokenOk is int = 0
bResultado_json is Buffer = ""
sTabela is string = "Enderecos"
Resultado, GloValidade is string = ""
sErro is string = ""
GloToken is string = ""

OkConn is boolean = False

//OkConn = HConnectionOpen(MyHfsql) //local

OkConn = HConnectionOpen(MyPcscloud) //pcscloud

ok = HExecuteQuery(QRY_Select_Cliente,MyPcscloud,hQueryWithoutHFCorrection,Token)

IF ok = True AND OkConn = True AND Token <> ""

//Global
HCreationIfNotFound("*")

HModifyStructure("*",hmsBackgroundTask)

FOR EACH QRY_Select_Cliente

IF HFound(QRY_Select_Cliente) = True AND Token = QRY_Select_Cliente.id THEN

GloToken = QRY_Select_Cliente.id

GloValidade = QRY_Select_Cliente.Token

ELSE

GloToken = ""

END

END

END

TipoXmlJson = Lower(TipoXmlJson)

//Code
IF Token <> "" AND Token = GloToken AND GloValidade = "0"

IF OkConn = True THEN

CEP = NoSpace(CEP)

IF (CEP = "" AND Endereco <> "") OR (CEP = 0 AND Endereco <> "") THEN

Endereco = Lower(Endereco)

Endereco = NoSpace(NoAccent(Endereco))

Endereco = Replace(Endereco, "rua ","")

Endereco = Replace(Endereco, "avenida ","")

//Busca Fulltext
QRY_Select_CEP.ParamFullTextPertinence = 0
QRY_Select_CEP.ParamKFulltext = Endereco
ok = HExecuteQuery(QRY_Select_CEP,hQueryDefault+hQueryWithoutHFCorrection,Endereco,0)
//Busca Fulltext

IF ok =True THEN

Resultado = "<Xml><Retorno>"

FOR EACH QRY_Select_CEP

IF HFound(QRY_Select_CEP) = True THEN

X += 1

IF TipoXmlJson = "xml"

Resultado += ws_xml_registro_comeco(X)

Resultado += ws_xml_registro_corpo(QRY_Select_CEP.Sequencial,"Sequencial")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.LogradouroUpper,"LogradouroUpper")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.LogradouroAbrev,"LogradouroAbrev")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.Logradouro,"Logradouro")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.LogradouroCompl,"LogradouroCompl")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.Fonetica,"Fonetica")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.LogradouroTipo,"LogradouroTipo")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.CEP,"CEP")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.Bairro,"Bairro")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.BairroAbrev,"BairroAbrev")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.IDCidade,"IDCidade")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.Cidade,"Cidade")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.SubCidadeAbrev,"SubCidadeAbrev")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.SubCidade,"SubCidade")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.CodIBGECid,"CodIBGECid")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.CodIBGEUF,"CodIBGEUF")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.UF,"UF")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.Pais,"Pais")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.LogradouroIniciais,"LogradouroIniciais")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.NumeroInicial,"NumeroInicial")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.NumeroFinal,"NumeroFinal")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.DMSLatitude,"DMSLatitude")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.DMSLongitude,"DMSLongitude")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.GDLatitude,"GDLatitude")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP.GDLongitude,"GDLongitude")

Resultado += ws_xml_registro_final()

ELSE IF TipoXmlJson = "json"

Add(arrQuery, "Registro: "+ X)

Add(arrQuery, QRY_Select_CEP.LogradouroUpper)
Add(arrQuery, QRY_Select_CEP.LogradouroAbrev)
Add(arrQuery, QRY_Select_CEP.Logradouro)
Add(arrQuery, QRY_Select_CEP.LogradouroCompl)
Add(arrQuery, QRY_Select_CEP.Fonetica)
Add(arrQuery, QRY_Select_CEP.LogradouroTipo)
Add(arrQuery, QRY_Select_CEP.CEP)
Add(arrQuery, QRY_Select_CEP.Bairro)
Add(arrQuery, QRY_Select_CEP.BairroAbrev)
Add(arrQuery, QRY_Select_CEP.IDCidade)
Add(arrQuery, QRY_Select_CEP.Cidade)
Add(arrQuery, QRY_Select_CEP.SubCidadeAbrev)
Add(arrQuery, QRY_Select_CEP.SubCidade)
Add(arrQuery, QRY_Select_CEP.CodIBGECid)
Add(arrQuery, QRY_Select_CEP.CodIBGEUF)
Add(arrQuery, QRY_Select_CEP.UF)
Add(arrQuery, QRY_Select_CEP.Pais)
Add(arrQuery, QRY_Select_CEP.LogradouroIniciais)
Add(arrQuery, QRY_Select_CEP.NumeroInicial)
Add(arrQuery, QRY_Select_CEP.NumeroFinal)
Add(arrQuery, QRY_Select_CEP.DMSLatitude)
Add(arrQuery, QRY_Select_CEP.DMSLongitude)
Add(arrQuery, QRY_Select_CEP.GDLatitude)
Add(arrQuery, QRY_Select_CEP.GDLongitude)

END

END

END

IF X = 0 THEN
Resultado = ws_zero_registros(sTabela)
END

Resultado += "<TOTAL>"+X+"</TOTAL>" //Total de Registros para usar em barras de progresso
Resultado += "</Retorno></Xml>"

ELSE

Resultado += "<Error>Erro 002 tabela<Error>"

END

ELSE

ok = HExecuteQuery(QRY_Select_CEP_Filtro,MyPcscloud,hQueryWithoutCorrection,CEP)

IF ok =True THEN

Resultado = "<Xml><Retorno>"

FOR EACH QRY_Select_CEP_Filtro

IF HFound(QRY_Select_CEP_Filtro) = True

X += 1

IF TipoXmlJson = "xml"

Resultado += ws_xml_registro_comeco(X)

Resultado += ws_xml_registro_corpo(QRY_Select_CEP_Filtro.Sequencial,"Sequencial")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP_Filtro.LogradouroUpper,"LogradouroUpper")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP_Filtro.LogradouroAbrev,"LogradouroAbrev")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP_Filtro.Logradouro,"Logradouro")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP_Filtro.LogradouroCompl,"LogradouroCompl")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP_Filtro.Fonetica,"Fonetica")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP_Filtro.LogradouroTipo,"LogradouroTipo")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP_Filtro.CEP,"CEP")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP_Filtro.Bairro,"Bairro")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP_Filtro.BairroAbrev,"BairroAbrev")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP_Filtro.IDCidade,"IDCidade")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP_Filtro.Cidade,"Cidade")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP_Filtro.SubCidadeAbrev,"SubCidadeAbrev")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP_Filtro.SubCidade,"SubCidade")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP_Filtro.CodIBGECid,"CodIBGECid")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP_Filtro.CodIBGEUF,"CodIBGEUF")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP_Filtro.UF,"UF")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP_Filtro.Pais,"Pais")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP_Filtro.LogradouroIniciais,"LogradouroIniciais")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP_Filtro.NumeroInicial,"NumeroInicial")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP_Filtro.NumeroFinal,"NumeroFinal")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP_Filtro.DMSLatitude,"DMSLatitude")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP_Filtro.DMSLongitude,"DMSLongitude")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP_Filtro.GDLatitude,"GDLatitude")
Resultado += ws_xml_registro_corpo(QRY_Select_CEP_Filtro.GDLongitude,"GDLongitude")

Resultado += ws_xml_registro_final()

ELSE IF TipoXmlJson = "json"

Add(arrQuery, "Registro: "+ X)

Add(arrQuery, QRY_Select_CEP_Filtro.LogradouroUpper)
Add(arrQuery, QRY_Select_CEP_Filtro.LogradouroAbrev)
Add(arrQuery, QRY_Select_CEP_Filtro.Logradouro)
Add(arrQuery, QRY_Select_CEP_Filtro.LogradouroCompl)
Add(arrQuery, QRY_Select_CEP_Filtro.Fonetica)
Add(arrQuery, QRY_Select_CEP_Filtro.LogradouroTipo)
Add(arrQuery, QRY_Select_CEP_Filtro.CEP)
Add(arrQuery, QRY_Select_CEP_Filtro.Bairro)
Add(arrQuery, QRY_Select_CEP_Filtro.BairroAbrev)
Add(arrQuery, QRY_Select_CEP_Filtro.IDCidade)
Add(arrQuery, QRY_Select_CEP_Filtro.Cidade)
Add(arrQuery, QRY_Select_CEP_Filtro.SubCidadeAbrev)
Add(arrQuery, QRY_Select_CEP_Filtro.SubCidade)
Add(arrQuery, QRY_Select_CEP_Filtro.CodIBGECid)
Add(arrQuery, QRY_Select_CEP_Filtro.CodIBGEUF)
Add(arrQuery, QRY_Select_CEP_Filtro.UF)
Add(arrQuery, QRY_Select_CEP_Filtro.Pais)
Add(arrQuery, QRY_Select_CEP_Filtro.LogradouroIniciais)
Add(arrQuery, QRY_Select_CEP_Filtro.NumeroInicial)
Add(arrQuery, QRY_Select_CEP_Filtro.NumeroFinal)
Add(arrQuery, QRY_Select_CEP_Filtro.DMSLatitude)
Add(arrQuery, QRY_Select_CEP_Filtro.DMSLongitude)
Add(arrQuery, QRY_Select_CEP_Filtro.GDLatitude)
Add(arrQuery, QRY_Select_CEP_Filtro.GDLongitude)

END

END


END

IF X = 0 THEN
Resultado = ws_zero_registros(sTabela)
END

Resultado += "<TOTAL>"+X+"</TOTAL>" //Total de Registros para usar em barras de progresso

Resultado += "</Retorno></Xml>"

ELSE

Resultado += "<Error>Erro 002 tabela<Error>"

END

END



ELSE

Resultado += "<Error>Erro 003 tabela<Error>"

END



ELSE

Resultado += "<Error>Token invalido<Error>"

END

ip is string = WebserviceClientIPAddress(False)
//Verdadeiro para recuperar o endereço inicial especificado no cabeçalho HTTP,
//Falso (valor padrão) para recuperar o Endereco ip na variável de ambiente "REMOTE_ADDR" definida pelo servidor da Web.

ok = HExecuteQuery(QRY_Insert_Log,hQueryWithoutHFCorrection,DateSys()+TimeSys(),ip,Token,"Ws_BuscaEndereco: " + Endereco)

HConnectionClose(MyPcscloud) //pcscloud

//HConnectionClose(MyHfsql) //local

nTamanho_xml is int = Length(Resultado)

nTamanho_json is int = Length(Resultado)

IF TipoXmlJson = "json" THEN
Serialize(arrQuery, bResultado_json, psdJSON)
Add(arrResultado,bResultado_json)
ELSE IF TipoXmlJson = "xml" THEN
Add(arrResultado,Resultado)
END

RESULT (arrResultado)


--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Mensagem modificada, setembro, 01 2017 - 3:20 PM
Membro registado
2.916 mensagems
Popularité : +89 (91 votes)
Publicado em setembro, 08 2017 - 4:48 PM
Versao Final

//http://wxmagazine.pcscloud.net/WSCEP_WEB/awws/index.htm

//http://wxmagazine.pcscloud.net/WSCEP_WEB/awws/WsCep.awws?wsdl


Procedure Ws_BuscarEndereco(Token, Endereco, Cidade, CEP, TipoXmlJson)

//http://wxmagazine.pcscloud.net/WSCEP_WEB/awws/index.htm

//http://wxmagazine.pcscloud.net/WSCEP_WEB/awws/WsCep.awws?wsdl


//Variaveis
arrResultado is array of string

ok is boolean = False
X is int = 0
nTokenOk is int = 0
sTabela is string = "Enderecos"
Resultado, GloValidade is string = ""
sErro is string = ""
GloToken is string = ""

OkConn is boolean = False

//Busca
IF Token = "" OR Token = 0 OR Token = Null THEN

Endereco = ""
Cidade = ""
CEP = 0
TipoXmlJson = ""

ELSE

//OkConn = HConnectionOpen(MyHfsql) //local

OkConn = HConnectionOpen(MyPcscloud) //pcscloud

ok = HExecuteQuery(QRY_Select_Cliente,MyPcscloud,hQueryWithoutHFCorrection,Token)

IF ok = True AND OkConn = True AND Token <> ""

//Global
HCreationIfNotFound("*")

HModifyStructure("*",hmsBackgroundTask)

FOR EACH QRY_Select_Cliente

IF HFound(QRY_Select_Cliente) = True AND Token = QRY_Select_Cliente.Token THEN

GloToken = QRY_Select_Cliente.Token

GloValidade = QRY_Select_Cliente.Validade

ELSE

GloToken = ""

END

END

END

Endereco = Capitalize(Endereco)

Endereco = NoSpace(NoAccent(Endereco))

Endereco = Replace(Endereco, "Rua ","")

Endereco = Replace(Endereco, "Avenida ","")

Endereco = Replace(Endereco, "Travessa ","")

Endereco = Replace(Endereco, "Marginal ","")

Cidade = Capitalize(Cidade)

Cidade = NoSpace(NoAccent(Cidade))

CEP = NoSpace(CEP)

CEP = Replace(CEP,".","")

CEP = Replace(CEP,"-","")

IF CEP = "" OR CEP = Null OR Length(CEP) < 8
CEP = 0
END

TipoXmlJson = Lower(TipoXmlJson)

IF TipoXmlJson = "" THEN
TipoXmlJson = "xml"
END

//Code
IF Token <> "" AND Token = GloToken THEN

IF OkConn = True THEN

//Global
HCreationIfNotFound("*")

HModifyStructure("*",hmsBackgroundTask)

IF Endereco <> "" AND Cidade = "" AND CEP = 0 // fulltext endereço

IF TipoXmlJson = "xml" THEN
Resultado = FiltroEnderecoFulltextXml(Endereco)
ELSE
Resultado = FiltroEnderecoFulltextJson(Endereco)
END


ELSE IF Endereco <> "" AND Cidade <> "" AND CEP = 0 // filtro endereço cidade

IF TipoXmlJson = "xml" THEN
Resultado = FiltroEnderecoCidadeXml(Endereco,Cidade)
ELSE
Resultado = FiltroEnderecoCidadeJson(Endereco,Cidade)
END

ELSE IF Endereco <> "" AND Cidade <> "" AND CEP <> 0 AND Length(CEP) = 8 // filtro endereço cidade cep

IF TipoXmlJson = "xml" THEN
Resultado = FiltroEnderecoCidadeCepXml(Endereco,Cidade,CEP)
ELSE
Resultado = FiltroEnderecoCidadeCepJson(Endereco,Cidade,CEP)
END

ELSE IF (Endereco = "" AND Cidade = "" AND CEP <> 0 AND Length(CEP) = 8 ) OR (Endereco <> "" AND Cidade = "" AND CEP <> 0 AND Length(CEP) = 8 ) // filtro cep

IF TipoXmlJson = "xml" THEN
Resultado = FiltroCepXml(CEP)
ELSE
Resultado = FiltroCepJson(CEP)
END

END


ELSE

Resultado += "<Error>Erro 003 connect<Error>"

END


ELSE

Resultado += "<Error>Erro 004 token<Error>"

END

END//validacao

ip is string = WebserviceClientIPAddress(False)
//Verdadeiro para recuperar o endereço inicial especificado no cabeçalho HTTP,
//Falso (valor padrão) para recuperar o Endereco ip na variável de ambiente "REMOTE_ADDR" definida pelo servidor da Web.

ok = HExecuteQuery(QRY_Insert_Log,MyPcscloud,hQueryWithoutHFCorrection,DateSys()+TimeSys(),ip,Token,"Ws_ListarClientes")

HConnectionClose(MyPcscloud) //pcscloud

//HConnectionClose(MyHfsql) //local

nTamanho is int = Length(Resultado)

Add(arrResultado,Resultado)

RESULT (arrResultado)


Procedure Capitalize(LOCAL Texto)

ChangeCharset(charsetOccidental) // SEM ACENTO

IF Texto <> Null AND Texto <> ""
Texto = NoAccent(Texto)

Texto = Lower(Texto)

Texto = Upper(Middle(Texto,1,1)) + Middle(Texto,2,Length(Texto))

nEspaco01 is int = PositionOccurrence(Texto," ",firstRank,FromBeginning) + 1
IF nEspaco01 > 1 THEN
Texto = Middle(Texto,1,nEspaco01-1) + Upper(Middle(Texto,nEspaco01,1)) + Middle(Texto,nEspaco01+1,Length(Texto))
END


TOT is int = 0
POS1, POS2, POS3 is int = 0
TOT = Length(Texto)
LOOP (TOT)
POS1 +=1
POS2 = POS1 + 1
POS3 = POS2 + 1
IF Middle(Texto,POS1,1) = " " AND Middle(Texto,POS2,1) <> " "
Texto = Middle(Texto,1,POS1) + Upper(Middle(Texto,POS2,1)) + Middle(Texto,POS3,TOT)
END
END


Texto = Replace(Texto," Da ", " da ")

Texto = Replace(Texto," Das ", " das ")

Texto = Replace(Texto," De ", " de ")

Texto = Replace(Texto," Do ", " do ")

Texto = Replace(Texto," Dos ", " dos ")

END

RESULT(Texto)


// Summary: <specify the procedure action>
// Syntax:
//[ <Result> = ] FiltroCepJson (<CEP>)
//
// Parameters:
// CEP: <specify the role of CEP>
// Return Value:
// ANSI string: // None
//
// For instance:
// Indicate an example.
//
Procedure FiltroCepJson(CEP)

TempoInicio is Time = TimeSys()
TempoFinal is Time
TempoTotal is int

arrQuery is array of string

Resultado is string = ""

IF CEP <> "" THEN

//Busca

ok is boolean = HExecuteQuery(QRY_Select_Endereco_CEP,hQueryDefault,CEP)

IF ok = True

x is int

FOR EACH QRY_Select_Endereco_CEP

IF HFound(QRY_Select_Endereco_CEP) = True THEN

x += 1

Add(arrQuery, "Registro: "+ x)

Add(arrQuery, QRY_Select_Endereco_CEP.Sequencial)

Add(arrQuery, QRY_Select_Endereco_CEP.Sequencial)
Add(arrQuery, QRY_Select_Endereco_CEP.LogradouroUpper)
Add(arrQuery, QRY_Select_Endereco_CEP.LogradouroAbrev)
Add(arrQuery, QRY_Select_Endereco_CEP.Logradouro)
Add(arrQuery, QRY_Select_Endereco_CEP.LogradouroCompl)
Add(arrQuery, QRY_Select_Endereco_CEP.Fonetica)
Add(arrQuery, QRY_Select_Endereco_CEP.LogradouroTipo)
Add(arrQuery, QRY_Select_Endereco_CEP.CEP)
Add(arrQuery, QRY_Select_Endereco_CEP.Bairro)
Add(arrQuery, QRY_Select_Endereco_CEP.BairroAbrev)
Add(arrQuery, QRY_Select_Endereco_CEP.IDCidade)
Add(arrQuery, QRY_Select_Endereco_CEP.Cidade)
Add(arrQuery, QRY_Select_Endereco_CEP.SubCidadeAbrev)
Add(arrQuery, QRY_Select_Endereco_CEP.SubCidade)
Add(arrQuery, QRY_Select_Endereco_CEP.CodIBGECid)
Add(arrQuery, QRY_Select_Endereco_CEP.CodIBGEUF)
Add(arrQuery, QRY_Select_Endereco_CEP.UF)
Add(arrQuery, QRY_Select_Endereco_CEP.Pais)
Add(arrQuery, QRY_Select_Endereco_CEP.LogradouroIniciais)
Add(arrQuery, QRY_Select_Endereco_CEP.NumeroInicial)
Add(arrQuery, QRY_Select_Endereco_CEP.NumeroFinal)
Add(arrQuery, QRY_Select_Endereco_CEP.DMSLatitude)
Add(arrQuery, QRY_Select_Endereco_CEP.DMSLongitude)
Add(arrQuery, QRY_Select_Endereco_CEP.GDLatitude)
Add(arrQuery, QRY_Select_Endereco_CEP.GDLongitude)

END

END //for

IF x = 0 THEN
Add(arrQuery,"ws_zero_registros")
END

TempoFinal = TimeSys()
TempoTotal = TempoFinal - TempoInicio
Add(arrQuery,"Total: "+x) //Total de Registros para usar em barras de progresso
Add(arrQuery,"<Developer>Retorno via Webservice desenvolvido com Webdev v22 - PCSOFT - Wx Informatica - adrianoboller@gmail.com - skype adrianoboller - Tempo Total: "+TempoTotal)


END

ELSE

TempoFinal = TimeSys()
TempoTotal = TempoFinal - TempoInicio
Add(arrQuery,"Total: "+0) //Total de Registros para usar em barras de progresso
Add(arrQuery,"<Developer>Retorno via Webservice desenvolvido com Webdev v22 - PCSOFT - Wx Informatica - adrianoboller@gmail.com - skype adrianoboller - Tempo Total: "+TempoTotal)

END

bResultado_json is Buffer
Serialize(arrQuery, bResultado_json, psdJSON)
Resultado = bResultado_json

RESULT(Resultado)


// Summary: <specify the procedure action>
// Syntax:
//[ <Result> = ] FiltroCepXml (<Cep>)
//
// Parameters:
// Cep: <specify the role of Cep>
// Return Value:
// ANSI string: // None
//
// For instance:
// Indicate an example.
//
Procedure FiltroCepXml(Cep)

TempoInicio is Time = TimeSys()

TempoFinal is Time

TempoTotal is int

Resultado is string = ""

IF Cep <> ""

ok is boolean = HExecuteQuery(QRY_Select_Endereco_CEP,hQueryDefault,Cep)

IF ok = True AND Cep <> ""

x is int

Resultado = "<Xml><Retorno>"

FOR EACH QRY_Select_Endereco_CEP

IF HFound(QRY_Select_Endereco_CEP) = True THEN

x += 1

Resultado += ws_xml_registro_comeco(x)

Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_CEP.Sequencial,"Sequencial")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_CEP.LogradouroUpper,"LogradouroUpper")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_CEP.LogradouroAbrev,"LogradouroAbrev")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_CEP.Logradouro,"Logradouro")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_CEP.LogradouroCompl,"LogradouroCompl")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_CEP.Fonetica,"Fonetica")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_CEP.LogradouroTipo,"LogradouroTipo")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_CEP.CEP,"CEP")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_CEP.Bairro,"Bairro")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_CEP.BairroAbrev,"BairroAbrev")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_CEP.IDCidade,"IDCidade")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_CEP.Cidade,"Cidade")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_CEP.SubCidadeAbrev,"SubCidadeAbrev")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_CEP.SubCidade,"SubCidade")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_CEP.CodIBGECid,"CodIBGECid")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_CEP.CodIBGEUF,"CodIBGEUF")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_CEP.UF,"UF")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_CEP.Pais,"Pais")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_CEP.LogradouroIniciais,"LogradouroIniciais")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_CEP.NumeroInicial,"NumeroInicial")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_CEP.NumeroFinal,"NumeroFinal")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_CEP.DMSLatitude,"DMSLatitude")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_CEP.DMSLongitude,"DMSLongitude")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_CEP.GDLatitude,"GDLatitude")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_CEP.GDLongitude,"GDLongitude")

Resultado += ws_xml_registro_final()

END

END //for

IF x = 0 THEN
Resultado = ws_zero_registros("Enderecos")
END

TempoFinal = TimeSys()
TempoTotal = TempoFinal - TempoInicio
Resultado += "<TOTAL>"+x+"</TOTAL>" //Total de Registros para usar em barras de progresso
Resultado += "<Developer>Retorno via Webservice desenvolvido com Webdev v22 - PCSOFT - Wx Informatica - adrianoboller@gmail.com - skype adrianoboller - Tempo Total: "+TempoTotal+"</Developer></Retorno></Xml>"
Resultado += "</Retorno></Xml>"

END

ELSE
TempoFinal = TimeSys()
TempoTotal = TempoFinal - TempoInicio
Resultado += "<TOTAL>"+0+"</TOTAL>" //Total de Registros para usar em barras de progresso
Resultado += "<Developer>Retorno via Webservice desenvolvido com Webdev v22 - PCSOFT - Wx Informatica - adrianoboller@gmail.com - skype adrianoboller - Tempo Total: "+TempoTotal+"</Developer></Retorno></Xml>"
Resultado += "</Retorno></Xml>"
END

RESULT(Resultado)


// Summary: <specify the procedure action>
// Syntax:
//[ <Result> = ] FiltroEnderecoCidadeCepJson (<Endereco>, <Cidade>, <Cep>)
//
// Parameters:
// Endereco: <specify the role of Endereco>
// Cidade: <specify the role of Cidade>
// Cep: <specify the role of Cep>
// Return Value:
// ANSI string: // None
//
// For instance:
// Indicate an example.
//
Procedure FiltroEnderecoCidadeCepJson(Endereco,Cidade,Cep)

TempoInicio is Time = TimeSys()
TempoFinal is Time
TempoTotal is int

arrQuery is array of string

Resultado is string = ""

IF Endereco <> "" THEN

//Busca

ok is boolean = HExecuteQuery(QRY_Select_Endereco_Cidade_CEP,hQueryDefault,Cidade,Endereco,Cep)

IF ok = True

x is int

FOR EACH QRY_Select_Endereco_Cidade_CEP

IF HFound(QRY_Select_Endereco_Cidade_CEP) = True THEN

x += 1

Add(arrQuery, "Registro: "+ x)

Add(arrQuery, QRY_Select_Endereco_Cidade_CEP.Sequencial)

Add(arrQuery, QRY_Select_Endereco_Cidade_CEP.Sequencial)
Add(arrQuery, QRY_Select_Endereco_Cidade_CEP.LogradouroUpper)
Add(arrQuery, QRY_Select_Endereco_Cidade_CEP.LogradouroAbrev)
Add(arrQuery, QRY_Select_Endereco_Cidade_CEP.Logradouro)
Add(arrQuery, QRY_Select_Endereco_Cidade_CEP.LogradouroCompl)
Add(arrQuery, QRY_Select_Endereco_Cidade_CEP.Fonetica)
Add(arrQuery, QRY_Select_Endereco_Cidade_CEP.LogradouroTipo)
Add(arrQuery, QRY_Select_Endereco_Cidade_CEP.CEP)
Add(arrQuery, QRY_Select_Endereco_Cidade_CEP.Bairro)
Add(arrQuery, QRY_Select_Endereco_Cidade_CEP.BairroAbrev)
Add(arrQuery, QRY_Select_Endereco_Cidade_CEP.IDCidade)
Add(arrQuery, QRY_Select_Endereco_Cidade_CEP.Cidade)
Add(arrQuery, QRY_Select_Endereco_Cidade_CEP.SubCidadeAbrev)
Add(arrQuery, QRY_Select_Endereco_Cidade_CEP.SubCidade)
Add(arrQuery, QRY_Select_Endereco_Cidade_CEP.CodIBGECid)
Add(arrQuery, QRY_Select_Endereco_Cidade_CEP.CodIBGEUF)
Add(arrQuery, QRY_Select_Endereco_Cidade_CEP.UF)
Add(arrQuery, QRY_Select_Endereco_Cidade_CEP.Pais)
Add(arrQuery, QRY_Select_Endereco_Cidade_CEP.LogradouroIniciais)
Add(arrQuery, QRY_Select_Endereco_Cidade_CEP.NumeroInicial)
Add(arrQuery, QRY_Select_Endereco_Cidade_CEP.NumeroFinal)
Add(arrQuery, QRY_Select_Endereco_Cidade_CEP.DMSLatitude)
Add(arrQuery, QRY_Select_Endereco_Cidade_CEP.DMSLongitude)
Add(arrQuery, QRY_Select_Endereco_Cidade_CEP.GDLatitude)
Add(arrQuery, QRY_Select_Endereco_Cidade_CEP.GDLongitude)

END

END //for

IF x = 0 THEN
Add(arrQuery,"ws_zero_registros")
END

TempoFinal = TimeSys()
TempoTotal = TempoFinal - TempoInicio
Add(arrQuery,"Total: "+x) //Total de Registros para usar em barras de progresso
Add(arrQuery,"<Developer>Retorno via Webservice desenvolvido com Webdev v22 - PCSOFT - Wx Informatica - adrianoboller@gmail.com - skype adrianoboller - Tempo Total: "+TempoTotal)


END

ELSE

TempoFinal = TimeSys()
TempoTotal = TempoFinal - TempoInicio
Add(arrQuery,"Total: "+0) //Total de Registros para usar em barras de progresso
Add(arrQuery,"<Developer>Retorno via Webservice desenvolvido com Webdev v22 - PCSOFT - Wx Informatica - adrianoboller@gmail.com - skype adrianoboller - Tempo Total: "+TempoTotal)

END

bResultado_json is Buffer
Serialize(arrQuery, bResultado_json, psdJSON)
Resultado = bResultado_json

RESULT(Resultado)


// Summary: <specify the procedure action>
// Syntax:
//[ <Result> = ] FiltroEnderecoCidadeCepXml (<Endereco>, <Cidade>, <Cep>)
//
// Parameters:
// Endereco: <specify the role of Endereco>
// Cidade: <specify the role of Cidade>
// Cep: <specify the role of Cep>
// Return Value:
// ANSI string: // None
//
// For instance:
// Indicate an example.
//
Procedure FiltroEnderecoCidadeCepXml(Endereco, Cidade, Cep)

TempoInicio is Time = TimeSys()
TempoFinal is Time
TempoTotal is int

Resultado is string = ""

IF Endereco <> "" AND Cidade <> "" AND Cep <> ""

ok is boolean = HExecuteQuery(QRY_Select_Endereco_Cidade_CEP,hQueryDefault,Cidade,Endereco,Cep)

IF ok = True AND Cep <> ""

x is int

Resultado = "<Xml><Retorno>"

FOR EACH QRY_Select_Endereco_Cidade_CEP

IF HFound(QRY_Select_Endereco_Cidade_CEP) = True THEN

x += 1

Resultado += ws_xml_registro_comeco(x)

Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Cidade_CEP.Sequencial,"Sequencial")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Cidade_CEP.LogradouroUpper,"LogradouroUpper")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Cidade_CEP.LogradouroAbrev,"LogradouroAbrev")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Cidade_CEP.Logradouro,"Logradouro")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Cidade_CEP.LogradouroCompl,"LogradouroCompl")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Cidade_CEP.Fonetica,"Fonetica")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Cidade_CEP.LogradouroTipo,"LogradouroTipo")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Cidade_CEP.CEP,"CEP")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Cidade_CEP.Bairro,"Bairro")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Cidade_CEP.BairroAbrev,"BairroAbrev")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Cidade_CEP.IDCidade,"IDCidade")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Cidade_CEP.Cidade,"Cidade")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Cidade_CEP.SubCidadeAbrev,"SubCidadeAbrev")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Cidade_CEP.SubCidade,"SubCidade")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Cidade_CEP.CodIBGECid,"CodIBGECid")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Cidade_CEP.CodIBGEUF,"CodIBGEUF")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Cidade_CEP.UF,"UF")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Cidade_CEP.Pais,"Pais")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Cidade_CEP.LogradouroIniciais,"LogradouroIniciais")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Cidade_CEP.NumeroInicial,"NumeroInicial")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Cidade_CEP.NumeroFinal,"NumeroFinal")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Cidade_CEP.DMSLatitude,"DMSLatitude")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Cidade_CEP.DMSLongitude,"DMSLongitude")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Cidade_CEP.GDLatitude,"GDLatitude")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Cidade_CEP.GDLongitude,"GDLongitude")

Resultado += ws_xml_registro_final()

END

END //for

IF x = 0 THEN
Resultado = ws_zero_registros("Enderecos")
END

TempoFinal = TimeSys()
TempoTotal = TempoFinal - TempoInicio
Resultado += "<TOTAL>"+x+"</TOTAL>" //Total de Registros para usar em barras de progresso
Resultado += "<Developer>Retorno via Webservice desenvolvido com Webdev v22 - PCSOFT - Wx Informatica - adrianoboller@gmail.com - skype adrianoboller - Tempo Total: "+TempoTotal+"</Developer></Retorno></Xml>"
Resultado += "</Retorno></Xml>"

END

ELSE
TempoFinal = TimeSys()
TempoTotal = TempoFinal - TempoInicio
Resultado += "<TOTAL>"+0+"</TOTAL>" //Total de Registros para usar em barras de progresso
Resultado += "<Developer>Retorno via Webservice desenvolvido com Webdev v22 - PCSOFT - Wx Informatica - adrianoboller@gmail.com - skype adrianoboller - Tempo Total: "+TempoTotal+"</Developer></Retorno></Xml>"
Resultado += "</Retorno></Xml>"
END

RESULT(Resultado)


// Summary: <specify the procedure action>
// Syntax:
//[ <Result> = ] FiltroEnderecoCidadeJson (<Endereco>, <Cidade>)
//
// Parameters:
// Endereco: <specify the role of Endereco>
// Cidade: <specify the role of Cidade>
// Return Value:
// ANSI string: // None
//
// For instance:
// Indicate an example.
//
Procedure FiltroEnderecoCidadeJson(Endereco,Cidade)

TempoInicio is Time = TimeSys()
TempoFinal is Time
TempoTotal is int

arrQuery is array of string

Resultado is string = ""

IF Endereco <> "" AND Cidade <> ""

//Busca

ok is boolean = HExecuteQuery(QRY_Select_Endereco_Cidade,hQueryDefault,Endereco,Cidade)

IF ok = True

x is int

FOR EACH QRY_Select_Endereco_Cidade

IF HFound(QRY_Select_Endereco_Cidade) = True THEN

x += 1

Add(arrQuery, "Registro: "+ x)

Add(arrQuery, QRY_Select_Endereco_Cidade.Sequencial)

Add(arrQuery, QRY_Select_Endereco_Cidade.Sequencial)
Add(arrQuery, QRY_Select_Endereco_Cidade.LogradouroUpper)
Add(arrQuery, QRY_Select_Endereco_Cidade.LogradouroAbrev)
Add(arrQuery, QRY_Select_Endereco_Cidade.Logradouro)
Add(arrQuery, QRY_Select_Endereco_Cidade.LogradouroCompl)
Add(arrQuery, QRY_Select_Endereco_Cidade.Fonetica)
Add(arrQuery, QRY_Select_Endereco_Cidade.LogradouroTipo)
Add(arrQuery, QRY_Select_Endereco_Cidade.CEP)
Add(arrQuery, QRY_Select_Endereco_Cidade.Bairro)
Add(arrQuery, QRY_Select_Endereco_Cidade.BairroAbrev)
Add(arrQuery, QRY_Select_Endereco_Cidade.IDCidade)
Add(arrQuery, QRY_Select_Endereco_Cidade.Cidade)
Add(arrQuery, QRY_Select_Endereco_Cidade.SubCidadeAbrev)
Add(arrQuery, QRY_Select_Endereco_Cidade.SubCidade)
Add(arrQuery, QRY_Select_Endereco_Cidade.CodIBGECid)
Add(arrQuery, QRY_Select_Endereco_Cidade.CodIBGEUF)
Add(arrQuery, QRY_Select_Endereco_Cidade.UF)
Add(arrQuery, QRY_Select_Endereco_Cidade.Pais)
Add(arrQuery, QRY_Select_Endereco_Cidade.LogradouroIniciais)
Add(arrQuery, QRY_Select_Endereco_Cidade.NumeroInicial)
Add(arrQuery, QRY_Select_Endereco_Cidade.NumeroFinal)
Add(arrQuery, QRY_Select_Endereco_Cidade.DMSLatitude)
Add(arrQuery, QRY_Select_Endereco_Cidade.DMSLongitude)
Add(arrQuery, QRY_Select_Endereco_Cidade.GDLatitude)
Add(arrQuery, QRY_Select_Endereco_Cidade.GDLongitude)

END

END //for

IF x = 0 THEN
Add(arrQuery,"ws_zero_registros")
END

TempoFinal = TimeSys()
TempoTotal = TempoFinal - TempoInicio
Add(arrQuery,"Total: "+x) //Total de Registros para usar em barras de progresso
Add(arrQuery,"<Developer>Retorno via Webservice desenvolvido com Webdev v22 - PCSOFT - Wx Informatica - adrianoboller@gmail.com - skype adrianoboller - Tempo Total: "+TempoTotal)


END

ELSE

TempoFinal = TimeSys()
TempoTotal = TempoFinal - TempoInicio
Add(arrQuery,"Total: "+0) //Total de Registros para usar em barras de progresso
Add(arrQuery,"<Developer>Retorno via Webservice desenvolvido com Webdev v22 - PCSOFT - Wx Informatica - adrianoboller@gmail.com - skype adrianoboller - Tempo Total: "+TempoTotal)

END

bResultado_json is Buffer
Serialize(arrQuery, bResultado_json, psdJSON)
Resultado = bResultado_json

RESULT(Resultado)


// Summary: <specify the procedure action>
// Syntax:
//[ <Result> = ] FiltroEnderecoCidadeXml (<Endereco>, <Cidade>)
//
// Parameters:
// Endereco: <specify the role of EnderecoCidade>
// Cidade: <specify the role of Cidade>
// Return Value:
// ANSI string: // None
//
// For instance:
// Indicate an example.
//
Procedure FiltroEnderecoCidadeXml(Endereco,Cidade)

TempoInicio is Time = TimeSys()
TempoFinal is Time
TempoTotal is int

Resultado is string = ""

IF Endereco <> "" AND Cidade <> ""

ok is boolean = HExecuteQuery(QRY_Select_Endereco_Cidade,hQueryDefault,Endereco,Cidade)

IF ok = True

x is int

Resultado = "<Xml><Retorno>"

FOR EACH QRY_Select_Endereco_Cidade

IF HFound(QRY_Select_Endereco_Cidade) = True THEN

x += 1

Resultado += ws_xml_registro_comeco(x)

Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Cidade.Sequencial,"Sequencial")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Cidade.LogradouroUpper,"LogradouroUpper")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Cidade.LogradouroAbrev,"LogradouroAbrev")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Cidade.Logradouro,"Logradouro")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Cidade.LogradouroCompl,"LogradouroCompl")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Cidade.Fonetica,"Fonetica")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Cidade.LogradouroTipo,"LogradouroTipo")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Cidade.CEP,"CEP")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Cidade.Bairro,"Bairro")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Cidade.BairroAbrev,"BairroAbrev")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Cidade.IDCidade,"IDCidade")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Cidade.Cidade,"Cidade")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Cidade.SubCidadeAbrev,"SubCidadeAbrev")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Cidade.SubCidade,"SubCidade")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Cidade.CodIBGECid,"CodIBGECid")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Cidade.CodIBGEUF,"CodIBGEUF")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Cidade.UF,"UF")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Cidade.Pais,"Pais")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Cidade.LogradouroIniciais,"LogradouroIniciais")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Cidade.NumeroInicial,"NumeroInicial")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Cidade.NumeroFinal,"NumeroFinal")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Cidade.DMSLatitude,"DMSLatitude")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Cidade.DMSLongitude,"DMSLongitude")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Cidade.GDLatitude,"GDLatitude")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Cidade.GDLongitude,"GDLongitude")

Resultado += ws_xml_registro_final()

END

END //for

IF x = 0 THEN
Resultado = ws_zero_registros("Enderecos")
END

TempoFinal = TimeSys()
TempoTotal = TempoFinal - TempoInicio
Resultado += "<TOTAL>"+x+"</TOTAL>" //Total de Registros para usar em barras de progresso
Resultado += "<Developer>Retorno via Webservice desenvolvido com Webdev v22 - PCSOFT - Wx Informatica - adrianoboller@gmail.com - skype adrianoboller - Tempo Total: "+TempoTotal+"</Developer></Retorno></Xml>"
Resultado += "</Retorno></Xml>"

END

ELSE
TempoFinal = TimeSys()
TempoTotal = TempoFinal - TempoInicio
Resultado += "<TOTAL>"+0+"</TOTAL>" //Total de Registros para usar em barras de progresso
Resultado += "<Developer>Retorno via Webservice desenvolvido com Webdev v22 - PCSOFT - Wx Informatica - adrianoboller@gmail.com - skype adrianoboller - Tempo Total: "+TempoTotal+"</Developer></Retorno></Xml>"
Resultado += "</Retorno></Xml>"
END

RESULT(Resultado)


// Summary: <specify the procedure action>
// Syntax:
//[ <Result> = ] FiltroEnderecoFulltextJson (<Endereco>)
//
// Parameters:
// Endereco: <specify the role of Endereco>
// Return Value:
// ANSI string: // None
//
// For instance:
// Indicate an example.
//
Procedure FiltroEnderecoFulltextJson(Endereco)

TempoInicio is Time = TimeSys()
TempoFinal is Time
TempoTotal is int

arrQuery is array of string

Resultado is string = ""

IF Endereco <> "" THEN

//Busca Fulltext
QRY_Select_Endereco_Fulltext.ParamFullTextPertinence = 0
QRY_Select_Endereco_Fulltext.ParamLogradouro = Endereco

ok is boolean = HExecuteQuery(QRY_Select_Endereco_Fulltext,hQueryDefault,0,Endereco)

IF ok = True

x is int

FOR EACH QRY_Select_Endereco_Fulltext

IF HFound(QRY_Select_Endereco_Fulltext) = True THEN

x += 1

Add(arrQuery, "Registro: "+ x)

Add(arrQuery, QRY_Select_Endereco_Fulltext.Sequencial)

Add(arrQuery, QRY_Select_Endereco_Fulltext.Sequencial)
Add(arrQuery, QRY_Select_Endereco_Fulltext.LogradouroUpper)
Add(arrQuery, QRY_Select_Endereco_Fulltext.LogradouroAbrev)
Add(arrQuery, QRY_Select_Endereco_Fulltext.Logradouro)
Add(arrQuery, QRY_Select_Endereco_Fulltext.LogradouroCompl)
Add(arrQuery, QRY_Select_Endereco_Fulltext.Fonetica)
Add(arrQuery, QRY_Select_Endereco_Fulltext.LogradouroTipo)
Add(arrQuery, QRY_Select_Endereco_Fulltext.CEP)
Add(arrQuery, QRY_Select_Endereco_Fulltext.Bairro)
Add(arrQuery, QRY_Select_Endereco_Fulltext.BairroAbrev)
Add(arrQuery, QRY_Select_Endereco_Fulltext.IDCidade)
Add(arrQuery, QRY_Select_Endereco_Fulltext.Cidade)
Add(arrQuery, QRY_Select_Endereco_Fulltext.SubCidadeAbrev)
Add(arrQuery, QRY_Select_Endereco_Fulltext.SubCidade)
Add(arrQuery, QRY_Select_Endereco_Fulltext.CodIBGECid)
Add(arrQuery, QRY_Select_Endereco_Fulltext.CodIBGEUF)
Add(arrQuery, QRY_Select_Endereco_Fulltext.UF)
Add(arrQuery, QRY_Select_Endereco_Fulltext.Pais)
Add(arrQuery, QRY_Select_Endereco_Fulltext.LogradouroIniciais)
Add(arrQuery, QRY_Select_Endereco_Fulltext.NumeroInicial)
Add(arrQuery, QRY_Select_Endereco_Fulltext.NumeroFinal)
Add(arrQuery, QRY_Select_Endereco_Fulltext.DMSLatitude)
Add(arrQuery, QRY_Select_Endereco_Fulltext.DMSLongitude)
Add(arrQuery, QRY_Select_Endereco_Fulltext.GDLatitude)
Add(arrQuery, QRY_Select_Endereco_Fulltext.GDLongitude)

END

END //for

IF x = 0 THEN
Add(arrQuery,"ws_zero_registros")
END

TempoFinal = TimeSys()
TempoTotal = TempoFinal - TempoInicio
Add(arrQuery,"Total: "+x) //Total de Registros para usar em barras de progresso
Add(arrQuery,"<Developer>Retorno via Webservice desenvolvido com Webdev v22 - PCSOFT - Wx Informatica - adrianoboller@gmail.com - skype adrianoboller - Tempo Total: "+TempoTotal)


END

ELSE

TempoFinal = TimeSys()
TempoTotal = TempoFinal - TempoInicio
Add(arrQuery,"Total: "+0) //Total de Registros para usar em barras de progresso
Add(arrQuery,"<Developer>Retorno via Webservice desenvolvido com Webdev v22 - PCSOFT - Wx Informatica - adrianoboller@gmail.com - skype adrianoboller - Tempo Total: "+TempoTotal)

END

bResultado_json is Buffer
Serialize(arrQuery, bResultado_json, psdJSON)
Resultado = bResultado_json

RESULT(Resultado)


// Summary: <specify the procedure action>
// Syntax:
//[ <Result> = ] FiltroEnderecoFulltextXml (<Endereco>)
//
// Parameters:
// Endereco: <specify the role of Endereco>
// Return Value:
// ANSI string: // None
//
// For instance:
// Indicate an example.
//
Procedure FiltroEnderecoFulltextXml(Endereco)

TempoInicio is Time = TimeSys()
TempoFinal is Time
TempoTotal is int

Resultado is string = ""

IF Endereco <> "" THEN

//Busca Fulltext
QRY_Select_Endereco_Fulltext.ParamFullTextPertinence = 0
QRY_Select_Endereco_Fulltext.ParamLogradouro = Endereco

ok is boolean = HExecuteQuery(QRY_Select_Endereco_Fulltext,hQueryDefault,0,Endereco)

IF ok = True

x is int

Resultado = "<Xml><Retorno>"

FOR EACH QRY_Select_Endereco_Fulltext

IF HFound(QRY_Select_Endereco_Fulltext) = True THEN

x += 1

Resultado += ws_xml_registro_comeco(x)

Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Fulltext.Sequencial,"Sequencial")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Fulltext.LogradouroUpper,"LogradouroUpper")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Fulltext.LogradouroAbrev,"LogradouroAbrev")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Fulltext.Logradouro,"Logradouro")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Fulltext.LogradouroCompl,"LogradouroCompl")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Fulltext.Fonetica,"Fonetica")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Fulltext.LogradouroTipo,"LogradouroTipo")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Fulltext.CEP,"CEP")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Fulltext.Bairro,"Bairro")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Fulltext.BairroAbrev,"BairroAbrev")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Fulltext.IDCidade,"IDCidade")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Fulltext.Cidade,"Cidade")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Fulltext.SubCidadeAbrev,"SubCidadeAbrev")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Fulltext.SubCidade,"SubCidade")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Fulltext.CodIBGECid,"CodIBGECid")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Fulltext.CodIBGEUF,"CodIBGEUF")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Fulltext.UF,"UF")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Fulltext.Pais,"Pais")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Fulltext.LogradouroIniciais,"LogradouroIniciais")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Fulltext.NumeroInicial,"NumeroInicial")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Fulltext.NumeroFinal,"NumeroFinal")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Fulltext.DMSLatitude,"DMSLatitude")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Fulltext.DMSLongitude,"DMSLongitude")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Fulltext.GDLatitude,"GDLatitude")
Resultado += ws_xml_registro_corpo(QRY_Select_Endereco_Fulltext.GDLongitude,"GDLongitude")

Resultado += ws_xml_registro_final()

END

END //for

IF x = 0 THEN
Resultado = ws_zero_registros("Enderecos")
END

TempoFinal = TimeSys()
TempoTotal = TempoFinal - TempoInicio
Resultado += "<TOTAL>"+x+"</TOTAL>" //Total de Registros para usar em barras de progresso
Resultado += "<Developer>Retorno via Webservice desenvolvido com Webdev v22 - PCSOFT - Wx Informatica - adrianoboller@gmail.com - skype adrianoboller - Tempo Total: "+TempoTotal+"</Developer></Retorno></Xml>"
Resultado += "</Retorno></Xml>"

END

ELSE
TempoFinal = TimeSys()
TempoTotal = TempoFinal - TempoInicio
Resultado += "<TOTAL>"+0+"</TOTAL>" //Total de Registros para usar em barras de progresso
Resultado += "<Developer>Retorno via Webservice desenvolvido com Webdev v22 - PCSOFT - Wx Informatica - adrianoboller@gmail.com - skype adrianoboller - Tempo Total: "+TempoTotal+"</Developer></Retorno></Xml>"
Resultado += "</Retorno></Xml>"
END

RESULT(Resultado)


Procedure ws_xml_registro_comeco(id)

Resultado is string = ""

Resultado = "<NoXml id="+Charact(34)+ NoSpace(id) +Charact(34)+">" // Tag = <Avisos id=1> controle de registros

RESULT(Resultado)


Procedure ws_xml_registro_corpo(TabelaCampo, Campo)

Resultado is string = ""

Resultado = "<"+ NoSpace(Campo) +">" + NoSpace(TabelaCampo) + "</"+ NoSpace(Campo) +">"

RESULT(Resultado)


Procedure ws_xml_registro_final()

Resultado is string = ""

Resultado = "</NoXml>"

RESULT(Resultado)


Procedure ws_zero_registros(Tabela)

Resultado is string = ""

Erro is string = HErrorInfo() +" - "+ ErrorInfo()
Erro = Replace(Erro,Charact(34),"")
Erro = Replace(Erro,Charact(39),"")
Erro = NoAccent(Erro)

Resultado += "<NoXml id="+Charact(34)+0+Charact(34)+">"
Resultado += "<Erro>NENHUM REGISTRO! "+ Tabela +"; "+ Erro +" </Erro>"
Resultado += "</NoXml>"

RESULT(Resultado)


--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Membro registado
2.916 mensagems
Popularité : +89 (91 votes)
Publicado em setembro, 08 2017 - 5:00 PM
Procedure Ws_IncluirCliente(nome,Email,celular)

//http://wxmagazine.pcscloud.net/WSCEP_WEB/awws/index.htm

//http://wxmagazine.pcscloud.net/WSCEP_WEB/awws/WsCep.awws?wsdl

//Variaveis
arrResultado is array of string

Resultado, Token, Validade is string

OkConn is boolean = False

IF nome = "" OR Email = "" OR celular = "" THEN

Resultado = "<Xml><Retorno>Erro é obrigatorio informar os dados</Retorno></Xml>"

ELSE

//OkConn = HConnectionOpen(MyHfsql) //local

OkConn = HConnectionOpen(MyPcscloud) //pcscloud

IF OkConn = True AND nome <> "" AND Email <> "" AND celular <> ""

//Global
HCreationIfNotFound("*")

HModifyStructure("*",hmsBackgroundTask)

nome = Capitalize(nome)

Email = Lower(Email)

celular = NoSpace(celular)

celular = Replace(celular,"-","")

celular = Replace(celular,"(","")

celular = Replace(celular,")","")

celular = Replace(celular," ","")

celular = Replace(celular,".","")

// Initializes the generator of random numbers
InitRandom()

TokenRandom is string

// Generates the random string
LOOP (10)

// Generates a number at random in the 65-122 (A-z) interval
nCharacter is int = Random(65,122)
// Don't take the characters included between 91 and 96
WHILE (91 <= nCharacter <= 96)
nCharacter = Random(65,122)
END

// Fills the string
TokenRandom += Charact(nCharacter)

END

TokenRandom = NoSpace(Upper(TokenRandom))


ok is boolean = HExecuteQuery(QRY_Insert_Cliente,MyPcscloud,hQueryWithoutHFCorrection,nome,Email,celular,TokenRandom)

IF ok = True THEN

ok = HExecuteQuery(QRY_Select_Cliente,MyPcscloud,hQueryDefault,celular,"")

FOR EACH QRY_Select_Cliente

IF HFound(QRY_Select_Cliente) = True

Token = QRY_Select_Cliente.Token

Validade = QRY_Select_Cliente.Validade

Resultado += "<Xml><Retorno>OK - Anote o seu Token: "+ Token +"</Retorno></Xml>"

END

END



END

ELSE

Resultado = "<Xml><Retorno>Erro</Retorno></Xml>"

END

END

ip is string = WebserviceClientIPAddress(False)
//Verdadeiro para recuperar o endereço inicial especificado no cabeçalho HTTP,
//Falso (valor padrão) para recuperar o Endereco ip na variável de ambiente "REMOTE_ADDR" definida pelo servidor da Web.

ok is boolean = HExecuteQuery(QRY_Insert_Log,MyPcscloud,hQueryWithoutHFCorrection,DateSys()+TimeSys(),ip,Token,"Ws_IncluirCliente: " + nome +" - "+ Email +" - "+ celular)

HReset(QRY_Select_Cliente) // <----- Limpar atenção

HConnectionClose(MyPcscloud) //pcscloud

Add(arrResultado,Resultado)

RESULT (arrResultado)


--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Mensagem modificada, setembro, 08 2017 - 5:42 PM
Membro registado
2.916 mensagems
Popularité : +89 (91 votes)
Publicado em setembro, 08 2017 - 6:13 PM
Procedure Ws_IncluirNovoEndereco(Token,
ParamLogradouroUpper,
ParamLogradouroAbrev,
ParamLogradouro,
ParamLogradouroCompl,
ParamFonetica,
ParamLogradouroTipo,
ParamCEP,
ParamBairro,
ParamBairroAbrev,
ParamIDCidade,
ParamCidade,
ParamSubCidadeAbrev,
ParamSubCidade,
ParamCodIBGECid,
ParamCodIBGEUF,
ParamUF,
ParamPais,
ParamLogradouroIniciais,
ParamNumeroInicial,
ParamNumeroFinal,
ParamDMSLatitude,
ParamDMSLongitude,
ParamGDLatitude,
ParamGDLongitude)

//http://wxmagazine.pcscloud.net/WSCEP_WEB/awws/index.htm

//http://wxmagazine.pcscloud.net/WSCEP_WEB/awws/WsCep.awws?wsdl



//Variaveis
arrResultado is array of string

Resultado is string

OkConn is boolean = False

GloNome, GloEmail, GloCelular is string

//OkConn = HConnectionOpen(MyHfsql) //local

OkConn = HConnectionOpen(MyPcscloud) //pcscloud

ok is boolean = HExecuteQuery(QRY_Select_Cliente,MyPcscloud,hQueryWithoutHFCorrection,Token)

GloToken, GloValidade is string

IF ok = True AND OkConn = True AND Token <> "" THEN

//Global
HCreationIfNotFound("*")

HModifyStructure("*",hmsBackgroundTask)

FOR EACH QRY_Select_Cliente

IF HFound(QRY_Select_Cliente) = True AND Token = QRY_Select_Cliente.Token THEN

GloNome = QRY_Select_Cliente.Nome

GloEmail = QRY_Select_Cliente.Email

GloCelular = QRY_Select_Cliente.Celular

GloToken = QRY_Select_Cliente.Token

GloValidade = QRY_Select_Cliente.Validade

ELSE

GloToken = ""

GloValidade = "INVALIDO"

END

END

END

ParamLogradouroUpper = Upper(ParamLogradouroUpper)
ParamLogradouroUpper = NoSpace(NoAccent(ParamLogradouroUpper))

IF ParamLogradouroUpper <> "" AND ParamLogradouroAbrev = "" THEN
ParamLogradouroAbrev = Capitalize(ParamLogradouroUpper)
END

ParamLogradouroAbrev = NoSpace(NoAccent(ParamLogradouroAbrev))

ParamLogradouroAbrev = Replace(ParamLogradouroAbrev, "Rua ","")

ParamLogradouroAbrev = Replace(ParamLogradouroAbrev, "Avenida ","")

ParamLogradouroAbrev = Replace(ParamLogradouroAbrev, "Travessa ","")

ParamLogradouroAbrev = Replace(ParamLogradouroAbrev, "Marginal ","")

IF ParamLogradouroAbrev <> "" AND ParamLogradouro = "" THEN
ParamLogradouro = ParamLogradouroAbrev
END

IF ParamLogradouroAbrev <> "" AND ParamLogradouroCompl = "" THEN
ParamLogradouroCompl = ParamLogradouroAbrev
END

ParamCidade = Capitalize(ParamCidade)

ParamCidade = NoSpace(NoAccent(ParamCidade))

ParamUF = Upper(ParamUF)

ParamPais = Capitalize(ParamPais)

ParamPais = NoSpace(NoAccent(ParamPais))

ParamCEP = NoSpace(ParamCEP)

ParamCEP = Replace(ParamCEP,".","")

ParamCEP = Replace(ParamCEP,"-","")

IF ParamLogradouroUpper = ""
GloValidade = "INVALIDO"
ELSE IF ParamLogradouroAbrev = ""
GloValidade = "INVALIDO"
ELSE IF ParamLogradouro = ""
GloValidade = "INVALIDO"
ELSE IF ParamLogradouroCompl = ""
GloValidade = "INVALIDO"
ELSE IF ParamBairro = ""
GloValidade = "INVALIDO"
ELSE IF ParamCidade = ""
GloValidade = "INVALIDO"
ELSE IF ParamUF = ""
GloValidade = "INVALIDO"
ELSE IF ParamPais = ""
GloValidade = "INVALIDO"
ELSE IF ParamCEP = ""
GloValidade = "INVALIDO"
END

IF Token <> GloToken OR GloValidade = "INVALIDO"

Resultado = "<Xml><Retorno>Erro é obrigatorio informar os dados básicos tais como: Token, Endereco, Bairro, Cidade, UF, Pais, CEP</Retorno></Xml>"

ELSE IF Token = GloToken AND GloValidade = "" AND GloToken <> "" AND Token <> "" AND GloValidade <> "INVALIDO"

//OkConn = HConnectionOpen(MyHfsql) //local

OkConn = HConnectionOpen(MyPcscloud) //pcscloud

IF OkConn = True

//Global
HCreationIfNotFound("*")

HModifyStructure("*",hmsBackgroundTask)

ok = HExecuteQuery(QRY_Insert_NovoEndereco,MyPcscloud,hQueryWithoutHFCorrection,Upper(ParamLogradouroUpper),Capitalize(ParamLogradouroAbrev),Capitalize(ParamLogradouro),Capitalize(ParamLogradouroCompl),ParamFonetica,ParamLogradouroTipo,ParamCEP,Capitalize(ParamBairro),Capitalize(ParamBairroAbrev),ParamIDCidade,Capitalize(ParamCidade),Capitalize(ParamSubCidadeAbrev),Capitalize(ParamSubCidade),ParamCodIBGECid,ParamCodIBGEUF,Upper(ParamUF),Capitalize(ParamPais),ParamLogradouroIniciais,ParamNumeroInicial,ParamNumeroFinal,ParamDMSLatitude,ParamDMSLongitude,ParamGDLatitude,ParamGDLongitude)

IF ok = True THEN

Resultado = "<Xml><Retorno>OK</Retorno></Xml>"

END

ELSE

Resultado = "<Xml><Retorno>Erro</Retorno></Xml>"

END

END

acao is string = "Incluido por: "+ GloNome +" - "+ GloEmail +" - "+ GloCelular +" - "+ Token +" "+ Upper(ParamLogradouroUpper) +" "+ Capitalize(ParamLogradouroAbrev) +" "+ Capitalize(ParamLogradouro) +" "+ Capitalize(ParamLogradouroCompl) +" "+ ParamFonetica +" "+ ParamLogradouroTipo +" "+ ParamCEP +" "+ Capitalize(ParamBairro) +" "+ Capitalize(ParamBairroAbrev) +" "+ ParamIDCidade +" "+ Capitalize(ParamCidade) +" "+ Capitalize(ParamSubCidadeAbrev) +" "+ Capitalize(ParamSubCidade) +" "+ ParamCodIBGECid +" "+ ParamCodIBGEUF +" "+ Upper(ParamUF) +" "+ Capitalize(ParamPais) +" "+ ParamLogradouroIniciais +" "+ ParamNumeroInicial +" "+ ParamNumeroFinal +" "+ ParamDMSLatitude +" "+ ParamDMSLongitude +" "+ ParamGDLatitude +" "+ ParamGDLongitude

ip is string = WebserviceClientIPAddress(False)
//Verdadeiro para recuperar o endereço inicial especificado no cabeçalho HTTP,
//Falso (valor padrão) para recuperar o Endereco ip na variável de ambiente "REMOTE_ADDR" definida pelo servidor da Web.

ok = HExecuteQuery(QRY_Insert_Log,MyPcscloud,hQueryWithoutHFCorrection,DateSys()+TimeSys(),ip,Token,"Ws_IncluirNovoEndereco: " + acao)

HConnectionClose(MyPcscloud) //pcscloud

Resultado += "<Developer>Retorno via Webservice desenvolvido com Webdev v22 - PCSOFT - Wx Informatica - adrianoboller@gmail.com - skype adrianoboller</Developer></Retorno></Xml>"

Add(arrResultado,Resultado)

RESULT (arrResultado)


--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Mensagem modificada, setembro, 08 2017 - 6:45 PM
Membro registado
2.916 mensagems
Popularité : +89 (91 votes)
Publicado em setembro, 08 2017 - 9:53 PM
CONSUMINDO O WEBSERVICE WS CEP

//############################################################################

RetornoXml is a Ws_BuscarEnderecoResponse //INSTANCIOU O METODO

RetornoXml = Ws_BuscarEndereco("ABC63488640","CLAVIO MOLINARI","CURITIBA","82810210","XML") //ENVIOU

XML_Retorno is string = RetornoXml.Ws_BuscarEnderecoResult //PEGOU O RESULTADO

//############################################################################

Info(XML_Retorno)

fSaveText("ENDERECO.TXT",XML_Retorno)


RESULTADO

<Xml><Retorno><NoXml id="1"><Sequencial>975224</Sequencial><LogradouroUpper>CLAVIO MOLINARI</LogradouroUpper><LogradouroAbrev>Clavio Molinari</LogradouroAbrev><Logradouro>Rua Clavio Molinari</Logradouro><LogradouroCompl>0</LogradouroCompl><Fonetica>IA1 4A1A81 E1A8E1I8</Fonetica><LogradouroTipo>Rua</LogradouroTipo><CEP>82810210</CEP><Bairro>Capao da Imbuia</Bairro><BairroAbrev>C Imbuia</BairroAbrev><IDCidade>6015</IDCidade><Cidade>Curitiba</Cidade><SubCidadeAbrev>Curitiba</SubCidadeAbrev><SubCidade>Curitiba</SubCidade><CodIBGECid>4106902</CodIBGECid><CodIBGEUF>41</CodIBGEUF><UF>PR</UF><Pais>Brasil</Pais><LogradouroIniciais>CM</LogradouroIniciais><NumeroInicial>0</NumeroInicial><NumeroFinal>0</NumeroFinal><DMSLatitude></DMSLatitude><DMSLongitude></DMSLongitude><GDLatitude>0</GDLatitude><GDLongitude>0</GDLongitude></NoXml><TOTAL>1</TOTAL><Developer>Retorno via Webservice desenvolvido com Webdev v22 - PCSOFT - Wx Informatica - adrianoboller@gmail.com - skype adrianoboller - Tempo Total: 10</Developer></Retorno></Xml></Retorno></Xml>


--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Mensagem modificada, setembro, 08 2017 - 10:01 PM
Membro registado
2.916 mensagems
Popularité : +89 (91 votes)
Publicado em setembro, 08 2017 - 9:59 PM
































































--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Membro registado
2.916 mensagems
Popularité : +89 (91 votes)
Publicado em setembro, 09 2017 - 12:55 AM
VIDEO DE EXEMPLO



--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Membro registado
2.916 mensagems
Popularité : +89 (91 votes)
Publicado em janeiro, 31 2018 - 3:29 PM
Como alterar o endereço de um webservice local por um webservice remoto?

Resposta está aqui nesse link

https://help.windev.com/en-US/…

Endereço = Address = Cadeia de caracteres Usado para substituir o endereço de chamada do Webservice descrito no WSDL por outro URL. Esta propriedade é útil se o Webservice estiver hospedado em servidores diferentes. Esta propriedade possui o seguinte formato: "http: // server: port / webservice_path". Para um Webservice gerado com WINDEV e implantado em um servidor de aplicativos WEBDEV, é o URL do arquivo cuja extensão é "awws".

Notas :
A modificação desta propriedade substitui todo o URL descrito no WSDL.
Se esta propriedade corresponder a uma string vazia (""), os URLs descritos no WSDL serão reutilizados.

Propriedades associadas ao Webservice

Para lidar com um Webservice por programação, tudo que você precisa fazer é usar o nome do Webservice (encontrado no explorador de projetos).
Nota : Um arrastar e soltar pode ser executado a partir do explorador do projeto para o editor de código para inserir o nome do Webservice.

IF Url_Local = True

WS_Adriano..Address = "http://server:port/webservice_path01"

ELSE

WS_Adriano..Address = "http://server:port/webservice_path02"

END


Bons estudos

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Membro registado
2.916 mensagems
Popularité : +89 (91 votes)
Publicado em maio, 30 2019 - 1:56 AM
FONTE DOWNLOAD

https://repository.windev.com/resource.awp…

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/