Hi Chris, let me put a few sets of Qlik eyes on this for you. However, you might also get some answers from our helpful and great community members too.
We have an extensive API set, so I would imagine this could be done.
Please mark the appropriate replies as CORRECT / HELPFUL so our team and other members know that your question(s) has been answered to your satisfaction.
I agree with Stefan below, a web service is helpful and manages things for more traffic and users. One method to evaluate this approach is to trial a Qlik partner solution. One that i've worked with before that has an installation program , documented help video, is BWISE. BWISE affords you the ability to write record specific information back to a source. This may involve commentary about individual sales transactions in the dashboard, what if measure values etc...
The architecture involves:
- a UI extension object to capture the user inputted information (a basic object is built via the installation wizard)
(the basic extension is often further customized for specific uses)
- a web service to writeback the user inputted information to a SQL repository (last i checked they did oracle or sql server)
- a multi-table data schema in the SQL repository that becomes populated with the user inputted data
Once that is setup, you have the ability to reload the writeback information and associate with your core data source and display both pieces in tabular or graphical format using all the usual qlik objects.
You could do frequent reloads on a schedule or use a direct discovery read of the write-back repository to reduce the latency.
by principle you can use the same approach I was using some while ago in QlikView:
Main difference is that it's much nicer and cleaner to develop this in Qlik Sense. I was a while ago starting to developing a prototype in Qlik Sense but haven't published, yet. But I am happy to take this as an occasion to continue my prototype and maybe some people can put their efforts together to create something re-usable.
Thanks for this, this looks very much like what we'd like to do. We're still gathering all the requirements at the moment but I think what you outlined in your blog would cover a lot of it. I think we'll need the "man in the middle" approach as there will undoubtedly be some validation, etc required before we save anything.
I'm still bringing myself up to speed on developing for QlikSense and it'll be a few weeks before we have the full requirements, what's the best way to continue with this once we're ready? Is there a repo for your prototype or something along those lines?
Regarding writing back to a data source, I did it once with a stored procedure. And here is a way more simplified excerpt of what I did:
For the sake of simplicity, I created a table with only one dimension:
Right now, the table is empty:
In QlikSense, I ran the below script to insert data into Demo table:
As a result of running the above script, the value in variable, vCompany is inserted into the table:
For larger datasets and files, you can use loops to go through each dimension and write them back to the tables in databases. I know you are looking for an API, but this is just to show you the labor intensive way of doing it.
Just as further clarification regarding my earlier post:
I made very good experience in using a completely different approach by having a "man in the middle", so a web-service which can be used to receive data and write it to a data-source. The handling to send/receive data between QlikView/Qlik Sense is then taken care of by and extension.
We have implemented this approach at several larger customers ... but sure, you need to know that only in a few cases it worked out of the box, some customization (different database, security, etc.) was nearly always necessary.