Parâmetros em requisição POST para API REST

Bom dia, pessoal.

Em um evento de formulário eu crio um JSON dinâmico extraindo dados de uma tabela pai x filho para que no final do processo eu realize a integração com um serviço REST previamente cadastrado no Fluig.

Preciso passar esse JSON para a requisição abaixo na área "params", alguém tem alguma ideia de como realizar essa operação?

Pensei em duas soluções e não obtive sucesso:

  • Passar o JSON via constraint e popular a área params: não consegui preencher a área com os valores corretos.

    • Fazer a gambiarra de popular um campo com o JSON e depois recuperar o conteúdo via hAPI ou algo do tipo: no evento inputFields populei um campo oculto e tentei chamar como SC: hAPI.getCardValue("json") no evento beforeTaskComplete.
function createDataset(fields, constraints, sortFields) {

    var dataset = DatasetBuilder.newDataset();
    dataset.addColumn("return");

    var clientService = fluigAPI.getAuthorizeClientService(); 

    var data = {
        companyId: getValue("WKCompany") + '', 
        serviceCode: 'api_solicitacaocompra',
        endpoint: '/rest/SC',
        method: 'post',
        timeoutService: '1000',
        params:{

            "SC":{
                "NUM": "cDoc",
                "SOLICITANTE": "cUserName",
                "EMISSAO": "dDataBase",
                "ITENS":
              [{
                  "ITEM":"0001",
                  "PRODUTO":"43214",
                  "QUANTIDADE":1,
                  "DATA":"",
                  "LOCAL":"01",
                  "CC":"210801",
                  "DESCRI":"DESCRICAO DO PRODUTO",
                  "UM":"UN",
                  "OBS":"GERADO VIA WEBSERVICE"
            }]
            }
        }
    };

    var vo = clientService.invoke(JSON.stringify(data));
    if(vo.getResult() == null || vo.getResult().isEmpty()){
        dataset.addRow(new Array("Sem retorno"));
    } else{
        dataset.addRow(new Array(vo.getResult()));
    }

    return dataset; 
}

Valeu galera!

compartilhar
  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 rest protheus integracao ou faça a sua própria pergunta.