Hello community,

I have developed the form page "A" that uses the default Crt.MinLength validator.

I have created a replacement form for form page "A", is it possible to override the inherited Crt.MinLength validator rule?
I need to change the length parameter.

Like 0

Like

1 comments

Hi,

Tested in the local app - create the very same validator (with the same name) in the schema that is a child for your schema and add your logic there. As a result the validator fgrom from the child schema will be called.

Show all comments

Hello,

I have configured the DCM to change states after executing the steps of a process. According to my observations, the state does change, but it does not do so automatically (I have to manually refresh the page to see this change). When I check the process logs, I can see that the process changes to a canceled state. I am not sure what else to review apart from the process, as everything seems to be fine.

Additionally, I am including reference images of the process and the process logs to help illustrate the issue.

 

 

Any suggestions on what might be causing this issue?

Thank you!

 

Like 0

Like

1 comments

Hello, 

This is the standard (OOTB) behavior of Cases.
If you change the stage of a record that initiated a business process — whether from within the business process itself, its subprocesses, or the record — all tasks, processes (including subprocesses), open pages, etc., will be canceled.

More detailed information can be found here:
Case Designer workflows

If the issue is more complex, please create a support request by emailing support@creatio.com.

Regards,
Orkhan

Show all comments

Hi All, 

Would you please advise if it's feasible to recreate the logic used for Leads / Opportunities and have a custom object with a workflow where stages history would be recorded and displayed in the sales funnel dashboard? 

How difficult such task would be and how to approach this? 

Any advice would be much welcome! 

Thank you!
Jacek 

Like 1

Like

2 comments

Hi,

Yes, it is feasible to recreate the logic used for Leads/Opportunities by implementing a custom object with a workflow that records stage history. You can create a separate object to store the stage history and configure a process that automatically creates a record each time the stage of the main custom object changes.

However, please note that the standard Sales Funnel dashboard in Creatio is designed to work with standard entities such as Leads and Opportunities. Custom objects are not supported out-of-the-box in this dashboard. To include data from a custom object in a funnel visualization, custom development will be required. This could involve creating a custom dashboard widget or a report using the Analytics section.

Best regards,
Anton

Thanks Anton!

I think it'd good if Creatio developing the AI for system customizations would look into creating a flow that automatically sets or gives a possibility to set these 'additional components' like Stages history, Days per stage calculation, and a custom sales funnel based on that initial custom object. 

Just some food for thought :-) 

Thank you for your answer! It's much appreciated. 

Show all comments

Hello Community,

I would like to know how to skip the warning message that appears when closing a page using a handler.

Currently, I’m using the following code to close the page:

 await request.$context.executeRequest({
  type: "crt.ClosePageRequest",
  $context: request.$context
 });

regards,

Ajay Kuthe.

Like 0

Like

1 comments
Best reply

There is a request called "crt.CanDiscardUnsavedDataRequest" that you can handle to suppress that. See here: https://customerfx.com/article/suppressing-the-unsaved-data-prompt-when-canceling-a-creatio-freedom-ui-modal-dialog/

Ryan

There is a request called "crt.CanDiscardUnsavedDataRequest" that you can handle to suppress that. See here: https://customerfx.com/article/suppressing-the-unsaved-data-prompt-when-canceling-a-creatio-freedom-ui-modal-dialog/

Ryan

Show all comments

Hello Community,

I would like to know how to skip the warning message that appears when closing a page using a handler.

Currently, I’m using the following code to close the page:

 await request.$context.executeRequest({
  type: "crt.ClosePageRequest",
  $context: request.$context
 });

regards,

Ajay Kuthe.

Like 0

Like

1 comments

Hello Community,

While working with the loader using <strong>sdk.MaskService</strong>, I'm trying to figure out how to display a custom message during the mask operation.

Here's the code I'm using:

let mask = new sdk.MaskService();
mask.showBodyMask();

// Code here

mask.hideBodyMask();
 

1. How can I display a custom message (e.g., "Loading Data, Please Wait...") while the mask is active?

2. Also, how can I apply the mask to a specific container?

Looking forward to your suggestions.

Regards,
Ajay K

 

Like 0

Like

2 comments
Best reply

The Freedom UI/new shell mask does not currently support displaying a message. Optionally, you could display a toast message in addition to showing the mask.

It only supports blocking the entire app/shell, not for specific containers only.

The Freedom UI/new shell mask does not currently support displaying a message. Optionally, you could display a toast message in addition to showing the mask.

It only supports blocking the entire app/shell, not for specific containers only.

Ryan Farley,

Thank you for the information.

Show all comments

Dear,

On the Classic UI we could have a thumbnail of the images in the browser:

Classic UI

But in Freedom the picto is not display:

Freedom UI


Is it possible to display the image thumbnail directly in the browser with Freedom UI?

Thank you !
Nicolas

Like 0

Like

4 comments

Hello,

Unfortunately, currently this is not possible with the out-of-the-box solution. 
If you want to display a certain image for the record, for example company logo for the account record, you can use an Image component.


You can also consider using the following marketplace solution: https://marketplace.creatio.com/app/banza-files-extended-creatio?check_…

I hope this helps! If you have any further questions or need assistance, feel free to reach out.

I have a marketplace addon coming that does this, it is still awaiting the approval for the marketplace to publish the addon - it takes a very long time for them to approve things 👎🏻 - hopefully it will be published soon. 

Hello Nicolas,

The add-on that displays image previews in the attachment list is now available in the marketplace: https://marketplace.creatio.com/app/image-previews-creatio

Ryan

Thank you Ryan
This is exactly what we needed !

Show all comments

Hello Community,

Is there any way to bind the images for the articles we create in the Knowledge base, to the deployable pacakge?

Thank you

Sasor

Like 2

Like

1 comments
Best reply

Hello Sasor, 

If we're talking about Data Binding, when transferring the KnowledgeBase, it's likely necessary to also transfer the KnowledgeBaseFile, since the article references attached files in order to display them properly.

 

Hello Sasor, 

If we're talking about Data Binding, when transferring the KnowledgeBase, it's likely necessary to also transfer the KnowledgeBaseFile, since the article references attached files in order to display them properly.

 

Show all comments

Hi Creatio Community,

I need to trigger a business process (BP) whenever a new record is inserted into the Webhook object through a webhook.

I’m using the Entity Event Layer and listening to the OnInserted event for the Webhook object. How can I trigger the  BP from the entity event code when a new record is added?

I’ve tried using ProcessExecutor and ProcessManager, but encountered access issues. Any help or example code would be greatly appreciated!

Thanks!

Like 0

Like

2 comments

If all you need to do is start a process, you can just create a process with a signal start on Record Added in the Webhook table. See https://academy.creatio.com/docs/8.x/no-code-customization/bpm-tools/process-elements-reference/events/signal-start-event

Ryan

Show all comments

Hi Everyone! 

I have a use case where I need to make adding a record to a detail on the Opportunity page mandatory for a specific stage in Opportunity DCM. 

Would anyone know how to implement it? 
Are there any differences between Classic and FUI? 
Can it be done through Validation? 

Any suggestions welcome!

Thanks so much for your help!
Jacek

Like 0

Like

4 comments
Best reply

Hello Jacek,

In order to implement your logic you will have to create the user task for adding a record to the detail and set it as required step in DCM.

Opportunity management 

Hello Jacek,

In order to implement your logic you will have to create the user task for adding a record to the detail and set it as required step in DCM.

Opportunity management 

Yeah, this is something a missing for which it's quite useful to have to behave like a mandatory field, rather than a task to fill in. 

Have not found a way other than to add task, but we did it in a business process so that it will first check if detail has some records or not. 

Use cases : Address filled in ; Products added to opp.. there's probably more. 

Our sales team are not big fans of extra tasks to validate in addition to the data to fill in.

Unfortunately, it is not possible to make some detail mandatory for filling in with user.  We registered this request and forwarded to our R&D team for consideration and implementation in future application releases.

It is possible to do with development though. 

Here is a sample algorithm for how it may be done in Classic UI. Please not that the methods in the examples serve only for giving an idea of how this may be done and don't perform actual business task: 

1) Create an ESQ to check if the detail has records added.

Example: 

checkDetailRecords: function() {
	var accountId = this.get("Id");
	var select = this.Ext.create("Terrasoft.EntitySchemaQuery", {
		rootSchemaName: "AccountAddress" //name of the detail object schema
	});
	var esqFilter = select.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, "Account", accountId);
	select.getEntityCollection(function(response) {
		if (response.success) {
			var collection = result.collection;
			if (collection &amp;&amp; collection.collection.length &gt; 0) {
				this.set("DetailHasRecords", true);
				this.set("ESQCompleted", true);
				this.save();
			} else {
				this.set("DetailHasRecords", false);
				this.set("ESQCompleted", true);
				this.save();
			}
		}
	}, this);
}

2) After checking if there are any records you would need to save the result, for example, to an attribute: 

Example: 

attributes: {
	"DetailHasRecords": {
		"type": Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,
		"dataValueType": Terrasoft.DataValueType.BOOLEAN,
		"value": false
	},
	"ESQCompleted": {
		"type": Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,
		"dataValueType": Terrasoft.DataValueType.BOOLEAN,
		"value": false
	},
}

3) After that you can override save method for the opportunity to check if the detail is filled in when the opportunity in a specific stage  

Example: 

save: function() {
	if("ESQCompleted") {
		if("DetailHasRecords") {
			this.callParent();
		} else {
			this.showInformationDialog("Please fill in ....");
		}
	} else {
		this.checkDetailRecords();
	}
}

 

Also to prevent the opportunity when record was deleted from the detail and no records in the detail left you can use the method onDetailChanged: 

onDetailChanged: function(detail) {
	this.callParent(arguments);
	if (detail.schemaName === "AccountAddress")//name of the detail
		this.checkDetailRecords();
	}
}

Thank you Iryna and Damien for your replies and advice. This is much appreciated! 

Show all comments