Question

I got a strange error when trying to open Preconfigured page on UAT envirinment
no changes on the process or page has been made recenty.
The page has not been even started

Terrasoft.Common.InvalidObjectStateException: Column Id value cannot be obtained because it has not been loaded.
 

Like 0

Like

2 comments

Hello,

 

Please make sure to contact our support team directly at support@creatio.com and describe this issue in more detail, so we could help resolve it.

thx Mira.
it correctet itself.
its looks the engin cant localize any paremeters or page.
But its start working

regards
Tomek

Show all comments

Hello Creatio Community,

I can not add records in a custom detail added in the Account section.

When i Click the plus sign of the detail nothing happens.

From F12 i get a very generic issue (Can not read properties of undefined (reading ' toLowerCase'). How can i further debug/solve the issue ?

Thank you

Sasori

Like 0

Like

2 comments

Hello Sasori,

 

unfortunately, it is quite difficult to analyze the issue like as there might be too many different reasons for such an error.

 

I kindly recommend you creating a separate support case and our team will help resolving the problem you are facing.

 

Kind regards,

Gleb.

Thank you Gleb :)

Show all comments

Good day!


I need help to understand an error during install of package.

Terrasoft.Core.Packages.Exceptions.InvalidDescriptorInFileSystemException: Invalid discripter: 
Reading of property "Type" is not supported 
Path: UsrTest ---> Terrasoft.Common.InvalidObjectStateException: Reading of property "Type" is not supported
   at Terrasoft.Core.Packages.PackageFileStorage.Read(DataReader reader, Package package) 
   at Terrasoft.Core.Packages.PackageFileStorage.<LoadPackageDescriptor>b__201_0(JsonDataReader reader, Package package) 
   at Terrasoft.Core.Packages.PackageFileStorage.InitializeDescriptor[T](Action2 initializeDescriptor, String descriptorFilePath, T descriptor) 
   at Terrasoft.Core.Packages.PackageFileStorage.CreatePackageDescriptorBasedOnDirectory(String directoryPath, Action2 initializeDescriptor) 
   --- End of inner exception stack trace --- 
   --- End of inner exception stack trace --- 
   at Terrasoft.Core.AppInstallation.Packages.Operations.PackageZipOperations.ThrowIfPackageStorageItemErrorsExist(PackageStorage packageStorage) 
   at Terrasoft.Core.AppInstallation.Packages.Operations.PackageZipOperations.Load() 
   at Terrasoft.Core.AppInstallation.Packages.Backup.ZipPackageBackupManager.ComposePackages(String sourcePackagesPath, String tempFilesPath) 
   at Terrasoft.Core.AppInstallation.Packages.Backup.ZipPackageBackupManager.CreateBackup(String sourcePackagesPath, String tempFilesPath, String backupPath, String code) 
   at Terrasoft.Core.ServiceModelContract.PackageInstaller.PackageInstallerServiceInternal.<>c__DisplayClass25_0.<CreateBackup>b__0() 
   at Terrasoft.Core.ServiceModelContract.PackageInstaller.BaseInstallerServiceInternal.InvokeWithLogging(Action action) 

Install log is in the attachment.

It works without any errors and is imported correctly in other systems (on versions higher).

Is there something I can change in the package? Or is it a problem in the system I import package in?   
How can I fix this?

Thank you in advance!

File attachments
Like 1

Like

2 comments

Hello,

 

The cause of the problem is the difference between the versions of websites of Сrеаtio that you used during the development of your package versus installation.

Kalymbet Anastasia,

Dear Anastasia, 

Thank you for expllanaition. Is there any possibility to make my package suitable for versions lower than original?

Show all comments

I'm having an issue where no previously created activities are appearing in the mobile application when toggling to Offline Mode.

 

Can anyone provide insight on where to look for a fix?

Like 1

Like

1 comments

Stephen, 

Just to clarify, so the issue is when you create an activity using an Online mode and switching to Offline, the activities you have created previously are not available in offline mode? 

Kind regards,
Roman

Show all comments

 

Can Creatio work with 3 RMQ instances without a load balancer? Is there any documentation on this?

Like 0

Like

1 comments
Best reply

Hell Alex,

RABBITMQ does not require load balancers for its work.

 

If the question is how to set up deployment with high availability, RabbitMQ cluster mode is used for this.

 

Several nodes are configured as a cluster and data are replicated between them automatically. More information can be found in the article Clustering Guide - RabbitMQ.

 

As for the Docker/Kubernates is, we can recommend images from the bitnami company - containers/README.md at main · bitnami/containers · GitHub, clustering is already configured there and there is also good documentation.

 

Creatio uses Quorum Queues — RabbitMQ, so you don't need to configure anything besides connecting to the cluster. But this applies specifically to the work of creatio with RMQ. If the question is about the mail microservice, this paragraph is not relevant.
 

Hell Alex,

RABBITMQ does not require load balancers for its work.

 

If the question is how to set up deployment with high availability, RabbitMQ cluster mode is used for this.

 

Several nodes are configured as a cluster and data are replicated between them automatically. More information can be found in the article Clustering Guide - RabbitMQ.

 

As for the Docker/Kubernates is, we can recommend images from the bitnami company - containers/README.md at main · bitnami/containers · GitHub, clustering is already configured there and there is also good documentation.

 

Creatio uses Quorum Queues — RabbitMQ, so you don't need to configure anything besides connecting to the cluster. But this applies specifically to the work of creatio with RMQ. If the question is about the mail microservice, this paragraph is not relevant.
 

Show all comments

Hello Creatio Community,

I have made the Activity participant detail (Activites section) as an editable list.

When I add a new record and click on the added row ( the active row doesnt behave normally) as editable lists in other sections. I think is probably sort of bug of the system, because i have tried in fresh installations and the same thing happens.

 

I overcome this by refreshing the page so that the added row behaves normaly.

I manage to refresh the page by sending a message from a business process to the Front-End and subscribe to the message. But i refresh the whole Activity (entity), i want to refresh only the Participant detail.

This snippet is implemented in ActivityPageV2

			init: function() {
				this.callParent(arguments);
				// register our onProcessMessageReceived function to get messages from the server
				Terrasoft.ServerChannel.on(Terrasoft.EventName.ON_MESSAGE, this.onProcessMessageReceived, this);
			},
			onProcessMessageReceived: function(scope, message) {
				debugger;
				var sender = message &amp;&amp; message.Header.Sender;
					if (sender === "RefreshDetailActivityParticipantFromBP") { //"SMRefreshPaged"
					this.reloadEntity();
				}
			}

How can i manage to refresh only the Participant detail list?

I have tried also this.reloadGridData() and this.updateDetail({reloadAll: true});&nbsp;without success.

Like 0

Like

2 comments

this.reloadGridData()  is not defined in the ActivityPageV2. (console)

I think that the proper solution involves using the this.reloadGridData()  method ? Should i just add the :

mixins: {
			GridUtilities: "Terrasoft.GridUtilities"
		}

in the ActivityPageV2 ?

Any updates on this Creatio team ?

Show all comments
Question

Hi;
I try to redirect sendig eMails from Creatio from SMTP account to our custom api responsable for communication in company

Is this easy way to do this not changing Creatio process working on SendEmail element

 

Regards;
Tomek Branicki

Like 0

Like

2 comments

Hello Tomasz,

 

unfortunately, it is not quite clear what exactly you want to achieve.

Creatio sends emails where you want it to, without redirects.

 

Kindly ask you to explain in details what is the goal of the operation.

 

Regards,

Gleb.

Hi,Gleb,
Thanks

Creatio use the ExchangeListnerApi which use the SMTP based Account for sending email
I try to redirect the request to Listner to our custom rest api creating for communication manegement

Show all comments

Hey,

I'm trying to implement business task when we need to send a datalist/table in email template.
I was surfing the academy and came into this https://community.creatio.com/questions/how-display-datalist-email-template 

But i faced a little problem,
When inserting my macros to email template, the message itself not recognizing the html code.

Any suggestions how to fix it? 
Thanks

Like 0

Like

6 comments
Best reply

Oleksii Protsiuk,

 

Hello,

 

&amp;lt; means that there should've been < in the code. I believe there is an issue with the html code translation in your template. You need to replace:

 

&amp;lt; with <

&amp;gt; with >

&amp;gt with > either

 

using Notepad++ replacement for example (I've modified the code you sent using this text editor). As a result I received a correct code, but after that the HTML should be checked. This can be done via the tests in Visual Studio and receivig the HTML code result and verifying it for example here. You can use some test values instead of entity.GetColumnValue(colPercentage.Name).ToString() to verify the code.

Dear Oleksii,

 

Thanks for reaching out.

 

Could you please provide us an example of macros you are trying to insert into your email template?

 

Thanks in advance. 

 

Best regards,

Anastasiia

Anastasiia Marushenko,

namespace Terrasoft.Configuration
{
	using System;
	using Terrasoft;
	using Terrasoft.Common;
	using Terrasoft.Core;
	using Terrasoft.Core.Entities;
	using Terrasoft.Core.DB;
	using Newtonsoft.Json;
 
	public class NewEmailMacros : IMacrosInvokable
    {
        public UserConnection UserConnection {
            get;
            set;
        }
        public string GetMacrosValue(object arguments) {
//        	var sjson = JsonConvert.SerializeObject(arguments);
//        	var templ = new {Key = String.Empty, Value = String.Empty};
        	var currencyId = "c1057119-53e6-df11-971b-001d60e938c6";
        	var esq = new EntitySchemaQuery(UserConnection.EntitySchemaManager, “Object"); 
            var colCode = esq.AddColumn("Column1"); 
            var colPercentage = esq.AddColumn("Column2"); 
            var colCurrency = esq.AddColumn("Column3");
            var colType = esq.AddColumn("Column4");
            var colDate = esq.AddColumn("Column5");
	        var colDay = esq.AddColumn("Column6"); 
          	var CurrencyFilter = esq.CreateFilterWithParameters(
    		FilterComparisonType.Equal, "Column3.Id", currencyId); 
	          esq.Filters.Add(CurrencyFilter);
           EntityCollection entities = esq.GetEntityCollection(UserConnection);
 var html = "&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Percentage&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;th&amp;gt;Code&amp;lt;/th&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Currency&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Type&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Date&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Day&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt";
            foreach (Entity entity in entities) {
 	          	html += "&amp;lt;tr&amp;gt;";
 	          	html += "&amp;lt;td&amp;gt;" + entity.GetColumnValue(colPercentage.Name).ToString() + "&amp;lt;/td&amp;gt;";
            	html += "&amp;lt;td&amp;gt;" + entity.GetColumnValue(colCode.Name).ToString() + "&amp;lt;/td&amp;gt;";
     	      	html += "&amp;lt;td&amp;gt;" + entity.GetColumnValue(colCurrency.Name).ToString() + "&amp;lt;/td&amp;gt;";
      	     	html += "&amp;lt;td&amp;gt;" + entity.GetColumnValue(colType.Name).ToString() + "&amp;lt;/td&amp;gt;";
         	  	html += "&amp;lt;td&amp;gt;" + entity.GetColumnValue(colDate.Name).ToString() + "&amp;lt;/td&amp;gt;";
				html += "&amp;lt;td&amp;gt;" + entity.GetColumnValue(colDay.Name).ToString() + "&amp;lt;/td&amp;gt;";
            	html += "&amp;lt;/tr&amp;gt;";
            }
				html += "&amp;lt;/table&amp;gt;";
            	return html;
        }
    }
}

 

Anastasiia Marushenko,

I dont know why it kept changing the code, and adding the amp*

html += "&lt;/table&gt;";
 

 

Oleksii Protsiuk,

 

Hello,

 

&amp;lt; means that there should've been < in the code. I believe there is an issue with the html code translation in your template. You need to replace:

 

&amp;lt; with <

&amp;gt; with >

&amp;gt with > either

 

using Notepad++ replacement for example (I've modified the code you sent using this text editor). As a result I received a correct code, but after that the HTML should be checked. This can be done via the tests in Visual Studio and receivig the HTML code result and verifying it for example here. You can use some test values instead of entity.GetColumnValue(colPercentage.Name).ToString() to verify the code.

Oleg Drobina,
Thank you very much!
That helped.

You can use the Enhanced template macros for Creatio app from Marketplace.
You won't need to write additional code.
https://marketplace.creatio.com/app/enhanced-template-macros-creatio

Show all comments

Is it possible to trigger process's signal from backend (C# code)? 

For example, I modify record of schema in C# code and I want process to become triggered when the record was modified.

I have tried to make it as shown on a picture but it didn`t work. It worked only if the record was changed from UI side.

I would be very appreciated for knowledgebase link concerning this question.

Thank you in advance.

Like 0

Like

3 comments

What does the C# code look like that you're using to trigger it?

Can you provide more details on your custom code since I've created a simple method in the Account object that modifies a contact in the process inside the Account object (using onInserted method):

var contactEntity = UserConnection.EntitySchemaManager.GetInstanceByName("Contact");
			var contactRecord = contactEntity.CreateEntity(UserConnection);
			contactRecord.FetchFromDB("Id", new Guid("9c4111d2-cbf1-49f2-8c2b-00c6a82547c0"));
			contactRecord.SetColumnValue("Name", "From the code");
			contactRecord.Save();

and it triggers the business process with the start signal that is executed when the Contact name is modified. Maybe your logic is not modifying the record in the manner that should trigger the business process.

UsrContactSaved - the process on Contact schema that triggers when Contact record is saved ContactUtilities.ChangeContactStatus - the method that should change Status on schema Contact (this method is scheduled by job)

UsrOnContactStatusChanged - the process that should be triggered when the Status field in Contact schema was changed (but it doesn`t trigger)

So, when UsrContactSaved process triggered, there is a code in it that schedule a job that must call ContactUtilities.ChangeContactStatus in 10 minutes. After 10 minutes triggers ContactUtilities.ChangeContactStatus method and it changes Status via method in C# code.

In conclusion, status changed but UsrOnContactStatusChanged didn`t work. Expected result: UsrOnContactStatusChanged has to be triggered after work of UsrChangeContactStatusProcess process.

Show all comments

We have cloned the Ext dev(with no internet access) from our internal dev env which is working, but now on external dev, i am not able to log in. 

Like 0

Like

2 comments

Hello Adil,

 

Please double-check all features that are enabled for the machine where IIS server is deployed (according to the Academy article here). Once done, please redeploy on-site application from scratch using clean binary files (which can be received from the support team at support@creatio.com).
It is as a must to use clean binary files (not those that can be provided by support in case you request database backup of some application to deploy it locally, but out-of-the-box files).

Also, please double-check the connection parameters to the database in connection. Since incorrect database connection parameters, the Strings config file can also lead to login issues.
And finally, please check if you haven't specified HTTPS as a redirect method for your application in IIS and if it was appropriately configured in the configuration files.

localhost cannot find ViewModule.aspx after login.

Show all comments