задачи расписание
Технические вопросы
7.x

Добрый день.

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

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

Спасибо.

Нравится

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
Технические вопросы
7.x

Добрый день. Подскажите пожалуйста, как можно обойти доступ к 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


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

Показать все комментарии
7.6
Enabled
rules
организационные роли
Технические вопросы
7.x

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

Есть задача скрыть редактирование поля страны в детали по организационным ролям(супервайзер, руководители, менеджеры), закрыть право на редактирование для менеджеров.
Пробывал разные варианты через конфигурацию и добавления правил, все равно не работает.
Версия 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

Показать все комментарии
Технические вопросы
7.x

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

Нравится

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

Добрый день!

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

Показать все комментарии
Визирование
уведомления
Технические вопросы
7.x

Здравствуйте!
Реализую процесс визирования, сделал на основе визирования счетов – бизнес-процессы, кнопка меню действия, провайдер уведомлений, добавил запись в таблицу 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()."

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

Показать все комментарии
бизнес-процесс
Технические вопросы
7.x

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

Нравится

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

Добрый день!

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

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

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

Нравится

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

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

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

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

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

Показать все комментарии
7.7
Quartz
Планировщик
Технические вопросы
7.x

Подскажите, люди добрые!
Начинаем осваивать планировщик в 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 комментарий

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

Показать все комментарии
JSScript
Технические вопросы
7.x

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

Нравится

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

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

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

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

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