Release notes for apps for Office (Office 2013 SP1, office.js v1.1, schema v1.1)

apps for Office

Find information about known issues for developing an app for Office using Office 2013 SP1, office.js version 1.1 and apps for Office manifests schema version 1.1.

Last modified: November 11, 2014

Applies to: Access app for SharePoint | Excel 2013 | Excel 2013 RT | Excel 2013 SP1 | Excel Online | Exchange Online | Exchange Server 2013 SP1 | Outlook 2013 RT | Outlook 2013 SP1 | Outlook for Mac for Office 365 | Outlook Web App | OWA for Devices | PowerPoint 2013 | PowerPoint 2013 RT | PowerPoint 2013 SP1 | PowerPoint Online | Project 2013 SP1 | Project Professional 2013 | Word 2013 | Word 2013 RT | Word 2013 SP1

   Office.js: v1.1

   Apps for Office manifests schema: v1.1

Note Note

"Outlook" in this article refers to Outlook for Windows, Outlook for Mac, Outlook RT, OWA for Devices (OWA for Android phones, OWA for iPad, OWA for iPhone), and Outlook Web App. At this point, Outlook for Mac supports JavaScript API for Office in only Outlook read mode, and can activate mail apps that reference office.js version 1.0 or 1.1 and use apps for Office schema version 1.0.

Icon for mail apps for Office

Mail apps supported in compose forms

In the initial release, Outlook activates mail apps only when the user is viewing a message or appointment in a read form. In this release, with the exception of Outlook for Mac, Outlook can also activate mail apps when the user is creating or replying to a message, meeting request, or appointment in a compose form. With the new ReadWriteItem permission, such mail apps can get and set various item-level properties, and add or remove attachments of the item. Note that some features and JavaScript API for Office are available for read or compose forms, while other features are available and relevant for only read or compose forms but not both. Use office.js v1.1 and apps for Office manifests schema v1.1 to create or upgrade a mail app that works in compose forms. For more information, see What's new for mail apps, Choosing a version of the platform for your mail app for Outlook, and Create mail apps for compose forms in Outlook.

Attachment support in mail apps

All the Outlook hosts (Outlook for Windows, Outlook for Mac, Outlook RT, OWA for Devices, Outlook Web App), Exchange Server and Exchange Online support getting item attachments to server-side code using callback tokens. For more information, see How to: Get attachments of an Outlook item from an Exchange server.

Parity between Outlook hosts

One of the design pillars for apps for Office is write-once. The same calls from your mail app to the JavaScript API for Office should work seamlessly and transparently for all Outlook hosts: Outlook for Windows, Outlook for Mac, Outlook RT, OWA for Devices and Outlook Web App. However, there are a few exceptions:

Icon for task pane apps

Adding a binding to a named content control in Word may fail

In Word, if there are content controls in both the main document and a subdocument (for example, textbox, header, footer), or in multiple subdocuments, attempting to use the Bindings.addFromNamedItemAsync method to bind to another control in that document may fail as if there was a name collision.

Reading table data as a "text" coercion type may return unexpected characters past the null terminator

In Word, if you use the Document.getSelectedDataAsync method to read the selected data from a table and specify the "text" coercion type, you should ignore the characters after the null-terminator in the returned data, if it's present.

Partial writing to a table may fail

If you are doing partial writing to tables, don’t include header data to get the best results. Because of a known issue, partial writing by calling the Binding.setDataAsync method with the "table" coercion type may fail if the operation includes the last row of the table. To work around this, specify null for the header array in the TableData object that is passed to the data parameter in the setDataAsync method call.

Writing to a table may fail

If you are doing full writing to tables, include header data to get the best results. Because of a known issue, partial reading using the Binding.getDataAsync method or writing by calling the Binding.setDataAsync method with the "table" coercion type may not set all the rows of the table correctly if the header row is null. To work around this, specify data for the header array in the TableData object that is passed as an argument to the setDataAsync method.

Navigation to a named range with the Document.goToByIdAsync method is temporarily unsupported in Excel Online

In Excel, the Document.goToByIdAsync method lets your app navigate to different parts of a workbook, for example, a cell, row, column, or worksheet. To do so, you specify the goToType parameter of the method as Office.GoToType.NamedItem, and specify the id parameter as the name of a table, a named range, or as a standard structured reference (such as "A1"). However, at the time of this publication, specifying a named range as the named item will fail when the goToByIdAsync method is working against a workbook opened in Excel Online. To work around this limitation, you can use code like the following example that chains multiple calls to the method using structured references for each item in the named range.

For example, suppose you want to navigate to a named item called "MyRange" which contains cells A1, B5, C9, and D89, when working in Excel Online your app can use code like the following.

Office.context.document.goToByIdAsync("A1", Office.GoToType.NamedItem, function (asyncResult) { 
        // do something
        if(asyncResult.status != "failed"){
               Office.context.document.goToByIdAsync("B5", Office.GoToType.NamedItem, function (asyncResult) { 
                       // do something
                       if(asyncResult.status != "failed"){
                               Office.context.document.goToByIdAsync("C9", Office.GoToType.NamedItem, function (asyncResult) { 
                                      // do something
                                      if(asyncResult.status != "failed"){
                                              // do something
                                              Office.context.document.goToByIdAsync("D89", Office.GoToType.NamedItem, function (asyncResult) {
                                                      // do something
                                              });
                                      }
                               });
                       }
               });
        }
});
Show:
© 2014 Microsoft