Qlik Community

QlikView App Dev

Discussion Board for collaboration related to QlikView App Development.

Announcements
QlikWorld 2022, LIVE in Denver CO., May 16-19, 2022. REGISTER NOW TO RECEIVE EARLY BIRD PRICING
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Partial Reload

Hi all,

I use 'Section Access' in my documents and so when the document reloads (full) so does the security details.

I have a large document where I need to add/remove new users but without having to reload the entire document, which takes quite some time. No problem, I thought, I'll just change the 'LOAD' to a 'REPLACE LOAD' in 'Section Access'. This would drop/recreate the 'Section Access' table and retain all the tables 'LOAD'ed by the previous full load.

However, although the partial reload does indeed run as expected, it still executes other statements. In this particular case, it also executes 'DROP FIELD' statements in the script and of course these do not exist in the existing dataset and so the script runs with errors.

I guess I could think about loading the data in one QVW then have a second using 'BINARY LOAD' with 'Section Access' but that seems like a lot of effort; I could also think about passing a variable to the load and using this value to control which statements are executed but again seems a lot of effort.

What is the best way of achieving this?

What exactly does a 'partial reload' do i.e. which statements are always executed?

Thanks!

Gordon

1 Solution

Accepted Solutions
Miguel_Angel_Baeyens

Hi Gordon,

The partial reload executes all the script (including DROPs, SETs, LETs) but only LOAD when is preceded by ADD or REPLACE. ADD and REPLACE can be followed by keyword ONLY that means that those LOADs will only take place if a partial reload has been triggered, otherwise they will be left as they are.

Using all the DROP statements within a IsPartialReload() conditional as suggested by Krunoslav above may be a good idea.

But if you only want to change your section access (if that is the only table that is going to be added or replaced) then you may set all your scripting within a IsPartialReload() conditional, or rather use a variable or even a QVD if your security configuration allows you to do that, so you can load the QVD with the users using EXISTS(). The variable is a good idea as well.

Hope that helps.

Miguel Angel Baeyens

BI Consultant

Comex Grupo Ibérica

View solution in original post

8 Replies
Not applicable
Author

Hi Gordon,

maybe 'Reload' statement was called by accident. This can happen if you tried to call 'Partial Reload' from Edit Script dialog by shortcut <Ctrl>+<Shift>+<R>. It will run 'Reload' statement.

In the script things related to partial reload can be executed with IsPartialReload() condition:

if IsPartialReload() then

     ...

// exit from the script explicitly

exit script;

end if;

regards

Miguel_Angel_Baeyens

Hi Gordon,

The partial reload executes all the script (including DROPs, SETs, LETs) but only LOAD when is preceded by ADD or REPLACE. ADD and REPLACE can be followed by keyword ONLY that means that those LOADs will only take place if a partial reload has been triggered, otherwise they will be left as they are.

Using all the DROP statements within a IsPartialReload() conditional as suggested by Krunoslav above may be a good idea.

But if you only want to change your section access (if that is the only table that is going to be added or replaced) then you may set all your scripting within a IsPartialReload() conditional, or rather use a variable or even a QVD if your security configuration allows you to do that, so you can load the QVD with the users using EXISTS(). The variable is a good idea as well.

Hope that helps.

Miguel Angel Baeyens

BI Consultant

Comex Grupo Ibérica

View solution in original post

Not applicable
Author

Thanks guys,

I had forgotten about 'IsPartialReload' and I will wrap this test around the 'Section Application' script so that it is skipped during partial reload.

Regards,

Gordon

Not applicable
Author

Hi,

Did you get this to work? I have the exact same problem and I only want to reload the access parts without touching the rest of the report.

I tried using IsPartialReload() but the application can't be accessed through the access point.

Thanks,

Magnus

IAMDV
Luminary Alumni
Luminary Alumni

I understand this is old thread but here are my two cents. We can use Exit Script immediately after the script which we wanted to execute and then run the partial reload. Also, I would recommend using the "Only" qualifier in the Partial Reload script to disregard this script in the normal reload.

Good luck!

Cheers - DV

er_abhichandra
Contributor III
Contributor III

Hi Gordon,

There is no direct solution to this problem. Though what you can do is load your section access info at the last and drop all your required tables before that. That ways you wont have to use the IsPartialLoad() function and manipulate your script.

Hope this helps,

Regards,

Abhinava

IAMDV
Luminary Alumni
Luminary Alumni

Abhinava, just to let you know - this thread is more than 2.5 years old! Don't think Gordon is still looking for an answer. His quest is completed

Cheers,

DV

www.QlikShare.com

er_abhichandra
Contributor III
Contributor III

HI Deepak,

I did notice that but thanks anyway for reminding me .

Sharing of knowledge is never a waste whenever it is done!!

Regards,

Abhinava