PDA

View Full Version : Retorno Função Java Script



Francimilson
25-Mar-2024, 07:39 AM
Bom dia a todos


Criei uma Função em Java Script onde estou fazendo uma consulta pelo VDF passando alguns parâmetros e gostaria de pegar o resultado da consulta que mostra no Console.log retornar para uma variável para que eu possa trabalhar dentro do VDF.


Botão de chamada:
Procedure OnClick
Send WebConsultaCPF of oApiBrasil sUrl sToken sAutorizacao sCPF
End_Procedure


Função Java Script:
sp.WebApiBrasil = function WebApiBrasil(sName, oParent){
sp.WebApiBrasil.base.constructor.call(this, sName, oParent);
this._sControlClass = "WebApiBrasil";
};


df.defineClass("sp.WebApiBrasil", "df.WebBaseControl",{
WebConsultaCPF : function WebConsultaCPF(sUrl, sToken, sAutorizacao, scpf) {
var xhr = new XMLHttpRequest();
var url = sUrl;
xhr.open('POST', url, true);
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.setRequestHeader('DeviceToken', sToken);
xhr.setRequestHeader('Authorization', sAutorizacao);
xhr.onreadystatechange = function () {
if (xhr.readyState === 4 && xhr.status === 200) {
console.log(xhr.responseText);
}
};
var data = JSON.stringify({"cpf": scpf});
xhr.send(data);
},


Retorno da consulta no Console.log :
{"error":false,"message":"Requisi\u00e7\u00e3o processada com sucesso","response":{"code":"000","message":"Pesquisa feita com sucesso","date":"2024-03-25","hour":"09:17:09"

Willian andreola
31-Oct-2024, 07:48 AM
Conseguiu? Caso ainda esteja tentando, tenho alguns exemplos de como pode fazer.

Francimilson
8-Nov-2024, 08:01 AM
Caso possa disponibilizar ficarei grato e caso queira enviar por e-mail.

francimilson@hotmail.com

Desde já agradecido.

Willian andreola
12-Nov-2024, 06:59 AM
Tenho este exemplo que uso para API do TEF.


WebFazVendaCrédito: function WebFazVendaCrédito(sValor, sParcelas, sTipoFinanciamento) {
// Prepara o corpo da requisição com os parâmetros
const body = JSON.stringify({
valor: sValor.trim(),
parcelas: sParcelas.trim(),
financiamento: sTipoFinanciamento. aparar()
});


// Envia uma requisição à API de venda de crédito
fetch('http://localhost:2001/tef/v1/venda/credito', {
method: 'POST',
headers: {
'Content-Type': 'application/json ',
},
corpo: corpo
})
.then(response => {
return response.json().then(tResultadoInterno => {


if (response.status === 200) {
// Faz a análise do campo 'resultado', que é uma string JSON
let tefResultado = JSON.parse(tResultadoInterno.resultado'


var resultado = JSON.stringify
(tResultadoInterno("pVendaCreditoTef", [resultado,tefResultado.tef) ; .resultadoTransacao]);


else {
var resultadoErro = JSON.stringify(tResultadoInterno);
this.serverAction("pVendaCréditoTef", [resultadoErro,"99"]);
}
});
})
.catch(error => {
var erroMsg = `Erro ao chamar a API TEF: ${error.message}`;
this.serverAction("pVendaCreditoTef", [erroMsg,"99"]);
});
},





observe que após a chamada da api tenho o this.serverAction("pVendaCreditoTef", [resultado,tefResultado.tef.resultadoTransacao]);
esta linha chama um procedimento do dataflex e passa o resultado da api como parâmetro, então trata o resultado dentro do VDF.
Dentro do dataflex você terá que declarar um procedimento como { MethodType=Event } então ela será um evento chamado pelo script .js.
Exemplo do procedimento:



{ MethodType=Event }
Procedure pVendaCreditoTef String sRetornoApi String sResultadoTransacao
Integer iRow iStat iSize
Boolean bRet bOk
Handle hoJson hResponse
String sJson sError sResult sSerie sSql sSeq sCNPJ sTexto
Tef_tResultadoInterno tResultadoInterno