select option filter not working after update to 11.2.22

  • 2
  • Problem
  • Updated 6 months ago
  • In Progress
The filter is returning records that are not in the set of values listed.  It was working before the update to 11.2.22.

FIELD
Vendor_Checklist__c records where Gathering_Process__r.Status__c
OPERATOR
is in the set of values
VALUE
In Process -- Gathering, In Process -- Gathering -- New Client, In Process -- Gathering -- No Confirmation
STATE
This condition, named StatusInProcess, can be modified by filters, but is off by default.
Photo of Jimmy Perez

Jimmy Perez

  • 140 Points 100 badge 2x thumb

Posted 7 months ago

  • 2
Photo of Brayden Smith

Brayden Smith

  • 1,270 Points 1k badge 2x thumb

+1

We deployed the Skuid hotfix 11.2.22, and didn’t catch this issue in our testing related to filters. We’ve deployed Spark 12.1.2 in a sandbox and are getting the same issue...

When you have a filter type of “Select Option” and pick options and condition(s) set to “Manually”. The filter does not work correctly. If the condition is a Boolean field, the filter works. If the filter includes date fields, references fields from another model, etc., it doesn’t work.

Any direction on this would be appreciated.

Photo of Mark DeSimone

Mark DeSimone, Official Rep

  • 12,352 Points 10k badge 2x thumb
Hi Jimmy and Brayden. I've tried to reproduce the behaviors you're describing in a developer org I have running 11.2.22, but so far I haven't found a filter configuration that's misbehaving. Here is XML for the page I've built. For me, this is working correctly. Would you be able to try this out, and let me know if it's working in your environments? It uses the Account and Contact objects, and filters on Industry and AccountId respectively.

If you're able to share a simple repro page like this one that can help me observe the problem, that will be very much appreciated. 

<skuidpage unsavedchangeswarning="yes" personalizationmode="server" showsidebar="true" useviewportmeta="true" showheader="true">
    <models>
        <model id="Acc" query="true" createrowifnonefound="false" datasource="salesforce" sobject="Account" limit="10">
            <fields>
                <field id="RecordTypeId"/>
                <field id="Name"/>
                <field id="Industry"/>
            </fields>
            <conditions>
                <condition type="fieldvalue" value="" field="Industry" operator="=" enclosevalueinquotes="true" state="filterableoff" inactive="true" name="Industry"/>
            </conditions>
            <actions/>
        </model>
        <model id="Contacts" query="true" createrowifnonefound="false" datasource="salesforce" sobject="Contact">
            <fields>
                <field id="AccountId"/>
                <field id="Account.Name"/>
                <field id="Name"/>
            </fields>
            <conditions>
                <condition type="fieldvalue" value="" enclosevalueinquotes="true" field="AccountId" fieldtargetobjects="Account" state="filterableoff" inactive="true" name="AccountId"/>
            </conditions>
            <actions/>
        </model>
    </models>
    <components>
        <skootable showconditions="true" showsavecancel="true" showerrorsinline="true" searchmethod="server" searchbox="true" showexportbuttons="false" hideheader="false" hidefooter="false" pagesize="all" alwaysresetpagination="false" createrecords="true" model="Acc" buttonposition="" mode="read" allowcolumnreordering="true" responsive="true" uniqueid="sk-1wsp-297" heading="Accounts">
            <fields>
                <field id="RecordTypeId" uniqueid="fi-1wsp-298"/>
                <field id="Name" uniqueid="fi-1wsp-299"/>
                <field id="Industry" uniqueid="fi-1wsp-300"/>
            </fields>
            <rowactions>
                <action type="edit"/>
                <action type="delete"/>
            </rowactions>
            <massactions usefirstitemasdefault="true">
                <action type="massupdate"/>
                <action type="massdelete"/>
            </massactions>
            <views>
                <view type="standard"/>
            </views>
            <filters>
                <filter type="select" createfilteroffoption="true" affectcookies="true" autocompthreshold="25" conditionsource="manual" filtermethod="server" labelmode="no" condition="Industry">
                    <sources>
                        <source type="manual" effectsbehavior="justdefault">
                            <options>
                                <option label="Engineering" type="simple" value="Engineering"/>
                                <option label="Financial Services" type="simple" value="Financial Services"/>
                            </options>
                        </source>
                    </sources>
                </filter>
                <filter type="toggle" createfilteroffoption="true" affectcookies="true" autocompthreshold="25" conditionsource="manual" labelmode="auto" filtermethod="server" label="All Industries">
                    <effects>
                        <effect action="deactivate" value="" condition="Industry"/>
                    </effects>
                </filter>
            </filters>
            <searchfields/>
        </skootable>
        <skootable showconditions="true" showsavecancel="true" showerrorsinline="true" searchmethod="server" searchbox="true" showexportbuttons="false" hideheader="false" hidefooter="false" pagesize="10" alwaysresetpagination="false" createrecords="true" model="Contacts" buttonposition="" mode="read" allowcolumnreordering="true" responsive="true" uniqueid="sk-1wto-497" heading="Contacts">
            <fields>
                <field id="Name" uniqueid="fi-1wto-500"/>
                <field id="AccountId" uniqueid="fi-1wto-498"/>
                <field id="Account.Name" uniqueid="fi-1wto-499"/>
            </fields>
            <rowactions>
                <action type="edit"/>
                <action type="delete"/>
            </rowactions>
            <massactions usefirstitemasdefault="true">
                <action type="massupdate"/>
                <action type="massdelete"/>
            </massactions>
            <views>
                <view type="standard"/>
            </views>
            <filters>
                <filter type="select" createfilteroffoption="true" affectcookies="true" autocompthreshold="25" conditionsource="manual" filtermethod="server" labelmode="no" condition="AccountId">
                    <sources>
                        <source type="model" effectsbehavior="justdefault" model="Acc">
                            <labeltemplate>{{{Name}}}</labeltemplate>
                            <valuetemplate>{{Id}}</valuetemplate>
                        </source>
                    </sources>
                </filter>
            </filters>
        </skootable>
    </components>
    <resources>
        <labels/>
        <javascript/>
        <css/>
        <actionsequences uniqueid="sk-1wsY-220"/>
    </resources>
    <styles>
        <styleitem type="background" bgtype="none"/>
    </styles>
</skuidpage>

Photo of Brayden Smith

Brayden Smith

  • 1,270 Points 1k badge 2x thumb
Hey Mark,

Your example does work in an org that is on version 12.1.2. Also, I was able to add custom fields and those work.

But we're still have issues with filters on all of our pages. I've rebuilt part of our contract home page (standard list view page), and the filter option of "needs renewed" doesn't work.

Please note, many of our filters reference custom fields, I've removed them from this version so that you could easily replicate.

Also note, I've compared the XML versions of filters on our none working pages, to that of the sample page you provided above, and I can't find any differences in syntax. Also, I've verified that I was logged in as a system admin, and all of the fields are accessible to that user. Lastly, we've made no changes to any of our page subsequent to the hotfix (or immediately before). We've upgraded our packages several times (after testing in a sandbox) and have not experienced this issue before.

XML Below:
<skuidpage unsavedchangeswarning="yes" personalizationmode="server" showsidebar="true" showheader="true">
	<models>
<model id="Contracts_CH" limit="100" query="true" createrowifnonefound="false" datasource="salesforce" sobject="Contract" orderby="EndDate">
	<fields>
		<field id="RecordTypeId"/>
		<field id="Id"/>
		<field id="ContractNumber"/>
		<field id="StartDate"/>
		<field id="EndDate"/>
		<field id="AccountId"/>
		<field id="Account.Name"/>
		<field id="Account.Type"/>
		<field id="ContractTerm"/>
		<field id="Status"/>
	</fields>
	<conditions>
		<condition type="multiple" value="" field="EndDate" operator="in" enclosevalueinquotes="false" state="filterableoff" inactive="true" name="EndDateLessNextMonth">
			<values>
				<value>THIS_MONTH</value>
				<value>LAST_MONTH</value>
			</values>
		</condition>
		<condition type="multiple" value="" field="Account.Type" operator="not in" enclosevalueinquotes="true" state="filterableoff" inactive="true" name="NotCustomerPartner">
			<values>
				<value>Customer</value>
				<value>Partner</value>
			</values>
		</condition>
	</conditions>
	<actions/>
</model>
</models>
	<components>
<pagetitle model="Contracts_CH" uniqueid="sk-1_DC-164">
	<maintitle>Contracts Home</maintitle>
	<subtitle>
		<template>{{Model.label}}</template>
	</subtitle>
	<actions>
		<action type="savecancel" label="New Button" uniqueid="sk-1_a2-175"/>
	</actions>
</pagetitle>
<skootable showconditions="true" showsavecancel="false" showerrorsinline="true" searchmethod="server" searchbox="true" showexportbuttons="false" hideheader="false" hidefooter="false" pagesize="10" alwaysresetpagination="false" createrecords="false" model="Contracts_CH" buttonposition="" mode="read" allowcolumnreordering="true" responsive="true" uniqueid="sk-1_aA-182">
	<fields>
		<field id="ContractNumber" hideable="true" uniqueid="fi-1_ai-211"/>
		<field id="StartDate" hideable="true" uniqueid="fi-1_ai-214"/>
		<field id="EndDate" hideable="true" uniqueid="fi-1_ai-215"/>
		<field id="Account.Name" hideable="true" uniqueid="fi-1_ai-216"/>
		<field id="Account.Type" hideable="true" uniqueid="fi-1_ai-217"/>
		<field id="ContractTerm" hideable="true" uniqueid="fi-1_ai-219"/>
		<field id="Status" hideable="true" uniqueid="fi-1_ai-224"/>
	</fields>
	<rowactions>
		<action type="edit"/>
		<action type="delete"/>
	</rowactions>
	<massactions usefirstitemasdefault="true">
		<action type="massupdate"/>
		<action type="massdelete"/>
	</massactions>
	<views>
		<view type="standard"/>
	</views>
	<filters>
		<filter type="select" createfilteroffoption="true" affectcookies="false" autocompthreshold="25" conditionsource="manual" filtermethod="server" labelmode="manual" label="Quick Filters" filteroffoptionlabel="All Records">
			<sources>
				<source type="manual" effectsbehavior="justdefault">
					<options>
						<option label="Needs Renewed" type="complex">
							<effects>
								<effect action="activate" value="" condition="EndDateLessNextMonth"/>
								<effect action="activate" value="" condition="NotCustomerPartner"/>
							</effects>
						</option>
					</options>
				</source>
			</sources>
		</filter>
	</filters>
</skootable>
</components>
	<resources>
		<labels/>
		<javascript/>
		<css/>
		<actionsequences uniqueid="sk-1_Ce-121"/>
	</resources>
	<styles>
		<styleitem type="background" bgtype="none"/>
	</styles>
</skuidpage>


(Edited)
Photo of Mark DeSimone

Mark DeSimone, Official Rep

  • 12,352 Points 10k badge 2x thumb
Thanks very much Brayden. I will test this and get back to you. Quick question - which version of Skuid were you using before upgrading to 11.2.22?
Photo of Brayden Smith

Brayden Smith

  • 1,270 Points 1k badge 2x thumb
We were on 11.0.6.
Photo of Mark DeSimone

Mark DeSimone, Official Rep

  • 12,352 Points 10k badge 2x thumb
Thanks for letting me know. There was a change to the product in 11.1.3 (which is between your old and new versions), and it deals with how Skuid handles certain field permission scenarios. Here's the release note on that:
https://docs.skuid.com/v11.1.3/en/release-notes.html#updates-as-of-11-1-3
I wanted to share it in case there might be a field permission you need to grant to affected users. It sounds like the behavior has changed for all your users in this case though, so this may not be relevant to your issue, although it is good to be aware of it.

Thanks to your repro page XML, I can see that setting a manual filter to activate model conditions is clearing out the predefined field values you have set. I think this may be why the filter's behavior is different right now, and I'm working to understand the underlying change better. I will continue to follow up here.
(Edited)
Photo of Brayden Smith

Brayden Smith

  • 1,270 Points 1k badge 2x thumb
Perfect. Thank you for both updates.
Photo of Brayden Smith

Brayden Smith

  • 1,270 Points 1k badge 2x thumb
Hey Mark,

Any updates on this?

-Brayden
Photo of Luzie Baumgart

Luzie Baumgart, Official Rep

  • 4,018 Points 4k badge 2x thumb
Hi Brayden, I'm working on this issue together with Mark, it's still under investigation and I'll update you here in the community post as soon as we know more. Thanks, Luzie
Photo of Luzie Baumgart

Luzie Baumgart, Official Rep

  • 4,018 Points 4k badge 2x thumb
Hi Brayden, we reported the issue to our development team.
Photo of Luzie Baumgart

Luzie Baumgart, Official Rep

  • 4,018 Points 4k badge 2x thumb
Hi Brayden, we reported the issue to our development team.
Photo of Brayden Smith

Brayden Smith

  • 1,270 Points 1k badge 2x thumb
Thanks Luzie for the updated. I'm looking forward to resolution of this issue.