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

    try {
        // Número do pedido recebido como constraint
        var numPed = "";
        if (constraints && constraints.length > 0) {
            for (var i = 0; i < constraints.length; i++) {
                if (constraints[i].fieldName == "numeroPed") {
                    numPed = constraints[i].initialValue;
                }
            }
        }

        if (!numPed) {
            dataset.addRow([JSON.stringify({
                sucesso: false,
                mensagem: "Número do pedido não informado"
            })]);
            return dataset;
        }

        // Monta chamada para o Protheus
        var clientService = fluigAPI.getAuthorizeClientService();
        var data = {
            companyId: "1",
            serviceCode: "Postprod", // nome do serviço cadastrado no Fluig
            endpoint: "/rest/uf_mata121/" + numPed,
            method: "get",
            timeoutService: "100",
            headers: {
                "Content-Type": "application/json"
            }
        };

        var response = clientService.invoke(JSON.stringify(data));
        if (!response || !response.getResult()) {
            throw "Sem resposta da API Protheus";
        }

        var result = JSON.parse(response.getResult());
        dataset.addRow([JSON.stringify(result)]);

    } catch (e) {
        log.error("❌ Erro dsConsultaPedido: " + e);
        dataset.addRow([JSON.stringify({
            sucesso: false,
            mensagem: "Erro ao consultar pedido: " + e
        })]);
    }

    return dataset;
}
