Hello,

We would like to add the City of an Account in the Visit Scheduler container. How can that be achieved ?

Thank you

Sasori

Like 0

Like

8 comments

Hello team,

Any update on this ?

Sasori Oshigaki,

Hello,

This title is composed in the schema ActivitySectionGridRowViewModel and its method getScheduleItemTitle and if you want to change the title, you need to modify this method. Keep in mind that you cannot simply override schema ActivitySectionGridRowViewModel, you need to write a new nodule with a code similar to ActivitySectionGridRowViewModel with the exception of the needed method and connect your new schema to the base schemas similar to an old ActivitySectionGridRowViewModel

Hi Creatio,

I have managed to retreive the City Valye.

My last hurdle is how to set the retrieved city string value to a global attribute inside the ESQ, because as you know ESQ is aysnc.

 

This is the Global attribute:

attributes: {
		"CityNameEsq": {
		dataValueType: this.Terrasoft.DataValueType.TEXT,
		type: this.Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN
		}	
	},

This is the method:

getScheduleItemTitle: function() {
		    this.callParent(arguments);
			var title = this.get("Title");
			var account = this.get("Account");
			var accountGuid = this.get("Account").value;
 
				var recordId = this.get("Account").value;
					var esq = Ext.create("Terrasoft.EntitySchemaQuery", {
						rootSchemaName: "Account"
					});
					esq.addColumn("City.Name", "CityName");
					esq.getEntity(recordId, function(result) {
						if (!result.success) {
							// For example, error processing/logging.
							this.showInformationDialog("Data query error");
							return;
						}
						this.set("CityNameEsq", result.entity.get("CityName"));

Sasori Oshigaki,



Here is a sample to get the result of an asynchronous function using Terrasoft.chain

getMyEntity: function(callback) {
    var esq = this.Ext.create("Terrasoft.EntitySchemaQuery", {
        rootSchemaName: schemaName
    });
    ...
    esq.getEntity(recordId, function(response) {
        ...
        if (callback) {
            callback.call(this);
        }
    }, this)
},
globalMethod: function() {
    Terrasoft.chain(
        function(next) {
            this.getMyEntity(function() {
                next();
            });
        },
        function() {
            this.doAfterGettingEntity();
        },
        this
    );
}

Also, please check this article's getentity method to synchronous!



 

 

BR,

Bhoobalan Palanivelu.

Bhoobalan Palanivelu,

Thank you very much Bhoobalan. As always you help is much appreciated.

I am still not getting the wanted result.

Here is the entire module code

define("SasActivitySectionGridRowViewModel", ["ActivitySectionGridRowViewModel","ActivitySectionGridRowViewModelResources"
	],
		function() {
 
	/**
	 * @class Terrasoft.configuration.ActivitySectionGridRowViewModel
	 */
	Ext.define("Terrasoft.configuration.SasActivitySectionGridRowViewModel", {
		alternateClassName: "Terrasoft.SasActivitySectionGridRowViewModel",
        override: "Terrasoft.ActivitySectionGridRowViewModel",
	    attributes: {
					"CityNameEsq": {
						dataValueType: this.Terrasoft.DataValueType.TEXT,
						type: this.Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN
					}
 
				},
		/**
		 * ########## ######## ######### ######## # ##########.
		 * @return {String} ######## ######### ######## # ##########.
		 */	
		getScheduleItemTitle: function() {
			Terrasoft.chain(
			function(next) {
				this.GetCityName(function() {
					next();
				});
			},
				function() {
				this.getTitleInfo();
			},
			this
		);
		},
 
		GetCityName: function(callback)
		{
			debugger;
			var recordId = this.get("Account").value;
			var esq = Ext.create("Terrasoft.EntitySchemaQuery", {
				rootSchemaName: "Account"
			});
			esq.addColumn("City.Name", "CityName");
			esq.getEntity(recordId, function(response) {
				if (!result.success) {
					this.showInformationDialog("Data query error");
					return;
				}
				this.set("CityNameEsq", result.entity.get("CityName"));
			}, this);
		},
 
		getTitleInfo: function()
		{
			var title = this.get("Title");
			var account = this.get("Account");
			var accountDisplayValue = (account) ? account.displayValue + ": " : "";
			return Ext.String.format("{0}{1}", accountDisplayValue, title,this.get("CityNameEsq"));
		}
 
	});
 
	return Terrasoft.SasActivitySectionGridRowViewModel;
});

What am in doing wrong here. Because i get

Sasori Oshigaki,



Can you please try to add in this method  getScheduleItemTitle: function()

 this.callParent(arguments);

 

Hi Bhoobalan,

Still getting the same result

after applying 

this.callParent(arguments);
	getScheduleItemTitle: function() {
			this.callParent(arguments);
			Terrasoft.chain(
			function(next) {
				this.GetCityName(function() {
					next();
				});
			},
				function() {
				this.getTitleInfo();
			},
			this
		);
 
		},

 

The esq async logic may be pretty complicated. if you have a debug mode enabled, please turn it off, this may fix the issue. If it, not the case, try to change the title in the method getScheduleItemTitle without using ESQ by setting some test value, maybe the problem isn't in the async logic but in the method itself.

Show all comments

Hello Creatio team,

I try to create a Visit Activity, and i set the start time and due time

When i click Save, and reopen the record the due time is not 20:00 ( as i specified) but 18:00 (1 hr later from start time).

This happens only for activites of category visit

Any idea how to solve this ?

Like 0

Like

2 comments

do you have your Time Zone Set for your Profile?

Hello Keith.

I dont believe this is a Time-Zone problem.

For the same user, if I choose Activity of category Task, everytih works as it should be. 

Thanks

Show all comments

Hello Creatio team,

How can i activate the Section Wizard option for the followin detail:

This feature is deactivated in the PlanningAccountDetailV2 schema part of Field package

I need to activate the wizard for this task:

Deactivate the filter that filters the accounts based on the selected employee.

Like 0

Like

2 comments
Best reply

Hello Sasori,

 

In order to deactive the filter based on employee it is just needed to click on the cross sign, and you will see all the accounts.

 

Alternatively you can create a replacing view model for the schema PlanningAccountDetailV2 and modify the method getFilters according to your needs.

 define("PlanningAccountDetailV2", [],

    function() {

        return {

            entitySchemaName: "Account",

            attributes: {},

            methods: {

                getFilters: function() {

                     this.callParent(arguments);

                    var filters = this.sandbox.publish("GetSectionFilters");

                    if (!this.Ext.isEmpty(filters.filtersValue)) {

                        this.setFilter(filters.key, filters.filtersValue);

                    }

                }},

            diff: /**SCHEMA_DIFF*/[]/**SCHEMA_DIFF*/

        };

    }

);

 

As for the section wizard, this whole detail was created with code, so it would be not possible to enable it. But the first option by clicking the cross sign would be the more simple one.

 

Best regards,

Dariy

 

Hello Sasori,

 

In order to deactive the filter based on employee it is just needed to click on the cross sign, and you will see all the accounts.

 

Alternatively you can create a replacing view model for the schema PlanningAccountDetailV2 and modify the method getFilters according to your needs.

 define("PlanningAccountDetailV2", [],

    function() {

        return {

            entitySchemaName: "Account",

            attributes: {},

            methods: {

                getFilters: function() {

                     this.callParent(arguments);

                    var filters = this.sandbox.publish("GetSectionFilters");

                    if (!this.Ext.isEmpty(filters.filtersValue)) {

                        this.setFilter(filters.key, filters.filtersValue);

                    }

                }},

            diff: /**SCHEMA_DIFF*/[]/**SCHEMA_DIFF*/

        };

    }

);

 

As for the section wizard, this whole detail was created with code, so it would be not possible to enable it. But the first option by clicking the cross sign would be the more simple one.

 

Best regards,

Dariy

 

Thank you very much Dariy.

Show all comments

Hello Creatio Community,

I have made the Activity participant detail (Activites section) as an editable list.

When I add a new record and click on the added row ( the active row doesnt behave normally) as editable lists in other sections. I think is probably sort of bug of the system, because i have tried in fresh installations and the same thing happens.

 

I overcome this by refreshing the page so that the added row behaves normaly.

I manage to refresh the page by sending a message from a business process to the Front-End and subscribe to the message. But i refresh the whole Activity (entity), i want to refresh only the Participant detail.

This snippet is implemented in ActivityPageV2

			init: function() {
				this.callParent(arguments);
				// register our onProcessMessageReceived function to get messages from the server
				Terrasoft.ServerChannel.on(Terrasoft.EventName.ON_MESSAGE, this.onProcessMessageReceived, this);
			},
			onProcessMessageReceived: function(scope, message) {
				debugger;
				var sender = message && message.Header.Sender;
					if (sender === "RefreshDetailActivityParticipantFromBP") { //"SMRefreshPaged"
					this.reloadEntity();
				}
			}

How can i manage to refresh only the Participant detail list?

I have tried also this.reloadGridData() and this.updateDetail({reloadAll: true}); without success.

Like 0

Like

3 comments

this.reloadGridData()  is not defined in the ActivityPageV2. (console)

I think that the proper solution involves using the this.reloadGridData()  method ? Should i just add the :

mixins: {
			GridUtilities: "Terrasoft.GridUtilities"
		}

in the ActivityPageV2 ?

Any updates on this Creatio team ?

Sasori Oshigaki,

this.updateDetail({ detail: "NameOfDetail" });

You can find the "NameOfDetail" value to use by looking at the details section of the page code for your detail (it's not the name of the detail schema, but the name or Id it gave it when it added it to the page). The reloadGridData function only works from within the detail schema code itself. 

 

Show all comments

As a user I want the orders module to be displayed in Activity Stream

because it will allow you to inform other users of the system about the new order. Is it possible?

Like 0

Like

4 comments

Dear Arkadiusz,

 

Thanks for your question.

 

Could you please specify your final business task?

 

Thanks in advance. 

 

Best regards,

Anastasiia

 

 

the point is that other users of the system have information about the new order. Something like a notification in the channel bar on the right site of the screen

Dear Arkadiusz,

 

Thanks for the clarification!

 

For such business task, we can offer to use the addon Multichannel notifications for Creatio:

 

https://marketplace.creatio.com/app/multichannel-notifications-creatio

 

Please let us know if additional questions arise, we will gladly assist you!

 

Best regards,

Anastasiia

Is it free app?

Show all comments

Hi,

 

Once the activity is created by DCM, I want to show only the activity which is assigned to the current user. Any lead woul help.

 

Regards,

Sourav

Like 1

Like

3 comments

Hello,

 

You can create a business process that grants read permission to an activity only to its owner.

 

More about the business process element "Change access rights":

https://academy.creatio.com/docs/user/bpm_tools/process_elements_refere…

Cherednichenko Nikita,

 

I have already tried this approach. Although it works perfectly fine for Activity section, but under DCM it still shows the Activity which I want to show or hide conditionally.

 

Regards,

Sourav

Sourav Kumar Samal,

 

If you remove read permissions for other users, then only the responsible user will be able to see this record.

Show all comments

When you create an activity associated with a project, and it's assigned to someone that IS NOT added to the 'Project Resources' detail (which is a list of contacts that can be assigned to the project) the system will pop up a prompt that asks 'Do you want to add user as a project resource?'

 

We don't use that object on Projects, so this is confusing our users. How/where can we eliminate it?

Like 0

Like

0 comments
Show all comments

We are trying to implement a way to complete activities from the top panel in opportunities. The green 'Complete' button pops open a lightbox prompt to complete the Results but we don't want to use this field for completion. We want the user to be able to change the Status from this page and add notes. Where can we find the schema to possibly replace these fields? I'm looking for a 'low code' solution here, but I think it has to be coded.

Advice?

 

 

 

Like 1

Like

3 comments

Hello Susan,



Could you please elaborate on your business task? 



Do you want to set up the default value for the 'select results' field or do you want to remove it at all?



Best regards,

Bogdan

Bogdan,

Hi,

 

I am having the same enquiry and would like to remove it all.

Is it something we can do it ourselves?

 

Many thanks in advance

 

This can be only achieved by the means of development. The logic is stored in the ActivityMiniPage module and is connected to the "View" mode of the mini page. You need to review the logic of the "ProcessResult" or "DetailedResult" elements (their generation and visibility attributes) to add your own "Status" and other custom fields to it. For example you can use this code example to add the "AllowedResult" column to the mini page:

{
				"operation": "insert",
				"parentName": "MiniPage",
				"propertyName": "items",
				"name": "AllowedResult",
				"values": {
					"generator": "MiniPageEditControlsGenerator.generateModelItem",
					"layout": {
						"column": 0,
						"row": 9,
						"colSpan": 24,
						"rowSpan": 1
					},
					"visible": {
						"bindTo": "isEditableResultsVisible"
					},
					"contentType": this.Terrasoft.ContentType.LONG_TEXT,
					"wrapClass": ["container-mini-wrap"],
					"controlConfig": {
						"placeholder": {
							"bindTo": "Resources.Strings.AllowedResultControlPlaceholder"
						}
					},
					"controlWrapConfig": {
						"classes": {
							"wrapClassName": ["control-mini-wrap"]
						}
					},
					"labelConfig": {
						"visible": false,
						"markerValue": ""
					}
				}
			},

 

Best regards,

Oscar

Show all comments

how to select any contact as owner when creating a new activity, I tried to change "ShowAllContactsAsOwner" feature to true but still, I can't select only system user contacts

Like 0

Like

1 comments

Hello Moheman,

 

usually, all the users under the All employees role can be set as owners.

Please note, that custom filters can also cover up users from being added to the owner field.

You can find more information about creating activities here:

 

https://academy.creatio.com/docs/8-0/user/crm_tools/activities/create_a…

 

Regards,

Gleb.

Show all comments

For generic Activities there is one important Connected to category that is not included: Activity!   We often use long-life Activities that can contain many individual Activities as sub tasks.  However, we end up listing all of the individual Activities against an Opportunity or Account, without any sub structure.

 

Is there no way to add Activity to the list of objects that an Activity can be Connected to? 

 

Version Sales Team 8.0.1.1990

4 comments

We create many-to-many detail 'Linked Activities' and link there. 

Vladimir Sokolov,

Please elaborate....

Hello!

 

Creating details is a good idea.

 

Perhaps the following implementation will help you in solving your business problem:

 

1) It is necessary to create a lookup field in which we will bind activities: for example, "Main Activity".

 

2) Create a "Related activity" detail based on the Activity object.

 

3) Add a detail to the "Activity" page and link it to the section under the "Main Activity" column in the details.

 

 

As a result, if you fill in the "Main Activity" field in the activity, and go to this activity, then all related activities will be displayed in the detail.

There will be a one-to many relationships, one parent will have many child activities.

For example:

 

 

 

 

I hope this helps you.

 

Best regards,

Kate

As we don't define Parent - Child and use many-to-many relation, we have another schemas:

So, the object looks like

Detail 'Linked activity' is added to the Activity page with following filter:



 

			linkedActivityFilter: function() {
				var id = this.get("Id");
				var filterGroup = new this.Terrasoft.createFilterGroup();
				filterGroup.logicalOperation = this.Terrasoft.LogicalOperatorType.OR;
				filterGroup.add("activityAFilter", this.Terrasoft.createColumnFilterWithParameter(
					this.Terrasoft.ComparisonType.EQUAL, "UsrActivityA", id));
				filterGroup.add("activityBFilter", this.Terrasoft.createColumnFilterWithParameter(
					this.Terrasoft.ComparisonType.EQUAL, "UsrActivityB", id));
				return filterGroup;
			},

 

Show all comments