Вопрос:

Можно ли настроить отправку email в кейсе так, чтобы присылалась ссылка на запись, по которой стартовал кейс? 

Ответ:

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

Алгоритм построения процесса:

0. Создать параметр процесса с типом Уникальный идентификатор, условно, OpportunityId.

1. Создать параметр процесса с типом Текст, условно, Body.

2. Читать данные Продажа, id = Параметр процесса.OpportunityId

3. Элемент Формула, заполнить поле Body, заполнить значением из вложения, подставив адрес приложения и вставив параметр Чтения данных.

4. Отправить Email, режим отправления = Произвольное письмо, в редакторе сообщения добавить блок Текст и с помощью молнии вставить параметр процесса.

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

5. Сохранить процесс

6. В Кейсе раздела добавить шаг подпроцесс, в Параметры процесса OpportunityId = Колонка основной записи.Id

Нравится

Поделиться

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

Вопрос:

Пытаюсь настроить БП – при создании лида пользователь который создает лид должен быть и ответственным автоматически.

Никак не могу настроить.

Ответ:

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

1. Сигнал на добавление записи, объект = Лид, фильтр : поле Создал заполнено

2. Читать данные, объект = Лид, фильтр : id = Пункт1.id записи, читать значение колонки Создал

3. Изменить данные, объект = Лид, фильтр : id = Пункт1. id записи, установить значения : Ответственный = Пункт2. Создал

Нравится

Поделиться

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

Вопрос:

После выбора действия "Решено" в историю Обращения добавляется письмо, которое отправляется Клиенту, с просьбой оценить обращение. Это письмо видно всем пользователям системы, и они могут по ошибке оценить обращение вместо Клиента. Можно ли как-то блокировать в истории обращения такое сообщение, чтобы оценить работу могли только клиенты?

Ответ:

Для решения данной бизнес цели базовыми средствами можно сделать следующий бизнес-процесс:

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

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

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



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



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

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



Рекомендуется перед внесением изменений запросить у тех. поддержки создание резервной копии базы данных. 

Нравится

Поделиться

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

Вопрос:

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

Ответ:

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

1. Элемент "Выполнить задачу "

2. Читать объект Активность, где id = Выполнить задачу.Id

3. Привязать процесс к объекту.

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

Нравится

Поделиться

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

Коллеги, доброго дня!

Может, кто-то сталкивался с подобной задачей, прошу подсказать ньюансы:

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

2. При реализации нового функционала я создал новую версию работающего процесса в пакете-наследнике от пакета с процессом и пакета с новым функционалом.

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

3. Сейчас я должен перенести новую версию процесса в рамках обновления, но немного паникую: не нужно ли каких-либо дополнительных действий с моей стороны?

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

Кто-нибудь сталкивался? как прошло?

Нравится

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

См. статью «Версионность процессов»:

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

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

При сохранении изменений в процессе выполняется проверка:

 

  1. есть ли запущенные экземпляры процесса;

  2. доступен ли для изменений пакет, в котором находится процесс;

  3. выполнялся ли экспорт бизнес-процесса.

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

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

Вопрос:

Имеется задача поздравлять по Email сотрудников и клиентов с днем рождения. Подскажите пожалуйста, как через бизнес процесс решить? 

Ответ:

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

Для таких целей в БП целесообразней использовать элемент Задание - сценарий. Примеры работы с объектами в скрипте можно найти на Академии, нужный в данной задаче объект - ContactAnniversary .

В рамках же скрипта можно выполнять и отправку письма для коллекции контактов, пример отправки по созданному id активности письма можно найти в базовом процессе "Отправка email сообщения контакту обращения" пакета Case.

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

Нравится

Поделиться

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

Коллеги, доброго дня!

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

Каким образом можно настроить аналогичную автоматизацию для пользовательского элемента бизнес-процессов? Либо где посмотреть, как это уже реализовано для элемента "Создать задачу"?

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

Нравится

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

Я не совсем понимаю, что требуется, если честно, но попытаюсь помочь :)

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

Добрый день!



Пример реализации данной логики в элементе "Выполнить задачу" Вы можете посмотреть открыв исходный код элемента "ActivityUserTask".

А можно чуть поподробнее, какой именно метод отвечает за указанный функционал?

Анна Журавель пишет:

Добрый день!

Пример реализации данной логики в элементе "Выполнить задачу" Вы можете посмотреть открыв исходный код элемента "ActivityUserTask".

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

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

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

Ну и соотвественно обратно снимать, если это условие перестает соблюдаться.

Каким способом лучше это сделать?

Спасибо!!)

 

 

 

Нравится

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

Бп. А в странице к описанию детали влепить subscriber и делать loadEntity (грубо говоря — аналогично стандартной логике в заказе)

Бп. А в странице к описанию детали влепить subscriber и делать loadEntity (грубо говоря — аналогично стандартной логике в заказе)

Можно и триггером в базе вместо БП. Особенно, если на деталь льют записи извне в обход движка EntitySchemaQuery.

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

Трефилов Павел Сергеевич,

ContactAnniversary: {
	schemaName: "ContactAnniversaryDetailV2",
	filter: {
		masterColumn: "Id",
		detailColumn: "Contact"
	},
	subscriber: {
		"methodName": "sendSaveCardModuleResponse"
	}
}

Вот, допустим, из базовой страницы контакта. Метод sendSaveCardModuleResponse располагается в BasePageV2. Встаньте туда дебаггером через консоль и попробуйте поудалять/подобавлять записей в деталь "знаменательные события". При каждом изменении чего-нибудь в детали - тут же отрабатывает метод. В идеале в нём же делать this.reloadEntity (чтобы обновились поля карточки, которые были перерасчитаны по бп)

Варфоломеев Данила,

Данила, спасибо огромное! Сделали. 

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

Елена К,

Ничего адекватного, кроме переделки всех пересчётов под клиентский esq, посоветовать в таком случае не могу (ну за исключением костыля - отправки сообщения по websocket в конце бп).

Варфоломеев Данила,

Да, так и сделали. Спасибо вам!!)

 

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

Вопрос:

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

Сигнал изменение записи в объекте "сеанс пользователя". Фильтруем по времени входа больше 6 вечера, меньше 9 утра. Читаем данные — отправляем на емейл. По этому сигналу БП не срабатывает. Возможно выбрал не тот объект?

Ответ:

В стартовом сигнале задано условие на изменение записи. Необходимо изменить данное условие на "Добавление записи".



Обратите внимание, поле "завершение сеанса" будет заполняться только в случае, если пользователь корректно вышел из системы 

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

Нравится

Поделиться

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

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

Выполняем нумерацию собственного объекта (сметы).

Создали настройку, в которой хранится маска номера и текущий номер последнего созданного объекта (последний номер нужен еще для других целей).

Объект создается из другого через бизнес-процесс и при его создании необходимо не просто считать  настройку (текущий номер объекта), но и добавить к значению системной настройке единицу.

Подскажите пжлст можно ли это сделать через БП... городить код не хочется).

ЗАранее спасибо!)

Нравится

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

Из кода изменить настройку можно так, если дело касается общих настроек или значений по умолчанию:

Terrasoft.Core.Configuration.SysSettings.SetDefValue(userConnection, "SettingName", value);

Для текущего пользователя устанавливается так:

Terrasoft.Core.Configuration.SysSettings.SetValue(userConnection, "SettingName", value);

Для конкретного пользователя или группы:

Terrasoft.Core.Configuration.SysSettings.SetDefValue(userConnection, sysAdminUnitId, "SettingName", value);

Во 2-м и 3-м случаях настройка должна быть персональной, иначе словите исключение.

Добрый день!



Можно считать настройку с текущим номером, дальше через элемент "формула" получить этот номер и добавить к нему 1. А дальше номер можно передавать в элементы добавить данные или изменить данные, в зависимости от ситуации. 

Евгений Манько,

Евгений,  а каким элементом процесса записать полученный рассчитаный номер обратно в системную настройку?  Через "изменить объект"? или есть более простой способ?). Спасибо!

Есть готовый элемент GenerateSequenseNumberUserTask, предназначенный именно для этого. Вот разные примеры нумерации.

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

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

Из кода изменить настройку можно так, если дело касается общих настроек или значений по умолчанию:

Terrasoft.Core.Configuration.SysSettings.SetDefValue(userConnection, "SettingName", value);

Для текущего пользователя устанавливается так:

Terrasoft.Core.Configuration.SysSettings.SetValue(userConnection, "SettingName", value);

Для конкретного пользователя или группы:

Terrasoft.Core.Configuration.SysSettings.SetDefValue(userConnection, sysAdminUnitId, "SettingName", value);

Во 2-м и 3-м случаях настройка должна быть персональной, иначе словите исключение.

Бершеда Д. Н. Спасибо!!!)

Бершеда Д. Н.,

Не получается настроить элемент процесса скрипттаск так, чтоб сохранить значение параметра процесса в системную настройку (общую, не персональную).

 

Попытался вот так:

var userConnection = context.UserConnection;

String IDToken = Get<String>("IDToken"); 

Terrasoft.Core.Configuration.SysSettings.SetDefValue(userConnection, "System ID Token", IDToken);

return true;

 

Никакой ошибки не дает, компилируется, но при выполнении процесса этот скрипттаск не отрабатывает - процесс на нем и останавливается.

 

Похоже, я что-то делаю сильно не так. Прошу развернуто привести пример кода скрипттаска. Возможно что-то еще нужно сделать - добавить в зависимости пакета или в параметрах/настройках бизнес-процесса, чтоб SetDefValue работал.

 

Версия платформы - текущая. Пробую на триальном 14-дневном сайте.

Добрый день.

Скорее всего вы передаете неправильный код системной настройки.

Пример рабочего скрипт-таска:

string settingCode = "SystemIdToken"; // код системной настройки
string settingValue = "Test2"; // новое значение
Terrasoft.Core.Configuration.SysSettings.SetDefValue(UserConnection, settingCode, settingValue);
return true;

Результат:

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