Updated to Sparkle 12.4.13 and Lots of Errors

I updated our skuid package today to 12.4.13. Since then, anyone without a skuid license cannot open a salesforce page without getting flashing and multiple errors. All of our skuid pages in lightning are in the skuid page component. This package upgrade is causing massive problems for all of our skuid components. I had to create separate tabs for skuid tables on all our lightning record pages just so people can open a record. Help!

Sorry you are having problems. Lets dig into what your set up and expectation were.

Sounds like you have lightning record detail page layouts that include the Skuid Lightning component - where you host the Skuid pages. There is nothing strange about that…

Some of your users did not have Skuid licenses and were still using these pages? What was their experience prior to the upgrade? This is where I’m surprised.

WE’ve generally recommended using a separate Lightning APP page for the Non Skuid use case - and controlling access to that page - and to who gets SKuid licenses - by profile. Might that correct things?

Give us some detail here and I think we can help.

Prior to the upgrade, non-licensed users would get one error message when opening a page with a skuid component on it. A page refresh would clear that error. Now we are seeing the page turn black and the error message reloading itself over and over again, causing flashing on the page. It seems the errors happening for non-licensed users get worse as time goes on, not better. You are now telling me we need separate lightning app pages for people who are licensed users and people who are not. I can check with my team about setting this up. But that shouldn’t have to be the solution.

We found a work around that removes this issue. I will share it here in case anyone else experiences what we did. The idea of creating multiple lightning record pages (one for skuid users, another one for unlicensed users) wouldn’t have worked for us. The most granular we can get on a lightning record page is profile. We have multiple instances where only one or two people in a profile have a skuid license, so that would not have been a solution for us.

Instead, what we did was:

Create a check box field on the User object. We called it Skuid User (Skuid_User__c).

I created a little script I could run in the dev console that queries for active users who have skuid licenses, and then checks that skuid user box for each user record. Here is the SOQL query I used:

SELECT Name, id, isactive, skuid_user__c FROM User WHERE Id in (SELECT UserId FROM UserPackageLicense WHERE PackageLicense.NamespacePrefix = ‘skuid’) AND isactive = TRUE

I then added a little apex code that would spin through the returned list, make the skuid_user__c field = true, and save the updated user records. I recognize not everyone has access to a developer or has development skills, so I recommend the below:

It is possible to run this query in a tool like Jitterbit Clout Data Loader (free), and then export the results into a .csv file for dataloading the TRUE value into skuid_user__c.

This may not be a great option for orgs where skuid licensed users are changing frequently. It does work for us because our licensed people remain pretty static, and now we just have to check a box if a new employee will be getting a skuid license.

At any rate, once licensed users are updated with the checkbox, it is possible to change visibility on a skuid component (for a lightning record page) by creating a visibility filter per each component. Using the Advanced button to set visibility for the skuid component on the lightning record page, choose User, then [your checkbox field] = true. Save that filter in the skuid component.

Now the skuid components are invisible to unlicensed users and visible only to licensed users. Problem solved.