I need to reset a page field to the state "not filled in", based on the value of some other fields values, in order to force the user to re-enter it.

Is it possible ?

Like 0

Like

3 comments
Best reply

Norton Lingard,

I have just written an tested the solution..

thanks for your attention.

...

attributes: {  

                 "NullLookup": {

                        "dataValueType": this.Terrasoft.DataValueType.LOOKUP,

                        "type": this.Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,

                    "value": null

                    }

                    "FinMainCategory": {

                        dataValueType: Terrasoft.DataValueType.LOOKUP,

                        dependencies: [

                            {

                                columns: ["FinEntryType"],

                                methodName: "setMainCategoryToNull"

                            }

                        ]

                    },

...

methods: {

...

            // Handler method that sets Main Category to null

            setMainCategoryToNull: function() {

                var nullLookup = this.get("NullLookup");

                this.set("FinMainCategory", nullLookup);

            },

...

Dear Ricardo,

 

In order to implement the required functionality please use the “dependencies” property of an attribute and in a method-handler set the value of the field to the “not filled in” value. Please see the example of the code below (UsrTest, Dear and Phone are the attributes of a particular object):

 

attributes: {

       "UsrTest": {

            "dependencies": [

              {

                "columns": ["Dear", "Phone"],

                "methodName": "setUsrTest"

               }

            ]

          }

      }

 

setUsrTest: function(){

                if (this.get("Phone") === "111" && this.get("Dear") === "test"){

                    this.set("UsrTest", "not filled in"); 

                }

            }

 

 

Please find additional information in the article by the link below:

 

https://academy.creatio.com/documents/technic-sdk/7-16/attributes-attributes-property

 

Best regards,

Norton

Norton Lingard,

It is a lookup field. 

The goal is to force the user to clear the field value, in order to force the user to enter a new value, just like a field that has nor been filled in yet.

 

Norton Lingard,

I have just written an tested the solution..

thanks for your attention.

...

attributes: {  

                 "NullLookup": {

                        "dataValueType": this.Terrasoft.DataValueType.LOOKUP,

                        "type": this.Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,

                    "value": null

                    }

                    "FinMainCategory": {

                        dataValueType: Terrasoft.DataValueType.LOOKUP,

                        dependencies: [

                            {

                                columns: ["FinEntryType"],

                                methodName: "setMainCategoryToNull"

                            }

                        ]

                    },

...

methods: {

...

            // Handler method that sets Main Category to null

            setMainCategoryToNull: function() {

                var nullLookup = this.get("NullLookup");

                this.set("FinMainCategory", nullLookup);

            },

...

Show all comments

I need to adjust a just-entered field on the edit page, like the example below

 

               var comp = .... ;

                var amount = this.get("FinAmount");

                if (!amount) {

                    amount = 0;

                }

                if (comp === "x") {

                    this.set("FinAmount", -amount);

                }

FinAmount is a page editable field. The new value is shown on the page, but it is not saved when the save button is pressed.

The code works fine with read-only fields.

 

Please help 

Like 0

Like

9 comments

Dear Ricardo, 

 

Here is the working example of the code that changes the value of the column UsrTest to the -value when the column value is changed (works for non read-only fields as well). Please debug your code if the same code works differently for you: 

		attributes: {
			"UsrTest": {
				"dependencies": [
				  {
					"columns": [ "UsrTest" ],
					"methodName": "setUsrTest"
				  }
				]
			}, 
			"UsrTestChanged": {
					"dataValueType": this.Terrasoft.DataValueType.BOOL,
					"type": this.Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,
				"value": 0
		}
}

 

			setUsrTest: function(){
				if (this.get("UsrTestChanged") === 0){
					this.set("UsrTestChanged", 1); 
					var amount = this.get("UsrTest");
					this.set("UsrTest", -amount);
					//this.save(); 
				}
				else {
					this.set("UsrTestChanged", 0); 
				}
			},
		diff: /**SCHEMA_DIFF*/[
			{
				"operation": "insert",
				"name": "INTEGERa10da2ec-524f-4a7d-9219-7bb6acbefd2c",
				"values": {
					"layout": {
						"colSpan": 24,
						"rowSpan": 1,
						"column": 0,
						"row": 8,
						"layoutName": "ProfileContainer"
					},
					"bindTo": "UsrTest",
					"enabled": true
				},
				"parentName": "ProfileContainer",
				"propertyName": "items",
				"index": 8
			},

 

Best regards, 

Dennis 

Dennis Hudson,

Thanks for your reply.

I have tried your code, but got the same results.

The sign of the field is changed on the screen, but it is not saved...

 

My code:

                    "FinAmount": {

                        dataValueType: Terrasoft.DataValueType.FLOAT,

                        dependencies: [

                            {

                                columns: ["FinAmount"],

                                methodName: "adjustAmount"

                            }

                        ]

                    },

                    "FinAmountChanged": {

                        "dataValueType": this.Terrasoft.DataValueType.BOOL,

                        "type": this.Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,

                    "value": 0

                    },

 

...

 

            // Handler method that calculates the sign of the [FinAmount] column.

            adjustAmount: function() {

                    var crDb = this.get("FinCrDb");

                    if (crDb === "Db") {

                        this.set("FinAmountChanged", 1);

                        var amount = this.get("FinAmount");

                        this.set("FinAmount", -Math.abs(amount));

                        this.set("FinAmountChanged", 0); 

                    } 

            }

...

 

            {

                "operation": "insert",

                "name": "FLOATe30ea95d-a165-4b34-ac4b-7e9c33102483",

                "values": {

                    "layout": {

                        "colSpan": 8,

                        "rowSpan": 1,

                        "column": 0,

                        "row": 0,

                        "layoutName": "Header"

                    },

                    "bindTo": "FinAmount",

                    "labelConfig": {

                        "caption": {

                            "bindTo": "Resources.Strings.FLOATe30ea95da1654b34ac4b7e9c33102483LabelCaption"

                        }

                    },

                    "enabled": true

                },

                "parentName": "Header",

                "propertyName": "items",

                "index": 3

            },

 

Dear Ricardo Bigio,

 

You can save the page with the method this.save()

 

Best regards, 

Dennis 

Dennis Hudson,

I have tried this.save() too (although it is nor appropriate for us , as the page is saved regardless of the user has decided to save). But the result is  the same. The page is saved without the change in the field.

Ricardo Bigio,

 

You can set the value of the field directly in db using UpdateQuery. Please see the example in the article below: 

https://academy.creatio.com/documents/technic-sdk/7-16/handling-selection-several-records-examples

 

Best regards, 

Dennis 

Dennis Hudson,

Thanks again.

I need a solution to be done in the edit page, automatically, as the user enters the field values, according to the dependencies among them.

UpdateQuery will not be suitable in this case.

Any other suggestion ?

Ricardo Bigio,

 

UpdateQuery can be done on the edit page as well and will automatically update the value of the column in db (please see example in the academy page I've sent earlier). Could you please specify why it wouldn't work in your case? 

 

Best regards, 

Dennis 

Dennis Hudson,

Is there a solution in which the value is saved ONLY in the page (not in db) ? Of course it will be saved in the db if the user hits "SAVE" afterwards).

Ricardo Bigio,

 

In case you use a method such as:

 

onEntityInitialized: function(){
				this.callParent(arguments);
				this.set("UsrInteger2",2);
			}

the value of 2 won't be saved for UsrInteger2 column in the database (until the "Save" button is not clicked and the database value is ignored in the UI). Each time the "Save" button is clicked an UPDATE query is executed and there is no way to override the "Save" button functionality.

 

Best regards,

Oscar

Show all comments

Hi,

 

I have to perform multi-select record update functionality in mobile application(from section page) for which I need to add  custom action on section page in mobile application.

https://community.bpmonline.com/articles/adding-custom-user-action-mobile-application link only tells how to add custom action in record page not in section page.

 

Can you please tell me that is it possible : 

1. To select multiple records on section page in mobile creatio app?

2. To add custom action on section page in mobile creatio app?

 

This is an urgent requirement.

Please respond to this! 

Many thanks.

 

Like 0

Like

5 comments

Dear Akshit,

 

It is possible to add a custom action to a section page in a mobile application. The example of the required functionality can be found in the “Activity” section, in the “Schedule” view. Please see the screenshot below:

 

 

Please feel free to debug the “ActivityGridPage” schema in order to determine how this functionality can be implemented. Please take a closer look at the following methods: initializeView, getActions, getCustomActions, onActionSelected, addStatusActionButton, onItemTap, selectRecord, setActionsByGridMode.

 

Best regards,

Norton

Hi Norton Lingard,

 

Thank you, I have started debugging the application.

 

I have one more question that Is it possible to select multiple records on the section page in creatio mobile app using custom action?

 

The same way we did in this article :(https://academy.creatio.com/documents/technic-sdk/7-16/how-add-section-action-handling-selection-several-records)

 

Best 

Akshit

 

Hello Akshit,

 

 

You can implement this by creating an action that will display a lookup with multi-select choice, similarly to how it is implemented in the section filters. After that, you would be able to perform some action on chosen records. You can look into how filters in a section are implemented and implement similar functionality. 

Also, you can create an action that will take the filters in the section, send a request to db with those filters, and perform some action with the received records.  You can get the section filter in the getFilterPanel method that you can find in the view that you can get from the current page controller. 

Here is a community article on creating custom actions: 

https://community.creatio.com/articles/adding-custom-user-action-mobile-application

 

Best regards. 

Dennis 

Hi Dennis ,

With this https://community.creatio.com/articles/adding-custom-user-action-mobile-application I have created a custom action on the record page of creatio mobile application.

 

I am concerned about :

1. Create a custom action/button on section page of creatio mobile application

2. Develop a multi-select record functionality on section page of creatio mobile application.

 

It will be very helpful if you refer me to any article having same requirement or any video/steps you can share.

 

Many Thanks.

Dear Akshit,

 

Unfortunately, we don’t have any article/video that can help you to implement the required functionality. Please check the previous answer where Dennis gave some explanation on how to implement a custom action for selecting multiple records.

 

Best regards,

Norton

Show all comments

Hello,

 

I am facing the following error when clicking on "Complete interview" using the "Conducting surveys for Creatio" from devlabs.

 

42883: operator does not exist: boolean = integer

 

I am using a creatio cloud demo site.

Please advise.

 

Thank you.

Maher.

Like 0

Like

4 comments

Hello Maher,



Thank you for your notification.

We have reproduced the issue and forwarded it to the responsible team. We hope to receive their feedback until the end of the current week.

 

Will keep you informed.

Have a good day!

Hello,

 

Any update on this case?

Please note that we are planning to use it in a project in an SQL environment, is it compatible with SQL Database?

 

Thank you.

Maher.

Hello,

 

Kind reminder!

 

Regards,

Maher.

Hello Maher,



We have published the updated package on Creatio Marketplace. Please re-install the add-on from Creatio Marketplace and check for updates.



The updated package is compatible with both MS SQL and PostgreSQL.

Show all comments

Dear community,



Does anyone know how to disable the operation that toggles the checkboxes in Job experience?

Our contacts can be working in multiple accounts and they can be current or active.



Whenever we check primary and/or current, the other checkboxes turn off.

Any way to disable this? There are no records in the progress logs.

Before

After

Desired outcome





Thank you.

Like 0

Like

1 comments

Hello Yosef, 

 

Unfortunately, there is no basic option to change the behavior of the Job experience detail.

 

Different accounts can have the same primary contact:

image.png



But only one account is displayed as a primary one on the Contact page:

image.png

 

We have already registered the idea for our R&D team to implement the possibility to display several accounts as a primary for one contact on the Contact page. As a temporary workaround, you can create a detail that displays the list of accounts where the current contact is specified as a primary one. 

 

Best regards,

Olga. 

Show all comments

I have a legacy system built using EJBs in java on a JBoss app server. I need to integrate it with Creatio. What's the best way of integrating EJBs with Creatio? Are there any specific gotchas that I have to keep in mind around, JRE, cloud vs on-prem, etc?

 

Thanks in advance...

Like 0

Like

1 comments

Dear Amanthena, 

 

Here is an academy article with all possible integration options with Creatio: 

https://academy.creatio.com/documents/technic-sdkmp/7-16/integration-creatio-and-public-api

You can use base Java methods to integrate Creatio wit your application. 

Here is an academy page on calling custom web services from within Creatio in business process: 

https://academy.creatio.com/documents/administration/7-16/calling-web-services-business-processes

Unfortunately, we don't have any examples of integrating Creatio specifically with EJB applications. 

 

Best regards, 

Dennis 

Show all comments

Is there a clean way to hide the left and right navigation menus in Creatio without resorting to CSS hacks? I am building a scenario where an external app loads Creatio in an iframe and I need to restrict the user from navigating away from the screen that is shown in the Creatio iframe.

 

Thanks in advance...

Like 0

Like

2 comments

Dear Amanthena,

 

I think that adding custom css is the most appropriate approach in your case. Since it is impossible to make the left and right menus invisible only for some specific page. You can modify these menus, however these changes will affect all pages in the application.

 

Please find more information about how to add a custom css style in the article by the link below:

 

https://community.bpmonline.com/questions/how-add-custom-style-control-page-based-condition

 

Best regards,

Norton

Norton Lingard,

​​​​​​Thanks! 

Show all comments

When I send the following JSON via DataService it fails:

{"Filters":{"rootSchemaName":"AccountCommunication","logicalOperation":0,"filterType":6,"items":{"filter1":{"LeftExpression":{"ColumnPath":"CommunicationType","ExpressionType":"SchemaColumn"},"ComparisonType":3,"FilterType":4,"RightExpressions":[{"Parameter":{"DataValueType":"Lookup","Value":"2b387201-67cc-df11-9b2a-001d60e938c6"},"ExpressionType":"Parameter"},{"Parameter":{"DataValueType":"Lookup","Value":"6a3fb10c-67cc-df11-9b2a-001d60e938c6"},"ExpressionType":"Parameter"},{"Parameter":{"DataValueType":"Lookup","Value":"9a7ab41b-67cc-df11-9b2a-001d60e938c6"},"ExpressionType":"Parameter"},{"Parameter":{"DataValueType":"Lookup","Value":"ee1c85c3-cfcb-df11-9b2a-001d60e938c6"},"ExpressionType":"Parameter"}]}}},"columns":{"items":{"Account":{"expression":{"columnPath":"Account","expressionType":"0"}},"Number":{"expression":{"columnPath":"Number","expressionType":"0"}},"Id":{"expression":{"columnPath":"Id","expressionType":"0"}}}},"RootSchemaName":"AccountCommunication","OperationType":"0","AllColumns":"false"}

Server returned HTTP response code: 500 for URL: https://esp.bpmonline.com/0/dataservice/json/SyncReply/SelectQuery

This JSON should simply read all AccountCommunication options of types Email, Fax, Phone, AltPhone.

When I remove even just one of the filter expressions (no matter which: Email, Fax, Phone or AltPhone) from the JSON, it runs fine:

{"Filters":{"rootSchemaName":"AccountCommunication","logicalOperation":0,"filterType":6,"items":{"filter1":{"LeftExpression":{"ColumnPath":"CommunicationType","ExpressionType":"SchemaColumn"},"ComparisonType":3,"FilterType":4,"RightExpressions":[{"Parameter":{"DataValueType":"Lookup","Value":"2b387201-67cc-df11-9b2a-001d60e938c6"},"ExpressionType":"Parameter"},{"Parameter":{"DataValueType":"Lookup","Value":"6a3fb10c-67cc-df11-9b2a-001d60e938c6"},"ExpressionType":"Parameter"},{"Parameter":{"DataValueType":"Lookup","Value":"ee1c85c3-cfcb-df11-9b2a-001d60e938c6"},"ExpressionType":"Parameter"}]}}},"columns":{"items":{"Account":{"expression":{"columnPath":"Account","expressionType":"0"}},"Number":{"expression":{"columnPath":"Number","expressionType":"0"}},"Id":{"expression":{"columnPath":"Id","expressionType":"0"}}}},"RootSchemaName":"AccountCommunication","OperationType":"0","AllColumns":"false"}

This doesn't make sense to me.

The error code started to appear about 2 weeks ago. Previously it worked fine.

Like 0

Like

2 comments

Dear Yuriy, 

 

The 500 exception simply means that something is wrong. If you need to see the exact exception message, please open google chrome developers console (Ctr+Shift+I), go to the "Network" tab, catch the request and read a message in the "Response" and "Preview" tabs. 

Please send the text of an error from the  "Response" or "Preview" tabs.

 

Best regards, 

Dennis  

Dennis Hudson,

Thank you for pointing this, however, I don't use a browser for sending the requests, they are sent programmatically. Anyway, I researched the 500 error and it is... 

Maximum number of 20000 records exceeded while loading "AccountCommunication"! How could I not have known! It's obvious by the symptoms. Solved

Show all comments

We need to allow our partners to create/edit their contacts and accounts.

Can the Contacts and Accounts sections be added to the Partner portal workplace ? How ?

Like 0

Like

1 comments

Hello Ricardo, 



Unfortunately, there is no possibility to add the "Account" and the "Contact" sections to the Portal, as the following sections, as usual, contain private information.



We have an idea already registered for our R&D team to add the possibility of adding the following sections for the Portal Users and we will notify them about this request in order to increase the priority of implementing it. 



Kind regards,

Roman

Show all comments

Hi All, 

 

I have a couple of question regarding Creatio Cloud that I couldn't find the answer in the documentation.

  1. Is the cloud application backed up regularly? Is this Enabled by default or do we need to ask support? what's the backup frequency?
  2. What is the Disaster recovery process for Creatio Cloud?
  3. When deploying a package, either from marketplace or a custom built one, is it advisable to request a DB backup? What would be the recommended deployment process?

Apologies if these questions are already covered in the documentation.

 

Thanks,

Tiago

 

Like 2

Like

3 comments
Best reply

Hello Tiago, 

 

1. A differential backup of a cloud instance is being created automatically every day, a full back - once a week: full backup - on Saturday, differential backup - on other days. The backup also can be done per your request at a specific time. 

2. Our backup protection against catastrophic events is provided by transferring the backup to Amazon Simple Storage Service (S3). The recovery process for backups of <7 days usually takes 2-8 hours depending on a backup volume. The backup retention period is 90 days. 

3. You can install marketplace and custom packages via the system interface, but we recommend submitting a request to Creatio support team in case you would like to install custom packages as we automatically create a backup of a cloud website before the package is being installed and can promptly recover the website in case any issues occur. 

 

Please, let us know in case any further information is required. 

 

Best regards, 

Olga. 

Hello Tiago, 

 

1. A differential backup of a cloud instance is being created automatically every day, a full back - once a week: full backup - on Saturday, differential backup - on other days. The backup also can be done per your request at a specific time. 

2. Our backup protection against catastrophic events is provided by transferring the backup to Amazon Simple Storage Service (S3). The recovery process for backups of <7 days usually takes 2-8 hours depending on a backup volume. The backup retention period is 90 days. 

3. You can install marketplace and custom packages via the system interface, but we recommend submitting a request to Creatio support team in case you would like to install custom packages as we automatically create a backup of a cloud website before the package is being installed and can promptly recover the website in case any issues occur. 

 

Please, let us know in case any further information is required. 

 

Best regards, 

Olga. 

Olga Avis,

Hi Olga,

how can i restore a backup? I need a restore of a state ~10 days ago.

Best regards,

Wolf

Hello Wolf Galetzki,

 

If you would like to restore the website from the backup, please, contact our Technical support team at support@creatio.com. We kindly ask you to specify the website URL and the date of the backup creation.

 

Please, let us know in case you have any further questions. 

 

Best regards, 

Olga. 

Show all comments