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

Die JavaScript-API für Office stellt asynchrone Methoden (Time.getAsync und Time.setAsync) zum Abrufen und Festlegen der Anfangs- und Endzeit eines Termins bereit, den der Benutzer erstellt. Diese asynchronen Methoden sind nur in Erstellungs-Add-Ins verfügbar. Vergewissern Sie sich, dass Sie das Add-In-Manifest entsprechend für Outlook eingerichtet haben, damit das Add-In in Erstellformularen aktiviert wird, wie in Erstellen von Outlook-Add-Ins für Formulare zum Verfassen 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:

item.start

und in:

item.end

In einem Formular zum Verfassen müssen Sie zum Abrufen der Start- oder Endzeit allerdings, wie unten gezeigt, die asynchrone Methode getAsync verwenden, da der Benutzer und Ihr Add-In die Uhrzeit zur gleichen Zeit einfügen oder ändern können:

item.start.getAsync

und:

item.end.getAsync

Wie die meisten asynchronen Methoden in der JavaScript-API für Office verwenden getAsync und setAsync optionale Eingabeparameter. Weitere Informationen zum Festlegen dieser optionalen Eingabeparameter finden Sie unter Übergeben optionaler Parameter an asynchrone Methoden in Asynchrone Programmierung in Office-Add-Ins.

So rufen Sie die Start- oder Endzeit ab

Dieser Abschnitt enthält ein Codebeispiel, das die Startzeit des Termins abruft, den der Benutzer verfasst, und die Uhrzeit anzeigt. Sie können denselben Code verwenden und die Eigenschaft start durch die Eigenschaft end ersetzen, um die Endzeit abzurufen. Bei diesem Codebeispiel wird davon ausgegangen, dass das Add-in-Manifest eine Regel enthält, welche das Add-In in einem Formular zum Verfassen für einen Termin aktiviert (siehe unten).

<Rule xsi:type="ItemIs" ItemType="Appointment" FormType="Edit"/>

Um item.start.getAsync oder item.end.getAsync zu verwenden, stellen Sie eine Rückrufmethode bereit, die den Status und das Ergebnis des asynchronen Aufrufs überprüft. Sie können der Rückrufmethode über den optionalen Parameter asyncContext jedes erforderliche Argument bereitstellen. Sie können den Status, Ergebnisse und Fehler mithilfe des Ausgabeparameters asyncResult des Rückrufs abrufen. Wenn der asynchrone Aufruf erfolgreich ist, können Sie die Startzeit als Date-Objekt in UTC-Format mithilfe der AsyncResult.value-Eigenschaft abrufen.

var item;

Office.initialize = function () {
    item = Office.context.mailbox.item;
    // Checks for the DOM to load using the jQuery ready function.
    $(document).ready(function () {
        // After the DOM is loaded, app-specific code can run.
        // Get the start time of the item being composed.
        getStartTime();
    });
}

// Get the start time of the item that the user is composing.
function getStartTime() {
    item.start.getAsync(
        function (asyncResult) {
            if (asyncResult.status == Office.AsyncResultStatus.Failed){
                write(asyncResult.error.message);
            }
            else {
                // Successfully got the start time, display it, first in UTC and 
                // then convert the Date object to local time and display that.
                write ('The start time in UTC is: ' + asyncResult.value.toString());
                write ('The start time in local time is: ' + asyncResult.value.toLocaleString());
            }
        });
}

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

So legen Sie die Start- oder Endzeit fest

In diesem Abschnitt wird ein Codebeispiel gezeigt, bei dem die Startzeit des vom Benutzer verfassten Termins oder der Nachricht festgelegt wird. Sie können den gleichen Code verwenden und die start-Eigenschaft durch die end-Eigenschaft ersetzen, um die Endzeit festzulegen. Wenn das Formular zum Verfassen des Termins bereits eine Startzeit aufweist, wird durch das spätere Festlegen der Startzeit die Endzeit angepasst, sodass die vorherige Dauer des Termins bestehen bleibt. Wenn das Formular zum Verfassen des Termins bereits eine Endzeit aufweist, werden durch das spätere Festlegen der Endzeit die Dauer und die Endzeit angepasst. Wenn der Termin als ein ganztägiges Ereignis festgelegt wurde, wird die Endzeit durch das Festlegen der Startzeit auf 24 Stunden später festgelegt, und die UI für das ganztägige Ereignis im Formular zum Verfassen deaktiviert.

Ähnlich wie im vorherigen Beispiel wird in diesem Codebeispiel eine Regel in dem Add-In-Manifest vorausgesetzt, die das Add-In in einem Erstellformular eines Termins aktiviert.

Geben Sie zum Verwenden von item.start.setAsync oder item.end.setAsync einen DateWert in UTC im dateTime_Parameter an. Wenn Sie ein Datum auf Basis einer Eingabe des Benutzers auf dem Client erhalten, können Sie mailbox.convertToUtcClientTime verwenden, um den Wert in ein Date-Objekt in UTC umzuwandeln. Sie können im _asyncContext_Parameter eine optionale Rückrufmethode und Argumente für die Rückrufmethode angeben. Sie sollten den Status, Ergebnisse und Fehlermeldungen im _asyncResult-Ausgabeparameter des Rückrufs prüfen. Wenn der asynchrone Aufruf erfolgreich ist, fügt setAsync die angegebene Start- und Endzeitzeichenfolge als Nur-Text ein und überschreibt dabei eine ggf. vorhandene Start- oder Endzeit für dieses Element.

var item;

Office.initialize = function () {
    item = Office.context.mailbox.item;
    // Checks for the DOM to load using the jQuery ready function.
    $(document).ready(function () {
        // After the DOM is loaded, app-specific code can run.
        // Set the start time of the item being composed.
        setStartTime();
    });
}

// Set the start time of the item that the user is composing.
function setStartTime() {
    var startDate = new Date("September 27, 2012 12:30:00");

    item.start.setAsync(
        startDate,
        { asyncContext: { var1: 1, var2: 2 } },
        function (asyncResult) {
            if (asyncResult.status == Office.AsyncResultStatus.Failed){
                write(asyncResult.error.message);
            }
            else {
                // Successfully set the start time.
                // Do whatever appropriate for your scenario
                // using the arguments var1 and var2 as applicable.
            }
        });
}

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

Zusätzliche Ressourcen