Instâncias de dados locais para várias visualizações
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
- 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 [incident] com o filtro
active=true. 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 de incidentes em aberto". Ambos os indicadores usam a fonte de dados Incident.Open. Para maior eficiência, você pode converter esta visualização para usar apenas um recurso de dados.
Quando não usar
- Há apenas uma visualização na página Construtor de IU.
- As visualizações de dados na página provavelmente levarão muito tempo para carregar dados. Nesse caso, é melhor manter o carregamento de dados dividido entre recursos de dados separados.
Configurar um recurso de dados de visualização múltipla
Se o seu caso de uso atender aos critérios para 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.
Função necessária: ui_builder_admin, administrador
Por Que e Quando Desempenhar Esta Tarefa
Procedimento
Recurso de dados para três visualizações de pontuação única com a mesma fonte de dados
Neste exemplo, iniciamos com uma página UIB que contém três componentes de visualização de dados. Todos esses componentes são do tipo de visualização de pontuação única e todos usam a mesma fonte de dados.
Siga o procedimento geral na Etapa 6. Agora você tem uma API de visualização de dados para várias visualizações de dados na página Painéis.
[
{
"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 uma propriedade details com um valor arbitrário para visualizationId e um booliano followFilter definindo se a visualização segue componentes de filtro na página. Nesse caso, todas as três visualizações seguem os filtros.
Cada visualização também tem uma propriedade configurations, contendo apenas uma matriz dataConfigurations. Como todas as visualizações são do mesmo tipo, Pontuação única, e esse tipo de visualização mostra apenas um valor simples, todas as três propriedades dataCategory 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], todas as três visualizações têm um sourceType de "tabela" e um tableOrViewName de "incidente". O único lugar onde as visualizações podem variar é nos agregados que elas usam. Aqui você vê que o primeiro usa uma agregação COUNT, o segundo usa um agregado AVG no campo business_duration e o terceiro usa um MÉDIA do campo de prioridade.
vizId 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;
}Solicitar JSON para um indicador
[
{
"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
}
]
}
}
]A primeira e mais obvia diferença é que sourceType é "indicador" e dataCategory é "tendência". Você também vê que, em vez de uma propriedade tableOrViewName, você tem um objeto uuid com o UUID do indicador Número de incidentes em aberto e uma matriz vazia que pode conter os UUID de detalhamentos para filtrar esse indicador. Como esta visualização oferece suporte a valores de agrupamento, você tem uma matriz groupBy que, neste caso, contém somente o UUID do detalhamento de Prioridade. Ter um agrupamento implica em classificação, e aqui você vê que o sortBy é "escolha", refletindo o tipo de dados do detalhamento de prioridade, e o sortOrder é crescente.