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 community!

 

I'm trying to filter contacts by unique keys from another system.

Currently, we are using 'eq' and 'or', but that has a limitation (the error states that only 100 nodes are supported in a filter).

After reading the oData 4.01 documentation that is linked in the creatio documentation here https://academy.creatio.com/docs/8.x/dev/development-on-creatio-platform/architecture/development-in-creatio/integrations#title-2088-10, I found the "in" operator, which might bypass this issue completely, so we wouldn't need to page through records.

 

However, I couldn't get it to run...my filter looks like this:
 

$filter=["QsTbisKey"] in ["47928","50447"]

But it returns an error:

{
    "error": {
        "code": "",
        "message": "An error has occurred.",
        "innererror": {
            "message": "The 'ObjectContent`1' type failed to serialize the response body for content type 'application/json; odata.metadata=none'.",
            "type": "",
            "stacktrace": "",
            "internalexception": {
                "message": "Object reference not set to an instance of an object.",
                "type": "",
                "stacktrace": ""
            }
        }
    }
}

 

I tried using all combinations of other brackets and single quotes but was unsuccessful.

 

Does anyone know how to do this?

 

Thanks and BR,

Robert

 

Like 0

Like

4 comments
Best reply

Hello,

The 'in' operator is not supported in OData 4 in Creatio.
At the moment, it is possible to use the operators that are available in the examples in the official Postman collection of the Creatio API.
We have registered a task to improve this functionality ('in' operator for Creatio OData 4 requests) in future releases of Creatio.
 

Correct filter for In operator OData 4.01 is usually like:

filter=Id in ('6f2efedd-9b25-43b4-9cb9-0ebe60a02a8a','72509ae9-7065-465c-b7c5-3d193b8fe768')

However, it produces the same result with Creatio OData. It's possible Creatio only implements OData 4.0 and not 4.01 (which introduced the In operator).
Might need a different approach like a configuration service that takes the like of values as a param and returns the results? Or if it would work to create a common parent record of the values that could be used to retrieve the results?

Ryan Farley writes:

Correct filter for In operator OData 4.01 is usually like:

filter=Id in ('6f2efedd-9b25-43b4-9cb9-0ebe60a02a8a','72509ae9-7065-465c-b7c5-3d193b8fe768')

However, it produces the same result with Creatio OData. It's possible Creatio only implements OData 4.0 and not 4.01 (which introduced the In operator).
Might need a different approach like a configuration service that takes the like of values as a param and returns the results? Or if it would work to create a common parent record of the values that could be used to retrieve the results?

 

Hi Ryan,

I did try that syntax already, but it didn't work.

Maybe someone from Creatio can shed some light on the implemented OData version?

 

Thanks,

Robert

Hello,

The 'in' operator is not supported in OData 4 in Creatio.
At the moment, it is possible to use the operators that are available in the examples in the official Postman collection of the Creatio API.
We have registered a task to improve this functionality ('in' operator for Creatio OData 4 requests) in future releases of Creatio.
 

Serhii Parfentiev,

Thanks for the information!

Since the documentation I linked explicitly points to the OData 4.01 version, it should be updated and the exact version should be mentioned to know what is supported and what is not.

 

Thanks,

Robert

Show all comments

Is there no way to delete a navigation/section from the Freedom UI "navigation and sections" tab? 

 

If there is no way currently, what if a section was linked to the wrong object, or some other setting was incorrect when the section was created? Is there a way to change these setting afterwards?

 

This is what shows on my screen:

 

Like 0

Like

2 comments

Hello!

 

Currently, it is not possible to delete a section from "Navigation and sections" tab.

 

If you want the section not to be visible in the Creatio navigation panel, then we recommend removing such section from a workplace:

Go to the System Designer -> Workplace Setup -> Choose the needed workplace -> Choose a section and delete it.

 

After that the section will not be visible in the Navigation panel, but the Section object will not be removed. It is not recommended to delete Section schemas as they may be connected to other objects and their removal can cause unpredictable errors.

Arsenii Ostapyk,

Okay, thanks for letting me know

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

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) => {
              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) => {
              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

I am aware that there is a way to update Classic UI pages without saving through adding specific code to the schema as I have seen it work before, but I am having trouble understanding how to do the same on a Freedom UI page.

 

Specifically, I would like to automatically fill out fields when a lookup option is chosen. An example of this working on the Classic UI is on the application forms page in the Finserv Sales and Service package, where a contact's information is filled in on the application whenever a contact is chosen (see the screenshot below).

I thought it would be a good exercise to try to update the page to Freedom UI so I would know it was working correctly, but I have not figured anything out so far.

 

Any and all help is appreciated!

Like 0

Like

5 comments
Best reply

There are two approaches you can take:

Approach 1 (minimal code): 

  1. Make sure that live data updates is turned on for the object.
  2. On a change of the lookup, save the record. You'll need code for this to respond to the lookup change and then to save the record.
  3. Create a process that triggers on the save of the record, it then updates the record to populate the other fields

Approach 2 (more code, but no save is needed, user can still cancel)

  1. On a change of the lookup add code to listen and respond to the lookup change 
  2. Read the selected lookup value and use a model query to read the associated lookup data and set the values on the page

Ryan

There are two approaches you can take:

Approach 1 (minimal code): 

  1. Make sure that live data updates is turned on for the object.
  2. On a change of the lookup, save the record. You'll need code for this to respond to the lookup change and then to save the record.
  3. Create a process that triggers on the save of the record, it then updates the record to populate the other fields

Approach 2 (more code, but no save is needed, user can still cancel)

  1. On a change of the lookup add code to listen and respond to the lookup change 
  2. Read the selected lookup value and use a model query to read the associated lookup data and set the values on the page

Ryan

Ryan Farley,

Just to clarify, the second approach does not require saving the record, and the first step of that method saying "save the record" was just because the text was copied from the first approach, correct?

 

The use case I have makes it impossible to save the record to update the data on the page, as some of the information that will be filled in is required information and can't be saved if it is empty. Manual entry is possible, of course, but we are trying to minimize human error in our implementation.

Alexander,

Yes correct, that was a copy/paste mistake. On the second approach no save is needed (I updated the text). 

You're basically just listening for the change of the lookup, then once a value is selected, you do a query to read the associated record and populate the controls/fields on the screen.

One last approach is, if you don't really need the values from the related record to be editable and only displayed, is to simply bind the fields from that record on the page. Freedom pages will allow you to add controls on the page, not bound to a column of the object, and then select the binding from some related record. This will display them, but they will not be editable, and will not actually exist on the current record - only being displayed from the related record.

Ryan

Ryan Farley,

Thank you for the clarifications and articles. They were very helpful and I got it to work very quickly!

Show all comments

Dears

 

Again in Creatio 8.1.4 we found not available the selection of a contact to create a new Creatio User.

 

To enable this you need to enable the SysAdminUnitFeatures.ShowContactInAdminUnit Feature.

 

But when did it, and try to save get an error "Name field must be filled in".

 

Had somebody try this?, is some workorund? or another way to enable select a contact to cerate a New User in STUDIO Creatio instance (JUST Studio)

 

Thanks

 

Julio Falcón

 

 

Like 2

Like

2 comments

Hello,

1) When adding this feature, you should specify "For all employees".
2) Save for current user. 
3) Enable the feature in general.
 
Then the error shouldn't occur.

 

Ivan Savenko,

Thanks Ivan

 

I saw I need to 

1.- Open the Feature page, 

2.- Add the All Employees group, 

3.- Check enable the feature to all Employees,

4.- Click on Status to Enable

5.- Save (Still getting the error, but saves)

6.- Logout & Login and voila, the contact search in System Users is available.

 

Show all comments