function createDataset(fields, constraints, sortFields) {
    var dataset = DatasetBuilder.newDataset();

    // Definir colunas que queremos no retorno
    dataset.addColumn("C1_FILIAL");
    dataset.addColumn("C1_NUM");
    dataset.addColumn("C1_ITEM");
    dataset.addColumn("C1_PRODUTO");
    dataset.addColumn("C1_DESCRI");
    dataset.addColumn("C1_QUANT");
    dataset.addColumn("C1_VUNIT");
    dataset.addColumn("C1_TOTAL");
    dataset.addColumn("C1_DATPRF");
    dataset.addColumn("C1_CC");
    dataset.addColumn("C1_CONTA");
    dataset.addColumn("C1_SOLICIT");
    dataset.addColumn("C1_EMISSAO");
    dataset.addColumn("C1_COTACAO");
    dataset.addColumn("C1_PEDIDO");
    dataset.addColumn("C1_ITEMPED");
    dataset.addColumn("STATUS");
    dataset.addColumn("data_consulta");
    dataset.addColumn("hora_consulta");
    dataset.addColumn("sucesso");

    try {
        // 🔎 Captura o número da SC passado como constraint
        var numeroSC = null;
        if (constraints != null) {
            for (var i = 0; i < constraints.length; i++) {
                if (constraints[i].fieldName == "numeroSCProtheus") {
                    numeroSC = constraints[i].initialValue;
                }
            }
        }

        if (!numeroSC) {
            dataset.addRow(["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "Erro: número SC não informado"]);
            return dataset;
        }

        // ⚙️ Monta requisição para o Protheus
        var data = {
            companyId: "1",
            serviceCode: "Postprod", // ajuste conforme seu serviço cadastrado
            endpoint: "/rest/uf_mata110/" + numeroSC,
            method: "get",
            timeoutService: "10000",
            headers: {
                "Content-Type": "application/json"
            }
        };

        var clientService = fluigAPI.getAuthorizeClientService();
        var response = clientService.invoke(JSON.stringify(data));

        if (response && response.getResult()) {
            var result = JSON.parse(response.getResult());

            if (result.sucesso && result.solicitacoes && result.solicitacoes.length > 0) {
                var sc = result.solicitacoes[0]; // pega a primeira solicitação retornada
                
             // ⚠️ Trata a cotação: ignora valores default
                var cotacao = sc.C1_COTACAO || "";
                if (cotacao == "000000" || cotacao == "000001") {
                    cotacao = "";
                }

                dataset.addRow([
                    sc.C1_FILIAL || "",
                    sc.C1_NUM || "",
                    sc.C1_ITEM || "",
                    sc.C1_PRODUTO || "",
                    sc.C1_DESCRI || "",
                    sc.C1_QUANT || "",
                    sc.C1_VUNIT || "",
                    sc.C1_TOTAL || "",
                    sc.C1_DATPRF || "",
                    sc.C1_CC || "",
                    sc.C1_CONTA || "",
                    sc.C1_SOLICIT || "",
                    sc.C1_EMISSAO || "",
                    cotacao,
                    sc.C1_PEDIDO || "",
                    sc.C1_ITEMPED || "",
                    sc.STATUS || "",
                    result.data_consulta || "",
                    result.hora_consulta || "",
                    "true"
                ]);
            } else {
                dataset.addRow(["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "false"]);
            }
        } else {
            dataset.addRow(["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "false"]);
        }
    } catch (e) {
        dataset.addRow(["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "Erro: " + e.message]);
    }

    return dataset;
}
