Сценарии Event Receiver
Типичная цепочка после создания или изменения элемента списка.
1. Получить значения полей только что созданного элемента
Заголовок раздела «1. Получить значения полей только что созданного элемента»Событие listItem.created. В details уже есть listId и item (часто с field_values). Надёжнее перечитать элемент через API:
public async Task<object?> HandleAsync(EventContext context, IReceiverApi api, CancellationToken ct){ var item = await context.GetListItemAsync(api, ct); if (item is null) return new { skipped = true };
var title = item.GetString("title"); api.Log.Info("Created item", context.GetItemRef(), title); return new { ok = true, title };}Форматы значений: гайд по полям, PortalListItem / API.
2. Переназначить права на элемент
Заголовок раздела «2. Переназначить права на элемент»await api.Permissions.SetAsync(new{ resourceType = "list_item", resourceId = itemId, listId, principalType = "user", principalId = ownerUserId, permissionLevel = "edit",}, ct);См. API: Права и права на список. Точные методы SDK — в SDK Event Receiver.
3. Отправить уведомление со значениями полей
Заголовок раздела «3. Отправить уведомление со значениями полей»Нужны настроенный SMTP и включённая служба notifications (см. Уведомления).
Вариант A — встроенный job почты (подписчик в админке или API): serviceKey: "notifications", jobType: "notifications.sendEventEmail", в config — to/recipients, шаблоны subject/text/html. Пример и плейсхолдеры: API: Почта.
Вариант B — REST из кода пакета или HTTP к внешней системе:
POST /api/v1/mail/sendAuthorization: Bearer …Content-Type: application/json
{ "to": "manager@company.local", "subject": "Новая заявка: …", "text": "Создан элемент … со статусом …", "async": true}Справочник: API: Почта.
Связанные материалы
Заголовок раздела «Связанные материалы»- Runtime — привязка к списку, payload, отладка
- Сборка пакета
- Работа со списками