Hi Community,

In version 7.15.2 where I can find the access to object for external services?

Like 0

Like

1 comments

Dear Fulgen, 

The object name is External Access in the object permissions http://prntscr.com/qgcpjf If you are talking about missing tab in the advanced settings, you can use the operation permission CanUseExternalAccess to add the user who is allowed to access the external services http://prntscr.com/qkdszk and after that select the required permissions for him in the object permissions.

Best regards,

Dean

Show all comments
mobile application
7.15_()
Studio_Creatio_()

Hi Community,

In Mobile App Settings menu, is it possible we can allow user to change their password and language.

 

Like 0

Like

1 comments

Dear Fulgen, 

This is quite complex, task, but here is an idea of how you can do this. 

To add new action to the settings page you would need to create a new module and add it in the mobile application manifest to the CustomSchemas.

The code for adding custom action in the settings page is the following: 

Ext.define("Terrasoft.configuration.action.MyAction", {

    extend: "Terrasoft.core.action.AbstractAction",

  

    config: {

        myMessage: null,

    },

  

    execute: function() {

        this.executionStart();

        Terrasoft.MessageBox.showMessage(this.getMyMessage());

        var mainPageController = Terrasoft.util.getMainController();

        Terrasoft.Router.route("basepage", mainPageController, ["calleridsettingspageview", {direction: "left"}]);

        this.executionEnd(true);

    }

});

// Add action

Terrasoft.sdk.Application.addSettingsAction({

    name: "myItemName",

    caption: "MyMobileCustomSchemaTestActionCaption",

    actionClassName: "Terrasoft.configuration.action.MyAction",

    actionClassConfig: {

        myMessage: Terrasoft.LS["MyMobileCustomSchemaTestActionMessage"]

    }

});



MyMobileCustomSchemaTestActionCaption and MyMobileCustomSchemaTestActionMessage are 2 localizable strings. 

After that you can look what does the onChangePasswordClick in the ChangePasswordModuleSchema schema and implement the same logic in mobile when clicking your action. For changing language you would need to display lookup column of SysCulture object and populate the current user's culture with the result of the selection of this field. 

Show all comments
Image_Upload
7.15_()
Studio_Creatio_()

Hi Community,

Any idea how i can customize the image uploading to add validation. I need to restrict the image uploading to accept only png file type and limit the size and dimension of the image. Thanks

Like 0

Like

1 comments

Hello Fulgen,

Size of the file can be regulated using "Attachment max size" system setting (value is specified in megabytes). As for additional file format verification - here is the link to community article where same question was asked and resolved.

Best regards,

Oscar

Show all comments
cases
7.15_()
Studio_Creatio_()



Dear mates,

I'd like to change my opportunities case version. They use the case v1, i want them to use the case v2.

So i try to change the "DCM Version" from v1 to v2.

The stage did'nt change.

I tryed in SQL and with a process. The fields have well been updated but the opportunity case has not change in the user interface.

Is it possible to change the DCM for an opportunity ?

Thank you,

Nicolas

 

Like 0

Like

2 comments

Dear Nicolas,

If record fits the condition of case that was created it automatically switches to that case. Make sure that opportunities suits the condition you specified. 

Best regards,

Angela

Angela Reyes, even if the opportunities have already been opened in the previous case ? I tryed to switch the case with the "Version DCM" lookup but old opportunities stay in the v1 DCM Version even if it is set to v2.

Show all comments
mobile application
7.15_()
Studio_Creatio_()

Hi Community,

Is there a way to trigger automatic refreshment of list data in mobile. Currently in order for you to refresh, user needs to manually drag down the list.

Like 0

Like

2 comments

Hi Fulgen,



I did not really get the case where you need to refresh list automatically. Whenever user adds new record - it will be loaded immediately, and if someone else added a record and you refresh the list for everyone  - it may disturb someone's work. If for example someone was scrolling down the list to find a record and you refresh the page - it will interrupt him a lot.



Nevertheless, I found logic that triggers refreshing which I believe you can use:

if you open mobile emulator (which you can request from support@creatio.com) you can find it in debugger:

pull-refresh.js



Inside there is a class Terrasoft.PullRefresh. This class is used in list-pull-refresh.js: https://prnt.sc/qp2lfp



Regards,

Dmytro

 

Dmytro Smishchenko,

 

Thanks Dmytro. We are changing read permission after user modified a record that is why we need to the the auto refresh. What we wanted, once user will go back from preview page to list page, lists will be refreshed automatically. Any idea how I can do it?

Show all comments
ESQ
sql
EntitySchemaQuery
7.15_()
Studio_Creatio_()

Hi,

I've this query and i would like to translate to ESQ, so far i managed to create this:

but i'm having this error: "uncaught exception: Collection item with name SysUserInRole not found".

I would like to know, why i'm getting this error? Is there a way to fix it? And if there is a better way to do that?

Best regards,

Pedro Pinheiro.

 

Like 0

Like

1 comments

Hi Pedro,



Seems like in your snippet you are setting brackets '[]' in wrong order. Systems tries to add column 'SysUserInRole' to the query which does not exist. I assume that you need to change it for the following:

esq.addColumn("=[SysUserInRole:SysUser].SysRole", "Role")



To make it more clear I have put together an example:

 

var esq = this.Ext.create("Terrasoft.EntitySchemaQuery", {
					rootSchemaName: "SysAdminUnit"
				});
 
				esq.addColumn("Name");
				esq.addColumn("Contact.Name");
				esq.addColumn("=[SysUserInRole:SysRole].SysUser");
 
				var currentUserFilter = this.Terrasoft.createColumnFilterWithParameter(
						this.Terrasoft.ComparisonType.EQUAL,
						"=[SysUserInRole:SysRole].SysUser",
						Terrasoft.SysValue.CURRENT_USER.value);
 
				esq.filters.addItem(currentUserFilter);
 
				esq.getEntityCollection(function(response) {
					debugger;
				}, this);

This example generates following sql query:

 

exec sp_executesql N'
SELECT
	[SysAdminUnit].[Id] [Id],
	[SysAdminUnit].[Name] [Name],
	[Contact].[Name] [Contact.Name],
	[SysUserInRole].[SysUserId] [SysUserInRole.SysUserId],
	[SysUser].[Name] [SysUser.Name]
FROM
	[dbo].[SysAdminUnit] [SysAdminUnit] WITH(NOLOCK)
	LEFT OUTER JOIN [dbo].[Contact] [Contact] WITH(NOLOCK) ON ([Contact].[Id] = [SysAdminUnit].[ContactId])
	LEFT OUTER JOIN [dbo].[SysUserInRole] [SysUserInRole] WITH(NOLOCK) ON ([SysUserInRole].[SysRoleId] = [SysAdminUnit].[Id])
	LEFT OUTER JOIN [dbo].[SysAdminUnit] [SysUser] WITH(NOLOCK) ON ([SysUser].[Id] = [SysUserInRole].[SysUserId])
WHERE
	[SysUserInRole].[SysUserId] = @P1',N'@P1 uniqueidentifier',@P1='7F3B869F-34F3-4F20-AB4D-7480A5FDF647'

Hope it helps!



Regards,

Dmytro

Show all comments
portal
registration_page
7.15_()
Studio_Creatio_()

Hi Community,

Is there a way we can customize the portal signup page, from there we want to have additional fields and add the attachments detail.

Like 0

Like

3 comments

Dear Fulgen,

You can edit the SSPLogin.aspx page located in the application folder. But it may not be possible to add the attachments detail. If you want the users to download some files, it is better to add some urls to download them from your local resource.

Dean

Dean Parrett,

Hi Dean,

What the client wants is that they can upload attachment right away on the portal signup page.

Dear Fulgen,

There is no way to attach the files on the login page. It can only be done as with the help of separate development project and we do not have any examples of similar implementation.

Regards,

Dean

Show all comments
7.15_()
Studio_Creatio_()

Hello everybody,

I installed the 7.15 binaries on a new IIS instance but get an error when I start to login with my backup DB. 7.15 works fine with the embeded DB.

I'm wondering if there is something to update in the DB.

Thank you.

Here is the error message:

Server Error in '/' Application.

Versions of application "7.15.2.501" and configuration "7.14.1" are incompatible

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.



Exception Details: Terrasoft.Common.AppStartupException: Versions of application "7.15.2.501" and configuration "7.14.1" are incompatible



Source Error:

 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.



Stack Trace:

 

[AppStartupException: Versions of application "7.15.2.501" and configuration "7.14.1" are incompatible]
   Terrasoft.Core.AppConnection.CheckConfigurationVersion() +191
   Terrasoft.Core.AppConnection.Initialize() +535
   Terrasoft.WebApp.Loader.Global.InitializeAppConnection() +152
   Terrasoft.WebApp.Loader.Global.Application_Start(Object sender, EventArgs e) +230
 
[HttpException (0x80004005): Versions of application "7.15.2.501" and configuration "7.14.1" are incompatible]
   System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode(HttpContext context, HttpApplication app) +520
   System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers) +176
   System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context) +165
   System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) +353
   System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +341
 
[HttpException (0x80004005): Versions of application "7.15.2.501" and configuration "7.14.1" are incompatible]
   System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +523
   System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +107
   System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +688



Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.7.3056.0

Like 0

Like

2 comments

Hello,

Any news?

Thank you :)

Dear Thibaut, 



As far as I can see from the screenshot attached, the version of binary files you are using is incompatible with version of your DB. 

Please make sure that your DB and Binaries are on the same version of Creatio. 



You can contact Creatio Support team in order to request the needed version of binary files (7.14.1)  and update your system following this guide on our academy. 



Kind regards,

Roman

 

Show all comments
7.13_()
Studio_Creatio_()

Hello,

I have a problem with a new created attachments detail in a tab.

I have created a new "Event" tab and I have added "Attachments" detail. Also, I have changed the parent for Schema16Detail object to "FileDetailV2 ( UIv2 )".

When I'm trying to upload a file in attachments, I receive the following error:

 

Console errors:

 

Please, help me to solve this errors.

Like 0

Like

3 comments

The entity for the attachments must be named "ParentEntityFile", so in your case that looks like OtpEventFile, and must also have "File" object as it's parent (not base object). Then you'd add a lookup to relate it to the parent OtpEvent.

See this article for more related info: https://academy.creatio.com/documents/technic-sdk/7-15/adding-attachmen…

Ryan

Hello.

I have updated the object as you said, but I receive the same error.

Any ideas? :)

 

I forgot to mention that I moved the Attachments tab inside the Event detail.

Show all comments
currency
fields
multi-currency
7.15_()
Studio_Creatio_()

Hi,

I'm currently trying to add multiple multi-currency fields in the same page. I manage to create one following the developer guide https://academy.creatio.com/documents/technic-sdk/7-12/how-add-multi-cu….

But when i create other multi-currency field, both of them share the currency (not intended).

I would like to create another multi-currency field, independent from the first one.

Best regards.

 

 

Like 0

Like

1 comments

Hi Pedro,



I was able to come up with an example on Order page for fields Amount and Payment Amount. General idea is to duplicate logic for each field separately.



What I was not able to achieve is working with triangle as well (https://prnt.sc/qf6y2b), so I removed it. Also, as I am using Order page it has logic behind with Products detail which should be implemented for different currency fields, but I skipped it. In the custom section it should be all good.



Also note, that after adding new fields to the object, they will be empty. So to make it work, after adding fields you should fill them in using db script for example and then set default value for them (as in the article you mentioned) to make it filled in for all new records.



So here are the steps that I followed:

1. Created new fields in the object for Currency and Currency rate separately for each field. https://prnt.sc/qf6znu

2. Created a generator for field.

 

define("UsrMultiCurrencyEditViewGenerator", ["MultiCurrencyEditViewGenerator"], function() {
 
	Ext.define("Terrasoft.configuration.UsrMultiCurrencyEditViewGenerator", {
		extend: "Terrasoft.MultiCurrencyEditViewGenerator",
		alternateClassName: "Terrasoft.UsrMultiCurrencyEditViewGenerator",
 
		generateCurrencyButton: function(config) {
			var buttonConfig = {
				id: "multiCurrencyButton-currency" + config.name,
				className: "Terrasoft.Button",
				classes: {
					wrapperClass: ["currency-button"]
				},
				style: Terrasoft.controls.ButtonEnums.style.TRANSPARENT,
				menu: {
					items: this.getPropertyBindingConfig(config, "currencyButtonMenuList")
				},
				enabled: true,
				markerValue: config.name + " MultiCurrencyButton"
			};
			return this.generateButton(buttonConfig);
		}
	});
	return Ext.create(Terrasoft.UsrMultiCurrencyEditViewGenerator);
});

3. Modified order page:

 

define("OrderPageV2", ["MoneyModule", "MultiCurrencyEdit", "MultiCurrencyEditUtilities",
"UsrMultiCurrencyEditViewGenerator"],
	function(MoneyModule, MultiCurrencyEdit, MultiCurrencyEditUtilities) {
	return {
		entitySchemaName: "Order",
		attributes: {
			"UsrAmountCurrencyRate": {
				"dependencies": [{
					"columns": ["UsrAmountCurrency"],
					"methodName": "usrSetAmountCurrencyRate"
				}]
			},
			"Amount": {
				"dependencies" : [{
					"columns": ["Amount"],
					"methodName": "usrRecalculateAmount"
				}]
			},
			"UsrPaymentAmountCurrencyRate": {
				"dependencies": [{
					"columns": ["UsrAmountCurrency"],
					"methodName": "usrSetPaymentAmountCurrencyRate"
				}]
			},
			"PaymentAmount": {
				"dependencies" : [{
					"columns": ["PaymentAmount"],
					"methodName": "usrRecalculatePaymentAmount"
				}]
			}
		},
		mixins: {
			MultiCurrencyEditUtilities: "Terrasoft.MultiCurrencyEditUtilities"
		},
		modules: /**SCHEMA_MODULES*/{}/**SCHEMA_MODULES*/,
		details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
		businessRules: /**SCHEMA_BUSINESS_RULES*/{}/**SCHEMA_BUSINESS_RULES*/,
		methods: {
			onEntityInitialized: function() {
				this.callParent(arguments);
				this.mixins.MultiCurrencyEditUtilities.init.call(this);
			},
			usrSetAmountCurrencyRate: function() {
				MoneyModule.LoadCurrencyRate.call(this, "UsrAmountCurrency", "UsrAmountCurrencyRate",
					new Date(), function() {
						var currency = this.get("UsrAmountCurrency");
						var division = currency && currency.Division;
						MoneyModule.RecalcCurrencyValue.call(this, "UsrAmountCurrencyRate",
							"Amount", "PrimaryAmount", division);
					}
				);
			},
			usrRecalculateAmount: function() {
				var currency = this.get("UsrAmountCurrency");
				var division = currency && currency.Division;
				MoneyModule.RecalcBaseValue.call(this, "UsrAmountCurrencyRate", "Amount",
					"PrimaryAmount", division);
			},
			usrSetPaymentAmountCurrencyRate: function() {
				MoneyModule.LoadCurrencyRate.call(this, "UsrPaymentAmountCurrency", "UsrPaymentAmountCurrencyRate",
					new Date(), function() {
						var currency = this.get("UsrPaymentAmountCurrency");
						var division = currency && currency.Division;
						MoneyModule.RecalcCurrencyValue.call(this, "UsrPaymentAmountCurrencyRate",
							"PaymentAmount", "PrimaryPaymentAmount", division);
					}
				);
			},
			usrRecalculatePaymentAmount: function() {
				var currency = this.get("UsrPaymentAmountCurrency");
				var division = currency && currency.Division;
				MoneyModule.RecalcBaseValue.call(this, "UsrPaymentAmountCurrencyRate", "PaymentAmount",
					"PrimaryPaymentAmount", division);
			},
 
			onPaymentAmountCurrencyMenuItemClick: function(menuItem) {
				var currency = this.get("CurrencyRateList").find(menuItem);
				this.set("UsrAmountCurrency", currency);
			},
			onAmountCurrencyMenuItemClick: function(menuItem) {
				var currency = this.get("CurrencyRateList").find(menuItem);
				this.set("UsrPaymentAmountCurrency", currency);
			},
			prepareCurrencyMenu: function() {
				this.mixins.MultiCurrencyEditUtilities.prepareCurrencyMenu.call(this);
				var currencyRateList = this.get("CurrencyRateList");
				if (!currencyRateList) {
					return;
				}
				var columnsList = ["Amount", "PaymentAmount"];
				this.Terrasoft.each(columnsList, function(column) {
					var menu = this.Ext.create(this.Terrasoft.BaseViewModelCollection);
					currencyRateList.each(function(item) {
						var menuItem = Ext.create("Terrasoft.BaseViewModel", {
							values: {
								Id: item.value,
								Caption: item.Symbol || item.displayValue,
								MarkerValue: item.Symbol || item.displayValue,
								Tag: item.value,
								Click: {"bindTo": "on" + column + "CurrencyMenuItemClick"}
							}
						});
						menu.addItem(menuItem);
					}, this);
					this.set(column + "CurrencyRateList", menu);
				}, this);
			},
		},
		dataModels: /**SCHEMA_DATA_MODELS*/{}/**SCHEMA_DATA_MODELS*/,
		diff: /**SCHEMA_DIFF*/[
			{
				"operation": "merge",
				"name": "Amount",
				"values": {
					"bindTo": "Amount",
					"primaryAmount": "PrimaryAmount",
					"currency": "UsrAmountCurrency",
					"rate": "UsrAmountCurrencyRate",
					"generator": "UsrMultiCurrencyEditViewGenerator.generate"
				}
			},
			{
				"operation": "merge",
				"name": "PaymentAmount",
				"values": {
					"bindTo": "PaymentAmount",
					"primaryAmount": "PrimaryPaymentAmount",
					"currency": "UsrPaymentAmountCurrency",
					"rate": "UsrPaymentAmountCurrencyRate",
					"generator": "UsrMultiCurrencyEditViewGenerator.generate"
				}
			}
		]/**SCHEMA_DIFF*/
	};
});



Results:

https://prnt.sc/qf723t



Triangle is removed. If you want to still have it - you would need to improve this sample further and check how to make it work.



Regards,

Dmytro

Show all comments