order: 20 id: outlook-other-item-apis-session-data-apis name: Work with session data APIs (Compose) description: Sets, gets, gets all, removes, and clears session data in Compose mode. host: OUTLOOK api_set: Mailbox: '1.11' script: content: |- document.getElementById("setSessionData").addEventListener("click", setSessionData); document.getElementById("getSessionData").addEventListener("click", getSessionData); document.getElementById("getAllSessionData").addEventListener("click", getAllSessionData); document.getElementById("removeSessionData").addEventListener("click", removeSessionData); document.getElementById("clearSessionData").addEventListener("click", clearSessionData); function setSessionData() { Office.context.mailbox.item.sessionData.setAsync( "Date", "7/24/2020", function(asyncResult) { if (asyncResult.status === Office.AsyncResultStatus.Succeeded) { console.log("sessionData.setAsync succeeded"); } else { console.log("Failed to set sessionData. Error: " + JSON.stringify(asyncResult.error)); } }); } function getSessionData() { Office.context.mailbox.item.sessionData.getAsync( "Date", function(asyncResult) { if (asyncResult.status === Office.AsyncResultStatus.Succeeded) { console.log("The sessionData value is " + JSON.stringify(asyncResult.value)); } else { console.log("Failed to get sessionData. Error: " + JSON.stringify(asyncResult.error)); } }); } function getAllSessionData() { Office.context.mailbox.item.sessionData.getAllAsync(function(asyncResult) { if (asyncResult.status === Office.AsyncResultStatus.Succeeded) { console.log("The sessionData is " + JSON.stringify(asyncResult.value)); } else { console.log("Failed to get all sessionData. Error: " + JSON.stringify(asyncResult.error)); } }); } function removeSessionData() { Office.context.mailbox.item.sessionData.removeAsync( "Date", function callback(asyncResult) { if (asyncResult.status === Office.AsyncResultStatus.Succeeded) { console.log("sessionData.removeAsync succeeded"); } else { console.log("Failed to remove sessionData. Error: " + JSON.stringify(asyncResult.error)); } } ); } function clearSessionData() { Office.context.mailbox.item.sessionData.clearAsync(function(asyncResult) { if (asyncResult.status === Office.AsyncResultStatus.Succeeded) { console.log("sessionData.clearAsync succeeded"); } else { console.log("Failed to clear sessionData. Error: " + JSON.stringify(asyncResult.error)); } }); } language: typescript template: content: |-

This sample shows how to set, get, get all, remove, and clear session data in compose mode.

Required mode: Compose

language: html style: content: |- body { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; font-size: 14px; line-height: 1.5; padding: 10px; } section { margin-bottom: 20px; } h3 { margin-top: 0; margin-bottom: 10px; font-size: 16px; } p { margin: 0 0 10px 0; } button { background-color: #f0f0f0; color: #333333; border: 1px solid #8a8a8a; padding: 8px 16px; font-size: 14px; cursor: pointer; border-radius: 2px; margin-left: 20px; margin-bottom: 5px; min-width: 80px; display: block; } button:hover { background-color: #e0e0e0; } button:active { background-color: #d0d0d0; } input { padding: 8px; margin: 5px 0; border: 1px solid #ccc; border-radius: 2px; font-size: 14px; } .header { text-align: center; background-color: #f3f2f1; padding: 10px; } language: css libraries: |- https://appsforoffice.microsoft.com/lib/1/hosted/office.js https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/master/types/office-js/index.d.ts