Надстройка Outlook (событие календаря): идентификатор серии при редактировании «одно событие и следующее»

#outlook-web-addins #recurrence #event-id

#outlook-web-addins #повторение #идентификатор события

Вопрос:

У меня есть надстройка Outlook для событий календаря (Office 365 Web), в которой есть панель задач для отображения информации для пользователя.

У меня возникает проблема при редактировании повторяющегося события «это событие и следующее».

Это мои шаги:

Я открываю событие в day_1 и устанавливаю «ежедневное» повторение в течение 3 дней [day_1, day_2, day_3].

Затем я открываю свою панель задач и могу прочитать идентификатор из Office.context.mailbox.item:

   item1_id
  

и информация о повторении:

    {"recurrenceProperties":{"interval":1},"recurrenceType":"daily","recurrenceTimeZone":{...},"seriesTime":               
            {"startYear":2020,"startMonth":10,"startDay":27,"endYear":2020,"endMonth":10,"endDay":29,"startTimeMinutes":600,"durationMinutes":30}
   }
  

Затем я сохраняю событие в календаре.

А) Если я открою «все серии» для редактирования, я прочитаю из Office.context.mailbox.item:

  • Идентификатор серии: null

  • ItemId: seriesId (= item1_id, сохраненное значение при создании серии -> Я знаю, что это моя серия)

Б) Если я открываю одно событие для редактирования, я читаю:

  • seriesId: seriesId (= item1_id, сохраненное значение при создании серии -> Я знаю, что это событие из моей серии)

  • ItemId: itemB

C) Если я открою для редактирования «day_2 и следующего», я прочитаю:

  • seriesId: null (это правильно?)

  • ItemId: ItemC (я не знаю, что это событие из серии, которую я создал …)

Мой код:

 Office.onReady(info => {
    g_item = Office.context.mailbox.item;

    g_itemId = g_item.itemId;
    if (g_itemId === null || g_itemId == undefined) {
        g_item.saveAsync(function (result) {
            g_itemId = result.value;
            g_item.recurrence.getAsync((asyncResult) => {
                if (asyncResult.status !== Office.AsyncResultStatus.Failed) {
                    g_recurrence = asyncResult.value;
                    console.log("Recurrence: "   JSON.stringify(g_recurrence));
                    console.log("ITEM ID: "   g_itemId);
                    console.log("SERIES ID: "   g_item.seriesId);
                }
            });
        });
    }
    else
        console.log("**** itemId found: "   g_itemId);
});
  

Надеюсь, вы понимаете мою проблему…

Спасибо,

Диего

Комментарии:

1. На какой платформе (настольный ПК, Mac, iOS, Office в Интернете) вы сталкиваетесь с этой проблемой?

2. Я обновил вопрос: я использую для разработки Office 365 Web

3. Любая помощь в решении этой проблемы?

4. Не могли бы вы попробовать использовать REST API для получения этого идентификатора серии в случае «и следующего»?

5. Моя проблема в том, что я не знаю, в каком случае я, когда моя панель задач открыта