Использован элемент БП "Отправить email". Каким образом привязать такого письмо к заказу (активностям)? В более ранних версиях можно было создавать активность вручную через "Добавление данных" и последующим использованием "Действие процесса", где выбирался процесс "Отправить сообщение". Сейчас этот функционал убрали.
Нравится
Здравствуйте, Александр!
Элемент "Отправить email" не создает в системе записей. В версии 770 возможность добавлять активность с типом email и отправлять письмо элементом "Задание сценарий".
Пример реализации можно посмотреть в процессе "Отправить email контакту обращения" в продуктах линейки Service.
Здравствуйте, Александр!
Элемент "Отправить email" не создает в системе записей. В версии 770 возможность добавлять активность с типом email и отправлять письмо элементом "Задание сценарий".
Пример реализации можно посмотреть в процессе "Отправить email контакту обращения" в продуктах линейки Service.
Код используемый в процессе "Отправить email контакту обращения" не работает корректно, при попытке его смоделировать и запустить на кастомном процессе.
Скорее всего, в структуре процесса в параметре Usings не подключены пространства имен, методы которых используются в процессе. Проверьте, пожалуйста.
Если ошибка при публикации сохранится, предоставьте, пожалуйста, скриншот ошибки при компиляции.
Usings добавлены так же как в процессе "Отправить email контакту обращения"
Строки 38-40: в 770 был изменен алгоритм получение userConnection пользователя. Теперь userConnection получается так:
var userConnection = Get<UserConnection>(“UserConnection”);
Строка 37: предполагаю, что элемент процесса "Добавить данные" называется по другому, соответственно в коде Вы обращаетесь к элементу, которого нет на диаграмме.
Строка 37: Элемент переименовывался соответственно. И в коде, и сам элемент, так чтобы они совпадали. Это проблемы не решало.
Попробуйте поискать данный элемент в параметре процесса:
Думаю, элемент, на который ругается не будет отображаться.
Элемент присутствует, но кодом он не подхватывается :confused:
У элемента есть два параметра:
- Caption (Заголовок)
- Name (Название)
В структуре процессов Вы ищите по названию, в элементе Вы также должны обращаться к названию.
Самый простой способ - выделить элемент на диаграмме. Тогда его название выделится в структуре процесса.
AddDataUserTask1 - название элемента в структуре и на диаграме.
AddDataUserTask1 в коде используется тоже самое название, результата это не дает.
Здравствуйте!
Давайте поступим следующим образом - скомпилируйте Ваш процесс. В результате появится ошибка. Предоставьте, пожалуйста, скриншот ошибки и листинг кода +- 50 строк от строки, в которой произошла ошибка (для просмотра исходного кода в диаграмме процесса необходимо открыть меню "Дополнительно" и выбрать пункт "Открыть исходный код")
namespace Terrasoft.Core.Process { using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Drawing; using System.Globalization; using Terrasoft.Common; using Terrasoft.Configuration; using Terrasoft.Core; using Terrasoft.Core.Configuration; using Terrasoft.Core.DB; using Terrasoft.Core.Entities; using Terrasoft.Core.Factories; using Terrasoft.Core.Process; using Terrasoft.Core.Process.Configuration; using Terrasoft.Mail; using Terrasoft.Mail.Sender; #region Class: UsrProcess1MethodsWrapper /// <exclude/> public class UsrProcess1MethodsWrapper : ProcessModel { public UsrProcess1MethodsWrapper(Process process) : base(process) { AddScriptTaskMethod("ScriptTask1Execute", ScriptTask1Execute); } #region Methods: Private private bool ScriptTask1Execute(ProcessExecutingContext context) { var activityId = AddDataUserTask1.RecordId; var userConnection = Get<UserConnection>("UserConnection"); var emailClientFactory = ClassFactory.Get<EmailClientFactory>(new ConstructorArgument("userConnection", UserConnection)); var activityEmailSender = new ActivityEmailSender(emailClientFactory, UserConnection); var entity = new Terrasoft.Configuration.Activity(UserConnection); if (entity.FetchFromDB(activityId)) { entity.SetColumnValue("IsHtmlBody", true); entity.Save(); } activityEmailSender.Send(activityId); return true; } #endregion } #endregion #region Class: UsrProcess1 /// <exclude/> public class UsrProcess1 : Terrasoft.Core.Process.Process { #region Class: ProcessLane1 /// <exclude/> public class ProcessLane1 : ProcessLane { public ProcessLane1(UserConnection userConnection, UsrProcess1 process) : base(userConnection) { Owner = process; IsUsedParentUserContexts = false; } } #endregion #region Class: AddDataUserTask1FlowElement /// <exclude/> public class AddDataUserTask1FlowElement : AddDataUserTask { #region Constructors: Public public AddDataUserTask1FlowElement(UserConnection userConnection, UsrProcess1 process) : base(userConnection) { UId = Guid.NewGuid(); Owner = process; Type = "ProcessSchemaUserTask"; Name = "AddDataUserTask1"; IsLogging = true; SchemaElementUId = new Guid("cb50206d-a0b9-482c-a7df-3310717b43ea"); CreatedInSchemaUId = process.InternalSchemaUId; SerializeToDB = true; } #endregion #region Properties: Public private Guid _entitySchemaId = new Guid("c449d832-a4cc-4b01-b9d5-8a12c42a9f89"); public override Guid EntitySchemaId { get { return _entitySchemaId; } set { _entitySchemaId = value; } } #endregion } #endregion public UsrProcess1(UserConnection userConnection) : base(userConnection) { InitializeMetaPathParameterValues(); UId = Guid.NewGuid(); Name = "UsrProcess1"; SchemaUId = new Guid("62bbfc92-cc55-451a-afc4-a87fd1cb5433"); SchemaManagerName = "ProcessSchemaManager"; SerializeToDB = true; SerializeToMemory = true; IsLogging = true; ProcessModel = new UsrProcess1MethodsWrapper(this); InitializeFlowElements(); } <a href="/system/files/images/10.jpg" class="ts_fancybox"><img src="/system/files/images/10-thumb.jpg" alt="" /></a>
Подобная проблема возникает в любым элементом, попробовал добавить чтение данных, а в коде использовать его имя (ReadDataUserTask1) - пишет, элемент не найден
Здравствуйте!
Пожалуйста, напишите на support@terrasoft.ru - нужно будет удаленно подключаться и анализировать. К сожалению, по коду нельзя определить в чем проблема.
"Бахматов Александр Валерьевич" написал:Использован элемент БП "Отправить email". Каким образом привязать такого письмо к заказу (активностям)? В более ранних версиях можно было создавать активность вручную через "Добавление данных" и последующим использованием "Действие процесса", где выбирался процесс "Отправить сообщение". Сейчас этот функционал убрали.
Добрый день Александр!!!
странно что у вас вообще возникла проблема. В версии 7.7 и 7.8 даже попробовал создал Активность, через добавление данных, и далее через "действие процесса" отправил Email сообщение и все получилось. Нужно анализировать какие зависимости есть у того пакета, где создаете свой бизнес-процесс.