Hi! 

I saw that in Creatio, I'm able to see the change log only for the things that we've created, but I can't see the changes made by anyone in the tabs that are out of the box like the [Feed], [Attachments and notes]. I want to mention that I'm admin and still nothing into the change log about these tabs. 

What should I do?

 

Thank you!

Like 0

Like

3 comments

Hello,



You could set up a change log to see who created, modified, and deleted feed messages for a general list (the object of the feed message is called SocialMessage) and the same for [Attachments and notes] tab.

Please see the link below: 

Set up the change log

 

We registered this idea in order to select the necessary object to log the website.

Kalymbet Anastasia,

Is it possible that we can display the change logs as a detail of a page?



Joseph Francisco,


Hello,

I have the same requirement, have you found the object where the logs are stored in?

Thank you

Show all comments

Hi team,

 

I am trying to create dynamic folder programmatically (from client side code), 

Below is the code I tried where I am able to create record in ObjectFolder table but the folder is not visible on the frontend (UI), the reason what I think could be that I am using direct Insert.

 

When the above solution doesn't worked for me I tried calling "saveLookupFolder" method inside FolderManagerViewModel. Below is the code for it.

Following is the "saveLookupFolder" method inside FolderManagerViewModel.

 

It's giving me this error : 

In my usecase I have to create a record inside ObjectFolder table with two parameters which are "SearchData" (folder filter Value) and "Name" (folderName). But I don't know If I am using the right base function (saveLookupFolder) for this purpose, but I also think that direct insert will provide no help to me.

Someone please help in this case. What base function to call and how to call?

 

Like 0

Like

0 comments
Show all comments

I have created a new section in Creatio 7.18, how can I access it via EntityDataService.svc? If so, is there anything specific that needs to be done when creating a new partition? I was advised to compile. I ran "Recompile All" but it still doesn't show up in EntityDataService.svc.

I can only access the objects that were there by default.

Like 0

Like

1 comments

EntityDataService.svc implements the OData 3 API. However, if your object exists in a package that compiles to it's own assembly (an assembly package - meaning your package containing your object has the "Compile package into it's own assembly" checked), it is not accessible via OData 3 and instead you must use OData 4 (not EntityDataService.svc). 

See info on using OData 4 here: https://academy.creatio.com/docs/developer/integrations_and_api/data_se…

The details about OData 3 (which uses EntityDataService.svc) not being able to access objects from Assembly Packages here: https://academy.creatio.com/docs/7-18/developer/development_tools/packa…

Object access is not supported via the OData protocol version 3. Use the OData protocol version 4 to access objects in an assembly package

Ryan

Show all comments

Hi! 

I have a question about the feed tab. 

I do want to ask you if there's any out of the box possibility to change the permissions for a user. I don't want to let a user to edit or delete his own comment posted in the feed tab, but the manager should have access to those 2 functionalities.

Can I implement this without code?

 

Thank you,

Like 0

Like

1 comments

Hello,

 

If you want to configure the deletion permissions please use Permission to delete messages and comments:image.png



Permission to delete messages and comments gives permission to delete messages and comments left by other users in the [Feed] section, on the [Feed] tab of the Notification Panel, and on the [Feed] tab of the view and edit pages of the system sections.

Please note, that there is no possibility to deny permission to users to delete their own messages and comments even if they do not have access permissions to this system operation.

Show all comments

Hi Team,

 

There is a requirement in which I have to verify a specific condition based on fields and lookup values on clicking the SAVE button. I am using ESQ in edit page schema while overriding asyncValidate method to achieve this. 

 

But, I am unable to figure out which commands can be used to get further field values of that lookup, and then compare it. For reference, here in my case, Contact lookup is on Custom section and I want to fetch Department value of it .

 

Thanks in Advance, Prashant Jha

Like 0

Like

4 comments

Hello, 

 

Please check the below Community post for an example of the implementation:

https://community.creatio.com/questions/actually-i-have-developed-code-…

 

Let us know in case of any questions. 

Best regards,

Anastasiia

Hi Anastasiia,

 

How can we fetch columns of other object through ESQ by matching them with a condition. Any example or syntax will be helpful.

Prashant Jha,

Hi, take a look at this article, I believe this is what you needed.

In any case, you can use another ESQ request based on the values you got from the previous one.

Hi, I am overriding asyncValidate method with multiple filters (A AND C) AND (B AND C). Here C is the field from the same object, A and B are the fields from other object using ESQ.

 

I have created a separate function to achieve this as below :

 

ConditionCheck : function(ID, BUnit, esq)

            {

                

            var esqFirstFilter = esq.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, "Id",ID);

            var esqSecondFilter = esq.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL,"Department.Name",BUnit);

            

             esq.filters.logicalOperation = Terrasoft.LogicalOperatorType.AND;

            

            

                     esq.filters.add("esqFirstFilter",esqFirstFilter);

                     esq.filters.add("esqSecondFilter",esqSecondFilter);

                

                esq.getEntity(function(result)

                              {

                    if(!result.success)

                        {

                            this.showInformationDialog("Error");

                            return false;

                        }

                    return true;

                },this);

            },

 

And, I have used this function to call (A AND C) and (B AND C) separately as:

 

var result1 = this.ConditionCheck (A, C, esq);

var result2 = this.ConditionCheck (B, C, esq);

 

Now, I am not sure how we can combine the result1 and result2 in asyncValidate method such that it will only going to save when both result1 and result2 holds "true". Please help me on this.

Show all comments

Hi Community,

does it require more resources to have several business processes left "executing" (waiting for a timer condition to be satisfied to do something) or to have a single process scheduled to run every 5 min (i.e) that searches for some record that has a "due date" condition close to the current date time?

the difference would be that the former would be left "pending" for sometime, and the latter would terminate.

 

Let us know,

Thanks in advance.



Best regards,

 

Luca

Like 0

Like

1 comments
Best reply

Hi Luca,

The better approach in this case - is to have a single scheduled process that will be executed fastly. 



Because each process, that is executing in background mode using 1 thread of quartz worker (Default value = 5 workers). So, if you will start a lot of the background processes, that are executing (waiting for some event) - you can overfill the background processes queue and new background processes will not start correctly until the old processes are not finished and the quartz worker is not free for a new task.

Hi Luca,

The better approach in this case - is to have a single scheduled process that will be executed fastly. 



Because each process, that is executing in background mode using 1 thread of quartz worker (Default value = 5 workers). So, if you will start a lot of the background processes, that are executing (waiting for some event) - you can overfill the background processes queue and new background processes will not start correctly until the old processes are not finished and the quartz worker is not free for a new task.

Show all comments

Creatio Community,

 

Is it possible to format a custom macro field on an email template? I need to display a date with the long format date on an email (eg. August 25, 2022) 



The email definition that has the date looks like this:



The details of this fee were [#UsrPatientContactPreference.UsrEmailText#] to the patient or dispute submitter, on [#UsrRequestForAdditionalInformationSentOn#]



The  last field is the one I need to format.

 

Thanks,

Jose

Like 0

Like

1 comments
Best reply

Hi Jose,

 

Unfortunately, of now, there is no such functionality, but our R&D already has plans to implement it in future versions of Creatio!

 

As a workaround you can add a macro handler into the template:

https://academy.creatio.com/docs/developer/application_components/email…

Hi Jose,

 

Unfortunately, of now, there is no such functionality, but our R&D already has plans to implement it in future versions of Creatio!

 

As a workaround you can add a macro handler into the template:

https://academy.creatio.com/docs/developer/application_components/email…

Show all comments

Hi,

I need to hide/remove the New button and the "Data Import" option available under Actions in a lookup object.

Like 0

Like

5 comments

Hello Janhav,

 

The best way to achieve your business task is disallow the import and export operation permission for users.

 

Best regards,

Bogdan

Hi Bogdan,

I need to restrict import for only few specific lookup objects and not for all objects.

I see the operation permission restricts for all objects.

Janhavi Tanna,

 

Please feel free to check the similar Creatio Community post, where discussed your question:



https://community.creatio.com/questions/how-hide-or-remove-actions-sect…



Best regards,

Bogdan

Bogdan,

I'm unable to find the page for lookup objects in which the above mentioned code can be executed.

Janhavi Tanna,



Please check methods in the BaseLookupConfigurationSection schema.

 

In order to hide the specific action, you will need to change a Visible property:
 
getSectionActions: function() {
                var actionMenuItems = this.callParent(arguments);
                actionMenuItems.each(function(item) {
                    if(item.values.Caption.bindTo === "Resources.Strings.ExportListToExcelFileButtonCaption"){
                        item.values.Visible = false;
                    }
                });
                return actionMenuItems;
            }
In order to remove the specific action from the collection:
 
getSectionActions: function() {
                var actionMenuItems = this.callParent(arguments);
                var itemToRemove;
                actionMenuItems.each(function(item) {
                    if(item.values.Caption.bindTo === "Resources.Strings.ExportListToExcelFileButtonCaption"){
                        itemToRemove = item;
                    }
                });
                actionMenuItems.remove(itemToRemove);
                return actionMenuItems;
            }





BR,

Bhoobalan Palanivelu.

Show all comments

I am trying to setup the WorkspaceConsole for .Net core application(CRM bundle v8.0) and trying to follow the link https://academy.creatio.com/docs/8-0/developer/development_tools/delive… on Ubuntu.

Can anyone please assist on Step 4 replacement for .Net core as we cannot find the mentioned file

 

Like 0

Like

3 comments

Hello Altaf,



There is a separate paragraph in this article for WorkspaceConsole on .NET Core



Best regards,

Bogdan

 

Thanks Bogdan. I missed it.

Would like to know whether BuildConfiguration is equal to BuildWorkspace from .Net framework? As I checked my changes were not built after running BuildConfiguration only. It works only when we trigger Publish from Creatio.

Altaf Hussian,



You can find the description of the Parameter in the same article. 



Best regards,

Bodagn

Show all comments

Hello Everyone,



Hope all are fine and healthy,



I have a scenario where I have to take the users through few (let's say 2-3 ) preconfigured pages where they will fill values in fields displayed on the pages (for ex. A = true, B= false, Country = Australia) and once they submit on the last page, then they should be redirected to the section page and a dynamic folder should be automatically created having the filled in values by the users as filter conditions (A = true, B= false, Country = Australia).



Can anyone suggest an approach to this scenario.



I have checked that whenever we create a folder with filter confitions a record will be created in table "ObjectFolder" where In "SearchData" column our applied filter condition will be stored as bytes.

But still not getting any Idea on how to approach this problem.



Thanks you very much for your time.

Like 0

Like

4 comments

I have an article that shows the opposite, how to read the filter conditions from a folder and use in an ESQ. https://customerfx.com/article/programmatically-using-section-folder-fi…

Perhaps you could work backwards from there to do the opposite? It appears you could just form the ESQ filters as JSON, then use System.Text.Encoding.GetBytes to get the JSON as a byte array and write back to SearchData using the entity class SetBytesValue function.

Hope this helps get you started.

Ryan

Hi Ryan,

 

My code looks like below so far 

 

As per your Instructions, I have created ESQ filters but didn't know how to convert them to JSON.

 

Please help !

 

Hi Ryan Farley,

 

I try to write and run below code 

 

And it is giving me below error : 

Newtonsoft.Json.JsonSerializationException: Self referencing loop detected for property 'Provider' with type 'Terrasoft.Core.ManagerProvider'. Path 'Manager.DataValueTypeManager.Provider.AppConnection.LicManager'

 

Any help please !

Hi Team,

 

Any help in this case please.

Show all comments