Tenho um Form com um campo zoom que traz as minha empresas do Protheus. EU quero passar um tenantid com os campos selecionados no formulário.
headers: { 'tenantid': '01,01' // funciona com valores fixos
headers: { 'tenantid': String(hAPI.getCardValue('empresa_cod') + ',' + hAPI.getCardValue('filial_cod'))
Sei que o hAPI.getCardValue nao tem no datasets, alguem poderia me ajudar.
function createDataset(fields, constraints, sortFields) { var dataset = DatasetBuilder.newDataset();
dataset.addColumn('Codigo'); dataset.addColumn('Descricao');
if (constraints!=null && constraints.length) { log.info("EXISTE CONSTRAINTS---->"); log.info("teste "+ constraints.length); for (var i = 0; i < constraints.length; i++) { log.info("CONSTRAINTS[I].FIELDNAME---> " + constraints[i].fieldName); if (constraints[i].fieldName == "empresa") { opcao = constraints[i].initialValue; log.info("OPCAO-----> " + opcao); } } }
try {
var clientService = fluigAPI.getAuthorizeClientService();
var data = { companyId : '0'+getValue("WKCompany") + '', serviceCode : 'meuserviço', endpoint: '/rest/minha_api', method: 'get', timeoutService: '100', headers: { // Passa empresa e Filial // 'tenantid': String(hAPI.getCardValue('empresa_cod') + ',' + hAPI.getCardValue('filial_cod')) //'tenantid': String(document.getElementById("empresa_cod").value + ',' + document.getElementById("filial_cod").value) 'tenantid': '02,01'
} }
var vo = clientService.invoke(JSON.stringify(data)); //var result = parser.parse(vo.getResult()).getAsJsonObject();
if (vo.getResult() == null || vo.getResult().isEmpty()) { throw new java.lang.Exception("Retorno está vazio"); } else {
var json = JSON.parse(vo.getResult()); var stringify = JSON.stringify(json); var resultado = JSON.parse(stringify);
for (var i = 0; i < resultado.length; i++) {
//dataset.addRow(new Array(stringify)); dataset.addRow([json[i].CCOD, json[i].CDESC]);
}
return dataset; } } catch (error) { dataset.addRow(['erro', error.message]); log.info(" DATASET "+vo.getResult()); }
return dataset;
}
Não entendi em qual momento está tentando efetuar essa chamada. Se é em um evento de processo, se é em algum evento específico de formulário, se é algum dataset precisando pegar informações. Postei uma resposta e caso não seja o que precisa você pode detalhar um pouco mais a sua questão.
— Bruno Gasparetto 28 de Sep de 2020Quero pegar os campos do formulário e passar para ele consultar no meu Dataset. O dataset me retornar os campos em um zomm. Tenho 20 empresas no Protheus e preciso consultar os itens na tabela CTT, na minha API do lado do protheus estou mantando a Query com os parâmetros do tenanid. se nao for assim terei que pegar tudo de todas e vai demora mto para mostrar no fluig. Sem falar que preciso fazer isso com as tabelas SB1(produtos), SA1 e SA2, (Clientes e fornecedor) SRA (Funcionários) dentre outras.
— Brunogoli 28 de Sep de 2020Alterei a resposta, pois a sua dúvida era referente a fazer a consulta dentro de um dataset. Quando postar código use a marcação de código para não ficar tudo bagunçado como na sua pergunta ou cole o código no Gist ou outra ferramenta externa. Facilita bastante na hora de lermos.
— Bruno Gasparetto 30 de Sep de 2020