Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hi everyone,
I need some help with enabling bulk updates to a column in my dataset. Specifically, I want the end user to be able to update the skills of multiple employees at once. Here's an example of my dataset:
Employee ID | Physical Skills |
---|---|
EID001 | Welding |
EID002 | Carpentry; Electrical Work |
EID003 | Roofing; Electrical Work |
EID004 | Painting; Roofing; Landscaping; Mechanics; Masonry |
EID005 | HVAC; Roofing; Mechanics; Plumbing; Painting |
EID006 | Landscaping; Plumbing |
EID007 | Roofing; HVAC; Mechanics; Electrical Work; Carpentry |
EID008 | Roofing |
EID009 | Roofing; Painting; Mechanics; Electrical Work |
EID010 | Electrical Work; Carpentry; HVAC |
For example, if the end user wants to update the skills of employees with IDs from EID003 to EID009 to include "Bricklaying". Ideally, they would select all the IDs they want to change and then in an input variable put "Bricklaying" and then run a partial reload to update the table to add this skill to the current skills column for the specified employees.
Final Table would look something like this:
Employee ID | Physical Skills |
---|---|
EID001 | Welding |
EID002 | Carpentry; Electrical Work |
EID003 | Roofing; Electrical Work; Bricklaying |
EID004 | Painting; Roofing; Landscaping; Mechanics; Masonry; Bricklaying |
EID005 | HVAC; Roofing; Mechanics; Plumbing; Painting; Bricklaying |
EID006 | Landscaping; Plumbing; Bricklaying |
EID007 | Roofing; HVAC; Mechanics; Electrical Work; Carpentry; Bricklaying |
EID008 | Roofing; Bricklaying |
EID009 | Roofing; Painting; Mechanics; Electrical Work; Bricklaying |
EID010 | Electrical Work; Carpentry; HVAC |
Any help or suggestions would be greatly appreciated!
Thanks in advance!
Hi,
you’ll need to work around its limitations since Qlik Sense does not allow direct editing or updates to the source data. You can achieve the desired result using input variables, a partial reload script, and some data transformations.
First of all verify your dataset is loaded in Qlik Sense, ideally with the "Employee ID" as a unique identifier.
Then go to Variables Editor in the Qlik Sense app and create a new variable (e.g., vNewSkill) where the end user can input the new skill they want to add (e.g., "Bricklaying").
Add a filter pane to the app and select the field "Employee ID".
This allows the end user to select the employees whose skills need updating.
To support bulk updates, you’ll need to modify your script to accommodate the changes dynamically during a Partial Reload.
Load Script Example:
// Main Load Script
Employees:
LOAD
[Employee ID],
[Physical Skills]
FROM [YourDataSource]
WHERE NOT Exists([Employee ID], TempUpdates.[Employee ID]);
// Temporary Table for Updates - Filters the data to include only the selected Employee IDs (vSelectedIDs)
TempUpdates:
LOAD
[Employee ID],
[Physical Skills]
RESIDENT Employees
WHERE Exists([Employee ID], '$(vSelectedIDs)');
// Append New Skill - Appends the new skill to the existing skills of the filtered employees.
UpdatedSkills:
LOAD
[Employee ID],
[Physical Skills] & IF(Len([Physical Skills]) > 0, '; ', '') & '$(vNewSkill)' AS [Physical Skills]
RESIDENT TempUpdates;
// Replace with Updated Data - Adds the updated records back into the main dataset (Employees).
CONCATENATE (Employees)
LOAD
*
RESIDENT UpdatedSkills;
// Drop Temporary Tables
DROP TABLE TempUpdates;
DROP TABLE UpdatedSkills;
Add a button to your app with the label "Update Skills".
Configure the button to perform a Partial Reload when clicked.
This method should provides a dynamic and scalable way to enable bulk updates in Qlik Sense without directly modifying the source data.