How can I capture the newly changed field value before saving a record in a crt.SaveRecordRequest in Creatio Freedom UI? Currently, I am getting the old value instead of the new one.

Like 0

Like

4 comments

You can just retrieve them as below, which will get their current value at the time of the save. 

const val = await request.$context.AttributeName;

Alternatively you could use a change request handler, which gives you both the new and old values as properties of the request. See https://customerfx.com/article/responding-to-an-event-when-a-field-is-changed-on-a-creatio-freedom-ui-page/

Ryan

Ryan Farley writes:

You can just retrieve them as below, which will get their current value at the time of the save. 

const val = await request.$context.AttributeName;

i ' m Querying Data Using Filter Conditions via the Model Class in the save handler request . that s whey i only get the old value..

 

How can i use the change field event request handler in the save request handler??

If you are looking into the direct way to get changed attributes values in the SaveRecordRequest - there is none documented on our side. But you can use HandleViewModelAttributeChangeRequest where request has the oldValue and value properties, save the original values of needed attributes into the separate parameters and use these parameters in your task.

Show all comments

Full requirement is 
 


Have 4 widgets and Global Area

Each Widgets calls behind the scene API with one key that is present in the global Area

Present that data in the widget

Now each widget can be consider as Page -- 

Now how easily create Page which invokes API and dispaly -- if API is returning 10 or so parameter do we need to create manually the page and have items and map items to API return value

Like 0

Like

3 comments

In order to display the result of the API call on the widget you will have to create the custom widget and implement the API call for retrieving necessary data in its source code. The key from Global area that will be used for calling the API you can send to your custom widget as a parameter. Also in custom widget configuration you will have to define "items" list that will represent the structure of the data you want to display. When the API call returns the result you will have to parse it and map to the corresponding columns in widget ViewModel.

You can find the detailed explanation and the example of custom widget implementation in the following article
https://academy.creatio.com/docs/8.x/dev/development-on-creatio-platform/8.1/platform-customization/classic-ui/dashboard-widgets/examples/add-a-dashboard-widget

Hi thanks 

Widget is more of data view (list / form) 
Page will not have any backend data connected

Currently it's not possible to display API call result in List component on the page.

 

If you want to display API call result on the page you can add the custom attributes to your page, save the parsed response there and then bind the attributes to the labels on the page to make it visible.

 

Here is the example of the attribute:

 

viewModelConfigDiff: /**SCHEMA_VIEW_MODEL_CONFIG_DIFF*/[
...
	{
		"operation": "merge",
		"path": ["attributes"],
		"values": {
			"MyAttrubute": { "value": "" }
		}
	}
]/**SCHEMA_VIEW_MODEL_CONFIG_DIFF*/

 

and how you can set its value using the response from API call:

 

handlers: /**SCHEMA_HANDLERS*/[
	{
		request: "crt.HandleViewModelResumeRequest",
		handler: async (request, next) => {
			await next?.handle(request);       
			const url = 'https://open.er-api.com/v6/latest/USD';
			fetch(url).then(response => {
   				if (!response.ok) {
					return Promise.reject('Failed to load data: ' + response.statusText);
				}
 				return response.json();
			}).then(data => {
				request.$context.MyAttrubute = 'Rates: '+ JSON.stringify(data.rates);
			}).catch(error => {
				console.error('Error:', error);
			});
		}
	}
]/**SCHEMA_HANDLERS*/

 

 

Also you can find some useful information in these articles:

https://customerfx.com/article/using-custom-attributes-on-a-creatio-freedom-ui-page/

https://customerfx.com/article/binding-data-to-labels-on-a-page-in-crea…

Show all comments

Hi,

I am setting up automatic case registration through email. I have configured my mailbox and added it to the lookup "List of mailboxes for case registration." However, when I send an email to the configured address, only an activity is created—no case record is generated.

I also logged the "Incoming email registration process" business processes script task, and I noticed that the caseId is returning as 00000000-0000-0000-0000-000000000000.

Are there any additional features, system settings, or lookups that I need to configure for this to work properly?
I have shared a screenshot showing how the Activity appears in my communication panel.
 However, it is not being registered as a Case.
Could you suggest a solution for this?

Regards,
Mahalaxmi Ganesan

Like 0

Like

1 comments

Hi team,

I have identified the issue. It was caused by the lookup 'Blacklist of email addresses and domains for case registration', where certain domains or email addresses get blacklisted under specific conditions. If you encounter a similar issue, be sure to check this lookup.

Show all comments

What is the default AI model used by a Creatio trial instance, etc.?

Like 0

Like

3 comments

I would guess Open AI ? I Think there is other option at the moment anyways, or is there ?

You could probably ask it? 😂 Actually, the Academy docs discussing data privacy about Creatio AI mention it is using Azure OpenAI services, which is just REST services to facilitate working with OpenAI. See https://academy.creatio.com/docs/8.x/no-code-customization/customization-tools/ai-tools/copilot/data-privacy

Ryan

I asked, the reply was:
 

I am an advanced language model designed to assist users within the Creatio platform. My primary task is to help with daily operations, provide contextual responses, and execute various skills to enhance productivity. How can I assist you today?

 

I asked if it was using the OpenAI engine:

 

I am powered by an advanced language model designed to assist users within the Creatio platform. My primary focus is to help with tasks and operations specific to Creatio. How can I assist you today?

 

Show all comments

Dear,

 

In my Opportunity Product Interest, i would like to set the price if the product is selected.

 

But in the business rules, i can only set a constant value for the Price.

 

any idea how to access product data ?

 

my mini page is in the custom package :

 

So how can i access to the selected product values in the mini page ?

Like 0

Like

2 comments
Best reply

Currently cannot be done with business rules on the page (they can't use data from related objects). Only way to accomplish this is to handle the change of the product lookup, retrieve the values from the selected product and then set on the page. Otherwise, you could use a process, but that won't update the values until saved. 

Ryan

Currently cannot be done with business rules on the page (they can't use data from related objects). Only way to accomplish this is to handle the change of the product lookup, retrieve the values from the selected product and then set on the page. Otherwise, you could use a process, but that won't update the values until saved. 

Ryan

i m trying to build Freedom UI pages without coding...
so i used for the moment the help you provided me here:
https://community.creatio.com/questions/depending-interface-behavior-no…

Show all comments

Hello !

We are currently migrating from Classic UI to Freedom UI.

Some Classic pages will be accessible from the Freedom interface, such as opportunities.

 

So the Opportunity Page is in classic mode even if the user shell is freedom.

 

If the user is logged in to Classic UI, adding a product opens a specific page:

When the user click on the add product button, this opens the opportunity specific product page :


but if the user is logged in under Freedom, this opens a modal:

So the behavior is not the same...

 

Here is my detail configuration:

 

why is Freedom opening a modal on the classic page ?

how can i correct this behavior ?

Thank you !!

Nicolas

Like 0

Like

2 comments
Best reply

Find the lookup named "Object-specific form page interface in the Freedom and Classic UI shell". In that lookup, add an entry for OpportunityProductInterest and for Freedom UI shell select Classic. Then log out and back in again. This will tell the system that if a user is using the Freedom UI shell, to use the classic page for Opportunity products.

Ryan

Find the lookup named "Object-specific form page interface in the Freedom and Classic UI shell". In that lookup, add an entry for OpportunityProductInterest and for Freedom UI shell select Classic. Then log out and back in again. This will tell the system that if a user is using the Freedom UI shell, to use the classic page for Opportunity products.

Ryan

Wonderful, thank you Ryan

Show all comments

I have a business process calling some subprocesses, and it should then open a new record page.  but for some reason, the page doesn't open, and the process is left in the running state. does anybody know what can prevent opening a page?

Like 0

Like

2 comments

Check the start of the process (select the green start where the process begins) and make sure it does not have the "run in background" option checked. 

I've checked that, and it's not checked. I did some further analysis, and the record is created and i can open it, it only doesn't want to open during the process flow. Furthermore, if I run the process under my colleague's credentials, the record does open. So, one would think it's a permission problem, although we both have the same permissions, we both have the system administrator role, and i can open the record 'manually'...

Show all comments

i amtrying to turn an image that i uploaded to be able to be seen what that image is

this is the image currently,

the image should be like this

does anyone know how to  make it so that the image can be previewed?

Like 2

Like

1 comments

Hi Michael!

Unfortunately, currently this is not possible with the out-of-the-box solution. 
If you want to display a certain image for the record, for example company logo for the account record, you can use an Image component.


You can also consider using the following marketplace solution: https://marketplace.creatio.com/app/banza-files-extended-creatio?check_logged_in=1

I hope this helps! If you have any further questions or need assistance, feel free to reach out.

Show all comments

Hi Creatio Community,

 

I am looking to consume my own or an external API that returns a JSON response and embed an IFRAME inside a Creatio Freedom UI page to display the relevant data.

 

My Goal:

Call an API that responds with JSON data.

Display the API response inside an IFRAME in Freedom UI.

Ensure the IFRAME updates dynamically based on API data.

  •  

My Questions:

  1. What is the best way to embed an IFRAME inside a Freedom UI page?
  2. How can I dynamically set the IFRAME's src based on API response data?
  3. Are there any security or CORS restrictions I should be aware of when using an external API?

     

If anyone has experience implementing this in Freedom UI or has sample configurations, I'd love to hear your insights!

 

Thanks in advance!

Like 0

Like

1 comments
Best reply

You can see an example of embedding an IFRAME and setting the src of the IFRAME dynamically here: https://customerfx.com/article/embedding-an-iframe-on-a-creatio-freedom-ui-page/

However, an IFRAME cant just display data from an API. An IFRAME simply embeds another page, it would be the responsibility of the page you're embedding to retrieve and display the API data. 

You could however, use a similar approach to the article for creating an IFRAME and just have that component retrieve the API data and render out HTML as needed. Alternatively, you could create a full Angular component that retrieves and displays the API data, which is likely a better route anyway. See https://academy.creatio.com/docs/8.x/dev/development-on-creatio-platform/front-end-development/freedom-ui/remote-module/implement-a-remote-module/overview 

As for CORS restrictions, that would be something imposed (or not) by the API, not Creatio.

Ryan

You can see an example of embedding an IFRAME and setting the src of the IFRAME dynamically here: https://customerfx.com/article/embedding-an-iframe-on-a-creatio-freedom-ui-page/

However, an IFRAME cant just display data from an API. An IFRAME simply embeds another page, it would be the responsibility of the page you're embedding to retrieve and display the API data. 

You could however, use a similar approach to the article for creating an IFRAME and just have that component retrieve the API data and render out HTML as needed. Alternatively, you could create a full Angular component that retrieves and displays the API data, which is likely a better route anyway. See https://academy.creatio.com/docs/8.x/dev/development-on-creatio-platform/front-end-development/freedom-ui/remote-module/implement-a-remote-module/overview 

As for CORS restrictions, that would be something imposed (or not) by the API, not Creatio.

Ryan

Show all comments

I'm installing Creatio 8.2.2 Studio MSSQL, but after everything is done, I get an error when logging in

 

Error: System.Exception: Library e_sqlite3 not found

 

https://prnt.sc/ds1ZddIu8vdx

Like 0

Like

2 comments

According to the post below, it could be that you need to possibly modify the permissions of the folders under Terrasoft.WebApp. See https://community.creatio.com/questions/error-logging-local-deployment-creatio

Ryan

Ryan Farley,

Still getting the same error, i think that is different case maybe

System.Exception: Library e_sqlite3 not found\r\nplat: win\r\nsuffix: DLL\r\npossibilities (3):\r\n

Show all comments