I am integrating Creatio with Kafka for a particular use-case where event-sourcing and a distributed commit log are the presiding themes of the E2E architecture. I would like to know if there are any best practices from a Creatio standpoint that would help here. Especially around creating Kafka consumers on Creatio. What are the best ways of working with background threads that are independent of the http context in Creatio? Is it advisable to run a thread that infinitely polls the Kafka server to maintain a persistent connection? Please provide inputs also on how easily such a solution on Creatio can scale from a load and a maintainability standpoint. In the context of a load balanced web farm, are there any important points to keep in mind considering that each node will run a consumer instance that could belong to the same consumer group?
Unfortunately, we don’t have any prepared examples of this functionality. Please contact technical support in order get help with an implementation of the integration.
Unfortunately, in the current Creatio configuration, there is no out-of-the-box Apache Kafka integration. We have created a Problem for the responsible R&D team, which will consider the development of such integration, depending on the popularity of the idea.
I have a process that for mistake is running with a start of a signal and is generating edit pages from the process. How can cancel those future running process? Is not showing yet in the process log.
An input mask helps users with the input by ensuring a predefined format. If you have record inserted directly to the database, you won’t be able to apply the input mask for this record. In order to validate this record, please consider creating a trigger in the database that should be triggered before inserting the record. Please find more information about triggers in the article by the link below:
When typing some string on a lookup field, at the bottom of the field there is this option to add the value as a new value to the lookup if it doesn't exsitis in the lookup table.
I understand that this option can be blocked via permissions but how can I remove this option completely from a lookup field.
Remove it in a manner that the user will not see this option to add new.
Sure, there is an option to block such functionality. However, please note that the development process should be applied.
1. Firstly, you need to create a replacing client module schema for BasePageV2 client module. Please find the information about it in the article by the link below:
Sure, there is an option to block such functionality. However, please note that the development process should be applied.
1. Firstly, you need to create a replacing client module schema for BasePageV2 client module. Please find the information about it in the article by the link below:
Please share BusinessProcess.log and Error.log files from your local app (can be found in C:\Windows\Temp\Creatio folder) and also specify the exact time when the process should've been completed. And also please share the name of this process and its UID from SysSchema table.
Can you try 'open'ing the process instance from process log, check if any elements show 'error' status. If yes, click on that and then click on the 'show error description' button.
Please share BusinessProcess.log and Error.log files from your local app (can be found in C:\Windows\Temp\Creatio folder) and also specify the exact time when the process should've been completed. And also please share the name of this process and its UID from SysSchema table.
It will be almost impossible to say without direct access to the database and the application. Please email us at support@creatio.com and we will take a look at the deadlock problem more closely.
I have a legacy system built using EJBs in java on a JBoss app server. I need to integrate it with Creatio. What's the best way of integrating EJBs with Creatio? Are there any specific gotchas that I have to keep in mind around, JRE, cloud vs on-prem, etc?
Is there a clean way to hide the left and right navigation menus in Creatio without resorting to CSS hacks? I am building a scenario where an external app loads Creatio in an iframe and I need to restrict the user from navigating away from the screen that is shown in the Creatio iframe.
I think that adding custom css is the most appropriate approach in your case. Since it is impossible to make the left and right menus invisible only for some specific page. You can modify these menus, however these changes will affect all pages in the application.
Please find more information about how to add a custom css style in the article by the link below:
I have a custom section that has a field that only shows cities where country is the US. When I'm in the page and click on the look up I only get the US cities. However if I am on the section and I add a Simple filter and I select the field for the city, the cities are not filtered out by the US, and all cities in the database are listed (see attachments)
How do I filter that look up when the user decides to add a simple filter and chooses the city as the column?
This filtering on the edit page can be either a result of:
1) filtering business rule on the page (see this Academy article for more information)
2) custom filtration rule logic stored in the edit page itself
The same filtration logic cannot be deployed using standard business rules in the section list, but you can use additional development so to create a custom filter in the section based on some contidions and it can be achieved via ESQ filtration methods (simial to the one described here).
But you need to define some logic that could control this filtration (for example which cities should be displayed in the section list filter?) and then deploy this logic in the ESQ parameters.
I read the link that you provide for the section list, but unfortunately it does not say which function I have to override in order to call the logic with the ESQ parameters.
Can you tell me where I need to put the ESQ logic that will filter the cities look up values in the section list? The ESQ logic, I know how o write to get the only cities where the country is the Unites States.
Please see this article https://community.creatio.com/articles/setting-custom-section-filters-section. The ESQ should be placed in your overwritten section schema (like AccountSectionV2 or ContactSectionV2) in the methods of the schema. You can create a separate filter field in the fast filter already available in your section and then display only those cities that ESQ will return.
Or you can achieve your task without development and in this case you can create several folders in your section list - one for each city like on the screenshot below:
Thanks Oscar. The instructions are for Quick filters, but I was looking for a solution where I could filter the data when the user decides to add a simple filter for a field that is a cities look up. We have several city fields on that custom section (Enrollee City , Rep City, Plan City, etc. ) and it is not practical to put that many Quick filters on the section list. We also have other fields based on the Contact lookup and I was hoping to filter those to when the user adds a simple filter for those fields to list just the users in the roles that are allowed for that custom section.
In short, I was looking for a way to filter the data displayed to the user when they add a simple filter that is based on a Creatio lookup.
If your business task is to simply display records that are related to some city it is better to create dynamic folders that could show you the correspondent data and that will be dynamically updated.
Otherwise you need to overwrite the basic fast filter and add your condition that could return possible variants of cities:
these simple filters are part of fixed filters. For example if you remove this part from the code:
name: "PeriodFilter",
// Filter header.
caption: this.get("Resources.Strings.PeriodFilterCaption"),
// The data type – date.
dataValueType: this.Terrasoft.DataValueType.DATE,
// Start date of the filtering period.
startDate: {
// Filter the data from the [Date] column.
columnName: "StartDate",
// Default value.
defValue: this.Terrasoft.startOfWeek(new Date())
},
// Date of the filtering period completion.
dueDate: {
columnName: "StartDate",
defValue: this.Terrasoft.endOfWeek(new Date())
}
},
// Owner filter.
{
// The name of the filter.
name: "Owner",
// Filter header.
caption: this.get("Resources.Strings.OwnerFilterCaption"),
// Filter the data from the [Owner] column.
columnName: "Owner",
// Current user contact is specified as default value.
// Value is received from the system setting.
defValue: this.Terrasoft.SysValue.CURRENT_USER_CONTACT,
// The data type – lookup.
dataValueType: this.Terrasoft.DataValueType.LOOKUP,
// Filter.
filter: BaseFiltersGenerateModule.OwnerFilter
Thanks Oscar, but I was asking for a way to do it without having to add Quick Filters or dynamic folders to the section. Is it not possible to display only certain values when the user adds a field on a simple filter? e,g Click Filters/Folders, select Add Filter, Select Enrollee City, (custom code filters out any city where country is not Unites States).
Such a feature of custom filters in not present out-of-the-box, but can be added via additional development (by replacing the existing fixed filter in the section by a custom one and specifying the ESQ for the filter).
It is also possible to add such a filtration without development by creating a separate lookup where only specific cities will appear. In this case when users want to create a filter they will only see specific cities in the lookup and as a result the task will be achieved. You will only need to fill this lookup in for all existing records. The fastest way to do that is to export existing section records and their actual cities and import this data back, but specifying the city value for the custom column we've added.