Obtenir ou définir l’heure lors de la composition d’un rendez-vous dans Outlook
L’API JavaScript Office fournit des méthodes asynchrones (Time.getAsync et Time.setAsync) pour obtenir et définir l’heure de début ou de fin d’un rendez-vous en cours de composition. 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 du complément uniquement pour qu’Outlook active le complément dans les formulaires de composition, comme décrit dans Créer des compléments Outlook pour les formulaires de composition.
Les propriétés start et end sont disponibles pour les rendez-vous dans les formulaires de lecture et de composition. Dans un formulaire de lecture, vous pouvez accéder aux propriétés directement dans l’objet parent, comme dans :
Office.context.mailbox.item.start;
Office.context.mailbox.item.end;
Toutefois, dans un formulaire de composition, étant donné que l’utilisateur et votre complément peuvent insérer ou modifier l’heure en même temps, vous devez utiliser la getAsync
méthode asynchrone pour obtenir l’heure de début ou de fin.
Office.context.mailbox.item.start.getAsync(callback);
Office.context.mailbox.item.end.getAsync(callback);
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’heure de début ou de fin
Cette section présente un exemple de code qui obtient l’heure de début du rendez-vous en cours de composition et affiche l’heure. Vous pouvez utiliser le même code, mais remplacez la start
propriété par la end
propriété pour obtenir l’heure de fin.
Pour utiliser les item.start.getAsync
méthodes ou item.end.getAsync
, fournissez une fonction de rappel qui vérifie l’état et le résultat de l’appel asynchrone. Obtenez l’état, les résultats et toute erreur à l’aide du paramètre de sortie asyncResult du rappel. Si l’appel asynchrone réussit, utilisez la asyncResult.value
propriété pour obtenir l’heure de début en tant qu’objet Date
au format UTC. Pour fournir tous les arguments nécessaires à la fonction de rappel, utilisez le asyncContext
paramètre facultatif de l’appel getAsync
.
let item;
// Confirms that the Office.js library is loaded.
Office.onReady((info) => {
if (info.host === Office.HostType.Outlook) {
item = Office.context.mailbox.item;
getStartTime();
}
});
// Gets the start time of the appointment being composed.
function getStartTime() {
item.start.getAsync((asyncResult) => {
if (asyncResult.status === Office.AsyncResultStatus.Failed) {
write(asyncResult.error.message);
return;
}
// Display the start time in UTC format on the page.
write(`The start time in UTC is: ${asyncResult.value.toString()}`);
// Convert the start time to local time and display it on the page.
write(`The start time in local time is: ${asyncResult.value.toLocaleString()}`);
});
}
// Writes to a div with id="message" on the page.
function write(message) {
document.getElementById("message").innerText += message;
}
Définition de l’heure de début ou de fin
Cette section présente un exemple de code qui définit l’heure de début d’un rendez-vous en cours de composition. Vous pouvez utiliser le même code, mais remplacez la start
propriété par la end
propriété pour définir l’heure de fin. Notez que les start
modifications apportées aux propriétés ou end
peuvent affecter d’autres propriétés du rendez-vous en cours de composition.
- Si le rendez-vous en cours de composition a déjà une heure de début existante, la définition de l’heure de début ajuste par la suite l’heure de fin pour conserver toute durée précédente du rendez-vous.
- Si le rendez-vous composé a déjà une heure de fin existante, la définition de l’heure de fin ajuste par la suite la durée et l’heure de fin.
- Si le rendez-vous a été défini comme un événement d’une journée entière, la définition de l’heure de début ajuste l’heure de fin à 24 heures plus tard et désactive la case pour l’événement d’une journée entière dans le rendez-vous.
Pour utiliser item.start.setAsync
ou item.end.setAsync
, spécifiez un objet au Date
format UTC dans le dateTime
paramètre . Si vous obtenez une date basée sur une entrée de l’utilisateur dans le client, vous pouvez utiliser mailbox.convertToUtcClientTime pour convertir la valeur en objet Date
au format UTC. Si vous fournissez une fonction de rappel facultative, incluez le asyncContext
paramètre et ajoutez-y des arguments. En outre, vérifiez l’état, le résultat et tout message d’erreur via le asyncResult
paramètre de sortie du rappel. Si l’appel asynchrone réussit, setAsync
insère la chaîne d’heure de début ou de fin spécifiée en texte brut, en remplaçant toute heure de début ou de fin existante pour cet élément.
Remarque
Dans Outlook sur Windows classique, la setAsync
méthode ne peut pas être utilisée pour modifier l’heure de début ou de fin d’un rendez-vous périodique.
let item;
// Confirms that the Office.js library is loaded.
Office.onReady((info) => {
if (info.host === Office.HostType.Outlook) {
item = Office.context.mailbox.item;
setStartTime();
}
});
// Sets the start time of the appointment being composed.
function setStartTime() {
// Get the current date and time, then add two days to the date.
const startDate = new Date();
startDate.setDate(startDate.getDate() + 2);
item.start.setAsync(
startDate,
{ asyncContext: { optionalVariable1: 1, optionalVariable2: 2 } },
(asyncResult) => {
if (asyncResult.status === Office.AsyncResultStatus.Failed) {
console.log(asyncResult.error.message);
return;
}
console.log("Successfully set the start time.");
/*
Run additional operations appropriate to your scenario and
use the optionalVariable1 and optionalVariable2 values as needed.
*/
});
}
Voir aussi
- Obtenir et définir des données d’élément dans un formulaire de composition dans Outlook
- Obtenir et définir des données d’élément Outlook dans des formulaires de lecture ou de composition
- Créer des compléments Outlook pour les formulaires de composition
- Programmation asynchrone dans les compléments Office
- Obtenir, définir ou ajouter des destinataires lors de la composition d’un rendez-vous ou d’un message dans Outlook
- Obtenir ou définir l’objet lors de la composition d’un rendez-vous ou d’un message dans Outlook
- Insérer des données dans le corps lors de la composition d’un rendez-vous ou d’un message dans Outlook
- Obtenir ou définir l’emplacement lors de la composition d’un rendez-vous dans Outlook