Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Qlik Open Lakehouse is Now Generally Available! Discover the key highlights and partner resources here.
cancel
Showing results for 
Search instead for 
Did you mean: 
chaper
Creator III
Creator III

Sheet level Section access issue with NTNAME works on Desktop but not in Access Point

I am trying to implement Sheet level section access based on NTNAME(upper case) as below.I have conditions  as if(Sheet1=1,1,0) and if(Sheet2=1,1,0) on both sheets.It works great in desktop.But when it is published to Server , I can see the application but if I try to open it say "failed to open or don't have to access".I don't know may be the NTNAME on AccessPoint in lower case compared to on desktop?Need help to fix this. swuehlhic marcus_sommer

jagan‌   Thanks

Capture.PNG

Section Access;

LOAD ACCESS,

         NTNAME

FROM Table QlikSection Access;

Section application;

[Sheet Level]:

LOAD

     NTNAME,

     SHEET1,

     SHEET2;

FROM Table QlikSection Access;

26 Replies
chaper
Creator III
Creator III
Author

Thanks Stefan it worked finally .But what i found strange is when I tried to open the app as Service/admin account I am not able to see both sheets ?Admin/Service account should see both sheets right?

My code:

Section Access;

LOAD ACCESS,

         NTNAME,

         SHEETACCESS

FROM Table QlikSection Access;

Section application;

[Sheet Level]:

LOAD

     SHEETACCESS,

     SHEET1,

     SHEET2

FROM Table QlikSection Access;


with a table


SHEETACCESS, SHEET1, SHEET2

A, 1,1

B, 0,1

C, 1,0


and a SA table

ACCESS, NTNAME, SHEETACCESS

ADMIN, SERVICEUSER, *

ADMIN, USERA, A

USER, USERB, B

Peter_Cammaert
Partner - Champion III
Partner - Champion III

AccessPoint displays a document that is/should be reloaded in all cases by the QDS (otherwise you may run into various other "issues"). What happens during that preiliminary reload is:

QVB.exe opens the document

  • If Data reduction is active, all data in the model will get reduced. But that's not important anyway, because
  • on condition that the service account appears in the SA table, and therefore is able to open the document, it will open the document, drop the entire data model and start executing the load script.
  • When the reload finishes, the entire data model, together with everything else in the QVW, is saved to disk. No further reduction is executed before saving this final copy...

When a user subsequently tries to open that same "fully reloaded" document in the AP, and QVS finds a valid entry for that account in the SA table, the document will be openend and - if enabled - data reduction will be applied for that account.

IMHO, the QDS will only save a reduced document when no reload is executed. So it remains a mystery to me why this is happening to chaitanya's document only because of having NTNAME as a link field. If you ask me, your script example must have fixed some other anomaly.

Anyway, your advice still stands: it's considered a best practice to use neither ACCESS nor NTNAME as data reduction fields. But then you may run into other problems, like having multiple conflicting SheetLevel rows for user SERVICEUSER (due to the *), as explained below...

Peter_Cammaert
Partner - Champion III
Partner - Champion III

Do not use the service account to visit your document in the AccessPoint. As you discovered, the technique of granting super-privileges to a background process account may often backfire...

OTOH you may again fix that one by using another tweaked expression in the conditional show of your sheets

chaper
Creator III
Creator III
Author

Thanks swuehlpcammaertmarcus_sommerfoldymanstabben23  krishnacbe for help on this

chaper
Creator III
Creator III
Author

Thanks.Sheet level section access based NTNAME is still mystery for me.It should be straight forward approach.For now I will use separate reduction field to do SA for Sheet access.

swuehl
MVP
MVP

Peter, you are absolutely right about the working principles of the QVB process.

Just to clarify, chaitanya, could you describe which steps you've performed when testing the QVW on the accesspoint?

(For example, have you used a task on the QMC to reload and publish the QVW? Or just copied the QVW to the published folder manually?)

If you want the service user (which has apparently conflicting settings on sheet level access, because it is linked to all access rules) to access all sheets, you can consider using Max() function to check if the user is granted access at least once:

if(Max(Sheet1)=1,1,0)

chaper
Creator III
Creator III
Author

I scheduled task on QMC to reload and publish the app.