Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Boa tarde!
Eu preciso de uma ajuda com o controle de acessos.
Sei que tem alguns exemplos, mas sou totalmente leigo o Qlik e jogaram a bucha na minha mão
Meu cenario:
Tenho um APP onde está o orçamento da empresa, e neste app uma pasta chamado Orçamento por Gestor.
Ai tem um campo Gestor, onde está todos os gestores da empresa.
até ontem usavamos o Qlik Desktop, agora migramos para o Qlik Senser Servidor (onde temos o QMC e o HUB).
Gostaria de saber como eu pego esse campo gestor e posso fazer um filtro para que quando um gestor logar no Hub, nessa pasta de Orçamento por Gestor só mostre o orçamento referente a área dele.
O exemplo abaixo peguei de um post aqui no forum.
LOAD * INLINE [
ACCESS, USERID, CODSETOR
admin, admin, *
user, industrial, 1
user, comercial, 2
user, Recursos Humanos, 3
];
Eu entendi que ai ele está atribuindo a cada setor um numero. mas como faço para atribuir esses numeros aos gestores que estão na minha pasta Orçamento por Gestor.
Desde já agradeço.
Olá Thiago.
Pelo que entendi você precisa que um usuário (gestor) visualize apenas informações pertinentes a ele, ocultando informações de outros gestores. Se esse for o seu caso, você precisa usar o recurso de Section Access.
Como funciona: Basicamente você cria uma tabela no app e essa tabela, quando "configurada" se encarrega de filtrar o aplicativo com base na região do usuário. Entenda o section como um filtragem obrigatória do painel.
A estrutura básica de funcionamento é o seguinte:
SECTION Access;
SECTION:
LOAD * INLINE [
NTNAME
,ACCESS
,REGION
];
SECTION Application;
onde:
NTNAME = login do usuário
ACCESS = tipo de usuário (admin|user)
REGION = região de corte (filtragem)
1) Essa tabela SECTION será criada, mas você não conseguirá visualizar no modelo de dados. Porém existirá um relacionamento com a sua tabela de dados. Ou seja, para funcionar você precisa ter um campo REGION no seu modelo de dados onde a filtragem será propagada.
2) A tabela SECTION não precisa ser criada pelo INLINE. Pode ser feito o carreamento de um banco de dados, uma planilha etc.
No seu caso o teu REGION será o campo GESTOR. Então replique o campo GESTOR e chame-o de REGION.
O REGION no INLINE será o valor que está no teu campo GESTOR. Por exemplo:
NTNAME = luiz.roberto
REGION = Luiz Roberto Souza
Caso um usuário "luiz.roberto" tente abrir seu app ele irá fazer a filtragem por "Luiz Roberto Souza".
Como essa filtragem (section) ocorre no momento da sessão, mesmo que um gestor tente visualizar o orçamento de outro, não conseguirá.
Essa tabela SECTION pode ser extendida com outras funcionalidades, mas esse é o básico.
Veja se deu certo e reposte.
Até mais.
Marco Otavio, boa tarde!
Vamos lá. Tenho algumas dúvidas.
Como eu faço essa replicação do Campo GESTOR para REGION.
Como faria esse corte de região (filtragem).
Desculpe, mas sou totalmente leigo na programação do aplicativo. No QMC eu olhei bastante e me virei muito bem, consegui fazer as rules e tudo mais, mas essa parte do HUB..
Desde já obrigado.
Replicar é criar o mesmo campo só que com outro nome.
GESTORES:
LOAD
*
,gestor as REGION
FROM TABELA;
Você vai fazer exatamente como eu lhe falei acima. Vai criar a tabela SECTION definindo quem vai acessar o que, igual no exemplo do Luiz.
Esse script é inserido no seu app, não vai no QMC.
Como não tem muito conhecimento de Section aconselho fortemente a criar uma cópia do seu app para não incorrer no risco de perde-lo (já fiz muito isso rs).
Lembrando que a tabela SECTION é como se fosse qualquer outra tabela virtual. Ela deverá obrigatoriamente se relacionar com outra tabela do seu modelo de dados para funcionar corretamente.
Olhe este exemplo:
ESTADO:
LOAD
*
,estado_id as REGION
;
LOAD * Inline [
estado_id, estado
1, SP
2, MS
3, TO
4, PR
];
CIDADE:
LOAD * Inline [
cidade_id, cidade, estado_id
1, são paulo, 1
2, campo grande, 2
3, palmas, 3
4, curitiba, 4
5, guarulhos,1
];
// Section Access;
SECTION:
LOAD * Inline [
NTNAME, ACCESS, REGION
luiz.roberto, USER, 1
luciana.maria, USER, 3
rodolfo.pereira, USER, 4
];
// SECTION Application;
Os comando Section Access|Application estão comentados para você poder visualizar. Mas para funcionar não podem estar.
Com esse Script estou dizendo que o luiz.roberto só podem ver informações do estado 1, que é São Paulo. Logo irá ver informações das cidades de São Paulo e Guarulhos. A luciana.maria somente de Tocantins. E assim sucessivamente.
Aqui tem informações importantes sobre como se configura uma seção de acesso.
Muito obrigado Pablo.
Eu já tinha lido isto dai, mas é que não conheço nada de programação do QLIK Sense mesmo, por isso estou perdido.
Olha, eu fiz um teste mais simples
Section Access;
SECTION:
LOAD * Inline [
NTNAME, ACCESS
CONTROLADORIA, ADMIN
COMERCIAL, USER
];
SECTION Application;
E deu acesso negado, sendo que só fiz isto e tentei logar com o usuário para ir testando por partes.
NTNAME deve conter dominio\usuario e nao somente usuario
Pablo Labbe.
Bom dia!
Obrigado pela dica, mas ainda deu erro, eu vi num forum em ingles que para qualquer tipo de acesso, seja local ou em rede, agora se deve usar o USERID, no meu caso como é em rede eu coloco USERID e na declaração DOMINIO\USUÁRIO.
Segue o link da discução: session access in qliksense?
Obrigado.
Marco Otavio, bom dia!
Eu fiz o seguinte:
Section Access;
LOAD * Inline [
ACCESS, USERID, REGION
USER, DOMINIO\CONTROLE,*
USER, DOMINIO\VENDAS, JOAQUIM
USER, DOMINIO\FABRICA, JOSE
ADMIN, DOMINIO\THIAGO.RUBIO,*
];
SECTION Application;
T1:
LOAD *,
GESTOR AS REGION;
Mas agora para o usuário do controle aparece tudo, o que está certo.
Mas para os demais usuários (vendas e fabrica), não aparece nada. Eu até abro o aplicativo, mas quando abre não tem nenhuma pasta.
Como eu faço para todos terem acesso ao aplicativo, mas quando o gestor xxx logar, aparecer só os campos referentes ao nome dele que está na tabela GESTOR que eu carrego.
Desculpa fazer essas perguntas que deve ser até básicas, mas estou perdido aqui.
obrigado.