Could you please specify exactly what information you expect to receive from the system Data filter, we do not fully understand the needs of your request.
It won't be possible to add a condition like in your screenshot. Are we interested in a specific filter all in any filter in the section (for example disable displaying data in some section on Sunday)? If so we can restrict loading data to grid on Sundays using:
loadGridData: function(){
var currentDate =new Date();
var currentDayNumber = currentDate.getDay();
var restrictDataLoading = currentDayNumber ==0;if(restrictDataLoading){return;}this.callParent(arguments);}
This should be added to the section schema (like ContactSectionV2). If we are interested in a specific filter in the context of loadGridData we can read current filters using this.getFilters().getItems() and in case a needed filter is found - use additional current day check and restrict grid data loading.
Unfortunately, it's hard to say what have caused this behavior on the website.
Please contact our support team via an email support@creatio.com and provide us with more details on what actions were made on the website prior to that so we could check it.
Is it possible to retrieve an excel spreadsheet in a business process (to be emailed as an attachment)? I have tried a web service approach (see here and here), I am able to authenticate with the `AuthService.svc` service, but get an authentication error when trying to access the `GetExportFiltersKey` endpoint.
The code I'm using to access the web service (based on this) is as follows, the cookie is definitely retrieved (though I'm not 100% sure what the `_appUrl` should be):
string _output ="";
string _userName ="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
string _userPassword ="XXXXXXXXXXXX";
string _authServiceUrl ="https://XXXXXX-crm-bundle.creatio.com/ServiceModel/AuthService.svc/Login";
string _authServiceUrl2 ="https://XXXXXX-crm-bundle.creatio.com/0/rest/IntExcelReportService/GetExportFiltersKey";
string _appUrl ="https://XXXXXX-crm-bundle.creatio.com/";
var _authCookie =new CookieContainer();
TryLogin();
TryForKey();
Set<string>("ProcessSchemarequestResult", _output);// Sends a request to the authentication service and processes the response.void TryLogin(){
var authData = @"{
""UserName"":"""+ _userName + @""",
""UserPassword"":"""+ _userPassword + @"""
}";
var request = CreateRequest(_authServiceUrl, authData);//_authCookie = new CookieContainer();
request.CookieContainer= _authCookie;// Upon successful authentication, we save authentication cookies for// further use in requests to Creatio. In case of failure// authentication application console displays a message about the reason// of the mistake.using(var response =(HttpWebResponse)request.GetResponse()){if(response.StatusCode== HttpStatusCode.OK){using(var reader =new StreamReader(response.GetResponseStream())){
var responseMessage = reader.ReadToEnd();//Console.WriteLine(responseMessage);
_output = _output + responseMessage +"\n\n";if(responseMessage.Contains("\"Code\":1")){thrownew UnauthorizedAccessException($"Unauthorized {_userName} for {_appUrl}");}}
string authName =".ASPXAUTH";
string authCookeValue = response.Cookies[authName].Value;
_authCookie.Add(new Uri(_appUrl), new Cookie(authName, authCookeValue));}else{
_output = _output + response.StatusDescription+"\n\n";}}}void TryForKey(){
string esqStr ="{\"rootSchemaName\":\"Contact\",\"operationType\":0,\"includeProcessExecutionData\":true,\"filters\":{\"items\":{\"a99615bf-66bc-4ad4-b6da-e2d8949e090b\":{\"filterType\":1,\"comparisonType\":3,\"isEnabled\":true,\"trimDateTimeParameterToDate\":false,\"leftExpression\":{\"expressionType\":0,\"columnPath\":\"Id\"},\"rightExpression\":{\"expressionType\":2,\"parameter\":{\"dataValueType\":1,\"value\":\"98dae6f4-70ae-4f4b-9db5-e4fcb659ef19\"}}}},\"logicalOperation\":0,\"isEnabled\":true,\"filterType\":6},\"columns\":{\"items\":{\"Full name\":{\"caption\":\"Full name\",\"orderDirection\":0,\"orderPosition\":-1,\"isVisible\":true,\"expression\":{\"expressionType\":0,\"columnPath\":\"Name\"}}}},\"isDistinct\":false,\"rowCount\":-1,\"rowsOffset\":-1,\"isPageable\":false,\"allColumns\":false,\"useLocalization\":true,\"useRecordDeactivation\":false,\"serverESQCacheParameters\":{\"cacheLevel\":0,\"cacheGroup\":\"\",\"cacheItemName\":\"\"},\"queryOptimize\":false,\"useMetrics\":false,\"adminUnitRoleSources\":0,\"querySource\":0,\"ignoreDisplayValues\":false,\"isHierarchical\":false}";
string callData ="EsqString : "+ esqStr +", RecordCollection : [\"98dae6f4-70ae-4f4b-9db5-e4fcb659ef19\"], ReportId : \"ebf37bad-134c-423e-af16-aa0897522de6\"";
var request = CreateRequest(_authServiceUrl2, callData);
request.CookieContainer= _authCookie;using(var response =(HttpWebResponse)request.GetResponse()){if(response.StatusCode== HttpStatusCode.OK){using(var reader =new StreamReader(response.GetResponseStream())){
var responseMessage = reader.ReadToEnd();//Console.WriteLine(responseMessage);
_output = _output + responseMessage +"\n\n";if(responseMessage.Contains("\"Code\":1")){thrownew UnauthorizedAccessException($"Unauthorized {_userName} for {_appUrl}");}}}else{
_output = _output + response.StatusDescription+"\n\n";}}}// Create request to the authentication service.
HttpWebRequest CreateRequest(string url, string requestData = null){
HttpWebRequest request =(HttpWebRequest)WebRequest.Create(url);
request.ContentType="application/json";
request.Method="POST";
request.KeepAlive=true;if(!string.IsNullOrEmpty(requestData)){using(var requestStream = request.GetRequestStream()){using(var writer =new StreamWriter(requestStream)){
writer.Write(requestData);}}}return request;}returntrue;
System.Net.WebException: The remote server returned an error:(401) Unauthorized.
at System.Net.HttpWebRequest.GetResponse()
at Terrasoft.Core.Process.UsrProcess_3608a7dMethodsWrapper.<ScriptTask1Execute>g__TryForKey|1_1(<>c__DisplayClass1_0&)
at Terrasoft.Core.Process.UsrProcess_3608a7dMethodsWrapper.ScriptTask1Execute(ProcessExecutingContext context)
at Terrasoft.Core.Process.ProcessScriptTask.InternalExecute(ProcessExecutingContext context)
at Terrasoft.Core.Process.ProcessFlowElement.ExecuteItem(ProcessExecutingContext context)
at Terrasoft.Core.Process.ProcessFlowElement.Execute(ProcessExecutingContext context)
Is there a way to add Date Macros in Bulk Email Template? Suppose a bulk email was sent on Monday and the second email is sent two days later(Wednesday), I need to add the day on which previous email was sent(Monday) to the email body of the one sent on Wednesday. The second email should read, "I left you a voicemail on Monday...." and the day should be populated dynamically by going back 2 days from today. Any way to add javascript inside the HTML code for the block?
We have Product field in 'Product in order' detail and we can add Product.Type, Product.Category and other columns in the detail for employee users.
But is no option to add them in the detail for Portal users. It is incorrect way to add such fields and synchronise them (cause there can be a lot of them) to the detail.
How can we display such linked fields in details for Portal users?
Thank you for your question. There is an intentional limitation for portal users not to be able to display linked objects. That is one of the core differences between the system and portal user.
So, all characteristics of object (e.g. Product type, Product category, Product code, Product link and so on) should be added additionaly as physical fields to all objects like Product in Order, Product in Invoice, Opportunity product, Product in Contract and so on?
It's not possible to hide the System Designer option with basic system tools.
Still, you may simply limit the access rights for this role or not grant any administrative rights or access for this role, this way even though the user sees the System Designer they won't able to apply any changes to it or open the corresponding System Designer sections.
More detailed information about access rights and system operation permissions can be found in corresponding articles on our Academy.
For CSS that I want globally available in the application I use MainHeaderSchema.
Oleg's solution is great too, however does require overriding the BootstrapModulesV2 which can cause issues if there are other things that are needed to be loaded there from ootb modules. The CSS approach is a bit "hacky" but gets the job done easily.
I have a multiselect lookup and a requirement where already selected records must be checked. I have used config.selectedValues to mark already selected records.
Unfortunately, the application takes a lot of time (from 6 to 15 seconds) before the already selected records are marked on the UI. Hence the users are selecting records again and creating duplicates. There are other validation issues around this as well.
Is there a way to stop user from selecting further records till all existing records are marked checked? Please have a look at the video.
The use case in short, is to ensure that the checked records are marked and only then the user is allowed to choose further records.
Unfortunately, I didn't know a way to disable the checkbox on the lookup window and don't even know if that option is possible, however, in your case you can try a different approach.
You can add a filter to an openLookup config that won't shop any records and disable it when you are using your config.selectedValues option.
At the moment, it is not possible to configure advanced filters in Lookups records.
We have recorded your request and this issue will be considered in as much detail as possible with the prospect of implementation in future versions of the application.
As a workaround, the advanced filter can be configured by the "list" dashboard by selecting the directory object, and in the display parameters select the advanced filter.
Thank you for your appeal and for helping to make our product better!
the error is not permanent. When that day or two appears, contacts are not created, and then they are created again, and even when you restart those that have not been completed, they are successfully completed
ошибка не постоянная. Когда появляется то день или два не создаеются контакти, а потом снова создаются и даже когда повторно запускаеш те что не віполнились они успешно выполняются