Hello Community,

 

I would like to switch tabs based on a user action using code in a handler. Is it possible to write code that opens a custom tab on the same page, as shown in the figure below?

 

On button click, I have implemented below code in the handler, but it is not working.

{
        request: "crt.OpenTab",
        handler: async (request) => {
            request.$context.set("SelectedTab", "CustomTab");
            request.$context.set("ActiveTab", "CustomTab");
            request.$context.profile.set("Tabs_SelectedTabIndex_Profile", 2);
        return true;
     }

}

 

Best regards,

Ajay Kuthe

 

 

Like 2

Like

3 comments
Best reply

The attribute you need to set is the [TabControlName]_SelectrdTabIndex_Profile. If you tab control is named "TabPanel_fb0xrup", then the attribute you would set would be:

// select first tab
request.$context.TabPanel_fb0xrup_SelectedTabIndex_Profile = 0;

Note, the indexes are zero based.

Ryan

The attribute you need to set is the [TabControlName]_SelectrdTabIndex_Profile. If you tab control is named "TabPanel_fb0xrup", then the attribute you would set would be:

// select first tab
request.$context.TabPanel_fb0xrup_SelectedTabIndex_Profile = 0;

Note, the indexes are zero based.

Ryan

Also, to clarify, there is no "set" method in Freedom UI pages like there was in classic pages. You will just set and read values from the attributes directly as normal variables.

Ryan Farley,

Yes, it works fine.

 

However, how can I get the index of a particular tab using the Element code in the context? #FreedomUI

 

Show all comments

Hi community,

In the classic UI we 'controlled' the Save event in business rules, with the field 'Created On' (is filled in). 

I dont see the same behaviour in FreedomUI. The 'Created On' field is filled in even though the record is not saved yet. 

Any workaround for this, especially with Business Rules?

Sasor

Like 0

Like

4 comments

Hi,

 

The field is filled in, but until you save the entry, the event will not be executed. Please clarify what business task is so necessary?

Hi, 

Scenario : Show a specific field only when the record is created.

Which Business Rule should we use?

Thanks

Sasor

Sasori Oshigaki,


Greetings!

 

Thank you for reaching out. I looked into possible solutions and came across the idea that you could rely on the Resolution time field or find similar fields that are not created until you press Save. Unfortunately, I don’t see any other viable options in your case.



 

As in my case:

 

Regards,
Orkhan

Orkhan,

we have also solved requests like this by using fields that will be filled after the record was saved.

However, it would be great if you could add something like a "mode" to the business rules conditions that would have values like "new" and "update".

 

BR

Show all comments

Dears colleagues, 

 

I want to show a message to users when Creatio is working on some process and hide it when the process ends, is there something similar to Toast dialogs/messages but to implement in a Freedom UI page?

 

I have also seen Ryan Farley's post (https://customerfx.com/article/displaying-toast-message-popups-from-cre…), but in both cases we need to specify a duration and I need the message to be visible until the process finishes. Sometimes it takes a few seconds and when there are more registrations, it could be several minutes and I want the user to know that Creatio is working ...

 

Thanks

Julio

Like 1

Like

5 comments
Best reply

We had a workaround to display the same toast message again but with a very short duration, since only 1 toast can display at a time, the new one replaces the original and then disappears. Not great and it would be nice to be able to hide toast messages on demand - ideally with reference to a specific message, so if we got back some ID from starting the toast notification.

You can also add a duration and awaitResponse to the request. Using awaitResponse will have it appear until acknowledged by the user.

request.$context.executeRequest({
    type: "crt.NotificationRequest",
    message: "This is my toast message!",
    awaitResponse: true
});

However, i don't believe there is anyway to have it display until you tell it to close (after the process completes)

thank Ryan,

 

I tried 

request.$context.executeRequest({
	type: "crt.NotificationRequest", 
	message: "Validando carga Excel...", 
	duration: 60000, 
	awaitResponse: true });

 

But in this case if the process ends before the 60seconds, need to user to close the message.... 

 

Is there another way to implement something similar?

 

Thanks again

Julio

We had a workaround to display the same toast message again but with a very short duration, since only 1 toast can display at a time, the new one replaces the original and then disappears. Not great and it would be nice to be able to hide toast messages on demand - ideally with reference to a specific message, so if we got back some ID from starting the toast notification.

Julio.Falcon_Nodos,

Harvey's idea could work, display the first toast with awaitResponse, then when the process ends display another toast without the awaitResponse and it should take the place of the first one.

Ryan

Harvey Adcock,

Thanks, great idea! I'll try it

Show all comments

site "community" "form"

site "community" "form"

site "community" "form"

site "community" "form"

Like 0

Like

0 comments
Show all comments

Like 0

Like

1 comments

Hello,

 

The mentioned error indicates that the application cannot access the DB. 

Please double-check the access parameters specified in ConnectionStrings.config file. 

Best regards,

Arsenii

Show all comments

Hi Community, 

 

We have upgraded the production environment from version 8.0.6 to 8.1.4. During the upgrade process, we encountered some errors in the log files (see below), but the upgrade continued to the latest version (8.1.4). 

----------------------------------------------------------------------------------------------------------------------------------
console.error('The "Default" workspace assembly is not initialized.
ConfigurationAssemblyPath [/app/conf/bin/3/Terrasoft.Configuration.dll]
WorkspacePackagesPath [/app/Terrasoft.Configuration/Pkg]
LoadWorkspaceAssemblyError: [Error has occurred during the loading of workspace build
Could not load file or assembly "CrtEmailSender, Version=8.1.4.2940, Culture=neutral, PublicKeyToken=null". The system cannot find the file specified.

 

Could not load file or assembly "CrtCaseService, Version=8.1.4.2940, Culture=neutral, PublicKeyToken=null". The system cannot find the file specified.

 

Could not load type "Terrasoft.Configuration.DayInCalendarObjectV2" from assembly "CrtCalendar, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null".
Could not load type "Terrasoft.Configuration.DayInCalendarExtendedV2" from assembly "CrtCalendar, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null".
Could not load type "Terrasoft.Configuration.WorkingTimeIntervalObjectV2" from assembly "CrtCalendar, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null".
Could not load type "Terrasoft.Configuration.CalendarUtilsBase" from assembly "CrtCalendar, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null".
Could not load file or assembly "CrtSLM, Version=8.1.4.2940, Culture=neutral, PublicKeyToken=null". The system cannot find the file specified.

 

Could not load file or assembly "CrtMessage, Version=8.1.4.2940, Culture=neutral, PublicKeyToken=null". The system cannot find the file specified.

 

Could not load file or assembly "CrtWebhookServiceBase, Version=8.1.4.2940, Culture=neutral, PublicKeyToken=null". The system cannot find the file specified.

 

Could not load file or assembly "CrtWebFormBase, Version=8.1.4.2940, Culture=neutral, PublicKeyToken=null". The system cannot find the file specified.

 

Could not load file or assembly "CrtTouchPointBase, Version=8.1.4.2940, Culture=neutral, PublicKeyToken=null". The system cannot find the file specified.]
WorkspaceAssemblies: [CrtBaseConsts (Ver. 0.0.0.0), CrtFeatureToggling (Ver. 0.0.0.0), CrtCoreBase (Ver. 8.1.4.207), CrtMLangContent (Ver. 0.0.0.0), CrtMacrosBase (Ver. 0.0.0.0), CalendarBase (Ver. 0.0.0.0), CrtEmailTemplate (Ver. 0.0.0.0), CrtML (Ver. 0.0.0.0), CrtCalendar (Ver. 0.0.0.0), CrtSecurity (Ver. 0.0.0.0), Workplace (Ver. 2.0.0.0), CrtUISwitcher (Ver. 8.1.0.6492), CrtOmnichannelApp (Ver. 1.0.0.0), IntegrationV2 (Ver. 1.0.0.2), SspWorkplace (Ver. 2.0.0.0), MLProcessDesigner (Ver. 8.0.3.1669), XSSProtection (Ver. 0.0.0.0), CSP (Ver. 8.1.3.6587), FeatureToggling (Ver. 1.0.0.0), CrtCore (Ver. 8.1.4.2810), CrtCall (Ver. 8.1.2.3000), CrtSecurity7x (Ver. 0.0.0.0), CrtTouchPoint (Ver. 1.0.0.0), CrtProductivityApp (Ver. 8.1.2.3660), CrtLead (Ver. 8.1.1.1828), CrtJunkFilter (Ver. 8.0.10.242), CrtSpecification (Ver. 8.1.4.2800), CrtMLLeadScoring (Ver. 8.1.1.1828), CrtCase7x (Ver. 8.1.3.5953), CrtProductBase (Ver. 8.1.1.1828), CrtDocument (Ver. 8.1.1.1828), CrtInvoice (Ver. 8.1.1.1828), CrtOrder (Ver. 8.1.1.1828), CrtSLM7x (Ver. 8.1.0.1455), CrtCustomer360Mobile (Ver. 8.1.0.1455), CrtSLMITILService (Ver. 8.1.2.1093), CrtOpportunity (Ver. 8.1.1.1828), CrtProductCatalogue (Ver. 8.1.1.1828), CrtCustomer360App (Ver. 8.0.10.4653), CrtSLMITILService7x (Ver. 8.1.0.1455), CrtInvoiceOrder (Ver. 8.1.1.1828), CrtSupplyPayment (Ver. 8.1.1.1828), MLSimilarCaseSearch (Ver. 8.1.0.1675), CrtContract (Ver. 8.1.1.1828), CrtMLOpportunityScoring (Ver. 8.1.1.1828), CrtContractDocument (Ver. 8.1.1.1828), CrtOrderContract (Ver. 8.1.1.1828), CrtMLLeadConversion (Ver. 8.1.1.1828), CrtProductCatalogueInInvoice (Ver. 8.1.1.1828), CrtInvoiceContract (Ver. 8.1.1.1828), CrtProductCatalogueInOrder (Ver. 8.1.1.1828), CrtSimilarLead (Ver. 1.0.0.0), CrtTouchPointInC360 (Ver. 8.1.1.1828), CrtOpportunityManagement (Ver. 8.1.1.1828), CrtOrderDocument (Ver. 8.1.1.1828), CrtOrderLead (Ver. 8.1.1.1828), CrtOrderContractMgmtApp (Ver. 8.1.1.1828), CrtKnowledgeManagementObject (Ver. 8.1.2.2782), CrtLeadOppMgmtApp (Ver. 8.1.1.1828), CrtCaseService7x (Ver. 8.1.0.2567), CrtSalesInC360 (Ver. 8.1.1.1828), CrtOpportunityInvoice (Ver. 8.1.1.1828), CrtPlaybook (Ver. 8.1.2.2782), CrtMatomoConnector (Ver. 1.0.0.0), CrtCaseManagement (Ver. 0.0.0.0), CrtOCMInLeadOppMgmt (Ver. 8.1.1.1828), CrtDigitalAdsApp (Ver. 1.0.0.0), CrtCaseManagementApp (Ver. 8.1.3.4903), CrtEngagementToolsApp (Ver. 8.1.2.3105), CrtInvoiceInC360 (Ver. 8.1.1.1828), CrtKnowledgeManagementApp (Ver. 8.1.2.2782), CrtOrderContractInC360 (Ver. 8.1.1.1828), CrtMarketingCampaignsApp (Ver. 1.0.0.0), CrtOpportunityInC360 (Ver. 8.1.1.1828), CRM_F (Ver. 8.0.7.3863), MSchooling (Ver. 8.0.7.3863), UsrApp_kgvwarg (Ver. 8.1.0.6828), UsrApp_tbza4yl (Ver. 8.1.0.6828), PfdReport (Ver. 8.0.7.3863), CrtTouchPointInLead (Ver. 8.1.1.1828), CrtLeadOppMgmtInC360 (Ver. 8.1.1.1828), CrtC360InUiV2 (Ver. 8.1.1.264), UsrApp_cs2z91q (Ver. 8.1.0.6828)]');

----------------------------------------------------------------------------------------------------------------------------------
This error causes the application to not display the login page. Instead, it keeps showing a blank page with the Creatio logo. When checking the console, it says:


When accessed the configuration page using the link (https://hostName/ClientApp/#/WorkspaceExplorer) we ran generate source code for all schema and compile all after, the compilation finished without errors, and the application successfully opened using the login page. However, when verifying if all functionalities were working as expected, we noticed unusual behavior: some standard buttons (e.g., Select multiple records, Select all, Export to Excel, etc.) and the VIEW button on the right are not visible, as shown in the picture below.

have you ever encountered such case ?

 

thanks in advance

Like 0

Like

1 comments

Hello!

 

This issue could happen due to some issue with generating static content on the site. Which can occur after an unsuccessful update in that case we would recommend checking update logs and restoring the site if needed.

 

If the update was successful, the "Compile All" action would fix the issue due to static content generation built-in the compilation process. But we recommend taking this action only if the site was updated successfully.

Show all comments

Hello everyone,

I’m working on a solution that automatically adds 15 minutes to the StartDate and assigns this new value to the DueDate attribute in Creatio. The issue is that although the logs show the correct date (after adding 15 minutes), the DueDate value is not updating on the page, and I still see the old value.

Here’s my code in the handler:

javascript

handlers: [
  {
    request: 'crt.HandleViewModelAttributeChangeRequest',
    handler: async (request, next) => {
      if (request.attributeName === 'StartDate') {
        const startDate = request.$context.StartDate;
        console.log("StartDate before adding minutes: ", startDate);
 
        if (startDate) {
          // Add 15 minutes to StartDate
          const newDueDate = new Date(new Date(startDate).getTime() + 15 * 60 * 		  1000);
          console.log("DueDate after adding 15 minutes: ", newDueDate);
 
          // Assign the new value to DueDate
          request.$context.DueDate = newDueDate;
 
          // I also tried using $set to update the UI
          try {
            if (request.$context.$set) {
              request.$context.$set('DueDate', newDueDate);
            }
          } catch (error) {
            console.log('Error with $set method:', error);
          }
        }
      }
 
      return next?.handle(request);
    }
  }
]
  • The logs show that the date is correctly calculated, and 15 minutes are added 
  • However, on the Creatio interface, I see that DueDate is not updating.
  • Even though I tried using the $set method to update the value, it still does not work.

**Has anyone encountered this issue before? How can I ensure that the DueDate is updated correctly on the interface after modifying StartDate? Any suggestions would be greatly appreciated!

Thank you in advance!

Like 0

Like

2 comments

First of all, are you sure the attribute for DueDate is really DueDate? I'd start with making sure you're using the correct attribute name as located on the viewModelConfigDiff. 

Second, the change request not only fires when a user changes a value, but also when the page loads the data initially. If you want to only handle the change when a user changes the value, add a check for request.silent=false (silent=true means it was silently loaded on the page, not an actual change occurring). 

Your if statement would look like this to only handle changes made after the page it loaded by the user: 

if (request.attributeName === 'StartDate' && !request.silent) {
    // code here
}

Ryan

It actually turned out that the attribute had a different name , but in addition I had to leave the ‘await’ 
const startDate = (await request.$context.StartDate);
Now it works, thank you for your help  :) 

Show all comments

Hi community, 

Could you please help with setting up logging for any actions done by the user specifically, view Contacts/Accounts pages, details?

 

Thanks

Like 0

Like

4 comments

Hi Mariam, 

 

To enable logging for specific actions, navigate to the Settings menu located in the upper-right corner and select Change Log under the Users and Administration section. From there, you can configure and monitor activity for specific objects. Please note that this feature allows you to track any actions performed by users, rather than activities solely related to viewing. Unfortunately, it is not possible to monitor this type of activity without direct user interaction.

 

Hello Hanna, thanks for the response. In case user does no change to the page, but just views data related to some object, will Change log record and keep this info for further access and monitoring of user's activities?

 

No, the change log only shows the records that were modified. Unfortunately, it won't show who has just viewed the record and didn't do anything 

Thanks, Hanna. Are there any plans at Creatio end to implement such possibility, i.e. show who just reviewed the records?

Show all comments

Hello Community,

We have created a button in Leads_FormPage that opens AddTaskMiniPage

Code in Leads_FormPage that opens the AddTaskMiniPage

  {
        request: "usr.OpenTaskModalPageRequest",
        handler: async (request, next) => {
            const handlerChain = sdk.HandlerChainService.instance;
            await handlerChain.process({
                type: 'crt.OpenPageRequest',
                schemaName: 'AddTaskMiniPage',
                $context: request.$context,
                scopes: [...request.scopes]
            });
            return next?.handle(request);
        }
    }		,

 

Our end goal: We want that upon the Activity is created (Save button clicked in AddTaskMiniPage) the value of 'Start' field in AddTaskMiniPage, is copied to another Date field in the Leads_FormPage.

How can this be acheived?

Regards

Sasor

Like 0

Like

3 comments

Hello Sasori,

You can try using BP for this case. For example, when you save a record in a mini page, you also run a business process that will update a value in your lead record. You pass date value to the BP and set (update) relevant field in the lead record. 
 

An easy way to accomplish this is to just use a process with a signal of Activity added with Type=Task, Category=To do, Lead is filled in. Then update the lead with the date. If you have live data updates enabled for the Lead object you'll even see the screen refresh with the value. 

Ryan

Ryan Farley,

Thank you for your input! However, the challenge with this approach is that there might be multiple activities associated with a single Lead that have this specific configuration (Type = Task, Category = To Do, Lead is filled in).

Would it be possible to handle this scenario directly via the Frontend instead?

Looking forward to your thoughts!

Show all comments

Hello 

I have created a business process that reads in the creation and modification of a project id and project manager, 

I then wanted to change the permissions so that only the project manager could delete it, but during the execution of the process the values still remain on true 

What could be the reason for this?  I run the process as an administrator and the delete test is run on a user who does not have these permissions. The way it should work is that no one but the administrator should be able to delete projects. 

 

even though the process is executed, the value remains true 

    "Parametr": "List of rights to delete",
            "Wartość": {
                "Before execution": "[{Id:\"54e9e783-704b-4d77-b621-d8054d39f52a\",ParameterName:\"Role1\",Name:\"All employees.a29a3ba5-4b0d-de11-9a51-005056c00008\",CanRead:true,CanEdit:true,CanDelete:true,Source:\"3\",Grantee:\"Role\",Value:\"[#Lookup.84f44b9a-4bc3-4cbf-a1a8-cec02c1c029c.a29a3ba5-4b0d-de11-9a51-005056c00008#]\"}]",
                "After execution": "[{Id:\"54e9e783-704b-4d77-b621-d8054d39f52a\",ParameterName:\"Role1\",Name:\"All employees.a29a3ba5-4b0d-de11-9a51-005056c00008\",CanRead:true,CanEdit:true,CanDelete:true,Source:\"3\",Grantee:\"Role\",Value:\"[#Lookup.84f44b9a-4bc3-4cbf-a1a8-cec02c1c029c.a29a3ba5-4b0d-de11-9a51-005056c00008#]\"}]"
            }

            

           

Like 0

Like

3 comments

Are you sure the remaining access rights for All employees role is not "Deny"? I believe that process element won't technically remove the access rights, you'll still see it there but will be "deny" instead of allow.

Hello!  
 

I created a similar business process and successfully ran it. 

The process worked correctly, and I’m attaching screenshots as proof.  








You can also set the field "Which access rights to add?" to "All employees—Restrict", and the process should work as you expect.

In my example, I did exactly that, and I’m attaching the screenshots:





The reason why permissions are not changing as expected might be due to incorrect configuration of the "Change Access Rights" element in the business process. Please review the configuration of this element and ensure that the correct conditions and access rights are specified.  
 

If everything seems correct, please create a support request by contacting support@creatio.com

We will review the issue and assist with a solution.  

Regards,
Orkhan

I was able to successfully set the rights for the employees according to the instructions; interestingly enough, the rights edit page does not show that anything has changed. 

Show all comments