Время создания
Filters
multivaluefield
multiselect
FreedomUI
Studio_Creatio
8.0

I need to create a multi value field based on lookup.

The only solution I found is https://customerfx.com/tool/multi-select-text-field/
But it seems to work only with classic UI.

Is there a solution with Freedom UI ?

Like 0

Like

1 comments
Best reply

Hi Olivier,

If I understand your requirement correctly, this should be straightforward. You just need to create a object which can store the two lookup values you want to connect.

Example: To save multiple Industries for an Account, create an object called "Industries in Account" (inheriting from BaseEntity) with two lookup columns: "Account" and "Industry".

Then, set up the Multiselect Lookup component on your Account edit page via the No-Code Designer:

• Lookup: "Industry"
• Multiselect Value Storage: "Industries in Account"
• Apply filter by page data: Account.Id = IndustriesInAccount.Account

Optionally, you can add a static filter to pre-filter the available Industry values, or set the "Required" attribute to ensure at least one Industry must always selected before saving.

Let me know if you have any questions.

Best,
David

Hi Olivier,

If I understand your requirement correctly, this should be straightforward. You just need to create a object which can store the two lookup values you want to connect.

Example: To save multiple Industries for an Account, create an object called "Industries in Account" (inheriting from BaseEntity) with two lookup columns: "Account" and "Industry".

Then, set up the Multiselect Lookup component on your Account edit page via the No-Code Designer:

• Lookup: "Industry"
• Multiselect Value Storage: "Industries in Account"
• Apply filter by page data: Account.Id = IndustriesInAccount.Account

Optionally, you can add a static filter to pre-filter the available Industry values, or set the "Required" attribute to ensure at least one Industry must always selected before saving.

Let me know if you have any questions.

Best,
David

Show all comments

Lookup field not saving after package dependency changesLookup field not saving after package dependency changes

Hello Community Team,

I hope you are doing well.

I am experiencing an issue with a lookup column (BANCliente) that I set via Script Task using:

 

entity.SetColumnValue("BANClienteId", recordId);
entity.Save(false);

 

This was working correctly before, but after recent changes involving package dependencies and object structure updates, the value is no longer being saved in the database (it remains empty after save).

Could you please advise what might cause this behavior?
Is it possible that the column is no longer properly synced with the database or affected by the package changes?

Thank you in advance for your help.

 

 

Like 0

Like

0 comments
Show all comments
angular
component
custom_components
show image

I’d like to share a custom Angular component I developed for Creatio that allows rendering images directly from Base64-encoded strings.

This component is especially useful in scenarios where images are stored or transmitted as Base64 (for example, through APIs, document services, or external integrations), and need to be displayed seamlessly within the UI without additional processing.

🔹 Key features:

  • Accepts Base64 strings as input
  • Dynamically renders images in the UI
  • Lightweight and easy to integrate into existing pages
  • Helps avoid file handling or temporary storage

This approach has proven useful to simplify image handling and streamline UI integrations in different use cases.

Happy to share more details or implementation insights if anyone is working on something similar!

Like 0

Like

Share

0 comments
Show all comments

Hi,

I'm trying to generate Bearer token using the approach explained in this link in our DEV platform which runs as a Cloud instance: https://academy.creatio.com/docs/8.x/dev/development-on-creatio-platform/8.0/integrations-and-api/authentication/oauth-2-0-authorization/identity-service-overview#title-2830-2

I'm receiving "unsupported_grant_type" error. I tried both Postman client and Powershell script and got the same error message. Do you have any idea about this issue? Many thanks.

Like 0

Like

2 comments
Best reply

Hello,

According to the instructions, the token request should be sent to the Identity Service URL in the following format:

https://[Identity Service URL]/connect/token

You can find the correct Identity Service URL in the system settings using the code "OAuth20IdentityServerUrl".

Please note that this issue most commonly occurs when the request is sent to an incorrect URL. In Creatio cloud, the Identity Service URL typically corresponds to your site name with the -is suffix. It is important to ensure that:

  • the URL exactly matches the value from the system setting
  • no extra characters or incorrect digits are included
  • the request is sent specifically to the /connect/token endpoint

The request itself should be structured as follows:

curl --location 'https://myidentityservice/connect/token' \
--data-urlencode 'client_id=•••••••' \
--data-urlencode 'client_secret=•••••••' \
--data-urlencode 'grant_type=client_credentials'

I recommend double-checking the URL you are using against the system setting to ensure it is correct.

Hello,

According to the instructions, the token request should be sent to the Identity Service URL in the following format:

https://[Identity Service URL]/connect/token

You can find the correct Identity Service URL in the system settings using the code "OAuth20IdentityServerUrl".

Please note that this issue most commonly occurs when the request is sent to an incorrect URL. In Creatio cloud, the Identity Service URL typically corresponds to your site name with the -is suffix. It is important to ensure that:

  • the URL exactly matches the value from the system setting
  • no extra characters or incorrect digits are included
  • the request is sent specifically to the /connect/token endpoint

The request itself should be structured as follows:

curl --location 'https://myidentityservice/connect/token' \
--data-urlencode 'client_id=•••••••' \
--data-urlencode 'client_secret=•••••••' \
--data-urlencode 'grant_type=client_credentials'

I recommend double-checking the URL you are using against the system setting to ensure it is correct.

Thanks, it worked after getting the correct endpoint!

Show all comments

Hi everybody,

I think this might be useful for development. The task is the following: how can I dynamically change the options of a dynamic filter based on another quick filter (or another parameter)? For example, on a certain page I have a dropdown parameter "City", and a quick filter for Owner that should respect the selected city. If no city is selected, the quick filter should display all records

Here is an example:

What needs to be achieved: if a city is selected in the City dropdown, then the Owner quick filter should display only those contacts whose city matches the selected value. If no city is selected, the quick filter should show all contacts

The code:

This calls crt.LoadDataRequest for the quick filter after the "City" value had changed. 

{
	request: "crt.HandleViewModelAttributeChangeRequest",
		handler: async (request, next) => {
			if (request.attributeName === "ContactDS_City_zsoqmn6") {
				await request.$context.executeRequest({
				    type: "crt.LoadDataRequest",
				    $context: request.$context,
				    config: {
				        loadType: "reload",
				        useLastLoadParameters: true
				    },
				    dataSourceName: "OwnerQuickFilter_ComboBox_List_DS"
				});
			}
		}
	}

And this reloads quick filter dataset depending on the current conditions (in our case includes owner filtration by the owner's city):

{
	request: "crt.LoadDataRequest",
	handler: async (request, next) => {
 
		if (request.dataSourceName === "OwnerQuickFilter_ComboBox_List_DS") {
			const filter = new sdk.FilterGroup();
			const selectedCity = await request.$context.ContactDS_City_zsoqmn6;
			if (selectedCity) {
				await filter.addSchemaColumnFilterWithParameter(
			        sdk.ComparisonType.Equal, 
			        "City", 
			        selectedCity.value
			    );
			} else {
				await filter.addSchemaColumnIsNotNullFilter("Id");
			}
			const newFilter = Object.assign({}, filter);
			newFilter.items = filter.items;
			if (!request.parameters) {
				request.parameters = [];
			}
			request.parameters.push({
				type: "filter",
				value: newFilter
			});
		}
		return await next?.handle(request);
	}
}

The result:

a) Some City was selected:

b) Nothing was selected

Like 1

Like

Share

0 comments
Show all comments