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

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

Реальный, частый кейс:

Пользователю открывается задача по БП с текстом: "Оформите счет и договор по заказу", в системе есть 2 стандартных бп, которые это делают, но, когда пользователь прямо из задачи по ссылке переходит к заказу и через действия пытается это сделать, ничего не происходит (он так думает), но на самом деле процессы то запускаются, просто в фоне...

Очень хотелось бы иметь возможность в конструкторе бп установить признак для процесса "Запускать поверх других процессов". В данном случае у пользователя запускался процесс создание счета и договора.

Нравится

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

А если и у второго процесса галка стоит, что делать? Ещё одну настройку добавлять, «Запускать поверх вообще всех процессов»?

В таких случаях будет лучше переработать логику процессов: либо отключить стандартные и интегрировать их логику в свой процесс, либо разбить свой на несколько отдельных частей, которые завершаются поочерёдно.

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

Нет, достаточно одной галки, она будет означать, что этот процесс начинается поверх любого другого. Вопрос не в ходе процесса, а в его начале-старте.

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

П.С. Я не говорю про вариант подвязывания скрипта для кнопки создания продажи или счета.

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

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

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

Уважаемый Александр!

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

Простейший кейс: У вас в бп 2 задачи, всего 2 задачи. Выполнятся бп начал при изменении статуса продажи, соответственно перед Вами открылась карточка задачи. В задаче написано: "Александр, дорогой, пожалуйста, создай счет к заказу, который связан с продажей". В задаче, естественно, есть связь с заказом.

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

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

А то, что вы говорите вообще никак не решает ситуацию, ведь эти страницы и есть часть бп, которые никогда не всплывет, пока активен другой бп.

Добрый день, Д. В таком случае попробуйте прямо в этом БП сделать не 2 блока, а 6, при этом вторые 2 будут связаны с заказом, а третьи 2 — со счётом. Если пользователь будет идти по процессу, ему не нужно будет ни вручную создавать счёт, ни нажимать дополнительные кнопки в карточках, а карточка нового счёта  с уже заполненными полями связи с продажей и заказом автоматически появится при сохранении заказа в соответствии с логикой процесса. Дополнительную информацию пользователю, что от него хочет в этот момент система, можно показывать как раз в автогенерируемых страницах.

Коллеги, если есть возможность создать такой признак (стартовать бп поверх запущенного), это будет супер.

Спасибо.

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

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

У меня запускается некоторый БП, в котором почти на старте открывается страница на редактирование, соответственно там создается задача с заголовком, который я прописываю.

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

Я пытался сделать это по задаче, но она никак не ссылается на страницу/объект редактирования. 

Как быть?

Нравится

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

БП запускается как по сигналу по какому то действию оператора?

Самое простое решение перед открытием окна менять статус задачи (как вариант добавить в объект какой то признак Передан в работу) И не запускать (или завершать) БП у которых этот признак установлен.

Те

старовый сигнал

проверка что признак не установен

и либо выход

либо установка признака и затем открытие  странички редактирования!

БП запускается как по сигналу по какому то действию оператора?

Самое простое решение перед открытием окна менять статус задачи (как вариант добавить в объект какой то признак Передан в работу) И не запускать (или завершать) БП у которых этот признак установлен.

Те

старовый сигнал

проверка что признак не установен

и либо выход

либо установка признака и затем открытие  странички редактирования!

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

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

Можно, но очень не советую вам на них завязыватся. Они активно изменяются от версии к версии.

Добрый день, как отметил Григорий лучше иметь признак запуска процесса, но вы можете просматривать текущие задачи по процессам они отображаются у клиента из таблицы  SysProcessElementToDo или через js найти и распарсить элемент(если он есть) такого типа там вшит id записи к которой относится страница редактирования id="ProcessDashboardSchemaNotificationContainer-cce9076d-fa47-49a3-bec5-e53450fc421b-ViewModule_RightSideBarModule_ProcessDashboardModule"

В начале БП свяжите процесс с записью. И затем можно искать такие связи

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

Добрый день!

Создаю процесс, который в деталь добавляет Результат выборки по объекту. 

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

Можно ли как-то ограничить количество добавляемых записей при добавлении результата выборки (например, свойство, где указывается количество добавляемых записей - 10, 20 и т.д.)?

Нравится

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

В элементе БП 'Добавить данные' такая возможность отсутствует.

Выбрать точное количество записей запроса можно в элементе БП 'Читать данные'. Для этого нужно перейти в расширенный режим параметров элемента бизнес-процесса и найти параметр 'Количество записей для чтения':

Вы можете решить Вашу задачу таким образом.

1. С помощью элемента 'Читать данные' вычитать нужное количество записей.

2. В параметры бизнес-процесса добавить параметр с типом "Коллекция объектов'  и там же указать, что в него должен поместиться результат выборки из элемента 'Читать данные'.

3. После элемента 'Читать данные' добавить элемент 'Задание-сценарий' и уже в нём скриптом вставить нужные данные коллекции из параметра бизнес-процесса.

Или же просто реализовать всю логику в элементе 'Задание-сценарий'.

В элементе БП 'Добавить данные' такая возможность отсутствует.

Выбрать точное количество записей запроса можно в элементе БП 'Читать данные'. Для этого нужно перейти в расширенный режим параметров элемента бизнес-процесса и найти параметр 'Количество записей для чтения':

Вы можете решить Вашу задачу таким образом.

1. С помощью элемента 'Читать данные' вычитать нужное количество записей.

2. В параметры бизнес-процесса добавить параметр с типом "Коллекция объектов'  и там же указать, что в него должен поместиться результат выборки из элемента 'Читать данные'.

3. После элемента 'Читать данные' добавить элемент 'Задание-сценарий' и уже в нём скриптом вставить нужные данные коллекции из параметра бизнес-процесса.

Или же просто реализовать всю логику в элементе 'Задание-сценарий'.

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

Доброе время суток !



Вопрос:

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



Задача:

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

Это нужно сделать в бизнес-процессе, т.е отобразить пользователю страницу для ввода.



Клиентской схемы я так понимаю нет у Автогенерируемой страницы, да ?



Примечание:

(использовать Автогенерируемую страницу не обязательно)

Нравится

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

Ну не используй автогенерируемую страничку используй стандартный элемент БП "Открыть страницу редактирования".

Ну не используй автогенерируемую страничку используй стандартный элемент БП "Открыть страницу редактирования".

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

использовал элемент [Преднастроенная страница], там так можно

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

Задача - на островах Контакт и Контрагент в Лиде сделать функционал, аналогичный Квалификации (ну не устраивает кнопка Квалификация((...)

Т.е. при нажатии на кнопку Добавить должен создаться Контрагент с данными из группы полей Регистрационные данные.

Подскажите как  привязать  процесс к кнопке Добавить? Что то не можем до нее добраться).

спасибо!

 

 

Прикрепленные файлы

Нравится

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

Смотри BaseProfileSchema  метод addRecord

Смотри BaseProfileSchema  метод addRecord

Григорий, спасибо! попробуем)

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

Сделать секции в Дизайнере Бизцесс Процессов как в Cisco Packet Tracer. Что бы лучше разбирать отдельный блоки логики и быстро находить то что нужно. Так же можно сделать туда комментарии и заголовки и ...



Изображение удалено.

 

 

Изображение удалено.

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

Да! И перетаскивать блоки удобнее целиком!

В BPMN это называется «пулы» и «дорожки». В старом дизайнере они были, а в новом — вероятно, появятся вместе с аннотациями.

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

Два вопроса по версионности процессов:

1. Перенос. Достаточно ли просто перенести с дева новые версии через импорт-экспорт, сгенерировать исходные коды и сделать "компилировать всё"? И всё заработает.

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

3. Интересная штука. Когда я "сохранил как новую версию" у меня у старого процесса осталась галочка "актуальная версия", а у нового не проставилась. Как это все будет происходить при переносе?

Нравится

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

О версионности есть статья.

1. Да.

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

3. Видимо, выбрали не тот ответ на вопрос «Установить текущую версию процесса актуальной?» при сохранении. В любом случае, актуальную версию можно выбрать в интерфейсе карточки свойств процесса.

Статью читал, но внутренний параноик параноид :)

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

Не спрашивает, если предыдущая версия ни разу не запускалась.

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

Товарищи помогите.

БЦ  дергает код на сервере, этот код забирает данные из другой системы и обновляет запись контрагента путем прямого SQL запроса.

Все работает  но проблема с обновление пользовательского интерфеса.(Ну тобишь пользователь должен в интерактиве увидеть результат). Сейчас  я в клиенском коде кручу в потоке jQuery таймер и тыкаюсь в БД проверяя наличие изменений и вывожу диалоговое окошко. Но данный подход, мне уж больно не нравится.

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

 

Нравится

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

Чисто в теории:

- код на сервере помимо sql-вставок, генерирует сигнал по web-socket, что изменена запись

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

Чисто в теории:

- код на сервере помимо sql-вставок, генерирует сигнал по web-socket, что изменена запись

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

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

Вопрос:

Как при построении бизнес процесса реализовать следующую задачу: необходимо создать активность через 5 дней от указанной даты в карточке Проекта (это поле мы добавили с отображением только даты), время начала Активности должно быть текущее. Элемент создания активности используем "Открыть страницу редактирования", в поле "Начало" используем формулу: [#Читать дату принятия документов налоговой.Первый элемент результирующей коллекции.Дата принятия документов налоговой#].AddDays(5). +5 дней система добавляет, но текущее время система не подставляет, подскажите как это можно реализовать? По умолчанию время выполнения этой активности 30 минут. Версия 7.11.2

Ответ:

В ходе процесса элемент Добавить данные выполняется именно в тот момент, когда процесс до него доходит. Таким образом изменяя поле в Активности добиться создания Активности через некоторое время не удастся. Необходимо

- создать параметр прцоесса типа целое, например, Seconds

- установить в этот параметр с помощью элемента Формула знаечние : ([#Читать данные 1.Первый элемент результирующей коллекции.Крайний срок#].AddDays(5)-[#Системная переменная.Текущее значение даты и времени#]).TotalSeconds   //где крайний срок - Ваше поле даты

- перед элементом Добавить данныеустановить таймер, который ожидает Seconds секунд

- в элементе Добавить данные аткивности в поле Начало указывать текущие дату\время (на момент выполнения элемента это будет актуальная дата), в завершение - текущая дата\время + 30минут.

Изображение удалено.

Нравится

Поделиться

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

Вопрос:

Как добавить поля на преднастроенную страницу?

Ответ:

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



Более подробно процесс работы с преднастроенной страницой описан на Академии: https://academy.terrasoft.ru/documents/technic-bpms/7-12/element-proces…

Нравится

Поделиться

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