rerun local workflows (workflow not resetting)

I have noted similar topics but either have missed the answer or doesnt quite match my requirements…

I am trying to run a “parent” workflow calling multiple “child” local workflows. To test this as an example, all the “child” local workflows are doing is updating a table with a value
Eg.

  1. if all workflows are in a reset state, running the “parent” workflow results in all workflows executing and the table being updated (this is correct)

  2. The problem occurs when re-running “parent” workflow. It runs as if everything has worked, however, the table is not updated. I believe this is due to the fact that the “child” workflows have not been reset and are in a “success” state from the previous run…

I am possibly trying to use Knime in an incorrect manner. I am trying to have a daily task that runs multiple transformations (“child” workflows) but as its currently stands, I need to manually reset all workflows before running which is not ideal.
I would like to simply open Knime each morning and execute the single “parent” workflow. At a later stage, Id like to run the parent in a batch process but just trying to get this to work in a suitable manner right now

Am I misunderstanding how to best utilise Knime to achieve this? Is there a way to programatically reset the workflows before running them from the “parent”? Or possibly a global setting to reset workflows/nodes on start-up?

Any assistance is appreciated…

Unfortunately I have not found a way to force the workflow to be reset at the start. This only seems to work with KNIME server. And well maybe this is a step of productivity KNIME wants you to actually pay for.

It might be possible to use a cron job on Unix/Linux that calls a batch version of KNIME to achieve something similar. But I have no real experience with that.

What does work is to have a parent workflow that calls sub-workflows which are in a reset state at the beginning. With the call structure you might be able to have some indicator that the workflow is finished and if it stopped in an unfinished mode you could restart at a specific workflow but still all of them would not be in a saved state. Although during the time of execution you could open them and see what is going on.

I have thought about a way to connect all nodes within one workflow to a node I could sort of force to do something regardless of how it is called but have not been successful with my imagination.

image

A simple example of a sub-workflow structure being called can be found here:

1 Like

Hi @toshach!

I don’t think you are using KNIME in a incorrect manner and even better news is there is no need to reset all child workflows each time as they shouldn’t be saved after execution. What seems is happening is when re-running the parent workflow without closing it first. As @mlauber71 picture shows then there is green dot left on all of your child workflows(after first execution). In this case child workflow is in state executed and re-running parent workflow won’t have effect of course. Resetting parent workflow doesn’t help here as connection between workflows is left (green dot is still there). Solution would be to close parent workflow and re-run it then. Your table should be updated :slight_smile:

Regarding calling KNIME in a batch mode using nodes calling other workflows check this topic:

Br,
Ivan

1 Like

Hi guys and ladies,

I have the same problem… I could solved it with a batch call on command window. eg:

knime.exe -consoleLog -noexit -nosplash -application org.knime.product.KNIME_BATCH_APPLICATION -workflowDir=“D:\Knime_Projetos\teste_url\teste_url”

When it runs, it reset the status of the workflow a play again all stages. With a “cron” (unix/linux) or a scheadule task (windows), it can runs repeated times.

I understand that can be a dummy way to use workflow inside another workflow, I tried as information below.

image

The others workflows call as the same information, just change the workflow path.

automacao.knwf (10.2 KB)

If its helps someone, i’ll be greatful… and if someone have a better example how to cascade workflows into a single file, show me! ok?

Tks,

Denis

Hi folks!!!

After a lot of tries, I found a way to run workflows in cascade mode. You can create One workflow and inside, call others in batch as the prints below.

First, you need the “Call Local Workflow” node to do it. I started with a “Table Creator” to put a field called “Status” with the information “WF Started!”. Then, I inserted the node, one after one, about a five (5) nodes at all.

At each node, you set the workflow path directly. When the master workflow will be run, each node will run sequentially.

Each one has a output information as a status:

image

You can put at the last step a output file as CSV to make as a log file.

Well, I found this way… I hope it helps someone!

Tks, Denis

2 Likes

So you use “Call Local Workflow” from another workflow to execute what you show on the image?

Yes Daniel, this node call the workflow as you set up… just it… the main workflow will process in batch or parallel format, as you wish…

1 Like

This topic was automatically closed after 15 hours. New replies are no longer allowed.