Share via


Abrufen oder Festlegen des Orts, wenn Sie einen Termin in Outlook verfassen

Die Office JavaScript-API stellt Eigenschaften und Methoden bereit, um den Speicherort eines Termins zu verwalten, den der Benutzer erstellt. Derzeit gibt es zwei Eigenschaften, die den Standort eines Termins angeben:

  • item.location: Grundlegende API, mit der Sie den Speicherort abrufen und festlegen können.
  • item.enhancedLocation: Erweiterte API, mit der Sie den Standort abrufen und festlegen können, einschließlich der Angabe des Standorttyps. Der Typ ist LocationType.Custom , wenn Sie den Speicherort mit item.locationfestlegen.

In der folgenden Tabelle sind die Speicherort-APIs und die Modi (d. h. Verfassen oder Lesen) aufgeführt, in denen sie verfügbar sind.

API Anwendbare Terminmodi
item.location Teilnehmer/Lesen
item.location.getAsync Organisator/Verfassen
item.location.setAsync Organisator/Verfassen
item.enhancedLocation.getAsync Organisator/Verfassen,
Teilnehmer/Lesen
item.enhancedLocation.addAsync Organisator/Verfassen
item.enhancedLocation.removeAsync Organisator/Verfassen

Um die Methoden zu verwenden, die nur zum Verfassen von Add-Ins verfügbar sind, konfigurieren Sie das Add-In-XML-Manifest, um das Add-In im Organisator-/Verfassen-Modus zu aktivieren. Weitere Informationen finden Sie unter Create Outlook-Add-Ins für Formularerstellung. Aktivierungsregeln werden in Add-Ins, die ein einheitliches Manifest für Microsoft 365 verwenden, nicht unterstützt.

Verwenden der enhancedLocation API

Sie können die API verwenden, um den enhancedLocation Standort eines Termins abzurufen und festzulegen. Das Feld "Standort" unterstützt mehrere Standorte. Für jeden Standort können Sie den Anzeigenamen, den Typ und die E-Mail-Adresse des Konferenzraums (falls zutreffend) festlegen. Unterstützte Standorttypen finden Sie unter LocationType .

Speicherort hinzufügen

Im folgenden Beispiel wird gezeigt, wie Sie einen Speicherort hinzufügen, indem Sie addAsync für mailbox.item.enhancedLocation aufrufen.

let item;
const locations = [
    {
        "id": "Contoso",
        "type": Office.MailboxEnums.LocationType.Custom
    }
];

Office.initialize = function () {
    item = Office.context.mailbox.item;
    // Check for the DOM to load using the jQuery ready method.
    $(document).ready(function () {
        // After the DOM is loaded, app-specific code can run.
        // Add to the location of the item being composed.
        item.enhancedLocation.addAsync(locations);
    });
}

Speicherort abrufen

Das folgende Beispiel zeigt, wie Sie den Speicherort durch Aufrufen von getAsync für mailbox.item.enhancedLocation abrufen.

let item;

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

function callbackFunction(asyncResult) {
    asyncResult.value.forEach(function (place) {
        console.log("Display name: " + place.displayName);
        console.log("Type: " + place.locationIdentifier.type);
        if (place.locationIdentifier.type === Office.MailboxEnums.LocationType.Room) {
            console.log("Email address: " + place.emailAddress);
        }
    });
}

Hinweis

Persönliche Kontaktgruppen , die als Terminorte hinzugefügt wurden, werden von der enhancedLocation.getAsync-Methode nicht zurückgegeben.

Speicherort entfernen

Das folgende Beispiel zeigt, wie Sie den Speicherort entfernen, indem Sie removeAsync für mailbox.item.enhancedLocation aufrufen.

let item;

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

function callbackFunction(asyncResult) {
    asyncResult.value.forEach(function (currentValue) {
        // Remove each location from the item being composed.
        item.enhancedLocation.removeAsync([currentValue.locationIdentifier]);
    });
}

Verwenden der location API

Sie können die API verwenden, um den location Standort eines Termins abzurufen und festzulegen.

Abrufen des Orts

Dieser Abschnitt zeigt ein Codebeispiel, das den Ort des vom Benutzer erstellen Termins erhält und diesen Ort anzeigt.

Um zu verwendenitem.location.getAsync, stellen Sie eine Rückruffunktion bereit, die auf die status und das Ergebnis des asynchronen Aufrufs überprüft. Sie können alle erforderlichen Argumente für die Rückruffunktion über den asyncContext optionalen Parameter bereitstellen. Sie können status, Ergebnisse und jeden Fehler mithilfe des Ausgabeparameters asyncResult des Rückrufs abrufen. Wenn der asynchrone Aufruf erfolgreich ist, können Sie mit der Eigenschaft AsyncResult.value den Ort als Zeichenfolge abrufen.

let item;

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

// Get the location of the item that the user is composing.
function getLocation() {
    item.location.getAsync(
        function (asyncResult) {
            if (asyncResult.status == Office.AsyncResultStatus.Failed){
                write(asyncResult.error.message);
            }
            else {
                // Successfully got the location, display it.
                write ('The location is: ' + asyncResult.value);
            }
        });
}

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

Festlegen des Orts

Dieser Abschnitt zeigt ein Codebeispiel, das den Ort des vom Benutzer erstellten Termins festlegt.

Um item.location.setAsync zu verwenden, geben Sie eine Zeichenfolge von bis zu 255 Zeichen im Datenparameter ein. Optional können Sie eine Rückruffunktion und alle Argumente für die Rückruffunktion im asyncContext -Parameter angeben. Überprüfen Sie die status, das Ergebnis und alle Fehlermeldungen asyncResult im Ausgabeparameter des Rückrufs. Wenn der asynchrone Aufruf erfolgreich ist, fügt setAsync die angegebene Ortzeichenfolge als Nur-Text ein und überschreibt dabei einen ggf. vorhandenen Ort für dieses Element.

Hinweis

Sie können mehrere Standorte festlegen, indem Sie ein Semikolon als Trennzeichen verwenden (z. B. "Konferenzraum A; Konferenzraum B').

let item;

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

// Set the location of the item that the user is composing.
function setLocation() {
    item.location.setAsync(
        'Conference room A',
        { asyncContext: { var1: 1, var2: 2 } },
        function (asyncResult) {
            if (asyncResult.status == Office.AsyncResultStatus.Failed){
                write(asyncResult.error.message);
            }
            else {
                // Successfully set the location.
                // Do whatever is 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 auch