Lightning page with skuid doesn't work for non-licensed users

  • 1
  • Problem
  • Updated 4 months ago
  • Solved
We are starting to migrate some users over to Salesforce lightning.  Our migration is taking place by profile.

We have some skuid tables that are embedded in visualforce pages.  In classic, users who don't have a skuid license see a little error message in the skuid/visualforce page section of the layout.  This is fine and everything else on the page works normally.

In lightning, we are having issues with the users who don't have skuid licenses.  On lightning record pages where the page layout contains a skuid table embedded in a visualforce page, users without a skuid license can't open a record page.  I did some testing today with a non-licensed user.  If I edit the layout by removing the section where the visualforce page/skuid table resides, a record can open fine in lightning for a person without a skuid license.  If I put the visualforce page/skuid table back on the layout, even if it is within a visualforce component added to the lightning record page, the non-licensed user can't open the record in lightning.  Instead, the record page blinks on and off and can't load at all.  

I upgraded our skuid version to the most recent Milau version and this is still an issue.  I'm wondering if anyone knows how to fix this or if there is some bug fix I am missing.  Since this is an issue that only affects individuals with no licenses, it is not possible to create a non-skuid layout for just those people.  Anyone else seeing this problem?
Photo of Joan Jackson

Joan Jackson

  • 284 Points 250 badge 2x thumb

Posted 5 months ago

  • 1
Photo of Mark DeSimone

Mark DeSimone, Official Rep

  • 11,050 Points 10k badge 2x thumb
Hi Joan,

You've said that your'e using a Visualforce page in your Lightning Record page - Are you encountering a blocker that prevents you from using the Skuid Page Lightning component to deploy these Skuid pages to run natively in Lightning? https://docs.skuid.com/latest/en/skuid/deploy/salesforce/lightning/#the-skuid-page-lightning-compone... would help explain that if it's new to you. I would recommend moving towards deploying your Skuid pages with this method whenever possible in Lightning. 

Also, https://docs.skuid.com/latest/en/skuid/deploy/salesforce/lightning/#the-skuid-page-assignment-lightn... will help explain how to use the Skuid Lightning Page Assignment component, if you need to deliver different Skuid pages to different users. 

Finally, here's probably the most relevant information regarding page assignments in Lightning. https://docs.skuid.com/v11.1.1/en/skuid/deploy/salesforce/page-assignments/#lightning-page-assignmen...
Note the end of that section, that recommends "The Lightning page activation https://help.salesforce.com/articleView?id=lightning_app_builder_customize_lex_pages_activate.htm&type=5 feature can be combined with the Page Assignment component to deliver the right Skuid page to the right record type."

In short, we'd recommend that you set up separate Lightning record detail pages on the object for 1) users who have Skuid licenses and 2) users who do not. You should then be able to use Salesforce's mechanisms to deploy those detail pages in a similar way to how you assign Skuid licenses / permission sets. 
Photo of Joan Jackson

Joan Jackson

  • 284 Points 250 badge 2x thumb
Thanks for your reply.  I was able to put the skuid table in the skuid lightning component very easily and it worked well.  Just one more question and that's regarding the Generate Support Files button in the Org Preferences section.  I wasn't sure if this applied to any of my pages so I clicked the Generate Support Files for All Pages button, but it just spins and spins and never finishes.  I captured the error log from the Google console and it is as follows: (both a warning and an error):

skuid__VendorJS:3 JQMIGRATE: Migrate is installed, version 3.0.0
skuid__VendorJS:3 [Deprecation] Synchronous 
XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. 
For more help, check https://xhr.spec.whatwg.org/.
send @ skuid__VendorJS:3
skuid__SkuidCoreMaster


JS:formatted:228 Uncaught TypeError: Cannot read property 'updateData' of undefined
    at skuid__SkuidCoreMaster
JS:formatted:228
    at Object.custom (skuid__SkuidReqsJS:1)
    at Object.l.runAction (skuid__SkuidReqsJS:1)
    at Object.l.runActionNode (skuid__SkuidReqsJS:1)

    at n (skuid__SkuidReqsJS:1)
    at Object.l.runActionsNode (skuid__SkuidReqsJS:1)
    at HTMLDivElement.<anonymous> (skuid__SkuidReqsJS:1)
 
   at HTMLDivElement.ee (skuid__SkuidReqsJS:1)
    at HTMLDivElement.dispatch (skuid__VendorJS:2)

    at HTMLDivElement.q.handle (skuid__VendorJS:2)
(anonymous) @ skuid__SkuidCoreMaster
JS:formatted:228
custom @ skuid__SkuidReqsJS:1
l.runAction @ skuid__SkuidReqsJS:1
l.runActionNode @ skuid__SkuidReqsJS:1
n @ skuid__SkuidReqsJS:1
l.runActionsNode 
@ skuid__SkuidReqsJS:1
(anonymous) @ skuid__SkuidReqsJS:1
ee @ skuid__SkuidReqsJS:1
dispatch @ skuid__VendorJS:2
q.handle @ skuid__VendorJS:2
fsUtils.js:107 
Photo of Mark DeSimone

Mark DeSimone, Official Rep

  • 11,050 Points 10k badge 2x thumb
Hi Joan, sorry for the delayed response. The process of generating support files shouldn't cause errors, of course. Which version of Skuid are you running? And, are you still affected by an unresolved issue with your Lightning pages?
Photo of Mark DeSimone

Mark DeSimone, Official Rep

  • 11,050 Points 10k badge 2x thumb
I don't believe there's a critical update you would need. Does this happen in other orgs, and for other Skuid pages as well? I would check to make sure your storage usage isn't full for static resources, since a page support file needs to be stored there.
Photo of Joan Jackson

Joan Jackson

  • 284 Points 250 badge 2x thumb
I checked my static resources.  There are 137 static resources with a namespace prefix of skuid.  I don't know whether there should be more or not.  But it looks like at least some of them were created in our org.
Photo of Mark DeSimone

Mark DeSimone, Official Rep

  • 11,050 Points 10k badge 2x thumb
Joan, I'm looking more closely at the error you shared. Particularly, I'm looking at "Cannot read property 'updateData' of undefined" and "custom @ skuid__SkuidReqsJS:1"

Do you have any custom components in your org? If so, you may need to check and see that their component code is installed correctly, and that it is Lightning Lockerservice compliant.
Photo of Joan Jackson

Joan Jackson

  • 284 Points 250 badge 2x thumb
We do have some in our full sandbox where I originally attempted to run "Generate Support Files for all Pages".  Since those components were basically just for test purposes, I tried to generate support files in our production org where we have no custom lightning components.  It's still getting hung up in the skuid_SkuidCoremasterJS file here:

            o("skuid.settings.snippets.regenSupportFiles", function() {
                var i = e.$M("stng__AllPages");
                return t.blockUI({
                    message: "Querying Skuid Pages..."
                }),
                i.updateData().then(function() {
                    return g(i.getRows())
                })
            }),

The error occurs at i.updateData().then(function(){

This is the log from the console:

JQMIGRATE: Migrate is installed, version 3.0.0
skuid__VendorJS:3 [Deprecation] Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help, check https://xhr.spec.whatwg.org/.
send @ skuid__VendorJS:3
skuid__SkuidCoreMasterJS:formatted:228 Uncaught TypeError: Cannot read property 'updateData' of undefined
    at skuid__SkuidCoreMasterJS:formatted:228
    at Object.custom (skuid__SkuidReqsJS:1)
    at Object.l.runAction (skuid__SkuidReqsJS:1)
    at Object.l.runActionNode (skuid__SkuidReqsJS:1)
    at n (skuid__SkuidReqsJS:1)
    at Object.l.runActionsNode (skuid__SkuidReqsJS:1)
    at HTMLDivElement.<anonymous> (skuid__SkuidReqsJS:1)
    at HTMLDivElement.ee (skuid__SkuidReqsJS:1)
    at HTMLDivElement.dispatch (skuid__VendorJS:2)
    at HTMLDivElement.q.handle (skuid__VendorJS:2)
Photo of Mark DeSimone

Mark DeSimone, Official Rep

  • 11,050 Points 10k badge 2x thumb
Joan, would you mind making sure you have the "Skuid Admin" permission set, as well as "Skuid Page Viewer" and "Skuid Page Builder?"

Also, when I mentioned custom components, I actually meant custom Skuid components, as described in the links below. Sorry for not being more clear. Do you have any of those in your affected org(s)?
https://docs.skuid.com/latest/en/skuid/components/manage-component-packs.html#manage-comp-packs
https://docs.skuid.com/latest/en/skuid/components/#building-custom-components