Hi Community, 

 

I wanted to show a popup window with input box in business process to fill up some field and then continue with the process. 

Is there a way to do it in Freedom UI. I don't want to use Auto-Generated page as it doesn't open up always.

Any suggestions are really helpful.

 

Thanks

Gargeyi.G

Like 0

Like

1 comments

Hi!
Is it possible to make same date picker as for pipeline but for the List? 

 

Like 1

Like

1 comments

Hello,

In Classic UI, there is unfortunately no option to change the date in the dashboard list. However, in Freedom UI, you have this option:

Link to article: https://academy.creatio.com/docs/8.x/no-code-customization/customizatio…

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

Hi,

How can I restrict the "send mail" action so that for all processes, e-mails can only be sent to addresses with a specific domain, and if another domain is used, a pop-up with an error message appears when saving the process?

 

Thank you.

Like 1

Like

1 comments

Hi Ivan,
 

Unfortunately, it's not possible to display a pop-up showing an error message when attempting to save a process that is restricted to a specific domain. However, you can achieve something similar by implementing your business process logic.

For example, you can store an email address in a parameter and check if the email address contains a specific domain. If it doesn't, you can change the parameter to an empty value. Then, uncheck the "Ignore errors on sending" option in the "Send email" action to display a pop-up if any errors occur. This way, you will receive a pop-up with an error message because having a different domain in the email address will result in an empty recipient, which leads to an error.

Show all comments

Hi, 

    I input the Chinese address on Account, however, it can't show on the map below,  Besides, the Creatio connector, mapsly, is okay to input Chinese address. Please help. 

I user the instance of Version 8.1.1.3635 locating in Japan.

Jeffrey / Taiwan user

Like 0

Like

2 comments

Hello,

Open Street Map is an external service; unfortunately, we cannot control its operation. Please note that this is mentioned in our Academy documentation: [link to documentation].

Now, let's go into more detail about how this service works.

Unfortunately, the Open Street Map service is not predictive, and searching a specific address requires maximum completeness and accuracy in the address input, including city, country, and postal code. However, if any of these indicators are incorrect (for example, a city that does not exist in the country), the search may be conducted based on different parameters.

It's also important to understand that OpenStreetMap is not Google, and the data in its database may differ. Therefore, it's essential to ensure that the data you are searching for exists in this service.

For example, you can notice that the address you provided does not exist in this service, so it displays the nearest address to the one you filled in: [link to OpenStreetMap].

Therefore, when filling in such addresses, you should rely not on Google but on the service used in the integration.

It's also worth noting that the address does not exist in the service even upon clicking on this building directly.

The OpenStreetMap service allows users to contribute data.

Unfortunately, as Creatio vendors, we do not have the ability to influence third-party services.
Our team is actively exploring alternatives to improve this functionality in future versions of the application.

I hope I was able to answer your questions.

Have a great day!

Thank you for your help, hope it will be solved in the next version release.

Show all comments

Hi!

In my currently Creatio implementation, the AccountAddress.FullAddress field has the following automatic format:
Zip + Country + State + City + Address

My Client want to make it different:
Address + City + State + ZipCode + Country 

 

Where should I customize that? have not found a business process that does that. 

 

Thank you in advance,

Ignacio Alvarez.

                                 

Like 2

Like

4 comments
Best reply

Sadly that is hard coded in the BaseAddressEventListener. I do wish it was configurable in some way - I really dislike having the address values backwards. 

Ryan

Sadly that is hard coded in the BaseAddressEventListener. I do wish it was configurable in some way - I really dislike having the address values backwards. 

Ryan

+1 for getting more flexibility, depending on the country we see adresses differently , which is often more in the view of "Address + City + State + ZipCode + Country ". The OOTB order is a weird one.

Thank you for your response! I will try creating a BP triggered but the Address change and rewriting there the FullAddress field. 

Ignacio.

Ended up implementing a custom AccountAddressEventListener module and modifying the FullAddress field the way I wanted. Thank you again Ryan.

    [EntityEventListener(SchemaName = "AccountAddress")]
	public class USAAccountAddressEventListener : BaseEntityEventListener
	{
 
		#region Methods: Private
 
		private void FillFullAddress(Entity entity) {
			entity.LoadLookupDisplayValues();
			var zip = entity.GetTypedColumnValue<string>("Zip").Trim();
            var region = entity.GetTypedColumnValue<string>("RegionName").Trim();
            var city = entity.GetTypedColumnValue<string>("CityName").Trim();
            var address = entity.GetTypedColumnValue<string>("Address").Trim();
            var fullAddress = new[] { address, city, region, zip }.Where(x => x.IsNotNullOrEmpty());
			entity.SetColumnValue("FullAddress", String.Join(", ", fullAddress));
		}
 
		#endregion
 
		#region Methods: Public
 
		/// <inheritdoc cref="BaseEntityEventListener.OnInserting"/>
		public override void OnInserting(object sender, EntityBeforeEventArgs e) {
			base.OnInserting(sender, e);
			FillFullAddress(sender as Entity);
		}
}

 

Show all comments

I have an integration with another vendor, where the integration requires a certificate to carry out the integration. There are 2 certificates for each provider. Strangely only one is running normally, the other is intermittent. sometimes it works, sometimes it doesn't. My question is, is there any special configuration for certificates (.pfx) inside creatio or IIS?

Like 0

Like

1 comments

Hello,

There are no special settings for certificates in Creatio.
 

Connecting a certificate in Creatio is described in the article:

https://academy.creatio.com/docs/8.x/setup-and-administration/on-site-d…

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

Hello,

 

is it possible to log calls from mobile application? When I click on the 'call' icon and dealer is started with selected number, I need to create a record, that call was done from the mobile

 

Thank you!
Vladimir

Like 0

Like

1 comments

Hello Vladimir,

There is no such option for now.

However, 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.

Show all comments

Now that lists have a multi-select feature, how can one access the DataTable_SelectionState for that list and pass it to a BP?  The available button actions don't seem to have an option specific to sections and I'm not yet seeing any samples out there on how to do it in code.  

 

Has anyone tackled this yet?

Like 1

Like

4 comments
Best reply

Hi Jeremy!

 

You can use the following in a request handler for the action buttons for the list - this will return an array of the selected Id values: 

const selectedIds = (await request.$context.DataTable_SelectionState).selected;
// selectedIds will be an array of Id's for any selected records

As for getting them to a process, you could pass in as a string to a param or execute the process separately for each Id. See here for executing a process, if needed. 

More info here: https://customerfx.com/article/getting-multi-select-records-from-a-crea…

Ryan 

Hi Jeremy!

 

You can use the following in a request handler for the action buttons for the list - this will return an array of the selected Id values: 

const selectedIds = (await request.$context.DataTable_SelectionState).selected;
// selectedIds will be an array of Id's for any selected records

As for getting them to a process, you could pass in as a string to a param or execute the process separately for each Id. See here for executing a process, if needed. 

More info here: https://customerfx.com/article/getting-multi-select-records-from-a-crea…

Ryan 

Ryan Farley,

This is exactly what I was looking for.  Thanks Ryan!

This should be available without a line of code.

Franck Lehmann,

 

I believe that's coming in a future update.

Show all comments