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

SECTION ACCESS et Reduction

Bonjour,

je progresse dans ma création d'application mais là je me retrouve bloqué sur le fonctionnement des Reduction dans la Section Access. 

J'ai construit une micro application pour comprendre le fonctionnement. Cette application charge une table oracle de cette façon :

Set dataManagerTables = '','Z_QLIK_ABSENCE_AGENT';
//This block renames script tables from non generated section which conflict with the names of managed tables

For each name in $(dataManagerTables)
Let index = 0;
Let currentName = name;
Let tableNumber = TableNumber(name);
Let matches = 0;
Do while not IsNull(tableNumber) or (index > 0 and matches > 0)
index = index + 1;
currentName = name & '-' & index;
tableNumber = TableNumber(currentName)
matches = Match('$(currentName)', $(dataManagerTables));
Loop
If index > 0 then
Rename Table '$(name)' to '$(currentName)';
EndIf;
Next;
Set dataManagerTables = ;


Unqualify *;

LIB CONNECT TO [Oracle_srvciril (caluire_amd)];

[Z_QLIK_ABSENCE_AGENT]:
SELECT "CODE_ABSENCE",
"MATRICULE",
"MOIS_ABSENCE",
"NBR_JOU_ABS"
FROM "GRHPROD_DAA"."Z_QLIK_ABSENCE_AGENT";

J'ai ajouté une nouvelle section que j'ai appelé Accès aux feuilles. Dans celle-ci j'ai créé la section suivante : 

SECTION Access;
LOAD * Inline [
ACCESS, USERID, MATRICULE
USER, CALUIRE\amd, '00101594'
];
Section Application;

Cependant au moment du chargement des données j'obtiens un message d'erreur : 

Connecté
Z_QLIK_ABSENCE_AGENT << QueryResult Lignes extraites : 4 263 INLFED << 9bf41513-9669-4754-b3ca-522d7f7a118f Lignes extraites : 1 Accès refusé après le chargement. Assurez-vous que l'utilisateur qui charge le script figure bien dans l'accès de section du script.
 
Les données n'ont pas été chargées. Corrigez l'erreur, puis recommencez l'opération de chargement.
 
Merci de votre aide car j'ai bien compris que cela viens de la section access et surtout de la colonne MATRICULE mais je n'arrive pas à voir ce qui manque.
12 Replies
marinadorcassio1
Partner - Creator
Partner - Creator

Bonjour, personnellement j'essaierai déjà de mettre ton utilisateur en tant qu'admin plutôt que user, puis utiliser un autre utilisateur avec l'accès 'USER' et son matricule pour tester. Ensuite, si tu lances le rechargement depuis la QMC, il faut que tu rajoutes INTERNAL\SA_SCHEDULER en tant qu'admin. Le Help de Qlik au sujet de la section access est bien fait :

https://help.qlik.com/fr-FR/sense/September2020/Subsystems/Hub/Content/Sense_Hub/Scripting/Security/...

 

Aussi, ta section Access doit se placer avant la création de ta table [Z_QLIK_ABSENCE_AGENT] il me semble

AlbanMONTBILLIARD
Contributor II
Contributor II
Author

Le souci en mon utilisateur en ADMIN c'est que pour le coup il a accès à tout ce qui n'est pas mon souhait.

J'ai modifié la section Access comme suit: 

SECTION Access;
LOAD * Inline [
ACCESS, USERID, GROUP, MATRICULE
USER, CALUIRE\amd, *, 00101594
ADMIN, INTERNAL\SA_SCHEDULER, *, *
];
Section Application;

Cependant cela ne change pas le message d'erreur.

marinadorcassio1
Partner - Creator
Partner - Creator

Oui je comprends mais ça aurait été pour commencer, possible d'essayer ? Tu testes sur un serveur ou sur un Desktop ? Tu as un autre utilisateur sous la main pour tester, autre que le tien, à qui on pourrait mettre l'accès 'USER' ?

AlbanMONTBILLIARD
Contributor II
Contributor II
Author

Le problème est que je suis en SSO donc authentification automatique. Donc à moins de me mettre sur une autre session et de la paramétrer dans les groupes AD c'est pas pratique.

J'ai testé en me mettant en admin mais le problème c'est que cela ne restreint pas mes droits, j'ai accès à tout donc je ne peux rien tester. 

Sinon pour ce qui est de la version, je suis en qlik sense entreprise (web)

marinadorcassio1
Partner - Creator
Partner - Creator

D'accord, donc pour moi le template est bon, en fait je pense juste (je ne suis pas experte des sections access...) que comme tu es le propriétaire de l'application, QlikSense ne te laisse pas t'attribuer un acces USER pour la section access. Je pense que si tu utilises l'acces USER et restreints les données d'autres utilisateurs cela va fonctionner, mais ton utilisateur doit rester admin. 

AlbanMONTBILLIARD
Contributor II
Contributor II
Author

Je viens de tester en ajoutant un nouvel utilisateur, cela modifie le script comme suit :

SECTION Access;
LOAD * Inline [
ACCESS, USERID, GROUP, MATRICULE
ADMIN, CALUIRE\amd, *, *
USER, CALUIRE\PRET, *, 00101594
ADMIN, INTERNAL\SA_SCHEDULER, *, *
];
Section Application;

Le chargement ce fait correctement mais lorsque j'essai d'ouvrir l'application avec l'utilisateur pret, j'obtiens accès refusé.

marinadorcassio1
Partner - Creator
Partner - Creator

Je pense que le fait que le Matricule commence par "00", en format numérique ça doit poser problème (il doit les enlever). Essaie de mettre entre quote dans la section access, et forcer le champs en string dans la création de ta table

AlbanMONTBILLIARD
Contributor II
Contributor II
Author

Je viens de tester en mettant en enlevant les 2 zéro, en mettant entre ' ou entre " mais toujours le même résultat. 

Par contre je ne sais pas forcer le type de la donnée.

marinadorcassio1
Partner - Creator
Partner - Creator

[Z_QLIK_ABSENCE_AGENT]:
SELECT "CODE_ABSENCE",
TO_CHAR(MATRICULE)  MATRICULE,
"MOIS_ABSENCE",
"NBR_JOU_ABS"
FROM "GRHPROD_DAA"."Z_QLIK_ABSENCE_AGENT";

Et 

SECTION Access;
LOAD * Inline [
ACCESS, USERID, GROUP, MATRICULE
ADMIN, CALUIRE\amd, *, *
USER, CALUIRE\PRET, *, '00101594'
ADMIN, INTERNAL\SA_SCHEDULER, *, *
];
Section Application;

 

En espérant que ce soit ça le problème