I would like to have the ability to IFrame, use HTML, and/or Markdown language within the knowledge base section. This will greatly increase our ability to provide more detailed walkthroughs for our agents, with a central location for other assets like images.

1 comments

Hello,



We've registered your idea in our R&D team backlog for consideration and implementation in future application releases. The task number: PR-31945.



Thank you for helping us to improve our product.

Show all comments

when we tried to create a report it worked normally when the user language was English, however

when a user language Arabic the BP shows the below error



System.NotSupportedException: Unsupported report type '0'

   at Terrasoft.Configuration.ReportEngine.Generate(ReportSettings settings)

   at Terrasoft.Core.Process.Configuration.ReportFileProcessingUserTask.InternalExecute(ProcessExecutingContext context)

   at Terrasoft.Core.Process.ProcessActivity.RunInCultureScope[T](Func`1 action)

   at Terrasoft.Core.Process.ProcessActivity.ExecuteElement(ProcessExecutingContext context)

   at Terrasoft.Core.Process.ProcessActivity.ExecuteItem(ProcessExecutingContext context)

   at Terrasoft.Core.Process.ProcessFlowElement.Execute(ProcessExecutingContext context

Like 0

Like

1 comments

Dear Sayed!

 

We can see that you have already submitted a case for our support team and this case is currently in progress. We will update you in that request. 

 

Have a great day!

Show all comments

We were trying to expose the automatically-created Change Log entities created by Creatio when change tracking is turned on for entities, which generally take the form of SysLog but don't actually get navigable entities created in the package. Is there any way to expose these, for example in a detail on a page in Freedom UI? We wanted to be able to specify our own sorting and filtering logic on the OOTB section, as it's quite frustrating to use - for example, every time you drill into a record, it resets the date range for that record to the current day. You also can't search for specific record IDs that you want to see modifications to unless the record never had a Name filled in which makes trying to see what happened to deleted records you know must have existed very difficult!

 

I tried manually creating an entity over the table name (specifying it as a database view so Creatio didn't try to create or update the actual table) but then adding the change log entity's columns wasn't possible due to them having to have the prefix before the names, which the automatically-created columns of the change log table didn't have (e.g. Id, ChangeTypeId etc). Any way of working around this or a way of adding a change log entity as List in the UI somehow?

Like 1

Like

5 comments
Best reply

You can avoid needing the prefix by clearing the prefix system setting. Then no prefix will be needed.

However, I'm not sure creating the object would be a good idea, perhaps? Seems risky. What I would do is create a database view wrapping the data and then expose that as an object instead. That seems like the best route to me.

Ryan

Any ideas on how this might be possible?

You can avoid needing the prefix by clearing the prefix system setting. Then no prefix will be needed.

However, I'm not sure creating the object would be a good idea, perhaps? Seems risky. What I would do is create a database view wrapping the data and then expose that as an object instead. That seems like the best route to me.

Ryan

Thanks Ryan, sounds like a great idea - then the view over the top of the change log table can have its columns renamed where the prefix isn't present to start with the prefix, which will avoid the need to turn prefix off and on when adding new columns to the change log view entity.

Harvey,

 

Can I ask, what tables the change log is saved to if you know?  Or if there is a view to read the change log?  There is an API I note but I have a scenario where a SQL query is the better option.

Hi Gareth, the name of the tables created for the change log is Sys[object name]Log, so for example for the Account entity, it would be SysAccountLog. Hope this helps!

Show all comments

In the academy documentation, there is limited information about using the ESQ/ORM server-side methods to delete data, with only 2 or 3 toy examples. We need to efficiently delete large volumes of data using server-side ESQ in one of our processes, but we can't see anything about bulk deleting while still firing off any event-based triggers on the entity or generating change log records for it. Obviously the direct Terrasoft.Core.DB delete statement would be very efficient, but would skip the Creatio logic where needed.

 

We've been able to delete records by iterating over a collection of entities matching the required filtering condition retrieved by using GetEntityCollection and then for each entity in the collection, running a FetchFromDB on its Id before deleting it, but this seems like quite a few steps more than should be required and doesn't do it in a batched way.

 

Any help would be greatly appreciated.

Like 0

Like

2 comments

Hello Harvey,

 

You can use out-of-the-box examples of bulk deletion logic. For example we can take the BulkEmailTargetArchiver class and the DeleteArchiveLevel method in it:

private void DeleteArchiveLevel(string sourceSchemaName, string targetSchemaName) {
			int processedRecords;
			do {
				var deleteQuery = new Delete(_userConnection).From(sourceSchemaName)
					.Where("Id").In(new Select(_userConnection)
						.Top(_batchSize)
						.Column("s", "Id")
						.From(sourceSchemaName).As("s")
						.Where().Exists(new Select(_userConnection)
							.Column(Column.Parameter(1))
							.From(targetSchemaName)
							.Where(targetSchemaName, "Id")
							.IsEqual("s", "Id")));
				processedRecords = deleteQuery.Execute(_dbExecutor);
			} while (processedRecords != 0);
		}

This is just one example of the logic. You can use:

 

select * from SysSchemaSource

where Source like '%DeleteQuery%'

 

to get other schemas in the application configuration with delete queries examples and build your own one using all examples you may find in the system.

Hi Oleg,

 

using these Delete classes bypasses Creatio’s internal logic though, right? So change logs will be inaccurate and any BPs that should be triggered on delete would not be triggered etc. This seems risky to me as important processes could hang off this, and I don’t know what other internal aspects of Creatio might be relying on logic that Creatio manages at an application level.

 

Is there any way to bulk delete while respecting that?

Show all comments

If you save message template blocks in either user templates and/or bulk messages, and you need to change a saved block, the changes do not automatically cascade down the templates that use that block. You have to manually open each item and drag and drop the new block into place and delete the old one. This can get extensive when you have 100s of templated messages in use. There should be a save and save as option, where save overwrites the existing block and cascades the changes to any template that currently uses it. 

1 comments

That would save soooo much time ! (= massive added value)

Show all comments

I would like the ability to use a formula to set a field value. An example might be to generate a web-link with a hard-coded base URL with an appended page parameter Id. In the classic UI I could create a CTA that pushed the user back to an internal page that had a hard-coded URL with an appended page record value. That isn't easily done with the new low-code tools for buttons.

 

Another Item might be to transform a field from a date value to months, days, or years instead.

1 comments

I believe a formula editor in business rules is potentially planned for the 8.2 roadmap 🙂 . Could that help ?

Show all comments

Hello,

Is it possible to add an attachment to an email within a campaign?

I know it's possible to do it within a business process, but I want to utilize the marketing campaign features.

Have any of you accomplished this in Creatio?

Thanks.

Like 0

Like

2 comments
Best reply

Hello,

 

Bulk/trigger emails are not supposed to have files attached to them since the email provider can reject sending this email. The only way to have a file (for example pdf file) being attached to an email if it is a trigger/bulk email - is to put this file as a link to the body of an email. Your file should be stored in some public storage that can be accessed by anyone and the link to it will be like this https://test_storage_system/$File/TestSheet.pdf.

 

But if you put this link to the body of an email - recipients will get an error when opening it. So you need to use the OpenElement parameter at the end and make the link look like this

https://test_storage_system/$File/TestSheet.pdf?OpenElement. As a result, users will see opened pdf documents (which they can download after that) that can be accessed from your bulk/trigger email.

Hello,

 

Bulk/trigger emails are not supposed to have files attached to them since the email provider can reject sending this email. The only way to have a file (for example pdf file) being attached to an email if it is a trigger/bulk email - is to put this file as a link to the body of an email. Your file should be stored in some public storage that can be accessed by anyone and the link to it will be like this https://test_storage_system/$File/TestSheet.pdf.

 

But if you put this link to the body of an email - recipients will get an error when opening it. So you need to use the OpenElement parameter at the end and make the link look like this

https://test_storage_system/$File/TestSheet.pdf?OpenElement. As a result, users will see opened pdf documents (which they can download after that) that can be accessed from your bulk/trigger email.

Bogdan,

Hello thank you for your reply. I'll find a way to generate a link of my file and use it within a bulk email

Show all comments

I tried returning false and not calling next?.handle(request), but the record still seems to get saved. In Classic UI it was possible to prevent saving by not calling the this.callParent method, which I believe is somewhat analogous to the next?.handle(request), but I guess not perfectly? Maybe I'm missing something.

Like 1

Like

1 comments
Best reply

Hello Harvey,

It is possible, and you do it in the right way as I can see from the description. To prevent saving you have to declare this handler in the scheme and simply do not call next?.handle(request). 

Hello Harvey,

It is possible, and you do it in the right way as I can see from the description. To prevent saving you have to declare this handler in the scheme and simply do not call next?.handle(request). 

Show all comments

I'm looking to trigger page data validation in a specific circumstance from code. I've found that you can use

request.$context.validate()

within client event handlers to trigger the OOTB fields validation for the page, but this just returns an object representing any/all errors in validation for the data. What would make sense to do in our use case after that would be to trigger the NotifyService message you usually see when saving fails due to such validation checks, but I can't see how to trigger it/how to fetch the string that should be shown in the message. I located a method that looks like it is performing this task for the OOTB save validation, called getValidationErrorMessage, which would be passed the request context and the error object returned by the validate function, but this method doesn't seem to be available for use.

 

Has anybody had any luck with triggering validation in Freedom UI and then displaying the OOTB message based on that validation result? Any help would be greatly appreciated. We're currently running on 8.1.0

Like 2

Like

3 comments

Hello,

If I'm not mistaken, you can use simple OOTB validation that is described here https://academy.creatio.com/docs/8.x/dev/development-on-creatio-platfor…

Hi Dmytro,

 

This doesn't give us a way to trigger the validation manually though unfortunately. What we were trying to achieve was to show the validation message to users without saving/trying to save the record at that point in time. We ended up making our own very basic error message that shows the results returned by

request.$context.validate()

if there are any and stops the user progressing in our custom path, but it would be good to be able to tap into the OOTB error toast message so it's a little more detailed and polished.

Harvey Adcock,

 

Hello! 

Unfortunately, so far, we don't have the functionality to trigger the OOTB validation snackbar-message without saving /trying to save the record. 

We have registered your suggestion, and our R&D team will consider implementing it in future releases.

Thank you for making our product better!

 

Best regards, 

Natalia

Show all comments

Hello,

 

how can I add the multicurrency data to my Opportunity page, like it worked properly in the Classic UI? 

 

For example, I would like to add the Opportunity value in USD, than the system calculate the EUR value, or if I add the value in EUR, the system will calculate the USD value.opps



Thanks, Timea

Like 1

Like

2 comments

Hello,

 

Our R&D team has a task to implement a multicurrency field in Freedom UI in the 8.2 application version.

 

Unfortunately, there are no examples in the documentation or application of implementing it in the current application versions. So please wait until 8.2 when this column will be available out-of-the-box and could be used on the pages.

Thanks for your answer.

Show all comments