Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

The filter is used to limit the set of records to be displayed in the list (in any list: for example, in the related list, open list, or the dictionarytable). The filter sets certain conditions for the record to meet to be in the list.  Filters Filters can be configured with the Condition Buildercondition builder.

For example, we you need to filter users living in SevastopolMoscow.  In In SQL, we use the WHERE operator to filter records.

Tip

You can add a filter with all necessary filters conditions in your Favorites in the Navigation navigation menu. To do thisso, drag and drop the breadcrumbs to breadcrumbs to the Favorites navigation tab.

Image Added

Filter

components

instruments


Filters consist of the following componentsinstruments:

  1. Condition builder (and the breadcrumbs as its integral part).
  2. Search and sorting:
    1. Input field at the top of every column is used for searching.
    2. Click on the column title to sort the search results.
  3. Filter Out/Show Matching (this item can be found in the context menu, to open it, right-click on the list cell).

All these components form the condition string , which that is sent in the request as a GET parameter, and the . The filtered list of records will be is returned and displayed.

Image RemovedImage Added


The difference between the condition builder on lists and the regular condition builder is that breadcrumbs and sorting functionality are added.

Breadcrumbs allow assessing The breadcrumbs allow you to assess the filter visually. Also, they allow you can edit quick filter editing by navigation to the condition specified.

Sorting allows adding The sorting allows you to add its conditions (ascending or descending) on one or more list fields.

How filters work


For more clarity, let's take an example.We need to find John example, you need to find John Doe's closed requestsregistered requests with the Low or Moderate priority, sorted by priority.

For this, we will create such a filter on the Request list (the To do so, create the following filter for the Request (itsm_request table) table:

Image RemovedImage Added


After that, the condition string can be found in the condition GET parameter. The browser adds %3D, %5E, %E to encode special symbols.

Code Block
languagejs
themeEclipse
titleGET
/list/task?condition=(state%3D-2%5EdescriptionISEMPTY%5Epriority<32%5Epriority<3%5Eassigned_user%3D160114171110151)

The condition string elements more closely:

%5EORDERBYDESCpriority


ElementDescription
state%3D-2State is Registered
descriptionISEMPTYpriority<3Selection will contain
priority<3
Description is not set
The set of records with Priority value less
that
than 3 will be displayed (Moderate and Low)
%5EORDERBYDESCpriority
assigned_user%3D160114171110151The record ID of the user.
ORDERBYDESCpriorityThe records
Records
will be sorted by the Priority field in descending order
.

Encoding and decoding queries

To decode an encoded query string storing the condition obtained from the GET parameter, we recommend using the addEncodedQuery and getConditionQuery methods of the SimpleRecord Server-Side class. You can decode the encoded string by completing the simple steps:

  1. Perform a selection against the table list view using a Condition Builder.
  2. Copy the condition from the URL as shown on the screenshot below:
    Image Removed
  3. Navigate to System Definition → System Scripts and click New.
  4. Fill in the Script field with code below (this one is given for example):

    1. Fill in the {tableName} placeholder with the table system name.

    2. Fill in the {conditionQueryCondition} placeholder with the copied condition.
    3. Click Run to execute the script.
Code Block
languagejs
themeEclipse
titleDecode encoded query
linenumberstrue
const current = new SimpleRecord('{tableName}'); current
.
addEncodedQuery('{conditionQueryCondition}'); ss.info(current.getConditionQuery()); // Info: (state=-2^descriptionISEMPTY^priority<3)


Note

Filtering The filtering for the fields of the Reference, List, ChoiceRecord Class and Field Name types has some nuances specifics. It is related to the value and display_value fields correlation in tables:

  1. Filtering The filtering is performed by the value of the value field. For example: in case , the filter condition is is field_name = value, then the displayed condition will be be field_title = display_value.
  2. Column The column search is performed by the value of the display_value field; either the filter or the breadcrumbs above it are filled with the condition field_name = value; at the same time, the condition displayed is field_title = display_value.
  3. The autoAuto-suggest functionality is performed by either using the values of the value or display_value field values fields.

The table below can clarify the filtration specifics when doing the selection with field of types above involvedexplains the features of filtering when selecting the fields of the above types.

Column typeOperatorSearch field
ReferenceLIKE / NOTLIKE / STARTSWITH / ENDSWITHdisplay_value
ListLIKE / NOTLIKEdisplay_value
ChoiceLIKE / NOTLIKE / STARTSWITH / ENDSWITHtitle
Record ClassLIKE / NOTLIKE / STARTSWITH / ENDSWITHtitle

See the Condition Operators article article to obtain the full list of filter operators full list.

Dynamic

Filters

filters


Dynamic filters extend the filters by the JS executing JavaScript scripts executing ability. This ability is available in the list condition builder and in the dynamic the dynamic reference qualifier condition builder.

In Condition Builderthe condition builder, dynamic filters are available when selecting the reference field and the 'is (dynamic)' or similar operator. After this, the list of available dynamic filters will appear.

When executing the filter as Dynamic filter scripts return a value that will be used in place of the condition using the 'is dynamic ' operator, the value returned by the dynamic filter script will be usedfilter when filtering.

To create a new dynamic filter, please complete the following steps (a new record in the Filter Option Dynamic (sys_filter_option_dynamic) table will be created):

  1. Navigate to System Definition → Settings → Dynamic FiltersFilter Options.
  2. Click New and fill in the fields.
  3. Click Save or Save and Exitexit to apply the changes.

As a result, a new record will be created in the Dynamic Filter Options (sys_filter_option_dynamic)table.

Info

You can also create dynamic filters for table fields of the sys_id type (ID)ID fields. To do thatso, specify the dynamic filter form fields in the following way:

  1. In the Column type, select Big Integer from the list.
  2. In the Reference table, specify the table to apply this filter on.
  3. Set Select the Active checkbox checked checkbox.
  4. Set Select the Available for filter checkbox checked checkbox.
  5. Complete Enter the script, complete filling in the form and click Save.

To apply the dynamic filter created, specify the ID table column and the is (dynamic) operator as the Condition Builder field and operator appropriatelyin the condition builder.

Dynamic filters Filter form fields

FieldMandatoryDescription
TitleY+The Specify the filter title.
Column TypetypeN-

The Specify the column type used in this filter. This field references to the Columns dictionary.

note

The Reference Qualifier tab is available only for field of Reference or List types. For fields of other types, use Condition Builder Options.

Referenced table+Referenced TableYChoose the table to apply this filter on.
Available for FilterfilterN-Select this checkbox to make this filter available in the filters list.
Available for Reference Qualifierreference qualifierN-Select this checkbox to make this filter available for a dynamic reference qualifier.
ActiveN-Select this checkbox to make the filter active.
OrderN-Enter the number to define set the list output order of filter processing.
ScriptY+

Enter the script that the dynamic filter runs. You can use all methods of server-side API classes here. After executing, the script should return the record ID or array of IDs.

Info

There is a feature for JavaScript that the ID must be a string, since the ID is a large number.



Table of Contents
absoluteUrltrue
classfixedPosition