Skip to main content
Nintex Community Menu Bar

Search Component - filter by a field value on model

  • July 8, 2024
  • 11 replies
  • 0 views
  • Translate

Forum|alt.badge.img+8

Is it possible to filter my results from the Search Component by a field value from a model?

Here’s my feeble attempt:

Did this topic help you find an answer to your question?
This topic has been closed for comments

Forum|alt.badge.img+10

Griffin,

I don’t think there is a way to filter the results in the Search Component.  I have setup pages that are used for searching where I prompt for specific search fields (like first name and last name), then use a button to activate and set the conditions for my model, and query to load the records.  You can then have table filters to further reduce the list.

Is this what you are trying to do?

Thanks,

Bill

Translate

Forum|alt.badge.img+8

So, you can filter the Search Component, but you have to do it through the HTML. For instance, I have an object called “Phrases” and I filter it so that only phrases with "PhraseType=“Goal” are displayed. I do it by putting this nested under the tag

So, my question is, can I make the ‘value’ parameter in that tag equal to a value from a model as opposed to a static string.

Translate

Forum|alt.badge.img+10

Griffin, I think this is what you are looking for: Page Not Found — Skuid v15.1.6 Documentation Your ‘hacking’ of the conditions led me to think there must be an API there. Thanks for finding this! Bill

Translate

Forum|alt.badge.img+8

You’re a fine American, Bill

Translate

Forum|alt.badge.img+7

It’d be great to have this as a standard feature of the Search component.

I’ve been using lookup fields for months and didn’t even see the Search component until recently. I love the on select actions. But not being able to add filters though means there are use cases where it won’t fit the bill.

Any chance this’ll be added to a future release? And is there any way to achieve this in the meantime? I understand Bill’s suggestion, but it means the drop down no longer appears.

Griffin, I thought you were talking about manually writing conditions into the page’s XML. I looked at this, the search component doesn’t have a node, and I tried to put one in, but it doesn’t appear to do anything. Am I misunderstanding? Or not trying hard enough?

Translate

Forum|alt.badge.img+11

Hi~

Glad Bill was able to help you out on this, Griffin.

As Gary suggested, I’ll change this to an Idea Under consideration for our developers to consider for a future release.

Thanks!
Karen 

Translate

Forum|alt.badge.img+8

Hi Bill, I am not sure how to leverage this API to accomplish what griffin is attempting to do. I too am trying to pass a global merge value into the the XML with no success. Could you perhaps elaborate how to leverage this API to achieve the same result (filtered results on the search component)

Translate

Forum|alt.badge.img+8

Could you perhaps elaborate how to leverage the API to achieve the same result (filtered results on the search component)?

Translate

Forum|alt.badge.img+8

Little late to the party but perhaps this could help someone:
https://community.skuid.com/t/search-component-filter

Translate

Forum|alt.badge.img+9

Michael, thanks very much for looping the other conversation in.

For easy access, here’s the link Michael shared: https://community.skuid.com/t/search-component-filter. In that conversation, Zach posts a way to tweak the Search Component’s XML to add a condition the same way you might see in a model. The caveat is that making changes via XML can sometimes yield unpredictable results, but I was able to build off of Zach’s information and get this working in my environment. What I did was I first set up two models, such that one model had a condition that was looking at a field in the other. In this case, I have an account detail model, as well as a list of other accounts whose industry match that first account. After I set up these models and conditions correctly, I transplanted the condition XML from the secondary ‘list’ model into the Search conditions, like Zach described. It’s working for me - does this work for you as well?

<skuidpage unsavedchangeswarning="yes" personalizationmode="server" showsidebar="true" useviewportmeta="true" showheader="true">
    <models>
        <model id="AccountDetail" limit="1" query="true" createrowifnonefound="false" datasource="salesforce" sobject="Account">
            <fields>
                <field id="RecordTypeId"/>
                <field id="Name"/>
                <field id="Industry"/>
            </fields>
            <conditions>
                <condition type="param" value="id" operator="=" enclosevalueinquotes="true" field="Id"/>
            </conditions>
            <actions/>
        </model>
        <model limit="100" query="true" createrowifnonefound="false" datasource="salesforce" sobject="Account" id="AccountsWithSameIndustry">
            <fields>
                <field id="RecordTypeId"/>
                <field id="Industry"/>
                <field id="Name"/>
            </fields>
            <conditions>
                <condition type="modelmerge" value="" field="Industry" operator="=" mergefield="Industry" novaluebehavior="deactivate" model="AccountDetail" enclosevalueinquotes="true"/>
            </conditions>
            <actions/>
        </model>
    </models>
    <components>
        <wrapper uniqueid="sk-13NO-260">
            <components>
                <search uniqueid="sk-13Mg-1220" soslfields="Name Fields">
                    <objects>
                        <object datasource="salesforce" id="Account" displaytemplate="{{Name}} - {{Industry}}" fields="Industry" orderby="Name DESC">
                            <fields>
                                <field id="Name"/>
                                <field id="Industry"/>
                            </fields>
                            <conditions>
                                <condition type="modelmerge" value="" field="Industry" operator="=" mergefield="Industry" novaluebehavior="deactivate" model="AccountDetail" enclosevalueinquotes="true"/>
                            </conditions>
                        </object>
                    </objects>
                </search>
            </components>
            <styles>
                <styleitem type="background"/>
                <styleitem type="border" padding="all">
                    <styles>
                        <styleitem property="padding" value="88px"/>
                        <styleitem property="box-sizing" value="border-box"/>
                    </styles>
                </styleitem>
                <styleitem type="size"/>
            </styles>
        </wrapper>
        <grid uniqueid="sk-13Lu-878" rowgutter="16px" columngutter="16px">
            <divisions>
                <division behavior="flex" minwidth="100px" ratio="1">
                    <components>
                        <pagetitle model="AccountDetail" uniqueid="sk-13M0-971">
                            <maintitle>
                                <template>{{Name}}</template>
                            </maintitle>
                            <subtitle>
                                <template>{{Model.label}}</template>
                            </subtitle>
                            <actions/>
                        </pagetitle>
                        <basicfieldeditor showheader="true" showsavecancel="true" showerrorsinline="true" model="AccountDetail" uniqueid="sk-13Ls-844" mode="read">
                            <columns>
                                <column width="100%" uniqueid="sk-13Ls-840">
                                    <sections>
                                        <section title="Section A" uniqueid="sk-13Ls-841">
                                            <fields>
                                                <field uniqueid="sk-13Ls-845" id="RecordTypeId"/>
                                                <field uniqueid="sk-13Ls-846" id="Name"/>
                                                <field uniqueid="sk-13Ls-847" id="Industry"/>
                                            </fields>
                                        </section>
                                    </sections>
                                </column>
                            </columns>
                        </basicfieldeditor>
                    </components>
                </division>
                <division behavior="flex" verticalalign="top" minwidth="100px" ratio="1">
                    <components>
                        <skootable showconditions="true" showsavecancel="true" showerrorsinline="true" searchmethod="server" searchbox="true" showexportbuttons="false" hideheader="false" hidefooter="false" pagesize="10" alwaysresetpagination="false" createrecords="true" model="AccountsWithSameIndustry" buttonposition="" mode="read" allowcolumnreordering="true" responsive="true" uniqueid="sk-13Lo-720" heading="Accounts with matching industry">
                            <fields>
                                <field id="Name" hideable="true" uniqueid="fi-13Lz-927"/>
                                <field id="Industry" uniqueid="fi-13Lo-722"/>
                            </fields>
                            <rowactions>
                                <action type="edit"/>
                                <action type="delete"/>
                            </rowactions>
                            <massactions usefirstitemasdefault="true">
                                <action type="massupdate"/>
                                <action type="massdelete"/>
                            </massactions>
                            <views>
                                <view type="standard"/>
                            </views>
                        </skootable>
                    </components>
                </division>
            </divisions>
            <styles>
                <styleitem type="background" bgtype="none"/>
            </styles>
        </grid>
    </components>
    <resources>
        <labels/>
        <javascript/>
        <css/>
        <actionsequences uniqueid="sk-13K9-293"/>
    </resources>
    <styles>
        <styleitem type="background" bgtype="none"/>
    </styles>
</skuidpage>
Translate

Forum|alt.badge.img+8

Hey Mark! Thanks a bunch! This worked perfectly. I dont think I woulda been able to figure out the right XML myself. For the record I needed my search component to search only contacts related to the account detail I was viewing. The XML is:

<conditions> <condition type="modelmerge" value="" field="AccountId" fieldtargetobjects="Account" operator="=" model="SelectedAccount" enclosevalueinquotes="true" mergefield="Id" novaluebehavior="deactivate"/> </conditions>
Translate

Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie Settings