Время создания
Filters

Hi Community,

 

In Creatio Freedom UI, any idea how to remove the OOTB copy option on detail grid? I wanted to retain only open and delete.

{
                "operation": "merge",
                "name": "ProductsList",
                "values": {
                    "features": {
                        "editable": {
                            "enable": true,
                            "itemsCreation": false
                        },
                        "rows": {
                            "selection": {
                                "enable": true,
                                "multiple": true
                            }
                        }
                    },
                    "columns": [
                        {
                            "id": "b2a9f446-9fe2-62dc-5ae7-6d310c8f377c",
                            "code": "ProductsListDS_Product",
                            "caption": "#ResourceString(ProductsListDS_Product)#",
                            "dataValueType": 10,
                            "width": 155.99737548828125
                        },
                        {
                            "id": "fbdc88c3-1804-4bd7-bcf4-d780f3266db7",
                            "code": "ProductsListDS_Quantity",
                            "caption": "#ResourceString(ProductsListDS_Quantity)#",
                            "dataValueType": 32,
                            "width": 122
                        },
                        {
                            "id": "92e6557b-0230-186b-843d-d49d84d1f0d3",
                            "code": "ProductsListDS_Price",
                            "caption": "#ResourceString(ProductsListDS_Price)#",
                            "dataValueType": 32,
                            "width": 114
                        },
                        {
                            "id": "7e24ec9a-fe25-b670-83e8-4b894cc28fb5",
                            "code": "ProductsListDS_Amount",
                            "caption": "#ResourceString(ProductsListDS_Amount)#",
                            "dataValueType": 32,
                            "width": 126
                        },
                        {
                            "id": "9e6cf8c7-3907-e7bb-fc7b-ab577187879c",
                            "code": "ProductsListDS_Comment",
                            "caption": "#ResourceString(ProductsListDS_Comment)#",
                            "dataValueType": 29,
                            "width": 325
                        }
                    ]
                }
            },

Like 0

Like

0 comments
Show all comments
How_to_make_editable_List_Column_Read-Only_in_Freedom_UI_?

Hi Community,

I am working in Creatio Freedom UI (8.x).

On the Case page, I have a detail grid: 

This grid is connected to a separate object (related to Case).

In the modal page of that object, I have set the Status field as Read-only, and it works correctly there.

However, when I enable inline editing in the editable list on the Case page, the Status column is still editable.

My requirement:

I want the Status column to be read-only in inline editing mode of the editable list.

What I tried:

  • Setting Read-only on the field in the modal page
  • Checking editability in object column settings

But inline editing still allows changes.

What is the recommended approach in Freedom UI?

Thank you!

Like 0

Like

0 comments
Show all comments
I_want_to_integrate_my_own_service_via_a_Marketplace_app
Studio_Creatio
8.0

Hey guys,

I want to integrate my own service via a Marketplace app — for example, add a button on the contacts page (or somewhere) to send an email or SMS to the user.

I'm having trouble creating my own Freedom UI page where I can embed a button like "Message the user". I need to somehow connect this Freedom UI page to my REST service.

Also, I want to pass a token so I know the request is coming from a specific client/user.

The docs only talk about OAuth for logging in somewhere with external services, but that's not what I need.

Can you help with this?

Basically, I need a place to store the token — something one-time setup in the app configuration, so when a user installs my app, they can enter their own tokens (API keys or whatever), and then every request from Creatio to my service includes that token so I can identify which client it comes from.

Thanks!

Like 0

Like

0 comments
Show all comments

I want to create this function where the deadline of my tasks for my sales process, I want it to follow the working days & working hours that I have set-up using calendars. 

However, when I checked initially it doesn't by default use the working days/working hours that I set up in calendars. Its instead just taking calendar days.

Does anyone know how I can create maybe a business process to these two requirements: 

  1. When creating a task deadline, the system calculates the end date factoring the holidays setup in calendars. For example the task has a SLA/deadline to be completed in 5 days and the task was created this Monday. But this Tuesday its a holiday in the calendar, so the deadline for this task is not set for Friday but instead the following Monday. 
     
  2. When tracking total task duration can this track the setup working hours in calendar? Because right now when the partner tries this, its counting the entire 24 hour day instead of the 8 working hour that has been set-up.
     

If anyone knows or has experience with setting up the business process would appreciate it

Like 0

Like

0 comments
Show all comments
How_to_detect_modified_fields_before_save_and_conditionally_block_save?

Hi Community,

I am working with Creatio Freedom UI (8.x) and I have the following validation requirement.

Scenario

I have two sets of fields:

  • Set A → A group of key fields (for example: Field1, Field2, Field3)
  • Set B → A group of  fields (for example: ApprovalReason, Comments)

Requirement

  1. If any field from Set A is modified, then:
    • I need to check whether all fields in Set B are filled.
    • If any field in Set B is empty → block save and show validation message.
  2. If the user modifies fields that are NOT part of Set A:
    • Save should be allowed normally.

My Questions

  1. In Freedom UI, is there any built-in attribute that stores the list of changed/modified fields before saving the record?
  2. If not, what is the recommended approach to detect whether specific fields were modified?
  3. Should this logic be implemented:
    • On client side using HandleViewModelAttributeChangeRequest?
    • Or in backend using the EntitySaving event and comparing old/new values?
  4. Is there a supported way to retrieve changed columns on the backend instead of manually comparing values?

I would like to follow the recommended and supported best-practice approach.

Thanks in advance!

Like 1

Like

2 comments

Client-side approach is to add a handler for the "crt.SaveRecordRequest" request. There you could validate and then return false to prevent the save from occurring. You'd likely also want to show a notification to the user for what is wrong. There is something in the $context that shows the changed, fields, but can't remember what it's called so you could throw it to the debugger to look.

For a server-side approach, you could implement an entity event listener. You could override the OnSaving (for both inserts and updates) to validate and then throw an exception if the validation fails. This will prevent the save and the UI will show the exception message in a toast notification to the user automatically. The EventArgs passed in will show you which fields have changed.

Ryan

Hello,
In addition, you can use crt.HandleViewModelAttributeChangeRequest. Inside of it, you can get a changed value with await request.$context.validate();
            {
              "request": "crt.HandleViewModelAttributeChangeRequest",
              "handler": async (request, next) => {
                const validation = await request.$context.validate();
                if (request.attributeName === "HasUnsavedData" && request.value) {
                    console.log("HasUnsavedData");
                }

Show all comments