calendar · calendar 25.195.0 Заметное

calendar 25.195.0: активность БП считает минуты встреч и перестала терять последний день

3 мин чтения

Точечный релиз вокруг одной активности бизнес-процессов — «Получить информацию из календаря». Она научилась отдавать списки заголовков и суммарные минуты встреч, а заодно у неё поправили границу выборки. Публичного PHP API релиз не меняет.

Новые возвратные поля активности

У CBPCalendarGetInform появились EVENTS_TITLES_LIST, EVENTS_TITLES_BB_LIST и MeetingsTotalMinutes. Первые два — список заголовков событий (обычным текстом и в BB-разметке), третье — то, ради чего всё затевалось.

Сценарий понятный: бизнес-процесс, который раз в неделю собирает по сотруднику «сколько времени ушло на встречи». Раньше активность отдавала события, и считать минуты приходилось в самом процессе — то есть либо через вычисляемое поле, либо вообще никак.

Что считается «реальной встречей»

Самое ценное в этом релизе — критерии, по которым MeetingsTotalMinutes отсекает лишнее. В коде они помечены комментарием как INVARIANT, то есть менять их не планируют:

  • события на весь день (all-day) не считаются;
  • ACCESSIBILITY из free и absent не считается — «свободен» и «отсутствую» это не встреча;
  • MEETING_STATUS из N и Q не считается — отклонённые и неотвеченные приглашения тоже мимо.

Иначе говоря, в минуты попадает только то, где человек подтвердил участие и это время помечено как занятое. Если вы строите свою отчётность по загрузке календаря — имеет смысл взять те же критерии, чтобы цифры сходились с цифрами Битрикса.

Сдвиг верхней границы выборки

В fetchEvents() верхняя граница интервала теперь считается как $toTs - \CCalendar::GetDayLen(), добавлены preciseLimits => true и userId смотрящего.

Это правка того класса ошибок, где выборка «с 1 по 7 число» захватывала или теряла крайний день из-за того, что конец интервала попадал на начало следующих суток. Флаг preciseLimits заставляет выбирать события строго по границам, а не по дням целиком. Если у вас есть процессы на этой активности с ожиданиями по количеству событий — их стоит перепроверить: результат мог измениться на один день.

Мелочь

CCalendar перестал создавать SocialNetwork\FeatureService объектом ради одного вызова: было (new FeatureService())->isNewProjectsOn(), стало FeatureService::isNewProjectsOn().

Что делать

  • Если использовали свою реализацию подсчёта времени встреч — сверьте критерии с INVARIANT выше.
  • Перепроверьте бизнес-процессы, опирающиеся на выборку CBPCalendarGetInform по интервалу.

Читайте дальше

calendar 25.197.0 Заметное Свежее

calendar 25.197.0: тип события call_sync и чат, который создаётся сам

У события календаря появился собственный тип, и первый его пользователь — синхронизированные созвоны: при создании такого события автоматически поднимается чат с гостевой ссылкой. Ломающих изменений нет, все правки сигнатур совместимы.

3 мин
calendar 25.200.0 Ломающее Свежее

calendar 25.200.0: таймзона пользователя переехала в b_user.TIME_ZONE — и это ломающий релиз

Самый «ломающий» календарный релиз батча. Часовой пояс пользователя перестал быть настройкой календаря и стал полем пользователя, из-за чего у AJAX-экшена сохранения настроек изменилась сигнатура. Плюс вырезаны два метода `SynchronizationFeature`. Обновление стоит смотреть внимательно, если вы что-т...

4 мин
calendar 26.0.0 Заметное Свежее

calendar 26.0.0: потолок повторов RRULE, права на удалённые sharing-события и разбор ошибок REST

Релиз про повторяющиеся события и права. Появился жёсткий лимит на количество повторов, у удалённых событий по общей ссылке — отдельная проверка доступа, а REST перестал терять ошибки между вызовами. Публичные сигнатуры не удалялись, но пара изменений в поведении заметна.

4 мин
calendar 26.0.100 Заметное Свежее

calendar 26.0.100: почему у людей пропадали встречи при синхронизации с Google и iCloud

Маленький релиз с большими последствиями — исправлена потеря данных при импорте календаря. Если внешний сервис отдавал неполную страницу событий, Битрикс считал недостающие экземпляры удалёнными и вычищал их у себя. Публичного API изменение не трогает, но поставить его стоит всем, у кого работает си...

3 мин
Мы используем файлы cookie для улучшения работы сайта. Продолжая использовать сайт, вы соглашаетесь с нашей политикой конфиденциальности.
AI Домовой

AI Домовой История

на связи

пишет…
Нет истории чатов
AI Домовой

Нужна авторизация

Войдите, чтобы задавать вопросы AI Домовому.

Войти