Instâncias de dados locais para várias visualizações de dados

  • Versão de lançamento: Zurich
  • Atualizado 31 de jul. de 2025
  • 5 min. de leitura
  • Um recurso de dados especial da API de visualização de dados está disponível para buscar dados para várias visualizações de dados simultaneamente. Este recurso de dados reduz o número de chamadas de API e, portanto, pode acelerar a busca de dados.

    Quando usar

    Você pode usar o recurso de dados "API de visualização de dados para várias visualizações de dados" nos seguintes cenários:
    • Várias visualizações de dados do mesmo tipo têm a mesma fonte de dados. Por exemplo, você tem cinco visualizações em que o tipo de visualização é Pontuação única e a fonte de dados é a tabela Incidente [incidente] com o filtro verdadeiro . Se você tiver vários grupos de indicadores com o mesmo tipo e fonte de dados, poderá criar uma instância do mesmo recurso de dados de visualização múltipla para cada grupo.
    • Uma visualização de dados tem vários recursos de dados que fazem referência à mesma fonte de dados. Por exemplo, você tem uma visualização de linha com um recurso de dados do indicador "Número de incidentes em aberto" e outro recurso de dados do indicador "Idade média dos incidentes em aberto". Esses indicadores usam a fonte de dados Incident.Open. Para eficiência, você pode converter esta visualização para usar apenas um recurso de dados.

    Quando não usar

    • Há apenas uma visualização de dados no Construtor de IU página.
    • As visualizações de dados na página provavelmente levarão muito tempo para carregar os dados. Nesse caso, é melhor manter o carregamento de dados dividido entre recursos de dados separados.

    Configure um recurso de dados de visualização múltipla

    Se o seu caso de uso atender aos critérios de um recurso de dados de visualização múltipla, você poderá seguir este procedimento.

    Antes de Iniciar

    Revise o caso de uso de um único recurso de dados para várias visualizações em Instâncias de dados locais para várias visualizações de dados.

    Função necessária: ui_builder_admin, admin

    Por Que e Quando Desempenhar Esta Tarefa

    Importante:
    Este recurso de dados mescla várias chamadas em uma única. A chamada única é executada como uma única transação em um único thread. Portanto, use esse recurso de dados com cuidado extra, especialmente ao lidar com uma grande quantidade de dados, pois, em alguns casos, isso pode levar a tempos limite de transação. Dependendo da quantidade de dados, da configuração da página e da experiência do usuário de destino, você pode obter melhores resultados usando recursos de dados separados.

    Procedimento

    1. Navegue até o painel técnico ou a página do UIB com as visualizações de dados.
    2. Verifique se as visualizações de dados na página atendem aos critérios em Quando usar .
      Por exemplo, você tem várias visualizações de discagem na fonte de dados da tabela Incidente, e a quantidade de dados obtidos não é muito grande.
    3. Na gaveta Dados e scripts, em Recursos de dados, selecione - Adicionar recurso de dados .

      Adicione o link do recurso de dados quando ainda não houver recursos de dados.
    4. Na janela Selecione um recurso de dados, pesquise Visualização de dados .
      Você obtém uma seleção dos recursos de dados que pode usar.
      Seleção de recursos de dados da API de visualização de dados, incluindo o de várias visualizações de dados.
    5. Selecione "API de visualização de dados para várias visualizações de dados".
    6. Defina o tipo como Configurações de dados .
    7. No campo Solicitação, preencha o JSON.
      Veja o exemplo no final deste procedimento.
    8. Em cada visualização de dados que você deseja usar este recurso de dados, execute as seguintes ações:
      1. Selecione a visualização de dados.
      2. Abra o painel Configuração.
      3. Ligar Defina os dados manualmente .
      4. Use a vinculação de dados para vincular um script ao campo Dados.

    Recurso de dados para três visualizações de pontuação única com a mesma fonte de dados

    Neste exemplo, começamos com uma página do UIB que contém três componentes de Visualização de dados. Todos esses componentes são do tipo de visualização Pontuação única e usam a mesma fonte de dados.

    Você segue o procedimento geral até a Etapa 6. Agora, você tem uma API de visualização de dados para várias visualizações de dados na página Painéis.

    Em seguida, você escreve o JSON para a solicitação, da seguinte forma:
    [
        {
            "details": {
                "visualizationId": "vis_1",
                "followFilter": true
            },
            "configurations": {
                "dataConfigurations": [
                    {
                        "sourceType": "table",
                        "dataCategory": "simple",
                        "order": 0,
                        "tableOrViewName": "incident",
                        "aggregateFunction": "COUNT"
                    }
                ]
            }
        },
        {
            "details": {
                "visualizationId": "vis_2",
                "followFilter": true
            },
            "configurations": {
                "dataConfigurations": [
                    {
                        "sourceType": "table",
                        "dataCategory": "simple",
                        "order": 0,
                        "tableOrViewName": "incident",
                        "aggregateFunction": "AVG",
                        "aggregateField": "business_duration"
                    }
                ]
            }
        },
        {
            "details": {
                "visualizationId": "vis_3",
                "followFilter": true
            },
            "configurations": {
                "dataConfigurations": [
                    {
                        "sourceType": "table",
                        "dataCategory": "simple",
                        "order": 0,
                        "tableOrViewName": "incident",
                        "aggregateFunction": "AVG",
                        "aggregateField": "priority"
                    }
                ]
            }
        }
    ]

    A solicitação é uma matriz de objetos, um para cada visualização de dados. Cada visualização tem um detailspropriedade com um valor arbitrário para visualizationIde um booliano followFilterdefinindo se a visualização segue os componentes de filtro na página. Nesse caso, todas as três visualizações seguem filtros.

    Cada visualização também tem um configurationspropriedade, que contém somente um dataConfigurationsmatriz. Porque todas as visualizações são do mesmo tipo, Pontuação única, e esse tipo de visualização mostra apenas um valor simples, todos os três dataCategoryas propriedades são "simples". Da mesma forma, todas as visualizações usam a mesma fonte de dados. Como a fonte de dados é a tabela Incidente [incidente], as três visualizações têm um sourceTypede "tabela" e um tableOrViewNamede "incidente". O único lugar em que as visualizações podem variar são os agregados que elas usam. Aqui, você vê que o primeiro usa uma agregação de CONTAGEM, o segundo usa um agregado AVG no campo business_duration e o terceiro usa um AVG do campo de prioridade.

    A configuração final do recurso de dados tem esta aparência:
    Concluir a configuração do agente de dados do painel.
    Por fim, para cada visualização de dados, vincule o script a seguir ao campo de dados. Você usa o arbitrário visualizationIdo valor que você deu a cada visualização como VizId valor no script para essa visualização.
    function evaluateProperty({api, helpers}) {
      const data = api.data.data_visualization_api_for_multiple_data_visualizations_1.output;
    ​
      if (!data) {
        return [];
      }
    ​
      const vizId = 'vis_1';
    ​
      const dataForViz = data.result.find(d => d.details.visualizationId === vizId);
    ​
        return dataForViz.dataResponses;
    }

    Solicite JSON para um indicador

    A solicitação de uma visualização em um indicador difere do exemplo anterior, que era para uma tabela. Este é o JSON para uma visualização de série temporal, que mostra uma tendência ao longo do tempo, para o indicador de número de incidentes em aberto, agrupado pelo detalhamento de prioridade:
    [
        {
            "details": {
                "visualizationId": "vis1",
                "followFilter": true
            },
            "configurations": {
                "dataConfigurations": [
                    {
                        "sortBy": "choice",
                        "sortOrder": "asc",
                        "sourceType": "indicator",
                        "dataCategory": "trend",
                        "order": 0,
                        "splitView": false,
                        "numberOfGroups": 2,
                        "uuid": {
                            "indicator": "fb007202d7130100b96d45a3ce6103b4",
                            "breakdowns": []
                        },
                        "trendBy": "anything",
                        "trendInterval": "date",
                        "groupBy": [
                            "0df47e02d7130100b96d45a3ce610399"
                        ],
                        "removeMissingIntervalData": false
                    }
                ]
            }
        }
    ]

    As primeiras e óbvias diferenças são que o. sourceTypeé "indicador" e o. dataCategoryé "tendência". Você também vê isso em vez de a. tableOrViewNamevocê tem um uuidObjeto com o uuid do indicador Número de incidentes em aberto e uma matriz vazia que pode conter os uuuids de detalhamentos para filtrar esse indicador. Como esta visualização oferece suporte a valores de agrupamento por, você tem um groupByMatriz que, neste caso, contém somente o uuuid do detalhamento de prioridade. Ter um group-by implica a classificação, e aqui você vê que sortByÉ "opção", refletindo o tipo de dados do detalhamento de prioridade e o. sortOrderé crescente.