Hi guys,

 

Is there a way to sort a detail by a specific field in Freedom Mobile? I'm using this approach that works in Classic, but it does not seem to work when I switch to the Freedom version:

 

Terrasoft.sdk.GridPage.setOrderByColumns("Account", {
    column: "CreatedOn",
    orderType: Terrasoft.OrderTypes.DESC
});

 

Thanks!

Like 0

Like

1 comments

Hello,

 

This approach won't work in Freedom UI, this one is for classic UI. Here is the example of the code for ActivityDetailV2EmbeddedDetail out-of-the-box

"ActivityDetailV2EmbeddedDetail": {
                "properties": {"readonly": true},
                "modelConfig": {
                    "path": "ActivityDetailV2EmbeddedDetailDS",
                    "cacheConfig": {},
                    "sortingConfig": {
                        "default": [{
                            "columnName": "CreatedOn",
                            "direction": "asc"
                        }],
                        "name": "Attribute_ActivityDetailV2EmbeddedDetail_SortingConfig"
                    },
                    "name": "Attribute_ActivityDetailV2EmbeddedDetail_ModelConfig"
                },
                "name": "Attribute_ActivityDetailV2EmbeddedDetail"
            },

added to the MobileCaseRecordPageSettings (edit page of the case section in mobile). The code for your detail should be found in the same schema and modified.

Show all comments

Hi everyone,

 

is it possible to sort the list by two values? For example I want to sort my list first by the Account and the by the Opportunity Name, because I have multiple opportunities for one Account, and I would like to see which are these. 

 

Thanks, Timea

Like 3

Like

3 comments

Hello,

 

Unfortunately, such a feature is not available.



However, you can set a filter to display records only for a specific Account and then set a filter for opportunities.

 

We have also registered your request with our development team to explore the mechanisms of implementing such a feature.

 

Thank you for reaching out!

Hello, we create a field that is calculated as Account name + Opportunity name. So, if user filters by it, they get needed sorting (hardcoded one). Besides, this field can be set as primary displayed field



Kind regards,

Vladimir

Pavlo Sokil,

Hello Pavlo,

 

You know if and when this feature will be available in Freedom UI? It's a very important and critical feature in the project we are working on and the proposed workarounds (create a filter and/or create a concatenate field) don't match our needs.

 

Best Regards

 

Stefano

Show all comments

How to sort the New button with multiple cases in section page.Like section page having multiple case pages, need to sort them based on the name field.

 

 

File attachments
Like 0

Like

1 comments

Hello,

 

It's possible, the logic of the "converter" function of the "bindConfig" object of the "SeparateModeAddRecordButton" element of the BaseDataView should be modified:

 

The list of pages is returned in an "items" array of the editPages collection:

 

For example in my CaseSection section elements will be loaded in the following manner:



1) "Incident"

2) "Service request"

3) "Test cat 2"

4) "Test cat 1"



Because this is the set that is returned:

 

 

And indeed when the method ends its execution we can see that the list is loaded in the manner specified in the debugger:

You can override the method execution. In my example I've added this code to the CaseSection (in your case it should be AccountSectionV2) to the diff array of the schema and added additional logic to the method of logging the "Hello" word in the console when the method is executed:



{

                "operation": "merge",

                "name": "SeparateModeAddRecordButton",

                "propertyName": "items",

                "values": {

                    "itemType": Terrasoft.ViewItemType.BUTTON,

                    "style": Terrasoft.controls.ButtonEnums.style.GREEN,

                    "caption": {"bindTo": "AddRecordButtonCaption"},

                    "click": {"bindTo": "addRecord"},

                    "visible": {"bindTo": "IsAddRecordButtonVisible"},

                    "classes": {

                        "textClass": ["actions-button-margin-right"],

                        "wrapperClass": ["actions-button-margin-right"]

                    },

                    "controlConfig": {

                        "menu": {

                            "items": {

                                "bindTo": "EditPages",

                                "bindConfig": {

                                    "converter": function(editPages) {

                                        if (editPages.getCount() > 1) {

                                            this.console.log("Hello:)");

                                            return editPages;

                                        } else {

                                            return null;

                                        }

                                    }

                                }

                            }

                        }

                    }

                }

            }

and it worked perfectly:

 

 

So what is needed to be done is to sort the items array inside of the editPages.collection object. This is more JS-side task rather than development on the Creatio platform so you will need to perform this sorting on your side.



Best regards,

Bogdan

Show all comments

Hi,

I want to get a session feedback from customers using a lookup of a scale 1-10.

I created the lookup writing the numbers on a text field (because lookups require a text field only for the display field), there for it shows the lookup the wrong order:

1,10,2,3,4,5,6,7,8,9. (The 10 is between the 1 and the 2).

Any ideas of how to force it displaying the right order?

(I tried adding a value field to the lookup of type integer but can't find a way to sort it using that field.)

Thanks,

Chani

Like 0

Like

2 comments

Hello Chani,

This doesn't answer your questions directly about sorting the lookup differently, however, I did want to mention I've been using emoticons in lookups for this purpose. They look nice and they do sort as expected. https://customerfx.com/article/quick-tip-using-emoticons-in-creatio-loo…

Using star emoticons, as I do in the article above, likely would be too confusing for values 1-10, but you could use number emoticons 1️⃣ 2️⃣ 3️⃣ … 9️⃣ ? as well, which I believe  would sort correctly. Just throwing out an idea that is easy to implement.

Ryan

Ryan Farley,

Thank you!

I ended up just labeling the values like this: 01,02,03,04,05...10

Thanks for letting me know about the emoticons, I might use it in a different place. 

Show all comments

Dear Community, 

 

As per the link : https://community.creatio.com/questions/sort-detail-page-load

we implemented sorting by date time when the detail loads the first time. 

Method 1 

addGridDataColumns: function(esq) {
	this.callParent(arguments);
 
	// add sorting column
	var ModifiedOnColumn = esq.addColumn("ModifiedOn", "ModifiedOn");
	ModifiedOnColumn.orderPosition = 0;
	ModifiedOnColumn.orderDirection = Terrasoft.OrderDirection.DESC;
}

Method 2 : 

getGridDataColumns: function() {

                var gridDataColumns =  {

                    "ModifiedOn": {path: "ModifiedOn", orderPosition = 0

                    orderDirection: Terrasoft.OrderDirection.DESC}

                    }; 

                return gridDataColumns;

            }

Observations : if orderposition is mentioned, manual sort by user does not happen.

Removing order position and implementing any of the above methods, sorts the records, but once user does a manual sort, say by Name, the next time user logs in, the detail records are sorted by Name and not by the default sort condition "ModifiedOn"

 

Is there a way to enforce sort when user logs in and also allow manual sort by user?

 

Thanks in advance!

Like 0

Like

7 comments

Hello Shivani,

 

It happens since the sorting state for detail is saved in the SysProfileData table and each time a user opens a detail the correspondent sorting state is taken from the SysProfileData table.

 

You need to create a trigger in the system that could automatically remove a record about detail records sorting order in the SysProfileData table upon each login to the application.

 

To find a needed record you need to use two key points:

 

1) Use the "ContactId" column value to find records for some particular system user (references a contact of a system user)

2) Use the "Key" column and put the name of a detail

 

Here is an example of a query:

 

select * from SysProfileData where [Key] like '%Schema0bbbd1fe%' and ContactId in (select ContactId from SysAdminUnit where Name = 'input the name of a system user')

What you need to do is to drop a record found by the query, but upon each login to the system. For this purpose you can create a trigger that will be triggered upon changing the "LoggedIn" column value from the "SysAdminUnit" table.

 

Best regards,

Oscar

Oscar Dylan,

Thank you for your response, Oscar!

Oscar Dylan,

Hi Oscar. Is there a way to disable this 'Sort order memory' either at a detail level or user level or application level? What if users did not want their sort order to be remembered and pre-loaded?

M Shrikanth,

 

Hello,

 

In this case you will need to study the BaseDataView and check a particular place in the schema where UserProfile request is generated upon modifying the sorting order of a detail column and override the method where it happens so not to save the UserProfile state.

 

Best regards,

Oscar

Oscar Dylan,

 I understand Oscar. It would be laborious to identify all such details and override sending of the UserProfile request. I was looking at a master switch which will toggle whether this sort order is 'remembered' or not. I infer that such a feature is not available as of now

M Shrikanth,

 

No there is no such a toggle or a setting or a feature. This is all the logic in the BaseDataView that needs to be overridden in case it's not needed.

 

Best regards,

Oscar

Oscar Dylan,

Thanks Oscar. Appreciate your input. 

Show all comments

Hello all,

 

Is there a way that I can have the communication options sorted alphabetically for users?

Like 0

Like

3 comments

Dear Kevin,

 

Here is the example:

 

You can add the "order" attribute for every field that you need to sort to the edit page schema where the field is located.

In the following example we created the integer "UsrSorting" field in the lookup UsrTestLookup1 and copied the values from the "Name" field there. 

https://prnt.sc/kg623a

attributes: {

            "UsrTestLookup1": {

                lookupListConfig: {

                    orders: [

                        {

                            columnPath: "UsrSorting",

                            direction: Terrasoft.OrderDirection.ASC

                        }

                    ]

                }

            }

        },

The result - https://prnt.sc/kg62ci

 

You can try to implement the same logic to the 'Communication option types by communication type' lookup.

 

Regards,

Dean

 

That is great and I've seen that use before. However, I cannot find the correct name in order to reference the communication type lookup.

Dear Kevin,

 

In order to sort the communications options please do the following:

1. Create a replacing client module for the “ContactCommunicationDetail” schema.

2. Add the following code to the schema:

 

define("ContactCommunicationDetail", [], function(){

    return{

        methods: {

            initCommunicationTypes: function(callback){

                var esq = this.Ext.create("Terrasoft.EntitySchemaQuery", {

                        rootSchemaName: "CommunicationType",

                        isDistinct: true

                    });

                esq.addMacrosColumn(this.Terrasoft.QueryMacrosType.PRIMARY_COLUMN, "Id");

                var nameColumn = esq.addMacrosColumn(this.Terrasoft.QueryMacrosType.PRIMARY_DISPLAY_COLUMN, "Name");

                nameColumn.orderDirection = Terrasoft.OrderDirection.ASC;

                esq.addColumn("[ComTypebyCommunication:CommunicationType:Id].Communication", "CommunicationId");

                this.initCommunicationTypesFilters(esq);

                esq.getEntityCollection(function(response) {

                    if (response.success) {

                        var entityCollection = response.collection;

                        this.set("CommunicationTypes", entityCollection);

                    }

                    callback.call(this);

                }, this);

            }

        }    

    };    

});

 

Best regards,

Norton

Show all comments

Hi Community,

How to Sort Records in Mobile App Section List?

Like 0

Like

3 comments

Dear Fulgen,

Hope you are doing well today.

The mobile application doesn't have this option. We already had similar requests from multiple users and our R&D team has in plans to implement the sorting option in the future application versions.

Best regards,

Dean

Dean Parrett,

Thanks Dean, but programatically is there any way?

Dear Fulgen,

Yes, you can develop custom sorting function. You can try to debug the sorting feature in the web version and implement similar logic for mobile version.

Regards,

Dean

Show all comments

Hello,

I noticed that if you have expanded the detail to "Show more" records than the initial 10 listed, then you click the column name to sort the list, it contracts the list back down to 10 records. Is there any way to change this to keep the entire list visible after re-sorting the data instead of resetting the view?

Thank you. 

Like 0

Like

1 comments

Dear Reid,

Unfortunately, there are no basic tools to change this behavior. We've registered this issue in out R&D team backlog to fix it in the future application releases.

Best regards,

Dean

Show all comments

Similar to excel, is it possible to sort multiple columns in the list view of bpm? For example, we would like to be able to sort cases by registration date first, then we would like to sort by priority and within the records in the same priority, the records should still be sorted with the most recent registration dates at the top. 

Like 0

Like

2 comments

The only way to do it is to create another column with the sort order you want that is updated by scripting or process, then sort on it.

https://community.bpmonline.com/ideas/sort-sections-based-multiple-columns

Dear Mitch,

This idea has been already accepted by our R&D team and will be available in the future application versions.

Best regards,

Dean

Show all comments

Parameters of a process appear in creation order in the process or alphabetical order as a sub-process, which can become unwieldy or confusing when referencing subprocesses since there is no way to indicate which ones are required to be passed into a process to function correctly.  Is there any way to sort the Parameters manually, for example, so that inputs parameters are at the top of the list?

Like 0

Like

1 comments

Dear Janine,

Currently the logic is that parameters in the process are ordered by creation date (if we are talking about custom business processes). And indeed they cannot be sorted in another order and I will create a request to our R&D team so they could include this functionality in out of the box version of the application. Thank you for this idea!

Best regards,

Oscar

Show all comments