Добрый день.

Может кто сталкивался. По умолчанию в расписании стоит фильтр "Ответственный". Соответственно автор активности не видит поставленные задачи сотрудникам.

В связи с этим как поменять базовый фильтр путем добавления к фильтру "ответственный" еще и фильтра "автор".

Спасибо.

Нравится

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

Добрый день!

Фильтр по ответственному на самом деле выполняет фильтрацию по детали "Участники" активности.

Соответственно для того, чтобы автор увидел активности, добавьте его в участники.

Если же Вы в любом случае хотите модифицировать базовый преднастроеный фильтр, пример находится ниже:
https://academy.terrasoft.ru/documents/technic-sdk/7-7-0/kak-dobavit-v-…

Для того, что бы добавить автора в учасники необходимо открывать карточку "активности" на всю страницу, что есть неудобством. Можно ли тогда решить вопрос добавления автора в учасники на карточке активности без открывания станицы разделы.

Здравствуйте, Юлиан!

Автор активности, как и ответственный, по умолчанию добавляются на деталь "Участники активности". Если автор и ответственный - это один и тот же контакт, то создается только одна запись.
При изменении ответственного на деталь "Участники активности" добавляется новый участник.

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

Здравствуйте.
Наш директор зарегистрировался как клиент в нашу систему bpmonline на свою робочую почту. И теперь все письма, которые он шлет менеджерам просто по Gmail и не относятся к работе bpmonline, видно если зайти через админа в bpmonline. Директор не хочет, чтобы его почту могли читать сотрубники компании. Как сделать так, чтобы его переписка не подтягивалась в карточку его контакта в историю в Email?

Нравится

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

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

Реализовано в версии 7.8.0 - деталь Email на странице редактирования раздела "Контакты" скрывается, если у контакта тип "Сотрудник" или тип контрагента контакта "Наша компания".

Таким образом переписка между двумя сотрудниками скрыта.

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

Добрый день. Подскажите пожалуйста, как можно обойти доступ к SysAdminUnitInRole. Я обращаюсь к базе данных для того чтобы узнать состоит ли наш пользователь в определенной группе. Если такой имеется, то отрабатывает флаг с помощью которого потом отрабатывает отдельная логика. Но такой подход не срабатывает с таблицей SysAdminUnitInRole. (Проверял на другой таблице OrderProduct все отработало).

setCurrentUserGroup(){
var roleId = "CB438514-6C60-4500-B9C7-CE9F60822088"
var currId = Terrasoft.SysValue.CURRENT_USER.value;
var select = this.Ext.create("Terrasoft.EntitySchemaQuery", {
rootSchemaName: "SysAdminUnitInRole"
});
select.addColumn("Id");
var filterId = select.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, "Id", currId);
select.filters.add("FilterId", filterId);
var filterGroupId = select.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, "sysAdminUnitRole", roleId);
select.filters.add("FilterGroupId", filterGroupId);
var that = this;
select.getEntityCollection(function(result) {
// берем результаты выборки
if (result.success){
var collection = result.collection;
if (collection.getCount()){
that.set("IsSecurity", false);
}
}
}, this);
}

Нравится

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

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

Посмотрите пример из базовой конфигурации:
http://www.community.terrasoft.ru/forum/topic/11726#comment-51431

"Безродный Андрей" написал:

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

Посмотрите пример из базовой конфигурации:

http://www.community.terrasoft.ru/forum/topic/11726#comment-51431


Огромное спасибо.

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

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

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

Как лучше мне это сделать?

Нравится

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

Здравствуйте, Сергей!

Вы можете видимость поля задать бизнес правилом. Параметр видимости будет определяться в момент открытия страницы редактирования (Вам необходимо переопределить метод onEntityItialized()). Замещенный метод onEntityItialized() должен вызывать родительский, а также проверять вхождение пользователя в роли (используйте ESQ по объекту SysAdminUnitInRole). Обратите внимание, что один пользователь может входить в несколько ролей.

Сформировал запрос к таблице SysAdminUnitInRole по своей Id

SELECT *
FROM            dbo.SysAdminUnit sa LEFT JOIN
                         dbo.SysAdminUnitInRole saur ON sa.Id = saur.SysAdminUnitId
WHERE sa.Id = 'мой Id'

Вернуло 3 строки - это означает, что в меня есть 3 роли?

Да, это значит что Администратор с sa.Id = 'мой Id' входит в три роли
Если вы выполните

SELECT saur.SysAdminUnitId, saur.SysAdminUnitRoleId
FROM            dbo.SysAdminUnitInRole saur
Where saur.SysAdminUnitId = 'мой Id'

То увидите айдишники ролей

Спасибо за подсказку, пытался вывести название ролей:

SELECT saur.SysAdminUnitId, saur.SysAdminUnitRoleId, s.Name
FROM            dbo.SysAdminUnitInRole saur Left JOIN
                         dbo.SysAdminUnit s ON saur.SysAdminUnitId = s.Id
WHERE saur.SysAdminUnitId = 'мой Id'

Результат имя моего контакта. Может я неправильно делаю?

так ваш запрос и выводит имя контакта из s.Name (SysAdminUnit)

можно сделать так

select s.Name 
from SysAdminUnit s
where s.id in (
select saur.SysAdminUnitRoleId
from dbo.SysAdminUnitInRole saur
where saur.SysAdminUnitId = 'мой Id'
)

Вот только одна запись похоже тоже будет вашим контактом, т.к. есть соответствие одинаковых id в SysAdminUnitInRole

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

Добрый день!
Вопрос простой: каким образом можно отобразить текущее значение параметра бизнес-процесса пользователю? Например, у меня есть параметр с именем CurrentSum и я хочу в диалоговом окне отобразить его пользователю на некотором шаге процесса. Каким образом можно это сделать? Заранее признателен

Нравится

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

Добрый день!

Параметр процесса можно передать с помощью элемента Формула в любой удобный параметр другого элемента.
Это может быть автогенерируемая страница с текстовым полем, этом может быть параметр [Подсказка пользователю] в элементе Страница редактирования/Выполнить задачу/Вопрос пользователю.

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

Здравствуйте!
Реализую процесс визирования, сделал на основе визирования счетов – бизнес-процессы, кнопка меню действия, провайдер уведомлений, добавил запись в таблицу NotificationProvider
Бизнес процесс отрабатывает, записи в детали визирования появляются, ошибок нет, но уведомления в ленте не появляются.
Подскажите, пожалуйста, в какую сторону копать (sales 7.8.0.1134).

Нравится

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

Добрый день!

Следует убедится:
1. Уведомление действительно создается в таблице Reminding.
2. В уведомлении указано корректное время и адресат.
3. Если запись в таблице есть, но уведомление не отображается в коммуникационной панели – не создан/некорректно создан провайдер уведомления для объекта. Пример можно посмотреть в схеме – InvoiceVisaNotificationProvider.

После сохранения визы, запись в таблицу Reminding действительно не добавляется... подскажите, каким образом она туда должна попадать?

В бизнес-процессах визирования счёта ни чего подобного не нашёл...

Добрый день!

Прошу прощение, перепутал с другим процессом уведомлений.
Процесс визирования и уведомления работает с одним объектом, для счетов это – InvoiceVisa, уведомления соответственно приходят согласно провайдеру – InvoiceVisaNotificationProvider.
Т.е. по предыдущему комментарию первые два пункта можно пропустить.

В InvoiceVisa запись появляется но Уведомлений нет... буду разбираться с провайдером
Я так понимаю что с периодичностью указанной в настройке "Интервал проверки уведомлений" (RemindingsCheckInterval) происходит опрос всех провайдеров из таблицы NotificationProvider, каждый в свою очередь выполняет запрос к сущностям для которых он создан, и раскидывает результаты по уведомлениям ленты, правильно я полагаю?

Все верно.

Заметил что появляются оповещения внизу у часов, а вот в самой ленте ни чего, прилагаю скриншот

За уведомления ленте и за оповещения у часов отвечает один и тот же Провайдер?
Может есть какая-то настройка чтобы виза отображалась в ленте?

При попытке отладки через Visual Studio поставил точки останова в методах нескольких провайдеров в том числе и созданного... но ни одна из них так и не сработала, какой механизм вызывает эти провайдеры?

Как оказалось конфигурация Team по умолчанию не имеет вкладки визирование, её необходимо добавлять основываясь на продукте Enterprice...
... цитирую ответ от техподдержки:
"В продукте Sales Enterprise за добавления вкладки отвечает схема CenterNotificationSchema (пакет SalesEnterprise), метод getTabsConfig()."

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

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

Добрый день коллеги!
Подскажите пожалуйста, как можно реализовать пункт в Бизнесс процессе, который бы переводил пользователя на страницу раздела, например на страницу раздела "Активности" с активным View - Расписание, при чем передавая некоторые параметры (например с определенной датой для фильтра).
Подскажите пожалуйста, какие есть возможности по реализации данной задачи? Спасибо!

Нравится

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

Добрый день!

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

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

Здравствуйте. В разделе Согласование были настроены папки по департаментам контактов. Само согласование создаётся одним ответственным лицом. Нужно настроить ограничение, чтобы каждый департамент видел только записи относящиеся к ним. А записи других департаментов они не видели

Нравится

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

Возможно ли так всё настроить самому?

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

1. Выберите папку
2. Нажмите на "Шестеренку"
3. В выпадающем списке выберите "Настроить права"

Настройте права и сохраните изменения.

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

Подскажите, люди добрые!
Начинаем осваивать планировщик в 7.7. Пытаюсь запустить его сценарием из БП:

var userConnection = GetUserConnection>("UserConnection");
string schedulerJobGroupName = "GroupName";
string jobProcessName = "ISSendContacts";
string schedulerJobName = "JobISSendContacts";
int startOffset = 20;
AppScheduler.RemoveJob(schedulerJobName, schedulerJobGroupName);
var job = AppScheduler.CreateProcessJob(schedulerJobName, schedulerJobGroupName, jobProcessName, userConnection.Workspace.Name, userConnection.CurrentUser.Name);
var trigger = new SimpleTriggerImpl(schedulerJobName + "Trigger", schedulerJobGroupName, DateTime.UtcNow.AddSeconds(startOffset));
AppScheduler.Instance.ScheduleJob(job, trigger);
return true;

При условии, что подключил библиотеки в Usings:

Quartz.Impl
Quartz
Quartz.Impl.Triggers
Terrasoft.Core.Scheduler

А при компиляции он ругается на AppScheduler и SimpleTriggerImpl, типа, они не объявлены.
Пробовал перед ними добавлять альясы Usings, например "Terrasoft.Core.Scheduler.AppScheduler", но это тоже не помогло.
Связано ли это с тем, что БП, создающий Job находится в созданном мной отдельном пакете, в котором из зависимостей только базовые пакеты Base и UIv2?

Нравится

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

Повторил этот бизнес процесс с нуля и он заработал без ошибок :)
Вообще странно, но в любом случае, получается, что я сам где-то ошибся.

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

Доброго дня!
Возникла необходимость использовать стороннюю js-библиотеку на некоторых страницах. Подскажите, пожалуйста, каким образом можно по необходимости подключать скрипт, хранимый как .js файл. В моем случае нужно выполнить js-функцию из файла библиотеки на странице раздела. Интересует где необходимо размещать файл со скриптом и каким образом добавлять его на страницу, делая доступным для вызова в javascript'е страницы раздела, которую я редактирую на странице управления конфигурацией.

Нравится

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

Никто не сталкивался с подобной задачей? Может хоть подскажет кто где почитать, т.к. светлых идей нет совершенно, а время идет...

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

Спасибо за ответ! Думал об использовании описанного Вами способа, но проблема как раз в том, что библиотека имеет набор ресурсов, кроме того, она состоит из нескольких зависимых js. Сейчас пришел к такому решению: разместил на сервере в папке Terrasoft.WebApp\Resources\ui необходимые библиотеки, далее в модуле страницы подключаю все эти js файлы по аналогии с jquery, т.е. перечисляя их в define. Решение рабочее, библиотеки успешно подгружаются. Но у меня есть сомнения в отношении корректности такого подхода с точки зрения разработки...

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