Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Qlik Sense documentation and resources.
In today’s BI environment, there’s a growing need to take action directly where your data is, to bring everything together and close the analytics loop!
Vizlib’s writeback capabilities enable you to transform your insights into data-driven action. You can capture user input and enter new data points directly into your published Qlik Sense apps.
Here are 4 ways your business can gain additional value from Vizlib Input Form.
1. Create surveys on the fly
Many industries need to create surveys on the fly. For instance, in retail, customer surveys are crucial for keeping in touch with customer needs.
Vizlib Input Form provides a safe way to capture survey information where the data is, and integrates with 3rd party software, like Survey Monkey or Google, to deliver additional value.
In the healthcare sector, users can safely capture crucial patient information directly into Qlik Sense, saving time and ensuring patient information remains confidential.
Vizlib Input Form: Telehealth patient screening survey
2. Data-driven performance reviews
Vizlib Input Form: Sales performance review
Performance reviews should be based on data to provide an accurate picture of how every aspect of your business is performing. Yet, the review process often feels tedious.
With Vizlib Input Form, you can quickly and easily review your business KPIs. Dynamically populate your Vizlib Input Form with Qlik KPIs as you make selections, add comments, scores, and any other input type, then write the data to kick off a workflow.
This practical capability also integrates with other business platforms enabling you to write your data to any destination such as Slack, email, or a whole workflow, and get the right insights across immediately!
3. Improve access control management
Vizlib Writeback Table and Vizlib Input Form: Improving access control management
Vizlib Input Form provides a user-friendly interface that empowers you to manage section access and other mapping files, such as master data management, without the help of a database administrator. It’s easy to add a new user with Vizlib Input Form or to delete users. Together with Vizlib Writeback Table, you can check what permission levels other team members have for improved access control management.
4. Easily change Qlik variables
Vizlib Input Form: Updating and running COVID-19 simulations and predictions for a hospital system
Vizlib Input Form enables you to run simulations on the fly, explore what-if scenarios, show forecasting and enable rapid prototyping. In the healthcare sector, users can easily update the number of beds, length of stay, or current infection rate and forecast when they’re likely to see peaks and drops. It’s easy to tie into your particular business system.
Get a streamlined, safe and user-friendly input capability to kickstart your analytics process with Vizlib Input Form.
Learn more and try out Vizlib Input Form, Writeback Table, and Teamwork as part of Vizlib Collaboration for Qlik Sense: https://home.vizlib.com/vizlib-collaboration-for-qlik-sense/
There is a lot material on the community on explaining the difference between the functions SET and LET. The gist of it is: SET stores the variable with the expression string and LET will evaluate the expression first.
I tend to think of them as:
SET the value in place.
LET‘s evaluate.
But in reality, I hardly ever use SET. The whole difference of the them producing different results is on the premise that you don’t use quotes.
Take this example:
Set vSetToday = Today();
Let vLetToday = Today();
Trace ------------------------------- vSetToday: $(vSetToday);
Trace ------------------------------- vLetToday: $(vLetToday);
Which returns:
However, if you utilize quotes, the result is the exact same:
Set vSetTodayQuote = 'Today()';
Let vLetTodayQuote = 'Today()';
Trace ------------------------------- vSetTodayQuote: $(vSetTodayQuote);
Trace ------------------------------- vLetTodayQuote: $(vLetTodayQuote);
Which returns:
With that said, I argue that you should always use quotes. Using quotes is being explicit which I believe is tantamount in best practice coding. Also, you will notice Qlik’s generated variables use quotes, so that’s another example straight from the source.
So my first point is use quotes!
So now that they are for the most part the same, is there even a reason to use SET? The only thing I could think of was performance reasons. To test this use case, I made a quick script to see if there was any tangible difference in using SET vs LET on setting a string variable.
This test does 5,000,001 iterations of setting a variable using each function and printing the result.
// SET Test
Let vSetStart = Now();
For s = 0 to 5000000
SET vSetTest = '$(s)';
next s
Let vSetEnd = Now();
Let vSetDuration = Interval('$(vSetEnd)' - '$(vSetStart)','hh:mm:ss');
Let vLetStart = Now();
// LET Test
For l = 0 to 5000000
LET vLetTest = '$(l)';
next l
Let vLetEnd = Now();
Let vLetDuration = Interval('$(vLetEnd)' - '$(vLetStart)','hh:mm:ss');
Trace ------------------------------- vSetDuration: $(vSetDuration);
Trace ------------------------------- vLetDuration: $(vLetDuration);
This test returns…..
LET is potentially faster, though I would say that it is at an amount that it doesn’t matter. It’s also worth noting that tests of 5,001, 50,001, and 500,001 were the same. However what this does prove, is that the biggest potential reason to use SET over LET doesn’t exist. So given all that, just use LET.
LET is all you need.
…Except for Lists
At the moment I am aware of only one reason to use SET over LET and that is for building a list. You can create a list to iterate over using both, however using LET is much more painful. The LET statement you have to build in the quotes using Chr(39), which is not pretty and/or fun.
Example:
SET vSetArray = 'One','Two','Three';
LET vLetArray = chr(39)&'Four'&chr(39)&','&chr(39)&'Five'&chr(39)&','&chr(39)&'Six'&chr(39);
Trace ----------------- $(vSetArray);
For each s in $(vSetArray)
Trace ----------------- $(s);
Next s
Trace ----------------- $(vLetArray);
For each l in $(vLetArray)
Trace ----------------- $(l);
Next l
Tell me if there are if there are any other reasons for using SET over LET, because for now I think 99% of the time LET is all we need.