I am running a business process, but after 100 iterations, the process stops, and I get this error: 'Operation interrupted to prevent recursive execution. The maximum allowed background recursion depth of 100 has been exceeded while performing these operations.' I researched the issue and adjusted the 'Maximum Number of Repetitions' in the business process configuration, as well as a system setting called 'MaxProcessLoopCount.' However, I am still encountering the same error.
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.
It is not possible to insert data from the process directly into the report, as the report uses information obtained from columns/related objects.
However, you can add an additional column at the object level (or create an object that has a connection to the record, depending on the task) and include it in the report template.
Before generating the report element, you can fill this field(s) with values generated during the process.
After generating the report, you can clear this column if needed. This way, during the execution of the business process, you will fill the column with the results of the business process, generate the report, and thus the process data will be reflected in the report. Afterwards, you can clear the column if necessary.
Yes, you can add aggregation functions in reports to return the sum for any fields in Creatio. To do this, you typically need to configure the report settings and specify the aggregation function you want to use.
Is there a way to alter the open record event of a detail row in Freedom so that it runs a particular event that I want? I see some example of HandlerChain, but those are primarily from a button.
Example, instead of opening the edit record page of the product when clicking "Motherboard..." I want to change what it does.
Find the _sendRequest method in the core file like 1964.1a6d8f3494eb48eb.js. This will show that the request sent when clicking the record is "crt.UpdateRecordRequest" (on the screenshot below I've clicked the Account column value for the record in the "Job experience" list on the contact page):
So in case you need to modify the logic you need to add a check for the UpdateRecordRequest and make sure it's called when clicking the needed column value (using the recordId parameter for example).
Find the _sendRequest method in the core file like 1964.1a6d8f3494eb48eb.js. This will show that the request sent when clicking the record is "crt.UpdateRecordRequest" (on the screenshot below I've clicked the Account column value for the record in the "Job experience" list on the contact page):
So in case you need to modify the logic you need to add a check for the UpdateRecordRequest and make sure it's called when clicking the needed column value (using the recordId parameter for example).
We have a requirement where client would send data as csv file. This file will be later processed via BPM process and record will be loaded into the creatio object. How and where this file can be stored within Creatio Cloud ?
Please note the file is not an attachment to any record but rather records which is to be loaded in Creatio Database.
For product sites that are hosted in the Creatio cloud, AWS S3 buckets are connected by default and are used to store files. You can also use the option of storing files in the database as well, but please note that this will lead to increased memory consumption at the database level. When developing functionality that covers file uploads, we recommend using the "API for file management" that is built into Creatio products. You can find a detailed description and examples of how to use the "API for file management" in an article on Creatio Academy, as well as the File storage options for storing files in Creatio.
Before deploying this on Creatio Cloud I need to develop this on my local Creatio set up
How to Validation of S3 Configuration:
"I have configured Amazon S3 as file storage in Creatio local following the 'File storage options ' guide. How can I validate that this S3 configuration is working correctly (I don't see anything in log)? "Any existing API i can use to see how this work
What Tables and Objects Involved in File Upload:
"Which Creatio tables or objects are involved in file upload and storage when using external storage like Amazon S3? Specifically, what tables store metadata and file details for uploaded files when it is not associated with any entity like Accounts or Contacts?
I can log in fine, however when I try to access the Application hub or Advanced settings pages Creatio freezes while opening the pages. Everything in the browser console on the opened pages looks OK without any issues.
The problem seems to be the number of browser tabs (WebSocket connections) open at the same time. Supposedly, the problem is due to a third-party blockage. Please disable antivirus (if installed), and third-party utilities and restart the server. Check the functionality again. Also, check that the proxy is turned off (if it is used).
If that doesn't help, then presumably the problem is in the infrastructure. Can you try to deploy the same environment on a different server?
We're currently developing and customizing pre-existing applications in Creatio, and we’ve encountered an issue that we need your assistance with.
For example, when we purchase the Sales module, Creatio comes with an Order Management app and others. We need to customize it by adding new columns and data tables to the Order package. However, we're unsure how to export these additional objects to another environment.
Here’s what we’ve tried:
Using the Application Hub, we were able to install the entire Order Management app with the additional customizations the new objects we added (which are visible in the package) don't appear in the "All Apps" section.
In advanced setting, we noticed that when we add new items to the Order Management app, a folder named "UsrCrtOrderContractMgmtApp" is automatically created, containing all the new elements we’ve added. But we’re unable to migrate this folder to the other environment because the system can’t find the schema ID.
We’re wondering if there’s a proper way to migrate these customizations to another environment, especially when the base module already exists.
We are on the process of implementing SSO and the users testing are getting confused because they are used to enter their credentials on the Creatio Login page (basically clicking on the Single Sign on link is foreign to them.)
Is it possible to have two different login pages? One with the Creatio Login page and another just with the SSO link?
You can achieve this goal by activating SSO auto-redirect for your site. This way, users who enter your site's link will be redirected to the SSO login page. Meanwhile, users who want/need to log in using credentials can use a bypass link to open the regular login page.
To activate this auto-redirect, please contact our support team.
I'm looking to access the `onclick` / 'FolderTreeVisibleChanged' handler of the Folders button on Freedom UI list pages. What is the name of the handler method that i can use?
If i understood you correctly, you want to control visibility state or togle mode of the folders tree. The handler you provided, well, is responsible for this logic.
Here is an example of how you can do it:
Toggle mode (open if closed, close if open): { request: 'crt.FolderTreeVisibleRequest', params: { folderTreeName: "FolderTree_blabla", togglePanel: true } }
Explicit visibility mode (always open or always close, regardless of current state):
{ request: 'crt.FolderTreeVisibleRequest', params: { folderTreeName: "FolderTree_blabla", visible: true // or false to close } }
As mentioned, this handler also saves the state to the user profile, meaning that when the page is reopened, the folder tree will be in the same state (open or closed) as it was before. If you'd prefer not to save the state in the profile, you can manually update the visibility attribute, like so:
{folder tree name}_visible => FolderTree_blabla_visible
Hope this helps! Let me know if i understood you correctly and if you have any questions let.
If i understood you correctly, you want to control visibility state or togle mode of the folders tree. The handler you provided, well, is responsible for this logic.
Here is an example of how you can do it:
Toggle mode (open if closed, close if open): { request: 'crt.FolderTreeVisibleRequest', params: { folderTreeName: "FolderTree_blabla", togglePanel: true } }
Explicit visibility mode (always open or always close, regardless of current state):
{ request: 'crt.FolderTreeVisibleRequest', params: { folderTreeName: "FolderTree_blabla", visible: true // or false to close } }
As mentioned, this handler also saves the state to the user profile, meaning that when the page is reopened, the folder tree will be in the same state (open or closed) as it was before. If you'd prefer not to save the state in the profile, you can manually update the visibility attribute, like so:
{folder tree name}_visible => FolderTree_blabla_visible
Hope this helps! Let me know if i understood you correctly and if you have any questions let.
Thank you for this Yevhenii. One of the more difficult parts of working with Freedom UI is the inability to dig into the out of the box code to see how to change the behavior. This was easy with classic, but for Freedom we have to dig through all the minified code to see if we get lucky finding what we are after. Until there's better documentation outlining what all the various requests are to handle, it would be great to have some sort of switch (like the IsDebug setting to enable debug mode) that just dumps all the fired requests to the console (and maybe include what object/component fired the request?) Not sure how reasonable that would be since it's likely quite a bit of stuff would show there, but might make it easier to see the requests that fire when some action is taken.