[Resolvido] Limite de dados na montagem de um carrossel dinâmico

Boa tarde BLiP,

Meu chatbot faz uma consulta em minha API e retorna dados de NF do cliente, nesse JSON contém muitas informações. Utilizo um script para montar meu carrossel dinâmico e exibir o carrossel em um conteudo dinamico.

Porém, dependendo da quantidade de NF retornada pela minha API, normalmente em grandes quantidades, o BLIP exibe uma exceção no debug que diz o seguinte: The maximum number of statements executed have been reached.

Existe um limite para montagem do carrossel dinâmico? ou qualquer outro tipo de limite para esse tipo de execução?

1 Curtida

A ação de Executar Script do Builder pode executar no máximo 1000 statements (número de operações).

Caso esteja utilizando algum laço de repetição no seu código como, for, foreach ou while, com muitos passos o Builder bloqueará seu script.

Nessa situação, minha sugestão é que vc crie uma API intermediaria que retorne um JSON menor.

*Obs.: Criamos esse bloqueio para impedir que códigos sem condição de parada fossem criados dentro do Builder :wink:

1 Curtida

@rafaelpa,

Aqui está o Script que roda nesse chatbot para montar o carrossel dinâmico:
A variável “tratamento” possui um JSON com vários objetos, utilize como exemplo 52 objetos:

function run(tratamento) {
    var events = [];

    tratamento = JSON.parse(tratamento);
    tratamento.items.forEach(function (event) {

        events.push({
            header: {
                type: "application/vnd.lime.media-link+json",
                value: {
                    title: "NF-e: " + event.notas,
                    text: "Status: " + event.status
                }
            },
            options: [
                {
                    "label": {
                        "type": "text/plain",
                        "value": "Ver detalhes"
                    },
                    "value": {
                        "type": "application/json",
                        "value": {
                            "num": 1,
                            "idNotas": event.idNota,
                            "notas": event.notas,
                            "valorNotas": event.valorNotas,
                            "pesoCarga": event.pesoCarga,
                            "cte": event.cte,
                            "serieCte": event.serieCte,
                            "destinatario": event.destinatario,
                            "remetente": event.remetente,
                            "destino": event.destino,
                            "tipoModal": event.tipoModal,
                            "dataColeta": event.dataColeta,
                            "dataEmbarque": event.dataEmbarque,
                            "previsaoEntrega": event.previsaoEntrega,
                            "chaveAcesso": event.chaveAcesso,
                            "qtdAnexos": event.qtdAnexos,
                            "codUltimaOcorrencia": event.codUltimaOcorrencia,
                            "descricaoUltimaOcorrencia": event.descricaoUltimaOcorrencia,
                            "dataEntrega": event.dataEntrega,
                            "status":event.status
                        }
                    }
                },
                {
                    "label": {
                        "type": "text/plain",
                        "value": "Ver ocorrências"
                    },
                    "value": {
                        "type": "application/json",
                        "value": {
                            "num": 2,
                            "idNotas": event.idNota,
                            "notas": event.notas
                        }
                    }
                }
            ]
        });
    });

    return {
        itemType: "application/vnd.lime.document-select+json",
        items: events
    };
}