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: 
Anonymous
Not applicable

how to call next components after completion of multiple if conditions.

Hi,

 

How to call next components after completion of multiple if conditions.

 

PFA screen shot for your references.

 

How to call after tfileCopy1 to tfileCopy3  is on components OK or if any one or two or all components OK .

 

Then only run the next any components like toracleSP_t etc.

 

Thanks

Shree

 

 

 

Thanks

Shree

Labels (2)
17 Replies
Anonymous
Not applicable
Author

Hi Chris,

 

Sorry for small change in job.

 

PFA screen shot for your references.

 

If am connect tfilelist ---> interate -->tjava-->run if1, runif

 

if i do this i won't get subok trigger.

 

Thanks

Shree


muti.PNG
Anonymous
Not applicable
Author

The tJavaFlex in your example job will have a OnSubjobOk trigger, and it's this component which will be replaced with multiple (probably just tJava) components joined by OnSubjobOk triggers, one for each Run If, to ensure the execution order you require.

Anonymous
Not applicable
Author

Hi Chris,

 

I have tried that one. But order of run if condition is not loading properly. order 1 trigger after order 2.

 

Any other suggestion, would be very helpful.

 

Thanks

Shree

Anonymous
Not applicable
Author

As I've explained in each of my previous posts, you need to have MULTIPLE components replacing the single one you have which currently has all of the Run If's, in order to ensure sub-jobs are executed in a specific order.

 

Each will have just a single Run If, as follows:

 

0683p000009LraI.png

Anonymous
Not applicable
Author

Hi Chris,

 

Okay Let me try this one.

 

Thanks

Shree

Anonymous
Not applicable
Author

Hi Chris,

 

Could you me give me example for below line.  Bit confusion on tSetGlobalvariable.

 

If necessary, you could reference the Boolean global variables set in each sub-job later in the job to see if any, all, or a specific combination of the sub-jobs ran.

Of course, it you just need to know whether ANY of the sub-jobs ran, you can use a single global Boolean variable.

 

How to set or check multiple run if before proceed to next components?

 

Thanks

Shree

Anonymous
Not applicable
Author

Hi Shree,

 

I'm not clear what you're trying to do, so will assume you want to just want to run the first of these sub-jobs which matches its relevant condition.

 

 

In each of the sub-jobs you have a tSetGlobalVar component, as per my example above, which sets a variable indicating that it has been run. Let's call it "fileCopied", and set it to true. You will do exactly the same thing, setting this same global variable to true in the tSetGlobalVar component in every sub-job.

 

In all of the tJava components with a Run If, you would simply add the following code to the condition you already have in Run If:

 

&& !((Boolean)globalMap.get("fileCopied"))

What this will do, is ensure the Run If condition WILL NOT be met if the "fileCopied" global variable has been set to true, which will be the case if any of the previous sub-jobs have been executed successfully.

 

As a result, only the first of the sub-jobs will be executed.

 

 

Regards,

 

 

Chris

Anonymous
Not applicable
Author

Hi Chris,

 

I am attaching my jobs. Please have a look once.

 

Mean while i check and try review your points which mentioned in posts.

 

Please let me know if you need any information.

 

Thanks

Shree


Recon_P_Copy.zip