Hello Community,

I am currently facing an issue with a model page that contains two lookup fields: one for contact and the other for email. My goal is to allow the user to select an email address associated with the selected contact, not just the primary email, but any email linked to that contact. To achieve this, I am using dynamic filtering for ContactCommunication to filter by the current contact and email communication type.

I’ve implemented this logic within the crt.LoadDataRequest handler because the email field is a simple dropdown and does not open a separate selection page.

The problem: 
When a contact is selected, I refresh the email list data source as expected. However, the email list is not properly reloading after a contact is deselected and reselected. In this case, the email filters do not update correctly. The issue is that the email list only reloads and applies the correct filters when I manually reselect the email field.

This behavior is causing a problem where the email dropdown is not correctly filtered based on the newly selected contact. Below is the code I am using for the handler:
 

handlers: /**SCHEMA_HANDLERS*/[
 {
   request: "crt.LoadDataRequest",
   handler: async (request, next) => {
     const emailDataSource = "UsrEntity_004572bDS_UsrEmailAddre_gzbqqxc_List_DS";
     const contactDataSource = "UsrEntity_004572bDS_UsrContact_7esmp6a_List_DS";

     if (request.dataSourceName === emailDataSource) {
       const lookupValue = await request.$context.UsrEntity_004572bDS_UsrContact_7esmp6a;
       console.log("Lookup Value:", lookupValue);

       if (lookupValue) {
         console.log("Filter Hit");
         const filter = new sdk.FilterGroup();
         filter.addSchemaColumnFilterWithParameter(sdk.ComparisonType.Equal, "Contact", lookupValue.value);
         filter.addSchemaColumnFilterWithParameter(sdk.ComparisonType.Equal, "CommunicationType", "EE1C85C3-CFCB-DF11-9B2A-001D60E938C6");

         const newFilter = Object.assign({}, filter);
         newFilter.items = filter.items;
         console.log("Filter created");
         request.parameters.push({
           type: "filter",
           value: newFilter
         });
         console.log("Filter added to request");
       } else {
         console.log("Empty Lookup");
         // request.$context.UsrEntity_004572bDS_UsrEmailAddre_gzbqqxc = null;
         // request.$context.UsrEntity_004572bDS_UsrEmailAddre_gzbqqxc_List_DS = null;
       }
     }

     if (request.dataSourceName === contactDataSource) {
       console.log("Contact Selected, reloading email address list");
       // request.$context.UsrEntity_004572bDS_UsrEmailAddre_gzbqqxc = null;

       await request.$context.executeRequest({
         type: "crt.LoadDataRequest",
         $context: request.$context,
         config: { loadType: "reload", useLastLoadParameters: true },
         dataSourceName: emailDataSource
       });

       console.log("Email list reloaded successfully!");
     }

     return await next?.handle(request);
   }
 }
]/**SCHEMA_HANDLERS*/;
 

I would greatly appreciate it if you could look into this issue and suggest a solution.

Thank you!

Like 1

Like

1 comments

It is hard to tell what the issue is based on the code alone, in this situation, it would be better to run a proper debug to see what exactly went wrong. But, based on your description I can assume that there is something wrong with a refresh. Not with its code but rather with a place it is called. Try to use different approaches to it.

Show all comments

Hi team,

We want to add a button in communication panel through which cases section should open in the side pane ( opens on clicking of buttons in communication panel) through with cases can be created quickly without closing the current section page opened in the tab.

 

We have created button in communication panel but we are finding references to open the page in side pane.

if anyone of you can help on this ,I will really appreciate it.

 

Thanks in Advance

Like 0

Like

7 comments
Best reply

Kashish Shakeel,

For Classic, it's doable, but definitely not as easy (there is not a no code approach for classic shell, only for Freedom shell). If you're using classic shell, best approach is to look at the code for the other panels and duplicate for your needs.

Ryan 

Hello Kashish,

Thank you for your question. First of all, are you using the Shell of Freedom UI in the section from which you are opening the side panel? Secondly, while I believe that creating a case from the side panel is possible, I'm not sure if your logic can be fully implemented. Also, would it be easier to create the case using a modal page in your section?

I'll be happy to assist you and will be waiting for your response.

The Academy refers to those as sidebars and they can be created with no code (more or less) in Creatio 8.1.3 and higher. See https://academy.creatio.com/docs/8.x/no-code-customization/customization-tools/ui-and-business-logic-customization/set-up-a-sidebar

Ryan

Yevhenii Grytsiuk,

 

Thankyou you your reply currently we are using the classic UI,we are not using Shell of Freedom UI in the section.

 

The requirement is to create  a quick access option for creating cases without needing to jump on another page and also in a way that  the information from the current open page can be visible properly as it is going to help in case creation.
 

The best that we thought of was using side panel for case creation while the user can see all information in the current open page.Is there any way you can help me achieve that?

 

 

Yevhenii Grytsiuk,

 

Ryan Farley,

 

Thank you for your reply, we are looking for some information on the same topic in the classic UI.

 

Is there any reference for classic UI? f yes can you please share that information with me?

Kashish Shakeel,

Answering question for Ryan - I am almost certain that, unfortunately not. That's why I was asking if you are using shell or freedom ui. However it is still possible to create a modal/minipage regardless.

Kashish Shakeel,

For Classic, it's doable, but definitely not as easy (there is not a no code approach for classic shell, only for Freedom shell). If you're using classic shell, best approach is to look at the code for the other panels and duplicate for your needs.

Ryan 

Ryan Farley,

 

Hi,

thankyou for your reply we will try to implement customized code.

 

Show all comments

Hello,

 

I would like to know how to approach the task of extracting the model of field entities to a CSV  or Excel file.

The idea is to provide project managers with a simplified view of the fields available in my Creatio instance. I'm not looking for details, just the field name, code, label (translation?), data type.

 

Any sugestions on how to approach this task?

 

Thanks,

Vlad 

Like 0

Like

4 comments
Best reply

This marketplace addon will provide you with an Excel export of all obejcts in the system, along with columns, data types, display titles of objects and columns, etc. 

https://marketplace.creatio.com/app/object-structure-export-creatio

Once installed, there will be a process you can run that gives you the Excel file. 

Ryan

Hello!

 

You can check all the information about data export on Creatio Academy:
https://academy.creatio.com/docs/8.x/creatio-apps/creatio-basics/business-data/exporting-list-data-to-excel

Thank you for your reply Arsenii, but it is not the data that I am trying to export, but the model.

 

Exemple for Accounts entity:

 

field name; field code; field label; data type; default value

Name; Name; The company name; Text - 250 caracters; <empty>

Phone; Phone; Main phone number; Text - Phone number; <empty>

Web; Web; Compny Website; Text - Web link; <empty>

(...)

 

Kind regards,

Vlad

 

This marketplace addon will provide you with an Excel export of all obejcts in the system, along with columns, data types, display titles of objects and columns, etc. 

https://marketplace.creatio.com/app/object-structure-export-creatio

Once installed, there will be a process you can run that gives you the Excel file. 

Ryan

Ryan Farley,

Perfect, I'll give it a try. 

 

Thank you,

Vlad

Show all comments

Hi Creatio Community,

I'm currently working on a customization for the Activity page, and I need some help with dynamically showing/hiding tabs based on the activity type. Here’s what I need to achieve:

  1. Hide the "Attachment" tab when the activity type is "Task."
  2. Show the "Case Attachment" tab for tasks related to a specific case only (it should display attachments only for the selected case).
  3. For all other activity types, the "Case Attachment" tab should be hidden, and the regular "Attachment" tab should be visible.

Essentially, I want the tab visibility to switch dynamically based on the activity type and the case involved. I’d appreciate any suggestions on how to implement this, whether through JavaScript handlers, custom logic, or any other method that can meet this requirement.

Thanks in advance

Like 0

Like

1 comments

Hello,
 

This can be easily implemented using business rules such as "Show/hide an element on a Freedom UI page." We recommend exploring this functionality on our academy.
 

https://academy.creatio.com/docs/8.x/no-code-customization/customization-tools/ui-and-business-logic-customization/freedom-ui-business-rules#title-2416-2
 

I hope this helps!

Show all comments

Hello

 

Does anybody know how to share records in Freedom UI? In classic UI we have "Action" button with "Set up access right" menu item. But I can't see the similar button in Freedom UI, for example, on Contact form page. Shoud I customize the form and add it?

Like 0

Like

1 comments

How to hide Attachment tab in task type activity while showing my own case attachment tab or in general how can i programmatically hide a toggle tab in freedom ui .

I want to hide the attachment toggle tab and show case attachment which is created by be , also want to programmatically trigger their visibility , please refer below image for reference 

 

Like 1

Like

1 comments

I was able to achieve this using only DOM. To do this - two buttons were created: clicking the first button will trigger the usr.HideButtonRequest request, clicking the second button will trigger the usr.ShowAttachmentsRequest. Here is the code of schema handlers:

handlers: /**SCHEMA_HANDLERS*/[
          {
            request: "usr.HideButtonRequest",
            handler: async (request, next) =&gt; {
              let savedAttachmentsElement = document.querySelectorAll('[data-item-marker="Attachments"]')[0];
              request.$context.AttachmentToggleItem = savedAttachmentsElement;
              request.$context.AttachmentToggleItemParentNode = savedAttachmentsElement.parentNode;
              savedAttachmentsElement.parentNode.removeChild(savedAttachmentsElement);
              return next?.handle(request);
            }
          },
          {
            request: "usr.ShowAttachmentsRequest",
            handler: async (request, next) =&gt; {
              let attachmentToggleContainer = request.$context.AttachmentToggleItemParentNode;
              let attachmentsToogleItem = request.$context.AttachmentToggleItem;
              attachmentToggleContainer.appendChild(attachmentsToogleItem);
              return next?.handle(request);
            }
          },
        ]/**SCHEMA_HANDLERS*/,

And also two attributes were added to the viewModelConfig property of the schema (in case you don't have it in the schema - create it):

viewModelConfig: {
          attributes: {
            "AttachmentToggleItem": {},
            "AttachmentToggleItemParentNode": {}
          }
        },

As a result the "Attachments" toggle item is removed when the first button is clicked and then displayed when the second button is clicked. What is left to be done is add and test this approach with handlers like HandleViewModelAttributeChangeRequest.

Show all comments

Good day, I have a question regarding the tabs in Classic UI. I want to make them disabled, or locked or unclickable in my edit page. If you know how to implement it please could you show it in the following code snippet:

                "operation": "insert",
                "name": "AgbPrimaryDataTab",
                "values": {
                    "caption": {
                        "bindTo": "Resources.Strings.AgbPrimaryDataTabCaption"
                    },
                    "items": [],
                    "order": 0
                },
                "parentName": "Tabs",
                "propertyName": "tabs",
                "index": 2
 
Like 0

Like

1 comments

Hello Behruzbek, 

If you don't want some users to see the existing tabs, use the following article to hide tabs by code based on different conditions.

Also, it's possible to add business rules for some users. Please note that adding the role to the business rule is impossible for now.

Best regards, 

Anhelina!

Show all comments

Hello , 

 

I have been struggling with permissions lately , I have a Freedom UI Details page that shows sections depending on the user role or the user contact specific information .

When I try to create a Business rule I only find User contact But can't Access User Contact informations . 

Any suggestions please ?

Like 0

Like

1 comments

Could you please provide us with more details. For example, which permissions do you have on Contacts object.

Show all comments

Hi Team,

I am trying to send a user notification at the end of my business process, but I would prefer it not to appear as a hyperlink. I've attached a screenshot showing how it currently looks, along with my business process configuration where I set up the user notification element. I've reviewed an article on setting up notifications in a business process, but I'm looking for a workaround to disable the hyperlink.

Send a user notification in notification center from process | Community Creatio

 

 

 

Thanks.

 

Like 0

Like

1 comments

Hello,

 

Overall, it is the basic functionality of the site that the link should work as a hyperlink.

Currently, if you remove the Object column, the notification doesn't come through at all.

One option, which we do not recommend using, is to select a value for which there is no schema to drill into. However, this is not an ideal method.

 

For example, if you select Schema there:

 

It looks exactly the same, but nothing happens when you click on it.

Show all comments

Hello Creatio community,

 

I am using Creatio Studio Product (V.8.1.2.3941) and license "bpmonline self-service portal on-site subscription". 
I want to create a new section and page for a new object that I developed. This object will be available in Portal workplace. I created the portal screen using classic UI but it doesn't appear in the workplace setup for "External users". The only screen that Portal users can view is "Knowledge Base" screen which came with Creatio's product.

I read the Creatio documentation in "https://academy.creatio.com/docs/sites/academy_en/files/pdf/node/2088/C…" and it says that: "If you use the self-service portal, you can modify the existing portal sections but cannot add new sections.". How can I make my screen for my new created object available for portal users?

Like 0

Like

1 comments

Hello,

 

Unfortunately, according to the basic logic of our application, you cannot see any custom sections on the portal within the limitations of self-service portal license.
You can find more details in this article.

Show all comments