LookupFilter
Freedom
UI
Studio_Creatio
8.0

Hi Community,

I'm working in Creatio Freedom UI and I need to apply a filter to a lookup field in one of my sections.

The lookup field is based on another custom section, and the two sections are linked by a one-to-many relationship. I would like the lookup to show only the related records based on this relationship.

Could someone please guide me on how to apply this kind of filter to the lookup’s data source in Freedom UI?

Thanks in advance!

Like 0

Like

0 comments
Show all comments
Can_we_add_each_tiles_on_new_line_in_calendar_view?
Studio_Creatio
8.0

Hi everyone,

I have created a calendar for my custom entity and added some secondary tiles to display on my calendar. But, all the fields are showing up in single line. Refer below:

Calendar image

 

 Is there any way to add each field on new line? Like reference number on one line customer name on new line?

Please advice.

Regards,
Chetana

Like 0

Like

0 comments
Show all comments

Hello!
 


We are trying to connect the MS Word to Creatio, but the connection always fails with a secure connection error, even when correct login and password are used.

Everything works only inside the bank’s local network.
So we are wondering:

 Is HTTPS absolutely required for the Word Add-in to work, even in a local environment? Or is there any supported way to make the add-in connect without HTTPS?

Any official guidance or documentation link would be very helpful.
Thank you!

Like 1

Like

4 comments

up

Ermek Nakypov,

up

up

Hello,

There are no strict limitations - the add-on can technically work without HTTPS.
However, we strongly recommend always using HTTPS, even in a local environment, to ensure secure communication and proper integration behavior.

Show all comments
How_to_add_a_custom_Calendar_section_for_my_entity_to_a_custom_workplace_in_Creatio
Studio_Creatio
8.0

Hi everyone,

I’ve created a custom entity and built a custom page using the Calendar component to display records of this entity on a calendar view.

Now, I want to add this calendar page as a new section in a custom workplace, so that when users click on that section in the left menu, it will open my custom Calendar page showing the records of my entity.

I understand that I might need to create a section schema that hosts the calendar page and then register it in the workplace, but I’m not sure about the exact steps to do this.

Could someone please guide me through:

  1. How to properly create a section schema that hosts my custom Calendar page (Freedom UI).
  2. How to register that section so it appears as a menu item in my custom workplace.

Any example code or configuration guidance would be really helpful!

Like 0

Like

2 comments
Best reply

Hello Chetana! 

For what you want to achieve, you have done the most part already by creating the Freedom UI-Page and adding the needed functionality. 

Now, in order to create a Section you have different options depending on your Creatio Version: 



Step 1 - Create Section

In older Creatio Versions you can create a Section within the "Section Wizard" directly, which can be found in the System Designer, or by following the approach i describe below.
Reference: Create a new section | Creatio Academy


For newer Creatio Versions (8.3.1+), the only available approach is to create a Section within the "Navigation and Sections" Tab of your current Application you are developing in. Applications can be accessed through the "Application Hub" in the System Designer. 
Reference: Set up the app sections | Creatio Academy
 

Step 2 - Make Section available to Users


For both approaches, the Section then can be added to a Workplace (System Designer -> "Workplace Setup") either by modifying a existing Workplace, or creating a new one. 
Reference: Set up workplaces | Creatio Academy

If you create a new Workplace, make sure to set the "User Group" to which the workplace will be available correctly, otherwise the Workplace will not appear to users :)

Kind regards, 
David


 

Hello Chetana! 

For what you want to achieve, you have done the most part already by creating the Freedom UI-Page and adding the needed functionality. 

Now, in order to create a Section you have different options depending on your Creatio Version: 



Step 1 - Create Section

In older Creatio Versions you can create a Section within the "Section Wizard" directly, which can be found in the System Designer, or by following the approach i describe below.
Reference: Create a new section | Creatio Academy


For newer Creatio Versions (8.3.1+), the only available approach is to create a Section within the "Navigation and Sections" Tab of your current Application you are developing in. Applications can be accessed through the "Application Hub" in the System Designer. 
Reference: Set up the app sections | Creatio Academy
 

Step 2 - Make Section available to Users


For both approaches, the Section then can be added to a Workplace (System Designer -> "Workplace Setup") either by modifying a existing Workplace, or creating a new one. 
Reference: Set up workplaces | Creatio Academy

If you create a new Workplace, make sure to set the "User Group" to which the workplace will be available correctly, otherwise the Workplace will not appear to users :)

Kind regards, 
David


 

Hi David,

Creating a section will add another entity in my application. I don't want that. I just want a section which will display my custom calendar. If I create a section and add it in left menu it's by default displaying the list page instead of my calendar.

Show all comments
Studio_Creatio
8.0

I want to debug the script task in business process, how to debug it? using visual studio or any other method

Like 1

Like

2 comments

Hello,
The script task can be debuged as any other source code in the system. Your BP should have a dedicated .cs file that can be debuged as others, more on it in this article.
https://work.creatio.com/0/Shell/#CardModuleV2/SupportCasePage/edit/aa4…

Dmytro Vovchenko,

Is this some internal article? I cannot open the link. Thanks!

Show all comments
Studio_Creatio
8.0

Hello community

I've a strange error when I try to connect to a local instance of creatio, in the console browser it's reported the following error:


bootstrap-loader.js?v=8.3.0.3074:343  Error during bootstrap loading:  Error: Failed to load: "

I tried to recompile all and flush redis, clear the cache browser but the error persist.

What do you suggest to do?

Like 0

Like

1 comments

Hello,

Usually, performing a Redis flush helps resolve this type of error. However, if it didn’t work in your case, could you please clarify what changes were made to the site or what actions were performed right before the issue occurred?

Also, could you please check what appears in the logs at the moment when the error occurs?

Show all comments
Studio_Creatio
8.0
Git

Hi everyone,

I’m new to Git-based development with Creatio, and I really need help understanding how a team should properly work using GitLab. We want to avoid mistakes and set up a stable workflow from the beginning.

Could you please help clarify the following topics:

Team development workflow in GitLab
• Should all custom packages be stored in a single repository?

CI/CD - do we need it and how to start?
• Should CI/CD automatically compile and deliver packages after a merge?
• How to deploy changes between Dev → Test → Prod environments correctly?
• What is the minimal recommended pipeline?

Version control content and rules
• What exactly should and shouldn’t be stored in Git? (especially DLLs, Autogenerated folders, bin/obj)

Known limitations or pitfalls
• Which development scenarios are not recommended when working with Git?
• Common conflicts with Creatio database, schema movement, or deleted objects?

I’m completely new to Git and GitLab development with Creatio. I honestly don’t understand how the process should work in a team, so I really need very basic explanations.
Any examples or documentation links, branching strategies, .gitignore examples, or CI/CD templates would help us tremendously.

Thank you very much in advance!

Like 0

Like

1 comments

Hello.

Regarding Git - please check the following Academy article:
https://academy.creatio.com/docs/8.x/dev/development-on-creatio-platform/development-tools/version-control-system/git

Regarding GitLab, we do not have experience implementing it into the system, so we cannot provide you with detailed information regarding this question.

Have a great day!

Show all comments
Copy
Paste
Landing page
8.3.0
Studio_Creatio
8.0

How to copy paste custom UI I already created template in landing pages? because I already create the custom UI for my template landing pages, because i got home page, product page, dll with the same template. I don't want to use html (I know there's choice with download html)

Like 0

Like

1 comments

Hello,

Could you please provide additional information on:
1. Where you created the landing page (Creatio site or other site)? 
2. From which site and where do you want to transfer this landing page? 
3. Why the HTML solution is not working for you?

Show all comments

I’m trying to filter a lookup in Freedom using the SDK, but this error occurs.

Here’s my code snippet:

await filter.addSchemaColumnFilterWithParameter(
   sdk.ComparisonType.In,
   "RecordId",
   dokumenIds
);

From the log, the dokumenIds look like this:
['283bfe2a-cbe9-4b4c-8baf-2959cd30b84d', '2693a56e-c6a4-40a9-a16e-429db38a9e09', '58f1338c-e20d-4662-93c1-a9da27633a00', '69658b3a-77f6-4d42-ae1f-c0e2dcdd7049', 'fbb5a32b-1a25-4c17-8945-d8c7c264b5f7', '1df81ea2-025f-4a19-9963-da5461c80507']

 

Like 1

Like

2 comments
Best reply

sdk.ComparisonType.In does not exist. For a "column value is in list" type filter, you need to use filter.addSchemaColumnInFilterWithParameters instead of filter.addSchemaColumnFilterWithParameter (note the "In", and "parameters" instead of "parameter") and use the Comparison Type Equal. e.g. adapting your example:

await filter.addSchemaColumnInFilterWithParameters(
   sdk.ComparisonType.Equal,
   "RecordId",
   dokumenIds
);

sdk.ComparisonType.In does not exist. For a "column value is in list" type filter, you need to use filter.addSchemaColumnInFilterWithParameters instead of filter.addSchemaColumnFilterWithParameter (note the "In", and "parameters" instead of "parameter") and use the Comparison Type Equal. e.g. adapting your example:

await filter.addSchemaColumnInFilterWithParameters(
   sdk.ComparisonType.Equal,
   "RecordId",
   dokumenIds
);

Harvey Adcock,

Thank you for answer. Yes, there is no ComparisonType with In filter.

Show all comments
custom page schema
custompage
custombutton
setparameter
inputparameter
Studio_Creatio
8.0

Hello,

I'm trying to implement a custom page that is opened by clicking a custom button on the opportunity edit page. In the custom page, I'm trying to retrieve the opportunity record id but it is null everytime. Here below you can find my current implementation.

In Opportunity edit page, i've implemented the following.

define("UsrOpportunities_FormPage_em4fpxb", /**SCHEMA_DEPS*/["@creatio-devkit/common"]/**SCHEMA_DEPS*/, function/**SCHEMA_ARGS*/(sdk)/**SCHEMA_ARGS*/ {
	return {
		viewConfigDiff: /**SCHEMA_VIEW_CONFIG_DIFF*/[
			...
			{
				"operation": "insert",
				"name": "BtnOpenPodManager",
				"values": {
					"type": "crt.Button",
					"caption": "#ResourceString(BtnOpenPodManager_caption)#",
					"color": "primary",
					"clickMode": "default",
					"clicked": { "request": "usr.OpenPodManager" },
					"size": "large",
					"iconPosition": "only-text",
					"visible": true
				},
				"parentName": "ActionButtonsContainer",
				"propertyName": "items",
				"index": 0
			},
			...
		]/**SCHEMA_VIEW_CONFIG_DIFF*/,
		...
		handlers: /**SCHEMA_HANDLERS*/[
			{
				request: "usr.OpenPodManager",
				handler: async (request, next) => {
					const handlerChain = sdk.HandlerChainService.instance;
					const oppId = request.$context?.Id;
 
					console.log("Opportunity Id:", oppId); // record id available
 
					await handlerChain.process({
						type: 'crt.OpenPageRequest',
						schemaName: 'UsrOpportunityPodManagerPage',
						$context: request.$context,
						modelInitConfigs: [{defaultValues: [{OpportunityId: oppId}]}], // setting the record Id to pass it to the custom page
						scopes: [...request.scopes]
					});
 
					return next?.handle(request);
				}
			}
		]/**SCHEMA_HANDLERS*/,
	};
});

In Custom page, I've implemented the following:

define("UsrOpportunityPodManagerPage", [], function () {
	return {
		...
		handlers: [
			{
                request: "crt.HandleViewModelInitRequest",
                handler: async (request, next) => {
                    const ctx = request.$context || {};
                    let opptyId = ctx.OpportunityId; // trying to read the opportunity record Id
 
                    // Propagate
                    ctx.OpportunityId = opptyId;
                    const res = await next?.handle(request);
 
					console.log("[PodManager] OpportunityId:", opptyId); // the value is null everytime
 
                    return res;
                }
            },
			...
		],
		...
	};
});

The issue is that in the crt.HandleViewModelInitRequest the value of ctx.OpportunityId is null.

What I'm doing wrong? How I can solve this issue?

Thanks,

Matteo

Like 0

Like

1 comments

Hi Matteo,

crt.OpenPageRequest in Freedom UI does not support page parameters. As a workaround you can implement this using the browser’s native BroadcastChannel API to pass values.

Here is an example:

Sender page handler

handlers: /**SCHEMA_HANDLERS*/[
	{
		request: "usr.OpenPodManager",
		handler: async function (request, next) {
			const handlerChain = sdk.HandlerChainService.instance;
			const oppId = await request.$context.Id;
 
			// Wait for the receiver page to signal it's ready
			const bc = new BroadcastChannel("Ready");
			bc.onmessage = (event) => {
				if (event.data?.type === "Ready") {
					// Send the value to the receiver page
					const sender = new BroadcastChannel("OpportunityId");
					sender.postMessage({
						type: "OpenReceiverPage",
						payload: { OpportunityId: oppId }
					});
					sender.close();
					bc.close();
				}
			};
 
			// Open the receiver page
			await handlerChain.process({
				type: 'crt.OpenPageRequest',
				schemaName: 'UsrOpportunityPodManagerPage',
				$context: request.$context,
				scopes: [...request.scopes]
			});
 
			return next?.handle(request);
		}
	}
]/**SCHEMA_HANDLERS*/

Receiver page handler

handlers: /**SCHEMA_HANDLERS*/[
	{
		request: "usr.HandleViewModelInitRequest",
		handler: async function (request, next) {
			await next?.handle(request);
 
			// Notify the sender page that the receiver page is ready to receive data
			const readyChannel = new BroadcastChannel("Ready");
			readyChannel.postMessage({ type: "Ready" });
			readyChannel.close();
 
			 // Listen for the data from the receiver page
			const bc = new BroadcastChannel("OpportunityId");
			bc.onmessage = (event) => {
				if (event.data?.type === "OpenReceiverPage") {
					const oppId = event.data.payload?.OpportunityId;
				}
			};
		}
	}
]/**SCHEMA_HANDLERS*/
Show all comments