Hi All,

 

The use case is to remove OOTB items/buttons from the action menu in Section edit page depending on the user roles such as, (Follow the Feed, Setup Access rights etc..)



There are example codes to add a new item to the action menu, as shown below,







How to remove an existing item from the action menu. Is there a way to achieve it?



Regards,

Adharsh S

Like 0

Like

2 comments
Best reply

Hi Adharsh, 

 

In this case you can set up access rights, so only needed persons(e.g. Supervisor) will be able to see the items.

 

Please check the next post, it contains a very detailed instruction regarding how this functionality can be implemented:

 

https://community.creatio.com/articles/how-show-action-set-access-right…

 

Best Regards, 

 

Bogdan L.

Hi Adharsh, 

 

In this case you can set up access rights, so only needed persons(e.g. Supervisor) will be able to see the items.

 

Please check the next post, it contains a very detailed instruction regarding how this functionality can be implemented:

 

https://community.creatio.com/articles/how-show-action-set-access-right…

 

Best Regards, 

 

Bogdan L.

Bogdan Lesyk,



I am able to hide the "Setup Access Rights" based on roles by referring the document. 







Similar to that when I tried to hide the "Follow the feed" based on roles. In the base I could find only the "Enable" property for the button. So I have overridden that method as below and it got disabled based on roles,

 

            getChangeUserSubscriptionIsEnabled: function() {

                return this.get("CanManageAccessRight");

            }



But the requirement is to hide the button based on Roles. I also tried to override this method "getEsnTabVisible" but I am still able too see the Follow the feed button in UI. 



Is there any other way to achieve this use case?



Regards,

Adharsh S

Show all comments

For example, how many records of products can have? Or how many records of activities/projects/contacts/... can have? Thank you.

Like 0

Like

1 comments

Dear Andrew,



We do not have any limitations on that, you can have as many records as you want.



Best Regards,

Ivanna.

Show all comments

I need to make a dropdown field with option items from external system. What should I do? Thank you!

Like 0

Like

2 comments

Dear Andrew,



Unfortunately, we do not have any base tools to implement this, it can be achieved only by hard development.



Best Regards,

Ivanna.

If you use on-site, you can try to make VIEW from another database. Then create an object based on that VIEW and use this for your lookup fields

Show all comments

Trying to run an Excel Report, for Leads, with the "include all columns" checkbox enabled.  When run, get this error:

Object reference not set to an instance of an object.

 

In the f12 console of the browser, I see this:

"The Id column is not declared in the ViewModel of the menu item"

 

Thoughts?

 

Thanks!

Like 0

Like

2 comments

Hello Chris,



This message doesn’t mean that something is broken or works in the wrong way.

It doesn’t influence the system's performance at all.



According to the information from our development team, this message appears in the Console due to the existing part of a code that was modified and currently is out of use.

It is shown to our developers as a reminder that adjustments are to be done.



Best regards,

Bogdan

Bogdan,

 

Thanks, but what about the error that prevents us from running the report:

 

Object reference not set to an instance of an object.

 

Thanks!

 

Chris

Show all comments

 Hello Team.

 

There is any way to get the value of the record in the store.loadPage?

I can access to the record parameter inside of the callback.

Terrasoft.sdk.Model.addBusinessRule("ExpensesDetail", {
	name: "GetRoleFromtheUser",
	ruleType: Terrasoft.RuleTypes.Custom,
	triggeredByColumns: ["Subcategory"],
	events: [Terrasoft.BusinessRuleEvents.ValueChanged, Terrasoft.BusinessRuleEvents.Save],
	executeFn: function(record, rule, column, customData, callbackConfig) {
 
 
		var myrecord = record;
 		var passedTheTestAndIsValid = true;
 
		var currentUser =Terrasoft.CurrentUserInfo.userId;
		var store = Ext.create('Terrasoft.store.BaseStore', {
			model: 'SMVwUserRoles'
		});
		var queryConfig = Ext.create('Terrasoft.QueryConfig', {
			columns: ['SMId', 'SMUserName', 'SMRoleName'],
			modelName: 'SMVwUserRoles'
		});
		store.loadPage(1, {
			queryConfig: queryConfig,
 
			filters: Ext.create('Terrasoft.Filter', {
				property: 'SMId',
				value: currentUser
			}),
			callback: function(records, operation, success) {
				var loadedRecord = records[0];
				if (loadedRecord) {
					var contact = loadedRecord.get('SMRoleName');                                                                                                    
					if (contact) {                                                                                                                   
						console.log(contact);
					}
					}
				},
					scope: this
			});
 
	},
	position: 3
});

 

Like 0

Like

2 comments
Best reply

Hello Federico,

 

You have the myrecord variable and it's accessible inside the loadPage method:

So you can access the record parameters if needed there.

 

Best regards,

Oscar

Hello Federico,

 

You have the myrecord variable and it's accessible inside the loadPage method:

So you can access the record parameters if needed there.

 

Best regards,

Oscar

Oscar Dylan,

 Thanks Oscar, I my case sending the scope: this was not working but changing the scope works.

Show all comments

Hello Team!

Somebody know if there is a save validation in mobile like the method in web version:

			asyncValidate: function(callback, scope){
				this.callParent([function(resultObject){
 
						resultObject.success = false;
						resultObject.message = scope.get("Resources.Strings.SummitionNoAcepted");
 
 
					callback.call(scope, resultObject);
				}], scope);
			},

I need to validate if a detail has records added before save the record.

Like 0

Like

4 comments

Hello Federico,

 

There is an onSaveButtonTap method in the base edit page controller schema that is triggered when the record is saved. There is no async validator there, but in case you need to check something for the saved record upon saving then you need to look at that method call.

 

Best regards,

Oscar

Oscar Dylan,

 Thanks Oscar. I need to create a page controller for a custom section? There is some documentation about that?

Federico Buffa ...,

 

No we don't have such an instruction unfortunately.

 

Best regards,

Oscar

Oscar Dylan,

 Thank you so much. Just wondering if that method can be use in the module config or needs to be in another schema. I don't have much information about mobile structure.

Show all comments

Hi Community,

 

What's the rule of displaying hyperlinks on the list type of dashboard? 

Sometimes the name (text field) is displayed as a hyperlink and lookups as a text value without hyperlink on the dashboard...

 

BR Paulina

Like 0

Like

2 comments

Dear  Paulina,



Actually the theory was correct - the lookup value is not a clickable link since the object of the lookup (AccountAddress) is not a section in the system. The value is clickable in case the object of the lookup is present in the Terrasoft.configuration.ModuleStructure object and this object values are being generated when login to the app as a result of this select query execution:



exec sp_executesql N'

SELECT

    [SysModule].[Id] [ModuleId],

    [SysModule].[Image32Id] [ImageId],

    [SysModule].[LogoId] [LogoId],

    [SysModule].[Code] [Module],

    (

SELECT

    [Name]

FROM

    [dbo].[VwSysClientUnitSchema] WITH(NOLOCK)

WHERE

    [SysWorkspaceId] = @SysWorkspaceId

    AND [UId] = [SysModule].[SectionModuleSchemaUId]) [SectionModule],

    (

SELECT

    [Name]

FROM

    [dbo].[VwSysClientUnitSchema] WITH(NOLOCK)

WHERE

Hello Paulina,

 

 [SysWorkspaceId] = @SysWorkspaceId

    AND [UId] = [SysModule].[SectionSchemaUId]) [SectionSchema],

    (

SELECT

    [Name]

FROM

    [dbo].[VwSysClientUnitSchema] WITH(NOLOCK)

WHERE

    [SysWorkspaceId] = @SysWorkspaceId

    AND [UId] = [SysModule].[CardModuleUId]) [CardModule],

    (

SELECT

    [Name]

FROM

    [dbo].[VwSysClientUnitSchema] WITH(NOLOCK)

WHERE

    [SysWorkspaceId] = @SysWorkspaceId

    AND [UId] = [SysModule].[CardSchemaUId]) [CardSchema],

    [SysModule].[Attribute] [Attribute],

    [SysModule].[TypeColumnValue] [ModuleTypeColumnValue],

    (

SELECT

    [Name]

FROM

    [dbo].[VwSysClientUnitSchema] WITH(NOLOCK)

WHERE

    [SysWorkspaceId] = @SysWorkspaceId

    AND [UId] = [SysModuleEdit].[CardSchemaUId]) [CardSchemaPage],

    (

SELECT

    [Name]

FROM

    [dbo].[VwSysClientUnitSchema] WITH(NOLOCK)

WHERE

    [SysWorkspaceId] = @SysWorkspaceId

    AND [UId] = [SysModuleEdit].[MiniPageSchemaUId]) [MiniPageSchema],

    [SysModuleEdit].[Id] [ModuleEditId],

    [SysModuleEdit].[ActionKindName] [ActionName],

    [SysModuleEdit].[TypeColumnValue] [TypeColumnValue],

    [SysModuleEntity].[SysEntitySchemaUId] [SysEntitySchemaUId],

    [SysModuleVisa].[VisaSchemaUId] [VisaSchemaUId],

    [SysModuleInWorkplace].[SysWorkplaceId] [ShowInWorkplace],

    [SysModule].[Caption] [ModuleCaption],

    [SysModule].[ModuleHeader] [ModuleHeader],

    [SysModuleEdit].[ActionKindCaption] [ActionCaption],

    [SysModuleEdit].[PageCaption] [PageCaption],

    [SysModuleLcz].[Caption] [ModuleCaptionLcz],

    [SysModuleLcz].[ModuleHeader] [ModuleHeaderLcz],

    [SysModuleEditLcz].[ActionKindCaption] [ActionCaptionLcz],

    [SysModuleEditLcz].[PageCaption] [PageCaptionLcz]

FROM

    [dbo].[SysModule] WITH(NOLOCK)

    LEFT OUTER JOIN [dbo].[SysModuleInWorkplace] WITH(NOLOCK) ON ([SysModuleInWorkplace].[SysModuleId] = [SysModule].[Id]

    AND [SysModuleInWorkplace].[SysWorkplaceId] = @P1)

    LEFT OUTER JOIN [dbo].[SysModuleEdit] WITH(NOLOCK) ON ([SysModuleEdit].[SysModuleEntityId] = [SysModule].[SysModuleEntityId])

    LEFT OUTER JOIN [dbo].[SysModuleEntity] WITH(NOLOCK) ON ([SysModuleEntity].[Id] = [SysModuleEdit].[SysModuleEntityId])

    LEFT OUTER JOIN [dbo].[SysModuleVisa] WITH(NOLOCK) ON ([SysModuleVisa].[Id] = [SysModule].[SysModuleVisaId])

    LEFT OUTER JOIN [dbo].[SysModuleLcz] WITH(NOLOCK) ON ([SysModuleLcz].[RecordId] = [SysModule].[Id]

    AND [SysModuleLcz].[SysCultureId] = @P2)

    LEFT OUTER JOIN [dbo].[SysModuleEditLcz] WITH(NOLOCK) ON ([SysModuleEditLcz].[RecordId] = [SysModuleEdit].[Id]

    AND [SysModuleEditLcz].[SysCultureId] = @P3)

WHERE

    NOT [SysModule].[SectionModuleSchemaUId] IS NULL

    AND NOT [SysModule].[SysModuleEntityId] IN (

SELECT

    [SysModuleEntityId]

FROM

    [dbo].[SysModuleEntityInPortal] WITH(NOLOCK))

ORDER BY

    [SysModuleInWorkplace].[Position] ASC,

    [SysModuleEdit].[Position] ASC',N'@SysWorkspaceId uniqueidentifier,@P1 uniqueidentifier,@P2 uniqueidentifier,@P3 uniqueidentifier',@SysWorkspaceId='2746F94F-8E5B-469A-AC1E-AAF90920BB36',@P1='79770671-CDE2-4C0F-9078-A4FF68703DEF',@P2='1A778E3F-0A8E-E111-84A3-00155D054C03',@P3='1A778E3F-0A8E-E111-84A3-00155D054C03'



The main table here from which the data is selected is SysModule and this table stores data on all the system sections. AccountAddress object is not present in the SysModule table since there is no section for "Account address".

 

Best regards,

Bogdan

Thanks, Bogdan but it's not exactly my issue. 

See attached picture. Both dashboards are created based on the same object (Opportunity product) and for one of them column Opportunity is a text value and for the second one, there is a link. I don't know why...  Some kind of bug on our env?

Show all comments

Hi All,



I have a use-case as the user doesn't has access to redirect to the a new page on clicking of the hyperlink of the lookup field.







How to disable the Hyper-Link for the lookup field and show it as normal text?



Regards,

Adharsh S

Like 0

Like

1 comments

Hello Adharsh,

 

You can find the answer to your question in this Community post.

 

Best regards,

Bogdan S.

Show all comments

Hi,

Auto-populating some fields doesn't work for NON-Supervisor users. We investigated the features (Screenshot 1) and if they are enabled for All employees (Screenshot 2) and even after that, the feature "PopulateBusinessRuleAction" still is not enabled (Screenshot 3).

 

What can be the root cause?

Like 1

Like

1 comments

Hi Kavian, 



Regarding the feature state: 

It is needed to re-log in after changing the feature state for changes to take place. Have you re-loged in before checking the value the second time? 



As for the issue with the business rules, The support request you've opened (#SR-01019131) is still open and we're waiting for your input to proceed with the investigation. 



Best regards,

Yurii. 

Show all comments

Hi community !

 

Is there any way to do a switch-case with business processes?



I have a case that can reach different statuses. All the statuses are known. I have to do some things at each step of the case I currently do with a simple signal with "if status change AND status = specific_status, then ..." but I don't really like doing that. It's not readable. Is there an easier way to handle each step of a case, like a switch case or something?



Thanks in advance,



Julien Gunther

Like 0

Like

1 comments
Best reply

Hi Julien, 



If i understood your business task corectly, you need to call those processes from DCM panel. You can do so in DCM configuration. Add a step for the status, in which you want to call a process. You can refer to the screenshot below. 

Best regards,

Yurii. 

Hi Julien, 



If i understood your business task corectly, you need to call those processes from DCM panel. You can do so in DCM configuration. Add a step for the status, in which you want to call a process. You can refer to the screenshot below. 

Best regards,

Yurii. 

Show all comments