Criar Filtros Dinâmicos Eficientes

Pode criar filtros dinâmicos com base em dados de origem externa para reduzir o número de definições de filtro necessárias.

Em vez de gerir um conjunto de filtros de acesso a dados de codificação rígida para muitos utilizadores, pode filtrar o acesso às células do cubo a partir de dados de origem externa, com base nos nomes de membros e de utilizadores.
Pode fazê-lo utilizando a sintaxe de definição de filtros dinâmicos, incluindo o método @datasourceLookup e as variáveis $LoginUser e $LoginGroup. Os seus dados de origem externa são um ficheiro csv ou uma tabela relacional. Para dados de origem relacional, pode carregar o .csv para uma tabela relacional.

Sintaxe do Filtro Dinâmico

Utilize a sintaxe do filtro dinâmico para criar filtros flexíveis que pode atribuir a vários utilizadores e grupos.

As linhas de filtros podem conter os seguintes elementos como parte da respetiva definição, juntamente com expressões de membros.

$loginuser

Esta variável armazena o valor do utilizador atualmente em sessão em runtime. Pode ser utilizado em conjunto com o método @datasourcelookup.

$logingroup

Esta variável armazena o valor de todos os grupos aos quais o utilizador em sessão atualmente pertence. Inclui grupos diretos e indiretos. Quando utilizada em conjunto com o método @datasourcelookup, cada grupo é procurado individualmente relativamente à Origem de Dados.

@datasourcelookup

Este método extrai registos de uma Origem de Dados.

Sintaxe

@datasourcelookup (dataSourceName, columnName, columnValue, returnColumnName)
Parâmetro Descrição
dataSourceName

O nome da Origem de Dados externa definida no Essbase. Para uma Origem de Dados a nível da aplicação, coloque o prefixo no nome do nome da aplicação e de um período.

columnName

O nome da coluna Origem de Dados para pesquisar um determinado columnValue.

columnValue

O valor para pesquisar em columnName.

returnColumnName

O nome da coluna Origem de Dados a partir da qual devolver uma lista de valores.

Descrição

Uma chamada @datasourcelookup é equivalente à seguinte consulta de SQL:

select returnColumnName from dataSourceName where columnName=columnValue

@datasourcelookup procura a Origem de Dados fornecida e pesquisa registos em que columnName contém columnValue. Se especificar columnValue como $loginuser, este método irá pesquisar registos em que columnName contém o nome do utilizador atualmente em sessão.

Essbase forma a linha de definição do filtro combinando os elementos da lista como uma cadeia de caracteres separada por vírgulas. Se qualquer registo contiver caracteres especiais, espaços ou apenas números, serão colocados entre aspas.

Exemplos

Coloque os parâmetros entre aspas.

A chamada seguinte procura uma Origem de Dados global e devolve uma lista de nomes de lojas em que Maria é a gerente de loja.

@datasourceLookup("StoreManagersDS","STOREMANAGER","Mary","STORE")

A chamada seguinte procura uma Origem de Dados a nível da aplicação e devolve uma lista de nomes de lojas em que o utilizador atualmente em sessão é o gerente de loja.

@datasourceLookup("Sample.StoreManagersDS","STOREMANAGER","$loginuser","STORE")

A chamada seguinte procura uma Origem de Dados ao nível da aplicação e devolve uma lista de nomes de lojas em que o departamento da loja corresponde a qualquer um dos grupos aos quais o utilizador em sessão pertence.

@datasourceLookup("Sample.StoreManagersDS","STORE_DEPARTMENT","$logingroup","STORE")

Se o utilizador em sessão pertencer a 3 grupos, o método @datasourcelookup acima devolve todos os valores de colunas correspondentes para cada grupo.

Fluxo de Trabalho para Criar Filtros Dinâmicos

Utilize o fluxo de trabalho geral seguinte para criar filtros dinâmicos.

Este fluxo de trabalho de filtros dinâmicos assume que já tem um cubo, bem como utilizadores e grupos provisionados.

  1. Identifique uma origem de dados, quer seja um ficheiro, quer seja uma origem relacional.
  2. Defina a ligação e a Origem de Dados no Essbase, globalmente ou a nível da aplicação.
  3. Crie filtros a nível do cubo, utilizando a secção Filtros do verificador da base de dados.
  4. Defina linhas de filtro para cada filtro, utilizando a sintaxe do filtro dinâmico para usar a variável $loginuser, a variável $logingroup e o método @datasourcelookup conforme necessário.
  5. Atribua os filtros a utilizadores ou grupos.
  6. Se tiver atribuído o filtro a um grupo, atribua o grupo à aplicação para filtragem, utilizando a secção Permissões do verificador de aplicações.

Exemplo de um Filtro Dinâmico

O filtro dinâmico seguinte trabalha com o cubo chamado Efficient.UserFilters, disponível na galeria como um modelo de exemplo.


Filtro dinâmico com três linhas concedendo acesso MetaRead ao utilizador em sessão.

Para obter informações sobre o modo de criação e aplicação deste filtro dinâmico, descarregue o modelo de livro Efficient_Filters.xlsx a partir da secção Técnico da galeria e siga as instruções README no livro. A galeria está disponível na secção Ficheiros da interface da Web do Essbase.