PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WEBDEV 2024 → Creating Internal functions for your webservice (Criando funções Internas para o seu webservice)
Creating Internal functions for your webservice (Criando funções Internas para o seu webservice)
Débuté par adrianoboller, 19 déc. 2014 13:29 - 33 réponses
Membre enregistré
3 657 messages
Popularité : +175 (223 votes)
Posté le 19 décembre 2014 - 13:29




Procedurews_conexao_sucesso(Tabela)

Resultado isstring=""

Resultado+="<Xml><Retorno>"
Resultado+="<"+Tabela+" id="+Charact(34)+1+Charact(34)+">"
Resultado+="<OK>CONEXAO COM SUCESSO AO BANCO!!!!!!</OK>"
Resultado+="</"+Tabela+">"
Resultado+="<TOTAL>1</TOTAL>"
Resultado+="</Retorno></Xml>"

RESULT(Resultado)
>
Membre enregistré
3 657 messages
Popularité : +175 (223 votes)
Posté le 19 décembre 2014 - 13:29
Procedurews_erro_conexao(Tabela)

Resultado isstring=""

Resultado+="<Xml><Retorno>"
Resultado+="<"+Tabela+" id="+Charact(34)+0+Charact(34)+">"
Resultado+="<Erro>ERRO DE CONEXAO COM O BANCO: "+HErrorInfo() +" - "+ErrorInfo() +"</Erro>"
Resultado+="</"+Tabela+">"
Resultado+="<TOTAL>0</TOTAL>"
Resultado+="</Retorno></Xml>"

RESULT(Resultado)
>
Membre enregistré
3 657 messages
Popularité : +175 (223 votes)
Posté le 19 décembre 2014 - 13:29
Procedurews_erro_token(Tabela)

Resultado isstring=""

Resultado+="<Xml><Retorno>"
Resultado+="<"+Tabela+" id="+Charact(34)+0+Charact(34)+">"
Resultado+="<Erro>ERRO TOKEN: "+HErrorInfo() +" - "+ErrorInfo() +"</Erro>"
Resultado+="</"+Tabela+">"
Resultado+="<TOTAL>0</TOTAL>"
Resultado+="</Retorno></Xml>"

RESULT(Resultado)
>
Membre enregistré
3 657 messages
Popularité : +175 (223 votes)
Posté le 19 décembre 2014 - 13:30
Procedurews_parametros_invalidos(Tabela)

Resultado isstring=""

Resultado+="<Xml><Retorno>"
Resultado+="<"+Tabela+" id="+Charact(34)+0+Charact(34)+">"
Resultado+="<Erro>PARAMETROS INVALIDOS</Erro>"
Resultado+="</"+Tabela+">"
Resultado+="<TOTAL>0</TOTAL>"
Resultado+="</Retorno></Xml>"

RESULT(Resultado)
>
Membre enregistré
3 657 messages
Popularité : +175 (223 votes)
Posté le 19 décembre 2014 - 13:30
Procedurews_token(Token,Telefone_Imei,Acao,Metodo)

TokenOk isboolean=False

HReadSeekFirst(NG0001_WS_Token,NG0001_WS_Token.Token,Token,hKeepFilter)
IFHFound(NG0001_WS_Token) =TrueANDNG0001_WS_Token.Token=TokenANDNG0001_WS_Token.Situacao="A"ANDNG0001_WS_Token.Telefone_IMEI=Telefone_ImeiTHEN
TokenOk=True
NG0001_WS_Token.DataUltimoAcesso=DateSys()
HModify(NG0001_WS_Token)
ELSE
TokenOk=False
NG0002_WS_Tentativas.TentativaAcesso=DateSys()
NG0002_WS_Tentativas.Token=Token
NG0002_WS_Tentativas.Metodo=Metodo
NG0002_WS_Tentativas.Acao=Acao
NG0002_WS_Tentativas.Telefone_IMEI=Telefone_Imei
HAdd(NG0001_WS_Token)
END

RESULT(TokenOk)
>
Membre enregistré
3 657 messages
Popularité : +175 (223 votes)
Posté le 19 décembre 2014 - 13:30
Procedurews_token_invalido(Tabela)

Resultado isstring=""

Resultado+="<Xml><Retorno>"
Resultado+="<"+Tabela+" id="+Charact(34)+0+Charact(34)+">"
Resultado+="<Erro>TOQUEM INVALIDO OU NAO INFORMADO</Erro>"
Resultado+="</"+Tabela+">"
Resultado+="<TOTAL>0</TOTAL>"
Resultado+="</Retorno></Xml>"

RESULT(Resultado)
>
Membre enregistré
3 657 messages
Popularité : +175 (223 votes)
Posté le 19 décembre 2014 - 13:31
Procedurews_xml_registro_comeco(Tabela,id)

Resultado isstring=""

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

RESULT(Resultado)
>
Membre enregistré
3 657 messages
Popularité : +175 (223 votes)
Posté le 19 décembre 2014 - 13:31
Procedurews_xml_registro_corpo(Campo,Valor)

Resultado isstring=""

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

RESULT(Resultado)
>
Membre enregistré
3 657 messages
Popularité : +175 (223 votes)
Posté le 19 décembre 2014 - 13:31
Procedurews_xml_registro_final(Tabela)

Resultado isstring=""

Resultado="</"+Tabela+">"

RESULT(Resultado)
>
Membre enregistré
3 657 messages
Popularité : +175 (223 votes)
Posté le 19 décembre 2014 - 13:31
Procedurews_zero_registros(Tabela)

Resultado isstring=""

Resultado+="<"+Tabela+" id="+Charact(34)+0+Charact(34)+">"
Resultado+="<Erro>Registro(s) nao encontrado(s)</Erro>"
Resultado+="</"+Tabela+">"

RESULT(Resultado)
>
Membre enregistré
3 657 messages
Popularité : +175 (223 votes)
Posté le 19 décembre 2014 - 13:32
Procedurews_mobile_mot_cancel(Token,Telefone_Imei,Acao,Data_hora_ultima_alteracao)

//Token = Codigo unico de acesso com o parceiro ou dispositivo mobile
//Telefone = Numero do Telefone ou Celular
//ACAO = Ler, Incluir, Alterar, Excluir

//Variaveis
X isint=0
Resultado isstring=""
TokenOk isboolean=False
Metodo isstring="ws_mobile_mot_cancel"
Tabela isstring="ACT297_MOTIVO_CANCELAMENTO"

IFToken<>""THEN

OkConn isboolean=False

OkConn=HConnectionOpen(ConnNativa)

IFOkConn=FalseTHEN

Resultado=ws_erro_conexao(Tabela)

ELSE

TokenOk=ws_token(Token,Telefone_Imei,Acao,Metodo)

IFTokenOk=FalseTHEN

Resultado=ws_erro_token(Tabela)

END


//Filtro de leitura
IFTokenOk=TrueANDUpper(Acao) ="SELECT"ANDData_hora_ultima_alteracao=" "THEN

Resultado+="<Xml><Retorno>"

FOR EACH ACT297_MOTIVO_CANCELAMENTO

//Sem filtro

X+=1

Resultado+=ws_xml_registro_comeco(Tabela,X)

Resultado+=ws_xml_registro_corpo("cod_motivo_cancel",ACT297_MOTIVO_CANCELAMENTO.cod_motivo_cancel)
Resultado+=ws_xml_registro_corpo("des_motivo",ACT297_MOTIVO_CANCELAMENTO.des_motivo)
Resultado+=ws_xml_registro_corpo("ide_ativo",ACT297_MOTIVO_CANCELAMENTO.ide_ativo)
Resultado+=ws_xml_registro_corpo("dat_hora_ultima_altera",ACT297_MOTIVO_CANCELAMENTO.dat_hora_ultima_altera)

Resultado+=ws_xml_registro_final(Tabela)


END

IFX=0THEN
Resultado=ws_zero_registros(Tabela)
END

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

ELSE IFTokenOk=TrueANDUpper(Acao) ="SELECT"ANDData_hora_ultima_alteracao<>""THEN

Resultado+="<Xml><Retorno>"

FOR EACH ACT297_MOTIVO_CANCELAMENTO
//Com filtro
IFACT297_MOTIVO_CANCELAMENTO.dat_hora_ultima_altera=Data_hora_ultima_alteracao

X+=1

Resultado+=ws_xml_registro_comeco(Tabela,X)

Resultado+=ws_xml_registro_corpo("cod_motivo_cancel",ACT297_MOTIVO_CANCELAMENTO.cod_motivo_cancel)
Resultado+=ws_xml_registro_corpo("des_motivo",ACT297_MOTIVO_CANCELAMENTO.des_motivo)
Resultado+=ws_xml_registro_corpo("ide_ativo",ACT297_MOTIVO_CANCELAMENTO.ide_ativo)
Resultado+=ws_xml_registro_corpo("dat_hora_ultima_altera",ACT297_MOTIVO_CANCELAMENTO.dat_hora_ultima_altera)

Resultado+=ws_xml_registro_final(Tabela)

END

END

IFX=0THEN
Resultado=ws_zero_registros(Tabela)
END

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

ELSE

Resultado=ws_parametros_invalidos(Tabela)

END

END


HConnectionClose(ConnNativa)

ELSE

Resultado=ws_token_invalido(Tabela)

END

RESULT(Resultado)
>
Membre enregistré
3 657 messages
Popularité : +175 (223 votes)
Posté le 19 décembre 2014 - 13:32
Procedurews_verifica_conexao()

x isint=0

Resultado isstring=""

OkConn isboolean=False

// Opening the connection
OkConn=HOpenConnection(ConnNativa)

Resultado+="<AbriuConnexao> "+OkConn+" </AbriuConnexao>"

IFOkConn=True
Resultado+=ws_conexao_sucesso("Tabelas")
ELSE
Resultado+=ws_erro_conexao("Tabelas")
END

OkConn=HCloseConnection(ConnNativa)

Resultado+="<FechouConnexao>"+OkConn+"</FechouConnexao>"

RESULT(Resultado)
>
Membre enregistré
3 657 messages
Popularité : +175 (223 votes)
Posté le 19 décembre 2014 - 13:33
:merci:>
Membre enregistré
3 657 messages
Popularité : +175 (223 votes)
Posté le 22 décembre 2014 - 14:57
Exemple deProcedureWebservice

Procedurews_convenio_corridaautorizafatura(Token,Telefone_Imei,Acao,cod_client_conven,cod_centro_custo,Ano)

//Token = Codigo unico de acesso com o parceiro ou dispositivo mobile
//Telefone = Numero do Telefone ou Celular
//ACAO = Ler, Incluir, Alterar, Excluir


//Variaveis
ok isboolean
X isint=0
Resultado isstring=""
TokenOk isboolean=False
Metodo isstring="ws_convenio_corridaautorizafatura"
Tabela isstring="ACT263_CORRIDA_AUTORIZA_FATURA"

IFToken<>""THEN

OkConn isboolean=False

OkConn=HConnectionOpen(ConnNativa)

IFOkConn=FalseTHEN

Resultado+="<Xml><Retorno>"
Resultado=ws_conexao_falha(Tabela)
Resultado+="</Retorno></Xml>"

ELSE

TokenOk=ws_token(Token,Telefone_Imei,Acao,Metodo)

IFTokenOk=FalseTHEN

Resultado=ws_erro_token(Tabela)

END

//Filtro de leitura
IFTokenOk=TrueANDUpper(Acao) ="SELECT"ANDcod_client_conven<>""ANDcod_centro_custo<>""THEN

Resultado+="<Xml><Retorno>"

ok=HExecuteQuery(QRY_ACT263_CORRIDA_AUTORIZA_FATURA,hQueryDefault+hWithFilter,Ano,cod_client_conven,cod_centro_custo)

FOR EACHQRY_ACT263_CORRIDA_AUTORIZA_FATURA

//Sem filtro
IFNoSpace(QRY_ACT263_CORRIDA_AUTORIZA_FATURA.cod_client_conven) =NoSpace(cod_client_conven)AND...
NoSpace(QRY_ACT263_CORRIDA_AUTORIZA_FATURA.cod_centro_custo)=NoSpace(cod_centro_custo)

X+=1

Resultado+=ws_xml_registro_comeco(Tabela,X)

Resultado+=ws_xml_registro_corpo("cod_client_conven",QRY_ACT263_CORRIDA_AUTORIZA_FATURA.cod_client_conven)
Resultado+=ws_xml_registro_corpo("cod_centro_custo",QRY_ACT263_CORRIDA_AUTORIZA_FATURA.cod_centro_custo)
Resultado+=ws_xml_registro_corpo("cod_embarq",QRY_ACT263_CORRIDA_AUTORIZA_FATURA.cod_embarq)
Resultado+=ws_xml_registro_corpo("cod_libera_pagame_eletro",QRY_ACT263_CORRIDA_AUTORIZA_FATURA.cod_libera_pagame_eletro)
Resultado+=ws_xml_registro_corpo("cod_lograd_pesqui_desemb",QRY_ACT263_CORRIDA_AUTORIZA_FATURA.cod_lograd_pesqui_desemb)
Resultado+=ws_xml_registro_corpo("cod_pagame_eletro_autori",QRY_ACT263_CORRIDA_AUTORIZA_FATURA.cod_pagame_eletro_autori)
Resultado+=ws_xml_registro_corpo("des_observ_local_refere_desemb",QRY_ACT263_CORRIDA_AUTORIZA_FATURA.des_observ_local_refere_desemb)
Resultado+=ws_xml_registro_corpo("ide_corrid_tercei",QRY_ACT263_CORRIDA_AUTORIZA_FATURA.ide_corrid_tercei)
Resultado+=ws_xml_registro_corpo("nom_lograd_local_desemb",QRY_ACT263_CORRIDA_AUTORIZA_FATURA.nom_lograd_local_desemb)
Resultado+=ws_xml_registro_corpo("num_ano_corrid",QRY_ACT263_CORRIDA_AUTORIZA_FATURA.num_ano_corrid)
Resultado+=ws_xml_registro_corpo("num_corrid",QRY_ACT263_CORRIDA_AUTORIZA_FATURA.num_corrid)
Resultado+=ws_xml_registro_corpo("num_local_desemb",QRY_ACT263_CORRIDA_AUTORIZA_FATURA.num_local_desemb)

Resultado+=ws_xml_registro_final(Tabela)

END
END

IFX=0THEN
Resultado=ws_zero_registros(Tabela)
END

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

ELSE

Resultado=ws_parametros_invalidos(Tabela)

END

END


HConnectionClose(ConnNativa)

ELSE

Resultado=ws_token_invalido(Tabela)

END

RESULT(Resultado)
>
Membre enregistré
3 657 messages
Popularité : +175 (223 votes)
Posté le 22 décembre 2014 - 14:59


>
Membre enregistré
3 657 messages
Popularité : +175 (223 votes)
Posté le 22 décembre 2014 - 14:59
SELECT
ACT263_CORRIDA_AUTORIZA_FATURA.cod_client_convenAScod_client_conven,
ACT263_CORRIDA_AUTORIZA_FATURA.cod_centro_custoAScod_centro_custo,
ACT263_CORRIDA_AUTORIZA_FATURA.num_ano_corridASnum_ano_corrid,
ACT263_CORRIDA_AUTORIZA_FATURA.num_corridASnum_corrid,
ACT263_CORRIDA_AUTORIZA_FATURA.cod_lograd_pesqui_desembAScod_lograd_pesqui_desemb,
ACT263_CORRIDA_AUTORIZA_FATURA.nom_lograd_local_desembASnom_lograd_local_desemb,
ACT263_CORRIDA_AUTORIZA_FATURA.num_local_desembASnum_local_desemb,
ACT263_CORRIDA_AUTORIZA_FATURA.des_observ_local_refere_desembASdes_observ_local_refere_desemb,
ACT263_CORRIDA_AUTORIZA_FATURA.cod_embarqAScod_embarq,
ACT263_CORRIDA_AUTORIZA_FATURA.cod_libera_pagame_eletroAScod_libera_pagame_eletro,
ACT263_CORRIDA_AUTORIZA_FATURA.cod_pagame_eletro_autoriAScod_pagame_eletro_autori,
ACT263_CORRIDA_AUTORIZA_FATURA.ide_corrid_terceiASide_corrid_tercei
FROM
ACT263_CORRIDA_AUTORIZA_FATURA
WHERE

(
ACT263_CORRIDA_AUTORIZA_FATURA.num_ano_corrid= {p_Ano}
ANDACT263_CORRIDA_AUTORIZA_FATURA.cod_client_conven= {p_Cliente}
ANDACT263_CORRIDA_AUTORIZA_FATURA.cod_centro_custo= {P_CentroCusto}
)
OR
(
{p_Ano}=''
ANDACT263_CORRIDA_AUTORIZA_FATURA.cod_client_conven= {p_Cliente}
ANDACT263_CORRIDA_AUTORIZA_FATURA.cod_centro_custo= {P_CentroCusto}
)
>
Membre enregistré
3 657 messages
Popularité : +175 (223 votes)
Posté le 22 décembre 2014 - 15:02


>
Membre enregistré
3 657 messages
Popularité : +175 (223 votes)
Posté le 24 décembre 2014 - 17:55
>
Membre enregistré
1 message
Popularité : +1 (1 vote)
Posté le 28 décembre 2014 - 05:27
Merci beaucoup pour ces infos.
Membre enregistré
3 657 messages
Popularité : +175 (223 votes)
Posté le 07 janvier 2015 - 14:22
USE [producao]
GO
/****** Object: Table [dbo].[NG0002_WS_Tentativas] Script Date: 01/07/2015 11:07:44 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[NG0002_WS_Tentativas](
[TentativaAcesso] [datetime] NOT NULL,
[Token] [nvarchar](50) NULL,
[Telefone_IMEI] [nvarchar](50) NULL,
[Metodo] [nvarchar](50) NULL,
[Acao] [nvarchar](15) NULL,
CONSTRAINT [PK_NG0002_WS_Tentativas] PRIMARY KEY CLUSTERED
(
[TentativaAcesso] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
>) ON [PRIMARY]
Membre enregistré
3 657 messages
Popularité : +175 (223 votes)
Posté le 07 janvier 2015 - 14:22
USE [producao]
GO
/****** Object: Table [dbo].[NG0001_WS_Token] Script Date: 01/07/2015 11:07:24 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[NG0001_WS_Token](
[Token] [nvarchar](50) NOT NULL,
[Empresa] [nvarchar](50) NULL,
[CNPJ] [nvarchar](15) NULL,
[Telefone_IMEI] [nvarchar](50) NULL,
[Situacao] [nvarchar](1) NULL,
[DataCadastro] [datetime] NULL,
[DataUltimoAcesso] [datetime] NULL,
CONSTRAINT [PK_WS_Token] PRIMARY KEY CLUSTERED
(
[Token] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
>) ON [PRIMARY]
Membre enregistré
3 657 messages
Popularité : +175 (223 votes)
Posté le 07 janvier 2015 - 16:46
USE[producao]
GO
/****** Object: UserDefinedFunction dbo.NG0001_Function_IncluirChamadaTaxi Script Date: 01/06/2015 19:07:00 ******/
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO

Create FUNCTION[dbo].[NG0001_Function_IncluirChamadaTaxi]
(@AnoAtualint,
@XXX01int,
@num_ano_corridint,
@num_corridint,
@ide_situac_corridVARCHAR(1),
@dat_hora_corridDATETIME,
@seq_telefoint,
@dat_hora_cadastDATETIME,
@cod_usuari_cadastVARCHAR(10),
@cod_lograd_pesquiint,
@nom_lograd_localVARCHAR(70),
@num_localint,
@des_comple_localVARCHAR(15),
@cod_tipo_carroint,
@qtd_carro_soliciint,
@cod_comuniint,
@nom_usuariVARCHAR(30),
@ide_nao_fumantVARCHAR(1),
@ide_nao_gasVARCHAR(1),
@ide_ar_condicVARCHAR(1),
@ide_cartaoVARCHAR(1),
@ide_carro_novoVARCHAR(1),
@ide_exectvVARCHAR(1),
@des_observVARCHAR(254),
@des_observ_local_refereVARCHAR(254),
@cod_usuari_operadVARCHAR(10),
@dat_hora_atendiDATETIME,
@num_ponto_refere_endereint,
@num_ponto_atendiint,
@num_unidad_atendiint,
@cod_orgaoVARCHAR(12),
@cod_centrl_telefoint,
@num_ramalint,
@ide_situac_client_call_centerint,
@cod_clientint,
@seq_autorzint,
@cod_usuari_cancelVARCHAR(10),
@dat_hora_cancelDATETIME,
@des_motivo_cancelVARCHAR(50),
@ide_fumantVARCHAR(1),
@dat_hora_final_bloqueDATETIME,
@num_unidad_preferint,
@dat_hora_soliciDATETIME,
@qtd_minuto_anteciint,
@ide_insufiVARCHAR(1),
@des_observ_compleVARCHAR(254),
@ide_priori_cadastint,
@cod_forma_pagameint,
@ide_encomeVARCHAR(1),
@cod_marca_veiculint,
@cod_modelo_veiculint,
@des_observ_internVARCHAR(100),
@cod_lograd_entreg_encomeint,
@nom_lograd_entreg_encomeVARCHAR(50),
@num_local_entreg_encomeint,
@des_comple_local_entreg_encomeVARCHAR(15),
@ide_cdVARCHAR(1),
@ide_dvdVARCHAR(1),
@ide_navegd_gpsVARCHAR(1),
@ide_intrntVARCHAR(1),
@ide_viagemVARCHAR(1),
@ide_conexa_bateriVARCHAR(1),
@dat_hora_inicio_nagyroDATETIME,
@ide_jovemVARCHAR(1),
@ide_trocar_pneuVARCHAR(1),
@ide_engateVARCHAR(1),
@seq_usuari_web_cadastint,
@ide_forma_seleca_corridVARCHAR(1),
@ide_carro_altoVARCHAR(1),
@ide_carro_baixoVARCHAR(1),
@ide_porta_malas_grandeVARCHAR(1),
@num_call_centerint,
@cod_client_celulaint,
@XXX02int,
@num_ano_corrid2int,
@num_corrid2int,
@cod_client_celula2int,
@des_lograd_origemVARCHAR(70),
@num_lograd_origemint,
@des_comple_origemVARCHAR(50),
@nom_cidade_origemVARCHAR(50),
@des_lograd_destinVARCHAR(120),
@num_lograd_destinint,
@des_comple_destinVARCHAR(40),
@des_prefer_corridVARCHAR(254),
@cod_client_convenint,
@cod_matric_convenVARCHAR(10),
@ide_forma_pagameVARCHAR(1),
@cod_forma_pagame_cartaoint,
@dat_hora_ultima_alteraDATETIME,
@dat_hora_arquivDATETIME,
@cod_motivo_cancelint,
@val_distan_destinint,
@val_tarifa_bandei_1int,
@val_tarifa_bandei_2int,
@finalidadeVARCHAR(50),
@observacaoVARCHAR(255),
@XXX03 int)


RETURNS int
AS
RETURN
(

--TESTE
--set @AnoAtual = 2015;


--Numeracao
--###################################################################
UPDATEnumeracaoSETnum_ultima_numera= (
(
SELECTnum_ultima_numera
FROMNUMERACAO
WHEREide_numera='ACT263_CORRIDA'
ANDcod_orgao='0'
ANDnum_ano_refere= @AnoAtual
)
+1)
WHEREide_numera='ACT263_CORRIDA'
ANDcod_orgao='0'
ANDnum_ano_refere= @AnoAtual;

IF@@ERROR<>0
@xxx01=1
@@ERROR=0
END
--###################################################################



--Incluir Corrida
--###################################################################
INSERT INTOact263_corrida
(
num_ano_corrid,
num_corrid,
ide_situac_corrid,
dat_hora_corrid,
seq_telefo,
dat_hora_cadast,
cod_usuari_cadast,
cod_lograd_pesqui,
nom_lograd_local,
num_local,
des_comple_local,
cod_tipo_carro,
qtd_carro_solici,
cod_comuni,
nom_usuari,
ide_nao_fumant,
ide_nao_gas,
ide_ar_condic,
ide_cartao,
ide_carro_novo,
ide_exectv,
des_observ,
des_observ_local_refere,
cod_usuari_operad,
dat_hora_atendi,
num_ponto_refere_endere,
num_ponto_atendi,
num_unidad_atendi,
cod_orgao,
cod_centrl_telefo,
num_ramal,
ide_situac_client_call_center,
cod_client,
seq_autorz,
cod_usuari_cancel,
dat_hora_cancel,
des_motivo_cancel,
ide_fumant,
dat_hora_final_bloque,
num_unidad_prefer,
dat_hora_solici,
qtd_minuto_anteci,
ide_insufi,
des_observ_comple,
ide_priori_cadast,
cod_forma_pagame,
ide_encome,
cod_marca_veicul,
cod_modelo_veicul,
des_observ_intern,
cod_lograd_entreg_encome,
nom_lograd_entreg_encome,
num_local_entreg_encome,
des_comple_local_entreg_encome,
ide_cd,
ide_dvd,
ide_navegd_gps,
ide_intrnt,
ide_viagem,
ide_conexa_bateri,
dat_hora_inicio_nagyro,
ide_jovem,
ide_trocar_pneu,
ide_engate,
seq_usuari_web_cadast,
ide_forma_seleca_corrid,
ide_carro_alto,
ide_carro_baixo,
ide_porta_malas_grande,
num_call_center,
cod_client_celula
)
VALUES
(
@num_ano_corrid,
@num_corrid,
@ide_situac_corrid,
@dat_hora_corrid,
@seq_telefo,
@dat_hora_cadast,
@cod_usuari_cadast,
@cod_lograd_pesqui,
@nom_lograd_local,
@num_local,
@des_comple_local,
@cod_tipo_carro,
@qtd_carro_solici,
@cod_comuni,
@nom_usuari,
@ide_nao_fumant,
@ide_nao_gas,
@ide_ar_condic,
@ide_cartao,
@ide_carro_novo,
@ide_exectv,
@des_observ,
@des_observ_local_refere,
@cod_usuari_operad,
@dat_hora_atendi,
@num_ponto_refere_endere,
@num_ponto_atendi,
@num_unidad_atendi,
@cod_orgao,
@cod_centrl_telefo,
@num_ramal,
@ide_situac_client_call_center,
@cod_client,
@seq_autorz,
@cod_usuari_cancel,
@dat_hora_cancel,
@des_motivo_cancel,
@ide_fumant,
@dat_hora_final_bloque,
@num_unidad_prefer,
@dat_hora_solici,
@qtd_minuto_anteci,
@ide_insufi,
@des_observ_comple,
@ide_priori_cadast,
@cod_forma_pagame,
@ide_encome,
@cod_marca_veicul,
@cod_modelo_veicul,
@des_observ_intern,
@cod_lograd_entreg_encome,
@nom_lograd_entreg_encome,
@num_local_entreg_encome,
@des_comple_local_entreg_encome,
@ide_cd,
@ide_dvd,
@ide_navegd_gps,
@ide_intrnt,
@ide_viagem,
@ide_conexa_bateri,
@dat_hora_inicio_nagyro,
@ide_jovem,
@ide_trocar_pneu,
@ide_engate,
@seq_usuari_web_cadast,
@ide_forma_seleca_corrid,
@ide_carro_alto,
@ide_carro_baixo,
@ide_porta_malas_grande,
@num_call_center,
@cod_client_celula);

IF@@ERROR<>0
@xxx02=1;
@@ERROR=0;
END
--###################################################################



-- Incluir Chamada Taxi
--###################################################################
INSERT INTOACT297_CHAMADA_TAXI
(
num_ano_corrid,
num_corrid,
cod_client_celula,
des_lograd_origem,
num_lograd_origem,
des_comple_origem,
nom_cidade_origem,
des_lograd_destin,
num_lograd_destin,
des_comple_destin,
des_prefer_corrid,
cod_client_conven,
cod_matric_conven,
ide_forma_pagame,
cod_forma_pagame_cartao,
dat_hora_ultima_altera,
dat_hora_arquiv,
cod_motivo_cancel,
val_distan_destin,
val_tarifa_bandei_1,
val_tarifa_bandei_2,
finalidade,
observacao
)
VALUES
(
@num_ano_corrid2,
@num_corrid2,
@cod_client_celula2,
@des_lograd_origem,
@num_lograd_origem,
@des_comple_origem,
@nom_cidade_origem,
@des_lograd_destin,
@num_lograd_destin,
@des_comple_destin,
@des_prefer_corrid,
@cod_client_conven,
@cod_matric_conven,
@ide_forma_pagame,
@cod_forma_pagame_cartao,
@dat_hora_ultima_altera,
@dat_hora_arquiv,
@cod_motivo_cancel,
@val_distan_destin,
@val_tarifa_bandei_1,
@val_tarifa_bandei_2,
@finalidade,
@observacao);

IF@@ERROR<>0
@xxx03=1;
@@ERROR=0;
END

--###################################################################

IF@xxx01=1AND@xxx02=1AND@xxx03=1
RETURN0;
ELSE
RETURN1;
END

--###################################################################

END
);
GO
>
Membre enregistré
3 657 messages
Popularité : +175 (223 votes)
Posté le 07 janvier 2015 - 20:11
Criei uma procedure em vez de function para ser executada pelo webservice, vejam como ficou o exemplo:

USE[producao]
GO

CREATE PROCEDURE NG0001_Procedure_IncluirChamadaTaxi@AnoAtualint,
@XXX01int,
@num_ano_corridint,
@num_corridint,
@ide_situac_corridVARCHAR(1),
@dat_hora_corridDATETIME,
@seq_telefoint,
@dat_hora_cadastDATETIME,
@cod_usuari_cadastVARCHAR(10),
@cod_lograd_pesquiint,
@nom_lograd_localVARCHAR(70),
@num_localint,
@des_comple_localVARCHAR(15),
@cod_tipo_carroint,
@qtd_carro_soliciint,
@cod_comuniint,
@nom_usuariVARCHAR(30),
@ide_nao_fumantVARCHAR(1),
@ide_nao_gasVARCHAR(1),
@ide_ar_condicVARCHAR(1),
@ide_cartaoVARCHAR(1),
@ide_carro_novoVARCHAR(1),
@ide_exectvVARCHAR(1),
@des_observVARCHAR(254),
@des_observ_local_refereVARCHAR(254),
@cod_usuari_operadVARCHAR(10),
@dat_hora_atendiDATETIME,
@num_ponto_refere_endereint,
@num_ponto_atendiint,
@num_unidad_atendiint,
@cod_orgaoVARCHAR(12),
@cod_centrl_telefoint,
@num_ramalint,
@ide_situac_client_call_centerint,
@cod_clientint,
@seq_autorzint,
@cod_usuari_cancelVARCHAR(10),
@dat_hora_cancelDATETIME,
@des_motivo_cancelVARCHAR(50),
@ide_fumantVARCHAR(1),
@dat_hora_final_bloqueDATETIME,
@num_unidad_preferint,
@dat_hora_soliciDATETIME,
@qtd_minuto_anteciint,
@ide_insufiVARCHAR(1),
@des_observ_compleVARCHAR(254),
@ide_priori_cadastint,
@cod_forma_pagameint,
@ide_encomeVARCHAR(1),
@cod_marca_veiculint,
@cod_modelo_veiculint,
@des_observ_internVARCHAR(100),
@cod_lograd_entreg_encomeint,
@nom_lograd_entreg_encomeVARCHAR(50),
@num_local_entreg_encomeint,
@des_comple_local_entreg_encomeVARCHAR(15),
@ide_cdVARCHAR(1),
@ide_dvdVARCHAR(1),
@ide_navegd_gpsVARCHAR(1),
@ide_intrntVARCHAR(1),
@ide_viagemVARCHAR(1),
@ide_conexa_bateriVARCHAR(1),
@dat_hora_inicio_nagyroDATETIME,
@ide_jovemVARCHAR(1),
@ide_trocar_pneuVARCHAR(1),
@ide_engateVARCHAR(1),
@seq_usuari_web_cadastint,
@ide_forma_seleca_corridVARCHAR(1),
@ide_carro_altoVARCHAR(1),
@ide_carro_baixoVARCHAR(1),
@ide_porta_malas_grandeVARCHAR(1),
@num_call_centerint,
@cod_client_celulaint,
@XXX02int,
@num_ano_corrid2int,
@num_corrid2int,
@cod_client_celula2int,
@des_lograd_origemVARCHAR(70),
@num_lograd_origemint,
@des_comple_origemVARCHAR(50),
@nom_cidade_origemVARCHAR(50),
@des_lograd_destinVARCHAR(120),
@num_lograd_destinint,
@des_comple_destinVARCHAR(40),
@des_prefer_corridVARCHAR(254),
@cod_client_convenint,
@cod_matric_convenVARCHAR(10),
@ide_forma_pagameVARCHAR(1),
@cod_forma_pagame_cartaoint,
@dat_hora_ultima_alteraDATETIME,
@dat_hora_arquivDATETIME,
@cod_motivo_cancelint,
@val_distan_destinint,
@val_tarifa_bandei_1int,
@val_tarifa_bandei_2int,
@finalidadeVARCHAR(50),
@observacaoVARCHAR(255),
@XXX03 int

AS

--Numeracao
--###################################################################
UPDATEnumeracaoSETnum_ultima_numera= (
SELECTnum_ultima_numera
FROMNUMERACAO
WHEREide_numera='ACT263_CORRIDA'
ANDcod_orgao='0'
ANDnum_ano_refere= @AnoAtual
) +1
WHEREide_numera='ACT263_CORRIDA'
ANDcod_orgao='0'
ANDnum_ano_refere= @AnoAtual;
--###################################################################



--Incluir Corrida
--###################################################################
INSERT INTOact263_corrida
(
num_ano_corrid,
num_corrid,
ide_situac_corrid,
dat_hora_corrid,
seq_telefo,
dat_hora_cadast,
cod_usuari_cadast,
cod_lograd_pesqui,
nom_lograd_local,
num_local,
des_comple_local,
cod_tipo_carro,
qtd_carro_solici,
cod_comuni,
nom_usuari,
ide_nao_fumant,
ide_nao_gas,
ide_ar_condic,
ide_cartao,
ide_carro_novo,
ide_exectv,
des_observ,
des_observ_local_refere,
cod_usuari_operad,
dat_hora_atendi,
num_ponto_refere_endere,
num_ponto_atendi,
num_unidad_atendi,
cod_orgao,
cod_centrl_telefo,
num_ramal,
ide_situac_client_call_center,
cod_client,
seq_autorz,
cod_usuari_cancel,
dat_hora_cancel,
des_motivo_cancel,
ide_fumant,
dat_hora_final_bloque,
num_unidad_prefer,
dat_hora_solici,
qtd_minuto_anteci,
ide_insufi,
des_observ_comple,
ide_priori_cadast,
cod_forma_pagame,
ide_encome,
cod_marca_veicul,
cod_modelo_veicul,
des_observ_intern,
cod_lograd_entreg_encome,
nom_lograd_entreg_encome,
num_local_entreg_encome,
des_comple_local_entreg_encome,
ide_cd,
ide_dvd,
ide_navegd_gps,
ide_intrnt,
ide_viagem,
ide_conexa_bateri,
dat_hora_inicio_nagyro,
ide_jovem,
ide_trocar_pneu,
ide_engate,
seq_usuari_web_cadast,
ide_forma_seleca_corrid,
ide_carro_alto,
ide_carro_baixo,
ide_porta_malas_grande,
num_call_center,
cod_client_celula
)
VALUES
(
@num_ano_corrid,
@num_corrid,
@ide_situac_corrid,
@dat_hora_corrid,
@seq_telefo,
@dat_hora_cadast,
@cod_usuari_cadast,
@cod_lograd_pesqui,
@nom_lograd_local,
@num_local,
@des_comple_local,
@cod_tipo_carro,
@qtd_carro_solici,
@cod_comuni,
@nom_usuari,
@ide_nao_fumant,
@ide_nao_gas,
@ide_ar_condic,
@ide_cartao,
@ide_carro_novo,
@ide_exectv,
@des_observ,
@des_observ_local_refere,
@cod_usuari_operad,
@dat_hora_atendi,
@num_ponto_refere_endere,
@num_ponto_atendi,
@num_unidad_atendi,
@cod_orgao,
@cod_centrl_telefo,
@num_ramal,
@ide_situac_client_call_center,
@cod_client,
@seq_autorz,
@cod_usuari_cancel,
@dat_hora_cancel,
@des_motivo_cancel,
@ide_fumant,
@dat_hora_final_bloque,
@num_unidad_prefer,
@dat_hora_solici,
@qtd_minuto_anteci,
@ide_insufi,
@des_observ_comple,
@ide_priori_cadast,
@cod_forma_pagame,
@ide_encome,
@cod_marca_veicul,
@cod_modelo_veicul,
@des_observ_intern,
@cod_lograd_entreg_encome,
@nom_lograd_entreg_encome,
@num_local_entreg_encome,
@des_comple_local_entreg_encome,
@ide_cd,
@ide_dvd,
@ide_navegd_gps,
@ide_intrnt,
@ide_viagem,
@ide_conexa_bateri,
@dat_hora_inicio_nagyro,
@ide_jovem,
@ide_trocar_pneu,
@ide_engate,
@seq_usuari_web_cadast,
@ide_forma_seleca_corrid,
@ide_carro_alto,
@ide_carro_baixo,
@ide_porta_malas_grande,
@num_call_center,
@cod_client_celula);
--###################################################################



-- Incluir Chamada Taxi
--###################################################################
INSERT INTOACT297_CHAMADA_TAXI
(
num_ano_corrid,
num_corrid,
cod_client_celula,
des_lograd_origem,
num_lograd_origem,
des_comple_origem,
nom_cidade_origem,
des_lograd_destin,
num_lograd_destin,
des_comple_destin,
des_prefer_corrid,
cod_client_conven,
cod_matric_conven,
ide_forma_pagame,
cod_forma_pagame_cartao,
dat_hora_ultima_altera,
dat_hora_arquiv,
cod_motivo_cancel,
val_distan_destin,
val_tarifa_bandei_1,
val_tarifa_bandei_2,
finalidade,
observacao
)
VALUES
(
@num_ano_corrid2,
@num_corrid2,
@cod_client_celula2,
@des_lograd_origem,
@num_lograd_origem,
@des_comple_origem,
@nom_cidade_origem,
@des_lograd_destin,
@num_lograd_destin,
@des_comple_destin,
@des_prefer_corrid,
@cod_client_conven,
@cod_matric_conven,
@ide_forma_pagame,
@cod_forma_pagame_cartao,
@dat_hora_ultima_altera,
@dat_hora_arquiv,
@cod_motivo_cancel,
@val_distan_destin,
@val_tarifa_bandei_1,
@val_tarifa_bandei_2,
@finalidade,
@observacao);

GO
>
Membre enregistré
3 657 messages
Popularité : +175 (223 votes)
Posté le 07 janvier 2015 - 20:13
Para usar só usar o comando:

ok isboolean=HExecuteProcedure(ConnNativa,NG0001_Procedure_IncluirChamadaTaxi,N.... parametros.....)
IFok=True
xmlTrue
ELSE
xmlFalse
END
>
Membre enregistré
3 657 messages
Popularité : +175 (223 votes)
Posté le 20 mai 2016 - 19:48
Muito importante





//server
arr_Resultados isarray of string

//Declara webservice//
gsValorMemorizadoisstring=1//Necessario um valor

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

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


--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/>
Membre enregistré
3 657 messages
Popularité : +175 (223 votes)
Posté le 20 mai 2016 - 19:53
Exemplo

Procedurews_mobile_foto(Token,Telefone_Imei,Acao,num_matricula)


//Token = Codigo unico de acesso com o parceiro ou dispositivo mobile
//Telefone = Numero do Telefone ou Celular
//ACAO = Ler, Incluir, Alterar, Excluir


//Variaveis
X isint=0

Resultado isstring=""
sErro isstring=""
arrResultado isarray of string
ArrayDeleteAll(arrResultado)

TokenOk isboolean=False
Metodo isstring="ws_mobile_foto"
No_Xml isstring="NoXml"
Tabela isstring="foto_"

IFToken<>""THEN

OkConn isboolean=False

OkConn=HConnectionOpen(ConnNativa)

IFOkConn=FalseTHEN

Resultado=ws_conexao_falha(No_Xml)

ELSE

TokenOk=ws_token(Token,Telefone_Imei,Acao,Metodo)

IFTokenOk=FalseTHEN

Resultado=ws_erro_token(No_Xml)
Msg isstring=Metodo+";"+Resultado
ws_a_log(Token+" "+Tabela,"MOB",Msg)

ELSE

//LOG
Comando isstring=Metodo+";"+Acao+";"+num_matricula
ws_a_log(Token+" "+Tabela,"MOB",Comando)

END


//Filtro de leitura
IFTokenOk=TrueANDUpper(Acao) ="SELECT"ANDnum_matricula<>""THEN

ok isboolean=HExecuteQuery(QRY_Select_Foto,hQueryDefault,num_matricula)

IFok=TrueTHEN

Resultado="<Xml><Retorno>"

cod_motorista isstring=""
nome_completo isstring=""
foto_ isstring=""

FOR EACHQRY_Select_Foto
cod_motorista=QRY_Select_Foto.Matricula
nome_completo=QRY_Select_Foto.Nome
foto_=QRY_Select_Foto.Foto
END

X+=1

Resultado+=ws_xml_registro_comeco(No_Xml,X)

Resultado+=ws_xml_registro_corpo(cod_motorista,"cod_motorista")
Resultado+=ws_xml_registro_corpo(nome_completo,"nome_completo")
Resultado+=ws_xml_registro_corpo(foto_,"foto_")

Resultado+=ws_xml_registro_final(No_Xml)

IFX=0THEN
Resultado=ws_zero_registros(No_Xml)
END

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

ELSE

Resultado=ws_erro_acesso_tabela(No_Xml)

END

ELSE

Resultado=ws_parametros_invalidos(" TOKEN = "+Token+" IMEI = "+Telefone_Imei)

END

END

IFUpper(Acao) <>"SELECT"THEN
Resultado+=ws_xml_registro_comeco(No_Xml,X)

Resultado+="<ERRO>ACAO INVALIDA</ERRO>"

Resultado+=ws_xml_registro_final(No_Xml)

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

ws_a_log(Token+" "+Tabela,"MOB",Erro)
END

HConnectionClose(ConnNativa)

ELSE

Resultado=ws_token_invalido(No_Xml)

END

ArrayAdd(arrResultado,Resultado)

RESULT(arrResultado)


--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/>
Membre enregistré
3 657 messages
Popularité : +175 (223 votes)
Posté le 20 mai 2016 - 19:59
ProcedureMeuIpFixo()

nInicioBloco,nFinalBloco isint=0

IP isstring=""

Url isstring="http://www.meuip.com.br/"

HTTPTimeOut(1000)

HTTPRequest(Url)

bufRetorno is Buffer=HTTPGetResult(httpResult)

bufRetorno=Replace(bufRetorno,Charact(34),"")

bufRetorno=Replace(bufRetorno,"'","")

//info(bufRetorno)

nInicioBloco=PositionOccurrence(bufRetorno,"document.getElementById(div_ip).innerHTML = ",firstRank,FromBeginning) +Length("document.getElementById(div_ip).innerHTML = ")

//Info(bufRetorno)

IFnInicioBloco>0THEN

bufRetorno=Middle(bufRetorno,nInicioBloco,1000)

IFnInicioBloco>0
bufRetorno=Middle(bufRetorno,1,20)
END

//Info(bufRetorno)

ELSE

nInicioBloco=PositionOccurrence(bufRetorno,"<span class=style1> detectando (IPv4 ou IPv6)...</span>-->",firstRank,FromBeginning) +Length("<span class=style1> detectando (IPv4 ou IPv6)...</span>-->")

IFnInicioBloco>0
bufRetorno=Middle(bufRetorno,nInicioBloco,20)
END

//Info(bufRetorno)

END


//192.168.1.180, 1000);

IFbufRetorno<>""

nFinalBloco=PositionOccurrence(bufRetorno,",",firstRank,FromBeginning) -1

IFnFinalBloco>0THEN
bufRetorno=Middle(bufRetorno,1,nFinalBloco)
END

END

bufRetorno=Replace(bufRetorno,"=","")

bufRetorno=NoSpace(bufRetorno)

IP=NoSpace(bufRetorno)

RESULT(IP)


--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/>
Membre enregistré
3 657 messages
Popularité : +175 (223 votes)
Posté le 20 mai 2016 - 20:00
ProcedureNoEnter(Texto)

Texto=Replace(Texto,CRLF,"")
Texto=Replace(Texto,CR,"")
Texto=Replace(Texto,"<13><10>","")
Texto=Replace(Texto,"<13>","")
Texto=Replace(Texto,"<10>","")
Texto=Replace(Texto,Charact(13)+Charact(10),"")
Texto=Replace(Texto,Charact(13),"")
Texto=Replace(Texto,Charact(10),"")

Texto=NoSpace(Texto)

Texto=NoAccent(Texto)

RESULT(Texto)


--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/>
Membre enregistré
3 657 messages
Popularité : +175 (223 votes)
Posté le 20 mai 2016 - 20:02
ProcedureReplaceNull(Texto,Busca,Troca)

IFTexto<>""ANDBusca<>""
IFTroca<>""ANDPositionOccurrence(Texto,"'"+Busca+"'",firstRank,FromBeginning) >0
Texto=Replace(Texto,"'"+Busca+"'","'"+Troca+"'")
ELSE IFTroca<>""ANDPositionOccurrence(Texto,Busca,firstRank,FromBeginning) >0
Texto=Replace(Texto,Busca,Troca)
ELSE IFTroca=""ANDPositionOccurrence(Texto,"'"+Busca+"'",firstRank,FromBeginning) >0
Texto=Replace(Texto,"'"+Busca+"'","null")
ELSE IFTroca=""ANDPositionOccurrence(Texto,Busca,firstRank,FromBeginning) >0
Texto=Replace(Texto,Busca,"null")
END
END

RESULT(Texto)


--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/>
Membre enregistré
3 657 messages
Popularité : +175 (223 votes)
Posté le 20 mai 2016 - 20:03




--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/>
Membre enregistré
3 657 messages
Popularité : +175 (223 votes)
Posté le 20 mai 2016 - 20:05
Procedurews_a_log(Token,Aplicativo,Metodo)

//Ip que executou o webservice
Ip isstring=WebserviceClientIPAddress()
IFIp=""THEN
Ip=MeuIpFixo()
END
Metodo=Ip+" => "+Metodo

Token=NoAccent(Token)
Token=Middle(Token,1,50)
Token=NoSpace(NoEnter(Token))

Aplicativo=NoAccent(Aplicativo)
Aplicativo=Middle(Aplicativo,1,255)
Aplicativo=NoSpace(NoEnter(Aplicativo))

Metodo=NoAccent(Metodo)
Metodo=Middle(Metodo,1,1000)
Metodo=NoSpace(NoEnter(Metodo))

ERRO_SQL isstring=""

ok isboolean=False

IFToken<>""

Webservice_Log.DataHora=DateSys() +TimeSys()
Webservice_Log.Token=Token
Webservice_Log.Aplicativo=Aplicativo
Webservice_Log.Metodo=Metodo
ok=HAdd(Webservice_Log)

IFok=FalseTHEN
ERRO_SQL=HErrorInfo() +ErrorInfo()
END

END

RESULT(ok)


--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/>
Membre enregistré
3 657 messages
Popularité : +175 (223 votes)
Posté le 04 juin 2016 - 15:33
Links complementares



http://forum.pcsoft.fr/fr-FR/pcsoft.br.windev/443-was-webdev-aplicativo-server-1269/read.awp

:merci:

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/>
Membre enregistré
3 657 messages
Popularité : +175 (223 votes)
Posté le 09 août 2016 - 15:34
REDUNDÂNCIA DE WEBSERVICE NO CASO DE ROMPIMENTO DE FIBRA ÓTICA

//Webservice
IFIp01=True

//###########################################
XML_Retorno isstring=""

RetornoXml is a ws_mobile_config_Ip01_Response

RetornoXml=ws_mobile_config_Ip01_(29121974,4199491800,"SELECT")

XML_Retorno=RetornoXml.ws_mobile_config_Ip01_Result

XML_RetornoBuffer is Buffer=UTF8ToAnsi(XML_Retorno)
//##########################################

ELSE

//###########################################
XML_Retorno isstring=""

RetornoXml is a ws_mobile_config_Ip02_Response

RetornoXml=ws_mobile_config_Ip02_(29121974,4199491800,"SELECT")

XML_Retorno=RetornoXml.ws_mobile_config_Ip02_Result

XML_RetornoBuffer is Buffer=UTF8ToAnsi(XML_Retorno)
//##########################################


END


Dentro do webservice no método, você usa bases de dados diferentes se quiser.

Você gera outro webservice espelho com um detalhe apenas no final do método nome da procedure mude para "ip02"
mas com o mesmo conteúdo e publique num outro servidor com outro ip com outra rota de cabos físicos.

O webservice é uma nuvem, o que tem dentro dela, pode ser um servidor ou milhões de servidores;
um banco ou milhões de bancos de dados diferentes.

O outro webservice espelho é a outra rota para fazer caso aquela nuvem esteja fora do ar, você consegue fazer por outro ip os diferentes connects e ter os dados retornados de sua consulta. Mas se for um webservice apenas você deve rezar que o ip nunca de problema.

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/>
Message modifié, 09 août 2016 - 15:48
Membre enregistré
3 657 messages
Popularité : +175 (223 votes)
Posté le 12 janvier 2017 - 01:31
//GLOBAL DO PROJETO

ok isboolean

HCreationIfNotFound("*")

HModifyStructure("*",hmsBackgroundTask)

CargaInicial()

--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
DEFINA O BANCO DE DADOS

-- Script generated by WINDEV on 11/01/2017 21:45:00
-- Tables of WSQuote.wda analysis
-- for SQL Server

-- Creating the t0001_config table
CREATE TABLE[t0001_config] (
[t0001_id]NUMERIC(19,0)IDENTITY PRIMARY KEY,
[t0001_config]VARCHAR(50)UNIQUE,
[t0001_valor]TEXT);

-- Creating the t0002_pricetag table
CREATE TABLE[t0002_pricetag] (
[t0002_id]NUMERIC(19,0)IDENTITY PRIMARY KEY,
[t0002_refproduto]VARCHAR(20)NOT NULL UNIQUE,
[t0002_produto]VARCHAR(255)NOT NULL,
[t0002_valoreuro]MONEY NOT NULLDefault0,
[t0002_valorpromocaoeuro]MONEY NOT NULLDefault0,
[t0002_siteorigem]VARCHAR(3) ,
[t0002_valordolar]MONEYDefault0,
[t0002_valorpromocaodolar]MONEYDefault0,
[t0002_datainicialvalidadepromocao]DATETIME,
[t0002_datafinalvalidadepromocao]DATETIME,
[t0002_ativo]BITDefault0);
CREATE INDEX[WDIDX_t0002_pricetag_t0002_produto]ON[t0002_pricetag] ([t0002_produto]);

-- Creating the t0003_wslog table
CREATE TABLE[t0003_wslog] (
[t0003_id]NUMERIC(19,0)IDENTITY PRIMARY KEY,
[t0003_datahora]DATETIME,
[t0003_ip]VARCHAR(15) ,
[t0003_acao]TEXT);
CREATE INDEX[WDIDX_t0003_wslog_t0003_datahora]ON[t0003_wslog] ([t0003_datahora]);
CREATE INDEX[WDIDX_t0003_wslog_t0003_ip]ON[t0003_wslog] ([t0003_ip]);

-- Creating the t0004_distributeurs table
CREATE TABLE[t0004_distributeurs] (
[t0004_id]NUMERIC(19,0)IDENTITY PRIMARY KEY,
[t0004_telefoneimei]VARCHAR(20)UNIQUE,
[t0004_nome]VARCHAR(50)UNIQUE,
[t0004_telefone]VARCHAR(20)UNIQUE,
[t0004_email]VARCHAR(50) ,
[t0004_site]VARCHAR(50) ,
[t0004_company]VARCHAR(50)UNIQUE,
[t0004_endereco]VARCHAR(50) ,
[t0004_numero]INTEGERDefault0,
[t0004_bairro]VARCHAR(50) ,
[t0004_complemento]VARCHAR(50) ,
[t0004_cidade]VARCHAR(50) ,
[t0004_estado]VARCHAR(50) ,
[t0004_cep]INTEGERDefault0,
[t0004_cxpostal]VARCHAR(20) ,
[t0004_obs]TEXT,
[t0004_pais]VARCHAR(30) );

-- Creating the t0005_customers table
CREATE TABLE[t0005_customers] (
[t0005_id]NUMERIC(19,0)IDENTITY PRIMARY KEY,
[t0005_telefoneimei]VARCHAR(20)UNIQUE,
[t0005_nome]VARCHAR(50)UNIQUE,
[t0005_telefone]VARCHAR(20)UNIQUE,
[t0005_email]VARCHAR(50) ,
[t0005_site]VARCHAR(50) ,
[t0005_endereco]VARCHAR(50) ,
[t0005_numero]INTEGERDefault0,
[t0005_bairro]VARCHAR(50) ,
[t0005_complemento]VARCHAR(50) ,
[t0005_cidade]VARCHAR(50) ,
[t0005_estado]VARCHAR(50) ,
[t0005_cep]INTEGERDefault0,
[t0005_cxpostal]VARCHAR(20) ,
[t0005_obs]TEXT,
[t0005_pais]VARCHAR(30) );

--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------

CRIAR QUERYS....


SELECT
Count(*)AS QtdeRegistros
FROM
t0001_config

--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------

PROCEDURES

CREATEnewPROCEDURES

ServerProcedures(PRINCIPAL)

DENTRO DELA EM CODE

//server <-------------------------------------- IMPORTANTE
arr_Resultados isarray of string

//Declara webservice//

gsValorMemorizadoisstring=1//Necessario um valor

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

DeclareWebserviceContext(arr_Resultados)//Principal funcao que declara webservice// <-------------------------------------- IMPORTANTE


--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------

Procedurews_customer_insert(token,nome,telefone,telefone_imei,Email,site,endereco,numero,complemento,bairro,cidade,estado,pais,cep,cxpostal,obs,Criptografado isboolean)

CargaInicial()

//Variaveis
arrResultado isarray of string
X isint=0
TokenOk isint=0
Tabela isstring="t0005_customers"
Resultado isstring=""
sErro isstring=""

//Code
IFtoken<>""THEN

OkConn isboolean=False

OkConn=HConnectionOpen(ConnNativa)

IFOkConn=FalseTHEN

Resultado=ws_conexao_falha(Tabela)

ELSE

TokenOk=ws_token(token,telefone_imei)

IFTokenOk=FalseTHEN

ws_a_log("TokenErrado")

ELSE

//LOG
ws_a_log("TokenOK")

END

//Filtro de leitura
IFTokenOk=1

ok=HExecuteQuery(QRY_Customer_Insert,hQueryDefault+hCheckDuplicates+hCheckIntegrity,nome,telefone,telefone_imei,Email,site,endereco,numero,complemento,bairro,cidade,estado,cep,cxpostal,obs,pais)

IFok=TrueTHEN

Resultado=ws_gravou(Tabela)

ELSE

Resultado=ws_erro_acesso_tabela(Tabela+" "+ErrorInfo())

END

ELSE

Resultado=ws_parametros_invalidos(" TOKEN = "+token+" IMEI = "+telefone_imei)

END

END

//Limpa variaveis

token=""
telefone_imei=""

HConnectionClose(ConnNativa)

ELSE

Resultado=ws_token_invalido(Tabela)

END

IFCriptografado=True
Resultado=Crypt(Resultado,token,compressNone,encodeBASE64)
END

Add(arrResultado,Resultado)

RESULT(arrResultado)


--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------

Procedurews_customer_select(token,telefone_imei,Criptografado isboolean)

//Variaveis
arrResultado isarray of string
X isint=0
TokenOk isint=0
Tabela isstring="t0005_customers"
Resultado isstring=""
sErro isstring=""

//Code
IFtoken<>""THEN

OkConn isboolean=False

OkConn=HConnectionOpen(ConnNativa)

IFOkConn=FalseTHEN

Resultado=ws_conexao_falha(Tabela)

ELSE

TokenOk=ws_token(token,telefone_imei)

IFTokenOk=FalseTHEN

ws_a_log("TokenErrado")

ELSE

//LOG
ws_a_log("TokenOK")

END


//Filtro de leitura
IFTokenOk=1

ok=HExecuteQuery(QRY_Customer_Select,hQueryDefault)

IFok=TrueTHEN

Resultado="<Xml><Retorno>"

FOR EACHQRY_Customer_Select

IFHFound(QRY_Customer_Select) =True

X+=1

Resultado+=ws_xml_registro_comeco(Tabela,X)

Resultado+=ws_xml_registro_corpo(QRY_Customer_Select.t0005_nome,"t0005_nome")
Resultado+=ws_xml_registro_corpo(QRY_Customer_Select.t0005_telefone,"t0005_telefone")
Resultado+=ws_xml_registro_corpo(QRY_Customer_Select.t0005_telefoneimei,"t0005_telefoneimei")
Resultado+=ws_xml_registro_corpo(QRY_Customer_Select.t0005_email,"t0005_email")
Resultado+=ws_xml_registro_corpo(QRY_Customer_Select.t0005_site,"t0005_site")
Resultado+=ws_xml_registro_corpo(QRY_Customer_Select.t0005_endereco,"t0005_endereco")
Resultado+=ws_xml_registro_corpo(QRY_Customer_Select.t0005_numero,"t0005_numero")
Resultado+=ws_xml_registro_corpo(QRY_Customer_Select.t0005_complemento,"t0005_complemento")
Resultado+=ws_xml_registro_corpo(QRY_Customer_Select.t0005_bairro,"t0005_bairro")
Resultado+=ws_xml_registro_corpo(QRY_Customer_Select.t0005_cidade,"t0005_cidade")
Resultado+=ws_xml_registro_corpo(QRY_Customer_Select.t0005_estado,"t0005_estado")
Resultado+=ws_xml_registro_corpo(QRY_Customer_Select.t0005_pais,"t0005_pais")
Resultado+=ws_xml_registro_corpo(QRY_Customer_Select.t0005_cep,"t0005_cep")
Resultado+=ws_xml_registro_corpo(QRY_Customer_Select.t0005_capostal,"t0005_cxpostal")
Resultado+=ws_xml_registro_corpo(QRY_Customer_Select.t0005_obs,"t0005_obs")

Resultado+=ws_xml_registro_final(Tabela)

END

END

IFX=0THEN
Resultado=ws_zero_registros(Tabela)
END

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

ELSE

Resultado=ws_erro_acesso_tabela(Tabela+" "+ErrorInfo())

END

ELSE

Resultado=ws_parametros_invalidos(" TOKEN = "+token+" IMEI = "+telefone_imei)

END

END

//Limpa variaveis

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

token=""
telefone_imei=""

HConnectionClose(ConnNativa)

ELSE

Resultado=ws_token_invalido(Tabela)

END

IFCriptografado=True
Resultado=Crypt(Resultado,token,compressNone,encodeBASE64)
END

Add(arrResultado,Resultado)

RESULT(arrResultado)


--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------

Procedurews_customer_update(token,id,nome,telefone,telefone_imei,Email,site,endereco,numero,complemento,bairro,cidade,estado,pais,cep,cxpostal,obs,Criptografado isboolean)

//Variaveis
arrResultado isarray of string
X isint=0
TokenOk isint=0
Tabela isstring="t0005_customers"
Resultado isstring=""
sErro isstring=""

//Code
IFtoken<>""THEN

OkConn isboolean=False

OkConn=HConnectionOpen(ConnNativa)

IFOkConn=FalseTHEN

Resultado=ws_conexao_falha(Tabela)

ELSE

TokenOk=ws_token(token,telefone_imei)

IFTokenOk=FalseTHEN

ws_a_log("TokenErrado")

ELSE

//LOG
ws_a_log("TokenOK")

END


//Filtro de leitura
IFTokenOk=1

ok=HExecuteQuery(QRY_Customer_Update,hQueryDefault+hCheckDuplicates+hCheckIntegrity,nome,telefone,telefone_imei,Email,site,endereco,numero,complemento,bairro,cidade,estado,cep,cxpostal,obs,id,pais)

IFok=TrueTHEN

Resultado="<Xml><Retorno>"

ServerProceduresInternas.ws_gravou(Tabela)

IFX=0THEN
Resultado=ws_zero_registros(Tabela)
END

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

ELSE

Resultado=ws_erro_acesso_tabela(Tabela+" "+ErrorInfo())

END

ELSE

Resultado=ws_parametros_invalidos(" TOKEN = "+token+" IMEI = "+telefone_imei)

END

END

//Limpa variaveis

token=""
telefone_imei=""

HConnectionClose(ConnNativa)

ELSE

Resultado=ws_token_invalido(Tabela)

END

IFCriptografado=True
Resultado=Crypt(Resultado,token,compressNone,encodeBASE64)
END

Add(arrResultado,Resultado)

RESULT(arrResultado)


--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------

Procedurews_distributeur_insert(token,company,nome,telefone,telefone_imei,Email,site,endereco,numero,complemento,bairro,cidade,estado,pais,cep,cxpostal,obs,Criptografado isboolean)

CargaInicial()

//Variaveis
arrResultado isarray of string
X isint=0
TokenOk isint=0
Tabela isstring="t0004_distributeur"
Resultado isstring=""
sErro isstring=""

//Code
IFtoken<>""THEN

OkConn isboolean=False

OkConn=HConnectionOpen(ConnNativa)

IFOkConn=FalseTHEN

Resultado=ws_conexao_falha(Tabela)

ELSE

TokenOk=ws_token(token,telefone_imei)

IFTokenOk=FalseTHEN

ws_a_log("TokenErrado")

ELSE

//LOG
ws_a_log("TokenOK")

END

//Filtro de leitura
IFTokenOk=1

ok=HExecuteQuery(QRY_Distributeur_Insert,hQueryDefault+hCheckDuplicates+hCheckIntegrity,nome,telefone,telefone_imei,Email,site,company,endereco,numero,complemento,bairro,cidade,estado,cep,cxpostal,obs,pais)

IFok=TrueTHEN

Resultado=ws_gravou(Tabela)

ELSE

Resultado=ws_erro_acesso_tabela(Tabela+" "+ErrorInfo())

END

ELSE

Resultado=ws_parametros_invalidos(" TOKEN = "+token+" IMEI = "+telefone_imei)

END

END

//Limpa variaveis

token=""
telefone_imei=""

HConnectionClose(ConnNativa)

ELSE

Resultado=ws_token_invalido(Tabela)

END

IFCriptografado=True
Resultado=Crypt(Resultado,token,compressNone,encodeBASE64)
END

Add(arrResultado,Resultado)

RESULT(arrResultado)


--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------

Procedurews_distributeur_select(token,telefone_imei,Criptografado isboolean)

//Variaveis
arrResultado isarray of string
X isint=0
TokenOk isint=0
Tabela isstring="t0004_distributeur"
Resultado isstring=""
sErro isstring=""

//Code
IFtoken<>""THEN

OkConn isboolean=False

OkConn=HConnectionOpen(ConnNativa)

IFOkConn=FalseTHEN

Resultado=ws_conexao_falha(Tabela)

ELSE

TokenOk=ws_token(token,telefone_imei)

IFTokenOk=FalseTHEN

ws_a_log("TokenErrado")

ELSE

//LOG
ws_a_log("TokenOK")

END


//Filtro de leitura
IFTokenOk=1

ok=HExecuteQuery(QRY_Distributeur_Select,hQueryDefault)

IFok=TrueTHEN

Resultado="<Xml><Retorno>"

FOR EACHQRY_Distributeur_Select

IFHFound(QRY_Distributeur_Select) =True

X+=1

Resultado+=ws_xml_registro_comeco(Tabela,X)

Resultado+=ws_xml_registro_corpo(QRY_Distributeur_Select.t0004_distriID,"t0004_distriID")
Resultado+=ws_xml_registro_corpo(QRY_Distributeur_Select.t0004_company,"t0004_company")
Resultado+=ws_xml_registro_corpo(QRY_Distributeur_Select.t0004_nome,"t0004_nome")
Resultado+=ws_xml_registro_corpo(QRY_Distributeur_Select.t0004_telefone,"t0004_telefone")
Resultado+=ws_xml_registro_corpo(QRY_Distributeur_Select.t0004_telefoneimei,"t0004_telefoneimei")
Resultado+=ws_xml_registro_corpo(QRY_Distributeur_Select.t0004_email,"t0004_email")
Resultado+=ws_xml_registro_corpo(QRY_Distributeur_Select.t0004_site,"t0004_site")
Resultado+=ws_xml_registro_corpo(QRY_Distributeur_Select.t0004_endereco,"t0004_endereco")
Resultado+=ws_xml_registro_corpo(QRY_Distributeur_Select.t0004_numero,"t0004_numero")
Resultado+=ws_xml_registro_corpo(QRY_Distributeur_Select.t0004_complemento,"t0004_complemento")
Resultado+=ws_xml_registro_corpo(QRY_Distributeur_Select.t0004_bairro,"t0004_bairro")
Resultado+=ws_xml_registro_corpo(QRY_Distributeur_Select.t0004_cidade,"t0004_cidade")
Resultado+=ws_xml_registro_corpo(QRY_Distributeur_Select.t0004_estado,"t0004_estado")
Resultado+=ws_xml_registro_corpo(QRY_Distributeur_Select.t0004_pais,"t0004_pais")
Resultado+=ws_xml_registro_corpo(QRY_Distributeur_Select.t0004_cep,"t0004_cep")
Resultado+=ws_xml_registro_corpo(QRY_Distributeur_Select.t0004_capostal,"t0004_capostal")
Resultado+=ws_xml_registro_corpo(QRY_Distributeur_Select.t0004_obs,"t0004_obs")

Resultado+=ws_xml_registro_final(Tabela)

END

END

IFX=0THEN
Resultado=ws_zero_registros(Tabela)
END

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

ELSE

Resultado=ws_erro_acesso_tabela(Tabela+" "+ErrorInfo())

END

ELSE

Resultado=ws_parametros_invalidos(" TOKEN = "+token+" IMEI = "+telefone_imei)

END

END

//Limpa variaveis

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

token=""
telefone_imei=""

HConnectionClose(ConnNativa)

ELSE

Resultado=ws_token_invalido(Tabela)

END

IFCriptografado=True
Resultado=Crypt(Resultado,token,compressNone,encodeBASE64)
END

Add(arrResultado,Resultado)

RESULT(arrResultado)


--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------


Procedurews_distributeur_update(token,company,nome,telefone,telefone_imei,Email,site,endereco,numero,complemento,bairro,cidade,estado,pais,cep,cxpostal,obs,Criptografado isboolean)

//Variaveis
arrResultado isarray of string
X isint=0
TokenOk isint=0
Tabela isstring="t0004_distributeur"
Resultado isstring=""
sErro isstring=""

//Code
IFtoken<>""THEN

OkConn isboolean=False

OkConn=HConnectionOpen(ConnNativa)

IFOkConn=FalseTHEN

Resultado=ws_conexao_falha(Tabela)

ELSE

TokenOk=ws_token(token,telefone_imei)

IFTokenOk=FalseTHEN

ws_a_log("TokenErrado")

ELSE

//LOG
ws_a_log("TokenOK")

END


//Filtro de leitura
IFTokenOk=1

ok=HExecuteQuery(QRY_Distributeur_Update,hQueryDefault+hCheckDuplicates+hCheckIntegrity,nome,telefone,Email,site,telefone_imei,company,endereco,numero,complemento,bairro,cidade,estado,cep,cxpostal,obs,pais)

IFok=TrueTHEN

Resultado="<Xml><Retorno>"

ServerProceduresInternas.ws_gravou(Tabela)

IFX=0THEN
Resultado=ws_zero_registros(Tabela)
END

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

ELSE

Resultado=ws_erro_acesso_tabela(Tabela+" "+ErrorInfo())

END

ELSE

Resultado=ws_parametros_invalidos(" TOKEN = "+token+" IMEI = "+telefone_imei)

END

END

//Limpa variaveis

token=""
telefone_imei=""

HConnectionClose(ConnNativa)

ELSE

Resultado=ws_token_invalido(Tabela)

END

IFCriptografado=True
Resultado=Crypt(Resultado,token,compressNone,encodeBASE64)
END

Add(arrResultado,Resultado)

RESULT(arrResultado)

--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------

Procedurews_log_select(token,telefone_imei,Criptografado isboolean)

//Variaveis
arrResultado isarray of string

X isint=0
TokenOk isint=0
Tabela isstring="t0004_distri"
Resultado isstring=""
sErro isstring=""

//Code
IFtoken<>""THEN

OkConn isboolean=False

OkConn=HConnectionOpen(ConnNativa)

IFOkConn=FalseTHEN

Resultado=ws_conexao_falha(Tabela)

ELSE

TokenOk=ws_token(token,telefone_imei)

IFTokenOk=FalseTHEN

ws_a_log("TokenErrado")

ELSE

//LOG
ws_a_log("TokenOK")

END


//Filtro de leitura
IFTokenOk=1

ok=HExecuteQuery(QRY_Distributeur_Select,hQueryDefault)

IFok=TrueTHEN

Resultado="<Xml><Retorno>"

FOR EACHQRY_Distributeur_Select

IFHFound(QRY_Distributeur_Select) =True

X+=1

Resultado+=ws_xml_registro_comeco(Tabela,X)

Resultado+=ws_xml_registro_corpo(QRY_Distributeur_Select.t0004_distriID,"t0004_distriID")
Resultado+=ws_xml_registro_corpo(QRY_Distributeur_Select.t0004_nome,"t0004_nome")
Resultado+=ws_xml_registro_corpo(QRY_Distributeur_Select.t0004_telefone,"t0004_telefone")
Resultado+=ws_xml_registro_corpo(QRY_Distributeur_Select.t0004_telefoneimei,"t0004_telefoneimei")
Resultado+=ws_xml_registro_corpo(QRY_Distributeur_Select.t0004_email,"t0004_email")
Resultado+=ws_xml_registro_corpo(QRY_Distributeur_Select.t0004_site,"t0004_site")

Resultado+=ws_xml_registro_final(Tabela)

END

END

IFX=0THEN
Resultado=ws_zero_registros(Tabela)
END

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

ELSE

Resultado=ws_erro_acesso_tabela(Tabela+" "+ErrorInfo())

END

ELSE

Resultado=ws_parametros_invalidos(" TOKEN = "+token+" IMEI = "+telefone_imei)

END

END

//Limpa variaveis

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

token=""
telefone_imei=""

HConnectionClose(ConnNativa)

ELSE

Resultado=ws_token_invalido(Tabela)

END

IFCriptografado=True
Resultado=Crypt(Resultado,token,compressNone,encodeBASE64)
END


Add(arrResultado,Resultado)

RESULT(arrResultado)


--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------

Procedurews_pricetag_insert(token,telefone_imei,superuser,password,refproduto,produto,valoreuro,valorpromocaoeuro,valordolar,valorpromocaodolar,datainicialvalidadepromocao,datafinalvalidadepromocao,siteorigem,ativo,Criptografado isboolean)

//Variaveis
arrResultado isarray of string
X isint=0
TokenOk,SuperuserOk isint=0
Tabela isstring="t0002_pricetag"
Resultado isstring=""
sErro isstring=""

//Code
IFtoken<>""THEN

OkConn isboolean=False

OkConn=HConnectionOpen(ConnNativa)

CargaInicial()

IFOkConn=FalseTHEN

Resultado=ws_conexao_falha(Tabela)

ELSE

TokenOk=ws_token(token,telefone_imei)

IFTokenOk=0THEN

ws_a_log("TokenErrado")

ELSE

ws_a_log("TokenOK")

END

SuperuserOk=ws_superuser(superuser,password)

IFSuperuserOk=0THEN

ws_a_log("SuperuserErrado")

ELSE

ws_a_log("SuperuserOk")

END


//Filtro de leitura
IFTokenOk=1ANDSuperuserOk=1THEN

OkConn=HConnectionOpen(ConnNativa)

IFLength(datainicialvalidadepromocao) <8THEN
datainicialvalidadepromocao=DateSys()
END
IFLength(datafinalvalidadepromocao) <8THEN
datafinalvalidadepromocao=DateSys()
END

ok=HExecuteQuery(QRY_Pricetag_Insert,hQueryDefault+hCheckDuplicates+hCheckIntegrity,refproduto,produto,valoreuro,valorpromocaoeuro,valordolar,valorpromocaodolar,datainicialvalidadepromocao,datafinalvalidadepromocao,siteorigem,ativo)

IFok=TrueTHEN

Resultado=ws_gravou(Tabela)

ELSE

Resultado=ws_erro_acesso_tabela(Tabela+" "+ErrorInfo())

END

ELSE

Resultado=ws_parametros_invalidos(" TOKEN = "+token+" IMEI = "+telefone_imei)

END

END

//Limpa variaveis

token=""
telefone_imei=""

HConnectionClose(ConnNativa)

ELSE

Resultado=ws_token_invalido(Tabela)

END

IFCriptografado=True
Resultado=Crypt(Resultado,token,compressNone,encodeBASE64)
END

Add(arrResultado,Resultado)

RESULT(arrResultado)


--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------

Procedurews_pricetag_select(token,telefone_imei,Criptografado isboolean)

//Variaveis
arrResultado isarray of string
X isint=0
TokenOk isint=0
Tabela isstring="t0002_pricetag"
Resultado isstring=""
sErro isstring=""

//Code
IFtoken<>""THEN

OkConn isboolean=False

OkConn=HConnectionOpen(ConnNativa)

IFOkConn=FalseTHEN

Resultado=ws_conexao_falha(Tabela)

ELSE

TokenOk=ws_token(token,telefone_imei)

IFTokenOk=FalseTHEN

ws_a_log("TokenErrado")

ELSE

//LOG
ws_a_log("TokenOK")

END


//Filtro de leitura
IFTokenOk=1

ok=HExecuteQuery(QRY_Pricetag_Select,hQueryDefault)

IFok=TrueTHEN

Resultado="<Xml><Retorno>"

FOR EACHQRY_Pricetag_Select

IFHFound(QRY_Pricetag_Select) =True

X+=1

Resultado+=ws_xml_registro_comeco(Tabela,X)

Resultado+=ws_xml_registro_corpo(QRY_Pricetag_Select.t0002_ID,"t0002_ID")
Resultado+=ws_xml_registro_corpo(QRY_Pricetag_Select.t0002_refproduto,"t0002_refproduto")
Resultado+=ws_xml_registro_corpo(QRY_Pricetag_Select.t0002_produto,"t0002_produto")
Resultado+=ws_xml_registro_corpo(QRY_Pricetag_Select.t0002_valoreuro,"t0002_valoreuro")
Resultado+=ws_xml_registro_corpo(QRY_Pricetag_Select.t0002_valorpromocaoeuro,"t0002_valorpromocaoeuro")
Resultado+=ws_xml_registro_corpo(QRY_Pricetag_Select.t0002_valordolar,"t0002_valordolar")
Resultado+=ws_xml_registro_corpo(QRY_Pricetag_Select.t0002_valorpromocaodolar,"t0002_valorpromocaodolar")
Resultado+=ws_xml_registro_corpo(QRY_Pricetag_Select.t0002_datainicialvalidadepromocao,"t0002_datainicialvalidadepromocao")
Resultado+=ws_xml_registro_corpo(QRY_Pricetag_Select.t0002_datafinalvalidadepromocao,"t0002_datafinalvalidadepromocao")
Resultado+=ws_xml_registro_corpo(QRY_Pricetag_Select.t0002_siteorigem,"t0002_siteorigem")

Resultado+=ws_xml_registro_final(Tabela)

END

END

IFX=0THEN
Resultado=ws_zero_registros(Tabela)
END

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

ELSE

Resultado=ws_erro_acesso_tabela(Tabela+" "+ErrorInfo())

END

ELSE

Resultado=ws_parametros_invalidos(" TOKEN = "+token+" IMEI = "+telefone_imei)

END

END

//Limpa variaveis

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

token=""
telefone_imei=""

HConnectionClose(ConnNativa)

ELSE

Resultado=ws_token_invalido(Tabela)

END

IFCriptografado=True
Resultado=Crypt(Resultado,token,compressNone,encodeBASE64)
END

Add(arrResultado,Resultado)

RESULT(arrResultado)


--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------

Procedurews_pricetag_update(token,telefone_imei,superuser,password,refproduto,produto,valoreuro,valorpromocaoeuro,valordolar,valorpromocaodolar,datainicialvalidadepromocao,datafinalvalidadepromocao,siteorigem,ativo,Criptografado isboolean)

//Variaveis
arrResultado isarray of string
X isint=0
TokenOk,SuperuserOk isint=0
Tabela isstring="t0002_pricetag"
Resultado isstring=""
sErro isstring=""

//Code
IFtoken<>""THEN

OkConn isboolean=False

OkConn=HConnectionOpen(ConnNativa)

IFOkConn=FalseTHEN

Resultado=ws_conexao_falha(Tabela)

ELSE

TokenOk=ws_token(token,telefone_imei)

IFTokenOk=0THEN

ws_a_log("TokenErrado")

ELSE

ws_a_log("TokenOK")

END

SuperuserOk=ws_superuser(superuser,password)

IFSuperuserOk=0THEN

ws_a_log("SuperuserErrado")

ELSE

ws_a_log("SuperuserOk")

END


//Filtro de leitura
IFTokenOk=1ANDSuperuserOk=1

ok=HExecuteQuery(QRY_Pricetag_Update,hQueryDefault+hCheckDuplicates+hCheckIntegrity,produto,valoreuro,valorpromocaoeuro,valordolar,valorpromocaodolar,datainicialvalidadepromocao,datafinalvalidadepromocao,siteorigem,refproduto,ativo)

IFok=TrueTHEN

Resultado=ServerProceduresInternas.ws_gravou(Tabela)

ELSE

Resultado=ws_erro_acesso_tabela(Tabela+" "+ErrorInfo())

END

ELSE

Resultado=ws_parametros_invalidos(" TOKEN = "+token+" IMEI = "+telefone_imei+" Superuser: "+SuperuserOk)

END

END

//Limpa variaveis

token=""
telefone_imei=""

HConnectionClose(ConnNativa)

ELSE

Resultado=ws_token_invalido(Tabela)

END

IFCriptografado=True
Resultado=Crypt(Resultado,token,compressNone,encodeBASE64)
END

Add(arrResultado,Resultado)

RESULT(arrResultado)











//PROCEDURES INTERNAS QUE NAO SAO EXIBIDAS PARA O USUARIO FINAL, SE ENCONTRAM ABAIXO:

--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------

ProcedureCargaInicial()

ok=HConnectionOpen(ConnNativa)

IFok=False

ok=HExecuteQuery(QRY_Count_Config,hQueryDefault)

IFok=TrueTHEN

FOR EACHQRY_Count_Config

IFHFound(QRY_Count_Config) =TrueTHEN

IFQRY_Count_Config.QtdeRegistros=0THEN

ws_cargainicialconfig(0)

END

END

END

END

ok=HExecuteQuery(QRY_Count_Distributeurs,hQueryDefault)

IFok=TrueTHEN

FOR EACHQRY_Count_Distributeurs

IFHFound(QRY_Count_Distributeurs) =TrueTHEN

IFQRY_Count_Distributeurs.QtdeRegistros=0THEN

ws_cargainicialdistri(0)

END

END

END

END

END


--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------

ProcedureMeuIpFixo()

nInicioBloco,nFinalBloco isint=0

IP isstring=""

Url isstring="http://www.meuip.com.br/"

HTTPTimeOut(1000)

HTTPRequest(Url)

bufRetorno is Buffer=HTTPGetResult(httpResult)

bufRetorno=Replace(bufRetorno,Charact(34),"")

bufRetorno=Replace(bufRetorno,"'","")

//info(bufRetorno)

nInicioBloco=PositionOccurrence(bufRetorno,"document.getElementById(div_ip).innerHTML = ",firstRank,FromBeginning) +Length("document.getElementById(div_ip).innerHTML = ")

//Info(bufRetorno)

IFnInicioBloco>0THEN

bufRetorno=Middle(bufRetorno,nInicioBloco,1000)

IFnInicioBloco>0
bufRetorno=Middle(bufRetorno,1,20)
END

//Info(bufRetorno)

ELSE

nInicioBloco=PositionOccurrence(bufRetorno,"<span class=style1> detectando (IPv4 ou IPv6)...</span>-->",firstRank,FromBeginning) +Length("<span class=style1> detectando (IPv4 ou IPv6)...</span>-->")

IFnInicioBloco>0
bufRetorno=Middle(bufRetorno,nInicioBloco,20)
END

//Info(bufRetorno)

END


//192.168.1.180, 1000);

IFbufRetorno<>""

nFinalBloco=PositionOccurrence(bufRetorno,",",firstRank,FromBeginning) -1

IFnFinalBloco>0THEN
bufRetorno=Middle(bufRetorno,1,nFinalBloco)
END

END

bufRetorno=Replace(bufRetorno,"=","")

bufRetorno=NoSpace(bufRetorno)

IP=NoSpace(bufRetorno)

RESULT(IP)

--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------

ProcedureNoEnter(Texto)

Texto=Replace(Texto,CRLF,"")
Texto=Replace(Texto,CR,"")
Texto=Replace(Texto,"<13><10>","")
Texto=Replace(Texto,"<13>","")
Texto=Replace(Texto,"<10>","")
Texto=Replace(Texto,Charact(13)+Charact(10),"")
Texto=Replace(Texto,Charact(13),"")
Texto=Replace(Texto,Charact(10),"")

Texto=NoSpace(Texto)

Texto=NoAccent(Texto)

RESULT(Texto)


--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------

Procedurews_a_log(Acao)

//Ip que executou o webservice

Ip isstring// = WebserviceClientIPAddress()
IFIp=""THEN
Ip=MeuIpFixo()
END

OkConn isboolean=False

OkConn=HConnectionOpen(ConnNativa)

ok=False

LogResult isstring
DataHora isstring=DateSys() +TimeSys()

ok=HExecuteQuery(QRY_Insert_Log,hQueryDefault,DataHora,Ip,Acao)

IFok=FalseTHEN
LogResult="Erro ao gravar o log: "+HErrorInfo() +ErrorInfo()
ELSE
LogResult=1
END

RESULT(LogResult)

--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------

Procedurews_cargainicialconfig(Registros)

ok=HConnectionOpen(ConnNativa)

IFRegistros=0ANDok=True
t0001_config.t0001_config="TOKEN"
t0001_config.t0001_valor="LORELEI"
HAdd(t0001_config)

t0001_config.t0001_config="SUPERUSER"
t0001_config.t0001_valor="LORELEI"
HAdd(t0001_config)

t0001_config.t0001_config="PASSWORD"
t0001_config.t0001_valor="SWORDFISH"
HAdd(t0001_config)
END

--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------

Procedurews_cargainicialdistri(Registros)

OkConn isboolean=False

OkConn=HConnectionOpen(ConnNativa)

IFRegistros=0ANDOkConn=TrueTHEN
t0004_distributeurs.t0004_company="WX INFORMATICA"
t0004_distributeurs.t0004_nome="ADRIANO BOLLER"
t0004_distributeurs.t0004_email="adrianoboller@gmail.com"
t0004_distributeurs.t0004_telefone="41999491800"
t0004_distributeurs.t0004_telefoneimei="41999491800"
t0004_distributeurs.t0004_site="www.wxinformatica.com.br"
HAdd(t0004_distributeurs)
END

--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------

Procedurews_conexao_falha(Tabela)

Servidor isstring=ConnNativa..Server

OkConn isboolean=False

OkConn=HConnectionOpen(ConnNativa)

Resultado isstring=""
Resultado="<Xml><Retorno>"
Resultado+="<NoXml id="+Charact(34)+0+Charact(34)+">"
Resultado+="<Erro>ERRO DE CONEXAO COM O BANCO: "+Tabela+"</Erro>"
Resultado+="<Banco>"+Servidor+"</Banco>"
Resultado+="</NoXml>"
Resultado+="</Retorno></Xml>"

Erro isstring="Erro de Conexao com o Banco de Dados: "+HErrorInfo() +" - "+ErrorInfo()
Erro=Replace(Erro,Charact(34),"")
Erro=Replace(Erro,Charact(39),"")
Erro=NoAccent(Erro)

ws_a_log(Erro)

RESULT(Resultado)

--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------

Procedurews_conexao_sucesso(Tabela)

Servidor isstring=ConnNativa..Server

OkConn isboolean=False

OkConn=HConnectionOpen(ConnNativa)

Resultado isstring=""
Resultado+="<NoXml id="+Charact(34)+1+Charact(34)+">"
Resultado+="<OK>CONEXAO COM SUCESSO AO BANCO!!!!!!</OK><TABELA>"+Tabela+"</TABELA>"
Resultado+="<Banco>"+Servidor+"</Banco>"
Resultado+="</NoXml>"
Resultado+="<TOTAL>1</TOTAL>"

ws_a_log("Conexao OK")

RESULT(Resultado)

--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------

Procedurews_deletou(Tabela)

Resultado isstring=""
Resultado="<Xml><Retorno>"
Resultado+="<NoXml id="+Charact(34)+0+Charact(34)+">"
Resultado+="<OK>Deletou com Sucesso!</OK><TABELA>"+Tabela+"</TABELA>"
Resultado+="</NoXml>"
Resultado+="<TOTAL>1</TOTAL>"
Resultado+="</Retorno></Xml>"

ws_a_log("Deletou Registro")

RESULT(Resultado)

--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------

Procedurews_envia_email(Token,TelefoneImei,Acao,Emails,Assunto,Cabecalho,Mensagem)

TokenOk isboolean
Resultado isstring=""
sErro isstring=""
arrResultado isarray of string
ArrayDeleteAll(arrResultado)

OkConn isboolean=False

OkConn=HConnectionOpen(ConnNativa)

IFOkConn=FalseTHEN

Resultado=ws_conexao_falha("Banco de Dados Off-line")

ELSE IFOkConn=TrueANDUpper(Acao) ="SEND"

TokenOk=ws_token(Token,TelefoneImei)

IFTokenOk=FalseTHEN

Comando isstring="ws_envia_email;"+Acao+";"+Emails+";"+Assunto+";"+Cabecalho+";"+Mensagem
ws_a_log(Comando)

ELSE

Comando isstring="ws_envia_email;"+Acao+";"+Emails+";"+Assunto+";"+Cabecalho+";"+Mensagem
ws_a_log(Comando)

//ENVIA EMAIL
QyrEnviaEmail isData Source

SqlExecuta isstring= [
EnviaEmail '@Emails@', '@Assunto@', '@Cabecalho@', '@Mensagem@'
]

SqlExecuta=Replace(SqlExecuta,"@Emails@",Emails)
SqlExecuta=Replace(SqlExecuta,"@Assunto@",Assunto)
SqlExecuta=Replace(SqlExecuta,"@Cabecalho@",Cabecalho)
SqlExecuta=Replace(SqlExecuta,"@Mensagem@",Mensagem)

ok=HExecuteSQLQuery(QyrEnviaEmail,ConnNativa,hQueryWithoutCorrection,SqlExecuta)

IFok=TrueTHEN

Resultado="<Xml><Retorno>"
Resultado+="<NoXml>EMAIL ENVIADO COM SUCESSO!</NoXml>"
Resultado+="</Retorno></Xml>"

ws_a_log("EMAIL ENVIADO COM SUCESSO!")

ELSE

erro isstring=HErrorInfo() +" - "+ErrorInfo()
erro=Replace(erro,Charact(34),"")
erro=Replace(erro,Charact(39),"")
erro=NoAccent(erro)

Resultado="<Xml><Retorno>"
Resultado+="<NoXml>ERRO AO ENVIAR EMAIL</NoXml>"
Resultado+="</Retorno></Xml>"

ws_a_log(erro)

END


END


END

HConnectionClose(ConnNativa)

ArrayAdd(arrResultado,Resultado)

RESULT(arrResultado)

--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------

Procedurews_erro_acesso_tabela(Tabela)

Resultado isstring=""
Resultado="<Xml><Retorno>"
Resultado+="<NoXml id="+Charact(34)+0+Charact(34)+">"
Resultado+="<Erro>ERRO DE ACESSO A TABELA: "+NoSpace(Tabela) +"</Erro>"
Resultado+="</NoXml>"
Resultado+="<TOTAL>0</TOTAL>"
Resultado+="</Retorno></Xml>"

ws_a_log("Erro de acesso a tabela: "+Tabela)

RESULT(Resultado)

--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------

Procedurews_erro_token(Tabela)

Resultado isstring=""

Resultado="<Xml><Retorno>"
Resultado+="<NoXml id="+Charact(34)+0+Charact(34)+">"
Resultado+="<Erro>ERRO TOKEN: "+Tabela+"</Erro>"
Resultado+="</NoXml>"
Resultado+="<TOTAL>0</TOTAL>"
Resultado+="</Retorno></Xml>"

ws_a_log("Token errado, atençao com esse IP, provavelmente é um intruso.")

RESULT(Resultado)

--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------

Procedurews_gravou(Tabela)

Resultado isstring=""
Resultado="<Xml><Retorno>"
Resultado+="<NoXml id="+Charact(34)+0+Charact(34)+">"
Resultado+="<OK>Gravou com Sucesso!</OK><TABELA>"+Tabela+"</TABELA>"
Resultado+="</NoXml>"
Resultado+="<TOTAL>1</TOTAL>"
Resultado+="</Retorno></Xml>"

ws_a_log("Gravou com sucesso na tabela: "+Tabela)

RESULT(Resultado)

--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------

Procedurews_msg_retorno(Mensagem)

Resultado isstring=""
Resultado="<Xml><Retorno>"
Resultado+="<NoXml id="+Charact(34)+1+Charact(34)+">"
Resultado+="<OK>"+Mensagem+"</OK>"
Resultado+="</NoXml>"
Resultado+="<TOTAL>1</TOTAL>"
Resultado+="</Retorno></Xml>"

ws_a_log(Mensagem)

RESULT(Resultado)

--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------

Procedurews_nao_deletou(Tabela)

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

Resultado isstring=""
Resultado="<Xml><Retorno>"
Resultado+="<NoXml id="+Charact(34)+0+Charact(34)+">"
Resultado+="<Erro>NAO DELETOU!: "+Tabela+"; "+Erro+"</Erro>"
Resultado+="</NoXml>"
Resultado+="<TOTAL>0</TOTAL>"
Resultado+="</Retorno></Xml>"

ws_a_log("NAO DELETOU!: "+Tabela+"; "+Erro)

RESULT(Resultado)

--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------

Procedurews_nao_gravou(Tabela,Erro)

Resultado isstring=""
Resultado="<Xml><Retorno>"
Resultado+="<NoXml id="+Charact(34)+0+Charact(34)+">"
Resultado+="<Erro>NAO GRAVOU: "+Tabela+";"+Erro+"</Erro>"
Resultado+="</NoXml>"
Resultado+="<TOTAL>0</TOTAL>"
Resultado+="</Retorno></Xml>"

ws_a_log("Nao Gravou: "+Tabela+"; "+Erro)

RESULT(Resultado)

--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------

Procedurews_parametros_invalidos(Tabela)

Resultado isstring=""

erro isstring=HErrorInfo() +" - "+ErrorInfo()
erro=Replace(erro,Charact(34),"")
erro=Replace(erro,Charact(39),"")
erro=NoAccent(erro)

Resultado="<Xml><Retorno>"
Resultado+="<NoXml id="+Charact(34)+0+Charact(34)+">"
Resultado+="<Erro>PARAMETROS INVALIDOS OU CLIENTE BLOQUEADO: "+Tabela+" - "+erro+"</Erro>"
Resultado+="</NoXml>"
Resultado+="<TOTAL>0</TOTAL>"
Resultado+="</Retorno></Xml>"

ws_a_log("PARAMETROS INVALIDOS OU CLIENTE BLOQUEADO: "+erro+" - "+Tabela)

RESULT(Resultado)

--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------

Procedurews_retorno(Tabela,NomeCampo,Retorno)

Tabela=Tabela

Resultado isstring=""

IFRetorno<>""
Resultado="<Xml><Retorno>"
Resultado+="<NoXml id="+Charact(34)+1+Charact(34)+">"
Resultado+="<"+NomeCampo+">"+Retorno+"</"+NomeCampo+">"
Resultado+="</NoXml>"
Resultado+="<TOTAL>1</TOTAL>"
Resultado+="</Retorno></Xml>"
END

RESULT(Resultado)

--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------

Procedurews_superuser(superuser,password)

resultado,resultado01,resultado02 isint=0

//t0001_config.t0001_config = "SUPERUSER"
//t0001_config.t0001_valor = "LORELEI"
//HAdd(t0001_config)
//
//t0001_config.t0001_config = "PASSWORD"
//t0001_config.t0001_valor = "SWORDFISH"
//HAdd(t0001_config)

IFsuperuser<>""ANDpassword<>""THEN

HReadSeekFirst(t0001_config,t0001_config,"SUPERUSER",hKeepFilter)
IFUpper(t0001_config.t0001_valor) =Upper(superuser)THEN
resultado01=1
ELSE
resultado01=0
END

HReadSeekFirst(t0001_config,t0001_config,"PASSWORD",hKeepFilter)
IFUpper(t0001_config.t0001_valor) =Upper(password)THEN
resultado02=1
ELSE
resultado02=0
END

IFresultado01=1ANDresultado02=1THEN
resultado=1
ELSE
resultado=0
END

ELSE
resultado=0
END

RESULT(resultado)

--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------

Procedurews_token(Token,TelefoneImei)

Resultado,TokenResultado,TokenTelefoneImei isstring=""

OkConn isboolean=False

OkConn=HConnectionOpen(ConnNativa)

IFToken<>""ANDTelefoneImei<>""

HReadSeekFirst(t0001_config,t0001_config,"TOKEN",hKeepFilter)

FOR EACH t0001_config

IFHFound(t0001_config) =True
TokenResultado=t0001_config.t0001_valor
END

END


HReadSeekFirst(t0004_distributeurs,t0004_telefoneimei,TelefoneImei,hKeepFilter)

FOR EACH t0004_distributeurs

IFHFound(t0004_distributeurs) =True
TokenTelefoneImei=t0004_distributeurs.t0004_telefoneimei
END

END

IFTokenResultado<>""ANDUpper(TokenResultado) =Upper(Token)ANDTokenTelefoneImei<>""THEN
Resultado=1
ELSE
Resultado=0
END

//info(TokenResultado, TokenTelefoneImei)

ELSE

Resultado=0

END

RESULT(Resultado)

--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------

Procedurews_token_invalido(Tabela)

Resultado isstring=""

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

Resultado="<Xml><Retorno>"
Resultado+="<NoXml id="+Charact(34)+0+Charact(34)+">"
Resultado+="<Erro>TOKEN INVALIDO OU NAO INFORMADO: "+Erro+"; "+Tabela+"</Erro>"
Resultado+="</NoXml>"
Resultado+="<TOTAL>0</TOTAL>"
Resultado+="</Retorno></Xml>"

ws_a_log("TOKEN INVALIDO OU NAO INFORMADO: "+Erro+"; "+Tabela)

RESULT(Resultado)

--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------

Procedurews_xml_registro_comeco(tabela,id)

tabela=tabela

Resultado isstring=""

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

RESULT(Resultado)

--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------

Procedurews_xml_registro_corpo(TabelaCampo,Campo)

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

RESULT(Resultado)

--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------

Procedurews_xml_registro_final(Tabela)

Tabela=Tabela

Resultado isstring=""
Resultado="</NoXml>"

RESULT(Resultado)

--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------

Procedurews_zero_registros(Tabela)

Resultado isstring=""

Erro isstring=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>"

ws_a_log(Erro)

RESULT(Resultado)






//PARA CONSUMIR

--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------

RetornoXml is a ws_distributeur_selectResponse//INSTANCIA O METODO

RetornoXml=ws_distributeur_select("LORELEI","41999491800",0)//PERGUNTA

XML_Retorno isstring=RetornoXml.ws_distributeur_selectResult//RESPOSTA

Info(XML_Retorno)//EXIBE

--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------


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