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

Sheet Section Access help

Hello

I have the following section access which gets information about the sceurity for the NTNAME from a spreadsheet.  I have also attached the spreadsheet for your reference.

The spreadsheet Loads in O.K,

I have a front page to my document where I want users to see that dashboards exist but when they click on the button, they cannot go any further

What conditional show will I need to put in order for the users to be able/not access pages according to what the spreadsheet says

SECTION ACCESS;
LOAD
'S-1-5-21-133631074-2907035605-456469473' as NTDOMAINSID,
USER AS NTAME,
     ACCESS AS ACCESS,
     PATIENT_LEVEL,
     SHEET_ACCESS
FROM
C:\QLIKVIEW\DEVELOPMENT\ACCESS\Dashboard_Access.xlsx
(ooxml, embedded labels, table is ACCESS);
Section Application;
ACCESS_CONTROL:
load * inline [
PATIENT_LEVEL,access_type
1,Y
0,N
];
SHEET_ACCESS:
LOAD *
FROM
C:\QLIKVIEW\DEVELOPMENT\ACCESS\Dashboard_Access.xlsx
(ooxml, embedded labels, table is SHEETS);
3 Replies
Not applicable

what is that table for?

ACCESS_CONTROL:

load * inline [

PATIENT_LEVEL,access_type

1,Y

0,N

];

helen_pip
Creator III
Creator III
Author

Hello

Thank you for your response!

That part of the access_control is seperate.

I also want you to know that the abve syntax is now working.  By writing this, I need to make sure the conditional show =[Page Name] and I forgot the fact that you ahve to save the QVW and then come out of the document in order for it to work properly

Thank you for your response, bit I think I was a little hasty on posting this on-line

Thanks

Helen

heimo_ernst_wei
Contributor III
Contributor III

I 've had the same (or very similar) problem and found the solution through the following contribution:

http://community.qlik.com/message/101149#101149

My final solution is as follows:

in the section access I load (actually) three tables if I expand the security others will follow.


Load

UPPER ("qvac_id") as ACCIC,
UPPER("ACCESS") as ACCESS,
UPPER("NTSID") as NTSID;
SQL SELECT * FROM "xxx".dbo."QlikViewAccessBasis";

Load
UPPER ("qvac_id") as ACCIC,
"rp_id_m" as SALESMAN;
SQL SELECT * FROM "xxx".dbo."QlikViewAccessSales";

Load
UPPER ("qvac_id") as ACCIC,
"SHEETID" as SHEETID;
SQL SELECT * FROM "xxx".dbo."QlikViewAccessSheets";


"qvac_id" is a unique code which defines the user via the NTSID (first table)

"rp_id_m" is the code I am using for an employee in my database

"SHEETID" is a uniqe ID for a sheet accoring the solution mentionned above.

Set the sheet properties / Conditional Show

  =Sum(if(SHEETID='SH01',1,0))>=1

It is important that you will use somewhere the fields which are giving the rights in you rsection application too.

The field "salesman" is in the application direct linked to the person with a load statement for the table with the employees data

The field "SHEET_ID" is loaded in a table (unlinked to any other table) with a single column by the following statement:

AC:

Load
DISTINCT ("SHEET_ID") as SHEETID;
SQL SELECT * FROM "cee_datawarehouse".dbo."QlikViewAccessSheets";

This works quite well and ca be expanded with another table for "OMIT" or similar.

Please be caeful, if you enforce "Strict Exclusion" you have to fill in reall ALL options for users - if you dont enable it users which have no information in a specific field can see all "values"

Regards

Heimo