DataApp Development - here's a challenge

Dear KNIMErs,

I am thinking of use cases for data apps. One idea would be a huge rate card I have for time and material services by suppliers (where I take the role as a buyer):

You have categores A to D, where A is a junior developer, B is a developer, C is senior developer etc.

For each of these categories I have one or more line items with prices for each seniority.

So far so good, I import this from an existing (Excel) database.

Here comes the challenge.

  1. I want to give the user the ability to add countries for each supplier. These basically describe in which countries this supplier is active (not all suppliers are active in all countries, some suppliers are active in more than one country)…

So the idea is they enter a country (let’s say Germany) and it gets added to the table as a Boolean data type with empty cells

Then the user could either stop entering countries or click a “Add another country” button to add another country which then gets added as a new column again.

I tried to develop this using the Refresh Button Widget but that somehow doesn’t work out, as it overwrites the existing (last) column.
So why Booleans? Because I would love to have the opportunity for the user to tick a checkbox and say, yep, this supplier is working in this country. If it is not, then not.

I have been playing around with this using this (examplified) workflow:

THANK YOU in advance.

2 Likes

I somehow can’t wrap my head around how the Refresh Button Widget Node together with components.

We’re talking about Data Apps all the time, hence i thought it must be possible to add either columns or rows after a user manually enters something into a “form”. If a user cannot edit or add to the content of an app, I would rather consider this a Data Viewing App than a Data App which - from my point of view - is a substantial different thing (PowerBI for me is Data Viewing App, a python script that lets me enter data to a database is a “true” :wink: data app)

I thought I let the refresh button widget re-execute more or less the whole component and then it adds to the existing content but instead, it overwrites (which is not what I want). I also tried with temp tables (although I would potentially consider this a somewhat weak solution) but that didn’t work either.

Any ideas?

Hey, @kowisoft. Thanks for your post! It was, in fact, a challlenging use case.

If I understood the specs correctly, I have adapted your workflow to reproduce the expected behaviour.

Below you have a gif showing the Data App. Let me know if you are trying to build something similar. :film_projector: :point_down:t2:

data_app

BR

5 Likes

Yes… Exactly what I am looking for!! :slight_smile:

Looking at the GIF, I wonder if eventually the confirm changes button (aka Save button :wink: ) is the part I am missing.

Would be really curious to see the inner workings of this

Ok, perfect then :ok_hand:t2:

I am sharing the link to the workflow:

:link: addAnotherCountry – KNIME Hub

Let me know if you have further questions about it

2 Likes

Wow, this is pretty cool

The Wolf Of Wall Street Clap GIF - The Wolf Of Wall Street Clap Clapping GIFs

If you allow, I have a few questions:

  1. Is the Excel Reader / Data Area Connector crucial or could that also be a fed in table e. g. from a previous data cleaning step?
    a. If the Excel Reader / Data Area Connector is required, does that somehow serve as a “temporary table”?
  2. You are using the Table Editor (after the Column Appender) to immediately set either “true” or “false”, correct?
  3. Is the Reset File subcomponent crucial to the workflow?

Thanks again, this is exactly what I needed, I now try to understand the whole workflow. :slight_smile:

I am answering your points below. :point_down:t2:

1- Using this approach is essential to “respect” the sequence:
Data Input → Write Temporary File → Read Temp file → Overwrite Temp File

So I would say yes, creating an “intermediate” version of your table is important. Say that; the format could be whatever clean data you want to pass, but then you need to create a temp version: an Excel File, Google Sheets, a Database, etc.

For instance, if you are working on your Local Machine, write a temporary version of your input data in a local folder, read it, append your new column, and overwrite your original version to iterate again if necessary.

2- Yes, I am using the Table Editor node for this purpose. Unfortunately, we don’t have the ticks to set the cell true or false with the native KNIME nodes. You need to do it manually :writing_hand:t2:

3- No, it’s something that I have added. I thought the final user may need to reset the table to start the process again. :dizzy:

Hope I was clear enough. Of course, this could be a starting point for building something more complex and user-oriented.

4 Likes

Awesome… looking through it, it once again shows me how wonderful KNIME (and the community) is! :smiley:

Regarding the column filter: my understanding of the regex is that it should filter out anything but the entered value, correct? Basically to make it “fool proof”?

Thx!

ps:
I shared a slightly adjusted version of it (only table view, no edits, adding rows instead of columns) as this is another use case I am currently working on:

And as complex as this seems, this really allows one to do crazy stuff. Just imagine, you could replace complete (nasty) Excel forms with a user interface + automation.

I don’t know how many use cases I had in the past months to get rid of this Excel hell with data apps and forms - this approach by @diego_rod_lop is the cure to that pain.

Crazy stuff one can do with KNIME (still without ever having mastered a programming language :wink: )

1 Like

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.