Skip to main content
Announcements
YOUR OPINION MATTERS! Please take the Qlik Experience survey you received via email. Survey ends June 14.
cancel
Showing results for 
Search instead for 
Did you mean: 
diogoduarte
Partner - Contributor III
Partner - Contributor III

Funções na Seção de Acesso

Pessoal, na verdade tenho duas dúvidas quanto a isso.

1. é possível usar funções na seção de acesso?

2. a seção de acesso tem que ser a primeira parte do script?

Estou tendo problemas com o script abaixo:

SECTION Access;


OLEDB CONNECT TO [Provider=ADsDSOObject;User ID=DOMINIO\administrator;Encrypt Password=False;Data Source=LDAP://dominio.com;Mode=Read;Bind Flags=0;ADSI Flag=-2147483648] (XPassword is );


grupos:

LOAD

  distinguishedName as chaveGrupo,

  cn as nomeGrupo,

  RowNo() as numGrupo;

SQL

select

  distinguishedName,

  cn

from 'LDAP://dominio.com/OU=QlikView,OU=Matriz,DC=dominio,dc=com'

where objectCategory='group';

FOR contador = 1 to FieldValueCount('numGrupo')

  LET vChaveGrupo = FieldValue('chaveGrupo',$(contador));

  LET vNomeGrupo = FieldValue('nomeGrupo',$(contador));

  ACESSOS:

  LOAD

  'ADMIN' as ACCESS,

  'DOMINIO\'&upper(sAMAccountName) as NTNAME,

  Upper('$(vNomeGrupo)') as GRUPO;

  SQL

  SELECT

  sAMAccountName,

  cn

  FROM 'LDAP://dominio.com'

  WHERE memberOf='$(vChaveGrupo)';

NEXT

DROP Table grupos;

SECTION Application;

permissoes:

load * inline

[ GRUPO, UNIDADE, REGIAO

  GERAL, *, *

  IMPRESSAO, IMPRESSAO, 1

  REVENDA, REVENDA, *

  SUL, REVENDA, 2

] ;

Tentei também colocar a SECTION Access no meio do fonte, só carregando a tabela ACESSOS, mas não funcionou a redução.

1 Solution

Accepted Solutions
nicolett_yuri

Segue um exemplo.

No meu caso criei o qvd de acesso com os usuários:

ACCESS, USERID, PASSWORD, GRUPO

ADMIN, USER1, USER1, GERAL

ADMIN, USER2, USER2, IMPRESSAO

ADMIN, USER3, USER3, REVENDA

Acredito que faltou apenas o 1=1 para funcionar seu código.

View solution in original post

9 Replies
nicolett_yuri

1. Sim

2. Sim

OBS: Acredito que você possa fazer todas essas funções em outra app (Gera QVD por exemplo) e carregar a informação pronta para o seu Section Access.

Lembre-se que no Section Access as colunas e valores devem estar todos em caixa alta.

diogoduarte
Partner - Contributor III
Partner - Contributor III
Author

Obrigado Yuri!

Dessa forma realmente que eu consegui resolver. Não estava querendo muito gerar QVD, mas analisando melhor acho que será melhor.

Abs

diogoduarte
Partner - Contributor III
Partner - Contributor III
Author

SECTION Access;

  LOAD ACCESS,

     NTNAME,

     GRUPO

FROM

acessos.qvd

(qvd);

SECTION Application;

permissoes:

load * inline 

[ GRUPO, UNIDADE, REGIAO

  GERAL, *, *

  IMPRESSAO, IMPRESSAO, 010103

  REVENDA, REVENDA, *

  SUL, REVENDA, 010190

] ;

Cara, alguma ideia de porque isso simplesmente não funciona?

nicolett_yuri

Me passa o QVD (acessos.qvd - pode ser modificado) que verifico para você.

Você esta utilizando a Redução Inicial de dados?

diogoduarte
Partner - Contributor III
Partner - Contributor III
Author

Segue anexo Yuri.

Estou com redução dinâmica, segue o QVW também.

nicolett_yuri

Segue um exemplo.

No meu caso criei o qvd de acesso com os usuários:

ACCESS, USERID, PASSWORD, GRUPO

ADMIN, USER1, USER1, GERAL

ADMIN, USER2, USER2, IMPRESSAO

ADMIN, USER3, USER3, REVENDA

Acredito que faltou apenas o 1=1 para funcionar seu código.

diogoduarte
Partner - Contributor III
Partner - Contributor III
Author

Po cara, where 1=1; resolveu mesmo.. haha

valeu!

nicolett_yuri

Já bati cabeça com isso! Só não me pergunte porque utilizar isso.

fernando_tonial
Employee
Employee

Olá Pessoal,

Esse erro ocorre em algumas versões do QlikView, pois o ele faz e leitura otimiza gerando o erro.

Tenho conhecimento desse erro em apenas duas situações: No Section Access e na utilização de Mapping.

A utilização do Where 1=1 é necessária, pois o QlikView deixa de ler o arquivo QVD de forma otimizada.

Outra forma é utilizar função nos campos da tabela de acesso.

LOAD

     UPPER(ACCESS)    AS ACCESS,

     UPPER(NTNAME) AS USER,

     UPPER(GRUPO)    AS GRUPO

FROM

[acessos.qvd]

(qvd);

Abraços.

Tonial.

Don't Worry, be Qlik.