Passar campo de um formulário para o DataSet

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;

}

compartilhar
  • 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 2020
  • Quero 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 2020
  • Alterei 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
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do fluig Forum!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags datasets-customizados datasets datasetbugado ou faça a sua própria pergunta.