Hello,

 

This was an issue in Classic UI, when hidden fields still take a place on the page. But hope, Freedom UI can make it better.

I've tried this, but still there are spaces. How can we hide them at all? We have set with different fields, that are shown by conditions (and cannot be grouped). But it looks not very nice when they are hidden



Thank you very much!

Vladimir

Like 1

Like

3 comments
Best reply

Hi Vladimir,

 

If I am understanding your question correctly, you can use the "flex column" layout component. If you add your fields to this, it will adjust depending on which fields are visible

 

The below is the component in the the Freedom UI editor, along with how it displays to the user when the final three fields are not visible. 

 

 

 

Hi Vladimir,

 

If I am understanding your question correctly, you can use the "flex column" layout component. If you add your fields to this, it will adjust depending on which fields are visible

 

The below is the component in the the Freedom UI editor, along with how it displays to the user when the final three fields are not visible. 

 

 

 

I feel we need more training/documentation to make full use of Freedom UI :)

Hello,



That's correct. In order for the elements to "move" if other elements are hidden, you need to place these elements within a Flex column container. In other cases, there will be empty space instead of the element.

We've taken your customer voice into account and have created a task for the responsible team to supplement such documentation.

Thank you!

Show all comments

Subscription-based Product Bundles:

We have to bundle together two or more products and sell them as a single unit (SKU). For example, a yearly product license subscription with the training course.

The invoice and Order should have only one SKU.

Like 0

Like

1 comments

Hi Selva,



As we can see, we already have a case from you on support team, so we will reply there.

Show all comments

Hello, 



I'm trying to create a popup to display to users after they start a new session (log in).  What is the simplest way to do this? 



There is a new business process called "User sessions" in the CRT Base package.  Is this something I could use for the purpose of displaying a popup after a new user session is created?



I was able to create a custom user task that displays a popup and call it with a business process with a simple start but cannot figure out a way for it to be triggered to display to a user when they start a new session.



Any guidance is appreciated.  Thank you!

 

 

Like 1

Like

1 comments

Hello,

 

Sessions are created directly in the database by Insert and do not generate an event on the object. Business processes rely on events at the object. If it is not the happening process will not notice any changes. As for now, there is no option to track start/end of the user session via the process signals. Our R&D team responsible for this functionality is already working on implementing it in the future releases. I will forward your feedback to the team in order to increase the importance of this task.

 

Best regards,

Yuliya

Show all comments

Hi,

 

I would like to add custom buttons to a lookup that opens when clicking on an Action Item in the account section. Autogenerated Page will not meet our requirement as the client just wants a pop-up and do not want to open a whole separate page. I couldn't find a way to add the buttons specific to 1 lookup, hence I created a custom ModalBox as below:

This has 1 field which is a filtered Contact lookup.

On clicking the lens icon, the lookup opens, but the issue is that it lies on top of the existing ModalBox as below:

How can I open it in a separate window and pass the selection to the custom ModalBox?

Any help is appreciated. Thanks!

Like 0

Like

1 comments

Hello,

Thanks for reaching out!

 

I'd suggest checking out a similar post on our Community where you'll find detailed steps on how to set up the functionality you're looking for. It's quite informative and might have just what you need.

 

I hope you'll find the answers to your questions there.

 

Best regards, Pavlo!

Show all comments

Dear Creatio-Community,

I have set the record deactivation functionality for the Contacts object and set some contacts to "inactive". 

 

Now I have the following problem:

There is an inactive contact in my Creatio system that has the same email address assigned to it as an active contact. This is correct as far as it goes.

However, the Creatio system now automatically links an incoming e-mail (e-mail account is synchronized with Creatio) with the inactive contact. This is not correct.

 

Is there any way I can prevent this?



Regards

Like 1

Like

1 comments

Dear Florian,

 

In this case, you can try to desynchronize/unlink this e-mail from an inactive user, as the email linking logic will choose the user with whom this email address is synchronized. Record deactivation's main function is to filter out certain records, so they do not show in quick filter for example, for in lookup dropdown menu. Also, you can try to delete the inactive user altogether. 

 

Also, we will register an idea to our developer's team to expand the functionality of this function. Thank you for making Creatio better!

 

You can see more information regarding record deactivation function on Creatio Academy: https://academy.creatio.com/docs/developer/development_tools/creatio_id…;

 

Have a nice day.

Show all comments

Hi,

A specific Organizational Role has 'Reading' access rights in the Accounts, but can have 'Editing' access rights in the Communication Options Detail.

However whenever I update a record in 'Communication Options' i revieve this pop-up

1- I have given the correct access rights to object 'Communication Options' for the specific Organizational Role

2- Also modified 'Object to inherit access rights from'

What am I missing here ?

Sasori

Like 0

Like

3 comments

Hello Sasori,

 

According to your description, the issue is that when modifying data in the "Communication Options Detail" object, the system attempts to update related data in the "Accounts" object, and the user doesn't have the necessary permissions for this action.

 

Bogdan,

Thats correct.The mentioned Role has only 'Reading' rights in the Accounts.

However we have applied columns permission in the Accounts fields (like Phone,Alternate Phone) that can be affected by the Update of the 'Communication Options Detail" object but still not working.

Sasori

Sasori Oshigaki,

 

Please contact our support team on this matter - support@creatio.com

Show all comments

Hi Everyone,

 

I want to know how does Creatio use Negative values? In Integers and Decimals.

 

In our system, we have loads for our employees and sometimes employees complete more loads & less loads (Negative loads) then what they are allotted. So I just wanted to know if I can just use a single variable and store both values? as + and - ?

Like 1

Like

1 comments

Hello Hassan,

 

The logic of recognizing boolean values during the import is hardcoded and can't be changed with user tools. 

Currently, the following values are recognized:

True/False 

1/0 

+/- 

Yes/No 

Y/N 



I will create an idea for our R&D team to add localized values to this list in future Creatio releases. 

As for now please use the proposed values during the import. 

 

Show all comments

Hello,

 

What is the correct way to add custom field to System user page? Currently it is necessary to modify VwSysAdminUnit view, but it seems to be bad idea (as this view is overwritten with new versions of Creatio)



Do other options exist?

Like 1

Like

1 comments

Hello Vladimir,

 

Unfortunately, as for now, there is no possibility to change the system user page layout with the help of out-of-the-box tools of the application and we do have a correspondent problem registered on our side.



As for now theoretically, the only way to change the layout (or to add existing columns to the user page) is with the help of the replacing object (replace the "SysAdminUnit" object from the "Base" package) and replace the "UserPageV2" schema from "UIv2" package, but we should warn you that it is risky to do because it can break base application logic and provoke critically errors.



Actually, we don't recommend performing changes to this object and schema, but if you want to try - please use the dev-instance or local instance first so to test this possibility and then, if it was successful, perform the same steps on prod.

Show all comments

How can i hide / show a field based on the user role in freedom UI with business rules or with js code?

Thank you

Like 2

Like

7 comments
Best reply

You can do this with code on a Freedom UI page. 

1) Make sure you add "@creatio-devkit/common" to the page as sdk

2) First add an attribute to the viewModelConfig. I'll call the attribute "IsUserInRole since we'll set it to true/false if the user is in the role. 

viewModelConfig: /**SCHEMA_VIEW_MODEL_CONFIG*/{
    "attributes": {
        "IsUserInRole": {}
    }
}/**SCHEMA_VIEW_MODEL_CONFIG*/

3) Bind the attribute to the visible property of the control by adding the following to the control in the viewModelDiff

"visible": "$IsUserInRole"

4) Now when the view model is initialized, basically the Freedom UI equivalent of the onEntityInitialized on classic pages, do a query using the model to determine if the current user is in the role. We'll use that result to set the attribute:

{
    request: "crt.HandleViewModelInitRequest",
    handler: async (request, next) => {
        await next?.handle(request);
        // get current user
        const sysValuesService = new sdk.SysValuesService();        
        const sysValues = await sysValuesService.loadSysValues();
        const currentUserContact = sysValues.userContact;
 
        // create model query
        userRoleModel = await sdk.Model.create("SysUserInRole");
        const filter = new sdk.FilterGroup();
        await filter.addSchemaColumnFilterWithParameter(sdk.ComparisonType.Equal, "SysRole.Name", "The Role Name Here");
        await filter.addSchemaColumnFilterWithParameter(sdk.ComparisonType.Equal, "SysUser.Contact", currentUserContact.value);
 
        // workaround for filters, will be fixed in 8.1
        const newFilter = Object.assign({}, filter);
        newFilter.items = filter.items;
 
        const results = await userRoleModel.load({
            attributes: ["Id"],
            parameters: [{
                type: sdk.ModelParameterType.Filter,
                value: newFilter
            }]
        });
 
        // now set attribute
        request.$context.IsUserInRole = results.length > 0;
    }
}

I didn't test that code, but it should be pretty close. If anything you might need to play with the filter for the model query.

Ryan

Hello,

 

Unfortunately, there is no way to add visibility to the field based on user role via Section Wizard.

 

But 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. 

Bogdan,

but is it possible to calculate page parameter based on Operation permission? And then use this parameter in business rule?

You can do this with code on a Freedom UI page. 

1) Make sure you add "@creatio-devkit/common" to the page as sdk

2) First add an attribute to the viewModelConfig. I'll call the attribute "IsUserInRole since we'll set it to true/false if the user is in the role. 

viewModelConfig: /**SCHEMA_VIEW_MODEL_CONFIG*/{
    "attributes": {
        "IsUserInRole": {}
    }
}/**SCHEMA_VIEW_MODEL_CONFIG*/

3) Bind the attribute to the visible property of the control by adding the following to the control in the viewModelDiff

"visible": "$IsUserInRole"

4) Now when the view model is initialized, basically the Freedom UI equivalent of the onEntityInitialized on classic pages, do a query using the model to determine if the current user is in the role. We'll use that result to set the attribute:

{
    request: "crt.HandleViewModelInitRequest",
    handler: async (request, next) => {
        await next?.handle(request);
        // get current user
        const sysValuesService = new sdk.SysValuesService();        
        const sysValues = await sysValuesService.loadSysValues();
        const currentUserContact = sysValues.userContact;
 
        // create model query
        userRoleModel = await sdk.Model.create("SysUserInRole");
        const filter = new sdk.FilterGroup();
        await filter.addSchemaColumnFilterWithParameter(sdk.ComparisonType.Equal, "SysRole.Name", "The Role Name Here");
        await filter.addSchemaColumnFilterWithParameter(sdk.ComparisonType.Equal, "SysUser.Contact", currentUserContact.value);
 
        // workaround for filters, will be fixed in 8.1
        const newFilter = Object.assign({}, filter);
        newFilter.items = filter.items;
 
        const results = await userRoleModel.load({
            attributes: ["Id"],
            parameters: [{
                type: sdk.ModelParameterType.Filter,
                value: newFilter
            }]
        });
 
        // now set attribute
        request.$context.IsUserInRole = results.length > 0;
    }
}

I didn't test that code, but it should be pretty close. If anything you might need to play with the filter for the model query.

Ryan

Thank you. That helps a lot.

Ryan Farley,



I have tried a similar case, where on saving a record writing a validation to check whether it has unique "Code".

 

request: "crt.SaveRecordRequest",handler: async (request, next) => {
// Add any code to execute *before* the save here
 
var accountModel = await sdk.Model.create("Account");
 
const filter = new sdk.FilterGroup();
var codeValue = await request.$context.StringAttribute_enupz4g;
await filter.addSchemaColumnFilterWithParameter(sdk.ComparisonType.Equal, "SMCode", codeValue);
 
	const newFilter = Object.assign({}, filter);
	newFilter.items = filter.items;
 
	const accounts = await accountModel.load({
		attributes: ["Id"],
		parameters: [{
		type: sdk.ModelParameterType.PrimaryColumnValue,
		value: newFilter
		}]
	});
	if(accounts.length > 0){
		isSave = false;
		//Show warning Message
		request.$context.executeRequest({
		type: "crt.ShowDialogRequest",
		$context: request.$context,
		dialogConfig: {
		data: {
		message: "Code already already exists",
		actions: [{
			key: "OK",
			config: {
			color: "primary",
			caption: "OK"
			}
		}]
		}
		}
	});
	}
else{
return next.handle(request);
}
}



I followed your code to check any account has the similar code. Seems like, there is an issue in the filter it throws the below error.







Can you help me in adding the proper filter in this Freedom UI? Or provide a sample code to add filters to retrive data from an entity.



Regards,

Adharsh S

Adharsh,

Change this part: 

const accounts = await accountModel.load({
	attributes: ["Id"],
	parameters: [{
		type: sdk.ModelParameterType.PrimaryColumnValue,
		value: newFilter
	}]
});

To this: 

const accounts = await accountModel.load({
	attributes: ["Id"],
	parameters: [{
		type: sdk.ModelParameterType.Filter,
		value: newFilter
	}]
});

Note, the difference in type. You're specifying a filter, not providing a primary column value. 

Ryan

This is a very common requirement for all clients, this really should be added to the no code Page Designer. Similarly with Operation permissions to be used in visibility conditions.

Show all comments

Hi Everyone,

 

We have Loads in our environment and teams into which those loads are supposed to be divided equally. I want to know how can i do this with the business process?

Like 0

Like

4 comments

Hello, 

Thank you for your question!

Please note that the decimal separator logic is hard coded within the system core. Unfortunately, it is not possible to change it using basic user tools and we do not have a ready-made solution to resolve your problem.



We have already registered the following suggestion for our R&D department and they will consider the implementation of this functionality in future releases.

 

Viktoriia Hrynchuk,

Hi Vik,

 

Thank you for your response. If I have a Decimal variable of .00, then I can use it to divide into the same Decimal variable?

Hello!

 

To divide one number by another in a business process, we recommend using the "Formula" element available in Creatio. 

For detailed guidance on using the "Formula" element and other functionalities in Creatio, we encourage you to explore the Creatio Academy.

https://academy.creatio.com/docs/8-0/user/bpm_tools/business_process_se…

There, you will find comprehensive tutorials, guides, and resources that will help you make the most of our platform's capabilities.

 

Best regards,

Kate

Kate Karpik,

HI Kate,

 

Thank you for your response. I don't see anything regarding division in the academy.

Show all comments