Hello,

 

Our code, that opens a page in Classic UI in v8.0.4, doesn't work in 8.2.1

this.openCardInChain({
   schemaName: "UsrCustomSectionVisaPageV2",
   operation: ConfigurationEnums.CardStateV2.EDIT,
   id: this.get("Id"),
   renderTo: "centerPanel"
});

 

In 8.2.1 we get only BodyMask (blank page). Sometimes after browser refresh page is open.

What can be a reason of such behavior?

 

Thank you

Like 1

Like

2 comments

Hello Vladimir,

The code looks correct, according to the screenshot. To obtain more information about why the logic stopped working, I recommend debugging the system.

One of the possible solutions is to add the Enums to the Module:

define("UsrCustomSectionVisaPageV2", ["ConfigurationEnums"],
  function(ConfigurationEnums) {//....}

Best regards, Anhelina!

Nothing has helped with openCardInChain.

We have used OpenCard instead - it works

 

Kind regards,

Vladimir

Show all comments

I recently completed the Development on Creatio guided learning course. With my instructor's assistance, I set up a local Creatio instance—labeled Dev1_DEV—on my Windows server.
 

After switching my D1_DEV local development environment to use File System Development Mode instead of the default Creatio IDE mode, I encountered an issue where my Creatio instance failed to load the necessary JS files related to SectionModuleV2 for Classic UI sections (e.g., System Settings, Lookups). I reverted my Web.Config file changes to disable File System Development Mode, which resolved the issue.
 

For reference, I have attached screenshots of the error messages from my console when attempting to access Classic UI sections while File System Development Mode was enabled.
 

Could you help me understand why switching to File System Development Mode prevents access to the required JS files for Classic UI sections? Aside from modifying the Web.Config file, I did not make any other changes to the system. 

Any guidance on resolving this would be greatly appreciated.

Like 0

Like

14 comments

Hello,

 

We recommend checking if all the steps from the article have been completed:

https://academy.creatio.com/docs/8.x/dev/development-on-creatio-platfor…

 

For example, ensure that these values are set:

<fileDesignMode enabled="true"/>
...
<add key="UseStaticFileContent" value="false"/>


All steps must be completed.

Hello Kalymbet,
Hope all is well. 

Thank you for providing that link. I followed its steps listed on the page as follows: 
Enabled file design mode
Disabled UseStaticFileContent 
Compiled my instance (no errors)
Downloaded packages to file system successfully (no errors)
Gave IIS Usr full access to the Terrasoft.Configuration file

I still received the same error. It looks like it is not able to find the SectionModuleV2.js file. 




 

Kalymbet Anastasia,

 

Hello,
 

We also recommend that the user under which the application pool is running should also have full access to the {rootAppFolder}\Terrasoft.WebApp folder

Folder access

Serhii Parfentiev,

Thank you for the suggestion. I added Full control access to the IIS User for the Terrasoft.WebApp folder and I still received the same issue. For reference, I attached an image of the Terrasoft.WebApp security properties. 

 

Hello,
Could you please verify under which user the Application Pool is running? If you have changed the user, please make sure to grant permissions for this user too.

If this doesn't help, additionally please try the following scenario:
1) Deploy the application.
2) Authorize and allow the inner part of the application to initialize (after login, wait for the application to finish loading).
3) Only after that, make changes in the Web.config file to enable development on the file system and follow further instructions. 

i have done all the steps and facing the same issue
not able to open lookup, process log , but contact , account , creatio ai dashboard is opening 

Varun Mishra,

Please confirm that you have completed all the steps described in each message in this thread above, including the last one.

Mira Dmitruk,

Any Update

Pranshu Basak,

Could you please specify what update you are expecting?

Mira Dmitruk,

hello, i tried all the steps still not working 

Varun Mishra,

Hello!

Please run a full generation and compilation.

Although from the screenshot it’s clear that the script did not load, it’s possible that you still haven’t granted the necessary permissions to the folder. We recommend giving full access to the folder for the IIS user under which the application pool is running.

If the error persists, please register a ticket via email: support@creatio.com

Regards, 
Orkhan

Orkhan,

I updated my local version from 8.2.1.5446 to 8.2.3 and issue resolve  using this article https://customerfx.com/article/automated-upgrade-procedure-for-on-premise-implementation-of-creatio/

Show all comments

Hi Creatio Community,

I’m currently working on a use case where we need to customize the email composer in Creatio. Specifically, we’d like to know the possibilities for:

  1. Editing or Updating the Email Composer:
    • Is it possible to modify the default email composer UI or add custom functionalities?
    • Can we add custom fields, change the layout, or integrate additional tools within the composer?
    • Are there any APIs or configuration settings available to achieve this?
  2. Adding a Scheduler on the Email Mini Page:
    • We have a requirement to create a scheduler feature directly on the email mini page.
    • The goal is to allow users to schedule emails to be sent at a specific date and time.
    • What’s the best approach to implement this? Would we need to create a custom section, or is there an existing feature we can extend?

Any guidance, documentation, or examples would be greatly appreciated. If anyone has worked on similar customizations, I’d love to hear your experiences.

Thanks in advance for your help!

Like 0

Like

1 comments

Hello,
 

  1. 1. Unfortunately, the Message Composer element is not customizable in the system at the moment. However, we have increased the priority of this task to add such a capability in a future product update.
     

2. We do not have ready-made examples of such an implementation, but you can achieve this using a business process instead of sending messages manually.
 

You can implement the sending functionality via a script task, where you pass the draft activity ID. A similar approach was discussed here:
 

🔗 Send email from a portal user using ActivityEmailSender
 

After that, you can use a task to send the record.

Hope this helps! 

Show all comments

Hi Creatio Community,

 

I'm currently working with batch operations in Creatio and have successfully tested some requests that are working fine.

 

I have a question regarding inserting column values that reference other tables by their respective columns. Specifically, I need to perform operations on a large number of columns and data, which could be time-consuming if I have to manually map the IDs based on their codes.

 

Is there a more efficient way to handle this?

 

Here’s an example of a request I’m working with:

{
	"requests": [
	{
		"method": "POST",
		"atomicityGroup": "g1",
		"url": "City",
		"id": "t3",
		"body": {
			"Name": "TestName",
            "Country.Code": "USA"
		},
		"headers": {
			"Content-Type": "application/json;odata=verbose",
			"Accept": "application/json;odata=verbose",
			"Prefer": "continue-on-error"
		}
	}
	]
}
Like 1

Like

1 comments

Hello,

Creating operations on a large number of columns and data, which could be time-consuming, may lead to performance problems in the future. Please try to avoid big batch operations so as not to face the situation of 100% server CPU utilization.

As a workaround:

  1. You may create a custom Web service and pass the needed data to it.
  2. Create a business process that proceeds with needed data modifications

 

Show all comments

Hi There, 

I'm trying to create a sales forecast. To create it I want to use figures from 2024. However the time periods for the columns need to be 2025. Is there a way I can see actual historic data? I.e January 2024 vs January 2025? 

The only way I found I can do this is by manually entering the 2024 data. However, given that I'm doing this for a number of different businesses it's very tedious. So for example in the period column for March 2025, I would like to see actual salees figures from March 2024, the forecasted amount (based on March 2024) followed by the Actual sales figures. 

 

I'm using Invoice owner acount to specify the different business units (rows) and Invoice created on filed to specify the time period. 

Thank you 

Like 0

Like

1 comments

Hello!

Unfortunately, the planning functionality is currently unable to process values from a previous period.

The described case is best solved with the help of the MP solution: https://marketplace.creatio.com/app/calculated-metrics-creatio. There it will be possible to output three indicators: Current Fact, Previous Fact, Percentage of the ratio of the current to the previous one.

Best regards,
Anton

Show all comments

How to open section programmatically?

 

i need to open 'home' section programmatically as a result of event/command

Like 0

Like

2 comments

Hello!
 

You can achieve this without code by creating a business process that will be triggered and open the required page.


You can read more about business processes on the Creatio Academy:

https://academy.creatio.com/docs/8.x/no-code-customization/8.1/category/process-administration

Regards,
Orkhan

in my case thats not an option.... 

Show all comments

Hello, everyone! 


I've stumbled upon a request from a client who wants his product images (from the attached files) to be shown to whoever is viewing the product in a tab "Images" from said product. 

I've created the tab without any trouble and associated the "Gallery" component to it, linking the "Uploaded file" (SysFiles) with the correct data souce filter (id from my record = "Record ID" from Uploaded file). It just shows me a picture of a camera.. 

 

 

Inside the "SysFile" object, the only options I have as to "fileType" are "File", "Link" and "Link to object"... Should there be a "jpg" or something like that for the image to be shown there? 

---

What other solution is there for it to be displayed? 

I've searched that on classic UI that was possible, but saw no proof of how it was done. 

 

Btw, i'm on version 8.2.0.4183.

 

Hope yall can help me. 

Thanks! 

Like 0

Like

1 comments
Best reply

Hello,

 

Unfortunately, the "SysFile" object is not suitable for use as an image source for the gallery, as it lacks some key image-related settings.
However, if the images are simple, this can be achieved using "handlers".

 

The main works to be done:
1. Configure a filter for the gallery to ignore invalid files.
In the example, display only files whose names end with ".png".
 

2. Populate the "image" property in "templateValuesMapping" within the gallery settings in the metadata.
In the designer, this field should be empty.
Let's take this one as example:
"image": "Gallery_gckk34fDS_SysFileToImage"
 

3. Implement a handler for "crt.HandleViewModelAttributeChangeRequest" in the metadata.
Here’s an example of the handler:
{
    request: "crt.HandleViewModelAttributeChangeRequest",
    handler: async (request, next) => {
        if (request.attributeName === "Gallery_gckk34f" && request.value?.length > 0) {
            for (var i = 0; i < request.value.length; i++) {
                const record = request.value[i];
                const recordId = record.attributes["Gallery_gckk34fDS_Id"];
                const recordName = record.attributes["Gallery_gckk34fDS_Name"];
                const recordUrl = "/0/img/entity/hash/SysFile/Data/" + recordId;
                const newColumnAttribute = {
                    displayValue: recordName,
                    value: recordId,
                    url: recordUrl
                };
                record.attributes["Gallery_gckk34fDS_SysFileToImage"] = newColumnAttribute;
            }
        }
        return next?.handle(request);
    }
}
 

How the handler works:
When the loaded collection is not empty, we populate the attribute specified in "templateValuesMapping" for each record with a specific object.
In the "url" field, we set the following link:
"/0/img/entity/hash/SysFile/Data/" + recordId
The system will load data from the "Data" column of the "SysFile" object based on a given identifier.
 

If you have any additional questions, feel free to ask.

Hello,

 

Unfortunately, the "SysFile" object is not suitable for use as an image source for the gallery, as it lacks some key image-related settings.
However, if the images are simple, this can be achieved using "handlers".

 

The main works to be done:
1. Configure a filter for the gallery to ignore invalid files.
In the example, display only files whose names end with ".png".
 

2. Populate the "image" property in "templateValuesMapping" within the gallery settings in the metadata.
In the designer, this field should be empty.
Let's take this one as example:
"image": "Gallery_gckk34fDS_SysFileToImage"
 

3. Implement a handler for "crt.HandleViewModelAttributeChangeRequest" in the metadata.
Here’s an example of the handler:
{
    request: "crt.HandleViewModelAttributeChangeRequest",
    handler: async (request, next) => {
        if (request.attributeName === "Gallery_gckk34f" && request.value?.length > 0) {
            for (var i = 0; i < request.value.length; i++) {
                const record = request.value[i];
                const recordId = record.attributes["Gallery_gckk34fDS_Id"];
                const recordName = record.attributes["Gallery_gckk34fDS_Name"];
                const recordUrl = "/0/img/entity/hash/SysFile/Data/" + recordId;
                const newColumnAttribute = {
                    displayValue: recordName,
                    value: recordId,
                    url: recordUrl
                };
                record.attributes["Gallery_gckk34fDS_SysFileToImage"] = newColumnAttribute;
            }
        }
        return next?.handle(request);
    }
}
 

How the handler works:
When the loaded collection is not empty, we populate the attribute specified in "templateValuesMapping" for each record with a specific object.
In the "url" field, we set the following link:
"/0/img/entity/hash/SysFile/Data/" + recordId
The system will load data from the "Data" column of the "SysFile" object based on a given identifier.
 

If you have any additional questions, feel free to ask.

Show all comments

Hello community!

 

Is there any way to integrate MS Teams registration forms and Creatio for obtaining participants' data directly in Creation without export-import? Might be some kind of application on Marketplace or well-known option of no-code development?

 

 

Like 0

Like

1 comments

Hi, I am trying to add a custom field in Activity task minipage: 

I tried to edit ActivityMiniPage, but it does not add the new field.

Where should I add this field?

Like 0

Like

4 comments

Hello,

You need to make sure that you are making changes in the view mode of the activity mini-page.

Hi Pavlo Sokil,

Thank you for your response.

I have added the new field in all three modes, but the new field doesn't show on the mini page, as I have shown in the photo. The new field shows on the mini page that opens on the click of the pen:

 

 

Maybe you have some custom Activity types which are not related with this Mini Page in SysModuleEdit.

Run the sript:
Select * from "SysModuleEdit" where "SysModuleEntityId" in (select "Id" from "SysModuleEntity" where "SysEntitySchemaUId" in (select "UId" from "SysSchema" where "Name" = 'Activity' and "ExtendParent" = 'false'));

And check if for your type Mini page and Mini Page Modes are defined.


For a more detailed analysis, we recommend contacting Creatio technical support.

 

Best regards,
Pavlo!

Pavlo Sokil,

After executing the query you sent, I get these values for the columns you pointed out:

Show all comments

Hello Creatio Friends,

 

I'm stuck. 

 

We are testing out creating additional org roles and want the users to automatically get assigned when they SSO in. One user can have multiple org roles.

 

We saw there’s some SSO fields already mapped to Contact like branch -> Branch, displayname -> Name and that kind of thing, but I’m stuck on figuring out how they get assigned to org role. 

 

I found VwSysRole that spells out all the different roles and SysUserInRole where they give individual role assignments for each user (multiple ok).

 

Just can’t find the gap - how they go from SSO JIT to assigned to an org role. Any chance you know?

 

Thanks in advance,

Israel

Like 0

Like

3 comments
Best reply

Hello,

 

In Creatio, organizational and functional roles are transmitted using the "role" attribute. This attribute is not listed in the JIT mapping but can be found in the SsoServiceProvider table under the SamlUserRole column.

 

To pass user roles to Creatio, simply create a claim named "role" on the Identity Provider side. For example, in Entra ID, this would be configured accordingly.

 

The claim should contain the attribute value where your roles are stored.

 

!Important: Role names must exactly match the role names in Creatio, including case sensitivity.

 

Regarding SSO technology and implementation, we can only assign existing roles to a user. Roles are not created automatically because:
 

  1. 1. A role must have predefined permissions or inherit from another role;

    2. The SSO protocol does not allow retrieving a full list of roles from the Identity Provider—only data about the current user can be obtained. So we only get the name of the role of the logged-in user, not the entire organizational role hierarchy.

    I hope this answers your questions.

Hello,

 

In Creatio, organizational and functional roles are transmitted using the "role" attribute. This attribute is not listed in the JIT mapping but can be found in the SsoServiceProvider table under the SamlUserRole column.

 

To pass user roles to Creatio, simply create a claim named "role" on the Identity Provider side. For example, in Entra ID, this would be configured accordingly.

 

The claim should contain the attribute value where your roles are stored.

 

!Important: Role names must exactly match the role names in Creatio, including case sensitivity.

 

Regarding SSO technology and implementation, we can only assign existing roles to a user. Roles are not created automatically because:
 

  1. 1. A role must have predefined permissions or inherit from another role;

    2. The SSO protocol does not allow retrieving a full list of roles from the Identity Provider—only data about the current user can be obtained. So we only get the name of the role of the logged-in user, not the entire organizational role hierarchy.

    I hope this answers your questions.

Hi Pavlo, 

 

That answers my questions more completely than I was hoping. Thank you for your expertise and for including screenshots!

Joshua,

You also need to create the corresponding attribute in the SsoServiceProvider table in the SamlUserRole column, following the instructions above, and then fill it in on your SSO provider side.

Show all comments