mini-page
Account_lookup
Add_Button
LookupPageViewModelGenerator
Studio_Creatio
8.0

Hi, everybody!

 

I work on Classic UI. I have a task: to realize opening mini-page instead of full page in Account Lookup by clicking Add Button. 

 

I managed to do it in runtime mode.

 

To do this, it was necessary to make a change to the basic client module  LookupPageViewModelGenerator.js, the needOpenMiniPage method.

But I couldn't override this basic module in the configuration and connect it to my page.

 

Code of my new LookupPageViewModelGenerator:

define("LVLookupPageViewModelGeneratorV2", ["LookupPageViewModelGenerator"], function(LookupPageViewModelGenerator) {
 
Ext.define("Terrasoft.configuration.LVLookupPageViewModelGeneratorV2", {
extend: "Terrasoft.LookupPageViewModelGenerator",
		needOpenMiniPage: function(entitySchemaName) {
		this.lookupInfo.isQuickAdd=true; // додано
		const notUseSilentCreation = !Terrasoft.Features.getIsEnabled("UseSilentCreation");
		const entityStructure = moduleUtils.getEntityStructureByName(entitySchemaName);
		const editPages = entityStructure.pages;
		const hasAddMiniPage = editPages[0].hasAddMiniPage;
		return notUseSilentCreation && this.lookupInfo.isQuickAdd && !Ext.isEmpty(hasAddMiniPage);
				},
    		});
    return Terrasoft.configuration.LVLookupPageViewModelGeneratorV2;
});

 

Code of my page where lookup is contained:

define("ELFinApplicationAccountPage", ["LVLookupPageViewModelGeneratorV2"],  function() {
return  {
entitySchemaName: "FinApplication",
attributes: {},
messages: {},
details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
businessRules: /**SCHEMA_BUSINESS_RULES*/ {}/**SCHEMA_BUSINESS_RULES*/,
methods: {},
diff: /**SCHEMA_DIFF*/[
			{
          operation: "insert",
          name: "LVPartnerWhoRecommended",
          parentName: "AdditionalProfileInfoContainer",
          propertyName: "items",
          values: {
            layout: {
              column: 0,
              row: 6,
              colSpan: 24
            }
          }
        },
         ]/**SCHEMA_DIFF*/
         };
});

 

I wrote this code while I was reading this article: https://community.creatio.com/questions/add-mini-card-contact-lookup-new-optionbutton. But maybe I made a mistake or didn`t take smth into account.

What do I have to do to make this work?

 

Thank you!

Like 3

Like

1 comments

Hello,
Try creating a full copy of this schema (not override) with the modified method needOpenMiniPage and connect this copy in the define of the needed schema.
Also, in newer versions, you can unlock a package for a hotfix, with it, you can modify a base schema directly.

Show all comments
DCM
Business Process
Studio_Creatio
8.0

Hello Everyone, 

 

I created a Dynamic DCM that includes some sub-processes to validate lists on my form page. If validated correctly the stage should continue forward. the first stage works just fine it proceeds. When I validate the following one though the stage does not change. I have re-checked my BP multiple times to ensure it has taken the appropriate path and also the result conditions set in order for the case to move forward dynamically and they both check out. Any idea what the issue could be?

Like 0

Like

1 comments

Hello,

 

Here are a few additional steps you can take to troubleshoot the issue:

  • Ensure that the validation logic in your sub-processes is correctly implemented and that it returns the expected results.
  • Double-check the transition conditions between stages to ensure they are correctly configured and that they match the output of your validation logic.
  • Look at the case logs to see if there are any errors or warnings that might give you more insight into why the stage is not progressing.
  • Try testing the process with different sets of data to see if the issue is data-specific.
  • Ensure that the user executing the process has the necessary permissions to move the case forward.
Show all comments
Rich_Text_field
Studio_Creatio
8.0

Hi all,

 

We have noticed that in formatting options of a Rich Text field there is the possibility to 'Align left', 'Center' and 'Align right'.

 

Is there a way to enable also 'Justify' formatting option?

 

Best Regards

 

Stefano
 

Like 0

Like

1 comments

Dear Stefano,

Unfortunately, currently, there is no option to justify the format in Rich text. 

I have created an idea for the R&D team.


Thank you for making Creatio better!

Show all comments
open
page
Preconfigured
Studio_Creatio
8.0

Hi Community,

I noticed that in the Business Process Configuration, we can set a Static value when open a page.

Is there a workaround to set a static value when opening the page through the page editor configuration or client-side code?

 

Setup via page editor(Can't set static value)

Setup via code (without setup param)

Like 0

Like

4 comments
Best reply

Resolved using client-side code customization

Hello,
If the page is opened outside of a business process but still requires a static value to be applied, the page must represent an object. You can achieve this by setting up a business rule.

In the business rule, you can define an "If" condition to check whether the necessary field is empty. If it is, the rule will automatically assign the desired value to that field.

Hello Nick,

Thank you for your response.

The reason I want to set a static value for the page parameter when opening the page is that I have a modal for confirming the delete process. The value from the page parameter will be used to determine which object is being deleted when the "YES" button is clicked.

That's why I need to assign a static value to the page parameter based on where the confirmation modal is being used. Currently, i can set static value using the Business Process (BP), but I don’t think it’s good practice to rely on BP only for opening the page.

Unfortunately, there are no default values for page parameters at the moment. I will register this idea for future development.
As for now, this can only be implemented via BP or through development.

Resolved using client-side code customization

Show all comments
local instance
Classic_UI
FileSystemDevelopmentMode
Javascript
SectionModuleV2
Studio_Creatio
8.0

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
batchquery
API
Studio_Creatio
8.0

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
#opportunitystage
Studio_Creatio

I can't figure out the tutorial, where to update these stages -- the names, etc.

 

Like 0

Like

1 comments

Hello,

Please navigate to the Page Designer, click on the progress bar, and select set up cases.


After that, you will be redirected to the DCM setup page.
Then please use this article to set it up:

Additionally, you can use this video to learn more about DCM.

Best regards 
Antonii. 

Show all comments
open
section
Studio_Creatio
8.0

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
Images
jpg
ShowingImage
Studio_Creatio
8.0

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
SSO
JIT
organizational_r
Studio_Creatio
8.0

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