Obter ou definir o assunto ao compor um compromisso ou uma mensagem no Outlook
A API javaScript do Office fornece métodos assíncronos (subject.getAsync e subject.setAsync) para obter e definir o assunto de um compromisso ou mensagem que o utilizador está a compor. Estes métodos assíncronos só estão disponíveis para compor suplementos. Para utilizar estes métodos, certifique-se de que configurou o manifesto apenas de suplemento adequadamente para o Outlook ativar o suplemento em formulários de composição.
A subject
propriedade está disponível para acesso de leitura em formulários de composição e leitura de compromissos e mensagens. Num formulário de leitura, aceda à propriedade diretamente a partir do objeto principal, tal como em:
Office.context.mailbox.item.subject;
No entanto, num formulário de composição, uma vez que tanto o utilizador como o suplemento podem estar a inserir ou a alterar o assunto ao mesmo tempo, tem de utilizar o getAsync
método para obter o assunto de forma assíncrona.
Office.context.mailbox.item.subject.getAsync(callback);
A subject
propriedade está disponível para acesso de escrita apenas em formulários de composição e não em formulários de leitura.
Dica
Para definir temporariamente o conteúdo apresentado no assunto de uma mensagem no modo de leitura, utilize Office.context.mailbox.item.display.subject (pré-visualização).
Tal como acontece com a maioria dos métodos assíncronos na API getAsync
JavaScript do Office e setAsync
utilize parâmetros de entrada opcionais. Para obter mais informações sobre como especificar estes parâmetros de entrada opcionais, consulte "Transmitir parâmetros opcionais para métodos assíncronos" em Programação assíncrona nos Suplementos do Office.
Obter o assunto
Esta seção mostra um exemplo de código que obtém o assunto do compromisso ou da mensagem que o usuário está compondo e o exibe.
Para utilizar item.subject.getAsync
, forneça uma função de chamada de retorno que verifique o estado e o resultado da chamada assíncrona. Pode fornecer os argumentos necessários à função de chamada de retorno através do parâmetro opcional asyncContext
. Para obter o estado, os resultados e qualquer erro da função de chamada de retorno, utilize o asyncResult
parâmetro de saída da chamada de retorno. Se a chamada assíncrona for bem-sucedida, utilize a propriedade AsyncResult.value para obter o assunto como uma cadeia de texto simples.
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;
}
Definir o assunto
Esta seção mostra um exemplo de código que define o assunto do compromisso ou da mensagem que o usuário está compondo.
Para utilizar item.subject.setAsync
, especifique uma cadeia de até 255 carateres no data
parâmetro . Opcionalmente, pode fornecer uma função de chamada de retorno e quaisquer argumentos para a função de chamada de retorno no asyncContext
parâmetro . Verifique o estado da chamada de retorno, o resultado e qualquer mensagem de erro no asyncResult
parâmetro de saída da chamada de retorno. Se a chamada assíncrona for bem-sucedida, setAsync
insere a cadeia de assunto especificada como texto simples, substituindo qualquer assunto existente para esse item.
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;
}
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, definir ou adicionar destinatários 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
- Obter ou definir a hora ao criar um compromisso no Outlook