Процесс запускается по конкретному контакту

Задаётся вопрос пользователю 

Открывается страница редактирования (тек.контакт) 

После чего нужно проверить добавил ли пользователь *Дату создания контакта (Для чего и собственно открывается страница редактирования)

Пробовал через условный сравнить значение  (Допущена ошибка в формуле: Используется недопустимый оператор) **Естественно ожидал)))

Вопрос в том, что как можно создать что-то похожее на логическое если (Если Дата заполнена--Ю процесс останов) если нет открыть страницу редактированияИзображение удалено. 

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

Нравится

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

вы сравниваете число и дату, вот вам и ошибка, когда сравниваю дату все ок, и не проверяйте пустоту даты сравнением  == или  != , вам надо проверять больше ли она минимально возможной даты DateTime.MinValue

вы сравниваете число и дату, вот вам и ошибка, когда сравниваю дату все ок, и не проверяйте пустоту даты сравнением  == или  != , вам надо проверять больше ли она минимально возможной даты DateTime.MinValue

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

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

Например позволит просто определить находится ли отметка времени в прошлом или будущем.

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

 

P.S.

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

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

Добрый вечер!

 

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

Разработчики рассмотрят ее в одной из будущих версий.

 

Спасибо, что делаете наш продукт лучше!

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

Всем доброго времени суток, хотелось бы немного прояснить вопрос.

Пробую вызывать веб-сервис из бизнес-процесса.

Через Postman, прохожу аунтентификацию через .../ServiceModel/AuthService.svc/Login, далее вызываю .../0/odata - получаю перечень таблиц и статус 200, то же самое через адресную строку браузера.



Но если вызывать этот веб-сервис через бизнес-процесс, кроме HTTP Error 401.1 - Unauthorized или Invalid user name or password не получил.

В бизнес-процессе пробовал вызывать сначала веб-сервис .../ServiceModel/AuthService.svc получать через параметры процесса BPMCSRF  - без результата.

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

Через веб-сервис .../0/ServiceModel/EntityDataService.svc/  получаю статус 200 и ответ в виде XML.

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

Суть вопроса почему .../0/odata возвращает статус 200 и данные через постман и браузер, а через бизнес-процесс возращает ошибку.

Приложение on-site. 

 

Нравится

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

Сергей,

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

Олег Нефедьев, спасибо.

Этот момент описан в документации, с аутентификацией с логином и паролем и в константах (пароль в зашифрованой константе) и в явном виде не работало, пробовал разные комбинации.

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

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

Нравится

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

Добрый день!

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

Для работы с мультиязычными email-сообщениями Вам необходимо выполнить в системе следующие действия:

1. Настроить языки общения с клиентами. Это язык, на котором контакту будут отправляться email-уведомления. Для указания языка общения и формирования мультиязычных шаблонов используются значения справочника [Языки общения].

 

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

Если необходимо добавить в шаблон несколько языков, повторите шаги 3 и 4 для каждой локализации.  В результате на странице шаблона появится несколько вкладок для формирования писем на выбранных языках.

При отправке, язык определяется следующим образом:​​​​​​​

1. Заполнен ли на странице контакта язык общения.

•Если поле заполнено, то адресату будет отправлен шаблон на его языке общения.

•Если поле не заполнено, то будет выполнен переход на следующий шаг проверки.

2. Заполнена ли системная настройка “Язык сообщений по умолчанию”.

•Если системная настройка заполнена, то адресату будет отправлено письмо на языке, установленном в системной настройке.

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

Более подробно с логикой работы мультиязычных шаблонов Вы можете ознакомиться на Академии: https://academy.terrasoft.ru/documents/base/7-16/kak-nastroit-otpravku-…

 

 

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

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

Нравится

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

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

Виктор, объект раздела «Библиотека процессов» строится по view VwProcessLib, поле «Активен» там вычисляется так:

,[Enabled] =
	CAST(CASE
		WHEN EXISTS (
			SELECT 1
			FROM [SysProcessDisabled]
			WHERE
				[SysProcessDisabled].[SysSchemaId] IN([VwSysSchemaInWorkspace].[Id], [VwSysSchemaInWorkspace].[ParentId]))
			THEN 0
		ELSE 1
	END AS BIT)

То есть для переноса признака неактивности нужно перенести на новое место записи в объекте «Деактивированные процессы» (SysProcessDisabled).

 

Или создать на новом месте записи скриптом вставки в эту таблицу, как описано тут, и прикрепить скрипт к пакету.

Зверев Александр пишет:

То есть для переноса признака неактивности нужно перенести на новое место записи в объекте «Деактивированные процессы» (SysProcessDisabled)

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

Владимир, насколько понял, у Виктора не переносится именно признак.

Или Вы хотите сказать, что деактивация вручную меняет что-то помимо него?

Зверев Александр пишет:

Владимир, насколько понял, у Виктора не переносится именно признак.

Или Вы хотите сказать, что деактивация вручную меняет что-то помимо него?

Нет, я перепутал с DCM. Это в кейсах приходится скриптами признак менять 

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

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

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

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

PROCESS_ENGINE_SERVICE_NAME: "ServiceModel/ProcessEngineService.svc",
...
		_runProcessOld: function(processName, parameters, callback, scope) {
			let queryString = "";
			if (parameters) {
				const queryItems = _.map(parameters, function(value, name) {
					return name + "=" + value;
				}, this);
				queryString = "?" + queryItems.join("&");
			}
			this.callService({
				serviceName: this.PROCESS_ENGINE_SERVICE_NAME,
				methodName: processName + "/RunProcess" + queryString
			}, callback, scope);
		},

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

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

Добрый день!

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

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

То есть аналитик смог бы настраивать текст и варианты ответов. И после этого элемента использовать условные потоки.

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

Елизавета, уже зафиксирована идея «Возможность открывать страницы по процессу/показывать сообщения как всплывающее/модальное окно / уведомление (не путать с панелью уведомлений)». 

 

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

Отличие от модального будет в том, что такое окно будет в верхней части экрана и его можно будет по кнопке «Закрыть» свернуть в правую панель, чтобы дать ответ и продолжить выполнение позже.

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

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

Здорово, что идея уже зафиксирована, будем очень ждать реализации.

Елизавета, такого на уровне элементов БП, а не написанием кода на странице, пока нет, идея заведена.

Караваева Елизавета Дмитриевна,

Елизавета, по ссылке есть подходящий темплейт

https://marketplace.creatio.com/template/popup-element-business-process…

Константин, спасибо за уточнение. Тогда уже лучше его же отсюда.

Константин, спасибо большое, посмотрю, как работает!)

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

Спасибо!

 

Елизавета, доступно более продвинутое решение в виде дополнения на Маркетплейс. Оно позволяет показать окно, отобразить набор кнопок, принять результат и организовать дальнейшее ветвление процесса в зависимости от выбора пользователя. https://marketplace.terrasoft.ru/template/deystvie-processa-pokazat-mod…

Дмитрий, спасибо!

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

Добрый день!



Есть задача - добавлять в аудиторию письма (элемент "отправка письма" в процессе) коллекцию получателей (контакты, или их email'ы)

 

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



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



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



Вопрос - каким образом задачу можно решить средствами low-code платформы? :)

Нравится

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

Доброе утро.

 

Средствами low-code можно попробовать реализовать с помощью обработки коллекций данных в бизнес-процессах через многоэкземплярное выполнение элемента [ Подпроцесс ].

Доброе утро.

 

Средствами low-code можно попробовать реализовать с помощью обработки коллекций данных в бизнес-процессах через многоэкземплярное выполнение элемента [ Подпроцесс ].

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

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

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

А теперь заходим в библиотеку процессов и видим что часть процессов не активны:

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

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

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

Алексей, не уверен, что это именно бага.

 

Более того, если процесс деактивирован, но его задать из другого активного процесса как подпроцесс, то он запустится.

 

Такое поведение является штатным, оно закладывалось в архитектуру. Активация-деактивация влияет только но запуск ОСНОВНОГО бизнес-процесса. Если он является подпроцессом другого основного процесса, то ничем не отличается по поведению от любого другого элемента БП. Потому что подпроцесс выполняется В КОНТЕКСТЕ ОСНОВНОГО БП. При выполнении подпроцесса учитывается только признак актуальной версии подпроцесса.

 

Если нужно добавить в выпадающий список фильтрацию по активности, заместите схему SubProcessPropertiesPage и там измените функцию getSchemaListFilter, значение свойства EnabledOnly:

/**
 * Returns schema list filter.
 * @protected
 * @param {Function} callback The callback function.
 * @param {Object} callback.filter Schemas filter.
 */
getSchemaListFilter: function(callback) {
	const element = this.get("ProcessElement");
	const schema = this.get("Schema") || {};
	const parentSchema = element.parentSchema;
	const excludedSchemaUId = schema.value;
	let filter = {
		PackageUId: Terrasoft.formatGUID(parentSchema.packageUId, "B"),
		EnabledOnly: true,//false,
		ExcludedSchemas: [Terrasoft.formatGUID(parentSchema.uId, "B")]
	};
	filter = Ext.apply(filter, element.schemaFilter);
	if (excludedSchemaUId) {
		filter.ExcludedSchemas.push(Terrasoft.formatGUID(excludedSchemaUId, "B"));
	}
	callback(filter);
},

Идею стандартно включить такой фильтр зафиксирую.

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

С версии 7.16 появилась возможность множественного запуска бизнес-процессов через элемент подпроцесс. 

 

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

 

Для этого необходимо создать процесс с двумя элементами: 

1. Элемент [Читать коллекцию] контактов у которых сегодня день рождения

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

2. Элемент [Подпроцесс] в который передать коллекцию контактов которых нужно поздравить.

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

 

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

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

 

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

Нравится

Поделиться

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