Skip to main content
Announcements
See why Qlik is a Leader in the 2024 Gartner® Magic Quadrant™ for Analytics & BI Platforms. Download Now
cancel
Showing results for 
Search instead for 
Did you mean: 
dirk_fischer
Creator II
Creator II

Updating section access with partial reload does not overwrite old section access settings

Dear all,

we try to update our section access, when doing a partial reload. Attached is the code of the sample application, we use. If we run the code as full reload, everything works as expected. The user FISCHERD has access to the number 3 only.

If we run the same script as partial reload, the user FISCHERD has access to the numbers 3 AND 5 instead of 5 only.

 

Does anybody have an idea, where this is coming from and how to overcome this problem?

 

Thank you very much for your support.

 

Best regards

 

Dirk

 

ZAHLEN:
Replace Load * inline [ ZAHL, WORT, REDUCTION
1,  EINS, 1
2,  ZWEI, 2
3,  DREI, 3
4,  VIER, 4
5,  FUENF,5
6,  SECHS, 6
7,  SIEBEN, 7
8,  ACHT, 8
9,  NEUN,9
10, ZEHN,10
11, ELF,11
12, ZWOELF,12
13, DREIZEHN,13
14, VIERZEHN,14
15, FUENFZEHN,15
16, SECHSZEHN,16
17, SIEBZEHN, 17
];
 
/*
Call createBaseUserTable;
call DropTable('TEMP_ACCESS_TABLE');
Rename Table 'BASE_USER_TABLE' to 'TEMP_ACCESS_TABLE';
Exit Script;
Left Join(TEMP_ACCESS_TABLE)*/
If IsPartialReload() Then
TEMP_ACCESS_TABLE:
Replace NoConcatenate Load * Inline [ACCESS, USERID   ,REDUCTION
USER, ACCOUNTS\FISCHERD, 5
ADMIN, ACCOUNTS\SCHMIDRU,3
    ADMIN, ACCOUNTS\SCHMIDRU,5
ADMIN, INTERNAL\SA_SCHEDULER,
ADMIN, INTERNAL\SA_API, 
];
Else
TEMP_ACCESS_TABLE:
Replace Load * Inline [ACCESS, USERID   ,REDUCTION
USER, ACCOUNTS\FISCHERD, 3
ADMIN, ACCOUNTS\SCHMIDRU,3
    ADMIN, ACCOUNTS\SCHMIDRU,5
ADMIN, INTERNAL\SA_SCHEDULER,
ADMIN, INTERNAL\SA_REPOSITORY, 
ADMIN, INTERNAL\SA_API, 
];
End If
 
Section Access;
ACCESS_TABLE:
    NoConcatenate
    REPLACE LOAD * Resident TEMP_ACCESS_TABLE;
Section Application;
DropTable TEMP_ACCESS_TABLE;

 

Labels (3)
1 Solution

Accepted Solutions
TauseefKhan
Creator III
Creator III

Hi @dirk_fischer,

I think partial reload is not fully replacing the section access table with the new data. Explicitly replace the section access table during a partial reload to ensure that the new data completely overwrites the existing section access table.

Check with this steps:

//1- Your Data source.

//2- Clear the existing section access table
Section Access;
LOAD * INLINE [
ACCESS, USERID, REDUCTION
];

//3- Partial Reload
If IsPartialReload() Then

//4- Replace the section access table with the new data

Section Access;
LOAD * INLINE [
ACCESS, USERID, REDUCTION
USER, ACCOUNTS\FISCHERD, 5
ADMIN, ACCOUNTS\SCHMIDRU, 3
ADMIN, ACCOUNTS\SCHMIDRU, 5
ADMIN, INTERNAL\SA_SCHEDULER,
ADMIN, INTERNAL\SA_API
];
Else
// Full Reload
Section Access;
LOAD * INLINE [
ACCESS, USERID, REDUCTION
USER, ACCOUNTS\FISCHERD, 3
ADMIN, ACCOUNTS\SCHMIDRU, 3
ADMIN, ACCOUNTS\SCHMIDRU, 5
ADMIN, INTERNAL\SA_SCHEDULER,
ADMIN, INTERNAL\SA_REPOSITORY,
ADMIN, INTERNAL\SA_API
];
End If;

Section Application;

******** Hope this resolve your issue.
If the issue is solved please mark the answer with Accept as Solution & like it.********

View solution in original post

2 Replies
TauseefKhan
Creator III
Creator III

Hi @dirk_fischer,

I think partial reload is not fully replacing the section access table with the new data. Explicitly replace the section access table during a partial reload to ensure that the new data completely overwrites the existing section access table.

Check with this steps:

//1- Your Data source.

//2- Clear the existing section access table
Section Access;
LOAD * INLINE [
ACCESS, USERID, REDUCTION
];

//3- Partial Reload
If IsPartialReload() Then

//4- Replace the section access table with the new data

Section Access;
LOAD * INLINE [
ACCESS, USERID, REDUCTION
USER, ACCOUNTS\FISCHERD, 5
ADMIN, ACCOUNTS\SCHMIDRU, 3
ADMIN, ACCOUNTS\SCHMIDRU, 5
ADMIN, INTERNAL\SA_SCHEDULER,
ADMIN, INTERNAL\SA_API
];
Else
// Full Reload
Section Access;
LOAD * INLINE [
ACCESS, USERID, REDUCTION
USER, ACCOUNTS\FISCHERD, 3
ADMIN, ACCOUNTS\SCHMIDRU, 3
ADMIN, ACCOUNTS\SCHMIDRU, 5
ADMIN, INTERNAL\SA_SCHEDULER,
ADMIN, INTERNAL\SA_REPOSITORY,
ADMIN, INTERNAL\SA_API
];
End If;

Section Application;

******** Hope this resolve your issue.
If the issue is solved please mark the answer with Accept as Solution & like it.********

dirk_fischer
Creator II
Creator II
Author

Hi @TauseefKhan 

 

great, this did the trick.

 

Thank you very much for your help.

 

Best regards,

 

Dirk