Вопрос

Есть кастомный раздел "Каталог услуг".

Есть БП, в котором ставится Активность "Согласовать Каталог услуг" как в этой Активности указать связь с "Каталогом услуг" по аналогии с "контактами" "контрагентами" и т.д.

Какие объекты нужно заместить?

В какие из замещенных объектов нужно изменить?

и что нужно изменить?

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

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

Евгений, здравствуйте.

Необходимо добавить с помощью мастера раздела на страницу Активности справочное поле, которое будет указывать на объект Каталог Услуг. Поскольку в элементе Выполнить задачу в качестве параметров можно указывать предопределенный набор полей, для решения задачи необходимо использовать такой подход:

- добавить элемент Добавить данные, объект = Активность, для созданного поля заполнить Каталог услуг

- с помощью элемента Открыть страницу редактирования для существующей записи открыть созданную запись.

Таким образом откроется активностьс полем, заполненным значением записи из  Вашего раздела.

Логвин Андрей Витальевич,

Спасибо, понимаю, что решение рабочее.

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

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

Было бы хорошо отметку о напоминаниях автору и ответственному вынести в мини-карточку Активности, так как это одна из основных функций, которую заполняют при создании задач

Обсуждение
1 комментарий

Здравствуйте, Владимир!

 

Данная задача уже заведена у соответствующей команды на реализацию в будущих версиях приложения. Данный функционал будет реализован в рамках приоритетности задач по данному разделу.

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

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

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

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

Алёна, самый простой способ (если не прибегать к использованию кода):

Создать бизнес-процесс, который при создании активности(стартовый сигнал) будет устанавливать "галочку" в поле "Отобразить в расписании".

Это, собственно, вариант по-быстрому)

А почему не сделать замещающий объект и там поставить значение по умолчанию?

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

спасибо, попробую

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

Добрый день!

В бизнес-процессах есть возможность создавать активности с помощью элемента "Выполнить задачу" или "Добавить данные" в объект Activity

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

Спасибо!

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

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

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

1. Визуальные.
При создании задачи через элемент "Выполнить задачу" мы можем четко ограничивать пользователя в выборе предоставляемых результатов завершения активности. При использовании элемента "Добавить данные" при данном кейсе придётся на уровне схемы подменять фильтрацию поля результат, что по факту трудоёмко и необходимо вводить дополнительные флаги к активности, мол, что это за активность открыта и какие результаты нужно в ней показывать, что в свою очередь не применяется для схем миникарточек активности.
Т.е. допустим вы добавили 3 новых варианта, привязали их к категории выполнить и типу Задача, если править только схему карточки Активности то в карточке всё будет гуд отображаться, но при этом в миникарточке активности станут доступны все нововведенные результаты.
Плюс при использовании Выполнить задачу вы ограничиваетесь потоками выполнения в зависимости от выбранного результата, тогда как при "Добавить данные" вам необходимо под каждый тип активностей создавать отдельный БП по обработке результатов активности.

2. При работе с данными колонок Активности и сторонними параметрами БП.
При создании через добавить данные у вас не возникнет проблем с заполнением какой-то кастомной колонки и set'е туда значения из параметра БП.
При создании через Выполнить задачу вы ограничены определенным набором доступных колонок, которые можно посмотреть через расширенные настройки. Если вам потребуется что-то устанавливать в нововведенные колонки значения, то в целом можно использовать С# модуль под названием "После сохранения активности" в этом же элементе. Но есть одно но, context выполнения этого кода ограничен только параметрами самого элемента Выполнить задачу, т.е. простым путём у вас не получится выполнить SetColumnValue со сторонним параметром БП, нужно будет этот сторонний параметр пробрасывать в контекст и потом парсить (если это потребуется).

Вот с чем мы столкнулись в последний месяц при работе с этими элементами.
На мой взгляд лучше всего использовать Выполнить задачу, так как даже на уровне js'a будет проще выполнять иные действия при клике на тот или иной результат, но это сугубо моё мнение.

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

Коллеги, день добрый.

Подскажите, пожалуйста, как можно решить такую задачу.

Есть Активность, в которой Автор и Исполнитель отличаются. Как только Исполнитель завершает задачу Автору должно выводиться уведомление (в коммуникационной панели во вкладке уведомлений) о том, что конкретная задача завершена.

Сделал бизнес-процесс, который добавляет Уведомление по сигналу изменения состояния Активности. Само уведомление в панели появляется, но счётчик не меняется.

Попробовал создать отдельного провайдера (по аналогии с DocumentNotificationProvider и ForecastNotificationProvider), но словил ошибку 400. Подозреваю, что на один раздел может быть только один провайдер уведомлений.

Получилось отловить ошибку, которая выдаётся в консоли:

Сервер обнаружил ошибку при обработке запроса. Сообщение об исключении: "Значение не может быть неопределенным.

Имя параметра: type". Дополнительные сведения см. в журналах сервера. Трассировка стека исключений:
в System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
в System.Activator.CreateInstance(Type type, Object[] args)
в Terrasoft.Configuration.RemindingsHelper.GetResult(Guid sysAdminUnitId, NotificationProviderType type, DateTime date, String methodName)
в Terrasoft.Configuration.RemindingsHelper.GetCount(Guid sysAdminUnitId, NotificationProviderType type, DateTime date)
в Terrasoft.Configuration.RemindingsHelper.GetRemindersCounter(Guid sysAdminUnitId, String dueDate)
в Terrasoft.Configuration.RemindingsHelper.GetPopupConfigResponse(Guid sysAdminUnitId, String dueDate)
в SyncInvokeGetPopupConfig(Object , Object[] , Object[] )
в System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs)
в System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc)
в System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc)
в System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11(MessageRpc& rpc)
в System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)

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

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

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

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

Так же убедитесь, что в таблице NotificationProvider существует запись для нового провайдера.

"Попробовал создать отдельного провайдера (по аналогии с DocumentNotificationProvider и ForecastNotificationProvider), но словил ошибку 400."
- Скорее всего могли быть допущены ошибки в созданном провайдере.
Но если уже есть базовый провайдер уведомлений по Активностям, то нет смысла создавать новый(только если хотите использовать другой тип уведомлений).

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

Запись для нового провайдера тоже добавлял.

Я как раз и хочу добавить провайдер уведомлений по Активностям с типом "Уведомления" (базовый работает с напоминаниями).

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

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

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

Добрый день, у нас возникли следующие проблемы с активностью при создании активности через БП:
- при выборе “тип сообщения” = исходящее в активности все равно выставляется входящее:

- к активности подсоединяется контакт, но в самом контакте в истории активность не отображается, но сам заголовок активности, связанной с данным контактом отображается в категории email (даже при типе и категории "задача) ":

- в разделе “Туры“ также в истории не отображаются активности, однако отображается вверху в панели “следующие шаги”:

Подскажите, пожалуйста, как можно устранить данные проблемы? :smile:

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

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

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

Попробуйте заполнять не поле "Направление звонка", а поле "Тип сообщения". Внесите исправления в процесс.

Также создаваемые активности имеют тип "Email". Активности с типом "Email" отображаются на детали "Email", однако на детали "Активности" они не отображатся, т.к. на ней установлена фильрация по типу записи.

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

Добрый день, необходимо переименовать, удалить некоторые поля из детали "Связи" на странице активности:

Но при редактировании этой детали в мастере деталей ничего не отображается:

Подскажите пожалуйста, как можно реализовать данную задачу?

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

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

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

DELETE FROM EntityConnection WHERE SysEntitySchemaUId = 'c449d832-a4cc-4b01-b9d5-8a12c42a9f89'
AND (ColumnUId = 'd6e94162-4354-413a-bc84-e118df5e852e'
OR ColumnUId = 'f6137557-741e-42f8-8bf6-69b2524a83f7')

где SysEntitySchemaUId это UId из SysSchema схемы объекта активности, а d6e94162-4354-413a-bc84-e118df5e852e её колонки UId которых можно прочитать в метаданных того же самого объекта активности.

Спасибо за помощь, подскажите, пожалуйста, где хранятся названия колонок, чтобы их переименовать по ColumnUId ? :smile:

Определить UID колонки можно в метаданных объекта Activity. Альтернатива - запрос к таблице SysEntitySchemaReference.

Спасибо, колонки успешно удалились, ColumnCaption изменили в SysEntitySchemaReference, но на странице активности название колонки отображается старое, кэш чистили, в чем может быть проблема?

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

Колонки в деталь "Связи" загружаются методом generateEntityConnectionButtonConfig() (схема EntityConnectionLinksUtilities).

Можно провести отладку этого метода, чтобы определить откуда ноги растут:smile:

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

Если в некоем БП, создавать запись, и использовать действие "Открыть страницу редактирования"

то при выполнении этого этапа - обязательно создается активность, с сопутствующим уведомлением

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

в частности "Выполнить позже" и т.д.

Если же открывать созданную сущность из раздела - то таких действий уже нет.

Вообщем этот кейс иногда нужен и полезен, а иногда очень мешает и вводит путаницу для пользователя,
Можно ли вообще избежать создания активности в таком случае, или как минимум избежать уведомления ?

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

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

"Севостьянов Илья Сергеевич" написал:Если же открывать созданную сущность из раздела - то таких действий уже нет.

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

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

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

Жаль. Это доставляет неудобства пользователю и вносит неувязки в бизнес-логику.
Если в данной теме можно озвучить пожелание, то было бы логичным, ИМХО, предоставить пользователю возможность выбрать в элементе БП - необходимо ли создавать активность, например добавив чекбокс

установленный по умолчанию.
А кому активности связанные ни к чему могли бы спокойно от этой функциональности отказаться.

Спасибо за обратную связь.
Зарегистрировали задачу на проработку.

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

Добрый день.
У меня такая проблема: по БП пользователю ставиться задача, но ее может закрыть любой другой пользователь, а нужно, чтобы только ответственный мог ее закрыть. В правах доступа настроено следующем образом: Раздел Активность: администрирование по записям(права на изменение) - указано кто создает и кому дается право. Если зайти в раздел "Активности" и там начать закрывать задачу, то Система не даст это сделать, а если это делать через объект "Продажа" через БП, то все возможно. Может кто-то подскажет как решить данную проблему? Я не программист, поэтому много не понимаю, но решить как-то хочу проблему. Заранее спасибо!

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

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

А каким образом вы через объект Продажа, закрываете активность?

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

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

Смотрите в сторону настройки прав доступа - необходимо настроить администрирование по записям для объекта "Активность".
Решением будет включение администрирования (по умолчанию оно включено) и удаление всех строк из настроек по умолчанию для изменения - это будет значит, что менять задачу может только автор/ответственный.

"Демьяник Алексей" написал:
...что менять задачу может только автор/ответственный.

Но Татьяна говорит о том, что закрыть активность должен иметь возможность только ответственный.

"D.T." написал:
Демьяник Алексей пишет:

...что менять задачу может только автор/ответственный.

Но Татьяна говорит о том, что закрыть активность должен иметь возможность только ответственный.

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

Аналогичный процесс нужно сделать на изменение активности.

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

Если закрытие происходит в рамках бизнесс-логики только через UI
(графический интерфейс, т.е. не бывает/пердусмотрено, так что закрывается например в другом БП)
То задачу можно решить на уровне JS-логики карточки Активности (Задачи).
Для того чтобы не "мучаться" определяя входит ли пользователь в необходимую функц.роль или организационный юнит и т.д. можете использовать разработанный мной миксин

Спасибо всем за ответы. Буду пробовать. Отпишусь по результатам.

"Демьяник Алексей" написал:Сделайте процесс, который при создании активности будет забирать права у всех и выдавать только ответственному.

Не совсем логично, так как автору надо оставить возможность менять содержание задачи (или отменять её)

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

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

Подскажите, пожалуйста, как можно реализовать следующее.
В сущность Активности было добавлено текстовое поле. Это текстовое поле нужно заполнять в бизнес-процессе при создании Активности, то есть при открытии активности пользователем это поле уже должно быть заполнено значением из предыдущего шага БП. В настройках шага Выполнить задачу я не вижу своего поля ( там в принципе не все поля из Активности).
Как установить значение кастомного текстового поля активности в БП?

BPM'Online 7.10.0.1742

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

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

Либо я чего-то не понял либо всё должно работать аналогично базовым операциям.
Ты считываешь нужную активность(что не обязательно), а потом элементом изменить данные изменешь значения своей кастомной колонки. Вы вывели вашу колонку в реестр карточки или нет? Уверены что в нужную карточку вывели эту колонку? В базе смотрели, значение меняется или нет? В чем проблема то собственно?

Делаете простенький бп:
1) Начальное событие: "Стартовый сигнал" -> срабатывает при добавлении/изменении записи в активность
2) Далее элемент "Изменить данные", фильтр по id активности(приходит в событие), устанавливаете поле.
3) profit

"Кисловский Михаил Андреевич" написал:

Либо я чего-то не понял либо всё должно работать аналогично базовым операциям.
Ты считываешь нужную активность(что не обязательно), а потом элементом изменить данные изменешь значения своей кастомной колонки. Вы вывели вашу колонку в реестр карточки или нет? Уверены что в нужную карточку вывели эту колонку? В базе смотрели, значение меняется или нет? В чем проблема то собственно?


активность создается в БП ( БП обрабатывает сущность Обращение) , задача "изменить данные" будет после "Выполнить задачу"? но тогда мы к задаче изменения перейдем только после закрытия "Выполнить задачу", а нужно , чтобы данные были заполнены при создании, ну или же сразу после создания

"Варфоломеев Данила" написал:

Делаете простенький бп:
1) Начальное событие: "Стартовый сигнал" -> срабатывает при добавлении/изменении записи в активность
2) Далее элемент "Изменить данные", фильтр по id активности(приходит в событие), устанавливаете поле.
3) profit


Извините, не совсем поняла как это сработает в моем случае. у меня есть БП, который срабатывает на создание Обращения. В рамках обработки обращения нужно создать активность "Выполнить задачу" и заполнить поле в ней значением из текущего обрабатываемого обращения.
Как я передам в описанный Вами БП это поле из обращения?

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

Хм а обязательно именно такую задачу создавать?
Может лучше создавать Активность с типом Задача и Категорией выполнить?
Тогда тот кто будет ответственным по этой активности получит уведомление и обработает эту активность. Как такой вариант вам?
Т.е. использовать не "Выполнить задачу", а Добавить данные и добавить активность что описал выше.

"Zaitova Liubov" написал: у меня есть БП, который срабатывает на создание Обращения. В рамках обработки обращения нужно создать активность "Выполнить задачу" и заполнить поле в ней значением из текущего обрабатываемого обращения.

Почему бы просто не добавить ещё 1 элемент "изменить данные" после "Выполнить задачу 2"?? "Выполнить задачу 2" возвращает Id активности, соответственно мы можем взять и изменить поле. Значение поля берём из "Читать данные 1"

"Кисловский Михаил Андреевич" написал:Т.е. использовать не "Выполнить задачу", а Добавить данные и добавить активность что описал выше.

Тоже неплохой вариант.

"Варфоломеев Данила" написал:Почему бы просто не добавить ещё 1 элемент "изменить данные" после "Выполнить задачу 2"?? "Выполнить задачу 2" возвращает Id активности, соответственно мы можем взять и изменить поле. Значение поля берём из "Читать данные 1"

когда изменятся эти данные? после того.как мы закроем задачу "Выполнить задачу 2"? а нужно чтобы было заполнено при открытии

"Кисловский Михаил Андреевич" написал:Т.е. использовать не "Выполнить задачу", а Добавить данные и добавить активность что описал выше.

все гениальное просто) спасибо!

"Zaitova Liubov" написал:
Кисловский Михаил Андреевич пишет:

Т.е. использовать не "Выполнить задачу", а Добавить данные и добавить активность что описал выше.

все гениальное просто) спасибо!


Решение хорошее, но непонятно как заставить БП ждать задачи созданной таким образом. Если использовать действие "Выполнить задачу",то БП создает активность и ждет её выполнения, а если добавить активность таким образом, то добавится активность и БП пойдет выполнять следующие за ним действия.

Zaitova Liubov, для этого нужно создать второй БП который будет отлавливать изменения по вашим активностям и в зависимости значения в поле результат "Условными потоками" можно вариантов исхода этого БП понаделать целую кучу.
МЫ используем такой подход в тех случаях, когда необходимо фильтровать значения в справочном поле Результат, для конкретно наших "подвидов" активностей. А не довольствоваться базовыми "результатами" этого поля.

"Тёскин Дмитрий Валерьевич" написал:
Zaitova Liubov пишет:

Кисловский Михаил Андреевич пишет:
Т.е. использовать не "Выполнить задачу", а Добавить данные и добавить активность что описал выше.

все гениальное просто) спасибо!

Решение хорошее, но непонятно как заставить БП ждать задачи созданной таким образом. Если использовать действие "Выполнить задачу",то БП создает активность и ждет её выполнения, а если добавить активность таким образом, то добавится активность и БП пойдет выполнять следующие за ним действия.


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

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

"Zaitova Liubov" написал:
Тёскин Дмитрий Валерьевич пишет:

Zaitova Liubov пишет:

Кисловский Михаил Андреевич пишет:
Т.е. использовать не "Выполнить задачу", а Добавить данные и добавить активность что описал выше.

все гениальное просто) спасибо!

Решение хорошее, но непонятно как заставить БП ждать задачи созданной таким образом. Если использовать действие "Выполнить задачу",то БП создает активность и ждет её выполнения, а если добавить активность таким образом, то добавится активность и БП пойдет выполнять следующие за ним действия.

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


Любовь, спасибо за совет! Это действительно то что нужно!

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