UI-only picklist with manual source not showing picklist choices for custom object model

  • 1
  • Problem
  • Updated 4 months ago
  • Acknowledged
I upgraded to version 11.1.14 and I think that's when this problem started, but it may have been with a previous update.  I have a UI-only picklist field on a model based on a custom object.  The picklist entries are manually set in the page builder.  I can no longer see any choices in the dropdown for the UI picklist on the page within a field editor component: it just shows the --None-- option (or appears empty if I make it required).  This definitely used to work, I'm just not sure when it broke, but it is not specific to one page.  I recreated the issue on a test page with two models, each based on a custom object and the UI picklist choices are not showing up, whether showing a new or queried record.

Weirdly, I am not seeing this issue for a model based on the standard Account object.  When I add a manual UI picklist to the Account model, the choices show up in the field editor on the page.

Any ideas?
Photo of and thorough

and thorough

  • 736 Points 500 badge 2x thumb

Posted 5 months ago

  • 1
Photo of Bill McCullough

Bill McCullough, Champion

  • 12,436 Points 10k badge 2x thumb
and thorough,

I just tried this in my developer org.  I have 11.1.14 installed.  I am getting return values in the ui only picklist field in my field editor.  

Would you post the XML for your model with the UI only picklist field.  I may not have replicated your setup.

Here is the XML for my model:

        <model id="UIOnly" processonclient="true" datasource="Ui-Only" createrowifnonefound="true" query="true">
            <fields>
                <field id="Multiipicklist" label="Multiipicklist" displaytype="MULTIPICKLIST" picklistsource="manual" ogdisplaytype="TEXT">
                    <picklistentries>
                        <entry value="One" label="One"/>
                        <entry value="Two" label="Two"/>
                        <entry value="Three" label="Three"/>
                        <entry value="Four" label="Four"/>
                        <entry value="Five" label="Five"/>
                    </picklistentries>
                </field>
                <field id="Checkbox" label="Checkbox" displaytype="BOOLEAN" ogdisplaytype="TEXT"/>
                <field id="Picklist" label="Picklist" displaytype="PICKLIST" picklistsource="manual" ogdisplaytype="TEXT" precision="9" scale="2">
                    <picklistentries>
                        <entry value="1" label="1"/>
                        <entry value="2" label="2"/>
                        <entry value="3" label="3"/>
                    </picklistentries>
                </field>
                <field id="PicklistValue" readonly="true" label="PicklistValue" displaytype="FORMULA" ogdisplaytype="TEXT" precision="9" scale="0" returntype="DOUBLE">
                    <formula>VALUE({{Picklist}})</formula>
                </field>
                <field id="PicklistModel" displaytype="PICKLIST" label="PicklistModel" ogdisplaytype="TEXT" picklistsource="rowsinmodel" picklistmodel="PicklistModelCustomObject" entryvalue="{{Name}}"/>
            </fields>
            <conditions/>
            <actions/>
        </model>

Thanks,

Bill
Photo of Stephen Sells

Stephen Sells, Official Rep

  • 16,856 Points 10k badge 2x thumb
I believe this is a known Skuid issue in at least 11.1.13 and beyond, but I'm not sure... If you're able to post XML of the problem, I can verify. If not, I'll notify you when the known issue is resolved in case it is related.
Photo of and thorough

and thorough

  • 736 Points 500 badge 2x thumb
So this is still not working after I upgraded to the latest release (11.2.1).  Any updates on the issue?
Photo of and thorough

and thorough

  • 736 Points 500 badge 2x thumb
Discovery: the custom-object-model ui-only-picklist choices will show up if the field editor's default mode is Read with Inline-Edit.  When default mode is Edit, the picklist is empty.  This is still in v11.2.1.  Not sure whether it's been addressed in later releases, but I didn't see anything about it in the release notes.
Photo of and thorough

and thorough

  • 736 Points 500 badge 2x thumb
Thanks, Bill and Stephen.  Bill, I see that you used a UI-only model.  The issue I'm having is with a Salesforce-sourced data model using a custom object, with UI-only fields on that model.  Below is XML for a simplified/sample page where the picklist options are not showing up. 

I opted to use UI-fields on a custom object model, rather than a separate UI-model, because I am showing multiple records from the custom object on the page at once and using the UI-field selections to conditionally render other components within each record (though note that the below test case returns only one record; the problem persists whether one or multiple records are showing).  I might be able to change how the page is structured to use a UI-only model instead, but is going to take some work.  And of course, staff need this page to be working now, as we are up against a report deadline and rely on the (formerly working) Skuid page to get the relevant data entered.

Stephen, if this is related to the known issue, any sense of timeline for a fix (so I know whether I need to come up with a workaround right now)?  Thanks!
<skuidpage unsavedchangeswarning="yes" personalizationmode="server" showsidebar="true" useviewportmeta="true" showheader="true" theme="Modern">
    <models>
        <model id="testCustomObjModel" limit="1" query="true" createrowifnonefound="false" datasource="salesforce" sobject="Test__c">
            <fields>
                <field id="Id"/>
                <field id="RecordTypeId"/>
                <field id="OwnerId"/>
                <field id="Owner.Name"/>
                <field id="testPicklist" uionly="true" displaytype="PICKLIST" label="test picklist" ogdisplaytype="TEXT" picklistsource="manual">
                    <picklistentries>
                        <entry value="a" label="Option A"/>
                        <entry value="b" label="Option B"/>
                    </picklistentries>
                </field>
            </fields>
            <conditions/>
            <actions/>
        </model>
    </models>
    <components>
        <basicfieldeditor showheader="true" showsavecancel="false" showerrorsinline="true" model="testCustomObjModel" uniqueid="testFldEd" mode="edit">
            <columns>
                <column width="100%">
                    <sections>
                        <section title="Section A" collapsible="no">
                            <fields>
                                <field uniqueid="ownerFld" id="OwnerId"/>
                                <field uniqueid="testPlFld" id="testPicklist"/>
                            </fields>
                            <renderconditions logictype="and"/>
                        </section>
                    </sections>
                </column>
            </columns>
        </basicfieldeditor>
    </components>
    <resources>
        <labels/>
        <javascript/>
        <css/>
        <actionsequences uniqueid="sk-2CZNLe-315"/>
    </resources>
    <styles>
        <styleitem type="background" bgtype="none"/>
    </styles>
</skuidpage>
Photo of Bill McCullough

Bill McCullough, Champion

  • 12,436 Points 10k badge 2x thumb
and thorough,

I was wondering if I was replicating the setup you have.  I used a custom object for the model and added a UI Only picklist field with manually entered options.  This is working in my developer org.

Maybe you can try replacing my custom object name with your object to see if my page works in your org?  Here is the XML:

<skuidpage showheader="true" personalizationmode="server" showsidebar="true" useviewportmeta="true">
    <models>
        <model id="CustomObject" limit="1" query="true" createrowifnonefound="false" datasource="salesforce" sobject="Ghost__c">
            <fields>
                <field id="Name"/>
                <field id="testPicklist" uionly="true" displaytype="PICKLIST" label="test picklist" ogdisplaytype="TEXT" picklistsource="manual">
                    <picklistentries>
                        <entry value="a" label="Option A"/>
                        <entry value="b" label="Option B"/>
                    </picklistentries>
                </field>
                <field id="Id"/>
                <field id="OwnerId"/>
                <field id="Owner.Name"/>
            </fields>
            <conditions/>
            <actions/>
        </model>
    </models>
    <components>
        <basicfieldeditor showheader="true" showsavecancel="false" showerrorsinline="true" model="CustomObject" uniqueid="sk-3WoK-515" mode="edit">
            <columns>
                <column width="50%">
                    <sections>
                        <section title="Section A" collapsible="no">
                            <fields>
                                <field uniqueid="sk-3Wun-240" id="OwnerId"/>
                                <field uniqueid="sk-3Wvn-236" id="testPicklist"/>
                            </fields>
                        </section>
                    </sections>
                </column>
                <column width="50%">
                    <sections>
                        <section title="Section B">
                            <fields/>
                        </section>
                    </sections>
                </column>
            </columns>
        </basicfieldeditor>
    </components>
    <resources>
        <labels/>
        <javascript/>
        <css/>
        <actionsequences uniqueid="sk-1unC-253"/>
    </resources>
    <styles>
        <styleitem type="background" bgtype="none"/>
    </styles>
</skuidpage>


Thanks,

Bill
Photo of and thorough

and thorough

  • 736 Points 500 badge 2x thumb
Thanks, Bill.  I pasted your XML in and replaced with my custom object name and it's still showing an empty picklist on the page.  I tried this in both Chrome and Firefox and with a few different custom objects.  My sandbox is on Summer '18 and production is on Spring '18 and it's not working in either (both are on Skuid 11.1.14).  In the sandbox, I tried viewing the page in both Lightning and Classic and got the same result.  What version of Salesforce is your developer org on?

I just checked this issue in another (Summer '18) sandbox I have that's still on Skuid version 11.1.11.  Weirdly, when I paste your XML in, it works for most custom objects I tested.  But for the object I actually need to use this feature on at the moment, instead of showing the picklist choices or an empty picklist, it appears stuck and just shows "Loading..." below the field label.  I am not seeing any differences in the setup of this vs. other custom objects, so I don't know what's going on, but regardless, by version 11.1.14, it is just showing the empty picklist no matter which object I try.
Photo of Bill McCullough

Bill McCullough, Champion

  • 12,436 Points 10k badge 2x thumb
and thorough,

My developer org is on Summer 18.  This seems like something permission related or license related.  A couple of things to try:  verify your permissions to the object - check field and object level, try loading the page in an org. where it DOES NOT work - check the network tab of your browser - look at the XHR subtab - you should see an apexremote action where Skuid is loading the model - click on this row and look at the response, and enable Debug Logs for your user and attempt to load the page.

Hopefully, one of those will turn up something.

Thanks,

Bill
Photo of and thorough

and thorough

  • 736 Points 500 badge 2x thumb
Thanks for the debugging tips, Bill!  I haven't have time to test this thoroughly on the old version of Skuid, but I can confirm it is not permission- or license-related, as the issue is showing up for Sys Admin accounts with full access to all objects and data, plus the object in question is otherwise accessible.  However, since the ui-picklists are not working on any custom-object model in the newer versions of Skuid, I don't know that it would help much to figure out why it worked inconsistently in past versions, given that I can't downgrade in production.  But this will be helpful for troubleshooting in the future.