Hi,

I have 2 VMs for Creatio v8.0.8.4807:

1 on Windows Server 2016 wirh iis where located all Creatio files

2 on Ubuntu 20 with Postgres 12 + Redis

So after all installation steps i face with a problem 

Config Error   The configuration section 'terrasoft' cannot be read because it is missing a section declaration

Config File   \\?\C:\inetpub\wwwroot\8.0.8.4807_ServiceEnterprise_Softkey_PostgreSQL_ENU\Terrasoft.WebApp\web.config

I have checked web.config and ConnectionString and all seems fine

Also attached the error screen and in rar format web.config + ConnectionString



Thanks in advance

 

File attachments
Like 0

Like

3 comments

Hi @Babyshark! How are you? I strongly recommend to double check the necessary windows componentes: https://academy.creatio.com/docs/7-18/user/on_site_deployment/applicati…

Regards.

Uriel Nusenbaum,

Hi, Uriel

I have checked everything and all seems installed. Unfortunately still have the same problem. No idea how to solve the issue.



Thanks for trying to help me.

You are welcome! If you want you could share a print with the result of this command. Please see the image below:

 

Thank you

Regards.

Show all comments

Hi community,

I'm following the available documentation to achieve this but when I try to create the Replacing view model module the system doesn't find any existing "Parent object" with the code OperatorSingleWindowPage.

I already created a custom package called "Test", as you may notice in the previous screenshots and I can't find anymore information about this problem.

I don't know if the more recent versions of Creatio doesn't support this anymore. I would like to know if I'm doing something wrong and if there is any other way to hide that panel.

The version of the environment I'm using is 8.0.8.4807

Thanks in advance for your help! 

Like 0

Like

2 comments
Best reply

Ryan Farley,

It worked, thank you very much!

Show all comments

Is there a way to deploy the security configuration for Organizational & Functional Roles from Development to Production?

Is some kind of binding needed?

Like 0

Like

2 comments
Best reply

Hello,

Thank you for your question. 

Please, note that it's not recommended to bind users, organizational structure, roles, licenses, and other administrative things to a package. It will be very hard to handle that if you decide to install that package after the moment when the client adjusts that administrative things according to his or her needs directly on the production.

Unfortunately, there is no script we could provide you with but in case you decide to bind this data and transfer it to another environment we suggest checking all changes on the copies before delivering it to the production websites. The organizational structure is in the "SysAdminUnit" and "SysAdminUnitInRole" tables and you are right, it's possible to bind it to the package via SQL scripts only.

Best regards,

Hello,

Thank you for your question. 

Please, note that it's not recommended to bind users, organizational structure, roles, licenses, and other administrative things to a package. It will be very hard to handle that if you decide to install that package after the moment when the client adjusts that administrative things according to his or her needs directly on the production.

Unfortunately, there is no script we could provide you with but in case you decide to bind this data and transfer it to another environment we suggest checking all changes on the copies before delivering it to the production websites. The organizational structure is in the "SysAdminUnit" and "SysAdminUnitInRole" tables and you are right, it's possible to bind it to the package via SQL scripts only.

Best regards,

Mykhailo Zeleniuk,

Thank you Mykhailo for the quick response.  Appreciate the callout of the risks.  Based on this, I see makes sense to stick with managing security configuration directly in Production.

Show all comments

Hi Team,

We have an issue when installing packages in the production environment some js files (Client module) and business Rules are not updated with new fields.

we make an overwrite page and section file properly in the custom package but the issue is only in production can't see new fields and business Rules in page and in js file



also we perform a compile all & Generate for all schemas but still same issue

Like 0

Like

2 comments

Hello,



Could you please elaborate on the issue? 



Are transferring modifications between environments by packages? 

Is it working properly on the website where it was developed?

Bogdan,

Hi  Bogdan, Thanks for reply 

Yes transferring modifications between environments by packages and it is work successfully on my development environment

Show all comments

Hi all,

 

In Freedom UI (and possibly 7.x), you are unable to use the "open new record"  button from a record page of an object where the user only has read only access. To me this doesn't really make sense and I'm hopeful there is a way around it? 

 

For example, the user has read only access to "Account", but the user has write access to "Contact". On the Account page there is a list of contacts (detail) with the button to add new. 

 

The user has the permissions to add this contact, but the system says permissions do not exist to edit object "Account" - even though the user is not editing the object account - it is simply trying to open the new record page for Contact. 

 

Am I missing something here? 



Thanks!

Like 0

Like

2 comments

Hi Harry,

 

I wasn't able to reproduce the issue on the 8.0.7 version, therefore we recommend updating your application to the latest version.

Thanks Bogdan, yes it looks like it was a bug which is now fixed. 

Show all comments

Hi community,

 

How can I automatically change the status of a case after a customer response? 

Out of the box, when a customer responds to a case, the status is changed to Reopened. I want to move the case to my custom status. How can I achieve this?

 

BR Paulina

Like 0

Like

1 comments
Best reply

Good day,

 

Currently, there is some hardcoded logic in the processes that make the case reopen itself. If you are absolutely sure that you are comfortable with a little bit of code rewriting you can absolutely change reopen stage to a custom one.

 

I will leave a link to an article that mentions the processes that you will have to alter here.

Alternatively, you could just rename the stage and build upon it.

 

Thank you,

Good day,

 

Currently, there is some hardcoded logic in the processes that make the case reopen itself. If you are absolutely sure that you are comfortable with a little bit of code rewriting you can absolutely change reopen stage to a custom one.

 

I will leave a link to an article that mentions the processes that you will have to alter here.

Alternatively, you could just rename the stage and build upon it.

 

Thank you,

Show all comments

Hi guys,

I am working on a custom "ContactFieldConverter" [the thing that splits the Contact's FullName imported by excel/ webserveces etc] in order to split new contact's names into "GivenName" and "Surname", and preventing the OOTB function from filling in the "MiddleName" column.

In order to do so, I created a custom ContactGsFieldConverter in my package and inserted the value of the Separator and Converter in the Lookup "ShowNamesBy" and sysSetting "ContactFieldConverter".

[myContactGsFieldConverter code:]

 

 namespace Terrasoft.Configuration {
	using System;
	using System.Linq;
	using System.Text;
	using Terrasoft.Common;
	using Terrasoft.Configuration;
 
	#region Class: myContactGsFieldConverter
 
	/// <summary>
	/// Contact "Full name" field converter class.
	/// Separates "Full name" string using "Given name Surname" rule.
	/// </summary>
	public class myContactGsFieldConverter : IContactFieldConverter
	{
 
		#region Properties: Public
 
		/// <summary>
		/// Contact "Full name" separator characters array.
		/// </summary>
		private char[] _separator = { ' ' };
		public char[] Separator {
			get {
				return _separator;
			}
			set {
				_separator = value;
			}
		}
 
		#endregion
 
		#region Methdos: Public
 
		/// <summary>
		/// <see cref="IContactFieldConverter.GetContactSgm"/>
		/// </summary>
		/// <remarks>
		/// After splitting <paramref name="name"/> first element will be used as <see cref="ContactSgm.GivenName"/>,
		/// Everything else as <see cref="ContactSgm.Surname"/>.
		/// </remarks>
		ContactSgm IContactFieldConverter.GetContactSgm(string name) {
			var sgm = new ContactSgm();
			if (string.IsNullOrEmpty(name)) {
				return sgm;
			}
 
			var array = name.Split(Separator, StringSplitOptions.RemoveEmptyEntries);
			switch (array.Length) {
				case 0:
					return sgm;
				case 1:
					sgm.GivenName = array[0];
					break;
				case 2:
					sgm.GivenName = array[0];
					sgm.Surname = array[1];
					break;
				default:
					sgm.GivenName = array[0];
					StringBuilder sb = new StringBuilder();
					for (var i = 1; i <= array.Length - 1; i++) {
						sb.AppendFormat("{0} ", array[i]);
					}
					sgm.Surname = sb.ToString().Trim();
					break;
			}
			return sgm;
		}
 
		/// <summary>
		/// <see cref="IContactFieldConverter.GetContactName"/>
		/// </summary>
		/// <remarks>
		/// "Full name" string will be created using "Given name [Middle name] Surname" rule.
		/// </remarks>
		public string GetContactName(ContactSgm sgm) {
			var concatChar = Separator.FirstOrDefault();
			return new[] { sgm.GivenName, sgm.MiddleName, sgm.Surname }.ConcatIfNotEmpty(concatChar.ToString());
		}
		#endregion
	}
	#endregion	
}

The converter is not working. I tried to debug and noticed that my contact converter is returned as null to [this is a method in the Contact c# object]: 

public virtual void SetSgm(Contact contact) {
			if (contact == null) {
				return;
			}
			contact.FillSgmFields(GetContactConverter());
		}

Do you know if I need to do something specific in case of separate-assembly package?

ie: Using a different namespace for the converter/ setting the converter path in a different way within the system setting/ recreate the method on the Contact Object in my custom package.





Thank you in advance!

Like 0

Like

4 comments

Hello Federica,

 

I just completed the test - convertor works in the assembly package as well. The code (since we don't need middle name) was:

namespace Terrasoft.Configuration {
    using System;
    using System.Linq;
    using System.Text;
    using Terrasoft.Common;
    #region Class: UsrCustomContactFieldConverter
    /// &lt;summary&gt;
    /// Contact "Full name" field converter class.
    /// Separates "Full name" string using "Surname Given name" rule.
    /// &lt;/summary&gt;
    public class UsrCustomContactFieldConverter : IContactFieldConverter
    {
        #region Properties: Public
        /// &lt;summary&gt;
        /// Contact "Full name" separator characters array.
        /// &lt;/summary&gt;
        private char[] _separator = { ' ' };
        public char[] Separator {
            get {
                return _separator;
            }
            set {
                _separator = value;
            }
        }
        #endregion
        #region Methdos: Public
        /// &lt;summary&gt;
        /// &lt;see cref="IContactFieldConverter.GetContactSgm"/&gt;
        /// &lt;/summary&gt;
        /// &lt;remarks&gt;
        /// After splitting &lt;paramref name="name"/&gt; first element will be used as &lt;see cref="ContactSgm.Surname"/&gt;,
        /// second element as &lt;see cref="ContactSgm.GivenName"/&gt;
        /// &lt;/remarks&gt;
        ContactSgm IContactFieldConverter.GetContactSgm(string name) {
			var sgm = new ContactSgm();
			if (string.IsNullOrEmpty(name)) {
				return sgm;
			}
			var array = name.Split(Separator, StringSplitOptions.RemoveEmptyEntries);
			switch (array.Length) {
				case 0:
					return sgm;
				case 1:
					sgm.GivenName = array[0];
					break;
				default:
					sgm.GivenName = array[0];
					sgm.Surname = array[1];
					break;
			}
			return sgm;
		}
        /// &lt;summary&gt;
        /// &lt;see cref="IContactFieldConverter.GetContactName"/&gt;
        /// &lt;/summary&gt;
        /// &lt;remarks&gt;
        /// "Full name" string will be created using "Surname Given name" rule.
        /// &lt;/remarks&gt;
        public string GetContactName(ContactSgm sgm) {
            var concatChar = Separator.FirstOrDefault();
            return new[] { sgm.Surname, sgm.GivenName }.ConcatIfNotEmpty(concatChar.ToString());
        }
        #endregion
    }
    #endregion
 
}

and then this convertor was registered in the database (ShowNamesBy table). As a result newly created contacts where full name is Test 1 2 had the first (Test) and last (1) name only while middle name was skipped.

Hi Oleg Drobina,

Could you share with me the record registered in the database table ShowNamesBy for a separate assembly pkg?

Hence, in case the site receives a Contact "Name": "Federica Rose Cattani" I don't want to "lose" the "MiddleName" but I want it to be concat to the "Surname". That's what I did in the converter shared. 

Federica,

 

Hi,

 

Sorry, I guess I was wrong with the package. Tested the same approach today and it didn't work until I unchecked the "Compile into separate assembly" checkbox in the package settings. So in your case you need to also do the same to make the converter work.

 

The insert was:

INSERT INTO ShowNamesBy (Name, Separator, Converter) VALUES (N'UsrCustomContactFieldConverter', N' .,;', N'Terrasoft.Configuration.UsrCustomContactFieldConverter');

 

Oleg Drobina,

Ok! In my case I can't "undo" the separate assembly since it contains customer's implementation and separate assembly it's way faster to compile.

The actual possible workaround would be to implement a second package without separate assembly containing only the custom ContactGsFieldConverter, am I correct?

Show all comments

Hello,

 

I am willing to add a process for validation on Save for the Case object as shown in figure attached.

 

Any insights please?

 

Thanks,

Like 0

Like

1 comments

Hello,

 

The following instructions can help you to achieve the result you are looking for: validators schema section

 

Show all comments

Hello Community

I have two queues(Sales queue,verification queue).When i change the dcm stage to Nurturing it is adding to sales queue and when i change the stage to Awaiting sale it is adding to verification queue as expected . But when i change the stage to Not interested it is not added to the sales queue. Is it possible to add two stages to one queue. If so let me know.

TIA. 

File attachments
Like 1

Like

3 comments

Hello!

 

Sure, you should change the filter in  "Sales" queue.

You can select several stages by clicking on the lookup (simply click on "Nurturing") in the filter settings.

Please find the video on how to do it for the case stage here:

Best regards,

Kate

 

Hi Kate,

 

I have done the same, you can find it in the below image. But when the DCM stage is changed to Not Interested it is not adding to sales queue.

Hello Manne Pavan kumar,

 

Thank you for your feedback.

Please try restarting the queue to apply the filter.

For example, do the following:

1) Change the status to "Planned".

2) Save.

3) Change the status to "In progress"

4) Save.

 

Best regards,

Kate

Show all comments

Hello,

 

Can you advise how I would go about binding my custom excel reports to a package? There is no 'bind data' option on the excel reports section.

 

Thanks

Like 0

Like

1 comments

 

Hi Lewis,

 

I understand that you would like to bind custom reports from Excel reports builder to Creatio.

In that case, you have to bind data from three main objects (see the attached screenshot) using out-of-the-box data binding tools.

To bind columns and filters setup to Excel report, you have to bind data from SysProfileData table where key like 'IntExcelReportFilterDetail' or key like 'IntExcelReportPageIntRelatedSchemasDetail'.

 

 

Show all comments