Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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 :
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 :
Aussi, ta section Access doit se placer avant la création de ta table [Z_QLIK_ABSENCE_AGENT] il me semble
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.
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' ?
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)
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.
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é.
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
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.
[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