Creatio development guide
PDF

Адаптация элемента кампании для работы по триггерам

Glossary Item Box

Общие сведения

Начиная с версии 7.12.4 в bpm'online добавлен новый элемент кампании — [Добавить по триггеру]. При этом изменена логика работы элементов с аудиторией кампании: в момент срабатывания триггера будет запускаться синхронный фрагмент кампании.

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

Чтобы пользовательский элемент попал в синхронный фрагмент и корректно срабатывал как при плановом выполнении, так и по триггеру, необходимо внести в серверную часть ряд изменений:

  • Указать элементу дополнительный тип — CampaignSchemaElementType.Sessioned.
  • Исполняемый элемент для пользовательского элемента кампании (наследник класса CampaignProcessFlowElement) должен работать используя базовое свойство CampaignAudience. Все операции по определению аудитории, установке признака [Шаг выполнен] должны осуществляться через объект в свойстве CampaignAudience c типом ICampaignAudience.

Описание примера

Адаптировать элемент маркетинговой кампании для отправки СМС сообщений пользователям, создание которого описано в статье "Добавление пользовательского элемента кампании".

Алгоритм выполнения примера

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

ВАЖНО

Перед выполнением примера выполните шаги 1-6 из статьи "Добавление пользовательского элемента кампании".

Измените схему исходного кода TestSmsElement (класс, наследник CampaignSchemaElement). В конструкторе класса укажите дополнительный ElementTypeCampaignSchemaElementType.Sessioned.

public TestSmsElement() {
    // TestSmsElement является и асинхронным и сессионным элементом, который сможет отрабатывать по триггеру.
    ElementType = CampaignSchemaElementType.AsyncTask | CampaignSchemaElementType.Sessioned;
}

2. Внести изменения в исполняемый элемент для нового элемента кампании

Внесите изменения в схему исходного кода TestSmsCampaignProcessElement (класс, наследник класса CampaignProcessFlowElement). В реализацию метода SafeExecute() добавьте операцию считывания аудитории через объект в свойстве CampaignAudience c типом ICampaignAudience.

// Реализация метода выполнения элемента.
    protected override int SafeExecute(ProcessExecutingContext context) {
        // TODO: Реализовать работу отправки СМС-сообщений.
        //
        //
        // Получить аудиторию, которая доступна для обработки этим элементом в данный момент.
        var audienceSelect = CampaignAudience.GetItemAudienceSelect(CampaignItemId);
        //
        // Указать текущий шаг для аудитории выполненным.
        return CampaignAudience.SetItemCompleted(SchemaElementUId);
    }

Смотрите также

© Terrasoft 2002-2019.

Был ли данный материал полезен?

Как можно улучшить эту статью?