Very strange occurance with our instance.  activities that were created during a 'make recurring' process are not visible in Schedule view when logged in and attempting to look at their own activities.  When others set the owner in the Schedule view in the activity section to the activity owner, the activities are visible.  Has anyone else seen this with this Marketplace add-on?

Like 0

Like

3 comments

Hello Stephen,

 

Kindly note that the add-on was developed for and tested on Creatio desktop.

 

That said, please send us the following details:

 

1. Creatio desktop product and version.

2. Mobile app version and operating system.

 

This information will help us to reproduce the issue and get back to you with feedback.

Thank you:

 

our desktop is Sales Creatio, enterprise edition Version 7.17.1.1363

Mobile OS and app version are Android and v7.18.5

Stephen J Fisher,

Hi Stephen!

Based on the symptoms, I recommend rechecking the ActivityParticipant Detail.

All out-of-the-box filters in the Activity section work with this detail because one activity can have several participants. Maybe there is a problem with the data in this detail.

 

We have also reviewed the add-on and tested it on our site. However, we were unable to reproduce the issue on our end.

 

Possible reasons for this:

1. Non-standard rights settings on ActivityParticipant Detail.

2. Customized Activity \ ActivityParticipant or Recurring Activities logic.

I recommend using the official version of the add-on.

 

Also, you may test your settings on a trial site to pinpoint the bottleneck.

 

Show all comments

Hi,

I am trying to update a lookup field linked to Owner field of Accounts (Lookup to Contacts) for multiple records using an input box, which is added as custom action. But, the list of records are not displaying either by typing in the field or clicking on magnifying glass icon.

 

I have tried multiple way to bind attributes and diff but no progress, therefore I have attached the code snippet of this custom action for reference.

 

I appreciate if you can suggest a way to tackle this issue.

Thanks,

 

File attachments
Like 0

Like

5 comments
Best reply

Hi Kavian,

 

The code below will do the trick:

define("AccountSectionV2", [], function() {
	return {
		entitySchemaName: "Account",
		details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
		diff: /**SCHEMA_DIFF*/[]/**SCHEMA_DIFF*/,
		attributes:{},
		methods: {
			updateAccount: function(callback, autoIds, selectedContact){
				var update = Ext.create("Terrasoft.UpdateQuery", {
                            rootSchemaName: "Account"
                        });
				var filters = Terrasoft.createFilterGroup();
				filters.logicalOperation = Terrasoft.LogicalOperatorType.OR;
				autoIds.forEach(function(item) {
					var accountIdFilter = update.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, "Id", item);
					filters.add("AccountIdFilter" + item, accountIdFilter);
				}, this);
				update.filters.add(filters);
				update.setParameterValue("Owner", selectedContact, Terrasoft.DataValueType.LOOKUP);
				update.execute(function(result) {
					callback.call(this, result);
				}, this);
			},
			getSectionActions: function() {
				var actionMenuItems = this.callParent(arguments);
				actionMenuItems.addItem(this.getButtonMenuItem({
					"Caption": {bindTo: "Resources.Strings.MultiplyChangeAction"},
					"Click": {bindTo: "showOwnerInfo"}
				}));
				return actionMenuItems;
			},
			showOwnerInfo: function() {
                var caption = "Select an owner";
                var ContactList;
                this.set("ContactList", new Terrasoft.Collection());
                var controls = {
                    "Owner": {
                        dataValueType: Terrasoft.DataValueType.ENUM,
                        isRequired: true,
                        caption: "Owner",
                        value: {
                            bindTo: "Contact"
                        },
                        customConfig: {
                            list: {
                                bindTo: "ContactList"
                            },
                            prepareList: {
                                bindTo: "onPrepareContactList"
                            }
                        }
                    }
                };
                var ownerInputBoxHandler = this.ownerInputBoxHandler.bind(this);
                Terrasoft.utils.inputBox(caption, ownerInputBoxHandler, [
					{
						className: "Terrasoft.Button",
						caption: "ASSIGN",
						returnCode: "ok"
					}, "cancel"
				], this, controls);
                Terrasoft.each(Terrasoft.MessageBox.controlArray, function(item){
                    item.control.bind(this);
                }, this);
            },
            onPrepareContactList: function(){
                var esq = this.Ext.create("Terrasoft.EntitySchemaQuery", { rootSchemaName: "Contact" });
                esq.addColumn("Id");
                esq.addColumn("Name");
                esq.getEntityCollection(function(result){
                    if (result.success){
                        var items = {};
                        result.collection.each(function(item) {
                            items[item.get("Id")] = { "value": item.get("Id"), "displayValue": item.get("Name") };
                        }, this);
                    }
                    var list = this.get("ContactList");
                    list.loadAll(items);
                }, this);
            },
            ownerInputBoxHandler: function(tag, data){
				var autoIds = this.getSelectedItems();
				var selectedContact = data.Owner.value;
                if (Terrasoft.MessageBoxButtons.OK.returnCode === tag){
                    if (Ext.isEmpty(selectedContact)){
                        this.showInformationDialog("Field is required", function(){
                            this.showOwnerInfo();
                        });
                    } else {
                        this.updateAccount(function(context, result){}, autoIds, selectedContact);
                    }
                }
            }
		}
	};
});

You will be able to select an owner from contacts:

and the selected records will be updated properly.

 

Best regards,

Oscar

Hi Kavian,

 

The code below will do the trick:

define("AccountSectionV2", [], function() {
	return {
		entitySchemaName: "Account",
		details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
		diff: /**SCHEMA_DIFF*/[]/**SCHEMA_DIFF*/,
		attributes:{},
		methods: {
			updateAccount: function(callback, autoIds, selectedContact){
				var update = Ext.create("Terrasoft.UpdateQuery", {
                            rootSchemaName: "Account"
                        });
				var filters = Terrasoft.createFilterGroup();
				filters.logicalOperation = Terrasoft.LogicalOperatorType.OR;
				autoIds.forEach(function(item) {
					var accountIdFilter = update.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, "Id", item);
					filters.add("AccountIdFilter" + item, accountIdFilter);
				}, this);
				update.filters.add(filters);
				update.setParameterValue("Owner", selectedContact, Terrasoft.DataValueType.LOOKUP);
				update.execute(function(result) {
					callback.call(this, result);
				}, this);
			},
			getSectionActions: function() {
				var actionMenuItems = this.callParent(arguments);
				actionMenuItems.addItem(this.getButtonMenuItem({
					"Caption": {bindTo: "Resources.Strings.MultiplyChangeAction"},
					"Click": {bindTo: "showOwnerInfo"}
				}));
				return actionMenuItems;
			},
			showOwnerInfo: function() {
                var caption = "Select an owner";
                var ContactList;
                this.set("ContactList", new Terrasoft.Collection());
                var controls = {
                    "Owner": {
                        dataValueType: Terrasoft.DataValueType.ENUM,
                        isRequired: true,
                        caption: "Owner",
                        value: {
                            bindTo: "Contact"
                        },
                        customConfig: {
                            list: {
                                bindTo: "ContactList"
                            },
                            prepareList: {
                                bindTo: "onPrepareContactList"
                            }
                        }
                    }
                };
                var ownerInputBoxHandler = this.ownerInputBoxHandler.bind(this);
                Terrasoft.utils.inputBox(caption, ownerInputBoxHandler, [
					{
						className: "Terrasoft.Button",
						caption: "ASSIGN",
						returnCode: "ok"
					}, "cancel"
				], this, controls);
                Terrasoft.each(Terrasoft.MessageBox.controlArray, function(item){
                    item.control.bind(this);
                }, this);
            },
            onPrepareContactList: function(){
                var esq = this.Ext.create("Terrasoft.EntitySchemaQuery", { rootSchemaName: "Contact" });
                esq.addColumn("Id");
                esq.addColumn("Name");
                esq.getEntityCollection(function(result){
                    if (result.success){
                        var items = {};
                        result.collection.each(function(item) {
                            items[item.get("Id")] = { "value": item.get("Id"), "displayValue": item.get("Name") };
                        }, this);
                    }
                    var list = this.get("ContactList");
                    list.loadAll(items);
                }, this);
            },
            ownerInputBoxHandler: function(tag, data){
				var autoIds = this.getSelectedItems();
				var selectedContact = data.Owner.value;
                if (Terrasoft.MessageBoxButtons.OK.returnCode === tag){
                    if (Ext.isEmpty(selectedContact)){
                        this.showInformationDialog("Field is required", function(){
                            this.showOwnerInfo();
                        });
                    } else {
                        this.updateAccount(function(context, result){}, autoIds, selectedContact);
                    }
                }
            }
		}
	};
});

You will be able to select an owner from contacts:

and the selected records will be updated properly.

 

Best regards,

Oscar

Oscar Dylan,

 

Thanks, the solution works perfectly.

Oleg Drobina,

Hi, 

The code works very well. I however need to display the list as a modal pop up instead of drop down. Could you please let me know what changes need to be done or point me to resources?

Hi 

how I could modify the code (onPrepareContactList) to add a filter to the contact list (only display who are users) !

Oleg Drobina,

Oleg Drobina,

Hi! Is there a way to update only the selected contacts that have Ownership Status = Active?

Show all comments

Can someone help me with the save printable please i'm having real difficulty getting it working?

I can't even figure what the trigger should be.

 

Please help!!

 

What I would like is the Printable Saved to the Opportunity record with a defined name.

I would like the name to be a combination of the Opportunity name and the Account name.

Like 0

Like

2 comments

I have this error.. any ideas? 

Could not load type 'Terrasoft.Core.Process.Configuration.GlbPrintableSaverUserTask' from assembly 'Terrasoft.Configuration, Version=7.18.4.1532, Culture=neutral, PublicKeyToken=null'.

Nicola Wall,

 

Could you please try generating source code and compiling the system?

 

Best regards,

Max.

Show all comments

Hi Everyone,



in mobile app, in the Account section,  we added a link to the order detail, which display the order list for that account.

Unfortunatelly, when selecting one order, the product list is missing.

 

I did not found a way to display it, using the mobile app assistant.

After some searching, i found that the MobileOrderRecordPageSettingsDefaultWorkplace define the fields to be displayed, but i could not configure it properly to display the product list.



How can it be done, please ?



Thanks.



Patrice

Like 0

Like

3 comments

Hello Patrice,

 

You need to add it to the mobile application manifest.

Find details here:

https://academy.creatio.com/docs/developer/mobile_development/mobile_ap…

 

Best Regards, 

Bogdan 

Hello Bogdan,

thank you for your answer.

The mobile application manifest is a part of the solution as one need to add OrderProduct reference in it to make it work.

 

For my particular issue, i did not set MobileOrderRecordPageSettingsDefaultWorkplace correctly.

Finally, i found the right way :

 

	{
		"operation": "insert",
		"name": "OrderProductDetail",
		"showForVisibleModule": true,
		"values": {
			"caption": "OrderProductDetailCaptionOrder_caption",
			"entitySchemaName": "OrderProduct",
			"filter": {
				"detailColumn": "Order",
				"masterColumn": "Id"
			},
			"operation": "insert"
		},
		"parentName": "settings",
		"propertyName": "details",
		"index": 1
	},

 

If anyone searching for the complete solution, here is the MobileOrderProductRecordPageSettingsDefaultWorkplace :

 

[
	{
		"operation": "insert",
		"name": "settings",
		"values": {
			"entitySchemaName": "OrderProduct",
			"details": [],
			"columnSets": [],
			"localizableStrings": {
				"primaryColumnSetOrderProduct_caption": "Informations générales"
			},
			"settingsType": "RecordPage",
			"operation": "insert"
		}
	},
	{
		"operation": "insert",
		"name": "primaryColumnSet",
		"values": {
			"items": [],
			"rows": 1,
			"entitySchemaName": "OrderProduct",
			"caption": "primaryColumnSetOrderProduct_caption",
			"position": 0,
			"operation": "insert"
		},
		"parentName": "settings",
		"propertyName": "columnSets",
		"index": 1
	},
	{
		"operation": "insert",
		"name": "Product_row_123",
		"values": {
			"row": 2,
			"content": "Nom du produit",
			"columnName": "Name",
			"dataValueType": 1,
			"operation": "insert"
		},
		"parentName": "primaryColumnSet",
		"propertyName": "items",
		"index": 2
	},
	{
		"operation": "insert",
		"name": "Quantity_row_123",
		"values": {
			"row": 3,
			"content": "Quantité",
			"columnName": "Quantity",
			"dataValueType": 1,
			"operation": "insert"
		},
		"parentName": "primaryColumnSet",
		"propertyName": "items",
		"index": 3
	},
	{
		"operation": "insert",
		"name": "Price_row_123",
		"values": {
			"row": 4,
			"content": "Prix de vente",
			"columnName": "Price",
			"dataValueType": 1,
			"operation": "insert"
		},
		"parentName": "primaryColumnSet",
		"propertyName": "items",
		"index": 4
	},
	{
		"operation": "insert",
		"name": "Discount_row_123",
		"values": {
			"row": 5,
			"content": "Réduction",
			"columnName": "DiscountAmount",
			"dataValueType": 1,
			"operation": "insert"
		},
		"parentName": "primaryColumnSet",
		"propertyName": "items",
		"index": 5
	},
	{
		"operation": "insert",
		"name": "Product_row_123",
		"values": {
			"row": 6,
			"content": "Détails du produit",
			"columnName": "Product",
			"dataValueType": 10,
			"operation": "insert"
		},
		"parentName": "primaryColumnSet",
		"propertyName": "items",
		"index": 6
	}
]



Best regards

Patrice

Patrice Vigouroux,

 

Hello, 

 

Many thanks for sharing your solution with us! :)

Please let us know in case of any additional questions. 

 

Best regards, 

Anastasiia

Show all comments

Hey,

 

I've created a new lookup using the Section Wizard and created a new table for it there as well but for some reason I can't find the table on the System Designer -> Lookups.

 

I tried searching for it by name and manually but it appears as if it doesn't exist although on the section itself you can see the lookup field and when editing the field you can see the table connected to it.

 

Any thoughts on how I can find this table?

Like 1

Like

3 comments

Hello, 

 

Please check whether you are adding a new lookup through the Section Wizard in a proper way. 

While adding a new lookup column to the page you can choose a "Data source": existing lookup or a new one.

You can proceed with creating a new lookup in a following way:

All the changes should be first saved through the Section Wizard, once done you can find a newly created lookup in Lookup section:

To be able to find the newly created lookup in the Configuration section, please check whether there are no additional filters:

 

Alternatively, you can first create a new lookup based on the need object and only after that proceed with adding a new lookup column to the needed section through the Section Wizard based on the already existing lookup.

 

Hope this clarifies!

Best regards,

Anastasiia 

 

 

I actually created it in the proper way thru the Section Wizard to avoid any complications but it appears to have created the object but not the lookup, so I went to lookups and created a new lookup using the created object (found it in the Configuration section).

 

So the problem is resolved :)

Edo Sagron,

 

Thank you for the update! 

Please do not hesitate to contact us in case of any additional questions. :)



Best regards,

Anastasiia 

Show all comments

Hi All,

 

Unable to add a new detail in edit page, unable to get the column names in Object column field.

Attached the image for reference.

Thanks in Advance.

 

Regards,

Mansoor

Like 0

Like

1 comments

Hello Mansoor,

 

Thank you for your question!

 

Please, contact our support team via email support@creatio.com so that we could assist you better on this matter.

 

Kind regards,

Anastasiia

Show all comments

Why the City, State/Province, and Country fields are not filled for several (18) accounts?

All these accounts have shipping addresses with the city, state, and country filled.

I tried to change a city in address, but that didn't make a change in the Account's City field.

All other accounts (thousands of accounts) have city, state and country filled.

We need the fields to filter accounts.

Like 0

Like

3 comments
Best reply

Yuriy Konstantinov,

please check if the addresses of the 18 accounts are marked as primary. Only those addresses will be synced to the respective account fields.

 

BR,

Robert

Hello Yuriy,



I'm not sure what your question about is.

Are you not able to fill the field in the communication options detail? 



Best regards,

Bogdan

Bogdan,

How does a communication option connects to address? I think it's a different thing

Yuriy Konstantinov,

please check if the addresses of the 18 accounts are marked as primary. Only those addresses will be synced to the respective account fields.

 

BR,

Robert

Show all comments

Hi team,

 

I have a the below request from the customers. please see the screenshot

 

where status = lookup field

 

Can anyone please help.

 

Many thanks.

Like 0

Like

1 comments

Hi Akshit, 

 

We don't have practical examples hiding "+" on the detail based on conditions, alternatively I can suggest you to use “isDetailEnabled” function. So you can set up enable/disable detail due to your business logic.

 

Please check out these posts to get more details on how to use this function: 

 

https://community.creatio.com/questions/block-details-based-condition

 

https://academy.creatio.com/docs/developer/elements_and_components/inte…

 

 

Best Regards, 

 

Bogdan L.

 

Show all comments

On the Meetings and Tasks tab of the synchronization dialog can you explain what the Synchronization Period means?

 

Is it

1. the frequency of the automatic synch

2. the time window of things that will get synch'd (i.e. if I set it to 1 week but have a meeting scheduled for 4 months from now, will that meeting still synch to my calendar)

 

We're seeing inconsistent results and I can't seem to find any documentation (a link in the response to this inquiry would be helpful) to explain what this period is.

Like 0

Like

5 comments

Hi Mary,

 

The synchronization period is the period of time for which we collect activities. 

 

 

When requesting integration, we pass the date from which we need to take activities. 

 

Here you can check more information: 

 

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

 

https://academy.creatio.com/documents/administration/7-16/how-synchroni…

 

https://academy.creatio.com/documents/technic-sdk/7-16/creatio-synchron…

 

Best Regards, 

 

Bogdan L.

 

Bogdan Lesyk,

My page doesn't look like what you showed. My options look like this

 

Mary P D'Arrigo,

I should also mention that even though we have a window set for a month, events that occur outside of that month (scheduled for 6/20/2022 as of 10/7/2021) are still showing up on the person's calendar. I'm just trying to understand the difference between the time period in my version of the synchronization period configuration.

 

Mary P D'Arrigo,

 

The main  difference between the time period in your version and the synchronization period in configuration it's just the new UI in latest versions of application. 

 

The logic still the same - just option to choose the date has changed.

 

Best Regards, 

 

Bogdan L.

 

Bogdan Lesyk,

But you still have not answered my question. We see events scheduled for 5 months from now being sync'd to the user's calendar even though the synchronization period is only set to 1 month.

Show all comments

Hello, we are not utilizing the Chat feature at this moment in time. Is there a way to remove this from our UI so that we don't cause confusion with our users?

Like 0

Like

2 comments
Best reply

Hello George,

I have an article on how to remove the icons from the Actions Dashboard here https://customerfx.com/article/removing-the-facebook-whatsapp-or-telegr…

Ryan

Hello George,

I have an article on how to remove the icons from the Actions Dashboard here https://customerfx.com/article/removing-the-facebook-whatsapp-or-telegr…

Ryan

This worked perfectly! Thanks so much for your assistance.

Show all comments