Hi guys! There is a question. It is necessary to establish rules for the segmentation of the counterparty. If he has more than $10,000 revenue, then assign a segment in the directory with the value A, if the revenue field is less than $1,000, then segment B. How do I do this? In the "event - signal" business process, there is no sign greater than or equal to, only flat or uneven. I didn't find anything that would help me in setting up business rules either. Who can tell you? Version 7.18

Like 0

Like

1 comments

Hello,

You need to check whether your Revenue field is of type "Integer," as it seems that a text field is being used.
 

If you specifically need to use a text field, you will need to parse this field into an integer in formula and use a formula in the Conditional flow to evaluate this value using ">" or "<".

https://community.creatio.com/articles/how-convert-string-integer
https://academy.creatio.com/docs/8.x/no-code-customization/8.1/bpm-tools/process-elements-reference/flows/conditional-flow
 

Thank you for reaching out!

Show all comments

[ec2-user@ip-x-x-x-x ~]$ COMPlus_ThreadPool_ForceMinWorkerThreads=100 dotnet Terrasoft.WebHost.dll

2024-11-27 00:56:21,031 Application starting

Unhandled exception. System.Security.SecurityException: System login error. Error has been recorded in system log of the server. Please contact your system administrator.

---> Npgsql.PostgresException (0x80004005): 28000: no pg_hba.conf entry for host "", user "postgres", database "creatio", no encryption

   at Npgsql.NpgsqlConnector.DoReadMessage(Boolean async, DataRowLoadingMode dataRowLoadingMode, Boolean readingNotifications, Boolean isPrependedMessage)

   at Npgsql.NpgsqlConnector.ReadMessage(Boolean async, DataRowLoadingMode dataRowLoadingMode, Boolean readingNotifications)

   at Npgsql.NpgsqlConnector.ReadMessage(Boolean async, DataRowLoadingMode dataRowLoadingMode, Boolean readingNotifications)

   at Npgsql.NpgsqlConnector.ReadExpecting[T](Boolean async)

   at Npgsql.NpgsqlConnector.Authenticate(String username, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)

   at Npgsql.NpgsqlConnector.Open(NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)

   at Npgsql.ConnectorPool.AllocateLong(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)

   at Npgsql.NpgsqlConnection.Open(Boolean async, CancellationToken cancellationToken)

   at Npgsql.NpgsqlConnection.Open()

   at Terrasoft.Core.DB.DBExecutor.b__23_0() in /opt/buildagent/work/ApplicationCoreLinux/TSBpm/Src/Lib/Terrasoft.Core/DB/DBExecutor.cs:line 224

   at Polly.Policy.<>c__DisplayClass109_0.b__0(Context ctx, CancellationToken ct)

   at Polly.Policy.<>c__DisplayClass103_0.b__1(Context ctx, CancellationToken ct)

   at Polly.NoOp.NoOpEngine.Implementation[TResult](Func`3 action, Context context, CancellationToken cancellationToken)

   at Polly.Policy.<>c.b__103_0(Action`2 action, Context context, CancellationToken cancellationToken)

   at Polly.Policy.Execute(Action`2 action, Context context, CancellationToken cancellationToken)

   at Polly.Policy.Execute(Action action)

   at Terrasoft.Core.DB.RetryDBOperation.Execute(Action operation) in /opt/buildagent/work/ApplicationCoreLinux/TSBpm/Src/Lib/Terrasoft.Core/DB/RetryDBOperation.cs:line 29

   at Terrasoft.Core.DB.DBExecutor.RetryOnFailure(Action action) in /opt/buildagent/work/ApplicationCoreLinux/TSBpm/Src/Lib/Terrasoft.Core/DB/DBExecutor.cs:line 432

   at Terrasoft.Core.DB.DBExecutor.get_DBConnection() in /opt/buildagent/work/ApplicationCoreLinux/TSBpm/Src/Lib/Terrasoft.Core/DB/DBExecutor.cs:line 223

   at Terrasoft.Core.DB.DBExecutor.PingDB(UserConnection userConnection) in /opt/buildagent/work/ApplicationCoreLinux/TSBpm/Src/Lib/Terrasoft.Core/DB/DBExecutor.cs:line 1126

   --- End of inner exception stack trace ---

 

 

I get this error when i'm trying to start the application..the connectivity is all fine fro the server..

Like 0

Like

1 comments

Hello!

 

The error you encountered suggests that the application could not connect to the PostgreSQL database because of a misconfiguration in the pg_hba.conf file.

 

Error message: "28000: no pg_hba.conf entry for host "", user "postgres", database "creatio", no encryption" indicates that either The client IP or hostname does not match any rule in the pg_hba.conf file, or The database connection parameters (host, user, or authentication method) do not align with the allowed configurations in the PostgreSQL server.

 

Possible causes:

  1. 1) The server does not have a rule allowing connections for the postgres user to the creatio database from the host making the request
  2. 2) The host parameter appears empty (host "" in the error). This might happen if the application’s configuration is missing or incorrect
  3. 3) The PostgreSQL server is not accessible from the host where the application runs

 

To resolve the issue, please try the following:

  1. 1) Update pg_hba.conf file by adding a rule to allow the required connections. For example,
  2. # TYPE     DATABASE          USER           ADDRESS     METHOD
  3. host        youdatabase      postgres             IP                md5

2) Verify Connection String, specifically:

<add name="db" connectionString="Server=[Database server name];Port=31436;Database=[Database name]; User ID=[Name of the user who will connect to the DB];password=[Password of the user who will connect to the DB];Timeout=500; CommandTimeout=400;MaxPoolSize=1024;" />

 

Have a nice day!
 

Show all comments

Hi there, i'd like to know how to get the sales and leads related with a contact. I'm using odata to get the contacts by using the following   endpoint 'mycrm_url//0/odata/Contact' this return a collection of contacts and i'd like to get the sales and leads related with every contact, are there endpoints to achieve this ?

 

  • - Best regards
Like 0

Like

1 comments

Hello,

You can filter the Leads or Opportunities you need using OData filters.

Here are some examples of OData queries:
https://documenter.getpostman.com/view/10204500/SztHX5Qb?version=latest

Show all comments

I need to open a lookup page for editing when a button is clicked, But l can't find the way to get a direct link (url) to a lookup page (in a classic view)

Like 0

Like

1 comments

Hi,
 

Unfortunately, this is not possible  to open the directory content without context, as the lookup does not have a separate link; the content of the lookup is dynamically generated by the code based on the context of the specific lookup after it is clicked.
 

Therefore, the page will always be the same, but the content will depend on which lookup you clicked on in the lookup section.


 

As a workaround, you can create sections for the required lookups and generate a link to the section pages.

Best regards,
Pavlo!

Show all comments

Hello,

 

Is there a way to configure a field's logic in client module like,

If condition A, use lookup A

if condition B, use lookup B

 

Can you provide a sample code for it? 

 

Thank you!

Like 0

Like

1 comments

Hello, 

You can use the business rules for this purpose and do it with no-code methods. Please check the article "Set up business rules" for the newest versions of the Creatio application. 

Show all comments
Question

Hi Team,

 

We notice below redis timeout error in application logs - 

Redis LogRetryData - Retry operation. RetryCount = [1]. Sleep duration = [00:00:05]. Causing exception: 

[StackExchange.Redis.RedisTimeoutException: Timeout performing HMGET (5000ms), next: HMGET 0f21kpmv0wrwvnntd5cf3ah2:Cache, inst: 1, qu: 0, qs: 26, aw: False, rs: ReadAsync, ws: Idle, in: 188, in-pipe: 35, out-pipe: 762, serverEndpoint:, mgr: 10 of 10 available, clientName: , IOCP: (Busy=48,Free=952,Min=4,Max=1000), WORKER: (Busy=49,Free=32718,Min=4,Max=32767), v: 2.0.601.3402 (Please take a look at this article for some common client-side issues that can cause timeouts: https://stackexchange.github.io/StackExchange.Redis/Timeouts)

   at StackExchange.Redis.ConnectionMultiplexer.ExecuteSyncImpl[T](Message message, ResultProcessor`1 processor, ServerEndPoint server)

   at StackExchange.Redis.RedisBase.ExecuteSync[T](Message message, ResultProcessor`1 processor, ServerEndPoint server)

   at StackExchange.Redis.RedisDatabase.HashGet(RedisKey key, RedisValue[] hashFields, CommandFlags flags)

   at Terrasoft.Redis.StackExchangeAdapters.RedisClientAdapter.GetValuesFromHash[TValue](String hashId, String[] keys)

   at Terrasoft.Redis.BaseRedisStore.<>c__DisplayClass22_0.b__0()

   at Polly.Policy.<>c__DisplayClass119_0`1.b__0(Context ctx, CancellationToken ct)

   at Polly.Policy.<>c__DisplayClass129_0`1.b__0(Context ctx, CancellationToken ct)

   at Polly.RetrySyntax.<>c__DisplayClass12_1.b__1(Context ctx, CancellationToken ct)

   at Polly.Retry.RetryEngine.Implementation[TResult](Func`3 action, Context context, CancellationToken cancellationToken, IEnumerable`1 shouldRetryExceptionPredicates, IEnumerable`1 shouldRetryResultPredicates, Func`1 policyStateFactory)]

 

A few articles found online suggested extending timeout on redis client using connectTimeout to more than default 5000ms. The timeout parameter was added in the connection string and set to 10000. Yet, we see the same type of timeout error referencing 5000ms. 

Connection string for redis as follows- 

; db=; port=6379; connectTimeout=10000; maxReadPoolSize=250; maxWritePoolSize=250; " />

Has anyone come across this issue before? Any insight is very much appreciated.

 

Like 0

Like

1 comments

Greetings!
 

This issue occurs due to a heavy load on the website.

We noticed that you recently contacted our support regarding this matter. After thoroughly examining the information you provided, we concluded that the issue likely arises because there is insufficient processing power during operations. You need to monitor performance. This error is related to performance, CPU load, or it could be a general (temporary server issue) due to server overload. At some point, certain operations slow down the system and degrade performance, affecting everything—logs and Redis included.
 

For example, there could be throttling on the website, insufficient CPU resources, or many concurrent threads, which could lead to a lack of retries. If you carefully review your error, you'll notice that typically only one retry is attempted—meaning the operation failed once and then a retry occurred. In this case, these are not critical errors but rather a consequence of what’s happening on the server. So, this issue is a result of a performance problem, and it could also be related to a filled Redis database. However, you need to analyze the overall website performance.


I also noticed that you changed the connectionStrings, but it is set in the web.config file in the Redis configuration.


In the Redis configuration, the connectionStringName="redis", the default timeout is set to 30 seconds.



Regards,
Orkhan
 

Show all comments

Hi Team,

 

I'm trying to set up a report for Order section using FastReport. The intent is for users to apply the required date filter on the Order section and generate the report for that period. For eg, order report for month of April, May etc.

The problem I'm facing is that I'm unable to show the selected date period on the report heading (eg. Order Report 04/01/2024 - 04/30/2024). All the rest of the data populates fine. Not sure if there is a way to pass them as parameters to the report template.

Can anyone suggest a way to achieve this?

Like 0

Like

1 comments

Hi, 

 

To display the selected date range in the report heading using FastReport, you'll need to pass the date parameters to the report and then use them in the report's header. 

 

In this matter, new logic for the interaction of these fields will need to be implemented and specified in the data provider. Unfortunately, we do not have ready-made solutions for this implementation. This approach still needs to be tested.

Show all comments

Hello, 

any support with runtime error? Can you share your experience?

 

Description: An application error occurred on the server. The current custom error settings for this application prevent the details of the application error from being viewed remotely (for security reasons). It could, however, be viewed by browsers running on the local server machine.

Details: To enable the details of this specific error message to be viewable on remote machines, please create a tag within a "web.config" configuration file located in the root directory of the current web application. This tag should then have its "mode" attribute set to "Off".

Like 0

Like

1 comments

Hello,

 

Please contact out support team directly at support@creatio.com so we could analyze this issue.

Show all comments

Hello! Does anyone know how to add an iframe to a specific entry in the details?
It’s just that an iframe should appear inside a specific entry below the values. It will appear when a detail entry is active.

Thank you in advance!

Like 0

Like

1 comments

Hello.
In the current version of Creatio, it is not possible to add an iframe directly into a details column. However, you can add a button to a grid detail that opens a modal window containing an iframe. I followed the guidelines from - here.

I added an "Account Detail Test" to the Account section with a "Link" column and a "View Frame" button. When this button is clicked, it sets the detail record field values into session storage. Here is an example of the logic I implemented:1
Code of UsrFrameControl:
1
Code of UsrModalPage:
1
Code of test detail on account page:
2
The main point is to store the link in session storage. To achieve this, I added a "Link" column to the detail. In the FrameControl module, you read this value and set it as the src attribute of the iframe.

Hope this helps!
 

Show all comments

Hi all,

 

Further to the thread below, is it possible to make a button added to the active row of a detail conditional?
Add button into the active row of detail | Community Creatio

I want to make the button enabled on a certain condition but when I add the enabled and visible values to the Diff of the datagrid, I get no result (tried passing "enabled": false to check it wasn't an issue with the CanSplitFlights method)

define("UsrFlightsDetail", ["ProcessModuleUtilities"], function(ProcessModuleUtilities) {
	return {
		entitySchemaName: "UsrFlights",
		details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
		diff: /**SCHEMA_DIFF*/[
			{
				"operation": "merge",
				"name": "DataGrid",
				"parentName": "Detail",
				"propertyName": "items",
				"values": {
					"activeRowActions": [],
					"activeRowAction": {"bindTo": "onActiveRowAction"}
				}
			},
			{
				"operation": "insert",
				"name": "DataGridActiveRowSplitFlights",
				"parentName": "DataGrid",
				"propertyName": "activeRowActions",
				"values": {
					"className": "Terrasoft.Button",
					"style": Terrasoft.controls.ButtonEnums.style.BLUE,
					"caption": "Split flights",
					"tag": "SplitFlights",
					"visible": true,
					"enabled": CanSplitFlights
				}
			}
		]/**SCHEMA_DIFF*/,
		methods: {
            CanSplitFlights: function() {
                var FlightTypeId = this.getActiveRow().get("UsrFlightType");
				var FlightTypeValue =  FlightTypeId  && FlightTypeId.value;
 
				if (FlightTypeValue == '3a0d3b1b-9af5-472a-bac9-e785500ac4e9') {
					return true;
                }
                return false;
            },
			onActiveRowAction: function(SplitFlights) {
				switch (SplitFlights) {
					case "SplitFlights":
						this.onSplitFlights();
						break;
					default:
						break;
				}
			},
			onSplitFlights: function(){
				ProcessModuleUtilities.executeProcess({
					sysProcessName: "UsrSplitFlights",
					parameters: {
						FlightId: this.getActiveRow().get("Id")
					}
				});
			},
Like 1

Like

2 comments
Best reply

I've done some hacky options that sort of worked manipulating the button elements in the dom on row click, but I've never been able to have it work binding an attribute to the visible/enabled of the row buttons and change row by row. That's never worked for me. Instead I typically do a check in the code that executes on click to let the user know if it's not available for the row. I'd love to know if there's some way for this to work, but from experience it doesn't work. 

I've done some hacky options that sort of worked manipulating the button elements in the dom on row click, but I've never been able to have it work binding an attribute to the visible/enabled of the row buttons and change row by row. That's never worked for me. Instead I typically do a check in the code that executes on click to let the user know if it's not available for the row. I'd love to know if there's some way for this to work, but from experience it doesn't work. 

Ryan Farley,

Thanks Ryan. I'll call it quits then and add a check on click.

Honestly, it's more of an aesthetic requirement than a functional one. Ideally I won't offer the user a button that they can't click.

Show all comments