I’m currently working on establishing a two-way connection between two applications in Creatio for adding and modifying records.
 

  1. One-Way Connection: I successfully created two business processes that allow for one-way synchronization of records.
  2. Two-Way Connection Issue: However, when I attempt to set up the two-way synchronization, it leads to the creation of multiple records in an infinite loop instead of just one record being created or updated.

 

Could anyone provide guidance on how to avoid this infinite loop in a two-way connection? Any insights on best practices for implementing two-way synchronization in Creatio would also be greatly appreciated.
 

I can provide screenshots of my setup for further clarification if needed. I followed the same process for the one-way connection as shown in the attached business process screenshot.

Like 0

Like

2 comments

Good day,

The issue you're encountering is related to the number of records being passed to the subprocess. Here are some suggestions for resolving this situation:

1. Add or adjust recursion trigger conditions:
   - For instance, if the trigger is based on changes to the `Contact.Age` field, consider adding a condition to ensure the age is not empty before initiating recursion.

2. Redesign the process to avoid recursion:
   - Replace recursion with iteration: Instead of processing records one by one with recursion, you can read and process multiple records in a sequential manner, ensuring that you do not handle a new record until the current one is fully processed.
   - Consolidate changes into a single process: Rather than reacting to various changes across different processes, use one process to handle all necessary changes at once. For example, initiate triggers in a single business process (BP) with all modifications related to a specific entity, which helps in minimizing and managing recursion more effectively.

It is crucial to first review the process logic with the above suggestions, as increasing the `MaximumBackgroundRecursionDepth` parameter could lead to application performance issues, such as slowing down or exhausting server memory, which might result in application restarts or stops.

In your system, the `MaximumBackgroundRecursionDepth` parameter is currently set to 100 (default is 100). The issue arises when the number of subprocess calls exceeds this value.

To address this problem, you may need to increase the `MaximumBackgroundRecursionDepth` parameter to accommodate all records, rather than only the initial 100.

Regards,
Orkhan

You need to have some way to determine the source of a record, so if the record came from the other object, you don't send it back again. 

For records added in "Data App", you'd flag those as coming from "Data App" when adding in "Info App", so the process that syncs from "Info App" back to "Data App" knows to exclude it from sending back to "Data App", etc.

If the records need to sync updates as well, you'd want to store the original record's Id value so you know where to update. You could then use the column storing the Id to know to exclude sending it back to add.

Ryan

Show all comments

Hi,

 

I'm trying to implement a simple Business Process to send an automatic Welcome\Onboarding email, when a new contact is created.


At this moment, the email has not been sent, and I have an error in the Process Log.

 

Has anyone faced this problem?

 

 

Follows the error:

 

System.IndexOutOfRangeException: Index was outside the bounds of the array.
  at Terrasoft.Mail.Sender.EmailMessage.GetMessageId()
  at IntegrationV2.EmailClient.Send(EmailMessage emailMessage, Boolean ignoreRights)
  at Terrasoft.Mail.Sender.EmailSender.SendMessage(IEmailClient emailClient, EmailMessage emailMessage, Boolean ignoreRights)
  at Terrasoft.Core.Process.Configuration.AutoEmailUserTaskSender.SendEmailWithDefaultSender(EmailMessage emailMessage, Boolean ignoreErrors)
  at Terrasoft.Core.Process.Configuration.AutoEmailUserTaskSender.Execute(IEmailUserTaskMessageProvider messageProvider, ProcessExecutingContext context)
  at Terrasoft.Core.Process.ProcessFlowElement.CallInternalExecute(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

4 comments
Best reply

In this case, I recommend checking the system settings and mail operation, which is filled in the system settings. For example, if you transferred a system setting from another environment, its value may contain mail with an incorrect id or be empty.

Hello, 

This error in the business process can occur for the following reasons:
 

1. The mail indicated in the "To" field is not correctly configured on the environment and does not work
 

2. If the mail is not specified directly from the window and is filled in when reading the data in other elements, it is possible that this field remains empty and you receive the corresponding error
 

3. The user whose mail is read does not have registered mailboxes, or the user who starts the process does not have access rights to this mailbox (accordingly, the element returns an empty Id)
 

In general, this problem consists of incorrect filling of the "To" field, so we recommend reviewing the logic of your process and making sure that the field is filled correctly.

 

Thank's for your reply.
 

At the moment, the Business Process is very simple. It just have two elements, the initial Signal and the Send email.

 

Follows the pictures with the actual configs, that i think it should be all correct.

Business ProcessSignal configsSend email configs

 

 

In this case, I recommend checking the system settings and mail operation, which is filled in the system settings. For example, if you transferred a system setting from another environment, its value may contain mail with an incorrect id or be empty.

Hi Halyna,

 

I checked the System Setting and it was missing the email address on the default field.

Many thanks for your help.

Show all comments

Hi Community,

 

I am currently working on Process elements  in Creatio. However, I find that the Save and Publish process with Script Task Element is taking longer time than expected, and I'm looking for ways to speed up this process.

 

Has anyone faced similar challenges and found effective solutions? If so, please share your experiences.

 

Best Regards,

Ajay Kuthe

 

 

Like 1

Like

7 comments
Best reply

Gareth Osler,

You can add the Creatio NuGet package to your local Visual Studio project for the Creatio/Terrasoft references also (without a local install). https://www.nuget.org/packages/CreatioSDK

Ryan

I have the same question, especially with one instance having a compile time of 10 minutes.

 

There is some documentation on using external IDEs here External IDEs | Creatio Academy.

 

The following looks interesting, but I'm not sure if a local Creatio instance is required:

Develop C# code in a custom project | Creatio Academy

Develop C# code in a custom project | Creatio Academy / Write C# code for Creatio in the cloud

If you turn on the option in your package for it to compile to it's own assembly then it should take less time since it's only compiling your package and not the entire system.

Other than that, developing externally using tools such as clio would speed the process up. 

Some of scripts that are used in many processes can be transformed into User task

Some best practices documentation videos, updated / new e-learning courses would be great in order to maximise the development in nocode and in code with Creatio  (video courses which can also show how to maximize the use of different tools like clio etc...) the amount of information at the moment is still disparate and super light. 

To build an assembly the Terrasoft libraries are needed.  A local Creatio install would be needed (unless there is some other way).

 

Gareth Osler,

You can add the Creatio NuGet package to your local Visual Studio project for the Creatio/Terrasoft references also (without a local install). https://www.nuget.org/packages/CreatioSDK

Ryan

Ryan Farley,

 

Following the instructions from Write C# code for Creatio in the cloud I'm getting the following error running Executor.exe

 

.\Executor.exe

Unhandled Exception: System.Net.CookieException: The 'Value'='Lax,.ASPXAUTH' part of the cookie is invalid.
   at System.Net.Cookie.VerifySetDefaults(CookieVariant variant, Uri uri, Boolean isLocalDomain, String localDomain, Boolean set_default, Boolean isThrow)
   at System.Net.CookieContainer.Add(Uri uri, Cookie cookie)
   at Executor.Program.TryLogin(String userName, String userPassword, String authServiceUri)
   at Executor.Program.Login()
   at Executor.Program.Main(String[] args)


The instructions are essentially to build an assembly locally and then I think upload it to the cloud instance using Executor.exe.  It looks as though it is not able to log in to the cloud instance due to an invalid cookie value.  I can't think of  a way round that.

 

[Edit] Apart from upload the assembly manually, would only take a few seconds!

 

[Edit] Could clio CI/CD be used to automate deployment?

 

Show all comments

Hello.

I have a freedom UI FormPage, which may be opened from Business process (Open edit page element). I want to override Cancel button handler in such way that to cancel current business process. I need to know process id (SysProcessLog table) or process element id (SysProcessElementLog table). How could I obtain them in Freedom UI? For example in Classic UI edit page there was dedicated attribute called ProcessData. I looked through request.$context and didn't find anything similar.

 

Creatio version is 8.1.2

Like 0

Like

2 comments

Hello!

 

To find information, you can read the data from SysProcessData, more information which contains the interrelationship between the process instance and the subprocess, the relationship to the process scheme, the relationship to the process scheme element if the instance is a subprocess, and the current status of the process instance. Also, the internal state of the process is a snapshot of the values of the parameters at times when the process elements are executed.

 

Also, this article could be useful:

https://academy.creatio.com/docs/8.x/dev/development-on-creatio-platform/development-tools/external-ides/examples/develop-c-sharp-code-in-a-custom-project

 

Kyrylo Atamanenko,

Thanks for an answer. But to read all those information I need to know Id of an element being executed. For example in Classic UI it is obtained like 

this. 

const processElementUId = this.get("ProcessData").procElUId;

And the question is there analogue in Freeom UI page?

Show all comments

How do you set a prefix for all schemas? How do you add a new section called "Requests"  with some fields?

Like 1

Like

1 comments

Hello!

 

In system settings search for:

Prefix for schemas and package name

SchemaNamePrefix

 

More detailed information about new section creation can be found in this article: https://academy.creatio.com/docs/8.x/dev/development-on-creatio-platform/getting-started/first-app/develop-application/create-a-new-section

Another article, that can be useful for you is how to create the custom package:

https://academy.creatio.com/docs/8.x/dev/development-on-creatio-platform/development-tools/packages/create-a-package

 

Thank you for being an active part of the Creatio community!

Show all comments

How do we resolve this error insert or update the table "UsrSalesInfo" violates foreign key constraints and what is this code "FKEJfjpa4vcAfSKimC9hWFxF6Gxm8" showing in that error

Like 0

Like

1 comments

Hello!

 

The error message you're receiving, "UsrSalesInfo violates foreign key constraints," indicates that there is a problem with a foreign key constraint in your database. Foreign key constraints are rules that enforce referential integrity between tables.

 

The code "FKEJfjpa4vcAfSKimC9hWFxF6Gxm8" you mentioned is a reference to the specific foreign key constraint that's causing the error. It's an automatically generated name for the constraint, commonly used by database management systems.

 

To find out which table is affected by the foreign key constraint violation, you can query the system tables or views provided by your database management system.

An example of a possible script for this task: 

SELECT

    name,

    OBJECT_NAME(parent_object_id) AS referencing_table,

    OBJECT_NAME(referenced_object_id) AS referenced_table

FROM

    sys.foreign_keys

WHERE

    name = 'FKEJfjpa4vcAfSKimC9hWFxF6Gxm8';

 

Hope this helps!

Show all comments

I have locally installed the creatio environment + downloaded the zip archive and setup the email service

 

Install and run Email Listener:

  1. Open the directory to deploy Email Listener on the server dedicated for the service.
  2. Download and unpack the archive that contains the setup files to the directory. Download the archive.
  3. Open the / Creatio Email Listener component directory and run the following command:

docker-compose up -d

 

Executed the above command. I was able to add the email account + other configuration but when I run the diagnostics,  I do face the error as attached, how to resolve it?

 

I tried checking the Email Listener log 

 

2023-12-14 19:18:46,098 [105] WARN NT AUTHORITY\SYSTEM Warn - mailbox account@gmail.com synchronization settings not valid

 

I also do not see any email listed in the notification icon -> Mail.

 

Creatio is able to successfully send Creatio test message email from the diagnostic page.

 

 

2023-12-14 19:13:46,080 [106] DEBUG NT AUTHORITY\SYSTEM DebugFormat - ListenerServiceFailHandler started

2023-12-14 19:13:46,080 [106] DEBUG NT AUTHORITY\SYSTEM DebugFormat - ExchangeListenerManager created

2023-12-14 19:13:46,097 [106] WARN NT AUTHORITY\SYSTEM Warn - mailbox account@gmail.com synchronization settings not valid

2023-12-14 19:13:46,097 [106] DEBUG NT AUTHORITY\SYSTEM DebugFormat - Events subscription for 882c1561-***-****-****-******** mailbox created

2023-12-14 19:13:46,097 [106] DEBUG NT AUTHORITY\SYSTEM DebugFormat - Failover synchronization of account@gmail.com started

2023-12-14 19:13:46,097 [106] WARN NT AUTHORITY\SYSTEM Warn - mailbox account@gmail.com synchronization settings not valid

2023-12-14 19:13:46,097 [106] DEBUG NT AUTHORITY\SYSTEM DebugFormat - Failover synchronization of account@gmail.com initialization ended

2023-12-14 19:13:46,097 [106] DEBUG NT AUTHORITY\SYSTEM DebugFormat - Email synchronization process for 882c1561-***-****-****-******** mailbox created

2023-12-14 19:13:46,097 [106] DEBUG NT AUTHORITY\SYSTEM DebugFormat - ListenerServiceFailHandler ended

File attachments
Like 0

Like

1 comments

Hello,

 

I kindly request your attention to a post where a similar issue was discussed.



https://community.creatio.com/questions/exchange-listeners-806



 It is also crucial to ensure that the release version of the microservice is being used (Please note that to deploy a new version of the microservice, you need to contact Creatio technical support to grant you access to the repository).

 

Regarding the warning "mailbox account@gmail.com synchronization settings not valid," please check that the needed folders are chosen during folder synchronization. (in case you are syncing mails from the folders)



Try stopping the mailbox synchronization in the mailbox settings and restart it by reconfiguring the synchronization parameters.

 

Such issues may arise due to the specifics of deploying the local environment and may depend on other factors.

 

The best way to ensure that everything is configured correctly is to send an email from the system.

If emails are sent and synchronized successfully, you can ignore the error as it is not related to the email sending functionality.

 

Best regards,

Pavlo!

Show all comments

Hello,

Can anyone please help me understand how we can add below aggregate filters in freedom UI dynamic folders filter setup.

“Ideas” with an average [Idea expenses] of more than 5000.

Like 0

Like

1 comments

Hello,

 

You can create a folder and set up conditions for this folder: 

Show all comments

 

Page business rules missing the comparing signs in freedom UI.

Can anyone please help me find this values ?

 

Regards,

Dhrumil

 

Like 2

Like

3 comments

Hello,

 

Unfortunately, there are really no such operators in the current version of the app.

Thank you for your comments, our development team is already aware of this need and is working on its implementation.

 

😲 (For 8.1 ? 🫤)

Damien Collot,

I hope, we will have in 8.1 everything that we had in Classic UI

Show all comments

Good morning

 

When I export to SVG, I cannot use it because cannot read labels. See result here https://prnt.sc/lxuvQOyxDeXV

 

Please help

 

Thanks

Like 0

Like

3 comments

Hello Julio,

 

The issue may occur due to the tool / program with which you are viewing the image. Please try to open it with browser or other available tool.

 

Best regards, 

Anastasiia

Anastasiia Zhuravel,

Thanks Anastasiia,

 

In chrome works, but if I want to add it to an MS Word document to complement documentation, this is what I get, https://prnt.sc/m-Md7Hne7mqq 

 

And if I want to open it on a SVG editor like Inkscape I get this another result, https://prnt.sc/lxuvQOyxDeXV

 

Please help

Regards

Julio

 

Hi Julio,

 

Thank you for informing us! 

We'll register a query for a responsible R&D team to improve the functionality. 



Best regards,

Anastasiia

Show all comments