Obter ou definir a hora ao compor um compromisso no Outlook
A API JavaScript do Office fornece métodos assíncronos (Time.getAsync e Time.setAsync) para obter e definir a hora de início ou término de um compromisso que está sendo composto. Esses métodos assíncronos estão disponíveis apenas para compor suplementos. Para usar esses métodos, certifique-se de ter configurado o manifesto XML do suplemento adequadamente para o Outlook para ativar o suplemento em formulários de composição, conforme descrito em Criar suplementos do Outlook para formulários de composição.
As propriedades start e end estão disponíveis para compromissos tanto em formulários de composição quanto de leitura. No formulário de leitura, você pode acessar as propriedades diretamente do objeto pai, como em:
Office.context.mailbox.item.start;
Office.context.mailbox.item.end;
Mas em um formulário de composição, porque o usuário e seu suplemento podem estar inserindo ou alterando a hora ao mesmo tempo, você deve usar o getAsync
método assíncrono para obter a hora de início ou de término.
Office.context.mailbox.item.start.getAsync(callback);
Office.context.mailbox.item.end.getAsync(callback);
Como acontece com a maioria dos métodos assíncronos na API getAsync
JavaScript do Office e setAsync
use parâmetros de entrada opcionais. Para obter mais informações sobre como especificar esses parâmetros de entrada opcionais, confira "Passando parâmetros opcionais para métodos assíncronos" na programação assíncrona nos Suplementos do Office.
Obter a hora de início ou de término
Esta seção mostra um exemplo de código que obtém a hora de início do compromisso que está sendo composto e exibe a hora. Você pode usar o mesmo código, mas substituir a start
propriedade pela end
propriedade para obter a hora de término.
Para usar os item.start.getAsync
métodos ouitem.end.getAsync
, forneça uma função de retorno de chamada que verifica o status e o resultado da chamada assíncrona. Obtenha o status, os resultados e qualquer erro usando o parâmetro de saída asyncResult do retorno de chamada. Se a chamada assíncrona for bem-sucedida, use a asyncResult.value
propriedade para obter a hora de início como um Date
objeto no formato UTC. Para fornecer os argumentos necessários para a função de retorno de chamada, use o asyncContext
parâmetro opcional da getAsync
chamada.
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;
}
Definir a hora de início ou de término
Esta seção mostra um exemplo de código que define a hora de início de um compromisso que está sendo composto. Você pode usar o mesmo código, mas substituir a start
propriedade pela end
propriedade para definir o horário de término. Observe que alterações nas start
propriedades ou end
podem afetar outras propriedades do compromisso que está sendo composto.
- Se o compromisso que está sendo composto já tiver um horário de início existente, definir o horário de início posteriormente ajustará o horário de término para manter qualquer duração anterior do compromisso.
- Se o compromisso que está sendo composto já tiver um tempo de término existente, definir o horário de término posteriormente ajustará a duração e o tempo de término.
- Se o compromisso tiver sido definido como um evento durante todo o dia, definir a hora de início ajustará o horário de término para 24 horas depois e limpará a caixa de seleção do evento durante todo o dia no compromisso.
Para usar item.start.setAsync
ou item.end.setAsync
, especifique um objeto formatado por Date
UTC no dateTime
parâmetro. Se você conseguir uma data com base em uma entrada do usuário no cliente, poderá usar mailbox.convertToUtcClientTime para converter o valor em um Date
objeto no formato UTC. Se você fornecer uma função opcional de retorno de chamada, inclua o asyncContext
parâmetro e adicione quaisquer argumentos a ele. Além disso, marcar o status, o resultado e qualquer mensagem de erro por meio do asyncResult
parâmetro de saída do retorno de chamada. Se a chamada assíncrona for bem-sucedida, setAsync
insira a cadeia de caracteres de início ou hora de término especificada como texto sem formatação, substituindo qualquer hora de início ou término existente para esse item.
Observação
No Outlook no Windows, o setAsync
método não pode ser usado para alterar o horário de início ou término de um compromisso recorrente.
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.
*/
});
}
Confira também
- Obter e definir dados de item em um formulário de redação no Outlook
- Obter e definir dados de item do Outlook em formulários de leitura ou composição
- Criar suplementos do Outlook para formulários de composição
- Programação assíncrona em Suplementos do Office
- Obter, configurar ou adicionar destinatários ao criar um compromisso ou uma mensagem no Outlook
- Obter ou definir o assunto ao criar um compromisso ou uma mensagem no Outlook
- Inserir dados no corpo ao criar um compromisso ou uma mensagem no Outlook
- Obter ou definir o local ao criar um compromisso no Outlook
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de