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

I was creating a button that runs a simple business process that sends a mail.

The problem is after altering the schema of the Portal user profile and adding a button the business process doesn't run nor gets mentioned in the process logs for tracing.

here are the codes used in the schema to run a bp in the portal contact page :

 

define("SspProfileContactPage", ["ProcessModuleUtilities","css!UsrCSSPortalProfile"], function(ProcessModuleUtilities) {

    return {

....

methods: {

            OnClickTest: function(){

                var args = {

                    sysProcessName: "UsrProcess_e179057",

                    parameters: { 

                        test: "testing" 

                    }

                };

                ProcessModuleUtilities.executeProcess(args); 

                this.showInformationDialog("Busniess process triggered");

            },

...

diff...

...

"operation": "insert",

                "name": "UpdateButton",

                "parentName": "Tabc34c9c60TabLabelGroup654f02cd",

                "propertyName": "items",

                "values": {

                    "itemType": Terrasoft.ViewItemType.BUTTON,

                    "caption": "Update Info",

                    "style": Terrasoft.controls.ButtonEnums.style.BLUE,

                    "click": {

                        "bindTo": "OnClickTest"

                    },

                    //"tag": "OnClickTest",

                    "hint": "TEST BUTTON"

                },

Like 0

Like

4 comments

Hello,

 

I've used the same code in the demo application and the process was triggered. Maybe the process is not logged in the process log ("Enable logging" in the process settings in the process designer) or you receive some actual error in the console when starting the process. You need to check if the code of the schema doesn't contain duplicates of methods or errors as well. The complete code from my side:

define("SspProfileContactPage", ["ProcessModuleUtilities", "css!UsrCSSPortalProfile"], function(ProcessModuleUtilities) {
	return {
		mixins: {},
		entitySchemaName: "Contact",
		messages: {},
		details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
		diff: /**SCHEMA_DIFF*/[
			{
				"operation": "insert",
                "name": "UpdateButton",
                "parentName": "GeneralInfoTab",
                "propertyName": "items",
                "values": {
					"itemType": Terrasoft.ViewItemType.BUTTON,
					"caption": "Update Info",
                    "style": Terrasoft.controls.ButtonEnums.style.BLUE,
                    "click": {
                        "bindTo": "OnClickTest"
                    },
					"hint": "TEST BUTTON"}
			},
		]/**SCHEMA_DIFF*/,
		attributes: {},
		methods: {
				OnClickTest: function(){
					var args = {
						sysProcessName: "UsrProcess_b0eee32",
						parameters: { 
							test: "testing" 
						}
					};
                ProcessModuleUtilities.executeProcess(args); 
                this.showInformationDialog("Busniess process triggered");
            },
		},
		rules: {},
		userCode: {}
	};
});

 

Hey Oleg,

 

I also made sure that the logging was already enabled and the process did not start. 

And made sure that all portal users can run this process from the process properties in the process library.

 

I am trying to add this button in the portal user profile page. After altering the page it created a schema where the entitySchemaName  is empty by default.

 

...

entitySchemaName: "",

        attributes: {},

...

 

Serge,

 

When replacing a schema I usually take the content of the original schema and make it empty (mean empty methods, empty attributes and so on). For the SspProfileContactPage the entitySchemaName is Contact and you can see it in the SspProfileContactPage schemas from base packages. This can be also an issue in case you have this entitySchemaName empty. Also try using the code I sent that worked on my side (but modify the process code).

Oleg, 

I have used your code and modified the process code 

and also tried it a new replacing view model with empty method and empty attributes ... 

even used the "debugger;" to check if the code is running and it is.

 

still the same issue.

I am using Creatio version 8.0.6.3429

what version did you use your code on ?

Show all comments

I want to build an 'add' client wizard for our customer service to make it easy for them and also to prevent mistakes.

 

The first step would be to insert zipcode and housenumber, then it will make an API call to see how many adresses match these two parameter. 

 

The list that is returned, if the list is > 1 it should show you the information from the array and make you able to choose 1 of the options. 

 

If the list is 1 it should automatically pick the only available option.

 

I understand how to create the business process but combining this with a user interface is still difficult for me, is this even possible? 

Like 1

Like

3 comments

Hi, take a look at this article, I believe that there you can find a piece of useful information. It is written for the Freedom UI page, however, in earlier versions, you can just use XMLHttpRequest for sending the request, wait for a response, and process it.

The link somehow is broken now.

Pascal,

Here you are - link

Show all comments

I have a lookup field on a detail (List of VAT options with an added column for the % values), im trying to use these now to calculate a value, how do I access the other column? I can access the VAT Code using this.get("UsrVatCode"), but want the associated column which as the % amount.

Like 1

Like

2 comments
Best reply
var lookupId = this.get("RecordColumn").value;
 
var esq = this.Ext.create("Terrasoft.EntitySchemaQuery", {
    rootSchemaName: "INSERTOBJECT"
});
 
esq.addColumn("Insert Object column you wish to view");
 
esq.getEntity(lookupId, function(result) {
    if (!result.success) {
        this.showInformationDialog("Error");
        return;
    }
    this.showInformationDialog(result.entity.values.Column You wish to view);
}, this);

This is the code that I used to get it working, if anyone needs it.

var lookupId = this.get("RecordColumn").value;
 
var esq = this.Ext.create("Terrasoft.EntitySchemaQuery", {
    rootSchemaName: "INSERTOBJECT"
});
 
esq.addColumn("Insert Object column you wish to view");
 
esq.getEntity(lookupId, function(result) {
    if (!result.success) {
        this.showInformationDialog("Error");
        return;
    }
    this.showInformationDialog(result.entity.values.Column You wish to view);
}, this);

This is the code that I used to get it working, if anyone needs it.

There is also another approach: in the schema in the attributes property you can specify your column in the following manner:

"Your_column_from_the_page": {
					"dataValueType": this.Terrasoft.DataValueType.LOOKUP,
					"lookupListConfig": {
						"columns": ["column_name_from_the_lookup_object"]
					}
				},

As an example we can see that in the ContractPageV2 there is this attribute:

"Currency": {
					"dataValueType": this.Terrasoft.DataValueType.LOOKUP,
					"lookupListConfig": {
						"columns": ["Division"]
					}
				},

and we have access to the value of the "Division" column from the "Currency" lookup:

Show all comments

Im trying to create a calculated field to show a total of all records from a detail on a record, ive looked into using sql views, however I'm not sure if that would work as you cant filter by the record I don't think, are there any code solutions or anything similar?

Like 0

Like

1 comments

Hello,

 

You can try creating an integer column in the page (and in the object that this page represents) and create a business process that will change the value in this column once the record is added to the detail (or decrement once the value is removed). This way you can create the logic without additional code that will save resut in the server.

 

If you still want using the code - something similar is the functionality of the order product detail summary (that displays the number of products in order, can be found on the order page in the "products" tab). This logic can be found in the updateSummary method from the OrderProductDetailV2 from the Order package.

Show all comments