Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
Briinou
Contributor III
Contributor III

OSUser avec concaténation

J'ai un petit soucis concernant la restriction d'affichage d'un objet sous Qlikview : je gère l'affichage de cet objet grâce à l'affichage conditionnel dans les paramètres de l'objet.
Potentiellement, cette liste d'utilisateurs peut varier et je préfèrerai que la liste des utilisateurs ayant l'accès se mette à jour de manière dynamique. Une table SQL est importée dans mon application Qlikview et liste l'ensemble des utilisateurs pouvant voir l'objet.


Pour cela, j'utilise la fonction CONCAT suivante :

='OSUser() = ''' & concat(ID_LOGIN,''' or OSUser() = ''') & '''

 

Ce qui me donne un résultat affiché qui me va bien :

OSUser() = 'Domaine\Util1' or OSUser() = 'Domaine\Util2'

 

Cependant, lorsque je mets ce code dans la partie "affichage conditionnel de l'objet", rien ne passe. C'est comme si le code n'était pas reconnu.
Ma fonction est bonne puisque si je copie le résultat à la place de la formule dans l'affichage conditionnel, cela fonctionne bien.


Est-ce impossible de générer une liste de OSUser() dynamique pour faire de l'affichage conditionnel ?
Merci par avance pour votre aide et vos éventuelles solutions...

Bonne journée 

1 Solution

Accepted Solutions
Dref278
Creator
Creator

Bonjour,

Si j'ai bien compris, ce que vous voulez, c'est que quand l'utilisateur est ajouté dans la table SQL, cela lui donne accès à l'objet concerné.

Si c'est bien ça, j'ai eu la même problématique et je l'ai géré de la manière suivante. J'ai créé une table avec la liste des utilisateurs et un profile pour chacun. En l'occurrence, vous n'auriez qu'un profil, disons le profil A.

 

Vous auriez donc dans votre table :

Utilisateur, Profil

Domain\Util1, A

Domain\Util2, A

 

Ensuite, dans la condition d'affichage vous mettez l'expression suivante :

Only({<Utilisateur={'$(=OSUser())'}>} Profil)='A'

 

J'espère que cela fonctionnera pour vous.

De mon côté, je n'avais qu'un seul domaine, j'ai donc chargé uniquement le login de l'utilisateur dans la table et j'ai utilisé l'expression suivante :

=ONly({<Utilisateur={'$(=SUBFIELD(osuser(),'=',3))'}>} PROFIL)='A'

 

Cdlt,

Pour avoir une bonne réponse, il faut poser la bonne question (Chat GPT, 2023)

View solution in original post

4 Replies
kfoudhaily
Partner - Creator III
Partner - Creator III

bonjour,

esseyez la fonction suivante dans la barre condition d'affichage:
if(match(OSUser,concat(ID_LOGIN,',')),1,0)

 

cordialement,

QlikView Qlik Sense consultant
Briinou
Contributor III
Contributor III
Author

Hello,
Merci beaucoup pour la solution proposée. Cependant, cela ne semble pas résoudre le problème.

Le concat(ID_LOGIN) contient bien mon OSUser(), malgré tout la fonction match sort zéro en résultat.
J'ai adapté le concat afin d'afficher les apostrophes : mais pareil....

match(OSUser(),'''' & Concat(ID_LOGIN_QV,''',''') &'''')

J'ai également essayé avec les fonction wildmatch et mixmatch, sans succès.

Dref278
Creator
Creator

Bonjour,

Si j'ai bien compris, ce que vous voulez, c'est que quand l'utilisateur est ajouté dans la table SQL, cela lui donne accès à l'objet concerné.

Si c'est bien ça, j'ai eu la même problématique et je l'ai géré de la manière suivante. J'ai créé une table avec la liste des utilisateurs et un profile pour chacun. En l'occurrence, vous n'auriez qu'un profil, disons le profil A.

 

Vous auriez donc dans votre table :

Utilisateur, Profil

Domain\Util1, A

Domain\Util2, A

 

Ensuite, dans la condition d'affichage vous mettez l'expression suivante :

Only({<Utilisateur={'$(=OSUser())'}>} Profil)='A'

 

J'espère que cela fonctionnera pour vous.

De mon côté, je n'avais qu'un seul domaine, j'ai donc chargé uniquement le login de l'utilisateur dans la table et j'ai utilisé l'expression suivante :

=ONly({<Utilisateur={'$(=SUBFIELD(osuser(),'=',3))'}>} PROFIL)='A'

 

Cdlt,

Pour avoir une bonne réponse, il faut poser la bonne question (Chat GPT, 2023)
Briinou
Contributor III
Contributor III
Author

Bonjour,

C'est tout à fait ça !
Je viens de tester = c'est ok sur l'application Qlikview qui me permet de développer l'outil. Un grand merci pour l'astuce !


Par contre, c'est KO lorsque je déploie l'application sur mon serveur Qlik pour consultation : je vais me renseigner en interne pour savoir comment fait.

 

Bonne journée,