Бөлісу құралы:


Просмотр или изменение времени при создании встречи в Outlook

API JavaScript для Office предоставляет асинхронные методы (Time.getAsync и Time.setAsync) для получения и задания времени начала или окончания создаваемой встречи. Эти асинхронные методы доступны только для создания надстроек. Чтобы использовать эти методы, убедитесь, что вы настроили только манифест надстройки для Outlook, чтобы активировать формы создания надстройки, как описано в разделе Создание надстроек Outlook для форм создания.

Свойства start и end доступны для встреч в формах создания и чтения. в форме чтения доступ к свойствам можно получить напрямую из родительского объекта, как в следующем примере:

Office.context.mailbox.item.start;
Office.context.mailbox.item.end;

Но в форме создания, так как пользователь и надстройка могут вставлять или изменять время одновременно, необходимо использовать getAsync асинхронный метод для получения времени начала или окончания.

Office.context.mailbox.item.start.getAsync(callback);
Office.context.mailbox.item.end.getAsync(callback);

Как и большинство асинхронных методов в API JavaScript для Office, getAsync и setAsync принимают необязательные входные параметры. Дополнительные сведения о том, как указать эти необязательные входные параметры, см. в разделе Передача необязательных параметров в асинхронные методы статьи Асинхронное программирование в надстройках Office.

Получение времени начала или окончания

В этом разделе показан пример кода, который получает время начала создаваемой встречи и отображает время. Вы можете использовать тот же код, но замените start свойство свойством , end чтобы получить время окончания.

Чтобы использовать item.start.getAsync методы или item.end.getAsync , предоставьте функцию обратного вызова, которая проверяет состояние и результат асинхронного вызова. Получите состояние, результаты и любую ошибку с помощью выходного параметра asyncResult обратного вызова. Если асинхронный вызов выполнен успешно, используйте asyncResult.value свойство , чтобы получить время начала в виде Date объекта в формате UTC. Чтобы указать все необходимые аргументы для функции обратного asyncContextgetAsync вызова, используйте необязательный параметр вызова.

let item;

// Confirms that the Office.js library is loaded.
Office.onReady((info) => {
    if (info.host === Office.HostType.Outlook) {
        item = Office.context.mailbox.item;
        getStartTime();
    }
});

// Gets the start time of the appointment being composed.
function getStartTime() {
    item.start.getAsync((asyncResult) => {
        if (asyncResult.status === Office.AsyncResultStatus.Failed) {
            write(asyncResult.error.message);
            return;
        }

        // Display the start time in UTC format on the page.
        write(`The start time in UTC is: ${asyncResult.value.toString()}`);
        // Convert the start time to local time and display it on the page.
        write(`The start time in local time is: ${asyncResult.value.toLocaleString()}`);
    });
}

// Writes to a div with id="message" on the page.
function write(message) {
    document.getElementById("message").innerText += message;
}

Установка времени начала или окончания

В этом разделе показан пример кода, который задает время начала встречи. Вы можете использовать тот же код, но замените start свойство свойством , end чтобы задать время окончания. Обратите внимание, что изменения start свойств или end могут повлиять на другие свойства создаваемой встречи.

  • Если составляемая встреча уже имеет существующее время начала, установка времени начала впоследствии корректирует время окончания, чтобы сохранить предыдущую продолжительность встречи.
  • Если составляемая встреча уже имеет существующее время окончания, установка времени окончания впоследствии изменяет длительность и время окончания.
  • Если встреча была назначена как событие на весь день, установка времени начала изменит время окончания на 24 часа позже и снимет флажок для события в течение всего дня в встрече.

Чтобы использовать item.start.setAsync или item.end.setAsync, укажите объект в формате Date UTC в параметре dateTime . Если вы получаете дату на основе введенных пользователем данных в клиенте, можно использовать mailbox.convertToUtcClientTime для преобразования значения Date в объект в формате UTC. Если вы предоставляете необязательную функцию обратного asyncContext вызова, включите параметр и добавьте в него любые аргументы. Кроме того, проверьте состояние, результат и любое сообщение об ошибке asyncResult с помощью выходного параметра обратного вызова. Если асинхронный вызов выполнен успешно, setAsync вставляет указанную строку времени начала или окончания в виде обычного текста, перезаписав любое существующее время начала или окончания для этого элемента.

Примечание.

В классической версии Outlook в Windows setAsync метод нельзя использовать для изменения времени начала или окончания повторяющейся встречи.

let item;

// Confirms that the Office.js library is loaded.
Office.onReady((info) => {
    if (info.host === Office.HostType.Outlook) {
        item = Office.context.mailbox.item;
        setStartTime();
    }
});

// Sets the start time of the appointment being composed.
function setStartTime() {
    // Get the current date and time, then add two days to the date.
    const startDate = new Date();
    startDate.setDate(startDate.getDate() + 2);

    item.start.setAsync(
        startDate,
        { asyncContext: { optionalVariable1: 1, optionalVariable2: 2 } },
        (asyncResult) => {
            if (asyncResult.status === Office.AsyncResultStatus.Failed) {
                console.log(asyncResult.error.message);
                return;
            }

            console.log("Successfully set the start time.");
            /*
                Run additional operations appropriate to your scenario and
                use the optionalVariable1 and optionalVariable2 values as needed.
            */
        });
}

См. также