Добрый день! Хотела бы создать такой маршрут (запускающийся с определенной периодичностью),
которой бы считал кол-во обращений в группе,
и руководителю группу отправлял бы письмо по шаблону:
"В вашей группе столько-то ( кол-во) обращений"
Как запускать маршрут с определенной периодичностью понятно
Кол-во обращений в группе считать с помощью сценария на C#
А вот как в шаблон передать параметр - "кол-во обращений", и к нему потом в шаблоне обратиться?
Сейчас в шаблон можно только передать идентификатор конкретного обращения.
вопрос второй какими инструментами инициируете рассылку, или отправку сообщения? где происходит обращение к Шаблону сообщений, на уровне Бизнес-процесса, или на уровне приложения (клиента)? поясните пожалуйста еще данный вопрос. Спасибо!!!
Первый способ
1. Редактируете шаблон сообщения. добавляете требуемый параметр, к примеру "#CountGroupCase#.
2. Создаете новое действие процесса, по образу и подобию как схема действия "FillEmailTemplateUserTask".
3. Редактируете "Сценарий" действия процесса. В конце добавляете строчку
Функцию конечно создаете заранее внутри Нового Действия процесса или Отдельным сервисом.
4. Изменяете существующий бизнес-процесс, удаляете старое действие "Обработать шаблон письма с макросами" и добавляете на процесс новое созданное действие процесса.
Второй способ
Подсмотреть в схему "RegistrationHelper" и создать свои функции по обработке и замещению Шаблона, отправки почты.
Создала новое действие процесса, по образу и подобию как схема действия "FillEmailTemplateUserTask"
Отредактировала "Сценарий" действия процесса. В конце добавила строчку
UpdateConsts("#CountGroupCase#", "5");
Вместо функции пока константа - для проверки вывода.
Отредактировала шаблон сообщения - добавилатребуемый параметр "#CountGroupCase#.
Вот так вот [#CountGroupCase#]
При формировании письма по шаблону в макрос #CountGroupCase# в итоге ничего не подставляется.
То есть он так и выглядит в результате - [#CountGroupCase#]
Более того, в самом шаблоне есть уже какие-то предустановленные макросы - хотела на них проверить подстановку таких макросов
А они оказываются тоже не работают почему-то.
"Татаровская Дарья" написал:Создала новое действие процесса, по образу и подобию как схема действия "FillEmailTemplateUserTask"
Добрый день Дарья!!!
а новое действие, что создали на бизнес-процессе разместили, т.е на бизнес-процессе вы должны были удалить старое действие "Обработать шаблон письма с макросами" и добавить свое новой действие на схему бизнес-процесса. После выполнить публикацию бизнес-процесса, и проверить работоспособность. Вы так сделали?
очень интересный инцидент попался :) У меня все работает, у вас нет. Мистика. Расскажу как я делал.
1. Я создал новое действие процесса FillEmailTemplateUserTask, назвал его MpoFillEmailTemplateUserTask. Имя новому действию присвоил "Обработать шаблон письма с макросами (Customer), чтобы при подборе в Бизнес-процессе можно было быстро найти и не перепутать "Действия".
В конец "сценария" нового действия добавил тестовый код:
UpdateConsts("#CountGroupCase#", "5");
2. Далее я создал Шаблон в котором просто указал один параметр "#CountGroupCase#", Сохранил его. Дал шаблону название.
3. Чтобы воспроизвести все в реальной ситуации, решил клонировать бизнес процессы "SendEmailToCaseContactProcess", "IncidentManagement".
4. в первом клонированном бизнес-процессе "SendEmailToCaseContactProcess", под названием "MpoSendEmailToCaseContactProcess" и именем "Отправка email сообщения контакту обращения (customer)", я удалил элемент бизнес процесс "FillEmailUserTask" и добавил свое
"пользовательское действие процесса", под названием "Обработать шаблон письма с макросами (Customer)", Входящие параметры действия - RecordId, TemplateId, SysEntitySchemaId, заполнил как было в исходном процессе. Соединил связи между элементами процесса и опубликовал его.
5. во втором клонированном бизнес-процессе "IncidentManagement" , под названием "Процесс управления инцидентами (customer), у элемента процесса "SubProcess4", я изменил связь подпроцесса с "Отправка email сообщения контакту обращения" на "Отправка email сообщения контакту обращения (customer)". Во входящем параметре "TemplateId" - указал ссылку на свой созданный новый шаблон с единственным параметром. Все сохранил и опубликовал
После я исполнил новый бизнес-процесс "Процесс управления инцидентами (customer)" дошел до момента отправки уведомления, и посмотрел что мне придет на почту. Пришло письмо с цифрой "5" в теле письма.
Вот теперь думаю чтобы уже голову не ломать. Поделитесь своими бизнес-процессами Дарья. Я их из MD файлов загружу себе и попробую через дебаггер найти где спотыкается бизнес-процесс и из-за чего у вас не происходит замена параметра.
Добрый день!
Да, конечно
Во вложении - действие и процесс.
Скажите, пожалуйста, а какая у вас версия bpm?
У вас отрабатывают в шаблоне вот такие вот предустановленные макросы(которые в шаблонах предлагаются во всех)
У меня Дарья как у мамонта :smile: старая версия ITIL еще первую 7.6 когда раздавали, я ее скачал и после этого не обновлял. Недавно запрашивал актуальные версии, вот обновлюсь сегодня и уже завтра с утра, посмотрю на ваши процессы. Сегодня я просто физически не осилю. Очень много было умственного процесса. Поэтому если терпит до завтра, то посмотрю на ваши процессы обязательно с самого утра.
Получилось решить данную задачу другим способом:
Вычислять кол-во обращений, записывать в параметр.
И уже этот параметр указывать для поля "Тело активности" в элементе добавление данных (добавление данных письма)
В 7.6 из Активностей пропали e-mail'ы. Да, в CTI-панели появилась замечательная функциональность по разборке входящих писем. Однако крайне недостаёт раздела e-mail (отдельно или в составе Активностей) с возможностями фильтрации и прочими.Предлагаю вернуть (создать) такой раздел в bpm'online.
Все Email хранятся в таблице Activity (объект Активность). Аналитику по входящим email построить возможно. Для этого необходимо строить аналитику по объекту "Активность" с фильтром Тип = "Email".
Улучшение функционала работы с почтой планируется, однако пока что общей картины как будет выглядеть работа с почтой нет, поэтому мы открыты для предложений. Пока что рекомендую создать свой раздел на основании существующего объекта "Активность" и выводить в этот раздел записи с типом "Email".
Добрый день! В разделе Обращения в ITIL есть деталь Активности.
На данной детали при нажатии на кнопку Добавить появляется
выпадающий список: "Добавить задачу" или "E-mail"
Подскажите, пожалуйста, в какой схеме какого пакета реализован вызов данного выпадающего списка.
В схеме CaseActivityDetail не нашла подобного функционала.
Дарья, сам механизм находится в схеме BaseGridDetailV2, но Вы не сможете вносить туда модификации, да и не надо, в принципе.
Вы можете воспользоваться стандартными средствами работы СРМ: откройте мастер раздела "Активности", добавьте новую карточку редактирования для нужного типа, сделайте дизайн карточки, сохраните, выполните команду flushall в командной строке Redis Client. Предварительно внесите тип в справочник "Типы активности".
Этих действий достаточно.
Добрый день!
Но я не планировала делать новую карточку редактирования для нужного типа )
Я бы хотела внести изменения в начальные значения для существующего типа e-mail
При нажатии на действие "e-mail" в детали Активности в разделе Обращения хотела бы? чтобы в поле "Кому" подставлялся определенный адрес ( не конкретный адрес, а зависящий от данных в обращении).
Возможно ли такое?
В связи с этим и спрашивала, где находится вызов этих действий, чтобы найти далее какая карточка вызывается при нажатии на действие e-mail
Извините, не понял саму суть задачи. Что значит "чтобы в поле "Кому" подставлялся определенный адрес"?
Там байндинг происходит автоматически на открытие карточек AddTypedRecordButton => values => menu => items = >
Добрый вечер!
Спасибо, я в принципе, получила ответ на свой вопрос.
При нажатии на действие "Email" вызывается обычная карточка ActivityPage, но только типизированная с типом e-mail
соответственно, те изменения, которые я хочу произвести ( заполнение некоторых значений по-умолчанию при нажатии на "email" в детали) необходимо делать в схеме CaseActivityDetail.
Просто я почему-то предположила, что здесь какая-то другая схема для e-mai участвует, и пыталась ее найти, но оказывается схема та же самая CaseActivityDetail
Кстати, вопрос как раз по теме - каким образом оттуда удалить лишний пункт? Дело в том, что при переезде с облачной версии на серверную система заново создала типы контрагента Конкурент, и он задвоился в этом выпадающем списке. Справочник типов-то мы вычистили, а вот этот пункт остался ..
Судя по описанию задачи необходимо удалить дублирующийся пункт “Конкурент” кнопки добавить в разделе Контрагенты. В таком случае следует удалить ненужные дубли в базе данных в таблицах : SysMuduleEdit, SysMuduleEditLcz. Предварительно рекомендуем сделать копию базы данных.
В базовой версии приложения 7.х для поле «E-mail» стоит проверка того, чтобы после точки количество символов было от 2 до 4 (например, mailtest@yandex.ru или mailtest@gmail.com).
На данный момент можно изменить проверку, чтобы была, например, от 2 до 5 знаков, но, тогда хотелось бы отметить следующее, что в данное поле можно будет вводить не настоящие (не валидные) электронные адреса.
Если все таки необходимо изменить диапазон, то алгоритм реализации будет следующим:
Перейти в раздел «Конфигурация»;
Добавить «Замещающий клиентский модуль» (Рис. 1) и указать в поле «Родительский объект» - «EmailHelper» (Рис. 2);
Рис. 1
Рис. 2
Далее необходимо в разделе «Конфигурация» открыть родительский объект «EmailHelper» и скопировать весь код;
В замещенный объект вставить ранее скопированный код;
Далее в строке:
var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
изменить диапазон проверки с 2 до 4 на желаемый (выделено черным). Например, с 2 до 10 символов (Рис. 2).
И сохраняем изменения объекта (Рис. 3). В результате должна возникать сообщение, что изменения успешно сохранены;
Как с бизнес-процесса отправить предварительно созданный e-mail шаблон. При попытке через действие отправить e-mail ничего не происходило. Нашла пост в котором было описание изменение скрипта действия https://community.terrasoft.ua/blogs/9899, но это не решило проблему.
Файлы БП прилагаются.
Спасибо за Ваше обращение. Мы зарегистрировали его в Службе технической поддержки и назначили специалиста, который сможет Вас компетентно проконсультировать по данному вопросу.
Давайте сначала.
У меня есть шаблон сообщения, который мне нужно отправить, например Прайс-лист.
Я добавляю действие отравить e-mail и заполняю карточку действия: тему, выбираю шаблон.
У меня есть макрос обращения в письме (с карточки контактов),e-mail адрес берется со средств связи контрагента. Какой набор данных для макросов нужно выбрать : контрагент или контакт. Это первый вопрос.
На второй вкладке я добавила параметр AccountID, так как по нему и происходит фильтрация.
Вопрос номер два, заполнив карточку отправки по e-mail и не внося каких либо изменений в скрипт не бп не будет работать?
На счёт скрипта от Дмитрия.
Объясните,пожалуйста, какие данные я должна вставить\заменить в этом скрипте.
Имеется ввиду, что вместо элемента "Отправка Email" Вы можете использовать элемент скрипт и отправлять письма через код.
Вам необходимо:
1) Указать TemplateID - это идентификатор шаблона сообщения.
Его Вы можете узнать, сделав запрос к таблице tbl_MailTemplate или выполнив запрос sq_MailTemplate из конфигурации Terrasoft.
2) AccountEmailAddress - почтовый адрес.
3) RecordID - идентификатор контрагента.
Его Вы можете узнать, сделав запрос к таблице tbl_Account или выполнив запрос sq_Account из конфигурации Terrasoft. Либо же получив любым другим образом из кода.
Дело в том, что в элементе БП "Отправить Email" в качестве получателя можно указать лишь Контакта, но не контрагента (на вкладке элемента "Контакты" можно выбрать Контакта из справочника либо передать параметр с идентификатором Контакта).
Реализация обусловлена бизнес-логикой (контактными лицами являются сотрудники контрагента, но не сам контрагент).
Потому, действительно, Вам необходимо использовать, как говорит Дмитрий, элемент Скрипт для отправки Email непосредственно контрагенту.
Пример обработки события OnExecute элемента Скрипт:
function Item3OnExecute(ScriptItem, IsComplete){
TemplateID ='{47DF8DC2-71E8-4EF6-A7CA-AFF599F8B172}';//задаем идентификатор шаблона (можно посмотреть в sq_MailTemplate)
var Template = GetTemplateData(TemplateID, true);
var AccountSendResult = SendEmailByTemplate(Template, {
RecordID:'{E308B781-3C5B-4ECB-89EF-5C1ED4DA488E}',
Address:'support@terrasoft.ru', AutoSend:true, Silent:true});}
Только в качестве RecordID и Address подставляйте свои параметры.
В наше время печатные формы (счета, предложения, другие документы) всё чаще не печатаются, а высылаются сразу же в электронном виде на e-mail.Поэтому предлагаю добавить возможность не просто открывать печатную форму в виде pdf, а сразу формировать e-mail контакту с приложением в виде этого pdf
Спасибо, что помогаете нам развивать и улучшать наши продукты. Ваша идея принята для анализа аналитиками проектного офиса и будет рассмотрена возможность ее реализации в одной из последующих версий программного продукта
Очень необходимая функция при работе с субподрядчиками. По каждому обращению сразу отправлять заполненный акт выполненных работ. Сокращает писанину, ошибки, время. Улучшаться отчетность.
Предлагаю фиксировать на детали активности типа e-mail связанные с ней другие e-mail'ы:для входящего e-mail'а это будут ответные или перенаправленные e-mail'ы.
для исходящего - это входящие e-mail'ы.
Это позволит отслеживать, что было отвечено (и было ли что-то отвечено) на каждый e-mail.
Владимир, хочу уточнить правильно ли я понимаю идею.
Вы это видите как дополнительную деталь в разделе [Активности]? Например, деталь [Связанные активности], а в ней уже будут отображаться связанные с записью раздела письма.
Изначально идея заключалась в том, чтобы контролировать, на какие e-mail'ы был дан ответ, а на какие еще нет. Затем захотелось еще и быстро увидеть, что же было отвечено.
BPM 5.4.0.317 Когда пытаюсь сделать рассылку, на кнопку "Запустить рассылку", то письма не отсылаются, а появляется ошибка "The server rejected the specified sender email address. The server responded: 530 5.7.1 Client was not authenticated". Точно такая же ошибка на отправку обычного письма.
Все параметры для отправки почты занесены в системные настройки. На всякий случай, пользователю делающему рассылку указал тот же e-mail, что и в настройках.
Скрипт
var Smtp =new SmtpClient(GetSysSettingsValue("SmtpHost"), Convert.ToInt32(GetSysSettingsValue("SmtpPort")));
Smtp.Credentials=new NetworkCredential(GetSysSettingsValue("SmtpUserName"), GetSysSettingsValue("SmtpUserPassword"));
Smtp.DeliveryMethod= SmtpDeliveryMethod.Network;
Напишу тут.
Андрей, помните у нас после этой письмо отправлялось, но возникла другая ошибка.
Дело в том, что в скрипте smtp после отправления письма bpm пытался найти status(состояние)
активности с кодом Finish и кое-где напрямую id
Но с таким id и кодом "Finish" не было в базе (уж не знаю наши молодцы удалили или же terrasoft забыл добавить), но изменил "Finish" на "Done" и этот id поменял на другой и теперь все в порядке.
Здравствуйте! Возник вопрос автополучения (автоматизированного получения) и разбора электронной почты (электронных писем).
Возможно ли в обход аутлука (outlook) получать корреспонденцию с "общественного" (то есть обезличенного) адреса, для дальнейшего автоматического разбора и пересылки требуемым адресатам?
Не хотелось бы иметь виртуальный рабочий стол, где постоянно будет крутиться запущенный террасофт и аутлук, которые будут выполнять функцию получения почты.
Идею с тем что это лучше это делать на почтовом сервере ПОЛНОСТЬЮ поддерживаю, но к сожалению не рассматриваю :-( хотя бы потому что хочется просто сирээмную логику держать в сирээме :-)
"AlexLS" написал:Может есть функционал sql-сервер для обработки входящих (аналог database mail для отправки)?
А что мешает сделать свою (или найти open source) библиотеку для получения почты через pop3, и использовать ее на клиенте?
Или если очень хочется реализовать получение и сохранение в базу на sql сервере гуглим по словам "CLR read email" плюс реализация и злые, но по делу, комментарии тут
Данные из Terrasoft XRM используются для рассылки приглашений, поздравлений, уведомлений. Знаем, есть интеграция с Outlook. Но это не то (да и только один клиент, ведь есть Thunderbird, ClawsMail, тот же TheBat! в конце концов). Нужно, очень нужно, обеспечить интеграцию с известными средствами рассылки электронной почты. Интересует интеграция с:http://mailchimp.com/
http://www.unisender.com/