Встречайте новый видеурок по работе с группами в bpm'online!

Узнайте, как сформировать в bpm'online дерево групп, распределить права доступа к группам и работать с ними. В видеоуроке демонстрируется, как создать структуру групп и настроить необходимые условия фильтрации, от простых к сложным.

Видео доступно по ссылке: Работа с группами в bpm'online

Больше видеоуроков смотрите на сайте академии Terrasoft.

Нравится

Поделиться

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

Нужно, чтобы дерево групп раскрывалось(все плюсики были раскрыты) автоматически.
Как можно это реализовать?

Нравится

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

Воспользуйтесь методом ExpandAll().
Вызов метода разворачивает все узлы дерева (при этом видимыми становятся все дочерние узлы дерева).
Пример вызова:

grdData.ExpandAll();

Написал вот так:

wndGroups.Window.ComponentsByName('grdData').CanUseExpandAll = true;
wndGroups.Window.ComponentsByName('grdData').ExpandAll();

но ни чего не произошло(дерево свернуто в одну корневую группу)

Василий, завтра в первую половину дня предоставим рекомендации по этому вопросу.

Василий, добавьте на событии OnShow Workspace'а:

wnd_BaseWorkspaceOnShow(Window);
grdData = wndGroups.Window.ComponentsByName('grdData');
grdData.ExpandAll();

Должно работать.

Например:

function wnd_CashflowWorkspaceOnShow(Window) {
wnd_BaseWorkspaceOnShow(Window);
grdData = wndGroups.Window.ComponentsByName('grdData');
grdData.ExpandAll();
}
Показать все комментарии

Есть необходимость в качестве окна выбора для поля справочника показывать не штатное окно с полями поиска и реестром, а окно с деревом групп соответствующего объекта и полями поиска...
Вот интересно, есть ли где в базовой версии пример реализации такого окна выбора? Или все ж самому создавать, творить по образу и подобию раздела придется? :wink:

Нравится

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

Здравствуйте, Александр.

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

"Резвов Роман" написал:Однако, у каждого лукапного контрола в карточке существует свойство SelectWindowUSI, куда можно подставить USI любого окна в конфигурации, которое будет открываться при нажатии на "лупу".

BPMOnline?
"Резвов Роман" написал:пример таких окон в конфигурации Вы можете найти

Не нашел :) пишу вот сам по аналогии с Базовой страницей групп модуля и базовой страницей раздела

Насчет SelectWindowUSI не знаю, по моему это точно не из BPMonline оперы, но есть у лукапного поля на странице свойство Страница справочника, по моему то что ищете....
Lookup

Александр, я не это ищу... как назначить свою страницу на lookup я знаю минимум два способа, а нужен мне пример работающей страницы с деревом групп и реестром, но не раздела, там я весь день голову ломаю с пониманием инициализации. Пока не получилось повторить - окно то я создал, вот и пытаюсь добиться чтоб группы грузились, реестр в нем фильтровался :confused:

ааааа, понял

Александр, посмотрите, пожалуйста, пример в рабочем месте "Маркетинг", раздел "Рассылки", деталь "Контакты" -> Добавить группу контактов

Роман, спасибо! Только там "скучная" деталь, просто назначили в качестве источника данных объект Группы контактов и все... Хотя вот как потом по выбранной группе отбирают контакты почитаю!
Кстати, что уже получилось: окно с нужным деревом групп проинициализировалось! Теперь добиваюсь чтобы при переходе по группам список фильтровался - вот тут тяжко... разбираюсь с методами из BaseModulePage

Окно получилось. Работает именно так, как и требовалось. Код далек от совершенства и написан пока "начерно", поэтому выкладывать здесь пока смысла не вижу. В качестве родителя использовалось окно справочника LookupGridPage, в качестве "донора" скриптов базовая страница раздела.

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

После переноса базы возникла проблема с фильтрацией реестра email по группам (Входящие, Исходящие, и пр.). В группе "Все сообщения" отображается только небольшая часть сообщений (по какому признаку они выбрались не понятно), хотя в правах доступа к группе для Всех пользователей стоит полный доступ. Как выяснилось, все сообщения отображаются только под "старым" Администратором, который был первоначально (в данный момент этот аккаунт уже не админ). Также все сообщения под любым пользователем отображаются, если создать в группах динамическую группу. Создание динамических групп принято как временное решение, но хотелось бы решить проблему.

Нравится

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

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

Посмотрите, пожалуйста, профайлером какие запросы бегают к БД при смене групп (все сообщения, входящие, исходящие и пр.) - если никаких "лишних" фильтров не накладывается, нужно смотреть в сторону прав доступа не на группу, а на записи в таблице раздела E-Mail.
Хотя странно то, что при создании дин. группы - письма отображаются корректно...

Профайлера нет, посмотреть к сожалению не получится. Насчет прав, на всех сообщениях права прописаны, для групп тоже (для всех пользователей). Все письма видит только сис админ. Где могут накладываться эти "лишние" фильтры?

В функции:
ApplyMailsWorkspaceFilter() скрипта scr_MailWorkspace
Закомментировал наложение фильтра:

ApplyDatasetFilter(BaseWorkspace.GridDataset, 'OwnerID',
		Connector.CurrentUser.ContactID,
		!BaseWorkspace.GroupsDataset.ValAsBool('IsFiltered'));

Теперь все вроде бы работает. Вопрос: на что это может повлиять, и как он должен правильно работать?

Добрый день!

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

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

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