Hello Community,

We want a default quick filter to be applied always to a detail (AccountContactsDetailV2) in the Account section. This filter should be permanent like this:

This academy article is only appliable for Sections and not details

https://academy.creatio.com/documents/technic-sdk/7-13/adding-quick-fil…

All the best

Sasori

Like 2

Like

3 comments

I am not sure how to add the default values (so the user can remove them) since it is a per-user thing, but if you always needed the filter values set for the detail (and not allow the user to remove them) you could filter the detail using ESQ filters as shown here: https://customerfx.com/article/filtering-a-detail-list-in-creatio-forme…

Ryan

Will quick filter component in Freedom UI 8.0.8 allow this maybe ?



(Beta in 8.0.7: Quick filters. It is now possible to apply custom filters to one or more Freedom UI lists on a page using the [ Quick filter ] component. )

Ryan Farley,

Hi Ryan. The idea is to apply the quick filter for the detail (like for sections)

Through this coding applied in AccountContactDetailV2_:

onRender: function() {
				this.callParent(arguments);
				this.set("IsDetailFilterVisible", true);
				this.set("IsFilterAdded", true);
				this.set("IsShortFilterFieldsVisible", true);
 
			},
			getFilterDefaultColumnName: function() {
				return "Left";
			},

I have managed to bring the detail in this state (printscreen) every time the pages renders:

Do you know if it is possible to put also a default value, when the detail renders ?

Thanks,

Sasori

Show all comments

Dear,

I want to set to null a date field in the opportunities by performing a file import.

In Creatio, the date field is filled in, i want to set it to null.

I can not find the syntax to do this...

So what must i write in the excel date field if it is possible to to this...

Thank you !

Nicolas

Like 0

Like

2 comments
Best reply

Hello Nicolas,



The logic of making the field empty using data import is not developed yes and as a result, there is no way to make the field empty using the import tool. 

 

We've registered it in our R&D team backlog for consideration and implementation in future application releases.

 

Thank you for helping us to improve our product. 

Hello Nicolas,



The logic of making the field empty using data import is not developed yes and as a result, there is no way to make the field empty using the import tool. 

 

We've registered it in our R&D team backlog for consideration and implementation in future application releases.

 

Thank you for helping us to improve our product. 

Hi Nicolas, 



It's possible to do using the free add-on available on Marketplace. 

 

https://marketplace.creatio.com/app/mass-updating-creatio

 

Have a great day! 

BR,

Jacek

Show all comments

We store multiple attachments stored in Creatio account, Order, case section etc.

We would like to know where exactly the physical files are stored.

 

Within application server or DB server or in the external file server ?

The attachment link looks below

https://xxxxxxxx.com/0/rest/FileService/GetFile/xxxxxxx/xxxxxx

Like 0

Like

2 comments

Hello Selva,

 

We see that you also registered a case directly for the support team and will provide you with an elaborate answer regarding your instance there.

Selva,



All the physical files (i.e., attachments are stored in a DB server of type BLOB). And if required external servers/integrations supported can be used. 



This Academy article will guide further: https://academy.creatio.com/docs/user/setup_and_administration/base_int…

 

 

BR,

Bhoobalan Palanivelu.

Show all comments

Hi Community,

I have created a database view, joining tables which altogether include more than 10000 records.

However when creating a Dashboard (List View) with this View, I can not scroll down through all the records (although all the records are there). Any idea why this happens ?

Best regards,

Sasori

 

Like 0

Like

1 comments

Hello Sasori,

 

We need more information to analyze your problem.

Please contact our technical support team (support@creatio.com)

Show all comments

Is it planned to fix the fakap that Creatio considers letters of different registers as different simbols? At a time when Google has long ignored typos in requests, and the era of ChatGPT is coming, a modern and otherwise great program cannot find the name John in the contact list if you write "JOHN". Moreover, the search in the program does not know how to search by part of a word and cannot find the name John in the contact list if you write "ohn".

Like 2

Like

1 comments

Hello,

 

Please note that there are several different Global Search templates that you can choose from to configure on your instance, depending on your needs. Please refer to this Academy article to know more about it.

You can either set this up on your own in a locally deployed instance or send a request to our support team so we could change the Global Search template if you have a cloud site.

Show all comments

Hello Community,

I have a requirement of different colors to show in the progress bar of lead section. As if the stage is Qualification it needs to be in yellow, if its in nurturing it needs to in different color? How can we achieve this. Can anyone help ?

 

Thanks in advance 

 

Best Regards 

Yasaswini I

Like 0

Like

1 comments

Greetings,



Unfortunately, we do not yet have an out of the box solution for such a request, hence we have registered an idea for our R&D team to further implement such feature in our future versions.

Show all comments

Hello,

I try to create Word report and add information about currency to the table header

And in some reports everything is Ok, but in some (with more columns or any other conditions) only one row with table details is displayed after some master data is added to the column header.

I cannot find any reason and have no ideas why in some reports it works and in some - doesn't

 

Thanks for your hints!

Vladimir

Like 0

Like

4 comments

Hi,

 

it seems that you are trying to add the macro straight from the table column. In this case, such scenario should be changed.

 

Please, make sure you added the column to the "Set up report data" section in your Report template in Creatio before you add this column to the report template in Word, then in Word you will have to find this columns in the list and drag it to the field where you need it.

 

For example, if now the macro looks something like "Object1.Column1.Currency", then you need to go to your Report in Creatio and add the column in such way:

 

- Set up report data -> "+"

- Object1 -> "+"

- In the second field you need to find your Column1

- In the last window you should have a list from the Column1 and there you should be able to find your Currency column.

 

In this case, it should work fine.

 

Regards,

Gleb.

Thank you for your replay.

 

Yes, we have created VIEW and added this object as report table.

And if report is based on Order, a lot of Order's calculated fields are taken from VIEW.

 

When we add 'Currency' field to the 'report data', it realy works - thank you.

But we also have some fields, that are calculated in VIEW, so they cannot be added to the 'report data', only to 'report table'. As I understand, they cannot be used in other table header?

And only option is to add new field to Order object, calculate and store this value in the object?

 

Kind regards,

Vladimir

Vladimir Sokolov,

 

if the field is calculated in View, it cannot be added to the header, I'm afraid.

 

However, you can try to add another field to your object and simply populate it with the value from the second field. In this case, it should work fine.

 

Regards,

Gleb.

Gleb,

Thank you!



Would be nice to have Word reports based not only on Section, but on any other objects, also objects on View

Show all comments

Hello Community,

 

I have a PrestaShop website to allow my important customers to simplify their hardware orders.

I am therefore in the process of developing a webservice to interface the two systems, the exchange of data being done in Json format.

 

The first feasibility tests were done in version 7.18.5 of Creatio with libraries

  • Newtonsoft.Json
  • Newtonsoft.Json.Linq
  • System.Web.Script

 

We have now moved to a new phase on a Creatio 8.0.5 and the USING of these libraries now cause problems when compiling...

 

Have you encountered this anomaly before?

Do you have examples of Json deserialization code with other libraries?

 

Thank you in advance for your help.

 

Vincent

Like 0

Like

5 comments

Greetings,



We have checked the information with our R&D team and it is as follows:

Newtonsoft.Json;

Newtonsoft.Json.Linq;

Both of these should work with no problem with the new versions of Creatio, but

System.Web.Script

Needs some adjustments from your side, since you have an on-site system.

The adjustments are as follows:

Within the file \Terrasoft.WebApp\Terrasoft.Configuration\Terrasoft.Configuration.Dev.csproj 

Within this section: <ItemGroup Label=".NET references"> 

You should add this reference <Reference Include="System.Web.Extensions" />

And correctly use the beforementioned libraries (Newtonsoft.Json; Newtonsoft.Json.Linq;) in C# schemas

Hello Mykhailo Zeleniuk,



Right now, my code is very simple (see screenshot), so I'm bothered by the compilation error...

Especially since the same code worked in version 7.18.5.

 

Someone would have examples of Json deserialization code with other libraries than Newtonsoft ?

 

Thanks

 

Vincent

 

 

LAVIGNE Vincent,

 

I did an example of a webservice that returns a JSON string result using only System; and System.Text.Json. The code is below:

namespace Terrasoft.Configuration.UsrCustomServiceNamespace
{
    using System;
	using System.Text.Json;
    using System.ServiceModel;
    using System.ServiceModel.Web;
    using System.ServiceModel.Activation;
    using Terrasoft.Core;
    using Terrasoft.Web.Common;
    using Terrasoft.Core.Entities;
 
 
 
	public class SerializedObject
	{
		public string FirstPart { get; set; }
		public string SecondPart { get; set; }
		public string ThirdPart { get; set; }
	}
 
    [ServiceContract]
    [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
    public class UsrCustomService: BaseService
    {
 
		private SystemUserConnection _systemUserConnection;
        private SystemUserConnection SystemUserConnection
		{
            get
			{
                return _systemUserConnection ?? (_systemUserConnection = (SystemUserConnection)AppConnection.SystemUserConnection);
            }
        }
 
	[OperationContract]
        [WebInvoke(Method = "GET", RequestFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped,
        ResponseFormat = WebMessageFormat.Json)]
        public string ReturnCustomResult(string param1, string param2, string param3)
		{
			var objectToSerialize = new SerializedObject
            {
                FirstPart = param1,
                SecondPart = param2,
                ThirdPart = param3,
            };
			string jsonString = JsonSerializer.Serialize(objectToSerialize);
			return jsonString;
		}
	}
}

As a result calling this endpoint http://localhost:1026/0/ServiceModel/UsrCustomService.svc/ReturnCustomR… returned this result:

{"ReturnCustomResultResult":"{\"FirstPart\":\"test1\",\"SecondPart\":\"test2\",\"ThirdPart\":\"test3\"}"}

So you can this approach on your side as well.

And the test was performed in 8.0.6 full bundle application (sales + marketing + service) MS SQL.

Hello Oleg Drobina,

 

Thank you very much for your answer, I will try to adapt your example code to my case.

Indeed, I want to retrieve a JSON which is in the body of the HTTP request, so do more of a "Deserialize" request.

If you have an example of code in this way too, I am interested.

 

Thanks

 

Vincent

Show all comments

Hello, 

lately, I had a look at the ML models and wonder why the opportunity scoring remains at zero since the scoring widget was added : 

The OOB ML Model (Predictive Opportunity Scoring) stop with this error :

Can't automatically determine type for expression(s): StartDateLastStage. Generated query: SELECT [O].[Id], [O].[CreatedOn], [OIS].[StartDateLastStage], [O].[TypeId], [O].[StageId], [O].[AccountId], [O].[CategoryId], [O].[MoodId], [O].[IsPrimary], [O].[PartnerId], [O].[Budget], [O].[Amount], [O].[SourceId], [O].[ResponsibleDepartmentId], [O].[LeadTypeId], [A].[OwnershipId], [A].[IndustryId], [A].[TypeId] [AccountTypeId], [A].[AccountCategoryId], [A].[EmployeesNumberId], [A].[AnnualRevenueId], DATEDIFF(DAY, [O].[CreatedOn], [OIS].[CloseDate]) [DaysInFunnel], DATEDIFF(DAY, [OIS].[StartDateLastStage], [OIS].[CloseDate]) [DaysInLastStage], ( SELECT COUNT(*) FROM [dbo].[OpportunityContact] [OC] WITH(NOLOCK) WHERE [OC].[OpportunityId] = [O].[Id]) [OpportunityContactsNumber], ( SELECT COUNT(*) FROM [dbo].[Contact] [C] WITH(NOLOCK) WHERE [A].[Id] = [C].[AccountId]) [AccountContactsNumber], ( SELECT COUNT(*) FROM [dbo].[Lead] [L] WITH(NOLOCK) WHERE [L].[CreatedOn] < [OIS].[CloseDate] AND [L].[QualifiedAccountId] = [A].[Id]) [AccountLeadsTotalNumber], ( SELECT COUNT(*) [cnt] FROM [dbo].[Activity] [Act] WITH(NOLOCK) INNER JOIN [dbo].[ActivityResult] [Ar] WITH(NOLOCK) ON ([Act].[ResultId] = [Ar].[Id]) WHERE [Act].[OpportunityId] = [O].[Id] AND [Ar].[Id] = @P1 AND [Act].[TypeId] = '{E3831DEC-CFC0-DF11-B00F-001D60E938C6}') [OpportunityMeetingsTotal], ( SELECT COUNT(*) [cnt] FROM [dbo].[Activity] [Act] WITH(NOLOCK) INNER JOIN [dbo].[ActivityResult] [Ar] WITH(NOLOCK) ON ([Act].[ResultId] = [Ar].[Id]) WHERE [Act].[OpportunityId] = [O].[Id] AND [Ar].[Id] = @P2 AND [Act].[TypeId] = '{E1831DEC-CFC0-DF11-B00F-001D60E938C6}') [OpportunityCallsTotal], ( SELECT COUNT(*) [cnt] FROM [dbo].[Activity] [Act] WITH(NOLOCK) INNER JOIN [dbo].[ActivityResult] [Ar] WITH(NOLOCK) ON ([Act].[ResultId] = [Ar].[Id]) WHERE [Act].[AccountId] = [O].[AccountId] AND [Act].[CreatedOn] < [OIS].[CloseDate] AND [Ar].[Id] = @P3 AND [Act].[TypeId] = '{E3831DEC-CFC0-DF11-B00F-001D60E938C6}') [AccountMeetingsTotal], ISNULL(( SELECT DATEDIFF(DAY, MAX([Act].[StartDate]), [OIS].[CloseDate]) [cnt] FROM [dbo].[Activity] [Act] WITH(NOLOCK) WHERE [Act].[AccountId] = [O].[AccountId] AND [Act].[TypeId] = '{E3831DEC-CFC0-DF11-B00F-001D60E938C6}'), 0) [AccountDaysToLastMeeting], ( SELECT COUNT(*) [cnt] FROM [dbo].[Activity] [Act] WITH(NOLOCK) INNER JOIN [dbo].[ActivityResult] [Ar] WITH(NOLOCK) ON ([Act].[ResultId] = [Ar].[Id]) WHERE [Act].[AccountId] = [O].[AccountId] AND [Act].[CreatedOn] < [OIS].[CloseDate] AND [Ar].[Id] = @P4 AND [Act].[TypeId] = '{E1831DEC-CFC0-DF11-B00F-001D60E938C6}') [AccountCallsTotal], ISNULL(( SELECT DATEDIFF(DAY, MAX([Act].[StartDate]), [OIS].[CloseDate]) [cnt] FROM [dbo].[Activity] [Act] WITH(NOLOCK) WHERE [Act].[AccountId] = [O].[AccountId] AND [Act].[TypeId] = '{E1831DEC-CFC0-DF11-B00F-001D60E938C6}'), 0) [AccountDaysToLastCall], ( SELECT COUNT(*) [cnt] FROM [dbo].[Activity] [Act] WITH(NOLOCK) INNER JOIN [dbo].[ActivityResult] [Ar] WITH(NOLOCK) ON ([Act].[ResultId] = [Ar].[Id]) WHERE [Act].[AccountId] = [O].[AccountId] AND [Act].[CreatedOn] < [OIS].[CloseDate] AND [Ar].[Id] = @P5 AND [Act].[TypeId] = '{E2831DEC-CFC0-DF11-B00F-001D60E938C6}') [AccountEmailsTotal], ISNULL(( SELECT DATEDIFF(DAY, MAX([Act].[StartDate]), [OIS].[CloseDate]) [cnt] FROM [dbo].[Activity] [Act] WITH(NOLOCK) WHERE [Act].[AccountId] = [O].[AccountId] AND [Act].[TypeId] = '{E2831DEC-CFC0-DF11-B00F-001D60E938C6}'), 0) [AccountDaysToLastEmail] FROM [dbo].[Opportunity] [O] WITH(NOLOCK) INNER JOIN ( SELECT MAX([OS].[StartDate]) [StartDateLastStage], MAX([OS].[DueDate]) [CloseDate], [OS].[OpportunityId] [OpportunityId] FROM [dbo].[OpportunityInStage] [OS] WITH(NOLOCK) GROUP BY [OS].[OpportunityId]) [OIS] ON ([OIS].[OpportunityId] = [O].[Id]) LEFT OUTER JOIN [dbo].[Account] [A] WITH(NOLOCK) ON ([O].[AccountId] = [A].[Id]) WHERE [O].[StageId] IN ('{60D5310C-5BE6-DF11-971B-001D60E938C6}', '{A9AAFDFE-2242-4F42-8CD5-2AE3B9556D79}', '{736F54FD-E240-46F8-8C7C-9066C30AFF59}') ORDER BY [O].[CreatedOn] DESC

Is it a known issue ? did i miss something ?

 

Best regards

Patrice

Like 0

Like

4 comments
Best reply

Hello Patrice,

 

it seems like you added some data to the model which cannot be correctly proccessed. There is a chance it was a column with the type "Date" which cannot be operated automatically.

 

To fix this, you need to delete the "StartDateLastStage" column from the request for the machine learning model.

 

Regards,

Gleb.

Hello Patrice,

 

it seems like you added some data to the model which cannot be correctly proccessed. There is a chance it was a column with the type "Date" which cannot be operated automatically.

 

To fix this, you need to delete the "StartDateLastStage" column from the request for the machine learning model.

 

Regards,

Gleb.

Hi Gleb,

thanks for your answer.

in "Advanced tools for adding columns", i deleted the StartDateLastStage part in the sql query : 

the model works now.

Though I'm not sure what happened, as the model is a OOB one which was not modified from our side.

 

Best regards

Patrice

Patrice-ABPost,

 

thnks for letting me know.

I will pass this information to the dev team so they can take a look.

 

Regards,

Gleb.

 

mmh, after all it does not seems to work so well :

the model testing is ok, but when using [Predict data] process element, an error occur, i must have messed up the model.

Maybe i should start from a fresh new model, or maybe use the 7.14.0 version of the model, which is available in the model collection.

 

System.AggregateException: One or more errors occurred. ---&gt; Terrasoft.Web.Http.Abstractions.HttpException: [InternalServerError] {"responseStatus":{"errorCode":"InternalServerError","message":"Engine: [UsageException] ['CreatedOn']: Column(s) ['CreatedOn']] contain missing values"}} ---&gt; System.Exception: {"responseStatus":{"errorCode":"InternalServerError","message":"Engine: [UsageException] ['CreatedOn']: Column(s) ['CreatedOn']] contain missing values"}}
   --- End of inner exception stack trace ---
   at Terrasoft.Configuration.ML.MLServiceProxy.TransformResponseErrorByStatus(IRestResponse response)
   at Terrasoft.Configuration.ML.MLServiceProxy.Post[T](String methodName, Object requestBody, Int32 timeoutSec)
   at Terrasoft.Configuration.ML.MLServiceProxy.Predict[TOut](Guid modelInstanceUId, String methodName, PredictionInput predictionParams, Int32 timeoutSec)
   at Terrasoft.Configuration.ML.MLServiceProxy.Predict[TOut](Guid modelInstanceUId, IList`1 dataList, String methodName, DatasetInput defaultPredictionParams, Int32 timeoutSec)
   at Terrasoft.Configuration.ML.MLServiceProxy.Score(MLModelConfig model, IList`1 dataList, Boolean predictContributions)
   at Terrasoft.Configuration.ML.MLBaseEntityPredictor`1.Predict(MLModelConfig modelConfig, IList`1 dataList, MLDataPredictionUserTask predictionUserTask)
   at Terrasoft.Configuration.ML.MLBatchPredictor`1.Predict(MLModelConfig model, IList`1 dataList, MLDataPredictionUserTask predictionUserTask)
   at Terrasoft.Configuration.ML.MLBatchPredictor`1.&lt;&gt;c__DisplayClass17_0.&lt;Predict&gt;b__0(IList`1 dataForPrediction)
   --- End of inner exception stack trace ---
   at Terrasoft.Configuration.ML.MLBatchPredictor`1.Predict(MLModelConfig modelConfig, Action`1 chunkPredictedHandler, MLDataPredictionUserTask predictionUserTask)
   at Terrasoft.Configuration.ML.MLBatchPredictionJob.PredictAndSaveResult(MLModelConfig model, UserConnection userConnection, MLDataPredictionUserTask predictionUserTask)
   at Terrasoft.Configuration.ML.MLBatchPredictionJob.ProcessModel(UserConnection userConnection, Guid modelId, String filterData, MLDataPredictionUserTask predictionUserTask)
   at Terrasoft.Core.Process.Configuration.MLDataPredictionUserTask.InternalExecute(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)
---&gt; (Inner Exception #0) Terrasoft.Web.Http.Abstractions.HttpException (0x80004005): [InternalServerError] {"responseStatus":{"errorCode":"InternalServerError","message":"Engine: [UsageException] ['CreatedOn']: Column(s) ['CreatedOn']] contain missing values"}} ---&gt; System.Exception: {"responseStatus":{"errorCode":"InternalServerError","message":"Engine: [UsageException] ['CreatedOn']: Column(s) ['CreatedOn']] contain missing values"}}
   at Terrasoft.Configuration.ML.MLServiceProxy.TransformResponseErrorByStatus(IRestResponse response)
   at Terrasoft.Configuration.ML.MLServiceProxy.Post[T](String methodName, Object requestBody, Int32 timeoutSec)
   at Terrasoft.Configuration.ML.MLServiceProxy.Predict[TOut](Guid modelInstanceUId, String methodName, PredictionInput predictionParams, Int32 timeoutSec)
   at Terrasoft.Configuration.ML.MLServiceProxy.Predict[TOut](Guid modelInstanceUId, IList`1 dataList, String methodName, DatasetInput defaultPredictionParams, Int32 timeoutSec)
   at Terrasoft.Configuration.ML.MLServiceProxy.Score(MLModelConfig model, IList`1 dataList, Boolean predictContributions)
   at Terrasoft.Configuration.ML.MLBaseEntityPredictor`1.Predict(MLModelConfig modelConfig, IList`1 dataList, MLDataPredictionUserTask predictionUserTask)
   at Terrasoft.Configuration.ML.MLBatchPredictor`1.Predict(MLModelConfig model, IList`1 dataList, MLDataPredictionUserTask predictionUserTask)
   at Terrasoft.Configuration.ML.MLBatchPredictor`1.&lt;&gt;c__DisplayClass17_0.&lt;Predict&gt;b__0(IList`1 dataForPrediction)&lt;---

 

Show all comments

Hi all ,

I have a custom business rule in mobile app were i need to set the value of a lookup filed of the records. but i just can't find the way how to do it.

for example:



Terrasoft.sdk.Model.addBusinessRule("InvoiceProduct", {

    // The name of the business rule.

    name: "MyRULE",

    // Business rule type: custom.

    ruleType: Terrasoft.RuleTypes.Custom,

    triggeredByColumns: ["Product"],

      events: [Terrasoft.BusinessRuleEvents.Load],

    // Handler function.

    executeFn: function(record, rule, column, customData, callbackConfig) {

        record.set("Product",{value:  , displayValue: });

        // Asynchronous return of values.

        Ext.callback(callbackConfig.success, callbackConfig.scope, [isValid]);

    }

});

 

But this does not work.. i get :

record.set("Product",{value:  , displayValue: });

base-model.js:453 Uncaught TypeError: value.toLowerCase is not a function

 

Can you help ?

 

Thanks.

Eran.

 

Like 0

Like

2 comments

Hi Eran,

Here is how you should write a set function:

set(columnName, value, fireEventConfig)

Here is an example of how to set lookup fields:

record.set("ActivityCategory", ActivityCategory.Store.getById("8b16d130-313e-4b12-a12e-73a2dd8d33cf"), true);

Please note, the value parameter should always contain a record, if this lookup is not loaded in your mobile app then you should do a request to a database in order to get it instead of Store.getById.

Thanks Dmytro,

You are right, I needed to request the database to fetch the lookup record, and only then I could use the  " set(columnName, <lookup record>, fireEventConfig)  "

Show all comments