Abrufen oder Festlegen der Uhrzeit, wenn Sie einen Termin in Outlook verfassenGet or set the time when composing an appointment in Outlook

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.The JavaScript API for Office provides asynchronous methods (Time.getAsync and Time.setAsync) to get and set the start or end time of an appointment that the user is composing. These asynchronous methods are available to only compose add-ins. To use these methods, make sure you have set up the add-in manifest appropriately for Outlook to activate the add-in in compose forms, as described in Create Outlook add-ins for compose forms.

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:The start and end properties are available for appointments in both compose and read forms. In a read form, you can access the properties directly from the parent object, as in:

item.start

und in:and 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:But in a compose form, because both the user and your add-in can be inserting or changing the time at the same time, you must use the asynchronous method getAsync to get the start or end time, as shown below:

item.start.getAsync

und:and:

item.end.getAsync

Wie die meisten asynchronen Methoden in der JavaScript-API für Office verwenden getAsync und setAsync optionale Eingabeparameter. Weitere Informationen zur Festlegung dieser optionalen Eingabeparameter finden Sie im Abschnitt Übergeben optionaler Parameter an asynchrone Methoden im Artikel Asynchrone Programmierung in Office-Add-Ins.As with most asynchronous methods in the JavaScript API for Office, getAsync and setAsync take optional input parameters. For more information about specifying these optional input parameters, see passing optional parameters to asynchronous methods in Asynchronous programming in Office Add-ins.

Abrufen der Start- oder EndzeitGet the start or end time

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).This section shows a code sample that gets the start time of the appointment that the user is composing and displays the time. You can use the same code and replace the start property by the end property to get the end time. This code sample assumes a rule in the add-in manifest that activates the add-in in a compose form for an appointment, as shown below.

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

Wenn Sie item.start.getAsync oder item.end.getAsync verwenden möchten, definieren Sie eine Rückrufmethode, die den Status und das Ergebnis des asynchronen Aufrufs überprüft. Sie können der Rückrufmethode über den optionalen Parameter asyncContext alle erforderlichen Argumente übergeben. Den Status, Ergebnisse und Fehler können Sie mithilfe des Ausgabeparameters asyncResult des Rückrufs abrufen. Wenn der asynchrone Aufruf erfolgreich ausgeführt wird, finden Sie die Startzeit als Objekt des Typs Date im UTC-Format in der Eigenschaft AsyncResult.value.To use item.start.getAsync or item.end.getAsync, provide a callback method that checks for the status and result of the asynchronous call. You can provide any necessary arguments to the callback method through the asyncContext optional parameter. You can obtain status, results and any error using the output parameter asyncResult of the callback. If the asynchronous call is successful, you can get the start time as a Date object in UTC format using the AsyncResult.value property.

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

Festlegen der Start- oder EndzeitSet the start or end time

In diesem Abschnitt wird ein Codebeispiel gezeigt, mit dem die Startzeit von Terminen oder Nachrichten festgelegt wird, die der Benutzer gerade verfasst. Sie können denselben Code verwenden und die Eigenschaft start durch die Eigenschaft end ersetzen, um die Endzeit festzulegen. Wenn das Formular zum Verfassen von Terminen 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 von Terminen 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. Außerdem wird auf der Benutzeroberfläche des Formulars zum Verfassen die Kennzeichnung als ganztägiges Ereignis aufgehoben.This section shows a code sample that sets the start time of the appointment or message that the user is composing. You can use the same code and replace the start property by the end property to set the end time. Note that if the appointment compose form already has an existing start time, setting the start time subsequently will adjust the end time to maintain any previous duration for the appointment. If the appointment compose form already has an existing end time, setting the end time subsequently will adjust both the duration and end time. If the appointment has been set as an all-day event, setting the start time will adjust the end time to 24 hours later, and uncheck the UI for the all-day event in the compose form.

Ä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.Similar to the previous example, this code sample assumes a rule in the add-in manifest that activates the add-in in a compose form for an appointment.

Wenn Sie item.start.setAsync oder item.end.setAsync verwenden möchten, geben Sie einen Wert Date im UTC-Format im Parameter dateTime an. Wenn Sie ein Datum auf Basis einer Eingabe des Benutzers auf dem Client abrufen, können Sie mailbox.convertToUtcClientTime verwenden, um den Wert in ein Objekt des Typs Date im UTC-Format umzuwandeln. Sie können eine optionale Rückrufmethode angeben sowie beliebige Argumente für diese Rückrufmethode über den Parameter asyncContext. Sie sollten den Status, das Ergebnis und eventuell vorhandene Fehlermeldungen im Ausgabeparameter asyncResult des Rückrufs überprüfen. Wenn der asynchrone Aufruf erfolgreich ausgeführt wird, fügt setAsync die angegebene Start- oder Endzeitzeichenfolge als Nur-Text-Zeichenfolge ein und überschreibt dabei bereits vorhandene Start- oder Endzeiten.To use item.start.setAsync or item.end.setAsync, specify a Date value in UTC in the dateTime parameter. If you get a date based on an input by the user on the client, you can use mailbox.convertToUtcClientTime to convert the value to a Date object in UTC. You can provide an optional callback method and any arguments for the callback method in the asyncContext parameter. You should check the status, result and any error message in the asyncResult output parameter of the callback. If the asynchronous call is successful, setAsync inserts the specified start or end time string as plain text, overwriting any existing start or end time for that item.

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

Siehe auchSee also