I need to implement a bulk action in the Case section where users can:
Select multiple case records from the list page.
Click a custom button to trigger a bulk update action.
After clicking the button, a dialog/page should open allowing entry of an invoice number and upload of an invoice file.
On saving the dialog, the invoice number and the uploaded file should be associated with all the selected cases.
Has anyone implemented this kind of bulk update scenario, especially one involving a modal dialog and document upload? Are there example articles, source code samples, or best-practice guidelines for handling both data and file updates for multiple records in Creatio? Any insights or pointers to relevant documentation would be greatly appreciated!
When I move to another section from a record FormPage, `crt.HandleViewModelDestroyRequest` doesn't trigger. And as a result, websocket subscription steel remains and works. So is there any real replacement for `destroy()` method from classic ui?
Btw, `crt.HandleViewModelPauseRequest` is not an option, cause it fires if a page of lookup field was opened, when I need to handle message in this case too.
Hi Dmitry, please have look at this academy article. In Freedom UI there isn’t a “true” page destroy() like in Classic. Since 8.0.6 Creatio keeps the ViewModel alive (module caching), so crt.HandleViewModelDestroyRequest often won’t fire when you leave a record page; the platform recommends treating crt.HandleViewModelPauseRequest as the replacement and pairing it with crt.HandleViewModelResumeRequest.
We are trying to capture clicks that happen on the phone number record on the contact form page. As phone number is clickable and it takes to the phone application, we want to store the information in a custom object about user that clicks on the phone number and also timestamp of the click, record page identifier i.e. contact record on which the phone number is present. What would be the best way to accomplish this?
Unfortunately, you cannot capture phone link click events from the UI using low-code/no-code tools, as this is handled at core level by the CTI provider. However, you can modify your CTI provider's makeCall function at your own risk to track information such as callerId, calledId, etc.
I'm new in Freedom UI. Question: how to create page for section using Freedom UI for existing object (old style Section schema also exists)? Version is 8.1. Important: I cannot use Application Hub. Thank you!
Why can't you use App Hub? That's the right way to do it.
Alternatively, you could use a trial, create a section in app hub based on an existing object and see what gets put in your package to duplicate manually. Essentially, you'll manually create the list and edit pages, then register it all with an entry in the SysModule and SysModuleEntity tables, however, that's all quick and easy using the App Hub.
As far as we know, in Freedom UI the option to move or create a section page for an existing object is available only through the Application Hub.
It might technically be possible to achieve this by using custom code or scripts, but we strongly do not recommend doing so. Such changes can lead to unexpected issues because of multiple dependencies between section schemas, UI components, and system logic.
For stable work and full support, we suggest using the Application Hub when working with Freedom UI sections.
I want to use a business process to add a ui element in the form page, for example adding a text field, it will be from the object itself but we need to have users able to add it by themselves and it gets saved in the page design -no issues with placement-
Can this be done? and also how will the new item show, can I control the label/title on page using this process? from user input for example.
I have an angular component that I load to my creatio instance via clio, andI place it in a Freedom UI List page. I want to handle some business logic in that component dependent on the current logged in user. How can I get that with JS and Angular?
Since you are working with Freedom UI, the recommended approach is to use crt handlers rather than the old Terrasoft.SysValue. The current logged-in user is available via the $context object in your request handler.
Here’s an example of how you can access the current user in your Angular component logic:
handlers:[{
request:"crt.HandleViewModelInitRequest",
handler: async (request, next)=>{
await next?.handle(request);// Access the current user information from the contextconst currentUser = request.$context?.CurrentUser;if(currentUser){
request.$context.UserName= currentUser.displayName;}}}];
You can then use UserName inside your component template or for any business logic you need.
This way, your component will always get the correct logged-in user directly in Freedom UI.
I want to have the ability to add more columns with their data-types in my objects, but do this from the front end ui not the app configuration, is it feasable? or is there any limitations to this inquery, It's similar to Asana or Monday.com's feature of being able to add columns on the spot and not needing admin to create it in the object structure itself
Hi! Currently, in Creatio, adding columns to objects and defining their data types must be performed through either the Object Designer in the Application Hub or the Configuration section. There is no feature within Creatio's front-end UI that would allow end users to dynamically create new object columns on the spot like the functionality you described in Asana or Monday.com.
However, a workaround could involve implementing business processes or custom development that lets users store additional data in dynamically generated fields connected to your objects. This would, however, require developer assistance and predefined design.
Thanks for your help, but to clear things out here, for the workaround to be implemented, how are these dynamically generated fields stored? like will they be added to the object as if I'm doing it from Application hub or Configruation, or what?
At the page level, you can create fields that are not part of the underlying object but can still hold values and be used in the application. These are called page parameters, and they can be added directly from the designer.
Creating dynamically generated fields is generally not a good idea, because as soon as you add such a field, the system will attempt to recompile with a database structure update. If that does not happen, you will get an error that the column does not exist in the object.
In other words, while it may be technically possible, it is not practical or supported. The recommended approach is to use page parameters instead.
In order to disable the Display data/Drill down option, it is necessary to disable the features ChartDrilldown, ChartDrilldownByChartSeriesMenu, and ChartLegendClickMenu
Please note that this setting will apply to all charts in the system.
In order to disable the Display data/Drill down option, it is necessary to disable the features ChartDrilldown, ChartDrilldownByChartSeriesMenu, and ChartLegendClickMenu
Please note that this setting will apply to all charts in the system.