Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Section Access com mais de um criterio

Boa tarde,

estou com muita dificuldade em resolver um problema de acesso, tenho um modelo em star schema da seguinte maneira:

Sem título.png

O acesso é feito com 3 critérios da seguinte maneira:

1) O usuário devera ver apenas quem esta abaixo dele na hierarquia e ver ele mesmo, então um supervisor veria vendedores e um vendedor veria apenas a si mesmo, esse relacionamento estou fazendo atualmente pela ligação entre as tabelas dim_responsaveis e permissões.

2) O usuário terá acesso a algum canal, pode ser um ou mais de um, para fazer essa redução eu uso a tabela dim_canal de venda e canais_permissao.

3) O usuário pode ver todos os grupos de produto ou apenas um, essa redução esta sendo feita pela relação entre as tabelas DIM_descricao_produto e grupo_cliente_redutor.

Essa forma esta causando uma sobrecarga no momento que o arquivo é carregado no servidor, o servidor cai e o uso da cpu fica altíssimo, andei procurando como fazer essa section com mais de um campo e encontrei essa postagem:

Data Reduction Using Multiple Fields

Resumidamente ele diz que deve haver apenas um campo redutor e esse campo devera conter a concatenação dos campos que devem reduzir os dados.

Não estou sabendo fazer isso no meu modelo, não consigo localizar uma dimensão onde consiga concatenar o representante, canal e grupo de produto de forma que cada linha tenha uma unica combinação para esses valores e tenha todas as possibilidades desses 3 campos na tabela.

Alguém já passou por um problema parecido com um modelo em star schema?

Labels (3)
1 Solution

Accepted Solutions
nicolett_yuri

Flavio, o ideal é que a redução sempre ocorra em registros de apenas uma tabela. Isso significa que você deve organizar os seus dados para que tudo o que precisa ser reduzido esteja em apenas uma tabela, neste caso a LinkTable é ideal.

Olhei o seu modelo e você já possui uma link table, porém a link table não contém os campos em que esta realizando a redução. A solução esta simples (simples, não fácil), basta adicionar os três campos de redução em sua link table para que a tabela de section access faça a ligação em sua linktable.

View solution in original post

9 Replies
nicolett_yuri

Flavio, o ideal é que a redução sempre ocorra em registros de apenas uma tabela. Isso significa que você deve organizar os seus dados para que tudo o que precisa ser reduzido esteja em apenas uma tabela, neste caso a LinkTable é ideal.

Olhei o seu modelo e você já possui uma link table, porém a link table não contém os campos em que esta realizando a redução. A solução esta simples (simples, não fácil), basta adicionar os três campos de redução em sua link table para que a tabela de section access faça a ligação em sua linktable.

nicolett_yuri

Só um ponto importante: eu acho que o seu problema de performance pode não ser devido a segurança. Para se ter certeza, deixe a app sem segurança e veja se a lentidão continua.

Anonymous
Not applicable
Author

Estou tendo dificuldade de identificar o problema, eu baixei o Optimizer.qvw mas também estou tendo dificuldade de interpretar o resultado.

Se eu postar o resultado desse arquivo você poderia me ajudar a entender onde esta o problema?

Anonymous
Not applicable
Author

Yuri,

fiz uma analise com o DocumentAnalyzer.qvw, não sei interpretar tão bem o arquivo, você poderia me ajudar a analisar os resultados?

memory.png

OBJECTS.png

CAMPOS.png

TABELAS.png

nicolett_yuri

Me envie esse qvw

Anonymous
Not applicable
Author

segue o qvw

nicolett_yuri

Flavio, continuamos esse entendimento no outro post: Alto consumo de CPU

Anonymous
Not applicable
Author

Fiz isso e funcionou perfeitamente, muito obrigado.

Anonymous
Not applicable
Author

Yuri, bom dia. E se no caso eu queira que o section access impeça a visualização de toda uma tab? Eu criei o USERID baseado nos nomes que acessarão e  fiz um Section Aplication USERID, Departamento sendo apenas dois registros DEPTO1 e OUTROS. Criei uma variável para mostrar a TAB de forma condicional, só não sei jogar para a variável o valor DEPTO1 quando os autorizados logam e OUTROS quando os não autorizados logam. Como é a melhor forma de fazer isso? Obrigado.