|
Home → 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) |
Started by adrianoboller, Dec., 19 2014 1:29 PM - 33 replies |
| |
| | | |
|
| |
Registered member 3,655 messages Popularité : +175 (223 votes) |
|
Posted on December, 19 2014 - 1:29 PM |
Procedure ws_conexao_sucesso(Tabela)
Resultado is string = ""
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) |
| |
| |
| | | |
|
| | |
| |
Registered member 3,655 messages Popularité : +175 (223 votes) |
|
Posted on December, 19 2014 - 1:29 PM |
Procedure ws_erro_conexao(Tabela)
Resultado is string = ""
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) |
| |
| |
| | | |
|
| | |
| |
Registered member 3,655 messages Popularité : +175 (223 votes) |
|
Posted on December, 19 2014 - 1:29 PM |
Procedure ws_erro_token(Tabela)
Resultado is string = ""
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) |
| |
| |
| | | |
|
| | |
| |
Registered member 3,655 messages Popularité : +175 (223 votes) |
|
Posted on December, 19 2014 - 1:30 PM |
Procedure ws_parametros_invalidos(Tabela)
Resultado is string = ""
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) |
| |
| |
| | | |
|
| | |
| |
Registered member 3,655 messages Popularité : +175 (223 votes) |
|
Posted on December, 19 2014 - 1:30 PM |
Procedure ws_token(Token, Telefone_Imei, Acao, Metodo)
TokenOk is boolean = False
HReadSeekFirst(NG0001_WS_Token,NG0001_WS_Token.Token,Token,hKeepFilter) IF HFound(NG0001_WS_Token) = True AND NG0001_WS_Token.Token = Token AND NG0001_WS_Token.Situacao = "A" AND NG0001_WS_Token.Telefone_IMEI = Telefone_Imei THEN 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) |
| |
| |
| | | |
|
| | |
| |
Registered member 3,655 messages Popularité : +175 (223 votes) |
|
Posted on December, 19 2014 - 1:30 PM |
Procedure ws_token_invalido(Tabela)
Resultado is string = ""
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) |
| |
| |
| | | |
|
| | |
| |
Registered member 3,655 messages Popularité : +175 (223 votes) |
|
Posted on December, 19 2014 - 1:31 PM |
Procedure ws_xml_registro_comeco(Tabela, id)
Resultado is string = ""
Resultado = "<"+ Tabela +" id="+Charact(34)+ id +Charact(34)+">"
RESULT(Resultado) |
| |
| |
| | | |
|
| | |
| |
Registered member 3,655 messages Popularité : +175 (223 votes) |
|
Posted on December, 19 2014 - 1:31 PM |
Procedure ws_xml_registro_corpo(Campo, Valor)
Resultado is string = ""
Resultado = "<"+ Campo +">" + NoSpace(Valor) + "</"+ Campo +">"
RESULT(Resultado) |
| |
| |
| | | |
|
| | |
| |
Registered member 3,655 messages Popularité : +175 (223 votes) |
|
Posted on December, 19 2014 - 1:31 PM |
Procedure ws_xml_registro_final(Tabela)
Resultado is string = ""
Resultado = "</"+ Tabela +">"
RESULT(Resultado) |
| |
| |
| | | |
|
| | |
| |
Registered member 3,655 messages Popularité : +175 (223 votes) |
|
Posted on December, 19 2014 - 1:31 PM |
Procedure ws_zero_registros(Tabela)
Resultado is string = ""
Resultado += "<"+ Tabela +" id="+Charact(34)+0+Charact(34)+">" Resultado += "<Erro>Registro(s) nao encontrado(s)</Erro>" Resultado += "</"+ Tabela +">"
RESULT(Resultado) |
| |
| |
| | | |
|
| | |
| |
Registered member 3,655 messages Popularité : +175 (223 votes) |
|
Posted on December, 19 2014 - 1:32 PM |
Procedure ws_mobile_mot_cancel(Token, Telefone_Imei, Acao, Data_hora_ultima_alteracao)
X is int = 0 Resultado is string = "" TokenOk is boolean = False Metodo is string = "ws_mobile_mot_cancel" Tabela is string = "ACT297_MOTIVO_CANCELAMENTO"
IF Token <> "" THEN
OkConn is boolean = False
OkConn = HConnectionOpen(ConnNativa)
IF OkConn = False THEN
Resultado = ws_erro_conexao(Tabela)
ELSE
TokenOk = ws_token(Token,Telefone_Imei,Acao,Metodo)
IF TokenOk = False THEN
Resultado = ws_erro_token(Tabela)
END
IF TokenOk = True AND Upper(Acao) = "SELECT" AND Data_hora_ultima_alteracao = " " THEN
Resultado += "<Xml><Retorno>"
FOR EACH ACT297_MOTIVO_CANCELAMENTO
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
IF X = 0 THEN Resultado = ws_zero_registros(Tabela) END
Resultado += "<TOTAL>"+X+"</TOTAL>" Resultado += "</Retorno></Xml>"
ELSE IF TokenOk = True AND Upper(Acao) = "SELECT" AND Data_hora_ultima_alteracao <> "" THEN
Resultado += "<Xml><Retorno>"
FOR EACH ACT297_MOTIVO_CANCELAMENTO
IF ACT297_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
IF X = 0 THEN 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) |
| |
| |
| | | |
|
| | |
| |
Registered member 3,655 messages Popularité : +175 (223 votes) |
|
Posted on December, 19 2014 - 1:32 PM |
Procedure ws_verifica_conexao()
x is int = 0
Resultado is string= ""
OkConn is boolean = False
OkConn = HOpenConnection(ConnNativa)
Resultado += "<AbriuConnexao> " + OkConn + " </AbriuConnexao>"
IF OkConn = True Resultado += ws_conexao_sucesso("Tabelas") ELSE Resultado += ws_erro_conexao("Tabelas") END
OkConn = HCloseConnection(ConnNativa)
Resultado += "<FechouConnexao>" + OkConn + "</FechouConnexao>"
RESULT(Resultado) |
| |
| |
| | | |
|
| | |
| |
Registered member 3,655 messages Popularité : +175 (223 votes) |
|
Posted on December, 19 2014 - 1:33 PM |
| |
| |
| | | |
|
| | |
| |
Registered member 3,655 messages Popularité : +175 (223 votes) |
|
Posted on December, 22 2014 - 2:57 PM |
Exemple de Procedure Webservice
Procedure ws_convenio_corridaautorizafatura(Token, Telefone_Imei, Acao, cod_client_conven, cod_centro_custo, Ano)
ok is boolean X is int = 0 Resultado is string = "" TokenOk is boolean = False Metodo is string = "ws_convenio_corridaautorizafatura" Tabela is string = "ACT263_CORRIDA_AUTORIZA_FATURA"
IF Token <> "" THEN
OkConn is boolean = False
OkConn = HConnectionOpen(ConnNativa)
IF OkConn = False THEN
Resultado += "<Xml><Retorno>" Resultado = ws_conexao_falha(Tabela) Resultado += "</Retorno></Xml>"
ELSE
TokenOk = ws_token(Token,Telefone_Imei,Acao,Metodo)
IF TokenOk = False THEN
Resultado = ws_erro_token(Tabela)
END
IF TokenOk = True AND Upper(Acao) = "SELECT" AND cod_client_conven <> "" AND cod_centro_custo <> "" THEN
Resultado += "<Xml><Retorno>"
ok = HExecuteQuery(QRY_ACT263_CORRIDA_AUTORIZA_FATURA,hQueryDefault+hWithFilter,Ano,cod_client_conven,cod_centro_custo)
FOR EACH QRY_ACT263_CORRIDA_AUTORIZA_FATURA
IF NoSpace(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
IF X = 0 THEN 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) |
| |
| |
| | | |
|
| | |
| |
Registered member 3,655 messages Popularité : +175 (223 votes) |
|
Posted on December, 22 2014 - 2:59 PM |
| |
| |
| | | |
|
| | |
| |
Registered member 3,655 messages Popularité : +175 (223 votes) |
|
Posted on December, 22 2014 - 2:59 PM |
SELECT ACT263_CORRIDA_AUTORIZA_FATURA.cod_client_conven AS cod_client_conven, ACT263_CORRIDA_AUTORIZA_FATURA.cod_centro_custo AS cod_centro_custo, ACT263_CORRIDA_AUTORIZA_FATURA.num_ano_corrid AS num_ano_corrid, ACT263_CORRIDA_AUTORIZA_FATURA.num_corrid AS num_corrid, ACT263_CORRIDA_AUTORIZA_FATURA.cod_lograd_pesqui_desemb AS cod_lograd_pesqui_desemb, ACT263_CORRIDA_AUTORIZA_FATURA.nom_lograd_local_desemb AS nom_lograd_local_desemb, ACT263_CORRIDA_AUTORIZA_FATURA.num_local_desemb AS num_local_desemb, ACT263_CORRIDA_AUTORIZA_FATURA.des_observ_local_refere_desemb AS des_observ_local_refere_desemb, ACT263_CORRIDA_AUTORIZA_FATURA.cod_embarq AS cod_embarq, ACT263_CORRIDA_AUTORIZA_FATURA.cod_libera_pagame_eletro AS cod_libera_pagame_eletro, ACT263_CORRIDA_AUTORIZA_FATURA.cod_pagame_eletro_autori AS cod_pagame_eletro_autori, ACT263_CORRIDA_AUTORIZA_FATURA.ide_corrid_tercei AS ide_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} ) |
| |
| |
| | | |
|
| | |
| |
Registered member 3,655 messages Popularité : +175 (223 votes) |
|
Posted on December, 22 2014 - 3:02 PM |
| |
| |
| | | |
|
| | |
| |
Registered member 3,655 messages Popularité : +175 (223 votes) |
|
Posted on December, 24 2014 - 5:55 PM |
| |
| |
| | | |
|
| | |
| |
Registered member 1 message Popularité : +1 (1 vote) |
|
Posted on December, 28 2014 - 5:27 AM |
Merci beaucoup pour ces infos. |
| |
| |
| | | |
|
| | |
| |
Registered member 3,655 messages Popularité : +175 (223 votes) |
|
Posted on January, 07 2015 - 2:22 PM |
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] |
| |
| |
| | | |
|
| | |
| |
Registered member 3,655 messages Popularité : +175 (223 votes) |
|
Posted on January, 07 2015 - 2:22 PM |
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] |
| |
| |
| | | |
|
| | |
| |
Registered member 3,655 messages Popularité : +175 (223 votes) |
|
Posted on January, 07 2015 - 4:46 PM |
USE [producao] GO
SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON 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, @XXX02 int, @num_ano_corrid2int, @num_corrid2 int, @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 (
UPDATE numeracao SET num_ultima_numera = ( ( SELECT num_ultima_numera FROM NUMERACAO WHERE ide_numera = 'ACT263_CORRIDA' AND cod_orgao = '0' AND num_ano_refere = @AnoAtual ) + 1) WHERE ide_numera = 'ACT263_CORRIDA' AND cod_orgao = '0' AND num_ano_refere = @AnoAtual;
IF @@ERROR <> 0 @xxx01 = 1 @@ERROR = 0 END
INSERT INTO act263_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
INSERT INTO ACT297_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 = 1 AND @xxx02 = 1 AND @xxx03 = 1 RETURN 0; ELSE RETURN 1; END
END ); GO |
| |
| |
| | | |
|
| | |
| |
Registered member 3,655 messages Popularité : +175 (223 votes) |
|
Posted on January, 07 2015 - 8:11 PM |
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, @XXX02 int, @num_ano_corrid2int, @num_corrid2 int, @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
UPDATE numeracao SET num_ultima_numera = ( SELECT num_ultima_numera FROM NUMERACAO WHERE ide_numera = 'ACT263_CORRIDA' AND cod_orgao = '0' AND num_ano_refere = @AnoAtual ) + 1 WHERE ide_numera = 'ACT263_CORRIDA' AND cod_orgao = '0' AND num_ano_refere = @AnoAtual;
INSERT INTO act263_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 );
INSERT INTO ACT297_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 |
| |
| |
| | | |
|
| | |
| |
Registered member 3,655 messages Popularité : +175 (223 votes) |
|
Posted on January, 07 2015 - 8:13 PM |
Para usar só usar o comando:
ok is boolean = HExecuteProcedure(ConnNativa,NG0001_Procedure_IncluirChamadaTaxi, N... IF ok = True xml True ELSE xml False END |
| |
| |
| | | |
|
| | |
| |
Registered member 3,655 messages Popularité : +175 (223 votes) |
|
Posted on May, 20 2016 - 7:48 PM |
Muito importante
arr_Resultados is array of string
gsValorMemorizado is string = 1
DeclareWebserviceContext(gsValorMemorizado)
DeclareWebserviceContext(arr_Resultados)
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 9949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.com.br/ |
| |
| |
| | | |
|
| | |
| |
Registered member 3,655 messages Popularité : +175 (223 votes) |
|
Posted on May, 20 2016 - 7:53 PM |
Exemplo
Procedure ws_mobile_foto(Token, Telefone_Imei, Acao, num_matricula)
X is int = 0
Resultado is string = "" sErro is string = "" arrResultado is array of string ArrayDeleteAll(arrResultado)
TokenOk is boolean = False Metodo is string = "ws_mobile_foto" No_Xml is string = "NoXml" Tabela is string = "foto_"
IF Token <> "" THEN OkConn is boolean = False OkConn = HConnectionOpen(ConnNativa) IF OkConn = False THEN Resultado = ws_conexao_falha(No_Xml) ELSE TokenOk = ws_token(Token,Telefone_Imei,Acao,Metodo) IF TokenOk = False THEN Resultado = ws_erro_token(No_Xml) Msg is string = Metodo +";"+ Resultado ws_a_log(Token +" "+ Tabela,"MOB",Msg) ELSE Comando is string = Metodo +";"+ Acao +";"+ num_matricula ws_a_log(Token +" "+ Tabela,"MOB",Comando) END IF TokenOk = True AND Upper(Acao) = "SELECT" AND num_matricula <> "" THEN ok is boolean = HExecuteQuery(QRY_Select_Foto,hQueryDefault,num_matricula) IF ok = True THEN Resultado = "<Xml><Retorno>" cod_motorista is string = "" nome_completo is string = "" foto_ is string = "" FOR EACH QRY_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) IF X = 0 THEN Resultado = ws_zero_registros(No_Xml) END Resultado += "<TOTAL>"+X+"</TOTAL>" Resultado += "</Retorno></Xml>" ELSE Resultado = ws_erro_acesso_tabela(No_Xml) END ELSE Resultado = ws_parametros_invalidos(" TOKEN = "+ Token +" IMEI = "+ Telefone_Imei) END END IF Upper(Acao) <> "SELECT" THEN Resultado += ws_xml_registro_comeco(No_Xml, X) Resultado += "<ERRO>ACAO INVALIDA</ERRO>" Resultado += ws_xml_registro_final(No_Xml) Erro is string = 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/ |
| |
| |
| | | |
|
| | |
| |
Registered member 3,655 messages Popularité : +175 (223 votes) |
|
Posted on May, 20 2016 - 7:59 PM |
Procedure MeuIpFixo()
nInicioBloco, nFinalBloco is int = 0
IP is string = ""
Url is string = "http://www.meuip.com.br/"
HTTPTimeOut(1000)
HTTPRequest(Url)
bufRetorno is Buffer = HTTPGetResult(httpResult)
bufRetorno = Replace(bufRetorno,Charact(34),"")
bufRetorno = Replace(bufRetorno,"'","")
nInicioBloco = PositionOccurrence(bufRetorno,"document.getElementById(div_ip).innerHTML = ",firstRank,FromBeginning) + Length("document.getElementById(div_ip).innerHTML = ")
IF nInicioBloco > 0 THEN bufRetorno = Middle(bufRetorno,nInicioBloco,1000) IF nInicioBloco > 0 bufRetorno = Middle(bufRetorno,1,20) END ELSE nInicioBloco = PositionOccurrence(bufRetorno,"<span class=style1> detectando (IPv4 ou IPv6)...</span>-->",firstRank,FromBeginning) + Length("<span class=style1> detectando (IPv4 ou IPv6)...</span>-->") IF nInicioBloco > 0 bufRetorno = Middle(bufRetorno,nInicioBloco,20) END END
IF bufRetorno <> "" nFinalBloco = PositionOccurrence(bufRetorno,",",firstRank,FromBeginning) - 1 IF nFinalBloco > 0 THEN 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/ |
| |
| |
| | | |
|
| | |
| |
Registered member 3,655 messages Popularité : +175 (223 votes) |
|
Posted on May, 20 2016 - 8:00 PM |
Procedure NoEnter(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/ |
| |
| |
| | | |
|
| | |
| |
Registered member 3,655 messages Popularité : +175 (223 votes) |
|
Posted on May, 20 2016 - 8:02 PM |
Procedure ReplaceNull(Texto, Busca, Troca)
IF Texto <> "" AND Busca <> "" IF Troca <> "" AND PositionOccurrence(Texto,"'"+ Busca +"'",firstRank,FromBeginning) > 0 Texto = Replace(Texto, "'"+ Busca +"'", "'"+ Troca +"'") ELSE IF Troca <> "" AND PositionOccurrence(Texto, Busca, firstRank,FromBeginning) > 0 Texto = Replace(Texto, Busca, Troca) ELSE IF Troca = "" AND PositionOccurrence(Texto,"'"+ Busca +"'",firstRank,FromBeginning) > 0 Texto = Replace(Texto, "'"+ Busca +"'", "null") ELSE IF Troca = "" AND PositionOccurrence(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/ |
| |
| |
| | | |
|
| | |
| |
Registered member 3,655 messages Popularité : +175 (223 votes) |
|
Posted on May, 20 2016 - 8:03 PM |
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 9949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.com.br/ |
| |
| |
| | | |
|
| | |
| |
Registered member 3,655 messages Popularité : +175 (223 votes) |
|
Posted on May, 20 2016 - 8:05 PM |
Procedure ws_a_log(Token, Aplicativo, Metodo)
Ip is string = WebserviceClientIPAddress() IF Ip = "" 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 is string = ""
ok is boolean = False
IF Token <> "" Webservice_Log.DataHora = DateSys() + TimeSys() Webservice_Log.Token = Token Webservice_Log.Aplicativo = Aplicativo Webservice_Log.Metodo = Metodo ok = HAdd(Webservice_Log) IF ok = False THEN 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/ |
| |
| |
| | | |
|
| | |
| |
Registered member 3,655 messages Popularité : +175 (223 votes) |
|
Posted on June, 04 2016 - 3:33 PM |
| |
| |
| | | |
|
| | |
| |
Registered member 3,655 messages Popularité : +175 (223 votes) |
|
Posted on August, 09 2016 - 3:34 PM |
REDUNDÂNCIA DE WEBSERVICE NO CASO DE ROMPIMENTO DE FIBRA ÓTICA
IF Ip01 = True
XML_Retorno is string = ""
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 is string = ""
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 modified, August, 09 2016 - 3:48 PM |
| |
| |
| | | |
|
| | |
| |
Registered member 3,655 messages Popularité : +175 (223 votes) |
|
Posted on January, 12 2017 - 1:31 AM |
ok is boolean
HCreationIfNotFound("*")
HModifyStructure("*",hmsBackgroundTask)
CargaInicial()
DEFINA O BANCO DE DADOS
CREATE TABLE [t0001_config] ( [t0001_id] NUMERIC(19,0) IDENTITY PRIMARY KEY , [t0001_config] VARCHAR(50) UNIQUE , [t0001_valor] TEXT );
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 NULL Default 0, [t0002_valorpromocaoeuro] MONEY NOT NULL Default 0, [t0002_siteorigem] VARCHAR(3) , [t0002_valordolar] MONEY Default 0, [t0002_valorpromocaodolar] MONEY Default 0, [t0002_datainicialvalidadepromocao] DATETIME , [t0002_datafinalvalidadepromocao] DATETIME , [t0002_ativo] BIT Default 0); CREATE INDEX [WDIDX_t0002_pricetag_t0002_produto] ON [t0002_pricetag] ([t0002_produto]);
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]);
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] INTEGER Default 0, [t0004_bairro] VARCHAR(50) , [t0004_complemento] VARCHAR(50) , [t0004_cidade] VARCHAR(50) , [t0004_estado] VARCHAR(50) , [t0004_cep] INTEGER Default 0, [t0004_cxpostal] VARCHAR(20) , [t0004_obs] TEXT , [t0004_pais] VARCHAR(30) );
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] INTEGER Default 0, [t0005_bairro] VARCHAR(50) , [t0005_complemento] VARCHAR(50) , [t0005_cidade] VARCHAR(50) , [t0005_estado] VARCHAR(50) , [t0005_cep] INTEGER Default 0, [t0005_cxpostal] VARCHAR(20) , [t0005_obs] TEXT , [t0005_pais] VARCHAR(30) );
CRIAR QUERYS...
SELECT Count(*) AS QtdeRegistros FROM t0001_config
PROCEDURES
CREATE new PROCEDURES
ServerProcedures (PRINCIPAL)
DENTRO DELA EM CODE
arr_Resultados is array of string
gsValorMemorizado is string = 1
DeclareWebserviceContext(gsValorMemorizado)
DeclareWebserviceContext(arr_Resultados)
Procedure ws_customer_insert(token, nome, telefone, telefone_imei, Email, site, endereco, numero, complemento, bairro, cidade, estado, pais, cep, cxpostal, obs, Criptografado is boolean)
CargaInicial()
arrResultado is array of string X is int = 0 TokenOk is int = 0 Tabela is string = "t0005_customers" Resultado is string = "" sErro is string = ""
IF token <> "" THEN OkConn is boolean = False OkConn = HConnectionOpen(ConnNativa) IF OkConn = False THEN Resultado = ws_conexao_falha(Tabela) ELSE TokenOk = ws_token(token,telefone_imei) IF TokenOk = False THEN ws_a_log("TokenErrado") ELSE ws_a_log("TokenOK") END IF TokenOk = 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) IF ok = True THEN 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 token = "" telefone_imei = "" HConnectionClose(ConnNativa) ELSE Resultado = ws_token_invalido(Tabela) END
IF Criptografado = True Resultado = Crypt(Resultado,token,compressNone,encodeBASE64) END
Add(arrResultado,Resultado)
RESULT (arrResultado)
Procedure ws_customer_select(token, telefone_imei, Criptografado is boolean)
arrResultado is array of string X is int = 0 TokenOk is int = 0 Tabela is string = "t0005_customers" Resultado is string = "" sErro is string = ""
IF token <> "" THEN OkConn is boolean = False OkConn = HConnectionOpen(ConnNativa) IF OkConn = False THEN Resultado = ws_conexao_falha(Tabela) ELSE TokenOk = ws_token(token,telefone_imei) IF TokenOk = False THEN ws_a_log("TokenErrado") ELSE ws_a_log("TokenOK") END IF TokenOk = 1 ok = HExecuteQuery(QRY_Customer_Select,hQueryDefault) IF ok = True THEN Resultado = "<Xml><Retorno>" FOR EACH QRY_Customer_Select IF HFound(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 IF X = 0 THEN Resultado = ws_zero_registros(Tabela) END Resultado += "<TOTAL>"+X+"</TOTAL>" Resultado += "</Retorno></Xml>" ELSE Resultado = ws_erro_acesso_tabela(Tabela +" "+ ErrorInfo()) END ELSE Resultado = ws_parametros_invalidos(" TOKEN = "+ token +" IMEI = "+ telefone_imei) END END HReset(QRY_Customer_Select) token = "" telefone_imei = "" HConnectionClose(ConnNativa) ELSE Resultado = ws_token_invalido(Tabela) END
IF Criptografado = True Resultado = Crypt(Resultado,token,compressNone,encodeBASE64) END
Add(arrResultado,Resultado)
RESULT (arrResultado)
Procedure ws_customer_update(token, id, nome, telefone, telefone_imei, Email, site, endereco, numero, complemento, bairro, cidade, estado, pais, cep, cxpostal, obs, Criptografado is boolean)
arrResultado is array of string X is int = 0 TokenOk is int = 0 Tabela is string = "t0005_customers" Resultado is string = "" sErro is string = ""
IF token <> "" THEN OkConn is boolean = False OkConn = HConnectionOpen(ConnNativa) IF OkConn = False THEN Resultado = ws_conexao_falha(Tabela) ELSE TokenOk = ws_token(token,telefone_imei) IF TokenOk = False THEN ws_a_log("TokenErrado") ELSE ws_a_log("TokenOK") END IF TokenOk = 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) IF ok = True THEN Resultado = "<Xml><Retorno>" ServerProceduresInternas.ws_gravou(Tabela) IF X = 0 THEN Resultado = ws_zero_registros(Tabela) END Resultado += "<TOTAL>"+X+"</TOTAL>" Resultado += "</Retorno></Xml>" ELSE Resultado = ws_erro_acesso_tabela(Tabela +" "+ ErrorInfo()) END ELSE Resultado = ws_parametros_invalidos(" TOKEN = "+ token +" IMEI = "+ telefone_imei) END END token = "" telefone_imei = "" HConnectionClose(ConnNativa) ELSE Resultado = ws_token_invalido(Tabela) END
IF Criptografado = True Resultado = Crypt(Resultado,token,compressNone,encodeBASE64) END
Add(arrResultado,Resultado)
RESULT (arrResultado)
Procedure ws_distributeur_insert(token, company, nome, telefone, telefone_imei, Email, site, endereco, numero, complemento, bairro, cidade, estado, pais, cep, cxpostal, obs, Criptografado is boolean)
CargaInicial()
arrResultado is array of string X is int = 0 TokenOk is int = 0 Tabela is string = "t0004_distributeur" Resultado is string = "" sErro is string = ""
IF token <> "" THEN OkConn is boolean = False OkConn = HConnectionOpen(ConnNativa) IF OkConn = False THEN Resultado = ws_conexao_falha(Tabela) ELSE TokenOk = ws_token(token,telefone_imei) IF TokenOk = False THEN ws_a_log("TokenErrado") ELSE ws_a_log("TokenOK") END IF TokenOk = 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) IF ok = True THEN 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 token = "" telefone_imei = "" HConnectionClose(ConnNativa) ELSE Resultado = ws_token_invalido(Tabela) END
IF Criptografado = True Resultado = Crypt(Resultado,token,compressNone,encodeBASE64) END
Add(arrResultado,Resultado)
RESULT (arrResultado)
Procedure ws_distributeur_select(token, telefone_imei, Criptografado is boolean)
arrResultado is array of string X is int = 0 TokenOk is int = 0 Tabela is string = "t0004_distributeur" Resultado is string = "" sErro is string = ""
IF token <> "" THEN OkConn is boolean = False OkConn = HConnectionOpen(ConnNativa) IF OkConn = False THEN Resultado = ws_conexao_falha(Tabela) ELSE TokenOk = ws_token(token,telefone_imei) IF TokenOk = False THEN ws_a_log("TokenErrado") ELSE ws_a_log("TokenOK") END IF TokenOk = 1 ok = HExecuteQuery(QRY_Distributeur_Select,hQueryDefault) IF ok = True THEN Resultado = "<Xml><Retorno>" FOR EACH QRY_Distributeur_Select IF HFound(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 IF X = 0 THEN Resultado = ws_zero_registros(Tabela) END Resultado += "<TOTAL>"+X+"</TOTAL>" Resultado += "</Retorno></Xml>" ELSE Resultado = ws_erro_acesso_tabela(Tabela +" "+ ErrorInfo()) END ELSE Resultado = ws_parametros_invalidos(" TOKEN = "+ token +" IMEI = "+ telefone_imei) END END HReset(QRY_Distributeur_Select) token = "" telefone_imei = "" HConnectionClose(ConnNativa) ELSE Resultado = ws_token_invalido(Tabela) END
IF Criptografado = True Resultado = Crypt(Resultado,token,compressNone,encodeBASE64) END
Add(arrResultado,Resultado)
RESULT (arrResultado)
Procedure ws_distributeur_update(token, company, nome, telefone, telefone_imei, Email, site, endereco, numero, complemento, bairro, cidade, estado, pais, cep, cxpostal, obs, Criptografado is boolean)
arrResultado is array of string X is int = 0 TokenOk is int = 0 Tabela is string = "t0004_distributeur" Resultado is string = "" sErro is string = ""
IF token <> "" THEN OkConn is boolean = False OkConn = HConnectionOpen(ConnNativa) IF OkConn = False THEN Resultado = ws_conexao_falha(Tabela) ELSE TokenOk = ws_token(token,telefone_imei) IF TokenOk = False THEN ws_a_log("TokenErrado") ELSE ws_a_log("TokenOK") END IF TokenOk = 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) IF ok = True THEN Resultado = "<Xml><Retorno>" ServerProceduresInternas.ws_gravou(Tabela) IF X = 0 THEN Resultado = ws_zero_registros(Tabela) END Resultado += "<TOTAL>"+X+"</TOTAL>" Resultado += "</Retorno></Xml>" ELSE Resultado = ws_erro_acesso_tabela(Tabela +" "+ ErrorInfo()) END ELSE Resultado = ws_parametros_invalidos(" TOKEN = "+ token +" IMEI = "+ telefone_imei) END END token = "" telefone_imei = "" HConnectionClose(ConnNativa) ELSE Resultado = ws_token_invalido(Tabela) END
IF Criptografado = True Resultado = Crypt(Resultado,token,compressNone,encodeBASE64) END
Add(arrResultado,Resultado)
RESULT (arrResultado)
Procedure ws_log_select(token, telefone_imei, Criptografado is boolean)
arrResultado is array of string
X is int = 0 TokenOk is int = 0 Tabela is string = "t0004_distri" Resultado is string = "" sErro is string = ""
IF token <> "" THEN OkConn is boolean = False OkConn = HConnectionOpen(ConnNativa) IF OkConn = False THEN Resultado = ws_conexao_falha(Tabela) ELSE TokenOk = ws_token(token,telefone_imei) IF TokenOk = False THEN ws_a_log("TokenErrado") ELSE ws_a_log("TokenOK") END IF TokenOk = 1 ok = HExecuteQuery(QRY_Distributeur_Select,hQueryDefault) IF ok = True THEN Resultado = "<Xml><Retorno>" FOR EACH QRY_Distributeur_Select IF HFound(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 IF X = 0 THEN Resultado = ws_zero_registros(Tabela) END Resultado += "<TOTAL>"+X+"</TOTAL>" Resultado += "</Retorno></Xml>" ELSE Resultado = ws_erro_acesso_tabela(Tabela +" "+ ErrorInfo()) END ELSE Resultado = ws_parametros_invalidos(" TOKEN = "+ token +" IMEI = "+ telefone_imei) END END HReset(QRY_Distributeur_Select) token = "" telefone_imei = "" HConnectionClose(ConnNativa) ELSE Resultado = ws_token_invalido(Tabela) END
IF Criptografado = True Resultado = Crypt(Resultado,token,compressNone,encodeBASE64) END
Add(arrResultado,Resultado)
RESULT (arrResultado)
Procedure ws_pricetag_insert(token, telefone_imei, superuser, password, refproduto, produto, valoreuro, valorpromocaoeuro, valordolar, valorpromocaodolar, datainicialvalidadepromocao, datafinalvalidadepromocao, siteorigem, ativo, Criptografado is boolean)
arrResultado is array of string X is int = 0 TokenOk, SuperuserOk is int = 0 Tabela is string = "t0002_pricetag" Resultado is string = "" sErro is string = ""
IF token <> "" THEN OkConn is boolean = False OkConn = HConnectionOpen(ConnNativa) CargaInicial() IF OkConn = False THEN Resultado = ws_conexao_falha(Tabela) ELSE TokenOk = ws_token(token,telefone_imei) IF TokenOk = 0 THEN ws_a_log("TokenErrado") ELSE ws_a_log("TokenOK") END SuperuserOk = ws_superuser(superuser, password) IF SuperuserOk = 0 THEN ws_a_log("SuperuserErrado") ELSE
ws_a_log("SuperuserOk") END IF TokenOk = 1 AND SuperuserOk = 1 THEN OkConn = HConnectionOpen(ConnNativa) IF Length(datainicialvalidadepromocao) < 8 THEN datainicialvalidadepromocao = DateSys() END IF Length(datafinalvalidadepromocao) < 8 THEN datafinalvalidadepromocao = DateSys() END ok = HExecuteQuery(QRY_Pricetag_Insert,hQueryDefault+hCheckDuplicates+hCheckIntegrity,refproduto,produto,valoreuro,valorpromocaoeuro,valordolar,valorpromocaodolar,datainicialvalidadepromocao,datafinalvalidadepromocao,siteorigem,ativo) IF ok = True THEN 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 token = "" telefone_imei = "" HConnectionClose(ConnNativa) ELSE Resultado = ws_token_invalido(Tabela) END
IF Criptografado = True Resultado = Crypt(Resultado,token,compressNone,encodeBASE64) END
Add(arrResultado,Resultado)
RESULT (arrResultado)
Procedure ws_pricetag_select(token, telefone_imei, Criptografado is boolean)
arrResultado is array of string X is int = 0 TokenOk is int = 0 Tabela is string = "t0002_pricetag" Resultado is string = "" sErro is string = ""
IF token <> "" THEN OkConn is boolean = False OkConn = HConnectionOpen(ConnNativa) IF OkConn = False THEN Resultado = ws_conexao_falha(Tabela) ELSE TokenOk = ws_token(token,telefone_imei) IF TokenOk = False THEN ws_a_log("TokenErrado") ELSE ws_a_log("TokenOK") END IF TokenOk = 1 ok = HExecuteQuery(QRY_Pricetag_Select,hQueryDefault) IF ok = True THEN Resultado = "<Xml><Retorno>" FOR EACH QRY_Pricetag_Select IF HFound(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 IF X = 0 THEN Resultado = ws_zero_registros(Tabela) END Resultado += "<TOTAL>"+X+"</TOTAL>" Resultado += "</Retorno></Xml>" ELSE Resultado = ws_erro_acesso_tabela(Tabela +" "+ ErrorInfo()) END ELSE Resultado = ws_parametros_invalidos(" TOKEN = "+ token +" IMEI = "+ telefone_imei) END END HReset(QRY_Pricetag_Select) token = "" telefone_imei = "" HConnectionClose(ConnNativa) ELSE Resultado = ws_token_invalido(Tabela) END
IF Criptografado = True Resultado = Crypt(Resultado,token,compressNone,encodeBASE64) END
Add(arrResultado,Resultado)
RESULT (arrResultado)
Procedure ws_pricetag_update(token, telefone_imei, superuser, password, refproduto, produto, valoreuro, valorpromocaoeuro, valordolar, valorpromocaodolar, datainicialvalidadepromocao, datafinalvalidadepromocao, siteorigem, ativo, Criptografado is boolean)
arrResultado is array of string X is int = 0 TokenOk, SuperuserOk is int = 0 Tabela is string = "t0002_pricetag" Resultado is string = "" sErro is string = ""
IF token <> "" THEN OkConn is boolean = False OkConn = HConnectionOpen(ConnNativa) IF OkConn = False THEN Resultado = ws_conexao_falha(Tabela) ELSE TokenOk = ws_token(token,telefone_imei) IF TokenOk = 0 THEN ws_a_log("TokenErrado") ELSE ws_a_log("TokenOK") END SuperuserOk = ws_superuser(superuser, password) IF SuperuserOk = 0 THEN ws_a_log("SuperuserErrado") ELSE ws_a_log("SuperuserOk") END IF TokenOk = 1 AND SuperuserOk = 1 ok = HExecuteQuery(QRY_Pricetag_Update,hQueryDefault+hCheckDuplicates+hCheckIntegrity,produto,valoreuro,valorpromocaoeuro,valordolar,valorpromocaodolar,datainicialvalidadepromocao,datafinalvalidadepromocao,siteorigem,refproduto,ativo) IF ok = True THEN 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 token = "" telefone_imei = "" HConnectionClose(ConnNativa) ELSE Resultado = ws_token_invalido(Tabela) END
IF Criptografado = True Resultado = Crypt(Resultado,token,compressNone,encodeBASE64) END
Add(arrResultado,Resultado)
RESULT (arrResultado)
Procedure CargaInicial()
ok = HConnectionOpen(ConnNativa)
IF ok = False ok = HExecuteQuery(QRY_Count_Config,hQueryDefault) IF ok = True THEN FOR EACH QRY_Count_Config IF HFound(QRY_Count_Config) = True THEN IF QRY_Count_Config.QtdeRegistros = 0 THEN ws_cargainicialconfig(0) END END END END ok = HExecuteQuery(QRY_Count_Distributeurs,hQueryDefault) IF ok = True THEN FOR EACH QRY_Count_Distributeurs IF HFound(QRY_Count_Distributeurs) = True THEN IF QRY_Count_Distributeurs.QtdeRegistros = 0 THEN ws_cargainicialdistri(0) END END END END
END
Procedure MeuIpFixo()
nInicioBloco, nFinalBloco is int = 0
IP is string = ""
Url is string = "http://www.meuip.com.br/"
HTTPTimeOut(1000)
HTTPRequest(Url)
bufRetorno is Buffer = HTTPGetResult(httpResult)
bufRetorno = Replace(bufRetorno,Charact(34),"")
bufRetorno = Replace(bufRetorno,"'","")
nInicioBloco = PositionOccurrence(bufRetorno,"document.getElementById(div_ip).innerHTML = ",firstRank,FromBeginning) + Length("document.getElementById(div_ip).innerHTML = ")
IF nInicioBloco > 0 THEN bufRetorno = Middle(bufRetorno,nInicioBloco,1000) IF nInicioBloco > 0 bufRetorno = Middle(bufRetorno,1,20) END ELSE nInicioBloco = PositionOccurrence(bufRetorno,"<span class=style1> detectando (IPv4 ou IPv6)...</span>-->",firstRank,FromBeginning) + Length("<span class=style1> detectando (IPv4 ou IPv6)...</span>-->") IF nInicioBloco > 0 bufRetorno = Middle(bufRetorno,nInicioBloco,20) END END
IF bufRetorno <> "" nFinalBloco = PositionOccurrence(bufRetorno,",",firstRank,FromBeginning) - 1 IF nFinalBloco > 0 THEN bufRetorno = Middle(bufRetorno,1,nFinalBloco) END END
bufRetorno = Replace(bufRetorno,"=","")
bufRetorno = NoSpace(bufRetorno)
IP = NoSpace(bufRetorno)
RESULT(IP)
Procedure NoEnter(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)
Procedure ws_a_log(Acao)
Ip is string IF Ip = "" THEN Ip = MeuIpFixo() END
OkConn is boolean = False
OkConn = HConnectionOpen(ConnNativa)
ok = False
LogResult is string DataHora is string = DateSys() + TimeSys()
ok = HExecuteQuery(QRY_Insert_Log,hQueryDefault,DataHora,Ip,Acao) IF ok = False THEN LogResult = "Erro ao gravar o log: "+ HErrorInfo() + ErrorInfo() ELSE LogResult = 1 END RESULT (LogResult)
Procedure ws_cargainicialconfig(Registros)
ok = HConnectionOpen(ConnNativa)
IF Registros = 0 AND ok = 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
Procedure ws_cargainicialdistri(Registros)
OkConn is boolean = False
OkConn = HConnectionOpen(ConnNativa)
IF Registros = 0 AND OkConn = True THEN 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
Procedure ws_conexao_falha(Tabela)
Servidor is string = ConnNativa..Server
OkConn is boolean = False
OkConn = HConnectionOpen(ConnNativa)
Resultado is string = "" 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 is string = "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)
Procedure ws_conexao_sucesso(Tabela)
Servidor is string = ConnNativa..Server
OkConn is boolean = False
OkConn = HConnectionOpen(ConnNativa)
Resultado is string = "" 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)
Procedure ws_deletou(Tabela)
Resultado is string = "" 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)
Procedure ws_envia_email(Token, TelefoneImei, Acao, Emails, Assunto, Cabecalho, Mensagem)
TokenOk is boolean Resultado is string = "" sErro is string = "" arrResultado is array of string ArrayDeleteAll(arrResultado)
OkConn is boolean = False
OkConn = HConnectionOpen(ConnNativa)
IF OkConn = False THEN Resultado = ws_conexao_falha("Banco de Dados Off-line") ELSE IF OkConn = True AND Upper(Acao) = "SEND" TokenOk = ws_token(Token,TelefoneImei) IF TokenOk = False THEN Comando is string = "ws_envia_email;"+ Acao +";"+ Emails +";"+ Assunto +";"+ Cabecalho +";"+ Mensagem ws_a_log(Comando) ELSE Comando is string = "ws_envia_email;"+ Acao +";"+ Emails +";"+ Assunto +";"+ Cabecalho +";"+ Mensagem ws_a_log(Comando) QyrEnviaEmail is Data Source SqlExecuta is string = [ 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) IF ok = True THEN Resultado = "<Xml><Retorno>" Resultado += "<NoXml>EMAIL ENVIADO COM SUCESSO!</NoXml>" Resultado += "</Retorno></Xml>" ws_a_log("EMAIL ENVIADO COM SUCESSO!") ELSE erro is string = 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)
Procedure ws_erro_acesso_tabela(Tabela)
Resultado is string = "" 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)
Procedure ws_erro_token(Tabela)
Resultado is string = ""
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)
Procedure ws_gravou(Tabela)
Resultado is string = "" 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)
Procedure ws_msg_retorno(Mensagem)
Resultado is string = "" 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)
Procedure ws_nao_deletou(Tabela)
Erro is string = HErrorInfo() +" - "+ ErrorInfo() Erro = Replace(Erro,Charact(34),"") Erro = Replace(Erro,Charact(39),"") Erro = NoAccent(Erro)
Resultado is string = "" 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)
Procedure ws_nao_gravou(Tabela,Erro)
Resultado is string = "" 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)
Procedure ws_parametros_invalidos(Tabela)
Resultado is string = ""
erro is string = 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)
Procedure ws_retorno(Tabela, NomeCampo, Retorno)
Tabela = Tabela
Resultado is string = ""
IF Retorno <> "" 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)
Procedure ws_superuser(superuser, password)
resultado, resultado01, resultado02 is int = 0
IF superuser <> "" AND password <> "" THEN HReadSeekFirst(t0001_config,t0001_config,"SUPERUSER",hKeepFilter) IF Upper(t0001_config.t0001_valor) = Upper(superuser) THEN resultado01 = 1 ELSE resultado01 = 0 END HReadSeekFirst(t0001_config,t0001_config,"PASSWORD",hKeepFilter) IF Upper(t0001_config.t0001_valor) = Upper(password) THEN resultado02 = 1 ELSE resultado02 = 0 END IF resultado01 = 1 AND resultado02 = 1 THEN resultado = 1 ELSE resultado = 0 END ELSE resultado = 0 END
RESULT(resultado)
Procedure ws_token(Token, TelefoneImei)
Resultado, TokenResultado, TokenTelefoneImei is string = ""
OkConn is boolean = False
OkConn = HConnectionOpen(ConnNativa)
IF Token <> "" AND TelefoneImei <> "" HReadSeekFirst(t0001_config,t0001_config,"TOKEN", hKeepFilter) FOR EACH t0001_config IF HFound(t0001_config) = True TokenResultado = t0001_config.t0001_valor END END HReadSeekFirst(t0004_distributeurs,t0004_telefoneimei,TelefoneImei,hKeepFilter) FOR EACH t0004_distributeurs IF HFound(t0004_distributeurs) = True TokenTelefoneImei = t0004_distributeurs.t0004_telefoneimei END END IF TokenResultado <> "" AND Upper(TokenResultado) = Upper(Token) AND TokenTelefoneImei <> "" THEN Resultado = 1 ELSE Resultado = 0 END ELSE Resultado = 0 END
RESULT(Resultado)
Procedure ws_token_invalido(Tabela)
Resultado is string = ""
Erro is string = 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)
Procedure ws_xml_registro_comeco(tabela,id)
tabela = tabela
Resultado is string = ""
Resultado = "<NoXml id="+Charact(34)+ NoSpace(id) +Charact(34)+">"
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(Tabela)
Tabela = Tabela
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>"
ws_a_log(Erro)
RESULT(Resultado)
RetornoXml is a ws_distributeur_selectResponse
RetornoXml = ws_distributeur_select("LORELEI","41999491800",0)
XML_Retorno is string = RetornoXml.ws_distributeur_selectResult
Info(XML_Retorno)
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 9949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.com.br/ |
| |
| |
| | | |
|
| | | | |
| | |
|