Partager via


Obtenir ou définir l’emplacement lors de la composition d’un rendez-vous dans Outlook

L’API JavaScript Office fournit des propriétés et des méthodes permettant de gérer l’emplacement d’un rendez-vous que l’utilisateur compose. Actuellement, deux propriétés fournissent l’emplacement d’un rendez-vous :

  • item.location : API de base qui vous permet d’obtenir et de définir l’emplacement.
  • item.enhancedLocation : API améliorée qui vous permet d’obtenir et de définir l’emplacement, et inclut la spécification du type d’emplacement. Le type est LocationType.Custom si vous définissez l’emplacement à l’aide de item.location.

Le tableau suivant répertorie les API d’emplacement et les modes (par exemple, Composer ou Lire) dans lesquels elles sont disponibles.

API Modes de rendez-vous applicables
item.location Participant/Lecture
item.location.getAsync Organisateur/Composition
item.location.setAsync Organisateur/Composition
item.enhancedLocation.getAsync Organisateur/Composition,
Participant/Lecture
item.enhancedLocation.addAsync Organisateur/Composition
item.enhancedLocation.removeAsync Organisateur/Composition

Pour utiliser les méthodes disponibles uniquement pour composer des compléments, configurez le manifeste XML du complément pour activer le complément en mode Organisateur/Composition. Pour plus d’informations, consultez Create compléments Outlook pour composer des formulaires. Les règles d’activation ne sont pas prises en charge dans les compléments qui utilisent un manifeste unifié pour Microsoft 365.

Utiliser l’API enhancedLocation

Vous pouvez utiliser l’API enhancedLocation pour obtenir et définir l’emplacement d’un rendez-vous. Le champ location prend en charge plusieurs emplacements et, pour chaque emplacement, vous pouvez définir le nom d’affichage, le type et l’adresse e-mail de la salle de conférence (le cas échéant). Consultez LocationType pour connaître les types d’emplacement pris en charge.

Ajouter un emplacement

L’exemple suivant montre comment ajouter un emplacement en appelant addAsync sur mailbox.item.enhancedLocation.

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

Obtenir l’emplacement

L’exemple suivant montre comment obtenir l’emplacement en appelant getAsync sur mailbox.item.enhancedLocation.

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

Remarque

Les groupes de contacts personnels ajoutés en tant qu’emplacements de rendez-vous ne sont pas retournés par la méthode enhancedLocation.getAsync .

Supprimer l’emplacement

L’exemple suivant montre comment supprimer l’emplacement en appelant removeAsync sur mailbox.item.enhancedLocation.

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

Utiliser l’API location

Vous pouvez utiliser l’API location pour obtenir et définir l’emplacement d’un rendez-vous.

Recherche de l’emplacement

Cette section présente un exemple de code qui obtient et affiche l’emplacement du rendez-vous que compose l’utilisateur.

Pour utiliser item.location.getAsync, fournissez une fonction de rappel qui vérifie les status et le résultat de l’appel asynchrone. Vous pouvez fournir tous les arguments nécessaires à la fonction de rappel via le asyncContext paramètre facultatif. Vous pouvez obtenir status, les résultats et toute erreur à l’aide du paramètre asyncResult de sortie du rappel. Si l’appel asynchrone aboutit, vous pouvez obtenir l’emplacement sous forme de chaîne à l’aide de la propriété AsyncResult.value.

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

Définition de l’emplacement

Cette section présente un exemple de code qui définit l’emplacement du rendez-vous composé par l’utilisateur.

Pour utiliser item.location.setAsync, spécifiez une chaîne de 255 caractères maximum dans le paramètre de données. Si vous le souhaitez, vous pouvez fournir une fonction de rappel et tous les arguments pour la fonction de rappel dans le asyncContext paramètre . Vous devez case activée le status, le résultat et tout message d’erreur dans le asyncResult paramètre de sortie du rappel. Si l’appel asynchrone aboutit, setAsync insère la chaîne d’emplacement spécifiée sous forme de texte brut, en écrasant tous les emplacements existants pour cet élément.

Remarque

Vous pouvez définir plusieurs emplacements à l’aide d’un point-virgule comme séparateur (par exemple, « Salle de conférence A ; Salle de conférence 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;
}

Voir aussi