Вопрос

Коллеги всем доброго времени суток!
Столкнулся с проблемой, не могу добавить в запрос справочную колонку, при формировании запроса приложение сваливается.
Создал функцию:
 

(function () {
	var SysUserInRole = "SysUserInRole";
	var columns = ["Id", "SysRole.Region"];
	var store = Ext.create("Terrasoft.store.BaseStore",{
		model: SysUserInRole
	});
	var queryConfig = Ext.create("Terrasoft.QueryConfig", {
		modelName: SysUserInRole,
		columns: columns
	});
	var filters = Ext.create("Terrasoft.Filter", {
		property: "SysUser.Id",
		value: Terrasoft.CurrentUserInfo.userId
	});
	store.load({
		queryConfig: queryConfig,
		filters: filters,
		callback: function(records, operation, success) {
			try {
				debugger;
				if(success && records) {
					Terrasoft.WaUserInRoles = records;
				} else {
					window.console.info(operation);
					window.console.info(success);
					window.console.info(records);
				}
			} catch(ex) {
				Terrasoft.Mask.hide({force: true});
				Terrasoft.Logger.error(ex, Terrasoft.LogDestination.Console);
				window.console.error(ex);
				return;
			}
		},
		scope: this
	});
}());

Добавил ее в манифест в блок:
 

{
	"ApplicationRequiredModels": [
		"SysAdminUnit",
		"SysUserInRole"
	],
	"CustomSchemas": [
		....
		"WaMobileGetCurrentUserRoles"
	],
}

При выполнении не может определить lockupModel:
 

var lookupModel = Ext.ClassManager.get(columnConfig.modelName);

http://prntscr.com/o3ctl3
 

В чем может быть проблема? Заранее благодарен.

У меня такой же вопрос

1 комментарий

не актуально, разобрался. Нужно было добавить Region в блок манифеста ApplicationRequiredModels

Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

Доброго времени!

Что бы отфильтровать записи детали "UsrProductInAccount" в разделе "Контрагенты" по реквизиту UsrDateSale. Нижеприведённый код я указал в модуле "UsrMobileAccountModuleConfig".

Terrasoft.sdk.Details.addFilter("Account", "UsrSchema4DetailStandardDetail", {
	property: "UsrDateSale",
	isNot: false,
	value: null
});

Возник следующий вопрос. Как отфильтровать записи детали "UsrProductInAccount" по реквизиту UsrProductStatus, который находится в разделе "Product"? Связь осуществляется через реквизит UsrProduct (в детали) и ID (в разделе "Product").

У меня такой же вопрос

0 комментариев
Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

Здравствуйте, уважаемые коллеги.

Вопрос касается мобильного приложения.

Есть ли возможность при открытии стандартной детали миновать реестр и открывать сразу же первую же запись в нём? 

Сам так и не разобрался до сих пор. Заранее спасибо за помощь :)

У меня такой же вопрос

10 комментариев

А что делать если там 2 записи?

Кривонос Максим, это не важно, у меня так то всегда одна запись. Ну проще всего наверное сделать так, чтоб открывалась самая первая запись, даже если их там много

Федоровский Роман Дмитриевич,

А зачем тогда стандартная деталь? Может проще поле сделать или кнопку в карточке, которая будет открывать вашу одну запись

Кривонос Максим,

Задача состоит в том, чтобы сделать что-то вроде "вкладок" браузерного приложения, их было решено сделать в виде "деталей", которые открывают представления, в которых куски главной страницы.
А каким образом открывать эту запись из поля или кнопки? Как открывать какую-то запись опредленного модуля в JS по айдишнику, или как нибудь так?

Может Вам подойдут разворачиваемые группы колонок?

Кривонос Максим,​​​​​​ да! Это именно то, что мне надо было. Но вообще нигде не нашел информации про подобные группы полей. Не подскажете, где искать? На скриншоте стандартный раздел обращения? Не могу найти

Да, это раздел обращения (MobileCaseModuleConfig)

В дизайнере создаете группу колонок, накидываете туда нужные колонки и сохраняете.

Затем создаете схему UsrMobileMySectionModuleConfig для настройки вашего раздела и пишите там такой код:

Terrasoft.sdk.RecordPage.configureColumnSet("MySection", "MyColumnSet1", {
	alwaysShowTitle: true,
	collapsible: true,
	isCollapsed: true,
	customEditConfig: {
		isCollapsed: false
	}
});

 

Кривонос Максим,

Спасибо большое, это мне очень сильно поможет!

UPD. Хотя проблема остается актуальной. Всё же это группа полей, а мне бы ещё в эту группу полей запихнуть деталей стандартных..

Федоровский Роман Дмитриевич,

такой стандартной возможности нет

Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

Всем доброго времени суток. Столкнулся со следующей проблемой:
не всегда обновляется поля в детали продукт в заказе - http://prntscr.com/o0d083
заношу туда данные следующим образом:

setDiscount: function(config){
		var orderProductRecord = Ext.clone(config.model);
		var totalAmount;
		var discountPrice;
		var totalDiscount;
		if (config.discountType ==="personal") {
			totalAmount = config.model.data.TotalAmount;
			discountPrice = this.calculateAmountWithDiscount(totalAmount, config.discount);
			totalDiscount = totalAmount-discountPrice;
			orderProductRecord.set("WaDiscountContact", config.discount, true);
			orderProductRecord.set("WaTotalDiscount", totalDiscount, true);
 
			orderProductRecord.save({
				success: function(){
					Terrasoft.Mask.hide({force: true});
					Terrasoft.PageNavigator.refreshLastPage(); 
				},
				failure: function(exception) {
					Terrasoft.Mask.hide({force: true});
					Terrasoft.MessageBox.showMessage(Ext.String.format(Terrasoft.LS.WaErrorExecutionMessage, exception));
				},
				queryConfig: Ext.create("Terrasoft.QueryConfig", {
					modelName: orderProductRecord.self.modelName,
					columns: ["WaDiscountContact", "WaTotalDiscount"]
				})
			}, this);
		}
	},

Не всегда отрабатывает Terrasoft.PageNavigator.refreshLastPage(); хотя в бд записываются данные.

У меня такой же вопрос

1 комментарий

Попробовал, Terrasoft.PageNavigator.refreshLastPage() отрабатывает нормально, поле со значением появляется. Возможно, срабатывание не всегда связано с моментом, когда вызывают setDiscount: вдруг карточка в этот момент ещё не загрузилась или что-то подобное.

Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

Коллеги, всем доброго времени суток!

В мобильном приложении необходимо логировать некоторые данные. В приложении есть свой логгер -  http://prntscr.com/noti8j
Подскажите где смотреть логи если назначение будет Terrasoft.LogDestination.Analytics?

 

У меня такой же вопрос

2 комментария

Логи Terrasoft.LogDestination.Analytics не предназначены для просмотра пользователем. Можно посмотреть только Terrasoft.LogDestination.File, сформировав письмо с отчётом для отправки.

 

Зверев Александр,

 Благодарю.

Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

Всем доброго времени суток.

Столкнулся с проблемой фильтрации в разделе активностей в списочном представлении.

Создал ModuleConfig, прописал в нем фильтрацию, название модуля добавил в манифест, но при отработке вываливается ошибка - http://prntscr.com/nns86h
 

Terrasoft.sdk.Module.addFilter("Activity", Ext.create("Terrasoft.Filter", {
	property: "Owner",
	value: Terrasoft.CurrentUserInfo.contactId
}));

так же не работает сортировка - http://prntscr.com/nns8sc
 

Terrasoft.sdk.GridPage.setOrderByColumns("Activity", {
	column: "StartDate",
	orderType: Terrasoft.OrderTypes.DESC
});

В чем может быть проблема?

У меня такой же вопрос

1 комментарий

Судя по тексту сообщения, код пытается сделать вставку (push) элемента в массив, а массив равен null. Где именно и почему это происходит, можно увидеть, открыв скрипты filter.js, sdk-utils.js и module-sdk.js в указанных на экране номерах строк.

Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

Здравствуйте, уважаемые коллеги. Возник вопрос по мобильному приложению bpm'online.
Появилась необходимость заметить метод initialize из модуля "Terrasoft.view.BaseGridPage.View".

Сталкивался ли кто-то с подобной задачей? Помогите, пожалуйста. Пробовал создавать модуль, в котором писал extend: "Terrasoft.view.BaseGridPage.View", и подключал его в манифест. Сама схема подгружается, но метод вызывается только из родительской схемы.

У меня такой же вопрос

5 комментариев

Добрый день! Можете описать свою бизнес-задачу? Для какой цели вы хотите заменить initialize() в Terrasoft.view.BaseGridPage.View? Объясню свой вопрос: для ряда задач нет необходимости в расширении базовых классов или их замещению. Например, для изменения стилей страниц можно воспользоваться утилитным методом Terrasoft.util.writeStyles().

S.Kalishenko,

Мне нужно добавить элемент вроде QR-кода на экран, который будет на постоянной основе находиться на экране в момент открытия любого раздела в целях безопасности, для этого я в div главного окна из JS я добавляю автогенерируемый qr-код. Как применять стили страниц я понимаю.

Федоровский Роман Дмитриевич,

Тогда для этой цели используйте override:

Ext.define("Terrasoft.BaseGridPageViewOverride", {
	override: "Terrasoft.BaseGridPageView",
 
	/**
	 * @protected
	 * @overridden
	 */
	initialize: function() {
		/* Your code */
		this.callParent(arguments);
	}
 
});

Только, пожалуйста, обращайте внимание на указанные области видимости методов (ни в коем случае не перекрывайте приватные методы).

А как сгенерировать сам QR-код, пример есть здесь.

Большое спасибо! Это решило все мои проблемы. Прошу прощения за столь длительный ответ

Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

Всем доброго времени суток!
Подскажите, есть ли возможность определить роли текущего пользователя в мобильном приложении? Если делать запрос то выдает ошибку - Uncaught Error: [ERROR][Ext.data.Store#setModel] Model with name "SysUserInRole" does not exist.
В зависимости от вхождения в роль нужно делать фильтрацию в справочном поле.
Кто нибудь сталкивался с похожими случаями?
Заранее благодарен!

У меня такой же вопрос

2 комментария

Мобильное приложение не загрузило метаданные модели SysUserInRole.

Добавьте в манифест вот такую секцию:

ApplicationRequiredModels: ["SysUserInRole"]

Кривонос Максим,

 Благодарю, сработало.

Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

Добрый день!

Возможно кто-нибудь ранее сталкивался с проблемами в мобильном приложении на iOS. Приложение постоянно намертво зависает при создании/редактировании активностей. Очистка кэша помогает ровно до первого раза. Пользователи устройств на android таких проблем не испытывают. С интернетом и свободным пространством на телефоне проблем нет.

Десктопная версия BPM 7.12, мобильная 7.13.

Чем могут быть вызваны проблемы в мобильном приложении на iOS? Может ли кто-нибудь посоветовать метод борьбы с данными проблемами? 

У меня такой же вопрос

2 комментария

В мобильной версии наблюдались проблемы с утечками памяти для разных версий iOS, и они исправлялись обновлением на iOS 12.

По поводу диагностирования самих причин:
Если ошибка возникает только на мобильном приложении (в то время, как на веб-версии все отрабатывает нормально), тогда необходимо понимать какие действия выполняются в системе и приводят к ошибке. Информация об ошибках хранится мобильном устройстве.

И как итог, для того, чтобы локализировать причины проблем с прозводительностью необходимо учитывать следующие факторы:

  • версия ОС системы
  • действия, которые выполняются в системе перед началом проблем (к примеру, в какие разделы мобильного приложения переходили, какие записи в разделе активностей редактировали)
  • логи приложения (в них можно найти сообщения о возможных ошибках, которые повлияли на проседание производительности)

Мотков Илья,

Спасибо за ответ!

Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

Коллеги столкнулся с такой проблемой, не находит некоторые схемы - http://prntscr.com/mugxfw
Схемы добавлены в манифест рабочего места - http://prntscr.com/mugxx2
Подскажите что делаю не так?

У меня такой же вопрос

1 комментарий

Попробуйте очистить Redis и перезапустить пул. Вообще, это стандартные схемы и были уже добавлены ранее. Дело должно быть не в них, а в той схеме из восьмого сверху сообщения, которая у Вас в файловой системе и названия которой не видно. Проверьте правильность логики в ней.

Войдите или зарегистрируйтесь, чтобы комментировать