Hi Team,

 

I'm looking for a solution for how we can sort any lookup on the filter panel in the section page.

 

 

The values in the month lookup should be displayed as april 2016, may 2016 ..... and so on.

We have been able to achieve the  lookup sorting functionality in the section form/edit page however the same is not working on the section/ list page.

 

Please suggest some solution.

Best Regards,

Sarika

Like 0

Like

1 comments

Hello Sarika!

 

Could you specify how you set up the sorting in the section form/edit page? 

Just so we are on the same page, could you please confirm the following? 

Now you have two different views of one lookup.

 

Best regards,

Kate 

Show all comments

Hello!



Is it possible to generate/download Excel file with all columns for data import?

It was possible in previous versions, but now I cannot find such option 





Thank you!

Vladimir

Like 0

Like

1 comments

Hello, 

 

It is possible to connect with more than one record in this section.

 

For example, connect an activity with two opportunities and these appear in the panel of pending activities in the two opportunities

 

Like 1

Like

1 comments

Hello Luis, 



Modifying the detail [Connected To] is only possible by the means of the development since it is implemented by using different programming logic.

We may suggest to check the below posts where similar business task have been already discussed:

https://community.creatio.com/questions/connect-activity-custom-object#comment-71151

https://community.creatio.com/questions/how-can-i-remove-activity-link-email

Should you have any questions, please let us know!

Best regards,

Anastasiia

Show all comments

Hi Creatio Team,

We have a creatio instance with around 100 users, who in order to authenticate use the Creatio authentication. This users are set in specific organizational and functional roles, with access rights applied to them.

We will do a sync with Active Directory through LDAP for the same 100 users, so that the users use LDAP authentication to log in to Creatio and not Creatio authentication?

1-Will these cause any duplicates with the existing Contacts ?

2- Should we deactivate the licenses of the existing users before doing the sync with AD ?

Thank you

 

Like 2

Like

2 comments

Hello,

 

 

During synchronization with LDAP is checked table SysAdminUnit (table section Users), so when you synchronize the new user will be created.

You can re-bind the contact with an SQL query and then delete the new contact.

The connection to the table of contacts in SysAdminUnit is made by the ContactId column.

Also, by checking the SysAdminUnit table, if the system already has a user bound to a contact, we cannot create another user bound to an occupied contact.

If users were previously synchronized over LDAP and they have an LDAP element, the system should not generate new contacts/users.

 

More information is available here:

https://academy.creatio.com/docs/user/setup_and_administration/user_and…

Hello

Kalymbet Anastasia,

Please what is your best suggestion on our scenario?

The old users were created manually. We want to import the same users through LDAP. Are the followoing steps a good workaround ?

1- Deactivate liceneses for existing users

4- Proceed to Synchronization with LDAP 

2- Delete old contacts

3- Delete old users

 

 

Show all comments

Hello!

I can change access rights to object in process. But before providing access rights to Document I would like to check whether desired group already has access to record. Is it possible to do it by process?

Like 0

Like

2 comments

Hello Yana,

 

There is a table in the database, where all rights for the object are stored,

unfortunately, you can't read this object by the 'read data' element in the business process.



The table is called SysOjectRight (SysOpportunityRight, SysActivityRight, etc).



But your business task could be achieved by the script-task. 



 

Bogdan,

thanks!

Show all comments

I need the button that I created "Adjust Inventory" to be visible only when the page is not with altered fields without having the values saved.

So when it is unsaved it will show like this:

And when you have the "Save" and "Cancel" buttons visible, it should be disabled.

Like 0

Like

3 comments

Hi Gabriel,



Can you please check the SchemaPageV2 of your object?

That should have the Button definition in the Diff array and you can add the Visible: false property to it to remove it from your edit page.





BR,

Bhoobalan Palanivelu.

 

Bhoobalan Palanivelu,

I created an attribute to be able to disable it when there is an unsaved field, the problem is that I can't change it, and the page in the two images above are the same page, it is a detail page.

 

Gabriel Cassimiro,

 

Could you please share with us more details on the page/detail where you are using this, and the current code implementation that you have for your button?

 

Best regards,

Dariy

Show all comments

Hi Community,

 

Is there a way to freeze a record - lock all fields and  connected details - based on a condition? For example, if an Order status is set to Completed, all the fields and details connected to order record should be locked. In order to make any change to the record, the status has to be changed from Completed to In Progress and then the record is unlocked. 

Like 0

Like

3 comments

Hello,

 

If you wish to change access rights on a particular stage of the Order, you can simply add a "Change access rights" to its stage:

With it, you can state which roles/users should have their rights set to "read-only".

 

Alternatively, you could create a trigger process that is triggered once the stage of your Order section is changed and then do the same rights delegation as mentioned above with the "Change access rights" element in your business process (I created an example that is based on the stages of the leads section):

Hope it helps!

Best regards,

Artem.

I have an article on how to do that using code on a page here: https://customerfx.com/article/completely-locking-a-page-via-code-inclu…

However, the most reliable way to do this is to use a process and change the access rights of the record(s) - otherwise, they could still be changed in other places, such as the mobile client.

Ryan

Thank Ryan and Artem for the prompt response!

There are webservices that are called from client side when some fields are changed. Even with the permission restriction, these change events will still be triggered when the value is changed although it can not be saved by clicking the save button.

Looks like Ryan's solution is more compatible with the customizations we have in place now. That would help us lock the field giving no provision for the user to change the field value.

However, I do see in academy article (https://academy.creatio.com/docs/developer/interface_elements/interface… ) that setting the value for IsModelItemsEnabled will not lock fields that have "enabled" property defined in diff.

If the field has a binding for the enabled property in the diff array element or the business rule, the mechanism will not lock this field.

Not sure if there is a way to override the diff property other than removing it.

 

Regards,

Nirupama

Show all comments

Hello Creatio Community,

I have an editable list, and I want that one of its columns "Product" be displayed as a link. So that when its clicked it redirects automatically to the Product section.

How can this functionality be achieved ?

Does this involve overriding the addColumnLink: function ?

Thank you,

Petrika

Like 0

Like

2 comments
Best reply

Hi Petrika,



The below code will make the lookup column act as a link as to how it inherits the behaviours during a normal detail.



This is the actual logic to make the lookup a link in the detail Grid (Editable detail).



if (entitySchemaColumn.dataValueType === this.Terrasoft.DataValueType.LOOKUP{

                            config.showValueAsLink = true;

                        }

 

Add this method in your corresponding detail code,

getCellControlsConfig: function(entitySchemaColumn) {
					debugger;
						if (!entitySchemaColumn) {
							return;
						}
						var columnName = entitySchemaColumn.name;
						var enabled = (entitySchemaColumn.usageType !== this.Terrasoft.EntitySchemaColumnUsageType.None) &&
								!this.Ext.Array.contains(this.systemColumns, columnName);
						var config = {
							itemType: this.Terrasoft.ViewItemType.MODEL_ITEM,
							name: columnName,
							labelConfig: {visible: false},
							caption: entitySchemaColumn.caption,
							enabled: enabled
						};
						if (columnName === "MyColumn") {
							config.enabled = false;
						}
						if (entitySchemaColumn.dataValueType === this.Terrasoft.DataValueType.LOOKUP{
							config.showValueAsLink = true;
						}
						if (entitySchemaColumn.dataValueType !== this.Terrasoft.DataValueType.DATE_TIME &&
								entitySchemaColumn.dataValueType !== this.Terrasoft.DataValueType.BOOLEAN) {
							config.focused = {"bindTo": "Is" + columnName + "Focused"};
						}
						return config;
					},





BR,

Bhoobalan Palanivelu.

Hi Petrika,



The below code will make the lookup column act as a link as to how it inherits the behaviours during a normal detail.



This is the actual logic to make the lookup a link in the detail Grid (Editable detail).



if (entitySchemaColumn.dataValueType === this.Terrasoft.DataValueType.LOOKUP{

                            config.showValueAsLink = true;

                        }

 

Add this method in your corresponding detail code,

getCellControlsConfig: function(entitySchemaColumn) {
					debugger;
						if (!entitySchemaColumn) {
							return;
						}
						var columnName = entitySchemaColumn.name;
						var enabled = (entitySchemaColumn.usageType !== this.Terrasoft.EntitySchemaColumnUsageType.None) &&
								!this.Ext.Array.contains(this.systemColumns, columnName);
						var config = {
							itemType: this.Terrasoft.ViewItemType.MODEL_ITEM,
							name: columnName,
							labelConfig: {visible: false},
							caption: entitySchemaColumn.caption,
							enabled: enabled
						};
						if (columnName === "MyColumn") {
							config.enabled = false;
						}
						if (entitySchemaColumn.dataValueType === this.Terrasoft.DataValueType.LOOKUP{
							config.showValueAsLink = true;
						}
						if (entitySchemaColumn.dataValueType !== this.Terrasoft.DataValueType.DATE_TIME &&
								entitySchemaColumn.dataValueType !== this.Terrasoft.DataValueType.BOOLEAN) {
							config.focused = {"bindTo": "Is" + columnName + "Focused"};
						}
						return config;
					},





BR,

Bhoobalan Palanivelu.

Thank you Bhoobalan Palanivelu,

 

It works perfectly.

Show all comments

We are running with critical issue with the BPM Sync emails.

The email account password expired and we are trying to reset it.

 

We did reset in the exchange, but when we try to update the new password in BPM the system shows the below message.

"Invalid email or password" 

But we verified by logging in in M365, able to login.

 

 

Like 1

Like

5 comments

Hi Selva,



Microsoft stopped using the "Basic authentication" type for mailbox authorization. Therefore, to solve the issue, It recommends switching to the OAuth authorization type to restore mail synchronization in the application. Microsoft provides the following set up instructions - https://learn.microsoft.com/en-us/exchange/clients-and-mobile-in-exchan…

For the application version 8.0.2 and above the steps are the following:
 
1.  Setup the application in Azure.
2.  Make changes to the mail provider on the Creatio side (change from basic to OAuth and fill in data form Azure side). 
3.  All user mailboxes will require user action to grant permission to continue synchronization.
 
Older versions:
1.  Setup the application in Azure.
2.  Setup the mail provider on the Creatio side (It’s better to create a Copy of the existing mail provider and use it but it’s also possible to change the old one) 
3 .a If it is OK to delete the mailbox and add it with the new mail server – it’s the easiest way and will cause no additional issues. That’s all.
3 .b In case you cannot / don’t want to delete a mailbox and want to adjust it to use the new mail provider then your IT team should do steps 1 and 2 and then contact Creatio support asking to:
-	Update the MailServerId column of the MailboxSyncSettings table with the value of the new/adjusted mail server that can work with Oauth.
-	Run the script: update "MailboxSyncSettings" 
-	set "ErrorCodeId" = '5f906e1c-9521-45df-8e43-82b5109e0e4d' 
-	where "Id" = 'the_Changed_Mailbox'
4.  All user mailboxes will require user action to grant permission to continue synchronization.





BR,

Bhoobalan Palanivelu.

As Bhoobalan mentioned, Microsoft has disabled basic authentication for Office 365 accounts, which means you can no longer use a username & password to log in from other applications (such as Creatio). Instead, you need to create an OAuth app in the Office 365 Azure portal, then use that in Creatio. 

I have an article with screenshots showing how to set up OAuth for using Office 365 in Creatio here: https://customerfx.com/article/setting-up-microsoft-office-365-email-fo…

The account will no longer work in Creatio until you switch it to use OAuth.

Ryan

Bhoobalan Palanivelu,

Thanks for the detailed info, much appreciated !

We are running with the version 7.16, is the changes and steps still same ?

 

Thanks,

Selva

 

Ryan Farley,

 

Thanks for the detailed steps.

 

We followed all the steps as per your link, and then tried to update the new password in Creatio ( where it shows warning message like specify the new password). It gives the same error message.

 

But when I deleted my email account and re-added , it works fine.

 

Do we need to delete all the email accounts ( We have 5 email accounts for renewal, case process) and re-add them ? or do we have any other way to provide permission and make it sync without deleting them ?

 

Please let me know.

 

Thanks,

Selva

 

Selva,

Selva,

 

Yes, The steps are the same for versions below 8 as mentioned.

It's not mandatory to delete the mailbox and re-add them but if it is fine to remove and re-add the mailbox, it's the easiest method to do.



All 5 accounts must be of Office 365 and currently you have updated the OAuth in Creatio following Ryan's article. So you can remove the other mailbox and re-add them and synchronize it.





BR,

Bhoobalan Palanivelu.

Show all comments

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