New Archive Button in Outlook

A new “Archive” button has been added to the ribbon in Outlook:


Note, this Archive button has absolutely nothing to do with Outlook’s archive functionality. This new button is simply doing a move of whatever items are selected. So, if you’re in the habit of dragging messages into a folder when you don’t want to see them in the main folder any longer, you can use this button instead to accomplish the same thing.

Outlook Online also has an archive button, which does the same thing as the Outlook Client:



Where do “archived” messages go?

By default, they’ll land in a folder named “Archive” which shows up as a top level folder:



How to change which folder is used?

In the Outlook Client, go to File –> Tools –> Set Archive Folder…


Changing the folder will take effect immediately in the Outlook Client, and will sync to Outlook online and take effect there in about 15 minutes.


Keyboard Shortcuts

One more difference between Outlook Client and Outlook Online: keyboard shortcuts. In the client you can archive items via backspace, in Outlook online it’s “e”.


The Office 365 Connectors Concept and Purpose

Office 365 Connectors is a new feature for Office 365 Groups that allow content from a variety of services to be surfaced in the Group feed. For example, imagine an IT consulting company that has IT and Sales staff that need to keep up with the changes to the Office 365 service. Each day, different members of the team check the MS Office Team Blog as well as news sites and they email each other links and interesting content. Also, the sales team will periodically update customer info in Salesforce, including customers who use Office 365, and they email the IT team relevant info about these customers.

To make this process easier, the team could create an Office 365 Group and use that in place of email. As documented elsewhere, this provides a number of benefits, including a OneNote notebook, a document repository, and others. However, with the Group, the team members still need to be checking other sources of info, as well as the fact that the sales team needs to remember to post content to the Group for things that they updated in Salesforce.

This is where the new “Connections” feature comes in. It allows users to add a “connection” to Salesforce, so certain updates will trigger an alert that gets sent to the Office 365 Group. (Of course, connections can be made to dozens of different services, not just Salesforce).

Also, a connection can be configured for the Office Team Blog (via the RSS feed connector), so any new content that is posted there will appear in the Office 365 Group.

As another example, a Bing News Feed could be added so that a daily summary of news articles that mention Office 365 could be added to the Group.

Again, it’s easy enough for users to go check the blog and other sources, but this puts all of this content in one place.

This “connector” feature also highlights the difference between a Team Site and an Office 365 Group. In a Team Site, we would have added web parts to the home page to surface this sort of content. With Groups, there is no customizable home page, and the main center of activity is the inbox. So connectors are, in a way, bringing us functionality that we’ve had in the past, though connectors also add the idea of surfacing content on a schedule or based on events, and bringing that info to people’s inboxes, rather than requiring the users to go look at a page to find out if something has changed.

On the other hand:

Who, exactly, has ever wished that all of their coworkers could have the ability to sign them up for more mass emails?

Because that’s what Connectors bring to the table.

Connectors are about surfacing relevant info from a variety of sources in one place.

And that place is your inbox.

So again, you might be part of a group that’s involved in something you have to do a few times a month, and the Office 365 Group allows the team to have conversations and such, which is great. And then one team member decides to set up a connection to a couple services, and now you’re getting several additional emails a day.

Connectors don’t allow you to specify that particular users should get the alerts, and you can’t opt out. Again, the “old” model was to have all this information from these different places aggregated on the home page of a SharePoint site, so it was there whenever you wanted to go see it. The new model is to funnel all of this content through your inbox.


Getting Access to Planner in Office 365

Microsoft has made “Planner” available to First Release customers. However, it doesn’t automatically just show up in your tenant. You have to go through a short procedure to actually register for it.

Instructions for doing so and the link to register are available here (If you’re already in first release, then see step 2):

The Future of Power View and Comparing Data Refresh Options in Power BI

Oh Power View, we hardly knew you.

From Microsoft support:

“The Power View button in the Reports group has been removed from the ribbon in Excel 2016 for Windows. The interactive visual experience provided by Power View is now available as part of Power BI Desktop.”

This support article goes on to say that Power View can still be turned on in Excel 2016 and is still supported. But this means that creating new projects based on Power View is now questionable. Though, the article is correct: the functionality of Power View is indeed available in Power BI. It’s essentially the same tool from a usage perspective, so if a user knows how to build dashboards in Power View, they’ll be up and running with Power Bi in minutes. Though, while building dashboards is the same, figuring out how data is refreshed and ramping up on licensing is a bit more challenging. So, following are different usage scenarios for refreshing data, starting with Power View in an Excel workbook that’s not hosted in SharePoint, and progresses though different options up to Power BI. Note, in all cases the basic scenario is the same: a dashboard that gets its data from an on-prem SQL Server database.

  • If Excel with a Power View sheet is used without SharePoint, then an employee could open the Excel workbook which could be stored anywhere or even emailed to users. The workbook could be configured to automatically refresh the data from the database as the user opened the workbook.
  • If Excel with a Power View sheet is used with either SharePoint on-prem or Office 365, users would be able to view the dashboard in their browser. However, the dashboard would contain the data as it existed the last time the workbook was refreshed. To refresh the workbook, a user would have to open the Excel file in Excel, refresh the data connections, and save the file.
    • If everything is set up correctly and if the moon is full, users could refresh the workbook in their browser. However, the refreshed data is not saved back to the workbook. So if Sal refreshes the workbook in the browser, he’ll see the refreshed data but when Sue views the same dashboards several minutes later, it won’t have the refreshed data, and will only display the data as it existed the last time the workbook was saved.
    • As an alternative to having a user opening the file and refreshing, a PowerShell script could be used.
  • If SharePoint on-prem has PowerPivot for SharePoint installed, then the data connections could be set to refresh on a schedule. Note that PowerPivot for SharePoint has additional licensing and hardware requirements. If it is not already installed, installing it is not a trivial process.
    • This leaves out a few technical details. For example, automatic refreshing of data sources isn’t supported for Excel workbooks that have Power View worksheets in them. But a Power View could be created in SharePoint outside of the Excel file.
  • If the free version of Power BI is used, users would be able to view the dashboard in their browser. However, the dashboard would contain the data as it existed the last time the workbook was refreshed. To refresh the workbook, a licensed user would have to navigate to the Power BI site and click a link to refresh the data connection. To view the dashboard, users would only need to sign in to Office 365, and click a link to navigate to the dashboard. (The documentation is confusing on this point, but this is the behavior I’ve seen. To be clear, when I tested it, one user who had a Pro license was able to refresh the dataset, while other users who only had the free version of Power BI were able to view it).
  • If everyone who is going to view the dashboard has a PowerBI Pro license, then the dashboard can be set to refresh automatically on a schedule. Users would only need to sign in to Office 365, and click a link to view the dashboards in Power BI. This is the nicest options for users. However, if users are not already licensed for PowerBI, getting licenses for all users is not a trivial cost.
  • Or, as an alternative, use one of the several available methods for getting data into Azure SQL. Power BI can refresh data from Azure SQL once per day without a Pro license. This does mean having to pay for an Azure SQL instance, but that could wind up being quite a bit cheaper than paying for the Power BI Pro licenses.

Operation Timed Out on the Resource Availability Report in Project 2010

One user was getting an error while trying to view the Resource Availability report in Project 2010, though the report worked fine for all other users. It turns out that the error message in the log file was one of the generic messages that didn’t mean too much: “operation timed out”. So, it wasn’t reporting any sort of permission issues, it was just reporting that the database wasn’t able to finish the queries in the default time of three minutes. So, one option is to go change the config file on the server and allow it to run for more than three minutes. But before doing that, there’s another possibility. On the Resource Availability report page, there’s a section that allows you to change the date range and the units from weeks to days or months:

resource report options


When a change is made to the above, the server remembers that change and defaults it to that for the next time. So, if a user changes the dropdown to “days”, the next time they navigate to this page, “days” will already be selected. However, if the system can’t handle reporting on days within the allotted three minutes, then the error occurs. And, when the user navigates back to that page, it will default to days again, generating the error again, without giving any opportunity to change the selection back to weeks or months.

In light of the above, try the following:

  1. Navigate to the resource center
  2. Make sure that no users are selected
  3. Select one resource that does not have any tasks in the next couple months. Perhaps an old resource that shouldn’t be in the system?
  4. Click on “Resource availability”

If my guess above is correct, then the report will run fine, as there is no data for the user, and as such the timeout won’t be hit. If the report runs, then check the units drop-down. If it says “days”, change it back to weeks. Also, check the date range. If the range is large, make it smaller.

If the above doesn’t work, then the next step will be either troubleshooting the SQL server, or working with IT to get the config file modified to change the default timeout value to a higher number.

Disable Skype for Business for O365 Users with PowerShell

There’s an excellent write-up for this here:

Follow the above, it works. Following are just a few clarifications on a few of the steps for the “Disable Skype for Business” section.

  • In step 1, it has a command where you need to supply the “AccountSkuId”. Note that it explains how to get this in the previous section:
    • Get-MsolAccountSku | Format-Table AccountSkuId, SkuPartNumber
    • This command lists the AccountSkuId in the left-hand column of the output of this cmdlet. My output in my developer tenant has two values:
      • contoso:DEVELOPERPACK
      • contoso:POWER_BI_STANDARD
    • This matches what is seen in the browser when looking at license info for a given user:

o365 licenses

  • The last part of the command is “-DisabledPlans MCOSTANDARD”. Again, look above to get the instructions on how to determine the value for this argument. This command indeed disables Skype for Business (MCOSTANDARD), but you can disable the other services as well. Just look at step two in the previous section. Though, the list of services it provides that can be disabled has changed since this article was published, and is likely to change again. So don’t rely on the list, and instead run the “Get-MsolAccountSku” command that is listed below that list. When I run it on my developer tenant, I get:
    • SWAY
    • INTUNE_365
  • In the browser, when I click the arrow next to “Microsoft Office 365 Developer”, the following is displayed:

o365 licenses_expanded

  • Again, this matches with the PowerShell output, though the names are a bit different. To confirm the license names that appear in PowerShell? Good question. I didn’t find a reference with all possibilities listed. Though, if you do a view source in the browser on the above page, and check the source for the individual checkboxes, the license names are the values of the inputs:

o365 licenses_source

  • One more note, the command to disable licenses works, but how to re-enable them? Well, the –DisabledPlans argument is optional, run the commands again without that argument:

$LicenseOption = New-MsolLicenseOptions -AccountSkuId contoso:DEVELOPERPACK
Get-MsolUser | Set-MsolUserLicense –LicenseOptions $LicenseOption

Conditional Formatting in MS Project 2010 via VBA

This is a bit tricky, as Project doesn’t give the normal hooks for getting access to cell properties, like Excel. Also, the event model for Project is accessed a bit differently.  So, a couple possibilities:

Marked Fields

VBA can set a row as marked, and the style of marked rows can be set via Gantt Chart Tools –> Text Styles –> Item to Change –> Marked Tasks

Once the formatting has been set, it’s simple enough to change a row to marked:

Dim t As Task
For Each t In ActiveProject.Tasks
If t.Cost > 10 Then
t.Marked = True
t.Marked = False
End If

Formatting Individual Cells

However, this colors the entire row, not an individual cell. To shade individual cells, there’s a function named “Font32Ex”. The difficulty with this function is that it works with the selected cell, and doesn’t take a cell reference. To select a cell, we can use “SelectTaskField”:

SelectTaskField Row:=100, Column:=”Cost”, RowRelative:=False

RowRelative is key here, in that the above will select the 100th row, regardless of where the focus was. So, we can put the above in a loop:

Dim i As Integer
For i = 1 To pj.Tasks.Count
Dim t As Task
Set t = pj.Tasks(i)
If t.Cost > 5 Then
SelectTaskField Row:=i, Column:="Cost", RowRelative:=False
Font32Ex CellColor:=62207
SelectTaskField Row:=i, Column:="Cost", RowRelative:=False
Font32Ex CellColor:=-16777216
End If

Note: the color values were obtained just by recording a macro and changing the color in the macro.

The above meets my needs, but perhaps the cell needs to be changed on edit, and not loop through all tasks. If so, check out the technet article that goes over hooking into task level events: