Partager via


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

L’API JavaScript Office fournit des méthodes asynchrones (subject.getAsync et subject.setAsync) pour obtenir et définir l’objet d’un rendez-vous ou d’un message que l’utilisateur compose. Ces méthodes asynchrones sont disponibles uniquement pour composer des compléments. Pour utiliser ces méthodes, vérifiez que vous avez configuré le manifeste XML du complément de manière appropriée pour qu’Outlook active le complément dans les formulaires de composition.

La subject propriété est disponible pour l’accès en lecture dans les formulaires de composition et de lecture de rendez-vous et de messages. Dans un formulaire de lecture, accédez à la propriété directement à partir de l’objet parent, comme dans :

Office.context.mailbox.item.subject;

Toutefois, dans un formulaire de composition, étant donné que l’utilisateur et votre complément peuvent insérer ou modifier l’objet en même temps, vous devez utiliser la getAsync méthode pour obtenir l’objet de manière asynchrone.

Office.context.mailbox.item.subject.getAsync(callback);

La subject propriété est disponible pour l’accès en écriture uniquement dans les formulaires de composition et non dans les formulaires de lecture.

Conseil

Pour définir temporairement le contenu affiché dans l’objet d’un message en mode lecture, utilisez Office.context.mailbox.item.display.subject (préversion) .

Comme avec la plupart des méthodes asynchrones dans l’API JavaScript Office, getAsync et setAsync prenez des paramètres d’entrée facultatifs. Pour plus d’informations sur la façon de spécifier ces paramètres d’entrée facultatifs, consultez « Passage de paramètres facultatifs à des méthodes asynchrones » dans Programmation asynchrone dans les compléments Office.

Obtention de l’objet

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

Pour utiliser item.subject.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 paramètre facultatif asyncContext . Pour obtenir le status, les résultats et toute erreur de la fonction de rappel, utilisez le asyncResult paramètre de sortie du rappel. Si l’appel asynchrone réussit, utilisez la propriété AsyncResult.value pour obtenir l’objet sous forme de chaîne de texte brut.

let item;

// Confirms that the Office.js library is loaded.
Office.onReady((info) => {
    if (info.host === Office.HostType.Outlook) {
        item = Office.context.mailbox.item;
        getSubject();
    }
});

// Gets the subject of the item that the user is composing.
function getSubject() {
    item.subject.getAsync((asyncResult) => {
        if (asyncResult.status === Office.AsyncResultStatus.Failed) {
            write(asyncResult.error.message);
            return;
        }

        // Display the subject on the page.
        write(`The subject is: ${asyncResult.value}`);
    });
}


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

Définition de l’objet

Cette section présente un exemple de code qui définit l’objet du rendez-vous ou du message que l’utilisateur compose.

Pour utiliser item.subject.setAsync, spécifiez une chaîne de 255 caractères maximum dans le data paramètre . 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 . Vérifiez le status de rappel, le résultat et tout message d’erreur dans le asyncResult paramètre de sortie du rappel. Si l’appel asynchrone réussit, setAsync insère la chaîne d’objet spécifiée en texte brut, en remplaçant tout objet existant pour cet élément.

let item;

// Confirms that the Office.js library is loaded.
Office.onReady((info) => {
    if (info.host === Office.HostType.Outlook) {
        item = Office.context.mailbox.item;
        setSubject();
    }
});

// Sets the subject of the item that the user is composing.
function setSubject() {
    // Customize the subject with today's date.
    const today = new Date();
    const subject = `Summary for ${today.toLocaleDateString()}`;

    item.subject.setAsync(
        subject,
        { asyncContext: { optionalVariable1: 1, optionalVariable2: 2 } },
        (asyncResult) => {
            if (asyncResult.status === Office.AsyncResultStatus.Failed) {
                write(asyncResult.error.message);
                return;
            }

            /*
              The subject was successfully set.
              Run additional operations appropriate to your scenario and
              use the optionalVariable1 and optionalVariable2 values as needed.
            */
        });
}

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

Voir aussi