I need this button to be on all rows and not on "activeRowActions", and I can't find the right parent.

 

{
	"operation": "insert",
	"parentName": "DataGrid",
	"propertyName": "activeRowActions",
	"name": "MoveQtyButton",
	"values": {
		"itemType": Terrasoft.ViewItemType.BUTTON,
		"caption": "Move Qty",
		 "className": "Terrasoft.Button",
         "style":this.Terrasoft.controls.ButtonEnums.style.BLUE,
         "tag": "call",
	}
},

 

Like 1

Like

6 comments

Hi Gabriel,



Please find the solutions in the below community threads.

https://community.creatio.com/questions/add-button-datagrid-active-row
https://community.creatio.com/articles/add-button-active-row-detail







BR,

Bhoobalan Palanivelu.

Bhoobalan Palanivelu,

Thanks for responding, but I had seen these posts before, and they helped me in parts but not for what I need, the two are for activeRow, that is for when they are selected only, and I need them to appear in all rows even if not selected.

Gabriel Cassimiro,



Thanks for the briefing!

In this case, you need a button as a column in the grid.



ContactSectionV2 Grid

define("ContactSectionV2", ["css!UsrContactSectionV2CSS"], function() {
	return {
		entitySchemaName: "Contact",
		attributes: {
			"SelectButtonColumn": {
				"dataValueType": Terrasoft.DataValueType.TEXT,
				"type": Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN
			}
		},
		details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
		diff: /**SCHEMA_DIFF*/[]/**SCHEMA_DIFF*/,
		methods: {
			onGridDataLoaded: function(response) {
				this.mixins.GridUtilities.onGridDataLoaded.call(this, response);
				this.addSelectCustomerButton();
			},
			onRender: function() {
				this.callParent(arguments);
				this.addSelectCustomerButton();
			},
			unSelectRow: function(id) {
				this.mixins.ConfigurationGridUtilities.unSelectRow.apply(this, arguments);
				this.addSelectCustomerButton();
			},
			addSelectCustomerButton: function() {
				var baseSelector = "#grid-ContactSectionV2DataGridGrid-wrap div.grid-listed-row div:last-child";
				var selector = baseSelector + ">span";
				var scope = this;
				$(selector).unbind();
				$(baseSelector).html(
					Ext.String.format("<span>{0}</span>", this.get("Resources.Strings.SelectCustomerButtonCaption")));
 
				$(selector).addClass("glb-select-customer-button");
 
				$(selector).click(function() {
					var id = "";
					try {
						id = arguments[0].currentTarget.offsetParent.offsetParent.attributes.id.value.split("item-")[1];
					} catch(e) {}
					if (id) {
						scope.onSelectCustomerButtonClick(id);
					} else {
						this.error("Active row id was not found");
					}
				});
			},
			onSelectCustomerButtonClick: function(id) {
				this.showInformationDialog(id);
			}
		}
	};
});

CSS Module:

.glb-select-customer-button {
	background: #8ecb60;
	color: white;
	padding: 2px 10px;
	border-radius: 3px;
}
 
.glb-select-customer-button:hover {
	background: #74bc48;
	cursor: pointer;
}



Result will be like below,





You need to do the same in your detail schema.





BR,

Bhoobalan Palanivelu.

 

Bhoobalan Palanivelu,

This is fantastic Bhoobalan, thanks for sharing!

Ryan

Bhoobalan Palanivelu,

Thanks, I have a question, because I'm trying to apply in a list of a detail, but I'm not having the same result for when it is a grid of a section, is there something I have to put different or does it work the same way?

Gabriel Cassimiro,



Please be informed to define the value for this label through the localizable string available on your schema page.

this.get("Resources.Strings.SelectCustomerButtonCaption"))

Also, you can check about the CSS and its dependency included in your schema.


 

BR,

Bhoobalan Palanivelu.

Show all comments

Hi,



I am confused on how Creatio tags who own's the Email.

I have a process that updates the Reporter and Owner of an Email and expects it to be tagged to the new Reporter or Owner but that is not what's happening.



Email is sent automatically via BP. Any ideas?

*This is what the email's Owner and Reporter.

*This is what is shown in Lead Timeline

 

Like 0

Like

5 comments

Hi colleagues,

The owner of the email, sent by BP should by the contact who started the BP.

But it is not very clear from your second screenshot what are you trying to show.

Could you please elaborate on the issue?

Best regards, Alex.

Aleksei Efimenko,



Second screenshot shows Chris was tagged as the Owner of the Email in the lead Timeline.



The BP is triggered via Lead Stage change, Created by and Modified by CRM Team. So I was expecting it to be CRM Team.



Solem Khan Abdusalam,

Thank you for the information.

Could you also clarify who is the owner of the mailbox that is configured in BP to send emails?

Aleksei Efimenko,



CRM Team owns it and no one else uses it since every one has their personal mailbox.

Solem Khan Abdusalam,

Please keep in touch with the support team about the issue.

They will help you to find the cause of such behavior.

Best regards, Alex.

Show all comments

Hi!

How to make a Customer Multi Lookup visible in a list?



I know that there are two fields in the database. Contact and Account. But I want to show only the Customer field in the list of e.g. Opportunities.

 

Like 1

Like

4 comments

Hi Oliver,



we create new text field 'Customer name' in Opportunity for such case. It is calculated in the process (when Opportunity is added or Account/Contact is modified) and can be shown in the list.



But it will be just text - not a link



Kind regards,

Vladimir

Vladimir Sokolov,

Thanks for your answer,

I had also thought about writing the info in a separate field.



Of course it would be better to use the existing "virtual" field.

Also because of the link function.

 

Regards,

Oliver

Oliver Herzog,



It is possible to update/modify the Multiple lookup object for a single column. In the current scenario, Customer is a multi-lookup column for both "Account & Contact".

 

Remove "Contact" or "Account" in the multiLookupColumns property.

Add the below attribute in your "OpportunityPagev2"

attributes: {
			"Client": {
					"caption": {"bindTo": "Resources.Strings.Client"},
					"dataValueType": this.Terrasoft.DataValueType.LOOKUP,
					"multiLookupColumns": ["Contact"],
					//"isRequired": false
				},
		}

The result will looks like below,

 

 

 

BR,

Bhoobalan Palanivelu.

Bhoobalan Palanivelu,

thank you for your answer.

But I don't want to remove the function of the field.

I simply want the content of the multi-field to be displayed in the overview list (as in the screenshot in the first post).

 

Show all comments

I have created a button that will do the same thing as "Export to Excel" and I need to call the same function. But I couldn't identify what the function is, if you can help me with what function to call.

Like 1

Like

1 comments
Best reply

The function is named "exportToExcel" and implemented in BaseDataView. If you add a button to the parentName "Detail" and propertyName "tools", then add the click as: "click": {"bindTo": "exportToExcel"}. It will trigger the export to excel just as if it was selected from the actions menu.

Note, this button would need to be added to the detail schema (not the page). It would look something like this: 

{
	"operation": "insert",
	"parentName": "Detail",
	"propertyName": "tools",
	"name": "ExportToExcelButton",
	"values": {
		"itemType": Terrasoft.ViewItemType.BUTTON,
		"caption": "Export to Excel",
		"click": {"bindTo": "exportToExcel"}
	}
}

Ryan

The function is named "exportToExcel" and implemented in BaseDataView. If you add a button to the parentName "Detail" and propertyName "tools", then add the click as: "click": {"bindTo": "exportToExcel"}. It will trigger the export to excel just as if it was selected from the actions menu.

Note, this button would need to be added to the detail schema (not the page). It would look something like this: 

{
	"operation": "insert",
	"parentName": "Detail",
	"propertyName": "tools",
	"name": "ExportToExcelButton",
	"values": {
		"itemType": Terrasoft.ViewItemType.BUTTON,
		"caption": "Export to Excel",
		"click": {"bindTo": "exportToExcel"}
	}
}

Ryan

Show all comments

Hi all

I have created a web service that accepts values from a third party server. Next, I need to transfer one value from the request to the section field.

Question:

How do I call my finished web service in C#?

Like 0

Like

4 comments

Hi,

Are you talking about a service created in the configuration or in the "Web services" section?

Dmytro Vovchenko, in the web services section

 

the question is how to set up its call in c#, so that in the future to use its result in one of the fields of the section

 

Alexandr Bezbozhnov,

As far as I know, currently, there is no direct way of running this sort of web service from code. However, you can run it inside a business process and you can run this process inside C# code using

ProcessEngineService.svc, with it you even can get the result values of the process.

Show all comments

Hello!



how would you suggest to solve the following case:



There is a product with base unit of measure - pieces

There is additional unit of measure - kg. As weight of one piece is 0.6 kg, so Number of base units = 1.667





When I add 60 kg of this product, I would like to see 100 pieces, but rounding issue doesn't give me such possibility





As I cannot switch additional and base units, I see, it is necessary to expand functionality of units conversion - add an option to set 'Number of base units' OR 'Number in base unit'



But maybe you have better suggestions?



Kind regards,

Vladimir

Like 0

Like

1 comments

Hello Vladimir,

 

Thank you for this question. In the OOTB logic it was not expected to have irregular fractured values. As a workaround - using grams may be helpful to avoid the visible issue, or to use custom and specific logic to fulfill your needs.

 

We have noted this request to our Backlog for our Developers. If there will be more customers arriving with the same issue - we will develop and implement this feature in further releases.

 

Best Regards,

Dan

Show all comments

Hi!

I would like to know if I can make a stage of a DCM lifecycle non editable by using business rule. When the stage is inactive, I want the owner to not be able to change it.

 

Thank you! 

Like 0

Like

5 comments

Hello,

 

You may lock the lead stage from manual selection in DCM settings and set up the business rule to lock it

How can I lock a stage using a business rule?

Hello!



The Case Designer section controls the DCM stage's availability.

You can learn about the Case Designer section in this article on the Creatio Academy:

https://academy.creatio.com/docs/user/bpm_tools/dynamic_case_setup/case…

You can also use a business rule to show or hide columns based on lead stages on a page.

Bogdan,

How, please, have you some samples or article?. I want to block DCM until some conditions in the record are done and not idea how to do

Julio Falcon (Cibernética),

 

I am sending you a link to an article on building business rules, for your familiarization: https://academy.creatio.com/docs/user/nocode_platform/freedom_business_…

 

Also, you may find this article from Community with a similar query useful: https://community.creatio.com/questions/lock-lead-record-edition

 

Show all comments

Hi Team,

I am getting below error while On-site setup.

 

Please help if anyone.

 

Thanks in advance.

Like 0

Like

1 comments

Hello, I am currently trying to create a combobox of the contacts associated with a certain account. When a contact is selected, then that contact will be made the primary contact.

 

Everything works fine, but when the edit page first launches the combobox does not display the primary contact and appears as it does below.

How would I get the combobox to display the primary contact on initialization like below.

Here is my replacing client schema:

define("AccountPageV2", [],function() {
    return {
        entitySchemaName: "Account",
        details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
        attributes: {
            "myEnum": {
                "dataValueType": Terrasoft.DataValueType.ENUM,
                "type": Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,
                "caption": "Primary Contact:"
            },
            "myList": {
                "dataValueType": Terrasoft.DataValueType.ENUM,
                "type": Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,
                "isCollection": true
            }
        },
        diff: /**SCHEMA_DIFF*/[
            {
                "operation": "insert",
                "name": "myEnum",
                "values": {
                    "caption": "myEnum",
                    "dataValueType": this.Terrasoft.DataValueType.ENUM,
                    "bindTo": "myEnum",
                    "layout": { "colSpan": 24, "rowSpan": 1, "column": 0, "row": 4 },
                    "controlConfig": {
                        "className": "Terrasoft.ComboBoxEdit",
                        "list": {
                            "bindTo": "myList"
                        },
                        "change": {
                            "bindTo": "onMyValueChange"
                        },
                        "prepareList": {
                            "bindTo": "prepareMyList"
                        }
                    }
                },
                "parentName": "SolutionTab_gridLayout",
                "propertyName": "items",
                "index": 1
            }
        ]/**SCHEMA_DIFF*/,
        methods: {
            onPageInitialized: function(callback, scope) {
                if (!this.get("myList")) {
                    this.set("myList", this.Ext.create("Terrasoft.Collection"));
                }
 
                if (callback) {
                    callback.call(scope || this);
                }
            },
            onEntityInitialized: function() {
                this.callParent(arguments);
            },
            prepareMyList: function(filter, list) {
				if (list === null) {
                    return;
                }
                list.clear();
				// create query for server side
				var esq = this.Ext.create("Terrasoft.EntitySchemaQuery", {
					rootSchemaName: "Contact"
				});
				esq.addColumn("Name", "Name");
				esq.addColumn("Id", "Id");
				esq.addColumn("Account.Id","Account");
				esq.addColumn("Job.Name","Job");
				// run query
				var filterAccountType = esq.createColumnFilterWithParameter(
						Terrasoft.ComparisonType.EQUAL, "Account", this.get("Id"));
				esq.filters.addItem(filterAccountType);
				esq.getEntityCollection(function(result) {
					//perform
					if (!result.success) {
						/* For example, error processing/logging. */
						this.showInformationDialog("Data query error");
						return;
					}
					var count = 0;
					var items = {};
					result.collection.each(function (item) {
						items[item.get("Id")] = {
							"value": item.get("Id"),
							"displayValue": item.get("Name")+ "  :  " + item.get("Job")
						};
					});
					var list = this.get("myList");
					list.loadAll(items);
				}, this);
            },
            onMyValueChange: function(val) {
                if (val) {
                    console.log("New Primary Contact Added");
					this.set('PrimaryContact',val);
                }
            }
        },
        rules: {}
    };
});

 

Like 0

Like

4 comments
Best reply

Dominic Ricci,

Since the Comboxbox is bound to the myEnum attribute, you should be able to set the default as something like this: 

this.set("myEnum", { 
    value: "DefaultIdValue", 
    displayValue: "DefaultTextValue" 
});

Ryan

Hi,

Hard to tell the problem based on the code alone. In this case, you need to do a debug to find the cause.

Maybe this example may help you, the task of setting a default value is quite similar to your case.

Dmytro Vovchenko,

In the example you link there is the line of code



this.set("Deadline", newDate);

 

How would I do this for the combobox? Maybe something like this...

 

value = this.get("Primary Contact");

this.set("myEnum", value);



The issue is that I do not know how to access the initialized value in the combobox. Is the assumption of setting myEnum correct? 

Dominic Ricci,

Since the Comboxbox is bound to the myEnum attribute, you should be able to set the default as something like this: 

this.set("myEnum", { 
    value: "DefaultIdValue", 
    displayValue: "DefaultTextValue" 
});

Ryan

Ryan Farley,

This is what I was looking for. Thank you!

Show all comments

Hi Community,

 

In the new version of crm we couldn't find the option to compile only modified items, the option only under compile is compile all. How can we compile modified items only as compile all is taking too much time to complete?

Like 0

Like

1 comments

Hello Fulgen,

 

Clicking on Compile button performs the same action as the  Compile Modified Items.

 

Compile All items is separate action in the drop-down.



 

Show all comments