FreedomUI
Freedom_UI
Studio_Creatio
columns
detail
Expanded_List
8.0

Hello, I have a [Object A] form page where I have an Expanded List (detail) inside it [Object B] created. In [Object B] I need to have multiple records, so now I need to make a relationship between [Object A] and [Object B], but the app doesn't show me a relationship between IDs or anything like that.

I've already tried manually creating a Lookup inside [Object B] pointing to [Object A], but I was wondering if there's a better way to do it?

Like 1

Like

1 comments
Best reply

Hello,

You need to create one-to-many relations between these objects. To do this, you need to create a lookup column in each object that will refer to another object. After that, you will be able to use filters and relationships to display and customize the necessary lists.
You can't do it using no-code elements because this connection is set up at the object level.

Hello,

You need to create one-to-many relations between these objects. To do this, you need to create a lookup column in each object that will refer to another object. After that, you will be able to use filters and relationships to display and customize the necessary lists.
You can't do it using no-code elements because this connection is set up at the object level.

Show all comments
TRYING_TO_DISPLAY_DETAIL_IN_A_MODAL
Studio_Creatio
8.0

Hello.

Question: Is it not possible to add Virtual Detail in Modal?

I tried to add a Virtual detail in a Modal, but it do not shows Detail.
In Contact Page I have Virtual Detail and after clicking in row I open Modal where I added  Virtual Detail but it do not shows and there  are no errors also in Console.

This is A Modal after clicking in row and its empty.

 

Code For Modal:

define("UsrCreateVirtualFinancialAccountsModalPage", ["ModalBox", "css!UsrCustomStylesCss"], function(ModalBox, UsrCustomStylesCss) {
	return {
		attributes: {
 
		},
		messages: {
			"DataFromModal": {
				mode: Terrasoft.MessageMode.PTP,
				direction: Terrasoft.MessageDirectionType.BIDIRECTIONAL
			}
		},
		methods:{
			init: function(callback, scope) {
				this.callParent(arguments);
            	console.log('test')
			},
		},
		details: /**SCHEMA_DETAILS*/{
			"UsrFinancialAccountsVirtualDetail": {
				"schemaName": "UsrFinancialAccountsVirtualDetail"
			},
		},
		diff: [
			{
				"operation": "insert",
				"name": "MyContainer",
				"propertyName": "items",
				"values": {
					"itemType": Terrasoft.ViewItemType.CONTAINER,
					"items": []
				}
			},
			{
				"operation": "insert",
				"name": "MyGridContainer",
				"parentName": "MyContainer",
				"propertyName": "items",
				"values": {
					"itemType": Terrasoft.ViewItemType.GRID_LAYOUT,
					"items": []
				}
			}, 
 
			{
				"operation": "insert",
				"name": "UsrFinancialAccountsVirtualDetail",
				"values": {
					"itemType": 2,
					"markerValue": "added-detail"
				},
				 "layout": {
                        "column": 0,
                        "colSpan": 25,
 
                        "row": 5,
                        "rowSpan": 5
                    },
				"parentName": "MyGridContainer",
				"propertyName": "items",
				"index": 1
			},
		]
	};
});
Like 0

Like

1 comments

Hello. 
I implemented similar logic but instead of opening a modal page, i open card for the detail. In case section i added a test detail. When double clicking on a record in this detail onGridRowDoubleClick method is called which set values of record to sessionStorage and opens a UsrTestCardPage. Than init method is called while page is initializing which sets the field values.

Card schema:
 define("UsrTestCardPage", [], function() {
    return {
        entitySchemaName: "UsrTestDetail",
        attributes: {},
        modules: /**SCHEMA_MODULES*/{}/**SCHEMA_MODULES*/,
        details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
        businessRules: /**SCHEMA_BUSINESS_RULES*/{}/**SCHEMA_BUSINESS_RULES*/,
        methods: {
            init: function() {
                this.callParent(arguments);
                this.getSessionStorage();
            },
            
            getSessionStorage: function() {
                var UsrName_SessionValue = sessionStorage.getItem("UsrName_Session");
                var UsrIntColumn_SessionValue = sessionStorage.getItem("UsrIntColumn_Session");
                var Id_SessionValue = sessionStorage.getItem("Id_Session");
                this.set("UsrName", UsrName_SessionValue);
                this.set("UsrIntColumn", UsrIntColumn_SessionValue);
                this.set("Id", Id_SessionValue);
            }
        },
        dataModels: /**SCHEMA_DATA_MODELS*/{}/**SCHEMA_DATA_MODELS*/,
        diff: /**SCHEMA_DIFF*/[
            {
                "operation": "insert",
                "name": "UsrName2a0f6821-93ff-4f8b-a8c0-e58bb9032171",
                "values": {
                    "layout": {
                        "colSpan": 24,
                        "rowSpan": 1,
                        "column": 0,
                        "row": 0,
                        "layoutName": "ProfileContainer"
                    },
                    "bindTo": "UsrName"
                },
                "parentName": "ProfileContainer",
                "propertyName": "items",
                "index": 0
            },
            {
                "operation": "insert",
                "name": "INTEGER406f5583-84ac-4659-9ff8-46b9c72de82a",
                "values": {
                    "layout": {
                        "colSpan": 24,
                        "rowSpan": 1,
                        "column": 0,
                        "row": 1,
                        "layoutName": "ProfileContainer"
                    },
                    "bindTo": "UsrIntColumn",
                    "enabled": true
                },
                "parentName": "ProfileContainer",
                "propertyName": "items",
                "index": 1
            },
            {
                "operation": "insert",
                "name": "LOOKUPcb467c2f-f352-4ac0-90ea-f25c2ed22119",
                "values": {
                    "layout": {
                        "colSpan": 24,
                        "rowSpan": 1,
                        "column": 0,
                        "row": 2,
                        "layoutName": "ProfileContainer"
                    },
                    "bindTo": "UsrCase",
                    "enabled": true,
                    "contentType": 5
                },
                "parentName": "ProfileContainer",
                "propertyName": "items",
                "index": 2
            }
        ]/**SCHEMA_DIFF*/
    };
});

 

 

Detail schema:


Hope this helps

Show all comments
filter
Studio_Creatio
8.0

Hello
Is there any possibility to show in a filter only the legal entities that I select in advance?

For example, in the "Branch" lookup, I would like to see only the legal entities with a property set by me, not all of the LE.

 

Like 2

Like

2 comments

Hello,

Unfortunately, the basic functionality of the platform doesn't allow you to filter values specified by you. However, we've registered this idea in our R&D team backlog for consideration and implementation in future application releases. Thank you for helping us to improve our product.

Great idea :) It's like also making sure some inactive values are not only inactive in dropdowns, but also in filters. 

Show all comments

Hi

I am currently working on a functionality within our Creatio system where I need to open a mini page that is part of the Classic UI by clicking a button in a Freedom UI section. Despite my efforts, I have encountered some challenges in achieving this integration.

 

Could you please provide guidance or any relevant documentation on how to successfully link and open a Classic UI mini page from a button click within a Freedom UI section? 

 

Any tips or best practices you could share would be greatly appreciated.

 

Thank You.

Like 1

Like

2 comments

Hi Satyam, 
You can try using crt.7XRequest with action 'EditRecord'/ 'AddRecord'. Please see this article on community : https://community.creatio.com/questions/base-function-lookup-value-clic…

Yurii Sokil,

The Terrasoft modules are also still available. You can use the same code as in classic UI, something like this will work in a Freedom UI request: 

Terrasoft.MiniPageListener.open({
	parameters: {
		entitySchemaName: "Activity"
	},
	valuePairs: [
		{ name: "Type", value: "fbe0acdc-cfc0-df11-b00f-001d60e938c6" },
		{ name: "Contact", value: contactId },
		{ name: "Account", value: accountId }
	],
	miniPageSchemaName: "ActivityMiniPage",
	operation: Terrasoft.ConfigurationEnums.CardOperation.ADD,
	showDelay: 0,
	miniPageSourceSandboxId: null
});

Ryan

Show all comments
dependencies
cyclicdependencies
current_package
auto generated
Studio_Creatio
8.0

Hello all,

 

Is there any way yet to disable Creatio automatically generating packagess and adding dependencies? It seems to completely disregard my current package system setting and Creatio's assigns dependencies to go in circles which then takes more time for me to clean up. Half the time when I remove dependencies, I go back to make a save in a package and Creatio assigns more dependencies that I don't want.

 

I end up with so much junk packages in the database with nonsense App_ues323 names and I can't find a way to turn it off.

Like 3

Like

5 comments

Hi Kevin, you need to disable the Feature called UseSchemaDesignPackageUIdByHierarchy. In yor instance must add this "/0/Shell/#Section/AppFeature_ListPage" after cretio.com to open the Features Page, search the feature, disable (turning off the “Is enabled” and “Is enabled for current user”), save and click on  button "Clear Cache".

 

Regards

Julio Falcón

Julio.Falcon_Nodos,

Are there any caveats to doing this Julio?

Gareth Osler,

This basically just reverts the behavior to use the "Current Package" system setting, even for all Freedom UI stuff. I have more info on that here: https://customerfx.com/article/reverting-the-behavior-for-saving-pages-in-the-creatio-freedom-ui-designer-to-use-current-package-setting/

Ryan

Hello!

 

The new package is creating if changes have been made to the application, but its main package is locked.

 

When developing an application, you can force the application not to create a new empty package, but to save changes to the package you created.
This can be done by disabling the UseSchemaDesignPackageUIdByHierarchy system feature - it is responsible for the logic of checking and creating a new package for the application, as well as the CurrentPackageId system setting and the Installed application and Package lookups. 


Now you will need to specify the package (recommended Custom) in the CurrentPackageId setting.

Please check this article it will explain everything in a clean manner

Fixing Creatio's Auto-Generated Packages: A Precise, Step-by-Step Guide | AavishkarIT

Show all comments
Studio_Creatio

Hi all, 

 

any sol for this available? I am completely new to Creatio and wanted to set dependencies (ProductCore) for a new package. I always get this error.

 

Best; Greg 

 

 

 

 

Like 0

Like

2 comments
Best reply

This message is referring to the data elements in your package. There are sections added to workplaces in the package (SysModuleInWorkplace) but the Workplaces they are added to are not bound in data elements in the package (SysWorkplace). To resolve, look at any data elements for SysModuleInWorkplace in your package and make sure you add a data element for SysWorkplace for the workplaces that the sections are in.

Ryan

This message is referring to the data elements in your package. There are sections added to workplaces in the package (SysModuleInWorkplace) but the Workplaces they are added to are not bound in data elements in the package (SysWorkplace). To resolve, look at any data elements for SysModuleInWorkplace in your package and make sure you add a data element for SysWorkplace for the workplaces that the sections are in.

Ryan

Ryan Farley,

Thanks alot!

Show all comments
Studio_Creatio
8.0

Like 0

Like

1 comments

Greetings,
 

Could you please tell me what you mean by "why my object is not saved"? 

Show all comments
FreedomUI
Studio_Creatio
8.0

Hello community,

I'm trying to add on freedom edit page the Recordinactive field, but the designer doesn't list  the field.

In classic UI I can add the Recordinactive field

 

How can I solve this problem?

thank you

Like 0

Like

1 comments

Hello,
The reason lies in the type (UsageType) of the RecordInactive= "Advanced" column, which is why the system does not display it in the designer. Unfortunately, there is no way to change this column type.

However, there is a workaround that will allow you to use the feature, namely the "DisableBlockingSystemColumns" feature that needs to be created and enabled for users that you need to have the rights to use such system fields.
1. Go to the link: https://SITENAME.creatio.com/0/Features
2. Add a new parameter:
image.png
3. Create a new parameter called "DisableBlockingSystemColumns", then add the role that well have the access to it, enable the checkbox and save the changes:
image.png
4. Relogin to the site.

However, this will allow users who have this option enabled to see other restricted and system columns in the system. We recommend using this approach in the "extreme" case, if the work of this functionality is critically important.

In addition, we have already created a task for our development team to fix this issue. Unfortunately, we have no exact ETA at the moment, since the task is at the initial stage, but it may be included into one of the next releases.

Show all comments
Email
Business Process
Studio_Creatio
8.0

Hi! 

I know that the emails sent via Creatio are in the Activity table, but how about the the emails sent by a business process? Can I find those emails somewhere?

 

Thank you,

Rares Ivan

Like 0

Like

1 comments

Hello,

To be able to see these emails, you need to enable logging in the advanced settings in the Email Sending process element. 
After that, you can find the emails in the Activity table or set up a dashboard to view them.

Show all comments
DCM
Studio_Creatio
8.0

Can the DCM be made read-only based on the status of another object?

 

For Example, I have an Account object linked to a form page with a DCM for account status (Active, Terminated, and Never Active) and a Contract object with statuses of "active" and "inactive" connected to the Account object, can changes to the DCM status in the Account be prevented when the Contract status is not "active"?

Like 0

Like

2 comments

Hello,

 

While DCM lacks a direct feature to check another object's values and restrict access based on that data, a simple no-code workaround can be implemented. Add a subprocess as the initial step in the DCM stages. This subprocess will check the related contract status, and if it's not 'Active,' it will notify the user and revert the stage to the previous one.

Alternatively, you can create a button that allows the user to select the desired stage. The system will then verify if the record can be transferred to the selected stage.

Kalymbet Anastasia,

Thank you for your input. Appreciated. 

Show all comments