Filtering
Filters
lookup
7.11

It give me this error : 

 Cannot read property 'High' of undefined 

when I write this code:

filters.add("ActvityStatus", this.Terrasoft.createColumnFilterWithParameter(

                            this.Terrasoft.ComparisonType.EQUAL, "Status",ConfigurationConstants.Activity.Status.High));

 

why can't access the value 'High' of the lookup 'Status' of the activity object

Like 0

Like

6 comments

Dear Mohamad,

Please follow the steps given by Grigory. The issue is most likely related to not indicated activity status in Configuration Constants.

The other reason could be not indicated ConfigurationConstants as a dependency in the schema. Please check, that you have added it to dependencies:

Regards,

Anastasia

I  have added it to dependenices

Mohamad, 

In this case please double-check that you have added "High" activity status to the Configuration Constants.

Regards,

Anastasia

 

 

Anastasia Botezat,

how to do that?

Dear Mohamad,

In order to set needed status you can go two ways:

1. Hard code the Id of needed status. In this case filtration will look like this, where zeros are status Id:

filters.add("ActvityStatus", this.Terrasoft.createColumnFilterWithParameter(
   this.Terrasoft.ComparisonType.EQUAL, "Status", "00000000-0000-0000-0000-00000000"));

2. Go to the system configuration, create a replacing module of ConfigurationConstants schema. Copy all the code from parent ConfigurationConstants schema. Finally, add the activity status to the activity status block in the schema.

Regards,

Anastasia

Anastasia Botezat,

Thank you

Show all comments
Filters
Filtering
Sections
section

I need to filter grid section list of any page (for example the account section) but  by code

any help?

Like 0

Like

4 comments

Hi!

It depends on what exactly you want to implement. If you want to filter records in the section in order to display only certain records you can easily check how records are filtered in ActivitySectionV2:

Image.png



In case you want to filter values in the field you can either filter them according to any other field or just configure access rights for lookup object accordingly. Can you please provide more detailed example of what you are trying to implement? 

Angela Reyes,

Yes I want to filter records in the section in order to display only certain records  , I tried to do that but I failed, can you please add a code

I want to add a checkbox in the actvity section page near to date filter when check the box filter the section grid , can you please add code?

The image you sent does not open

mohamad abdallah,

Code is: 

                    filters.add("NotEmailFilter", this.Terrasoft.createColumnFilterWithParameter(

                        this.Terrasoft.ComparisonType.NOT_EQUAL, "Type", ConfigurationConstants.Activity.Type.Email

                    ));

 

Please specify how exactly this checkbox must work? What it must hide? 

Show all comments
7.11
studio
ESQ
Filtering
Filters
Activities

I really need to solve this question , even a part of them

-Create new filter “Attention” in the Activity section grid page (near Owner and Date filters). When turned on, only overdue activities and high priority 

 today activities should be displayed. Filter should use current user time zone.

 (using code and not filter manually)

Like 0

Like

2 comments

In ActivitySectionV2 do it by analogy with this example

1) Create new filter near Owner and Date filters

{

    "operation": "insert",

    "parentName": "IsActiveFiltersContainer",

    "propertyName": "items",

    "name": "IsActiveCheckbox",

    "values": {

        "bindTo": "IsActive",

        "caption": "Активные",

        "controlConfig": {

            "className": "Terrasoft.CheckBoxEdit",

            "checkedchanged": {

                "bindTo": "onIsActiveCheckboxChecked"

            }

        }

    }

}

2)

getFilters: function () {

    var sectionFilters = this.callParent(arguments);

    this.setIsActiveFilter(sectionFilters);

    //this.setCommunicationFilter(sectionFilters);

    return sectionFilters;

},

setIsActiveFilter: function (filterCollection) {

    var isActive = this.get("IsActive");

    if (isActive) {

        if (!filterCollection.contains("IsActiveFilter")) {

            filterCollection.add("IsActiveFilter", this.Terrasoft.createColumnIsNullFilter("Account"));

        }

    } else {

        filterCollection.removeByKey("IsActiveFilter");

    }

},  

onIsActiveCheckboxChecked: function (value) {

                if (!this.get("IsSectionVisible")) {

                    return;

                }

                this.set("IsActive", value);

                this.sandbox.publish("FiltersChanged", null, [this.sandbox.id]);

                this.reloadGridData();

            },       

3)Add atribute "IsActive"

attributes: {

      "IsActive": {

          "dataValueType": this.Terrasoft.DataValueType.BOOLEAN,

          "type": this.Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,

           "value": true

            },

        }

}

Hello!

Please see a comment from Grigoriy above, this would help you implement your idea.

Matt

Show all comments
detail
Filtering
7.12

Hi Everyone.



I have 2 section, section Contact and Flight Detail (FD). Both are connected (FD is detail of Contact).

I want to display just apart of data of the detail were have conditions below:

Contact.Email == FD.Email AND Contact.Full Name == FD.Full Name

For example, I open data Contact with Full Name = “ALI BABA” and when I saw detail FD, the detail automatically only display data as the conditions above.

the picture below display all data of detail, while I want to display is data in the red circle.

How to implement that? any solution or trick ?



Thanks



*SOLVED

I found posting with same question https://community.bpmonline.com/questions/system-filter-detail-list.

Like 0

Like

1 comments

Dear Romadan,

In order to achieve such task you can use filter group approach. 

You can also check the article below for additional instructions on types of filters and filter group itself:

https://academy.bpmonline.com/documents/technic-sdk/7-12/using-filtrati…

https://academy.bpmonline.com/documents/technic-sdk/7-12/entityschemaqu…

Regards,

Anastasia

Show all comments
Discussion
Filtering

Hi,

Currently the section folders and filters has a single level to which you can create multiple conditions as single AND or single OR statement.

This is not very flexible and prevents accurate methods of filtering.

Feature Request

Allow for multiple levels of conditions, where each level has their own selector for the content within being and AND or OR inclusion. The root group level will start with the AND / OR definition, with sub levels created.

Here is an example where I need the filter logic to include either the status to be In Progress OR Planned, but the project name contains the keyword 'reference'. Currently this evaluates as an OR on each of these, where it should be status has the OR, with the outcome of that included as an AND for the name. In textual filter form this is (Name Contains 'reference' AND (status = 'In Progress' OR Status = 'Planned'))

thanks

Mark

2 comments

Dear Mark,

The functionality that you are describing is already present in the bpm'online application. If you need to group several filtering conditions you can choose several of them by pressing "Ctrl" button and choosing them one by one and after that in actions you can choose "Group" (see screenshots http://prntscr.com/kwf791 -> http://prntscr.com/kwf7cw). As a result you can build difficult filters and group conditions in the way you need it for your business.

Best regards,

Oscar

Aha!

Working. Let's change the feature request to make it more obvious this can be done.

Thanks for the pointer

Show all comments
using tags
Filtering
dynamic folder

I created a KB article and added a corporate tag called Sales.  I created a dynamic folder call Sales Doc and what to only show KB articles that have the tag "Sales".

The filter criteria does not seem to work.

How do you specify that you want the tag -has- "Sales" in the filter criteria of the dynamic folder?

Like 0

Like

3 comments

Dear Brian,

Basically you can filter the records by tag using 2 ways - special button Tag and filter.

Simply click on Tag and start typing the name of your tag.

Or add filter by object [Knowledge base record tag (by column Object)], add tag=SelectTag.

If you want to find all records having tag that contains certain text in the name you can use Tag.Name. 

Here are 3 ways mentioned above - http://prntscr.com/jsb5n8.

With best regards,

Oliver

 

Oliver,

THANKS!

I could not find how to set the object to "exists", so I selected Count > 0 and did this:  

Works real nice. yes

Hello Brian,

It is possible to set the filter the way you did, though just for your information you can use 'exists' by clicking on 'count' directly.

Lisa

Show all comments
DataServices
Read Data
Filtering
7.12
sales

Hi Team,

I am fetching list of records from account which are modified yesterday or certain date. But it throws Internal Server Error. 

Below is my code snippet:

 



         var selectFilters = new Filters()

         {



                    FilterType = Terrasoft.Nui.ServiceModel.DataContract.FilterType.FilterGroup,



                Items = new Dictionary

                {

                    {

                        "FilterByCreatedOn",

                        // Value.

                        new Filter

                        {



                            FilterType = Terrasoft.Nui.ServiceModel.DataContract.FilterType.CompareFilter,



                            ComparisonType = FilterComparisonType.GreaterOrEqual,



                            LeftExpression = new BaseExpression ()

                            {

                                // Expression type - SchemaColumn.

                                ExpressionType = EntitySchemaQueryExpressionType.SchemaColumn,

                                // Path to the column relative to the root schema.

                                ColumnPath = "ModifiedOn",

                            },

                            // Filter range final expression.

                            RightExpression= new BaseExpression ()

                            {



                                ExpressionType = EntitySchemaQueryExpressionType.Parameter,



                                Parameter = new Parameter ()

                                {



                                    DataValueType = DataValueType.DateTime,

                                    Value = "5/11/2018" or new DateTime(2018,05,11)

                                }

                            }

                        }

                    }

                }

           };

 

Like 0

Like

11 comments

Hi

If you remember, bpmonline itself uses DataService for connecting to server. So the better way to apply a correct filter is to look at a browser console. Just apply an advanced filter you want in the interface and then watch Network section in the browser console.

In c# you should use a standart TimeStamp: 

const string startDate = @"""\""2000-12-31T09:41:59\"""""""""";

 

Peter Vdovukhin,

Thank you so much. It is really helpful for me. I have tried exactly like this but still getting Internal Server Error.

I do not understand, It was helpful or you still getting the error?

It is helpful that I get to know some of the things from this. But I have tried exactly like console filter and still getting error. Not able to resolve issue.

Please, post here a complete code example with validation. So I could reproduce it under my environment

 

 

 

 

 

 

Here is my complete code of my console application

 

 class ResponseStatus

    {

        public int Code { get; set; }

        public string Message { get; set; }

        public object Exception { get; set; }

        public object PasswordChangeUrl { get; set; }

        public object RedirectUrl { get; set; }

    }

    class Program

    {

        private const string baseUri = @"https://[example].bpmonline.com";

        // Query string to the Login method of the AuthService.svc service.

        private const string authServiceUri = baseUri + @"/ServiceModel/AuthService.svc/Login";

        // SelectQuery path string.

        private const string selectQueryUri = baseUri + @"/0/DataService/json/SyncReply/SelectQuery";

        // Bpm'online authentication cookie.

        private static CookieContainer AuthCookie = new CookieContainer();

        private static bool TryLogin(string userName, string userPassword)

        {

            // Creating an instance of the authentication service request.

            var authRequest = HttpWebRequest.Create(authServiceUri) as HttpWebRequest;

            // Defining the request's method.

            authRequest.Method = "POST";

            // Defining the request's content type.

            authRequest.ContentType = "application/json";

            // Enabling the use of cookie in the request.

            authRequest.CookieContainer = AuthCookie;

            // Placing user credentials to the request.

            using (var requestStream = authRequest.GetRequestStream())

            {

                using (var writer = new StreamWriter(requestStream))

                {

                    writer.Write(@"{

                ""UserName"":""" + userName + @""",

                ""UserPassword"":""" + userPassword + @"""

                }");

                }

            }

            // Auxiliary object where the HTTP reply data will be de-serialized.

            ResponseStatus status = null;

            // Getting a reply from the server. If the authentication is successful, cookie will be placed to the AuthCookie property.

            // These cookies can be used for subsequent requests.

            using (var response = (HttpWebResponse)authRequest.GetResponse())

            {

                using (var reader = new StreamReader(response.GetResponseStream()))

                {

                    // De-serialization of the HTTP reply to an auxiliary object.

                    string responseText = reader.ReadToEnd();

                    status = new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize<ResponseStatus>(responseText);

                }

            }

            // Checking authentication status.

            if (status != null)

            {

                // Authentication is successful.

                if (status.Code == 0)

                {

                    return true;

                }

                // Authentication is unsuccessful.

                Console.WriteLine(status.Message);

            }

            return false;

        }

        static void AddAuthCookie(HttpWebRequest request)

        {

            request.CookieContainer = AuthCookie;

            // Adding a CSRF token to the request title.

            CookieCollection cookieCollection = AuthCookie.GetCookies(new Uri(authServiceUri));

            string csrfToken = cookieCollection["BPMCSRF"].Value;

            ((HttpWebRequest)request).Headers.Add("BPMCSRF", csrfToken);

        }

        static void Main(string[] args)

        {

            if (!TryLogin("Supervisor", "Supervisor1"))

            {

                return;

            }

            try

            {

                var selectQuery = new SelectQuery()

                {

                    RootSchemaName = "Account",

                    Columns = new SelectQueryColumns()

                };

                var columnExpressionName = new ColumnExpression()

                {

                    ExpressionType = EntitySchemaQueryExpressionType.SchemaColumn,

                    ColumnPath = "Name"

                };

                var selectQueryColumnName = new SelectQueryColumn()

                {

                    Caption = "Company Name",

                    OrderDirection = OrderDirection.Ascending,

                    // Sorting order position.

                    OrderPosition = 0,

                    // Expression that specifies column type.

                    Expression = columnExpressionName

                };

                var columnExpressionContactName = new ColumnExpression()

                {

                    // Expression type — subquery.

                    ExpressionType = EntitySchemaQueryExpressionType.SchemaColumn,

                    // Path to column in relation to root schema.

                    ColumnPath = "PrimaryContact",

                };

                var selectQueryColumnContactName = new SelectQueryColumn()

                {

                    //Title.

                    Caption = "Full Name",

                    // Expression, which specifies column type.

                    Expression = columnExpressionContactName

                };

                var columnExpressionJobTitle = new ColumnExpression()

                {

                    // Expression type — subquery.

                    ExpressionType = EntitySchemaQueryExpressionType.SchemaColumn,

                    // Path to column in relation to root schema.

                    ColumnPath = "JobTitle"

                };

                var selectQueryColumnJobTitle = new SelectQueryColumn()

                {

                    //Title.

                    Caption = "Job Title",

                    // Sorting direction — ascending.

                    OrderDirection = OrderDirection.Ascending,

                    // Sorting order position.

                    OrderPosition = 1,

                    // Expression, which specifies column type.

                    Expression = columnExpressionJobTitle

                };

                var columnExpressionREPCode = new ColumnExpression()

                {

                    // Expression type — subquery.

                    ExpressionType = EntitySchemaQueryExpressionType.SchemaColumn,

                    // Path to column in relation to root schema.

                    ColumnPath = "UsrREPCode"

                };

                var selectQueryColumnREPCode = new SelectQueryColumn()

                {

                    //Title.

                    Caption = "REP Code",

                    // Sorting direction — ascending.

                    OrderDirection = OrderDirection.Ascending,

                    // Sorting order position.

                    OrderPosition = 2,

                    // Expression, which specifies column type.

                    Expression = columnExpressionREPCode

                };

                var columnExpressionDAC = new ColumnExpression()

                {

                    // Expression type — subquery.

                    ExpressionType = EntitySchemaQueryExpressionType.SchemaColumn,

                    // Path to column in relation to root schema.

                    ColumnPath = "UsrDAC"

                };

                var selectQueryColumnDAC = new SelectQueryColumn()

                {

                    //Title.

                    Caption = "DAC",

                    // Expression, which specifies column type.

                    Expression = columnExpressionDAC

                };

                var columnExpressionOwner = new ColumnExpression()

                {

                    // Expression type — subquery.

                    ExpressionType = EntitySchemaQueryExpressionType.SchemaColumn,

                    // Path to column in relation to root schema.

                    ColumnPath = "Owner"

                };

                var selectQueryColumnOwner = new SelectQueryColumn()

                {

                    //Title.

                    Caption = "Owner",

                    // Sorting direction — ascending.

                    OrderDirection = OrderDirection.Ascending,

                    // Sorting order position.

                    OrderPosition = 4,

                    // Expression, which specifies column type.

                    Expression = columnExpressionOwner

                };

                var columnExpressionPhoneNumber = new ColumnExpression()

                {

                    // Expression type — SchemaColumn.

                    ExpressionType = EntitySchemaQueryExpressionType.SchemaColumn,

                    // Path to column in relation to root schema.

                    ColumnPath = "Phone"

                };

                var selectQueryColumnPhoneNumber = new SelectQueryColumn()

                {

                    //Title.

                    Caption = "Contact Number",

                    // Expression, which specifies column type.

                    Expression = columnExpressionPhoneNumber

                };

                var columnExpressionEmail = new ColumnExpression()

                {

                    // Expression type — subquery.

                    ExpressionType = EntitySchemaQueryExpressionType.SubQuery,

                    // Path to column in relation to root schema.

                    ColumnPath = "[Account:Contact].Email"

                };

                var selectQueryColumnEmail = new SelectQueryColumn()

                {

                    //Title.

                    Caption = "Email",

                    // Sorting direction — ascending.

                    OrderDirection = OrderDirection.Ascending,

                    // Sorting order position.

                    OrderPosition = 1,

                    // Expression, which specifies column type.

                    Expression = columnExpressionEmail

                };

                var columnExpressionCity = new ColumnExpression()

                {

                    // Expression type — subquery.

                    ExpressionType = EntitySchemaQueryExpressionType.SchemaColumn,

                    // Path to column in relation to root schema.

                    ColumnPath = "City"

                };

                var selectQueryColumnCity = new SelectQueryColumn()

                {

                    //Title.

                    Caption = "City",

                    // Expression, which specifies column type.

                    Expression = columnExpressionCity

                };

                var columnExpressionState = new ColumnExpression()

                {

                    // Expression type — subquery.

                    ExpressionType = EntitySchemaQueryExpressionType.SchemaColumn,

                    // Path to column in relation to root schema.

                    ColumnPath = "Region"

                };

                var selectQueryColumnState = new SelectQueryColumn()

                {

                    //Title.

                    Caption = "State",

                    // Expression, which specifies column type.

                    Expression = columnExpressionState

                };

                var columnExpressionCountry = new ColumnExpression()

                {

                    // Expression type — subquery.

                    ExpressionType = EntitySchemaQueryExpressionType.SchemaColumn,

                    // Path to column in relation to root schema.

                    ColumnPath = "Country"

                };

                var selectQueryColumnCountry = new SelectQueryColumn()

                {

                    //Title.

                    Caption = "Country",

                    // Expression, which specifies column type.

                    Expression = columnExpressionCountry

                };



                // Adding columns to query.

                selectQuery.Columns.Items = new Dictionary<string, SelectQueryColumn>()

                {

                    {

                        "Company Name",

                        selectQueryColumnName

                    },

                    {

                        "Full Name",

                        selectQueryColumnContactName

                    },

                    {

                        "Job Title",

                        selectQueryColumnJobTitle

                    },

                    {

                        "REP Code",

                        selectQueryColumnREPCode

                    },

                    {

                        "DAC",

                        selectQueryColumnDAC

                    },

                    {

                        "Owner",

                        selectQueryColumnOwner

                    },

                    {

                        "Contact Number",

                        selectQueryColumnPhoneNumber

                    },

                    //{

                    //    "Email",

                    //    selectQueryColumnEmail

                    //},

                    {

                        "City",

                        selectQueryColumnCity

                    },

                    {

                        "State",

                        selectQueryColumnState

                    },

                    {

                        "Country",

                        selectQueryColumnCountry

                    }

                };

                // Query filters.

                var selectFilters = new Filters()

                {

                    FilterType = Terrasoft.Nui.ServiceModel.DataContract.FilterType.FilterGroup,

                    IsEnabled = true,

                    RootSchemaName = "Account",

                    Items = new Dictionary<string, Filter>

                    {

                        {

                            "FilterByCreatedOn",

                            new Filter

                            {

                                FilterType = Terrasoft.Nui.ServiceModel.DataContract.FilterType.CompareFilter,

                                ComparisonType = FilterComparisonType.Greater,

                                IsEnabled = true,

                                LeftExpression = new BaseExpression ()

                                {

                                    ExpressionType = EntitySchemaQueryExpressionType.SchemaColumn,

                                    ColumnPath = "ModifiedOn",

                                },

                                RightExpression= new BaseExpression ()

                                {

                                    ExpressionType = EntitySchemaQueryExpressionType.Parameter,

                                    Parameter = new Parameter ()

                                    {

                                        DataValueType = DataValueType.DateTime,

                                        Value= "2018-05-11T11:17:04.000"

                                    }

                                },

                                TrimDateTimeParameterToDate = true,

                            }

                        },

                        {

                            "FilterByName",

                            new Filter

                            {

                                FilterType = Terrasoft.Nui.ServiceModel.DataContract.FilterType.CompareFilter,

                                ComparisonType = FilterComparisonType.Contain,

                                IsEnabled = true,

                                LeftExpression = new BaseExpression ()

                                {

                                    ExpressionType = EntitySchemaQueryExpressionType.SchemaColumn,

                                    ColumnPath = "Name",

                                },

                                RightExpression= new BaseExpression ()

                                {

                                    ExpressionType = EntitySchemaQueryExpressionType.Parameter,

                                    Parameter = new Parameter ()

                                    {

                                        DataValueType = DataValueType.Text,

                                        Value= "Test"

                                    }

                                },

                                TrimDateTimeParameterToDate = true,

                            }

                        }

                    }

                };

                selectQuery.Filters = selectFilters;

                // Serialization of an instance of query class to add to JSON string.

                var json = new JavaScriptSerializer().Serialize(selectQuery);

                byte[] jsonArray = Encoding.UTF8.GetBytes(json);

                var selectRequest = HttpWebRequest.Create(selectQueryUri) as HttpWebRequest;

                selectRequest.Method = "POST";

                selectRequest.ContentType = "application/json";

                // Adding earlier received authentication cookies to a data fetch query.

                selectRequest.CookieContainer = AuthCookie;

                selectRequest.ContentLength = jsonArray.Length;

                AddAuthCookie(selectRequest);

                using (var requestStream = selectRequest.GetRequestStream())

                {

                    requestStream.Write(jsonArray, 0, jsonArray.Length);

                }

                using (var response = (HttpWebResponse)selectRequest.GetResponse())

                {

                    using (StreamReader reader = new StreamReader(response.GetResponseStream()))

                    {

                        var result = reader.ReadToEnd();

                    }

                }

            }

            catch (Exception ex)

            {

                Console.WriteLine(ex.Message);                

            }

        }

    }

Pay attention to this code: private const string baseUri = @"https://[example].bpmonline.com";

it should be the address of your application

yes i know... I have just write down example in this code only... for comment

 

You can put there 'example' instead of 'example'. It will give you exact scenario. Thanks

You passed a wrong date format. Again, if look at browser console when applying a date filter you will see the next format: ""2018-06-05T23:59:59.999"". So you should escape one more quote mark to rich the goal in c#: Value = "\""+DateTime.Now+ "\""

Okay thanks.

Show all comments
sales_enterprise
Filtering
detail
section detail
linking to section
7.11
sales

Hello Community! 

I have a client who would like to see other accounts that are in the same country/city as the current account. 

 

Example: 

Account A is located in Boston, MA, USA 

 

and so are Account G, Account J, and Account Y. 

 

How would we fill out a detail filtered by "current Account Country/City" on the Accounts section/object, so that Account A will have a reference to Account G, and Account J and Account Y because they are all located in Boston, MA, USA?

 

On the opposite side:

Account G would have a reference to Account A, Account J, and Account Y. 

Account J would have a reference to Account A, Account G, and Account Y. 

Account Y would have a reference to Account A, Account J, and Account G. 

Like 2

Like

1 comments

Dear Philip,

Unfortunately, there is no option to create such detail using the standard instruments. 

As an option, you can create a view in the database, add the correspondent view in the system and then create the detail based on it. Please note that you will also need to use the development to filter the accounts (for instance exclude the current account from the list). 

There is an example of the similar implementation in our system. Feel free to check LeadsSimilarSearchResultDetailV2Structure of the Similar leads detail in the Leads section.

Lisa

 

Show all comments
Filtering

I’ve just started to develop for BPM online and I have a situation.
 
I have two entities: Account and ResidentialComplex. ResidentialComplex has an Account associated, so an Account can have multiple ResidentialComplexes. To show residential complexes I added a detail section to the Account. 

My task is to allow the user to filter accounts (SectionModuleV2/AccountSectionV2) based on ResidentialComplex.Name. Any ideas will be highly appreaciated.

Thanks in advance,
Daniel

File attachments

Like

3 comments

Dear Daniel,

To filter the accounts based on the detail value you need to build the filter like this (the example uses the info from Addresses detail):

To achieve it you need to choose to add condition, then click on plus to open the second level of the dependencies and choose Quantity there:

Then in the filter settings you need to click on 'Count' and make sure it's changed to 'Exist' as shown on the first screenshot.

Lisa

 

Hi Lisa,

Thank you for the response. It's working but i have some questions.

1. I cannot see the Name column in the Column dropdown (on the first filter level). I can select only numeric or datetime type columns. 

I can select Name column on the second level.

Is there a way to see Name column on the first level?

2. How can I programmatically add filtering based on ResidentialComplex.Name on the standard filter? 

 

Thanks,

Daniel

Dear Daniel,

There is no way to choose the name column of the object at the first level as these are two different tables in the databases. At the first level you are able to choose the columns of the object you are applying filter to. The more detailed info of how to apply a filter by connected column object is described here: https://academy.bpmonline.com/documents/studio/7-10/advanced-filter#XREF_29886

Regarding the standard filter option, the implementation of it is not easy. We can give you a hint of some schemas where you may possible insert your code to add such option to the standard filter but you will need to investigate these schemas by yourself.

As a workaround we suggest to use Dynamic folders: https://academy.bpmonline.com/documents/marketing/7-10/how-create-dynamic-folder

Once you create it and apply the filter, you can easily reach these filtered records from the section page. Moreover, you can modify the filter or add more filtering conditions to the folder.

Best regrads,

Lily

Show all comments

Hi,

I have question - what is the purpose of the 'Action' called 'group' available when working with the extended filter?

File attachments
Like 5

Like

1 comments

Hi Harry,

This function allows you to group the conditions that should be used with one logical operator (And, or). This way you can set 2 conditions combined by 'And' operator together with 1 more 'Or' operator. There can be as many groups as necessary. Here is an example:

1.Add all necessary conditions in the Filter:

2. Using ‘ctrl’ button on your keyboard select 2 or more conditions that should be combined into a group with the same logical operator (And, Or):

3. Select ‘Actions’ – Group – select necessary logical operator:

Show all comments