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

Подскажите, есть ли возможность проставить признак обязательности заполнения(*), при этом не устанавливая параметр на уровне БД?

http://prntscr.com/ocz7r9

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

Заранее благодарен.

Нравится

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

В 7.Х вообще не стоит устанавливать обязательность поля на уровне базы, достаточно на уровне объекта.

Если же нужно кодом на мобильной странице, см. эту и эту темы.

Показать все комментарии

Коллеги всем доброго времени суток! Подскажите как сгенерировать Terrasoft.Exception.

Необходимо преред добавлением записи проверять заполнение детали если пусто выкидывать Exception и сообщение, что заполните деталь

Terrasoft.sdk.Model.setModelEventHandler("Contact", 
	Terrasoft.ModelEvents[Terrasoft.ModelEventKinds.Before].insert,
	function(config, operation) {
		debugger;
		var record = config.scope.eventConfig.records[0];
		window.console.log(config);
		window.console.log(record);
		var addresses = record.ContactAddressDetailV2EmbeddedDetailStore.getData();
		if(addresses.all.length === 0) {
			var exceptionConfig = {
				message: "Сообщение",
			};		
			Ext.callback(config.failure,config.scope,Terrasoft.Exception(exceptionConfig);
		} else {
			Ext.callback(config.success, config.scope, [true]);
		}		
});

Как реализовать что бы работало, может кто то сталкивался?

Вылазит следующие ошибки  -http://prntscr.com/ocnz86

не читает - http://prntscr.com/ocnzgz

Заранее благодарен.

Нравится

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

разобрался

Terrasoft.sdk.Model.setModelEventHandler("Contact", 
	Terrasoft.ModelEvents[Terrasoft.ModelEventKinds.Before].insert,
	function(config, operation) {
		debugger;
		var record = config.scope.eventConfig.records[0];
		window.console.log(config);
		window.console.log(record);
		var addresses = record.ContactAddressDetailV2EmbeddedDetailStore.getData();
		if(addresses.all.length === 0) {
			var exception = new Terrasoft.Exception();
			exception.config.message = "Сообщение";
 
			Ext.callback(config.succes, config.scope, [false]);
		} else {
			Ext.callback(config.success, config.scope, [true]);
		}
		Ext.callback(config.success, config.scope, [true]);
});

 

Показать все комментарии

Коллеги,

Хотелось бы бизнес-процессе отобразить форму со списком значений, в котором пользователь может выбрать одно или несколько значений и передать результат выбора дальше по блок-схеме. Список значений при этом формируется динамически.

Можно ли так сделать? Если "да", то как это можно организовать?

Нравится

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

Доброго времени суток! Есть раздел с раширенными фильтрами и показатель, который ссылается на view. В view есть формула с агрегирующими функциями. Как показатель отфильтровать по отфильтрованному реестру раздела?

Постановка задачи:

Дашборд - Показатель. Если в разделе задан фильтр – обрабатываются только данные фильтра. 

Период - текущий месяц в сравнении с таким же периодом прошлого месяца (с 01.05 по 21.05 сравниваем с 01.04-21.04). 

Алгоритм расчета: ((Количество Лидов за текущий период/Количество Лидов за предыдущий период )-1)*100%



Если не учитывать фильтр, то view формируется на основании этого SQL :

select UsrLeadId, (CAST(T1 AS float) / CAST(T2 AS float)-1)*100 as UsrResult

from

(select Id as UsrLeadId, 

count(CASE

            WHEN CreatedOn >= DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()), 0)

                And CreatedOn <= GETDATE() THEN 1

            ELSE NULL

          END) OVER () as T1, 

count(CASE

              WHEN CreatedOn > DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE())-1, 0)

                And CreatedOn < dateadd(mm,-1,getdate()) THEN 1

            ELSE NULL

          END) OVER () as T2

        from Lead

) l

Нравится

1 комментарий
Лучший ответ

Здравствуйте.

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

Таким образом, для того, чтобы показатель во view был связан с отфильтрованным набором данных раздела, нужно представление переписать таким образом, чтобы можно было указать поле-связку.

Здравствуйте.

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

Таким образом, для того, чтобы показатель во view был связан с отфильтрованным набором данных раздела, нужно представление переписать таким образом, чтобы можно было указать поле-связку.

Показать все комментарии

Может кто сталкивался с таким поведением в бизнес процессах при их изменении?

Я редактирую какой-либо БП и сохраняю его. Далее запускаю процесс. В журнале отображается, что процесс выполнен полностью. НО! некоторые измененые или новые элементы процесса не меняют данные в записях объектов. Далее, я вставляю в БП автогенерируемую страницу, чтобы убедиться, что данные меняются в процессе, при этом ничего не меняю в других элементах. Поле этого опять запускаю процесс и ВСЕ НАЧИНАЕТ РАБОТАТЬ как надо. Если теперь удалить автостраницу то все продолжает работать. Пробовал делать полную компиляцию и не помогает. Только вставка автостраницы в процесс исправляет ситуацию.

С чем может быть связанно такое поведение системы?

Нравится

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

Возможно, в первом случае процесс запускали не под Вашим пользователем, а под другим, с ограниченными правами на изменение?

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

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

Тут речь идет именно о том, что процесс запускается под супервизором и с правами априори проблем быть не может.  С отображением страниц то же есть проблемы. Сначала все работает, потом начинаются сбои с отображением, хотя отметок о работе в фоне нет.

Посмотреть выполнение процессов и значения параметров их элементов более подробно можно при помощи механизма трассировки.

Показать все комментарии

Коллеги, приветствую!

Следующая ситуация возникла - с внешнего веб-сервиса прилетает ответ на bpmonline. В логах внешнего веб-сервиса видим, что ответ отправляется с данными, однако когда он доходит до bpmonline - данных нет, http код равен 0 и тело ответа пустое. Типы данных верны, ответы от других внешних веб-сервисов приходят с данными, как надо. И в Postman тоже все в порядке - проблема возникает только в bpmonline. Вопрос в следующем - где могут теряться данные? Может ли IIS менять тело ответа? Будем признательны за любую помощь.

Нравится

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

Что дергает в bpm внешний веб сервис? Привидите код получения и обработки ответа внешнего веб сервиса.

Григорий Чех,

Спасибо за ответ, проблема разрешилась. Дело было в веб-сервисе.

Показать все комментарии

Добрый день!

Для работы некоторых классов в скрипте бизнес-процесса добавил юзинг Terrasoft.Configuration, после чего начали сыпаться при компиляции ошибки:

'SysSettings' is an ambiguous reference between 'Terrasoft.Configuration.SysSettings' and 'Terrasoft.Core.Configuration.SysSettings'

Заранее спасибо!

Нравится

2 комментария
Лучший ответ

Либо используйте псевдонимы для юзингов:

либо прописывайте полный путь при использовании системных настроек в коде:

Либо используйте псевдонимы для юзингов:

либо прописывайте полный путь при использовании системных настроек в коде:

Спасибо большое!

Показать все комментарии

Коллеги, доброе утро.

Подскажите администратором была настроена аналитика по разделу.

Все диаграммы пользователям видны.

Вопрос:

1. Пользователям недоступна возможность добавить/изменить/удалить например график.

Права на данные операции "Разрешено".

Может есть еще какие-то настройки?

Нравится

1 комментарий
Лучший ответ

Для работы с аналитикой у пользователя должен быть доступ на системную операцию 'CanManageAnalytics' и для разделения доступа на дешборд нужно настроить права доступа для объекта  SysDashboard.

Для работы с аналитикой у пользователя должен быть доступ на системную операцию 'CanManageAnalytics' и для разделения доступа на дешборд нужно настроить права доступа для объекта  SysDashboard.

Показать все комментарии

По какому адресу нужно обратится чтобы получить данную информацию?



https:///0/ServiceModel/EntityDataService.svc/?????

Нравится

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

Здравствуйте.

Сталкивался ли кто с необходимостью через бизнес-процесс вытянуть организационную роль контакта?

Получилось вытянуть родительскую роль "Inherited from", для всех контактов читается значение - "All employees". 

Подскажите, реально ли без побочных "костылей" с помощью процесса прочитать орг. роль?

Нравится

5 комментариев
Лучший ответ

Добрый день!

У контакта может быть несколько орг. ролей, так как это деталь.

Для того, чтобы прочитать орг. роли, нужно найти пользователя контакта, далее считать роли этого пользователя





Добрый день!

У контакта может быть несколько орг. ролей, так как это деталь.

Для того, чтобы прочитать орг. роли, нужно найти пользователя контакта, далее считать роли этого пользователя





Добрый день,

Это не очень сложно: но нужно учитывать структуру таблиц где хранятся роли и вхождения в роли. Посмотрите таблицы / объекты "Объект администрирования" и "Вхождение пользователя в роли". В первой хранятся роли и сами пользователи, а во второй хранятся вхождения этих пользователей в соответствующие роли. Так же в таблицах есть тип роли, по которому можно определить организационная это роли или функциональная.

Сидоров Александр В.,

Делала в точности также, только в "Роли пользователя" читала первую запись выборки, а не коллекцию. Спасибо большое, попробую.

Тёскин Дмитрий Валерьевич,

здравствуйте, Дмитрий. 

По таблицам посмотрела. На примере одного контакта: достаточное количество записей орг. ролей вышло. Точно известно, что контакт в настоящее время состоит в одной организационной роли. Эту роль и нужно выцепить.

Вся информация о пользователях и ролях и вхождении первых во вторые хранится в таблицах SysAdminUnit, SysUserInRole и SysAdminUnitInRole. В последнюю переносится после выполнения действия актуализации. Возможно, Вы как раз ещё не актуализировали.

Если есть доступ к базе, сделайте SQL-запросами выборку из этих таблиц: сначала по имени определите Id этого пользователя, а потом посмотрите роли, в которые он входит. Когда структура и условия фильтрации станут ясны, можно будет повторить аналогичные условия выборки средствами движка процессов.

Показать все комментарии