Versão atual:

Como passar mais de um item no Json via integração Rest

Boa tarde, Gostaria de tirar uma dúvida, como passar mais de um item no Json via integração Rest. Tentei implementar um exemplo daqui da comunidade, porém tive algumas dificuldades.

Datset responsável pela integração

function createDataset(fields, constraints, sortFields) {
    var dataset = DatasetBuilder.newDataset();
    dataset.addColumn("status");
    dataset.addColumn("detalhe");
    var parametros = data();
    console.log(parametros);
    if(constraints != null){
        for(var i = 0; i < constraints.length; i++){
            if(constraints[i].fieldName == "cFilialCp"){
                parametros["cFilialCp"] = String(constraints[i].initialValue);
            }
            else if(constraints[i].fieldName == "cCodCli"){
                parametros["cCodCli"] = String(constraints[i].initialValue);
            }


        }
    }
    var sendData = {
        companyId: String(fluigAPI.getSecurityService().getCurrentTenantId()),
        serviceCode: "REST",
        endpoint: "/",
        method: "POST",
        params: parametros
    }
    var clientService = fluigAPI.getAuthorizeClientService();
    var vo = clientService.invokeService(JSON.stringify(sendData));
    var status = String(vo.getHttpStatusResult())
    // Sucesso na integração
    if(status == "200"){
        dataset.addRow(new Array(
            status,
            "Oportunidade de Negócio Incluida/Alterada com sucesso"
        ));    
    } 

    // Erro de negocio na Integração
    else if (status == "400"){

        // Pegar o retorno da API
        var parseResult = JSON.parse(vo.getResult());

        // A partir do retorno pegar a mensagem de erro
        var parseError = JSON.parse(parseResult.errorMessage);

        // A partir da mensagem de erro, pegar somente os detalhes do erro
        var msg = parseError.detailedMessage

        dataset.addRow(new Array(
            status,
            msg
        ));
    }
    // Erro desconhecido/Forbidden
    else {
        dataset.addRow(new Array(
            "403",
            "Ops, aconteceu um erro desconhecido, por favor tente mais tarde."
        ));
    }

    return dataset;
}

function data(){
    return {
        "cFilialCp": "",
        "cCodCli": "",
        "item1":itens

    }
}

Serviço

function servicetask2(attempt, message) {
    try{
        var cFilialCp = hAPI.getCardValue("oportFilial");
        var cCodCli = hAPI.getCardValue("oportCodCliente");

        var c1 = DatasetFactory.createConstraint("cFilialCp", cFilialCp, cFilialCp, ConstraintType.MUST);
        var c2 = DatasetFactory.createConstraint("cCodCli", cCodCli, cCodCli, ConstraintType.MUST);


        //Tentando mandar mais de um item
        var indexes = hAPI.getChildrenIndexes("tb_Prospeccao_Veiculo");
        var children = hAPI.getChildrenFromTable("tb_Prospeccao_Veiculo");

        var itens = [];

        for (var i = 0; i < indexes.length; i++) {
            var index = indexes[i];
            var item = {
                    "cFilGd" : String(hAPI.getCardValue("veicFilial___" + index)),
                    "cCodGd" : String(hAPI.getCardValue("veicCod___" + index)),
                    "cCodMarc" : parseInt(hAPI.getCardValue("veicMarca___" + index)),
                    "cModVei" : String(hAPI.getCardValue("veicModelo___" + index)),
                    "cQnt" : String(hAPI.getCardValue("veicQtd___" + index)),
                    "cOperFab" : String(hAPI.getCardValue("veicOpc___" + index)),
                    "cCodVend" : String(hAPI.getCardValue("veicVendedor___" + index))  
            }
            itens.push(item);
        }

        var filtro = new Array(c1, c2, itens);

        var dataset = DatasetFactory.getDataset("protheus_prospeccao", null, filtro, null);

        if(dataset.getValue(0, "status") != "200"){
            throw dataset.getValue(0, "detalhe");
        }

    } catch(e){
        log.info("Erro: " + e);
        throw("Houve um erro na integração:" + e);
    }

}

A estrutura do JSON que preciso enviar

{
   "cFilialCp":"",
   "cCodCli":"",
   "item1":{
      "cFilGd":"",
      "cCodGd":"",
      "cCodMarc":"",
      "cModVei":"",
      "cQnt":"",
      "cOperFab":"",
      "cDateInt":"",
      "cDateLimt":"",
      "cCodVend":"",
      "cTipoCon":""
   },
      "item2":{
      "cFilGd":"",
      "cCodGd":"",
      "cCodMarc":"",
      "cModVei":"",
      "cQnt":"",
      "cOperFab":"",
      "cDateInt":"",
      "cDateLimt":"",
      "cCodVend":"",
      "cTipoCon":""
   }
}

Versão (1):

Ver a versão formatada

Como passar mais de um item no Json via integração Rest

Comentário

new question