Compartilhar via


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