Dear,

On Classic UI, we had a preview of files in emails attachments. 
Is it possible to have the same preview on Freedom ?

 

Classic: 

Freedom : is there a way to see a preview of image files ?

Thank you !
Nicolas

Like 0

Like

4 comments
Best reply

Hello Nicolas,

FYI I do have a marketplace add-on started that does previews for images in Freedom UI file list galleries, inline without needing to click it to open (only image type files show the preview, any other file type will show only the icon as it does normally):

 

It still does have a little work needed, but should be in the marketplace soon. Video preview here: https://share.customerfx.com/04uDmnv7

Ryan

Hello!

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

Regards, 
Anton

Hello Nicolas,

FYI I do have a marketplace add-on started that does previews for images in Freedom UI file list galleries, inline without needing to click it to open (only image type files show the preview, any other file type will show only the icon as it does normally):

 

It still does have a little work needed, but should be in the marketplace soon. Video preview here: https://share.customerfx.com/04uDmnv7

Ryan

Hello Ryan,
So we will wait for your solution !
It is for the images that we would like to have a preview
Thank you 
 

FYI, I've submitted the add-on to the marketplace. Should be available soon.

Ryan

Show all comments

After adding records ,How can I reload a detail list in a Freedom UI page from a task script within a business process, without using the live update feature in the object?
Thank you

Like 0

Like

3 comments

Note that i'add this code in the task script in the process 


var userConnection = Get<UserConnection>("UserConnection");
string messageText = "Successful";

Terrasoft.Configuration.MsgChannelUtilities.PostMessageToAll("ReloadDetail", messageText);
return true;    

i got this error message 
"The type or namespace name 'MsgChannelUtilities' does not exist in the namespace 'Terrasoft.Configuration' (are you missing an assembly reference?"

 

 

"The type or namespace name 'MsgChannelUtilities' does not exist in the namespace 'Terrasoft.Configuration' (are you missing an assembly reference?" - this error message will occur in case the business process is created in the assembly package. The only workaround is to uncheck the "Assembly package" property in the package settings or move the process to the regular package.

 

As for the possibilities and if LiveUpdate is not an option - yes, socket nessage to the client-side and triggering the LoadDataRequest with reload enabled is the only option.

I also encountered this same error, but in my case, it was due to a dependency issue. I resolved it by adding the 'crtBase' package as a dependency in the package containing the business process.

Show all comments

Hi Community,

I want to run a function only if the SaveRecordRequest is true. I tried to run await next.handle(request), but it returns undefined even if the record is save is successfully. Here is my code and test result:

 

 

			{
				request: "crt.SaveRecordRequest",
				handler: async (request, next) => {
					const saveResult = await next.handle(request);
					if(saveResult) {
						const id = await request.$context.Id;
						const files = await request.$context.SPJFile;
						await carPooling.uploadSPJ(id, files);
						request.$context.SPJFile = null;
					}
 
					return saveResult;
				}
			},
Like 0

Like

1 comments

Hello everyone,

 

Could anyone share the link to the self-assessment cases that can help me prepare for the Creatio Analyst Certification Test?

 

I would really appreciate your help!

 

Thank you!

 

Juan Carlos

Like 0

Like

3 comments

The link to the self-assessment alternative answer questions is here, Certification & Tests | Creatio Academy.

 

There are no practical assignments that you can practice in advance.

Thank you, @Gareth Osler! 

Should I select Sales, Marketing, or Service? 

I just completed the CREATIO ADMINISTRATION AND CONFIGURATION guided training.

Should I select Sales, Marketing, or Service? 

That depends on which Creatio product you wish to develop "technical skills and expertise" in.

 

Show all comments

Can anybody help me configure Notes and Attachments element in Form Page designer?

Like 0

Like

2 comments

Hello community,

 

I'm trying to use terrasoft.axd to download an image that is loaded as a system setting.
I am using the following query string /terrasoft.axd?s=nui-binary-syssetting&r=Glbxxx
where Glbxxx is the system setting code.
I don't understand why some calls return the correct image and others return a http error 401 (access denied).

Like 0

Like

2 comments

Hello. 

The 401 Unauthorized error you are encountering is not related to access rights (Access Denied) but rather to session authentication. This happens because your session expired or was not active at the moment you made the request. As a result, the system does not recognize your authentication and returns a 401 Unauthorized response. 

This is not an issue with the terrasoft.axd endpoint itself, but rather an authentication problem. We recommend checking whether your session is still active when making the request and re-authenticating if needed.

 For more details, you can refer to the official HTTP 401 documentation: MDN - 401 Unauthorized

Best regards,
Antonii.

Hello Antonii,

In the Creatio login page the logo in the top is downloaded using the following link 
https://xxx.creatio.com/terrasoft.axd?s=nui-binary-syssetting&r=LogoImage"
when I navigate to the login page the user doesn't have an active session, so could you explain how it works?

 

Show all comments

Hello Everyone,

 

I want to implement a functionality on a web page where a Phone Number field is used to retrieve customer data. When a phone number is entered and submitted:

 

  1. If a matching customer record exists in Creatio, the page should automatically populate with the customer’s details.
  2. If no record is found, a new customer record should be created in Creatio.
  3.  

Is this functionality achievable? Any guidance would be appreciated!

Thanks in advance.

Like 0

Like

4 comments

You’d have to create the webpage using Creatio’s OData or DataService API to read/retrieve the data to accomplish this. 
 

Any idea if this can be implemented in NoCode with the new landing page builder of Creatio 8.2.2 ? 😊

Otherwise @Creatio --> a guidance on this matter would be great  (Based on phone number or email ;) ) ! 

Damien Collot,

It is not. The new landing page designer is basically just a visual designer to generate the html. There is an optional feature you can enable to publish the html, which basically uploads the html to a free landing page host (can’t remember which one at the moment)

:(

Show all comments

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

5 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) =&gt; {
			await next?.handle(request);       
			const url = 'https://open.er-api.com/v6/latest/USD';
			fetch(url).then(response =&gt; {
   				if (!response.ok) {
					return Promise.reject('Failed to load data: ' + response.statusText);
				}
 				return response.json();
			}).then(data =&gt; {
				request.$context.MyAttrubute = 'Rates: '+ JSON.stringify(data.rates);
			}).catch(error =&gt; {
				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…

THANKS -- wish there is way to invoke a business process with UI page value passed as parameters 

One question for the above method with handler the API call will be made from the client end -- wanted it to be done from server end (this way we can whitelist creatio iP range and only allow calls from those servers only)

 

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