Отправка по событию

Данное условие представляет собой универсальный способ отправки рассылки. Настройка данного условия в меню настройки рассылки заключается только во включении\отключении условия. Настройка данного условия в меню настройки подписки отсутствует.

Для успешной проверки на выполнение данного условия перед отправкой конечному подписчику в настройках конкретной подписки на рассылку должен присутствовать флаг "событие произошло". Предполагается, что данный флаг устанавливается из какого-либо скрипта поведения, среагировавшего на то или иное событие. Например, если у клиента изменился статус на "Отключён", то соответствующий скрипт, обработавший данное событие, устанавливает соответствующий флаг в настройках его (клиента) подписки на рассылку, информирующую об отключении абонента за долги. Тогда задача отправки рассылок на очередной итерации отправки при проверке условия данной подписки установит, что данное условие выполнено и отправка уведомления об отключении произойдет.

Пример части скрипта, обрабатывающего событие Статус изменён, который устанавливает флаг в настройках подписки:

//код рассылки "уведомление об отключении"
int dispatchId = X;
//код договора, для которого сработало событие
int contractId = Y;
//получаем список всех подписок на эту рассылку для данного договора
List<Subscription> subscriptions = service.getSubscriptions( dispatchId, contractId );
//каждой рассылке устанавливаем флаг условия отправки по событию в 1
for( Subscription subscription : subscriptions )
{
subscription.getPreferences().set( DispatchEventCondition.EVENT_OCCURED_FLAG, "1" );
service.updateSubscriptions( subscription );
}

с версии 6.2

//код рассылки "уведомление об отключении"
int dispatchId = X;
 
ServerContext context = ServerContext.get();
DispatchService service = context.getService( DispatchService.class, 0 );
service.setEventForSubscription( dispatchId, event.getContractId() );