Hello,



Can anyone tell me How to merge duplicate contact records in freedom UI.

I tried using the classic UI but  can't find any duplicate rule or show duplicates in the action button



Thanks in advance.

Like 1

Like

3 comments

Hello,



To find duplicates in Freedom UI, you need to go to System Designer, then select Setup duplicates rules.



There you will be able to perform all the actions you need.

Malika,

Hi ,

Setup duplicates rules is not sowing under System setup. Is it due to the latest version??



Abhishek,

Is this a cloud or local system?

If it's local, you probably need to set up the deduplication components first to have it available.

Show all comments

Hi Everyone,



Is there any way to restrict number of file to be attached in the attachment detail tab in Freedom UI??



Thanks in Advance

Like 0

Like

1 comments

Hello Abhishek,

 

There is no such option for now.



However, we've registered it in our R&D team backlog for consideration and implementation in future application releases.

 

Thank you for helping us to improve our product. 

Show all comments

Dear community,

 

Has anyone been able to use the Excel Reports app in V8?

We installed https://marketplace.creatio.com/app/excel-reports-builder-creatio but the option is only visible in the old UI.

 

Kind regards,

Yosef

Like 6

Like

3 comments
Best reply

Hi Yosef!

The app does not support report download in Freedom UI sections.

As a workaround, you can set up reports that have "Custom report" report type. That way you can generate a report in the Excel reports section.

+1 Also really hoping this gets updated, or even better some enterprise level reporting functionality. 

Yes, I'd rather it become an OOTB functionality in Creatio 8.1 ... an enterprise grade tools requires enterprise grade reporting

Hi Yosef!

The app does not support report download in Freedom UI sections.

As a workaround, you can set up reports that have "Custom report" report type. That way you can generate a report in the Excel reports section.

Show all comments

Hello, 

 

Do you know how to mask first 12 digits of a Credit Card in Freedom UI Creatio?

 

Example :-

Credit Card Number :- 2345-2121-1225-8909

After masking I want to see as ****-****-****-8909 in Freedom UI.

 

Thanks,

Like 1

Like

1 comments

You can try using the password input which will mask the entire text as ****. This control doens't appear in the toolbox, so to add it, you could add an input, then in the code change "type": "crt.Input" to "type": "crt.PasswordInput". You can see an example of this control in the page SysUserProfilePage (user profile page)

 

If you need it more how you described, showing the last 4 digits, you would need to implement your own custom control. You can see details for that here: https://academy.creatio.com/docs/8.x/dev/development-on-creatio-platfor…

 

Ryan

Show all comments

I have a problem filtering a lookup filed using Freedom UI.

The issue here:

The first lookup filed linked to the Contact entity

The second lookup filed's entity Account, contains a field "SMPrimaryAccountOwner" and it should be equal to the first filed value. 



Here is the filter:

 

{
				request: "crt.LoadDataRequest",
				handler: async (request, next) => {
					// filter the contact lookup for the account
					debugger;
					if(request.dataSourceName !== "LookupAttribute_emk4fel_List_DS") {
						return await next?.handle(request);
					}
 
 
					const account = await request.$context.LookupAttribute_r6avpkd;
					if (account) {
						const filter = new sdk.FilterGroup();
						await filter.addSchemaColumnFilterWithParameter(sdk.ComparisonType.Equal, "SMPrimaryAccountOwner.Id", account.value);
 
						// note, these lines are only needed due to an issue with filters in Creatio-DevKit SDK
						// expected to be fixed in Creatio 8.1
						//const newFilter = Object.assign({}, filter);
						//newFilter.items = filter.items;
 
						request.parameters.push({
							type: sdk.ModelParameterType.Filter,
							value: filter
						});
					}
 
					return await next?.handle(request);
 
				}
			}



And here is the error on the console:



 

Maybe anyone here had the same issue.

Like 0

Like

2 comments
Best reply

Try changing to just the field "SMPrimaryAccountOwner" and not the ".Id" part at the end.

await filter.addSchemaColumnFilterWithParameter(sdk.ComparisonType.Equal, "SMPrimaryAccountOwner", account.value);

Also, even if you're on 8.1 the commented lines are necessary - the issue that works around was *not* fixed in 8.1.

Ryan

Try changing to just the field "SMPrimaryAccountOwner" and not the ".Id" part at the end.

await filter.addSchemaColumnFilterWithParameter(sdk.ComparisonType.Equal, "SMPrimaryAccountOwner", account.value);

Also, even if you're on 8.1 the commented lines are necessary - the issue that works around was *not* fixed in 8.1.

Ryan

Try adding the filter for "SMPrimaryAccountOwner" and not "SMPrimaryAccountOwner.Id", as in: 

await filter.addSchemaColumnFilterWithParameter(sdk.ComparisonType.Equal, "SMPrimaryAccountOwner", account.value);

Also, the workaround that is commented out is still needed in 8.1. It was not fixed in 8.1.

Ryan

Show all comments

Hi everyone,

 

How can we override the onClick functionality of the attachment link? Or is there any way to disable the link?



Thanks & regards,

Ramya

Like 0

Like

3 comments

Hello Ramya,

 

We thought on overriding the logic of the crt.DownloadEntityFileRequest request, but the handler doesn't trigger upon clicking the file. I will ask our R&D team to make it possible to control the download of files out-of-the-box and do it in the nearest releases.

 

Thank you!

Oleg Drobina,

 

Thank you for the swift response. Since overriding is not possible as of now, is there any way to disable the link? Something similar to the Classic UI diff value "showValueAsLink" : false?



Regards,

Ramya

Oleg Drobina,

 

Can you also elaborate what handler is getting called if it is not "crt.DownloadEntityFileRequest" ?

Show all comments

Is there any way  to change the color of all tabs on all the  record pages across the system by using low code

Like 0

Like

3 comments

Hello,

 

There is no such functionality for now. 

But we've registered it in our R&D team backlog for consideration and implementation in future application releases. 

 

hank you for helping us to improve our product. 

 

So now if we have to use this functionality how we can achieve  this using by code?

Surbhi Garg,

 

We don't have an example of it's implementation for now.

Show all comments

Hi everyone,

 

Is there a way to obtain the ID of the selected file in attachments in a Freedom UI section? Looking for an equivalent of activeRow / this.get("SelectedRows") for Freedom UI.

 

Regards,

Ramya

Like 0

Like

3 comments
Best reply

Yes. This is something I would need as well. I've not tried this, but maybe it's possible to add to the rowToolbarItems for the attachments list and get the selected Id from the handler there?

Ryan

Yes. This is something I would need as well. I've not tried this, but maybe it's possible to add to the rowToolbarItems for the attachments list and get the selected Id from the handler there?

Ryan

Ryan Farley,

 

Thanks a lot for the response. This worked!

You can pass the attachment Id in the params as mentioned below:

"rowToolbarItems": [{
	"type": 'crt.MenuItem',
	"caption": 'Get attachment id',
	"icon": 'open-button-icon',
	"clicked": {
		"request": 'psg.MyCustomHandler',
		"params": {
			"Id": "$AttachmentList.AttachmentListDS_Id"
		}
	}
}]

Regards,

Ramya

Ramya R,

Glad to hear this list can also be extended, great news. 

Ryan

Show all comments

Hello Community, 

 

Is it possible to change the default filter column when using Search Filter? 

 

I wanted to filter a list page by text in a specific column all the time. But in Search Filter, It changes to Everything on reloading the page. 

How can we set default column for a search filter. 

 

Any suggestions are really helpful.

 

Thanks

Gargeyi.G

 

 

Like 0

Like

1 comments

Hello,

 

Your business task can be only achieved with the help of a separate development process. 

You can use 'entity schema query' filters in particular. Here is the guide on this topic

https://academy.creatio.com/docs/developer/front_end_development/data_o…

You can also use this community post with the example of such logic https://community.creatio.com/questions/default-filter-section

Show all comments

Hi Team,

 

To provide some context, I have three objects - A, B and C. Object C acts as a linking object between A and B

 

Currently, I have a page (object A) with detail (object C) on it. By clicking on "Add" button I open separate page (object C), that contains list (object B) with multiply selection. I need to filter out the records in list, that already exists in detail. After that I need to create records in object C using the selected records from list, along with the passed Id from the page (object A).

 

So, I have two questions:

1) How can I pass the Id from the page (object A) to page (object C), in order to filter out records in the list.

2) How can I filter out records (object B), that already exists in detail (object C).

 

I have successfully implemented it in Classic UI, but I'm unable to replicate it in Freedom UI due to the absence of a Sandbox

Like 1

Like

4 comments

Hello,



It could be achieved only with development tools.



Unfortunately, we don't have the exact examples of how to implement your business task, 

 

But you can try to check the article on how to filter a Lookup on a Creatio Freedom UI Page and change the code according to your needs:

https://customerfx.com/article/dynamically-filtering-a-lookup-on-a-crea…

You can also try to use Javascript's built-in Broadcast Channel API instead of the sandbox. See https://developer.mozilla.org/en-US/docs/Web/API/Broadcast_Channel_API

Ryan

Ryan Farley,

There is a way to use Broadcast Channel API  from freedom UI to Classic?

Found it: this works for me

subscribeSandboxEvents: function() {
					this.callParent(arguments);
 
					const bc = new BroadcastChannel("MyMessage");
                    bc.onmessage = async (event) => {
						debugger;
                        const MyObject = event.data;
 
                        bc.close();
                    };
				},

 

Show all comments