Table filters are not being applied after Skuid update

  • 2
  • Problem
  • Updated 1 month ago
  • In Progress
  • (Edited)
After upgrading Skuid to version 11.2.11, my table filters stopped working correctly. Upon further investigation, I have noticed the following:

Executing skuid.model.getModel('WorkOrder').soql; in the console after the filter has been selected returns the following query (worth noting that the "WHERE" clause  is a condition set to "always on"):

  SELECT [...omitted fields]
  FROM WorkOrder__c
 WHERE (Stage__c not in ('Cancelled','Complete','In invoicing','Junked'))
ORDER BY Expected_ship_date__c

However, if I reload the page after selecting the filter, Skuid will query the records correctly:

  SELECT [...omitted fields]
    FROM WorkOrder__c
   WHERE (Stage__c not in ('Cancelled','Complete','In invoicing','Junked'))
    AND (RecordTypeId in ('012G0000000sK4bIAE','012G0000000sK4gIAE','01216000000We6dAAC','012G0000000sK4WIAU'))
     AND (Stage__c not in ('In receiving','Pending return','Pending approval'))
ORDER BY Expected_ship_date__c

...where the filter represents the two "AND" statements.

It seems to me that the filters are not being registered properly by Skuid. Is there anything I can do to circumvent this situation?
Photo of Leonardo Costa

Leonardo Costa

  • 174 Points 100 badge 2x thumb

Posted 7 months ago

  • 2
Photo of Mike Dwyer

Mike Dwyer, Champion

  • 4,518 Points 4k badge 2x thumb
Photo of Bill McCullough

Bill McCullough, Champion

  • 13,290 Points 10k badge 2x thumb
Leonardo,

Do you have a page that I can use to reproduce the issue in a Developer org.?  Maybe you can use Opportunities?

If not, can you post the XML from your model.

Thanks,

Bill
Photo of Leonardo Costa

Leonardo Costa

  • 174 Points 100 badge 2x thumb
Hi Bill,

Unfortunately, we don't have the page in a dev org. Here is the XML from the model:

<complexType name="WorkOrder__c">
    <complexContent>
        <extension base="ens:sObject">
            <sequence>
                <element name="Account__c" nillable="true" minOccurs="0" type="tns:ID"/>
                <element name="Account__r" nillable="true" minOccurs="0" type="ens:Account"/>
                <element name="ActualLeadTime__c" nillable="true" minOccurs="0" type="xsd:double"/>
                <element name="ActualShipDate__c" nillable="true" minOccurs="0" type="xsd:date"/>
                <element name="Advance_Payment__c" nillable="true" minOccurs="0" type="xsd:boolean"/>
                <element name="Age__c" nillable="true" minOccurs="0" type="xsd:double"/>
                <element name="AssessmentReports__r" nillable="true" minOccurs="0" type="tns:QueryResult"/>
                <element name="AttachedContentDocuments" nillable="true" minOccurs="0" type="tns:QueryResult"/>
                <element name="AttachedContentNotes" nillable="true" minOccurs="0" type="tns:QueryResult"/>
                <element name="Attachments" nillable="true" minOccurs="0" type="tns:QueryResult"/>
                <element name="Barcode__c" nillable="true" minOccurs="0" type="xsd:string"/>
                <element name="BillingCountry__c" nillable="true" minOccurs="0" type="xsd:string"/>
                <element name="BillingType__c" nillable="true" minOccurs="0" type="xsd:string"/>
                <element name="Billing_notes__c" nillable="true" minOccurs="0" type="xsd:string"/>
                <element name="CalCertOK__c" nillable="true" minOccurs="0" type="xsd:boolean"/>
                <element name="CalibrationDueDate__c" nillable="true" minOccurs="0" type="xsd:date"/>
                <element name="CannotSlipLabel__c" nillable="true" minOccurs="0" type="xsd:string"/>
                <element name="CannotSlip__c" nillable="true" minOccurs="0" type="xsd:boolean"/>
                <element name="CaseNumber__c" nillable="true" minOccurs="0" type="xsd:string"/>
                <element name="CaseStage__c" nillable="true" minOccurs="0" type="xsd:string"/>
                <element name="CaseSubject__c" nillable="true" minOccurs="0" type="xsd:string"/>
                <element name="Case__c" nillable="true" minOccurs="0" type="tns:ID"/>
                <element name="Case__r" nillable="true" minOccurs="0" type="ens:Case"/>
                <element name="Cases__r" nillable="true" minOccurs="0" type="tns:QueryResult"/>
                <element name="CombinedAttachments" nillable="true" minOccurs="0" type="tns:QueryResult"/>
                <element name="CommitDate__c" nillable="true" minOccurs="0" type="xsd:date"/>
                <element name="ConnectionReceived" nillable="true" minOccurs="0" type="ens:PartnerNetworkConnection"/>
                <element name="ConnectionReceivedId" nillable="true" minOccurs="0" type="tns:ID"/>
                <element name="ConnectionSent" nillable="true" minOccurs="0" type="ens:PartnerNetworkConnection"/>
                <element name="ConnectionSentId" nillable="true" minOccurs="0" type="tns:ID"/>
                <element name="Contact__c" nillable="true" minOccurs="0" type="tns:ID"/>
                <element name="Contact__r" nillable="true" minOccurs="0" type="ens:Contact"/>
                <element name="ContentDocumentLinks" nillable="true" minOccurs="0" type="tns:QueryResult"/>
                <element name="CreatedBy" nillable="true" minOccurs="0" type="ens:User"/>
                <element name="CreatedById" nillable="true" minOccurs="0" type="tns:ID"/>
                <element name="CreatedDate" nillable="true" minOccurs="0" type="xsd:dateTime"/>
                <element name="CurrencyIsoCode" nillable="true" minOccurs="0" type="xsd:string"/>
                <element name="CurrentStage__c" nillable="true" minOccurs="0" type="xsd:string"/>
                <element name="CustomerPO__c" nillable="true" minOccurs="0" type="xsd:string"/>
                <element name="CustomsInformation__c" nillable="true" minOccurs="0" type="xsd:string"/>
                <element name="DateTariffCleared__c" nillable="true" minOccurs="0" type="xsd:date"/>
                <element name="DaysUntilShipment__c" nillable="true" minOccurs="0" type="xsd:double"/>
                <element name="Days_from_TFC_to_shipment__c" nillable="true" minOccurs="0" type="xsd:double"/>
                <element name="Description__c" nillable="true" minOccurs="0" type="xsd:string"/>
                <element name="DuplicateRecordItems" nillable="true" minOccurs="0" type="tns:QueryResult"/>
                <element name="Emails" nillable="true" minOccurs="0" type="tns:QueryResult"/>
                <element name="EngineeringJIRAIssue__c" nillable="true" minOccurs="0" type="xsd:string"/>
                <element name="EventRelations" nillable="true" minOccurs="0" type="tns:QueryResult"/>
                <element name="ExpectedLeadTime__c" nillable="true" minOccurs="0" type="xsd:double"/>
                <element name="ExpectedSlipAmount__c" nillable="true" minOccurs="0" type="xsd:double"/>
                <element name="ExpectedTFCDate__c" nillable="true" minOccurs="0" type="xsd:date"/>
                <element name="ExpectedTFCNotes__c" nillable="true" minOccurs="0" type="xsd:string"/>
                <element name="Expected_ship_date__c" nillable="true" minOccurs="0" type="xsd:date"/>
                <element name="FedEx_Shipments__r" nillable="true" minOccurs="0" type="tns:QueryResult"/>
                <element name="FeedSubscriptionsForEntity" nillable="true" minOccurs="0" type="tns:QueryResult"/>
                <element name="HasUnresolvedShortages__c" nillable="true" minOccurs="0" type="xsd:boolean"/>
                <element name="Histories" nillable="true" minOccurs="0" type="tns:QueryResult"/>
                <element name="HoldForShipping__c" nillable="true" minOccurs="0" type="xsd:boolean"/>
                <element name="ImportedIntoQuickBooks__c" nillable="true" minOccurs="0" type="xsd:boolean"/>
                <element name="IncludedInShipment__c" nillable="true" minOccurs="0" type="xsd:string"/>
                <element name="InstrumentCount__c" nillable="true" minOccurs="0" type="xsd:double"/>
                <element name="InternalComments__c" nillable="true" minOccurs="0" type="xsd:string"/>
                <element name="InvoiceReference__c" nillable="true" minOccurs="0" type="xsd:string"/>
                <element name="IsDeleted" nillable="true" minOccurs="0" type="xsd:boolean"/>
                <element name="JIRAIssues__r" nillable="true" minOccurs="0" type="tns:QueryResult"/>
                <element name="JSDIssue__c" nillable="true" minOccurs="0" type="xsd:string"/>
                <element name="LabourPerformed__c" nillable="true" minOccurs="0" type="xsd:string"/>
                <element name="LastModifiedBy" nillable="true" minOccurs="0" type="ens:User"/>
                <element name="LastModifiedById" nillable="true" minOccurs="0" type="tns:ID"/>
                <element name="LastModifiedDate" nillable="true" minOccurs="0" type="xsd:dateTime"/>
                <element name="LastModifiedDelta__c" nillable="true" minOccurs="0" type="xsd:double"/>
                <element name="LastReferencedDate" nillable="true" minOccurs="0" type="xsd:dateTime"/>
                <element name="LastViewedDate" nillable="true" minOccurs="0" type="xsd:dateTime"/>
                <element name="LookedUpFromActivities" nillable="true" minOccurs="0" type="tns:QueryResult"/>
                <element name="ManualShippingCost__c" nillable="true" minOccurs="0" type="xsd:boolean"/>
                <element name="MaterialsUsed__c" nillable="true" minOccurs="0" type="xsd:string"/>
                <element name="Name" nillable="true" minOccurs="0" type="xsd:string"/>
                <element name="Notes" nillable="true" minOccurs="0" type="tns:QueryResult"/>
                <element name="NotesAndAttachments" nillable="true" minOccurs="0" type="tns:QueryResult"/>
                <element name="OpportunityName__c" nillable="true" minOccurs="0" type="xsd:string"/>
                <element name="Opportunity__c" nillable="true" minOccurs="0" type="tns:ID"/>
                <element name="Opportunity__r" nillable="true" minOccurs="0" type="ens:Opportunity"/>
                <element name="Opportunity_close_date__c" nillable="true" minOccurs="0" type="xsd:date"/>
                <element name="Order_acknowledgement__c" nillable="true" minOccurs="0" type="xsd:double"/>
                <element name="OriginalLeadTime__c" nillable="true" minOccurs="0" type="xsd:double"/>
                <element name="Owner" nillable="true" minOccurs="0" type="ens:Name"/>
                <element name="OwnerId" nillable="true" minOccurs="0" type="tns:ID"/>
                <element name="ProQuote_ref__c" nillable="true" minOccurs="0" type="xsd:string"/>
                <element name="ProcessInstances" nillable="true" minOccurs="0" type="tns:QueryResult"/>
                <element name="ProcessSteps" nillable="true" minOccurs="0" type="tns:QueryResult"/>
                <element name="ProductionSlipAmount__c" nillable="true" minOccurs="0" type="xsd:double"/>
                <element name="QC_performed__c" nillable="true" minOccurs="0" type="xsd:boolean"/>
                <element name="QtyAccessoriesOK__c" nillable="true" minOccurs="0" type="xsd:boolean"/>
                <element name="QtyInstOK__c" nillable="true" minOccurs="0" type="xsd:boolean"/>
                <element name="RecordActionHistories" nillable="true" minOccurs="0" type="tns:QueryResult"/>
                <element name="RecordActions" nillable="true" minOccurs="0" type="tns:QueryResult"/>
                <element name="RecordAssociatedGroups" nillable="true" minOccurs="0" type="tns:QueryResult"/>
                <element name="RecordType" nillable="true" minOccurs="0" type="ens:RecordType"/>
                <element name="RecordTypeId" nillable="true" minOccurs="0" type="tns:ID"/>
                <element name="RecordTypeMatchesOpportunity__c" nillable="true" minOccurs="0" type="xsd:boolean"/>
                <element name="Require_shipping_quotation__c" nillable="true" minOccurs="0" type="xsd:boolean"/>
                <element name="RequiredAP__c" nillable="true" minOccurs="0" type="xsd:boolean"/>
                <element name="RequiredCC__c" nillable="true" minOccurs="0" type="xsd:boolean"/>
                <element name="RequiredLC__c" nillable="true" minOccurs="0" type="xsd:boolean"/>
                <element name="RequiredTariff__c" nillable="true" minOccurs="0" type="xsd:boolean"/>
                <element name="RequiresCC__c" nillable="true" minOccurs="0" type="xsd:boolean"/>
                <element name="RequiresLC__c" nillable="true" minOccurs="0" type="xsd:boolean"/>
                <element name="RequiresSalesAttention__c" nillable="true" minOccurs="0" type="xsd:boolean"/>
                <element name="RequiresShippingAttention__c" nillable="true" minOccurs="0" type="xsd:boolean"/>
                <element name="Requires_Tariff__c" nillable="true" minOccurs="0" type="xsd:boolean"/>
                <element name="ResolvedShortages__c" nillable="true" minOccurs="0" type="xsd:double"/>
                <element name="SCM_Jiras__c" nillable="true" minOccurs="0" type="xsd:string"/>
                <element name="SCM_status__c" nillable="true" minOccurs="0" type="xsd:string"/>
                <element name="STOP_SHIP__c" nillable="true" minOccurs="0" type="xsd:boolean"/>
                <element name="SensorsOK__c" nillable="true" minOccurs="0" type="xsd:boolean"/>
                <element name="SerialNumbersOK__c" nillable="true" minOccurs="0" type="xsd:boolean"/>
                <element name="ServiceReports__r" nillable="true" minOccurs="0" type="tns:QueryResult"/>
                <element name="Shares" nillable="true" minOccurs="0" type="tns:QueryResult"/>
                <element name="Ship_month__c" nillable="true" minOccurs="0" type="xsd:double"/>
                <element name="ShippingCarrierAccount__c" nillable="true" minOccurs="0" type="xsd:string"/>
                <element name="ShippingCarrier__c" nillable="true" minOccurs="0" type="xsd:string"/>
                <element name="ShippingCity__c" nillable="true" minOccurs="0" type="xsd:string"/>
                <element name="ShippingCompany__c" nillable="true" minOccurs="0" type="xsd:string"/>
                <element name="ShippingContact__c" nillable="true" minOccurs="0" type="tns:ID"/>
                <element name="ShippingContact__r" nillable="true" minOccurs="0" type="ens:Contact"/>
                <element name="ShippingCost__c" nillable="true" minOccurs="0" type="xsd:double"/>
                <element name="ShippingCountry__c" nillable="true" minOccurs="0" type="xsd:string"/>
                <element name="ShippingDimensions__c" nillable="true" minOccurs="0" type="xsd:string"/>
                <element name="ShippingEmail__c" nillable="true" minOccurs="0" type="xsd:string"/>
                <element name="ShippingInstructions__c" nillable="true" minOccurs="0" type="xsd:string"/>
                <element name="ShippingName__c" nillable="true" minOccurs="0" type="xsd:string"/>
                <element name="ShippingPhone__c" nillable="true" minOccurs="0" type="xsd:string"/>
                <element name="ShippingPostalCode__c" nillable="true" minOccurs="0" type="xsd:string"/>
                <element name="ShippingResponsibility__c" nillable="true" minOccurs="0" type="xsd:string"/>
                <element name="ShippingState__c" nillable="true" minOccurs="0" type="xsd:string"/>
                <element name="ShippingStreet__c" nillable="true" minOccurs="0" type="xsd:string"/>
                <element name="ShortagesCount__c" nillable="true" minOccurs="0" type="xsd:double"/>
                <element name="SlipAmount__c" nillable="true" minOccurs="0" type="xsd:double"/>
                <element name="SlipReasonCount__c" nillable="true" minOccurs="0" type="xsd:double"/>
                <element name="SlipReasons__r" nillable="true" minOccurs="0" type="tns:QueryResult"/>
                <element name="Slip_reason__c" nillable="true" minOccurs="0" type="xsd:string"/>
                <element name="SpecialInstructions__c" nillable="true" minOccurs="0" type="xsd:string"/>
                <element name="Stage__c" nillable="true" minOccurs="0" type="xsd:string"/>
                <element name="Status__c" nillable="true" minOccurs="0" type="xsd:string"/>
                <element name="SupportKitsIncluded__c" nillable="true" minOccurs="0" type="xsd:boolean"/>
                <element name="SystemModstamp" nillable="true" minOccurs="0" type="xsd:dateTime"/>
                <element name="TaskRelations" nillable="true" minOccurs="0" type="tns:QueryResult"/>
                <element name="TopicAssignments" nillable="true" minOccurs="0" type="tns:QueryResult"/>
                <element name="Tracking_number__c" nillable="true" minOccurs="0" type="xsd:string"/>
                <element name="TypeInstrOK__c" nillable="true" minOccurs="0" type="xsd:boolean"/>
                <element name="Type__c" nillable="true" minOccurs="0" type="xsd:string"/>
                <element name="UPS_Shipments__r" nillable="true" minOccurs="0" type="tns:QueryResult"/>
                <element name="UserRecordAccess" nillable="true" minOccurs="0" type="ens:UserRecordAccess"/>
                <element name="WOLineCount__c" nillable="true" minOccurs="0" type="xsd:double"/>
                <element name="WOLinesInvalid__c" nillable="true" minOccurs="0" type="xsd:double"/>
                <element name="WOLinesValid__c" nillable="true" minOccurs="0" type="xsd:double"/>
                <element name="WONumberOnly__c" nillable="true" minOccurs="0" type="xsd:string"/>
                <element name="WOStageIntervals__r" nillable="true" minOccurs="0" type="tns:QueryResult"/>
                <element name="WorkOrderLines__r" nillable="true" minOccurs="0" type="tns:QueryResult"/>
                <element name="WorkOrderShortages__r" nillable="true" minOccurs="0" type="tns:QueryResult"/>
                <element name="Work_Order_Instrument_Junctions__r" nillable="true" minOccurs="0" type="tns:QueryResult"/>
                <element name="ZendeskTicket__c" nillable="true" minOccurs="0" type="tns:ID"/>
                <element name="ZendeskTicket__r" nillable="true" minOccurs="0" type="ens:Zendesk__Zendesk_Ticket__c"/>
            </sequence>
        </extension>
    </complexContent>
</complexType>
(Edited)
Photo of Bill McCullough

Bill McCullough, Champion

  • 13,250 Points 10k badge 2x thumb
Leonardo,

I think this is the WSDL for the object from Salesforce.

I wanted you to open your Skuid page in the page builder.  Scroll down to the bottom of the page.  Click the link called 'View/Edit XML'.  Then find the model for the Work Order.

The model XML from the Skuid page will look like this:

        <model id="Account" limit="1" query="true" createrowifnonefound="false" datasource="salesforce" sobject="Account" type="">
            <fields>
                <field id="Name"/>
                <field id="CreatedDate"/>
                <field id="Id"/>
                <field id="Description"/>
                <field id="SicDesc"/>
            </fields>
            <conditions>
                <condition type="param" enclosevalueinquotes="true" operator="=" field="Id" value="id"/>
            </conditions>
            <actions/>
        </model>
Thanks,

Bill
Photo of Leonardo Costa

Leonardo Costa

  • 174 Points 100 badge 2x thumb
Sorry, my bad... Here's the Work Order model from the Skuid page:

<model id="WorkOrder" limit="" query="true" createrowifnonefound="false" sobject="WorkOrder__c" orderby="Expected_ship_date__c" doclone="" datasource="salesforce">
    <fields>
        <field id="Advance_Payment__c"/>
        <field id="Description__c"/>
        <field id="Expected_ship_date__c"/>
        <field id="Requires_Tariff__c"/>
        <field id="Stage__c"/>
        <field id="Status__c"/>
        <field id="Name"/>
        <field id="Age__c"/>
        <field id="CannotSlip__c"/>
        <field id="Slip_reason__c"/>
        <field id="RecordTypeId"/>
        <field id="RecordType.Name"/>
        <field id="Account__r.Name"/>
        <field id="RecordType.SobjectType"/>
        <field id="SCM_status__c" overridemetadata="false" ogdisplaytype="TEXTAREA" displaytype="TEXTAREA"/>
        <field id="WorkOrderLines__r" type="childRelationship" limit="10">
            <fields>
                <field id="Name"/>
                <field id="Notes__c"/>
                <field id="ProductCode__c"/>
                <field id="PressureRating__c"/>
                <field id="ProductName__c"/>
                <field id="Quantity__c"/>
            </fields>
        </field>
        <field id="Contact__r.Name"/>
        <field id="Opportunity__r.Amount"/>
        <field id="Opportunity__r.Amount_gross__c"/>
        <field id="Opportunity__r.Amount_net__c"/>
        <field id="HoldForShipping__c"/>
        <field id="CommitDate__c"/>
        <field id="SlipAmount__c"/>
        <field id="ExpectedSlipAmount__c"/>
        <field id="ExpectedTFCNotes__c"/>
        <field id="ExpectedTFCDate__c"/>
        <field id="SpecInst" uionly="true" displaytype="FORMULA" readonly="true" ogdisplaytype="TEXT" defaultvaluetype="fieldvalue" returntype="BOOLEAN">
            <formula>IF(ISBLANK({{SpecialInstructions__c}}),false,true)</formula>
        </field>
        <field id="SpecialInstructions__c"/>
        <field id="EngineeringJIRAIssue__c"/>
        <field id="Account__r.BillingCountry"/>
        <field id="HasUnresolvedShortages__c"/>
    </fields>
    <conditions>
        <condition type="multiple" value="" field="Stage__c" operator="not in" enclosevalueinquotes="true">
            <values>
                <value>Cancelled</value>
                <value>Complete</value>
                <value>In invoicing</value>
                <value>Junked</value>
            </values>
        </condition>
        <condition type="multiple" value="" state="filterableon" inactive="false" field="RecordTypeId" operator="in" enclosevalueinquotes="true" name="SalesWIPOonly">
            <values>
                <value>Sale</value>
                <value>Lease</value>
                <value>Replacement</value>
                <value>RaD_SaM</value>
            </values>
        </condition>
        <condition type="multiple" value="" field="RecordTypeId" operator="in" enclosevalueinquotes="true" state="filterableoff" inactive="true" name="ServiceWIPOnly">
            <values>
                <value>Calibration</value>
                <value>Repair</value>
                <value>Replacement</value>
                <value>Upgrade</value>
            </values>
        </condition>
        <condition type="multiple" value="" field="Stage__c" state="filterableoff" inactive="true" name="StageNOTPendingApproval" operator="not in" enclosevalueinquotes="true">
            <values>
                <value>In receiving</value>
                <value>Pending return</value>
                <value>Pending approval</value>
            </values>
        </condition>
        <condition type="multiple" value="" field="Stage__c" state="filterableoff" inactive="true" name="StageONLYPendingApproval" operator="in" enclosevalueinquotes="true">
            <values>
                <value>Pending approval</value>
                <value>In receiving</value>
                <value>Pending return</value>
            </values>
        </condition>
        <condition type="fieldvalue" value="MTS" enclosevalueinquotes="true" field="RecordTypeId" state="filterableoff" inactive="true" name="MTSWIPOnly"/>
        <condition type="fieldvalue" value="RaD_SaM" enclosevalueinquotes="true" field="RecordTypeId" operator="=" state="filterableoff" inactive="true" name="RaDSaMWIPOnly"/>
    </conditions>
    <groupby method="simple"/>
    <actions/>
</model>
Photo of Bill McCullough

Bill McCullough, Champion

  • 13,208 Points 10k badge 2x thumb
Leonardo,

Thanks for posting your model.  Nothing jumps out about your model except for having multiple conditions on the same field (RecordTypeId).  I tried recreating it on Opportunities, but so far I have not been able to see what you are seeing.

One thing that you can try is to make a saved version of your page (so that you have a roll back point).  Remove all of the conditions and then add them back 1 by 1 and check the SOQL each time until you see an issue.

Thanks,

Bill
Photo of Leonardo Costa

Leonardo Costa

  • 174 Points 100 badge 2x thumb
Bill, 

Trying to add the conditions as you suggested didn't work for me. I've also updated Skuid to version 12.0.2, but that didn't fix the issue either.
(Edited)
Photo of Leonardo Costa

Leonardo Costa

  • 174 Points 100 badge 2x thumb
I have updated Skuid to version 12.0.6 and created a simplified V1 page from scratch to test the filters again. The page has only one model, which has 5 conditions:

    0: Not Completed - Always on;
    1: Sales Work Orders - filterable, default on;
    2: Service Work Orders - filterable default off;
    3: Except pendings - filterable default on;
    4: Pendings only - filterable default off;

There are two filter options:
    
SalesWIP:
- Enables: 1 and 3
- Disables: 2 and 4

ServiceWIP:
- Enables: 2 and 4
- Disables: 1 and 3

The filter is still not applied until you refresh the page, but what caught my attention this time is the model conditions (accessed through the Javascript console immediately after selecting a filter) do reflect the correct settings:

After choosing "SalesWIP":
    0: {inactive: false}
    1: {inactive: false}
    2: {inactive: true}
    3: {inactive: false}
    4: {inactive: true}

After choosing "ServiceWIP":
    0: {inactive: false}
    1: {inactive: true}
    2: {inactive: false}
    3: {inactive: true}
    4: {inactive: false}

... which means the issue is not related to the way the conditions are configured, but to the way the conditions are applied to the SOQL query. Running skuid.$M('WorkOrder').soql immediately after selecting a filter returns:

  SELECT RecordTypeId,
         Name,
         Expected_ship_date__c,
         RecordType.DeveloperName,
         Stage__c,
         Status__c,
         CurrentStage__c,
         Id
    FROM WorkOrder__c 
   WHERE (Stage__c not in ('Complete','Cancelled','Junked','In invoicing')) 
ORDER BY Expected_ship_date__c 
   LIMIT 101

... where, again, only the "always on" condition is applied.

Here's the simplified Skuid page XML:

<skuidpage unsavedchangeswarning="yes" personalizationmode="server" showsidebar="true" showheader="true">
    <models>
        <model id="WorkOrder" query="true" createrowifnonefound="false" datasource="salesforce" sobject="WorkOrder__c" orderby="Expected_ship_date__c" limit="100">
            <fields>
                <field id="RecordTypeId"/>
                <field id="Id"/>
                <field id="Name"/>
                <field id="Expected_ship_date__c"/>
                <field id="RecordType.DeveloperName"/>
                <field id="Stage__c"/>
                <field id="Status__c"/>
                <field id="CurrentStage__c"/>
            </fields>
            <conditions>
                <condition type="multiple" value="" field="Stage__c" operator="not in" enclosevalueinquotes="true">
                    <values>
                        <value>Complete</value>
                        <value>Cancelled</value>
                        <value>Junked</value>
                        <value>In invoicing</value>
                    </values>
                </condition>
                <condition type="multiple" value="" field="RecordType.Name" fieldtargetobjects="RecordType" operator="in" enclosevalueinquotes="true" state="filterableon" inactive="false" name="SalesWIPOonly">
                    <values>
                        <value>Sale</value>
                        <value>Lease</value>
                        <value>Replacement</value>
                        <value>RaD_SaM</value>
                    </values>
                </condition>
                <condition type="multiple" value="" field="RecordType.Name" fieldtargetobjects="RecordType" operator="in" enclosevalueinquotes="true" state="filterableoff" inactive="true" name="ServiceWIPOnly">
                    <values>
                        <value>Calibration</value>
                        <value>Repair</value>
                        <value>Replacement</value>
                        <value>Upgrade</value>
                    </values>
                </condition>
                <condition type="multiple" value="" field="Stage__c" operator="not in" enclosevalueinquotes="true" state="filterableon" inactive="false" name="StageNOTPendingApproval">
                    <values>
                        <value>In receiving</value>
                        <value>Pending return</value>
                        <value>Pending approval</value>
                    </values>
                </condition>
                <condition type="multiple" value="" field="Stage__c" operator="in" enclosevalueinquotes="true" state="filterableoff" inactive="true" name="StageONLYPendingApproval">
                    <values>
                        <value>In receiving</value>
                        <value>Pending return</value>
                        <value>Pending approval</value>
                    </values>
                </condition>
            </conditions>
            <actions/>
        </model>
    </models>
    <components>
        <skootable showconditions="true" showsavecancel="true" showerrorsinline="true" searchmethod="client" searchbox="true" showexportbuttons="false" hideheader="false" hidefooter="false" pagesize="all" alwaysresetpagination="false" createrecords="false" model="WorkOrder" mode="read" allowcolumnreordering="false" responsive="false" uniqueid="sk-1EuK-137" sortonclient="true" emptysearchbehavior="query" allowscrollbars="true" floatheader="true" cssclass="tight-checkboxes" heading="Leo's Skuid Test - V1 Page" instantfilters="true">
            <fields>
                <field id="Name" hideable="true" uniqueid="fi-1EuW-174"/>
                <field id="Expected_ship_date__c" hideable="true" uniqueid="fi-1EuW-175"/>
                <field id="Stage__c" hideable="true" uniqueid="fi-1Ez9-615"/>
                <field id="RecordType.DeveloperName" hideable="true" uniqueid="fi-1EuW-176">
                    <label>Type</label>
                </field>
                <field id="Status__c" hideable="true" uniqueid="fi-1Euc-192"/>
            </fields>
            <rowactions/>
            <massactions usefirstitemasdefault="true"/>
            <views>
                <view type="standard"/>
            </views>
            <filters>
                <filter type="select" createfilteroffoption="false" affectcookies="true" autocompthreshold="25" conditionsource="manual" filtermethod="server" labelmode="no">
                    <sources>
                        <source type="manual" effectsbehavior="justdefault">
                            <options>
                                <option label="SalesWIP" type="complex">
                                    <effects>
                                        <effect action="deactivate" value="" condition="ServiceWIPOnly"/>
                                        <effect action="activate" value="" condition="StageNOTPendingApproval"/>
                                        <effect action="activate" value="" condition="SalesWIPOonly"/>
                                    </effects>
                                </option>
                                <option label="ServiceWIP pendings only" type="complex">
                                    <effects>
                                        <effect action="deactivate" value="" condition="SalesWIPOonly"/>
                                        <effect action="deactivate" value="" condition="StageNOTPendingApproval"/>
                                        <effect action="activate" value="" condition="ServiceWIPOnly"/>
                                        <effect action="activate" value="" condition="StageONLYPendingApproval"/>
                                    </effects>
                                </option>
                            </options>
                        </source>
                    </sources>
                </filter>
            </filters>
            <searchfields/>
        </skootable>
    </components>
    <resources>
        <labels/>
        <javascript/>
        <css>
            <cssitem location="inline" name="tight-checkboxes" cachelocation="false">.tight-checkboxes table.nx-skootable-data input[type=checkbox] {
                display: block;
                margin: 0 auto;
                }
            </cssitem>
        </css>
        <actionsequences uniqueid="sk-1Et--117"/>
    </resources>
    <styles>
        <styleitem type="background" bgtype="none"/>
    </styles>
</skuidpage>




Photo of Jon A.

Jon A.

  • 192 Points 100 badge 2x thumb
I have had this same issue for about a month. - still ongoing.

There was an issue that text entry-based filters (Multi-Select / Select Option) were not registering unless the page was refreshed (apparently fixed in 11.2.6 and 11.2.7). No issues with those here.

However in my recent experience, this issue still seems to be the case with Date Range and Toggle filters - possibly Numeric Range as well (haven't tested that one specifically for the error yet).

Have been on Spark (12.0.1) for about a month now, which is approximately around the time when the issue was reported in my org - could have been going on prior to that. Upgraded to 12.0.2 as well, still the same issues.

I've tried complete v2 rebuilds too, but the issue still persists and these filters cannot be properly applied.

Currently have someone looking into this, no word yet..



Photo of Leonardo Costa

Leonardo Costa

  • 174 Points 100 badge 2x thumb
Fixed on Spark 12.1.3 (May 14, 2019).