Добрый день!

Подскажите, как можно реализовать Логирование кнопки Сохранить и Печать в реестре (v.3.3)? Обработчиков нажатия данных кнопок нет.

Нравится

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

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

Такой возможности нет, события отрабатывают на уровне ядра.

Вы можете запретить Печать и Экспорт данных для всего приложения (за это отвечают системные настройки GridCanPrint и GridCanExport), а в базовый реестр, wnd_BaseGridArea, добавить свои кнопки Печати и Экспорта и в них реализовать логирование.

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

Доброго дня !
Стикнувся з проблемою розміщення полів на сторінці
При додаванні поля на сторінку - воно розтягується на всю сторінку а мені треба щоб вони хоча б на половину звужились так як розміщенні поля вище на лівій стороні(рис.1)

Нравится

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

додаю контейнери наступним чином:
var newAddressControlContainer = bankModuleUtils.getContainerConfig(
'newcontactemploymentinfo-desktop-left-container',
null,
null
);

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

Добрый день!

Часто для контакта есть 2 обязательных к заполнению средства связи (e-mail и мобильный телефон).

Посоветуйте, как в карточке контакта (bpm 7.8) реализовать автоматическое добавление этих пустых средств связи (только с выбранным типом, но не заполнеными номерами)?

Вряд ли тут подойдет БП по сохранению контакта, так как контакт еще не создан.

contact

Нравится

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

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

Можно попробовать вынести поля из объекта контакт и показывать их только при добавлении записи. После сохранения они синхронизируются в деталь.

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

Добрый день!

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

Судя по всему, ID активности для сигнала не обновляется, поэтому он и не отрабатывает.
Подскажите пожалуйста, как решить данную проблему.
Заранее спасибо.

Нравится

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

Как-то подозрительно это выглядит. Я бы там настроил добавление Задачи и открытие ее (открыть карту редактирования, объект "Задача", ИД - ваш из создания задачи) с ожиданием изменения статуса. И тогда не надо париться с сигналами.

p.s. русской версии нету, сорри.

А уж если Вы хотите так, то попробуйте между задачей и сигналом влепить чтение созданной задачи. и в сигнал передавать как-раз прочитанный ид (не уверен, что поможет, но чудеса бывают)

UPD: сделал я такое как у вас, все ок :) только у меня не генерирующий сигнал, а обрабатывающий. Оно во вложении (7.7, чешская локаль)

Я бы вообще поостерёгся от циклов в БП. Не знаю точно, как сейчас, но раньше переход между элементами БП был реализован как рекурсия, что при многократном повторении может вызвать переполнение стека. Конечно, 1-2 вызова ничего не сломают, но стоит это учитывать.

тут по другому не сделать

"Дмитрий Степанов" написал:Я бы там настроил добавление Задачи и открытие ее (открыть карту редактирования, объект "Задача", ИД - ваш из создания задачи) с ожиданием изменения статуса.

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

"Дмитрий Степанов" написал:

UPD: сделал я такое как у вас, все ок :) только у меня не генерирующий сигнал, а обрабатывающий. Оно во вложении (7.7, чешская локаль)

Действительно, пересоздал процесс заново и все заработало:)
В любом случае спасибо за помощь!

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

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

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

Здравствуйте. Создал на кастомной странице поле Terrasoft.DataValueType.TIME

Объявил в атрибутах:
attributes: {
"BreakStart1": {
dataValueType: Terrasoft.DataValueType.TIME
}
}

В дифах:

diff: /**SCHEMA_DIFF*/[
{
"operation": "insert",
"name": "BreakEnd1",
"parentName": "Header",
"propertyName": "items",
"index": 1,
"values": {
"layout": { "colSpan": 12, "column": 12, "row": 1 },
"caption": "Время до",
"contentType": Terrasoft.ContentType.TIME,
"bindTo": "BreakEnd1"
}
}
]

На странице создался комбобокс с дефолтными значениями времени, с шагом 15 минут. (см. скрин)
Вопрос: Как самостоятельно установить этот шаг. Мне нужно 10 минут.

Нравится

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

Олег, за данное поведение класса TimeEdit отвечает свойство interval. По умолчанию данное свойство имеет значение 15. Пример кода:

{
	"operation": "insert",
	"name": "UsrTime",
	"values": {
		controlConfig: {
			className: "Terrasoft.TimeEdit",
			interval: 5
		},
		"layout": {
			"colSpan": 12,
			"rowSpan": 1,
			"column": 0,
			"row": 2,
			"layoutName": "ContactGeneralInfoBlock"
		},
		"labelConfig": {},
		"enabled": true,
		"bindTo": "UsrTime"
	},
	"parentName": "ContactGeneralInfoBlock",
	"propertyName": "items",
	"index": 4
},

Спасибо, Илья. Все получилось. А еще вопрос.

Можно ли в controlConfig: {
className: "Terrasoft.TimeEdit",
interval: 5
},
указать еще какие-нибудь значения? Интересует Показ времени, в раскрывающемся комбобоксе, не за целые сутки, а например с 9.00 по 21.00?

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

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

Нравится

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

Здравствуйте, Олег!

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

В результате при изменении даты:
1) Старый экземпляр процесса завершится
2) Новый экземпляр процесса создастся.

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

А впрочем я вынесу то, что Вы предложили в подпроцесс. Спасибо за идею!

Всегда пожалуйста:smile:

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

Доброго дня!

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

Приведу пример:

1. реакция на событие "брошен товар в корзине" - триггерное письмо с напоминанием о незавершенной покупке.

2. просмотрен товар на сайте, покупка не произошла - через N часа отправка триггерного письма со списком просмотренных товаров, если реакции нет, то через N дня очередное письмо с напоминанием.

При условии, что периодически необходимо менять шаблон письма. Время отправки писем.

Нравится

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

Добрый день!

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

2. Изменение условий (в том числе времени отправки писем) в уже запущенной кампании не рекомендуется в версии 7.8 и более ранних версиях, т.к. это может привести к некорректной работе кампании. В версии 7.9 запланирован ряд работ, направленных на доработку этой возможности.

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

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

Анастасия, спасибо!

А как можно организовать следующий процесс: кампанию создать или все же БП?

Нужно, чтобы контактам, которые начали, но не завершили процесс покупки (оставили товар в корзине), отправлялось письмо с напоминанием через 3 дня, если покупка не произошла, очередное триггерное письмо. Цель этого процесса - совершение покупки.

Правильно ли я рассуждаю:
1. Создана группа контактов "Брошенная корзина". В нее попадают те контакты из bpm, которые оставили товар в корзине.
2. Попавшему в группу отправляется 1е письмо и так далее, пока цель не будет достигнута.
3. Цель достигнута - контакт должен покинуть группу "Брошенная корзина".
4. Процесс должен идти постоянно.

Или можно проще как-то этот процесс организовать?

Екатерина, добрый день.

Для описанного Вами кейса можно построить кампанию со следующими элементами:
1. Аудитория.
2. Первый email (условие перехода к нему - Через Х часов в течение дня)
3. Второй email (условие перехода к нему - Через Х дней в ХХ часов)
и т.д.

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

Однако, тут есть несколько нюансов:
1. Не совсем понятно, каким образом в bpm'online будут определяться контакты, которые соответствуют условиям "Брошенная корзина".
2. Вы писали ранее о смене шаблона и времени отправки писем. Смена шаблона может выполняться, как и было описано ранее. Однако, изменение времени отправки писем нельзя выполнять в запущенной кампании(может привести к некорректной работе кампании).
Необходимо ли изменение времени в описанной Вами кампании?
3. Постоянная отправка напоминаний может быть воспринята клиентом как спам. В связи с этим не рекомендуется выполнять отправку подобных email'ов слишком большое количество раз, через короткий промежуток времени.

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

"Брошенная корзина" - если товар лежит в корзине больше N часов/дней.

Может, вы подскажете, как средствами Bpm Marketing можно определять контакты, которые положили товар в корзину и не покупают его?

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

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

И про спам понятно, вы немного не так меня поняли. Аудитория кампании пополнилась очередным контактом, не завершившим покупку. Триггер с напоминанием сработает через 3 часа. И повторное письмо, если покупка так и не случилась, отправится через 3 дня. И на этом пока все. :)

Екатерина,

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

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

Далее возможно два варианта:
1. Заказы не ведутся в bpm'online, но присутствует событие типа "Оформить заказ" на самом сайте. В таком случае необходимо:

а) Построить динамическую группу в bpm'online, фильтр которой будет выбирать контакты, для которых:
- события сайта по колонке Контакт(существуют). Список существующих событий включает события добавления товара в корзину.
- не существует события создания и оплаты заказа за определенную дату.
в) динамическая группа, указанная в элементе "Достигли цели" содержит фильтр: существует событие сайта "создание и оплата заказа".

2. Заказы ведутся в bpm'online. В таком случае необходимо:

а) построить динамическую группу с фильтром:
- события сайта по добавлению товара в корзину существуют.
- Заказ в bpm'online не существует

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

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

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

Дополнение:

"Архипова Екатерина" написал:Может ли кампания быть запущена постоянно?

Кампания будет пополняться новыми контактами все время, пока она в состоянии "Запущена". Временных ограничений на срок действия кампании не существует.

"Савельева Анастасия Юрьевна" написал:построить динамическую группу с фильтром:
- события сайта по добавлению товара в корзину существуют.
- Заказ в bpm'online не существует

А как новый контакт в такой группе автоматически попадет в аудиторию кампании?

Владимир,

детальнее о добавлении группы в аудиторию кампании Вы можете узнать здесь - https://academy.terrasoft.ru/documents/marketing/7-8-0/kakie-elementy-i…

А имеенно:

"Автоматически, связав с необходимой группой из раздела [Контакты] в области свойств элемента. При этом состав аудитории обновляется автоматически при переходе участников кампании на шаг, следующий за данным стартовым элементом.

Например, если между настройкой кампании и ее запуском прошло какое-то время, в течение которого вы редактировали группы раздела [Контакты], аудитория кампании будет сформирована в соответствии с внесенными изменениями.

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

Доброго дня, Друзья

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

Сервис должен быть интегрирован с интернет-магазином, отслеживать события из интернет-магазина и передавать в BPMOnline информацию об отправленных письмах.

Эти письма должны быть прикреплены в карточку контакта / лида.

Какие лучшие практиве по автоматизации процесса оформления заказа в интернет-магазинах?

Добрый день, Александр!

Судя по всему Вы имеете ввиду функционал работы с Лендингами. Когда пользователь на сайте заполняет определенные поля, в результате в системе bpm`online создается лид, который можно уже квалифицировать и распределить в заказ. Также, есть возможность передавать уже готовые заказы, но это уже делается при помощи протокола Odata через web-services (подробнее здесь https://academy.terrasoft.ru/documents/technic-sdk/7-8-0/protokol-odata)

Maksym Havryliak,

Добрый день!

 

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

 

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

 

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

Вы можете построить в секции фильтр или создать папки для фильтрации кампаний по статусу!

 

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

Попробуйте также создать самое простое письмо с блоком текста. Если ошибка продолжится - рекомендуем обратиться в нашу поддержку, написав письмо на support@creatio.com.

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

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

Добрый день. Мне необходимо чтобы при выборе поля UsrOwnerName автоматически заполнялось поле UsrCompany . правило:http://prntscr.com/blkkhq. В представлении для UsrOwnerName можно выбрать контакт, но UsrCompany не дополняется и вручную нельзя выбрать поле http://prntscr.com/blkl4x. Подскажите как можно решить эту проблему

Нравится

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

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

Уточните, пожалуйста, какой тип у поля UsrOwnerName и на какие объекты ссылаются поля UsrOwnerName и UsrCompany?

Алексей, оба LookUp. usrOwnerName ссылается на объект contact, UsrCompany-на Company

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

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

Добрый день.
На данный момент у контакта основной атрибут «ФИО». Так как ФИО не является уникальным идентификатором (на 70000 записей довольно много Ивановых Сергеев например), а для загрузки основного телефона и дополнительного телефона (средство связи контакта), нужно точно идентифицировать контакт. Для этого мы при импорте в поле «Полное название должности» указываем MSD CRM Id и по нему планирую идентифицировать контакт при импорте «средство связи контакта».
Поэтому нужно временно (на время импорта 1-2 недели) сделать поле «Полное название должности» основным полем.
Как это сделать, и возможно ли?

Нравится

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

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

Это возможно. При этом импорт будет привязывать данные по этому полю. Если значение в нем уникально, то импорт пройдет корректно.
Для решения:
1) Перейдите в конфигурацию
2) Откройте замещающий объект "Контакт". Если замещающего объекта нет, то создайте его.
3) Наведите на название объекта и выберите режим отображения всех свойств
4) Измените значение в поле "Отображаемое значение" на нужное
5) Опубликуйте объект

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

Огромное спасибо.

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

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

Нравится

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

Добрый день!
Покажите диаграмму процесса с таймером и без.

"Зарицкий Олег" написал:

Добрый день!

Покажите диаграмму процесса с таймером и без.

"Медведев Валентин Николаевич" написал:
Зарицкий Олег пишет:

Добрый день!

Покажите диаграмму процесса с таймером и без.

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

bp.jpg
15.59 кб

ой, вообще не разобрать

в процессе используются элементы "Изменить права". Без таймера записи в детали "Изменить права доступа" появляются, с таймером - нет

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

В более ранних версиях элемент "Изменить права доступа" не отрабатывает после элемента "Таймер". Есть два решения:

    • Обновиться на 7.8.0.
    • Использовать элемент "Задание-сценарий" для раздачи прав. В этом элементе необходимо выполнить insert в таблицу Sys[#Object#]Right
Показать все комментарии