KNIME Server Notification

#1

Hi all,
Currently, I’m building a BI workflow which will have a query executor followed by a “Send mail” node and the rest of BI visualization nodes after this. On query execution, I would like to send a notification (which is in between the workflow). I want to know is it possible to send some link in the mail that would bring the user to the half executed workflow (i.e. display results of the query) and then carry on with the execution of the rest of the workflow (i.e. the BI visualization part)

Workflow:
Query Execution —> Notify —> BI (Visualizations)

Is it possible to provide some link in the mail so that user can presume the workflow from BI (Visualization) when notified?

0 Likes

#2

Hi,

when you say ‘and then carry on with the execution of the rest of the workflow’ do you mean that the workflow continues automatically? How would you start this workflow via KNIME WebPortal or via KNIME Analytics Platform?

I like your idea in general but I’m afraid that this is currently not possible.
To show the visualization in the WebPortal you have to execute the job via the KNIME WebPortal itself as there are two different execution modes: regular (KNIME Analytics Platform,REST API) and wizard (KNIME WebPortal). Only the latter one generates these nice pages that you see on KNIME WebPortal.
Furthermore, while the executor knows the job id (and thus could create a link to the job) the workflow itself doesn’t and I am not aware of any workaround such that your workflow would get its current job id, which is needed to open it in KNIME WebPortal.

One thing that you can do though, is that you provide a string input, where the user can insert the link to the KNIME WebPortal job ( https://docs.knime.com/2019-06/webportal_user_guide/index.html#direct-linking-to-workflows-in-the-webportal ). If this link is present you could send an email to the user with the link in the body, otherwise you may not want to send an email or just provide another body. This is handy if your computation between two pages takes a lot of time. However, as soon as you reach the visualization page the job won’t be executed until the user hits the button to go to the next page.
Keep in mind that this would only work for workflows that are executed in KNIME WebPortal.

Cheers,
Moritz

1 Like

#3

Hi Moritz,
Thank you for your quick reply.
Yes everything would be through the Web Portal.

By this ‘and then carry on with the execution of the rest of the workflow’, I mean that the user should be re-directed to the point in the workflow where the visualization part would begin i.e. (to the page after query execution and where the visualization part would begin). I thought there must be something similar to context properties which might help in extracting the link of the current workflow job which can then be passed in the mail.

Absolutely, I think, I don’t want it to be automatic. It can surely be that the user is just re-directed to the point in the workflow after query execution.

I like your solution of allowing the user to insert the link. However, in that case, the user comes in control and has to ensure he’s entering the right link. But certainly, that’s a decent workaround and surely the way to go for now.

Regards,
Vipul Phulphagar

0 Likes

#4

Hi @vipul,

attached is a template that extracts the job ID for workflows running on the server. You can make use of it to avoid errors of manual input by just adding it to your workflow.

Best,
Marten

templates.knar (14.9 KB)

3 Likes

#5

Hi @Marten_Pfannenschmidt,

That’s great!. Thank you for the solution.
However, when I pulled in the component into my workflow, it gives me error saying that “job-state.json” does not exist. When I manually follow the path, I can only see workflow.knime file but there is no “job-state.json”. I tried this on Client version i.e. Analytics Platform and Web Portal

0 Likes

#6

The component will not work in local execution, as there is no job. However, on the server via WebPortal it should work. The message “job-state.json does not exist” is only a warning in pre executed state. Once the workflow starts running, the json file will be created and then being picked up.

0 Likes

#7

Hi @Marten_Pfannenschmidt,
Yes that’s what I thought so, but it’s not working. Now, in the Web Portal, I’m getting an error saying that Workflow fails to execute.

0 Likes

#8

Do you get any additional information why workflow execution fails? Maybe like “template could not be updated”? If so, disconnecting the link of the component (or saving it somewhere on the server and linking it to that location) should do the trick.

0 Likes

#9

Hi,

What I tried doing is, I dragged the component into the workflow, disconnected it, had to change “String Configuration” node to “String input” as the node was giving some incompatible issues on Server execution.

Now, I want to use the linkWebPortal flow variable into the further components of the workflow. But as it was not working locally there was no way I could pass that variable further to configure the nodes that are ahead i.e. while building the workflow via Analytics Platform.

I had to create a dummy variable with the same name, pass it to further nodes in the workflow to configure them and then delete the dummy variable and again link the “Create WebPortal Link for job” component. Then I tried to execute the workflow on the Server and I just get an error that the workflow didn’t execute successfully. I don’t know if there’s any place where I can check for server logs.

Regards,
Vipul

0 Likes

#10

I’ve created the template with 4.0, so most likely this is the issue why it won’t run on your Server v. 4.8.2. Please find attached another workflow, containing a wrapped metanode providing the same functionality without using any 4.0 features. This should work on your server.
create_webportal_link_for_job.knwf.knar (18.6 KB)

To make this also work in your local Analytics Platform (and make your life easier developing this workflow), you could simulate the Server environment by putting your workflow into a folder named flow and adding a job-state.json to the top folder, i.e. like this:

image

I hope this helps.

2 Likes

#11

Hi,
I really appreciate your help. Although I’m still not able to run the workflow on the KNIME Server.
I’m completely clueless what’s the issue. Could you confirm the file location where the json reader is pointing to is correct?

I had this simple workflow and tried to run it on the Server but it doesn’t seem to workKNIMETry

0 Likes

#12

Do you get any meaningful error message? Either via workflow message (right click the job in KNIME Explorer) or maybe you can open the job via Remote Workflow Editor for debugging? If not, you can download the Executor logs via the administration pages of the WebPortal.

0 Likes

#13

Hi @Marten_Pfannenschmidt,

The issue was that on the Analytics Platform the $Location variable had value as – C:\Users\VP\knime-workspace\flow\create_webportal_link_for_job\workflow.knime hence the Regex – "\\flow\\.\\workflow\.knime"* worked successfully. However, when on the server the $Location variable I presume was getting a value – /srv/knime_server/jobs/f901bd/flow/TP/workflow.knime. So I changed the Regex to – "/flow/./workflow.knime"* and it worked like a charm.

Thank you @Marten_Pfannenschmidt. Really appreciate your help.

Cheers,
Vipul

1 Like