Время создания
Filters
MultiSelectLookup
FreedomUI
Development
sorting
Studio_Creatio
8.0

Hello Community,

I'm struggling with the MultiSelect Lookup component in Freedom UI. I need to sort the available options in the dropdown by a specific Integer column (NcsOrden) instead of the default Name column.

I've already successfully implemented the Predefined Filter in the viewModelConfigDiff to filter the records, but I can't find a way to change the sort order.

What I've tried so far:

  • crt.LoadDataRequest Handler: Adding a type: "sorting" object to request.parameters. This triggers a TypeError regarding a 'type' property being undefined in the core JS.
  • viewModelConfigDiff: Adding sortingConfig to the attribute. This causes the page to crash with a TypeError in _loadStaticModel.

Has anyone successfully managed to sort a MultiSelect list by a column other than the Primary Display Column? If this is not currently supported via No-Code or standard Handlers, what would be the recommended approach?

Thanks in advance!

 

Julio Falcon

Like 0

Like

0 comments
Show all comments

I'm developing a screen to ask users to upload files then i can save these files on the local desk. how can i setup this and what is the component i should use 

i tried attachment component but failed to complete the operation 

Like 0

Like

1 comments

Hello!
In Creatio, the standard approach for allowing users to upload files is to use the Attachments (Files & Links) component on a record page. This component enables users to upload files and store them as attachments linked to a specific record in the system.

Please note the following important points:

  1. The Attachments component works only in the context of a record (entity). Files cannot be uploaded without being associated with a record.

       2. If you need to collect files before the main business object is created, you will need to implement a custom approach. A common solution is:create a temporary (technical) object/record,

use the Attachments component to upload files there,

then use a business process or server-side logic to transfer the files to the final object once it is created.

      3.If your requirement is to store files outside of Creatio (e.g., external storage), this would require a custom implementation using a business process and integration (web service call).

In your case, the implementation would most likely require a custom file provider that uploads files to a different file storage. This would be a development task rather than something that can be achieved using standard tools only.

At the same time, the business requirement is still a bit unclear. Since the system is used by many users, and the files themselves are expected to be stored on the server, the recommended approach would be to design a centralized server-side storage solution rather than rely on local desktop storage.

If by “local desktop” you mean this as part of the interface or user experience, then this could potentially be implemented as a separate custom object responsible for displaying or managing files intended for desktop access.

However, we would recommend considering a different approach: for example, adding a button on the desktop/home page that redirects users to a dedicated knowledge base article or file repository where all required files are stored. This would allow users to access the necessary files directly from the main screen after login.

This approach may be more convenient and scalable, especially if many users need access to the same initial set of files.

 

Show all comments

Hi everybody,

As many of you know, Freedom UX includes a nice “Next Steps” component, which is implemented on a page like this:

{
	"operation": "insert",
	"name": "NextSteps_5ogvjc1",
	"values": {
		"type": "crt.NextSteps",
		"masterSchemaId": "$Id",
		"cardState": "$CardState",
		"layoutConfig": {
			"colSpan": 2,
			"column": 1,
			"row": 1,
			"rowSpan": 1
		},
		"masterSchemaName": "Contact",
		"bindingColumns": []
	},
	"parentName": "GridContainer_vlwf54t",
	"propertyName": "items",
	"index": 0
}

Everything works fine until your Activity schema contains multiple columns referencing the same entity (for example, several lookups to Contact). In such cases, you may notice that activities displayed in the Next Steps component are linked incorrectly.

Example: You have the OOTB Contact column and a custom column SomeOtherContact. On the Contact form, you expect Next Steps to show only activities linked via the Contact column. However, after implementing the component, it turns out that activities are linked via SomeOtherContact instead.

As nothing in the component is customizable, here is an explanation of the problem and a possible workaround.

Why does this happen?

The Next Steps component is processed by the GetNextSteps method inside the ActivityNextStepQueryExecutor class. This method internally calls GetRelatedColumn, which is responsible for determining which Activity column should be used to filter activities for the given entity.

The issue is that GetRelatedColumn returns the first matching column from the EntityConnection table, based solely on the relation type — not on the column name, not on configuration, and not on the Position field.

The ESQ used inside GetRelatedColumn has no ORDER BY clause, even though the EntityConnection table contains a Position column that could be used for sorting. Because of this, the database returns rows in the default order, which is determined by the primary key — Id.

As a result:

  • the “first” matching connection is whichever row happens to have the lowest Id
  • if your custom column has a lower Id, it will be selected instead of the OOTB column
  • Next Steps will then filter activities using the wrong column

Workaround:   If activities in Next Steps are linked through the wrong column, you can adjust the Id of the desired connection in the EntityConnection table so that it becomes the first one returned by the query. After that, Next Steps will use the correct column.

PS. property "bindingColumns": [] is not operational yet.

PPS. [For creatio developers] Can the value of the property bindingColumns be added into this method somehow like this?     

public List<NextStepModel> GetNextSteps(string entityName, Guid entityId, List<string>bindingColumns) {...}

then it will be possible to use those columns directly or when bindingColumns is empty, current approach still can be used as a default:

if (bindingColumns != null && bindingColumns.Count > 0) {
	var filterGroup = new EntitySchemaQueryFilterCollection(esq, LogicalOperationStrict.Or);
	foreach (var columnName in bindingColumns) {
		var inGroup = new EntitySchemaQueryFilterCollection(esq, LogicalOperationStrict.And) {
		esq.CreateFilterWithParameters(FilterComparisonType.IsNotNull, columnName),
		esq.CreateFilterWithParameters(FilterComparisonType.Equal, columnName, entityId)
		};
		filterGroup.Add(inGroup);
	}
	esq.Filters.Add(filterGroup);
} else {
	var relatedColumn = GetRelatedColumn(entityName);
	esq.Filters.Add(esq.CreateFilterWithParameters(FilterComparisonType.IsNotNull, relatedColumn.Name));
	esq.Filters.Add(esq.CreateFilterWithParameters(FilterComparisonType.Equal, relatedColumn.Name, entityId));
}

It will help much, believe me. 

Like 1

Like

Share

0 comments
Show all comments

Is it possible to exclude activities of type email from the mobile list view? I have synced my mailbox in Creatio and now when I open Activities on the mobile app, I also see my emails there. Is there a way to exclude these from appearing?

Like 0

Like

2 comments

Good day,

When it comes to potential approaches to filtering Activities in mobile application, you may consider following approaches:

I.
For older versions of Creatio (before 8.3.2), the only out-of-the-box means of filtering list / grid pages on mobile without additional development is via synchronization settings in the mobile application wizard.

- Go to System designer > Mobile application wizard
- Choose a workplace > Actions > Set up synchronization
- Choose an object for which you need to set up filtration
- Set up additional filters, for example:

image.png

Keep in mind, however, that this type of filtration only works when MobileApplicationMode system setting is set to Offline.

II. Alternatively, starting from 8.3.2 version of Creatio, where Freedom UI designer for mobile application was introduced, you may use Static filters on the list page to filter out Activities of type Email:
(using Contact list page as an example. A separate Activity list page / section would have to be created and added to a mobile workplace)
filter in a mobile page Freedom designer

Nikita Kudin,

The image.png that you have attached here is not opening. Can you reshare in a way where I can see it?

Show all comments
forms
Marketing_Creatio
8.0

Hi community,

I've connected a form with Creatio via SaveWebFormObjectDataResult service, and received a error

"{\"SaveWebFormObjectDataResult\":\"{resultMessage:\\\"Webform data preprocessing error\\\",resultCode:-1}\"}" 

Does anybody know what reasons can cause that error?

Like 0

Like

0 comments
Show all comments