Share via


Abrufen oder Festlegen der Uhrzeit, wenn Sie einen Termin in Outlook verfassen

Die Office JavaScript-API stellt asynchrone Methoden (Time.getAsync und Time.setAsync) zum Abrufen und Festlegen der Start- oder Endzeit eines termins bereit, der zusammengestellt wird. Diese asynchronen Methoden sind nur zum Verfassen von Add-Ins verfügbar. Um diese Methoden zu verwenden, stellen Sie sicher, dass Sie das XML-Manifest des Add-Ins entsprechend eingerichtet haben, damit Outlook das Add-In in Verfassenformularen aktivieren kann, wie unter Erstellen von Outlook-Add-Ins für Verfassenformulare beschrieben.

Die Eigenschaften start und end sind für Termine sowohl in Formularen zum Verfassen als auch zum Lesen verfügbar. In einem Leseformular können Sie die Eigenschaften direkt vom übergeordneten Objekt aus aufrufen, wie in:

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

In einem Erstellformular müssen Sie jedoch die asynchrone Methode verwenden getAsync , um die Start- oder Endzeit abzurufen, da sowohl der Benutzer als auch das Add-In die Uhrzeit gleichzeitig einfügen oder ändern können.

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

Wie bei den meisten asynchronen Methoden in der Office JavaScript-API, getAsync und setAsync verwenden Sie optionale Eingabeparameter. Weitere Informationen zum Angeben dieser optionalen Eingabeparameter finden Sie unter "Übergeben optionaler Parameter an asynchrone Methoden" unter Asynchrone Programmierung in Office-Add-Ins.

Abrufen der Start- oder Endzeit

Dieser Abschnitt zeigt ein Codebeispiel, das die Startzeit des zusammengestellten Termins abruft und die Uhrzeit anzeigt. Sie können den gleichen Code verwenden, aber die start -Eigenschaft durch die end -Eigenschaft ersetzen, um die Endzeit abzurufen.

Um die item.start.getAsync Methoden oder item.end.getAsync zu verwenden, stellen Sie eine Rückruffunktion bereit, die die status und das Ergebnis des asynchronen Aufrufs überprüft. Rufen Sie die status, Ergebnisse und alle Fehler mithilfe des asyncResult-Ausgabeparameters des Rückrufs ab. Wenn der asynchrone Aufruf erfolgreich ist, verwenden Sie die asyncResult.value -Eigenschaft, um die Startzeit als Date Objekt im UTC-Format abzurufen. Verwenden Sie den asyncContext optionalen Parameter des Aufrufs, um alle erforderlichen Argumente für die getAsync Rückruffunktion bereitzustellen.

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;
}

Festlegen der Start- oder Endzeit

Dieser Abschnitt zeigt ein Codebeispiel, das die Startzeit eines Termins festlegt, der zusammengestellt wird. Sie können denselben Code verwenden, aber die start -Eigenschaft durch die end -Eigenschaft ersetzen, um die Endzeit festzulegen. Beachten Sie, dass Änderungen an den start Eigenschaften oder end sich auf andere Eigenschaften des zusammengestellten Termins auswirken können.

  • Wenn der zusammengestellte Termin bereits über eine Startzeit verfügt, wird durch festlegen der Startzeit anschließend die Endzeit so angepasst, dass die vorherige Dauer des Termins beibehalten wird.
  • Wenn der zusammengestellte Termin bereits über eine vorhandene Endzeit verfügt, wird durch festlegen der Endzeit anschließend sowohl die Dauer als auch die Endzeit angepasst.
  • Wenn der Termin als ganztägiges Ereignis festgelegt wurde, wird durch Festlegen der Startzeit die Endzeit auf 24 Stunden später angepasst und das Kontrollkästchen für das ganztägige Ereignis im Termin deaktiviert.

Um oder zu verwendenitem.start.setAsync, geben Sie ein UTC-formatiertes Date Objekt im -Parameter andateTime.item.end.setAsync Wenn Sie ein Datum basierend auf einer Eingabe des Benutzers im Client erhalten, können Sie mailbox.convertToUtcClientTime verwenden, um den Wert in ein Date Objekt im UTC-Format zu konvertieren. Wenn Sie eine optionale Rückruffunktion bereitstellen, schließen Sie den Parameter ein asyncContext , und fügen Sie diesem argumente hinzu. Überprüfen Sie außerdem die status, das Ergebnis und alle Fehlermeldungen über den asyncResult Ausgabeparameter des Rückrufs. Wenn der asynchrone Aufruf erfolgreich ist, setAsync fügt die angegebene Start- oder Endzeitzeichenfolge als Nur-Text ein, wobei die vorhandene Start- oder Endzeit für dieses Element überschrieben wird.

Hinweis

In Outlook unter Windows kann die setAsync -Methode nicht verwendet werden, um die Start- oder Endzeit einer Terminserie zu ändern.

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.
            */
        });
}

Siehe auch