Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
rwunderlich
Partner Ambassador/MVP
Partner Ambassador/MVP

Tricks for scheduling dependent tasks

I'm looking for tips on scheduling large dependent task chains. In QVP 8.5, we had document sets which handled the problem nicely. But document sets are not available in V9.

Here's the scenario. I have a group of 20 QVD reloads that need to execute first followed by the application reloads. The application reloads should not start unitil all QVD reloads are completed. The only way I can ensure all QVD reloads are complete is to run them serially and chain the application reloads off the last QVD.

What I would like to do is run the QVDs in parallel and start the applications when all QVDs are complete. Any ideas on how to do this wihtout just having a single task chain for all QVDs?

I''m facing this problem on both SBE edition and Publisher Enterprise.

Thanks,
-Rob

23 Replies
Not applicable

You need something like this http://www.rubegoldberg.com/ , with flag files and EDX triggers.

-Alex

pkelly
Specialist
Specialist

Utilising Windows Scheduler, I also use batch files to ensure that things run in the correct order....

Keep a spreadsheet which details what batch file a script / report is updated on.

I currently have 6 batch files...

Only have one small report scheduled using the QlikView Managemet Console and run this every 5 minutes to catch the update.

Would like to think that there is a better way than this...

Not applicable

Hi,

Actually the Rube Goldberg machinery is not so complex. You need these:

  • one database table called "rube" with two columns: qv_file (text) and counter (integer)
  • one external command that does

del c:\wherever\*.qvd

  • one database task that trigger that does

update [rube] set [counter]=0;

  • for example 5 reload tasks to run in parallel (generating QVD files)
  • one database task that does

update [rube] set [counter]=[counter]+1 where qv_file='rube';

  • one QVW file with script bellow that will trigger the final reload file. This will wait for some time, than fail on timeout, or trigger the main task on success
  • the main reload and publish task that will use the generated QVDs

Trigger the tasks as in the images bellow

CONNECT TO ..


for i=1 to 100

Counter:

REPLACE LOAD counter;

SQL SELECT counter FROM rube where qv_file='rube';

let c=peek('counter', 0, Counter);

trace $(c);

if $(c) = '5' then

exit script;

end if

sleep 1000 * 60;

next i


failure:

load *;

SQL select * from failure;

pablolabbe
Luminary Alumni
Luminary Alumni

Hi All, Qlikview 10 comes with a new described as follow:

Trigger that fires when multiple events are completed

In addition to the existing triggers which operate with OR logic when combined, we have

added a new trigger with the possibility to combine the other triggers with AND logic.



Did this feature solve your problem ?