Hi Community,

 

In Studio Enterprise, is there any ready made template for "Activities" module, just like for "Account and Contacts" there is "Customer 360"?

 

 

 

Like 0

Like

4 comments

Hello,

 

Please refer to this Academy article to know more about all the current possibilities of switching between Freedom UI and old designer.

Hi,



Thank you for your response, but I am not asking about freedom UI. In Studio Enterprise, there is "CUSTOMER 360" template which will give you ready made modules for "Account" and "Contact". How about for "Activities" module, is there any ready made template?

I believe rest of core will be updated in 8.1. Customer 360 is a 1st app to demonstrate future capabilities of the rest of the core update to freedom ui. Not sure if this will translate in templates.

Hello,

 

Please note that the Activities and other similar modules will become available in future releases, but there is no such template yet.

Show all comments

Hi all,

 

There is a requirement in which I have to make printable visible on the basis of selected lookup. I followed this article https://customerfx.com/article/showing-or-hiding-printables-based-on-a-value-for-the-selected-record-in-creatio/

 

It is working fine on the edit page and only showing printable which is matching with the condition, but the same is not reflecting on the section and showing the complete list of printable.

Method which I have added on section and edit page is : 

methods: {

initQueryColumns: function(esq) {

    this.callParent(arguments);

 

    if (!esq.columns.contains("UsrDocumentRepositorySubtype")) {

        esq.addColumn("UsrDocumentRepositorySubtype");

    }

},

initCardPrintForms: function() {

    this.callParent(arguments);

 

    var printMenuItems = this.get(this.moduleCardPrintFormsCollectionName);

    if (Ext.isEmpty(printMenuItems)) return;

 

    printMenuItems.each(function(item) {

        item.set("Visible", {bindTo: "getPrintMenuItemVisible"});

    }, this);

},

getPrintMenuItemVisible: function(reportId) {

    if (Ext.isEmpty(this.get("ActiveRow"))) return true;

 

    var type = this.get("GridData").get(this.get("ActiveRow")).get("UsrDocumentRepositorySubtype") || { displayName: "" },

        printMenuItems = this.get(this.moduleCardPrintFormsCollectionName),

        item = printMenuItems.find(reportId);

 

    if (Ext.isEmpty(item)) return;

 

    switch (item.get("Caption")) {

         case "Mining and Quarrying Questionnaire":

            return type.displayValue === "Mining and Quarrying Questionnaire";

case "Alcohol Questionnaire":

            return type.displayValue === "Alcohol Questionnaire";

        default:

            return true;

    }

}

}

 

Output (Edit Page)

 

Output (Section)

 

Is there something which I am missing or any other workaround ?

 

Like 0

Like

5 comments

Hello,

 

In the section you need to use the approach like below:

			rowSelected: function(primaryColumnValue) {
				this.callParent(arguments);
				var row = this.getGridData().get(primaryColumnValue);
				var reportCollection = this.get(this.moduleSectionPrintFormsCollectionName);
				var usrDocumentRepositorySubType = row.get("UsrDocumentRepositorySubtype");
				var isUsrDocumentRepositorySubTypeEmpty = Ext.isEmpty(usrDocumentRepositorySubType);
				Terrasoft.each(reportCollection, function(report) {
					if (!isUsrDocumentRepositorySubTypeEmpty && usrDocumentRepositorySubType.displayValue == "Mining and Quarrying Questionnaire" && report.get("Caption") == "Mining and Quarrying Questionnaire") {
						report.set("Visible", true);
					}
					else {
						report.set("Visible", false);
					}
				}, this);
			}

This is an example for only "Mining and Quarrying Questionnaire", additional check should be also applied for the "Alcohol Questionnaire". Using this approach after refreshing the page correct reports started to show on the section list.

Hi Oleg,

 

Thank you for the response. Now it is working fine for the section and while creating record.

But, when I open any saved record, it is showing complete list of printable.

 

Method which I have added on Edit Page Schema is :

 

initCardPrintForms: function() {

    this.callParent(arguments);

               

    var printMenuItems = this.get(this.moduleCardPrintFormsCollectionName);

    if (Ext.isEmpty(printMenuItems)) return;

 

    printMenuItems.each(function(item) {

        item.set("Visible", {bindTo: "getPrintMenuItemVisible"});

    }, this);

},



getPrintMenuItemVisible: function(reportId) {

    var type = this.get("UsrDocumentRepositorySubtype") || { displayValue: "" },

        printMenuItems = this.get(this.moduleCardPrintFormsCollectionName),

        item = printMenuItems.find(reportId);

               

    if (Ext.isEmpty(item)) return;

                 

    switch (item.get("Caption")) {

        case "Mining and Quarrying Questionnaire":

            return type.displayValue === "Mining and Quarrying Questionnaire";

       case "Gliding Questionnaire":

            return type.displayValue === "Gliding Questionnaire";

        

        default:

            return true;

    }

 

Please help.

Prashant Jha,

Hi Prashant

 

Did you ever resolve this issue as I have the same problem

 

regards

Rob Watson,

Hi Rob, 

Did you find any solution to resolve this. Even I face the same issue

Thanks in advance

Hello all,

 

The example from my previous post should be modified to make it work when opening the page from the section. This time I performed the test using ContractSectionV2 with 2 reports: Contract approval and Contract draft:

The logic will be: if status of a contract is "Approval" - show only "Contract approval" report, if status is "Draft" - show only "Contract draft" report, otherwise show nothing (but for the record that is being created - show everything).

 

This can be achieved using this method added to the ContractSectionV2 schema:

rowSelected: function(primaryColumnValue) {
				this.callParent(arguments);
				var row = this.getGridData().get(primaryColumnValue);
				var getSelectedRowState = row.get("State");
				var selectedRowState = getSelectedRowState.displayValue;
				var selectedRowStateForCheck = selectedRowState?.toLowerCase();
				var reportCollection = this.get(this.moduleSectionPrintFormsCollectionName);
				var cardReportCollection = this.get(this.moduleCardPrintFormsCollectionName);
				var isStateEmpty = Ext.isEmpty(getSelectedRowState);
				Terrasoft.each(reportCollection, function(report) {
					if (!isStateEmpty && selectedRowStateForCheck && report.get("Caption").includes(selectedRowStateForCheck)) {
						report.set("Visible", true);
					}
					else {
						report.set("Visible", false);
					}
				}, this);
				Terrasoft.each(cardReportCollection, function(report) {
					if (!isStateEmpty && selectedRowStateForCheck && report.get("Caption").includes(selectedRowStateForCheck)) {
						report.set("Visible", true);
					}
					else {
						report.set("Visible", false);
					}
				}, this);
			}

The "State" column should be displayed in the section list and this is the code for the "Status" column of the contract. As a result:

 

1) Filtration in the section:

2) Filtration on the page opened from the section (for filtration on the page when refreshing the opened Contract page you need to do everything that is specified by Ryan here (part about ContactPageV2) (it happens because of the combined mode)):

3) For records in other statuses nothing will be shown in the list of the "Print" button (both in the section and on the page).

 

All you need to do is study this code and change the column to the one you will use on your page and don't forget to display this column in the section list.

Show all comments

Im running Creatio studio with postgresql on Windows Server 2019 using wsl + ubuntu for the redis server

 

Exception Details: System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.

Source Error: An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

 

 

Like 3

Like

11 comments
Best reply

Selva,

Hi, Yes I managed to fix it in the end by reinstalling Microsoft Visual C++ 2010.

 

https://www.microsoft.com/en-us/download/details.aspx?id=26999

Good day,

 

It seems that this issue could be solved faster if you contact Creatio support.

Please send them an email at support@creatio.com

 

Thank you.

This isnt something they cover

Oliver Crowe,

 

Can you post the complete screenshot of the error?

Also, make sure to install all the required .NET components .



BR,

Bhoobalan Palanivelu.

 

If anyone can help id appreciate it, ive tried using Windows Server 2022 instead and ran into the error again.

Oliver Crowe,

I am getting the same error.  Did you get this fixed ?

 

Thanks,

Selva

Selva,

Hi, Yes I managed to fix it in the end by reinstalling Microsoft Visual C++ 2010.

 

https://www.microsoft.com/en-us/download/details.aspx?id=26999

Thank you Oliver!

For Creatio version 8.0.10 and later please use Microsoft Visual C++ 2013 component:

https://www.microsoft.com/en-US/download/details.aspx?id=40784

Hi, I have the same error and try to install MS visual studio C++ 2013 but the same error exist , what should I do 



thanks 

Kareem,

any updates?

Dmitriy Gamora,

 

I'm encountering the same issue with version 8.2.0 deployed on Windows Server 2022. I have already installed and re-installed Microsoft Visual C++ 2010 and 2013, but the issue persists.

 

Is there any solution or additional troubleshooting steps you could suggest?

Resolved:
The issue was fixed after installing the latest version of the Microsoft Visual C++ Redistributable.

Show all comments

I created a business process that starts when an attachment is added to a section (start singnal configured on "record added" to the section attachments).

The business process starts before the end of the file upload then it's not able to read all file content in a script task.

Is there a way to start my business process after the upload has completed?

 

Like 0

Like

2 comments

Hi,

 

You can add a script component in you process and use a Sleep Method (1000 is one second)

System.Threading.Thread.Sleep(1000);

 

Jerome BERGES,

I tried uploading a file of 50MB and it takes 40 seconds to be uploaded:  1 second wouldn't be enough.

The time to wait depends on the speed of the connection and on the file size.

In my test I saw that the file size property increases while the upload proceed, then I used a workaround in my business process: before reading the file a make a loop with a wait of 2 seconds if the current file size is bigger than the one read in the preceding loop. The BP proceed to the file read procedure if the file size doesn't change in 2 seconds. It seems to work but it's really a workaround: is there something more currect and secure to wait for the file to be fully uploaded?

Thanks

Show all comments

I am trying to import large amount of data, around 7 million lines. I noticed that using an excel this is almost impossible. What are the alternatives?

 

Comparing this to inserting it in an SQL, I usually bulk insert batches of 5000-8000 and it will be done in 5 minutes. 

Like 0

Like

0 comments
Show all comments

In "old style" Creatio is possible to create different section pages depending on a lookup field, just like Activities out-of-the-box section (one page for Task, one for Email, one for Call).

In Freedom UI pages I cannot find the way to do the same thing: how can I setup different Freedom UI pages depending on the value of a lookup field of the record?

Thanks

 

Like 3

Like

6 comments

Dear, 



Unfortunately, this feature is really not available in the current release version of the app.

However, our development team is already aware of this need, so this feature may appear in future versions of the app.

Pavlo Sokil,

Hello Pavio ,

Is this feature ready yet ?

developer,

Hello,

 

Unfortunately, this functionality is not yet available. Due to complexity of the task our R&D team need time for testing and further implementation. 



Best regards,

Anastasiia

Anastasiia Zhuravel,

Hello ,

Is there any alternatives please ?

Thanks.

developer,

 

There is no available workaround for now.

Hello,

 

https://academy.creatio.com/docs/8.x/resources/release-notes/81-quantum-release-notes#:~:text=Multiple%20form%20pages%20for%20a%20single%20object.

8.1 Quantum release notes

Multiple form pages for a single object. It is now possible to create multiple form pages for a single object in the Object Designer as well as in the settings of both List and Button components. The app determines the page to open based on a field value. For example, this lets you have completely different pages for different request types.

Show all comments

Dear Community,

 

I wish to create somewhat of a wizard to add a new order in our CRM. Similar to how you would order something online. Step 1 would be to check the adress for service availability, step 2 choose products, step 3 choose subscription type and discounts, step 4 personal info, contact info and payment info.

 

I am playing around with preconfigured pages but these are limited, for example if you wish to calculate prices. You cannot trigger a business flow as far as I know to change a price field based on the amount of products fields.

 

Is there any way to do something like this?

 

Greetings

 

Pascal

Like 0

Like

1 comments

Hello,

 

You can create it by means of preconfigured business processes and creating a new method with the same logic as in the refreshAmount method from BaseOrderPage

 

Best regards,

Yuliya Gritsenko

Show all comments

Hi,

 

From Postman I am calling a REST API by passing some parameters in x-www-form-urlencoded format. Please see the screenshot below : 

 

Header - Content Type - application/x-www-form-urlencoded

 

From Creatio I am using Web service section to call this same API but can't understand how to send these parameters in x-www-form-urlencoded

 

I think I am making mistake in defining the Parameter type of the parameters I am passing.

 

Please help urgently!

Like 1

Like

1 comments

Thank you for your question.



Unfortunately, Creatio does cant parse x-www-form-urlencoded type of requests as of yet.

We have already added this case to an existing development request in order to add this functionality in future releases.



There has been a similar question in our Creatio community in which a possible workaround was proposed.

I will leave a link to it here.

Show all comments

Hi all, I have created a web service for parsing a document which is taking two request parameters:

 

  • Header Parameter : 

Key : “Authorization”

Value : (xyz 123456)  // just an example

 

  • Body Parameter :

Key : “file”

Value : (Base64 data)

 

When I test it within the Web Service section by providing both the parameters, it is working fine and giving the expected output in json format.

 

Now, when I use the same web service in Business Process and pass the parameters correctly by storing it in process parameters, the process always gives an error on that web service element.

 

Error is as follows:

 

Terrasoft.Common.UnsupportedTypeException: Type "System.Collections.Generic.List`1[[System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" is not supported. 



 

I am getting base64 data correctly from Business Process. Please help regarding this error.

 

Like 0

Like

2 comments

hi Prashant Jha

 

Creatio has its "JSON key parser" in a core assembly that works OOTB in the service section. Usually, it occurs in the Method & Body Parameters of a Web Service.



On looking at the exception, the input types are not matched here and one of the input types is Collection List.



Can we backtrack it by passing the parameters one by one? which means trying to send Parameter A, get the exception and then try passing Parameter A, and B to get the exception.



From the above information, I presume that the error lies in the below factors,

Body Parameter :

Key : “file”

Value : (Base64 data)

 

 

BR,

Bhoobalan Palanivelu

Hello,

 

This error could be due to incorrect handling of an array of parameters in the web service response (Result).

Try to remove parameter array from web service response.

Show all comments

Hi Community,

 

I want to hide the "System Designer" option from the hamburger menu on the left panel (highlighted in yellow). Any lead will be appreciated. 

 

 

Regards,

Sourav

Like 0

Like

6 comments

Hello,

 

It's not possible to hide the System Designer option with basic system tools.

 

Still, you may simply limit the access rights for this role or not grant any administrative rights or access for this role, this way even though the user sees the System Designer they won't able to apply any changes to it or open the corresponding System Designer sections.



More detailed information about access rights and system operation permissions can be found in corresponding articles on our Academy. 

 

Bogdan,

 

Is there any schema I can refer if I want to hide it using development tools?

 

Regards,

Sourav

Sourav Kumar Samal,

An easy cheat way to get rid of it is to hide it with CSS

.menu li#system-designer-menu-item {
    display: none;
}

Ryan

Sourav Kumar Samal,

 

there is also another approach:

 

1) Create a module in configurations called UsrLeftPanelTopMenuModule with the following code:

define("UsrLeftPanelTopMenuModule", ["UsrLeftPanelTopMenuModuleResources","LeftPanelTopMenuModule"],
    function(resources) {
        Ext.define("Terrasoft.configuration.UsrLeftPanelTopMenuModuleViewModel", {
            alternateClassName: "Terrasoft.UsrLeftPanelTopMenuModuleViewModel",
            override: "Terrasoft.LeftPanelTopMenuModuleViewModel",
 
			loadItemsMainMenu: function() {
				var mainMenuItems = this.get("MainMenuItems");
				mainMenuItems.removeByKey("system-designer-menu-item");
				this.set("MainMenuItems", mainMenuItems);
				this.callParent(arguments);
			}
        });
    }
);

2) Add the UsrLeftPanelTopMenuModule module as a dependency for BootstrapModulesV2 module:

define("BootstrapModulesV2", ["UsrLeftPanelTopMenuModule"], function() {
	return {};
});

3) Refresh the page and check the result:

Best regards,

Oleg

Ryan Farley,

Where to add this CSS ?

Bhoobalan Palanivelu,

For CSS that I want globally available in the application I use MainHeaderSchema.

Oleg's solution is great too, however does require overriding the BootstrapModulesV2 which can cause issues if there are other things that are needed to be loaded there from ootb modules. The CSS approach is a bit "hacky" but gets the job done easily.

Ryan

Show all comments