Tuesday, September 27, 2016

InfoPath forms not displaying correctly in Chrome / FireFox

Recently I noticed that every form that I've created with Info Path 2013 (I know it's old-school, but no Nintex in this case) that contains Multiple Lines of Text fields was not displaying correctly in Chrome / FireFox e.g. the text was displayed on a single line and not wrapped.

In Internet Explorer, things look like this:

Another issue is that in FireFox, on editing the form noone could insert a few spaces - only one. The Enter key did not insert a new line in a Multi-line text field either. 

I managed to find the reason quickly - the text area that contains the field has the following property:
white-space: pre. Changing this to pre-line would work fine - you need to use a custom CSS file for that.

Of course you need the SharePoint Server Publishing feature enabled on the sites in order to inherit the CSS from the top-level site. Another one-off solution is to add this in a Content Editor webpart on the page(s) that contain your form...but I guess it's not one form with that kind of field that you'd use...

Friday, August 19, 2016

Link sharing in SharePoint Online just got tricky!

Update 23/08/2016: Activating the Document ID Service feature on the site collection level will fix that. The links will then work for any file types and not just Excel, Word, PPT.

Just recently (like 10 days ago) Microsoft has deployed some changes to SharePoint Online and specifically to the links to individual documents that you could obtain by just clicking on the context menu. This way of providing a link to someone was very quick and easy, hence heavily used by lots of people. It's just a click, compared to using the Share function or "Get a Link".

The only thing you need to be sure of is that the person that you give the link already has access to this document. Otherwise using the "Get a Link" feature would be more useful. But it also has the disadvantage - you are breaking the permission structure using these links and you don't know where your link will travel after you give it to the person... if it's an anonymous link this can even get out of the boundaries of your organization! Not a good deal of control there...

Few days ago, when I tried to share a document (a project plan in the Microsoft Project .mpp format) in this way - the user got "Page not found" error. Same thing when I tried to open the link :) Both of us have access to that document anyway.

So... I looked up the link and saw that it looks like this:


Now, that's the new thing. In these auto-generated links, there's a new bit - "document ID" as Microsoft called it. This is what's breaking the functionality.

An interesting fact is, that when I tried the same thing with Word / Excel / PowerPoint documents - all workred like a charm (like in the good old days - 10 days ago :). The links contain the same document ID, but they open fine in the browser.

After some research on the topic and a quick call with MS support, they advised me that this behavior is "by design" - great job Product teams. So from now on, every document that can't be open in Office Online (Office Web Apps) e.g. anything but Word, Excel, PowerPoint would fail and the user has to manually modify the link before providing it to another user - how usable is that?

There's also a Yammer hot thread on this... you can check it out in the next 12 days... before the IT Pro Yammer network becomes history, which is another sad topic and a poor decision in my view.

Of course... meanwhile we could still use the "Get a Link" feature and forget about the good permission practices in the organization. At least I recommend not using the anonymous links, unless you absolutely need this shared with someone outside of the organization.

Tuesday, May 10, 2016

Microsoft Flow first impressios

It's been an interesting week of follow-ups after last week's "The Future of SharePoint" event held at San Francisco. The world is excited about the many new (really new) functionalities and tools that were presented. Today I tested one of them - Microsoft Flow, which is still in Preview and is available to Office 365 FR tenants (or select FR people only).

Flow is similar in concept to IFTTT ('If This Then That'), but aimed at organizations rather than the individual, which means you can't get to it if you don't have a work or school account (Office 365).

Similar to Planner, the tool is not yet integrated into SharePoint, but feels like standing a little bit aside from it with its own domain: https://flow.microsoft.com.
It does, however suggest future tighter integration with Office 365 and SharePoint Online, as today I saw the Flow tile in the App launcher.

Going to the Flow website, very similar to Power BI and Planner, you need to Sign Up.

Once signed in, you can either browse the available Templates ("recipies ready to cook") which will allow you to connect about 35 services or you can start a new flow from scratch. In my example, I'd like to be emailed every time someone creates a new project in Project Online (which is the cloud brother of the newly released Project Server 2016.

Here you'd need to provide the URL for your PWA site collection, then you have just two basic options - "Add a condition" or "Add an Action" - just like the old school workflows for WSS 3.0.
That's understandable as Flow is designed to be simple in its core. So it's definitely not a full-blown Business Process Automation solution (like Nintex, for example) and the flows here are per user, so no centralized store and management of those.

When you choose "Add an action", you see the available hardcoded actions, sorted by the service they're related to. Send Email is under Office 365 Outlook. You'd need to sign in.

You can then configure the recipients, subject and body of the email - the basics. There are some predefined lookups to the current item that you can insert like Project Name, type, etc. That's cool, you just click on them and add them where appropriate.

Then all you need is a name for this new simple flow, you click Create Flow and Done.

On the next Project that gets created in Project Online, I get this:

Looks simple and clean to me. What are your thoughts? Have you signed up for Flow and tested it yet?

Thursday, May 5, 2016

Big changes coming to SharePoint Online!

After the new Microsft Mechanics episode with Adam Harmetz was published last night, I am completely stumped at what Microsoft are bringing forward!

Straight to the point:

- A mobile app for SharePoint is finally on the way (iOS, Android & Windows)! 

That's a bit overdue, but great news. Lots of users preferred OneDrive these days due to the great mobile experiences.

- Microsoft Flow - a brand new product, that allows users to build logic around documents and items in a super friendly way. 

That brings a couple of question - what would happen to the existing SharePoint Designer workflows? With the decision taken earlier to not introduce a new version of SharePoint Designer and considering the almost no changes that happened to it and the workflows since 2010 - I think those will be killed. The question is more likely until when they'll be supported?

How would Flow compete to veteran 3rd parties like Nintex and K2? Would it be the free quick go-to solution if you're after something simple or would it try to compete with them?

- Power Apps - a tool that will allow users to create simple, yet powerful mobile apps that can be run on mobile devices and work with SharePoint items.

That's really nice. Something similar to what Nintex were already offering as part of their Nintex Forms product.

- Easier, user-friendly site creation process - click and have a new site in a few seconds.

Only 2 templates availabe - team site / publishing site. We were advised that site templates are not good a while ago... here's the reason why. I've always avoided them as a best practice, but a lot of people use them, especially in large organizations.

- Easier page creation and editing - each new page will automatically be responsive to look great on any device.

Cool, but again - what would happen to the current pages? 

- Each newly created SharePoint site will also create an Office 365 Group with an e-mail address so that conversations can be started around files easily.

Does that mean that the existing sites will also have groups created? I doubt it considering the number of sites organizations may already have. So this will bring some inconsistencies between "old" and "new" team sites. We're about to find out.

- Users will be able to add links to anything in Document Libraries, not just files that are stored in the library.

Simple, yet useful. Doclibs were kind of limiting as of today.

- Users will be able to pin files that must be highlighted and they'll appear on top of the library.

Kind of like what Facebook brought as Featured Photos.

- The Sites tile in the App Launcher will be renamed to SharePoint, so no confusion on what's SharePoint anymore.

I love that :) No more questions like "How do I get to SharePoint in Office 365"?

And last, but not least.... what would happen to all the branding that's already in place? Looking at the new beautiful and responsive UI I don't think there's any way to automatically adapt the custom branding. More likely there will be "old" and "new" experiences going on simultaneously until the IT Pros and developers can adapt their Intranets and users to the new one. What are your thoughts?

Thursday, April 21, 2016

Yammer External Groups live today

Update 10/05: After deep dive-in with Microsoft, it turned out some domains like GMail, Hotmail etc. are blocked. I was however able to sign up in the free Yammer network of abv.bg (which is a free email service provider in Bulgaria) and surprise, surprise - there were already 335 members!

So... it's a hit or miss whenever you invite external partners if they're not using their corporate domains. So... working with freelancers anyone? Use external  networks instead - no restrictions there. Or we should wait for the Office 365 Groups to allow external users...

Update: It seems you can't invite external users to the external groups, unless they are existing Yammer users (e.g. they have a home Yammer network), which makes the service 50 % useless.
Going back to External networks if you need to collaborate with just anybody out there without knowing or asking them if they already belong to a Yammer network...

Starting today, we got a hold of the Yammer External Groups feature.

Previously, when people had to collaborate with external parties, they had to go through creating an external network and then create groups in there and invite people. That worked, however it was hard to keep track of which networks are you in and it was tough when you just had to post a quick message, you had to switch networks...

I've already tested the feature and it works surprisingly well - the external groups are clearly listed as such below all the internal groups. When you invite someone, they get the email invite, join and only see the external group they're invited to. Nothing else.

This is the experience for the external user when they join. They see your group along with the network name under their All Company group.

With external networks, a Network Admin could configure whether those external groups could be created by all users or by the admins only. So far I don't see the option to control the external groups creation, but the regular users can't create them in our network. I can also see that the option to create an external network is now gone.

So... enjoy the external groups and say goodbye to external networks.

Thursday, April 7, 2016

Overdue date not marked in red in SharePoint Online Task Lists

Hi folks,

Been a while since I've posted anything SharePointy.
One reason is the migration to Exchange that I was recently involved with and it's in fact still not completed, so expect Part 2 of the post anytime soon(ish) - it will include GMail to Office365 stuff.

Now, I've found out that whenever your dates in an out of the box task list become overdue, they are NOT marked in red if you've changed the Due Date column to include the time (and not just date).

Strange, isn't it? Yes, so you can't really use this as a very precise task/time tracking solution (yet).

Default (Due Date = Date Only) and today's date = 07/04, so any task before that should be RED.

Including the time, and the task is no more overdue :) I've talked to MS about it, and hopefully it will be changed in the future by the product team (which happens to be Project for that one).

So... alternatives are for you to use some list conditional formatting...which is another big topic I might write about in the future as I've had to do it as part of a project management solution.

Wednesday, February 17, 2016

DO NOT use Project Pro 2016 when syncing to SharePoint Online just yet

Project Pro for Office 365 2016 was released ~2 months ago.

As it came out slightly later than the whole Office 2016 suite (which had quite some troubles with OneNote syncing and OneDrive for Business), you would assume that it's a healthy product :)


In a synchronization with SharePoint Online, this thing simply won't work in your production.
If you sync a task or two, works fine. If you sync more than 50 (confirmed by MS) than it breaks the whole thing - your resources columns don't sync, same with the predecessors and that's just enough to stop you... there are other bugs with recurring tasks crashing the whole software, dates being messed up and so on.

I've raised this to MS a month ago and there's still no fix, they promised there will be a fix coming in one of the next public releases. To visualize what I mean..

All the resources are created in both the resource sheet in Project Pro and in the People Directory in SharePoint.

Project Plan in Project Pro 2016:

After the sync in SharePoint Online:

I'm not even going to start on the dates / times / completion stuff that breaks.

Now, after a downgrade to Project Pro 2013 - all works fine, however the installation of it is quite painful - you need to contact MS to get a link as it's not really available in the Office 365 portal as of today (unless you have applied for First Release on your whole tenant).

Tuesday, February 2, 2016

Migrating to Exchange Online (Part 1)

Yep, you got that right.

I volunteered and got involved  in a migration to Exchange Online these days and I thought it would be quick, nice and easy job to help the IT team in a mid-sized organization. Not even close!

The scope is the following:

3 IMAP e-mail solutions (5 domains, 3 geo-locations of the servers) -> Exchange Online

No migration tools and no external consultants will be involved in the migration.

The first thing you'd need to know when you plan and estimate your migration is speed. Depending on how important this is for you, you can choose the different options ahead.

Option 1: PST Import service 

Caveat: If your e-mail servers can't export a PST, then you need a 3rd party tool to do that.

Limitation: You can't import PST files larger than 10 GB or containing more than 1 000 000 items. So you might as well need a tool to split your largest mailboxes into multiple PST files.

1.1. Copy your PSTs to a secure Azure BLOB storage and then import them through the Admin Panel (you need to be a Global Admin)

We were considering to use the new Office 365 Import service launched last year (and still free, MS are planning to charge for it if you ship your drives) and we were very frustrated to find out the capping of 0.5 GB / hour when you import your PSTs. There's an additional prerequisite step to that, first you'd need to copy your PSTs in an Azure Blob, which for us worked as a charm - over 300 Mbps - and that's when the speed traffic police comes in and your happy face is gone :)

By speed traffic police I meant the Office 365 User Throttling - I still dunno how the PST import of 500 mailboxes, for instance could be considered user import. It's purely the migration team's job to export all PSTs, prepare PST mapping files and all that. I totally don't see it the same as if you'd import your data through Outlook - this is where there should the throttling apply, and not if these actions are associated from the Office 365 interface, but anyway... you do get the perks like calendars, tasks, contacts. It's never perfect.

Tip: If you run multiple PST import jobs at the same time - you get 0.5 GB / h for each of them.

1,2. Ship your hard drives to the nearest Microsoft data center and then import through the Admin Panel (still, you need to be a Global Admin)

This is usually the preferred method if you have slow bandwidth to Azure. On our tests, 300 Mbps were more than satisfactory and we don't use an ExpressRoute to Azure, This means that we can transfer 1 TB for ~13 hours. So in our particular scenario, shipping the hard drives would definitely take more than the copying to Azure, but if you have 10 TB of e-mail and slower connection to Azure, your choices are different.

If you still decide to go that dirt road (PST import in general), the official MS Import guide is here.

Option 2: IMAP migration

Obviously the only other option (I'm excluding user-handled migration through Outlook and all that, of course) is the IMAP migration. It comes in two flavors.

2.1. DIY e.g. get one of the many free 3rd party scripts out there and run it on your own environment - why would you do that?

This will get the source and target mailboxes in sync, but a big trouble with that is you need your source e-mail account passwords, and the destination (Office 365) passwords for the users as well. Not a big deal, unless your users are already in Office 365 and using stuff like SharePoint, OneDrive, Yammer, etc. A no-brainer to reset or ask them for their passwords.

2.2. Initiate the IMAP migration from the Exchange Admin Center

Before you start, a good survival guide about it is found here. The most obvious limitations:

  • Only items in a user's inbox or other mail folders can be migrated. You can’t migrate contacts, calendar items, or tasks.
  • A maximum of 500,000 items can be migrated from a user’s mailbox.
  • The maximum message size that can be migrated is 35 MB.
Provided this works for you, let's imagine you've already tried the PST import and you want to clear all stuff that you've imported and start anew. The most intuitive thing will be to delete the users - but they will be retained for about 30 days. A workaround is to rename and delete them :) 

Or... as a best practice empty those mailboxes through PowerShell.

Use the Search-Mailbox cmdlet and pipe it with DeleteContent.

Example: Search-Mailbox -Identity "John Doe" -DeleteContent

It's a bit slow, but maybe faster than opening the user's mailbox through Outlook (and for that you'd need to grant yourself Full Access to that mailbox first - lame and unprofessional approach).

So... the trouble with IMAP migration. If you run a single mailbox - the speed is still not much better - between 0.5 and 1 GB per hour. A disaster I'd say.

The key is concurrency - you'd need to run at least 20 mailboxes per batch so you can get your migration done in some realistic schedules that you can present to the business.

With the concurrency, we've easily reached speed of 10 GB per hour with 15 concurrent mailboxes. This totally corresponds with the Microsoft provided data, so you can bet on it. Of course, this excludes a lot of other factors which might block you from reaching such speeds - your ISP, your firewall, your current e-mail server bandwidth and so on and so forth.

In the process of setting this up we've found a nice little calc that helps you do the math.

So once you have your estimations and you prepare your CSV file for the IMAP migration, you start your sync. Everything goes well over the weekend, the Spring flowers are blooming and etc. NO!

There are many reasons why the IMAP sync can fail - wrong CSV format, wrong passwords, your e-mail server goes down, Microsoft Exchange Online goes down...but all of those you can either fix or just hope for Microsoft to fix as quickly as possible. But what to do when the sync fails and you want to start afresh?

Well, first the sync will not always stop if some of the above problems occur. It will continue running even if it runs fine for 1 mailbox and all the rest fail. So you need to stop it manually. From the GUI - I've noticed that stopping it manually leaves it in "Removing" state for more than 12 hours - dunno if it's a bug on our tenant or not, but then your only way is to kill it with PowerShell. The Remove-MigrationBatch command comes handy in this case. If you miss this part, your new sync with all the correct data will NOT run as the same mailboxes are already part of another sync which is not totally gone. Use the "-force" parameter, otherwise there is no result (at least in our tests).

Once you clear the migration job, you go to the GUI in EAC, you see it gone and you import your same CSV file and hope to get this running. No! 2 reasons:

If you import the same CSV file, EAC tries to be smart and doesn't detect the mailboxes which were part of the previous synchronizations. So rename your CSV file.

Your next attempt would also fail. Even if your mailboxes get detected and they go into the batch, they will fail. Don't ignore the error report, but download it and read the following:

The user "dimitar.miriyski@abc.xyz" already exists, but the migration batch that includes it couldn't be found.

Does that make sense? Yes, of course. Your Office 365 user is not deleted. But the migration batch is. So what's the problem with that? There's a history of all those batches... which you need to sweep off manually with the Remove-MigrationUser command. Hopefully you haven't messed with too many users in your failed batch :) Ideally it should never have failed, but things like that happen.

Another trick when running the migration batches is not to use CAPS in the batch title.

Option 3: A mix of 1 and 2.

It seems as the perfect cocktail - you do the bulk stuff with IMAP sync to gain the speed advantage and then you do the calendars, tasks and contacts through PST export and import. Not tested yet.


So... from the short time of research and testing this, I'd say there are a lot of things you'd need to consider and Exchange Online is not a toy. No wonder the Exchange Administrators are still out there, but in the next post from this series I'll see if I can prove that a SharePoint guy with some Office 365 knowledge and experience can do the trick for a small to medium sized company.

Tuesday, January 26, 2016

Syncing fields from Project Pro to SharePoint Online

Something that started as a quite simple requirement turned out into a more hefty task, so I decided to share it here.

So the requirement: Be able to sync fields from Project Pro to a SharePoint Task List in SharePoint Online. All great, works out of the box, with the exception of 2 things:

- If the column in SharePoint is of type "Multiple lines of text" and the type of text to allow is "Enhanced rich text (Rich text with pictures, tables, and hyperlinks)" that doesn't work correctly.

- If the column is of type "Person/Group" then this doesn't work as expected. Some resources are missing on consecutive synchronizations from Project Pro to SharePoint Online. I've taken this with MS to see what's going wrong, but for now if it happens to you - configure your resource or "Assigned To" (named by default) column to be of type "Single line of text" or think of it as just a string.

You will loose the functionality to check the person's status in Skype for Business (if you use that) and to click on the user profile and go to their Delve page (in Office 365). But you'll still be able to sort and filter on that column if you want to view a particular person's tasks.

I'll describe the steps needed to match the requirement to sync Task Descriptions to SharePoint Online. 

By default, the Description column in the Task Lists (coming with the default Task Content Type) is of type Multiple lines of text and has the "Enhanced rich text (Rich text with pictures, tables, and hyperlinks)" as the allowed type of text. I've just renamed the column in this example:

Fill in some tasks if you're the PM (or just one if you're a lazy blogger like myself):

Then open the Task List with Project Pro (provided you do have the license assigned and the software installed from the Office 365 Portal):

You won't see your description column:

When you go to File -> Info -> Map Fields, you won't be able to map anything to it:

Now, part of the solution is to change your column allowed text type to Plain Text in SharePoint.

But even then, you won't see it in Project Pro the next time you open your project plan.

The key is in the mappings. Add a new column in Project Pro. You can choose some of the predefined text columns, e.g. Text1:

Name it whatever you want, let's do Task Description to avoid any confusion. Hint: the columns in Project Pro and SharePoint Online don't really have to be using the same naming convention, as long as they're mapped. Right click on your newly created column and go to Field Settings (and no, double clicking on the column doesn't do what double-clicking on a row does, sorry):

Tile field - self explanatory:

Now, when you go back to the Map Fields you can definitely map your newly created column in Project Pro (although its name is not reflected in the mapping list - dunno why) to your SharePoint Online column which appears nicely as Task Description:

Once you're done with all your mappings, just click the huge Save button.

If you've tried to break things like me and inserted different values in the field in SharePoint Online and Project Pro, then you'll get this good warning. Skip this if you're a good user and didn't do that :)

The warning basically is quite liberal - it gives you the option to choose whether you like your Project Pro or your SharePoint Online value better and it's even displaying them and color-coding them for you. I'll keep the Project Pro value which says "Sync this description":

Boom! It's done.

(Optional) If you want to break things even further, you can go back to your column in the SharePoint Online Task List and change it to allow Enhanced Rich Text again and then open the Task List with Project Pro. You'll see this (and believe me, it gets even uglier when you include some links, etc.)

Hope that's helpful if you stumble upon it, I'll keep another post once I sort out the issue with syncing resources without using the string field workaround with MS (if at all).

Wednesday, January 6, 2016

New Year...OneDrive new UI and a bug in it

Update 01/02/2016: It seems that through the new UI you can now even upload folders (one by one for now) with drag & drop! Great functionality that has been missing so far...

Hey, it's been a while since my last post...holiday season got us all, right? :) Happy New Year, everyone! Let it bring you a lot of new tech, gadjets, innovations and of course health and happiness!

It's been more than a month since we all could use the OneDrive new UI and I've decided to share my first positive impressions of the it and a very unpleasant bug unfortunately, so you can take an informed decision whether to use it or switch back to the classic experience.

First, it looks really nice, based on HTML5 and it's even responsive! Good job so far for the OneDrive team. There must be something with Jeff Teper going back to leading the SharePoint and OneDrive divisions @ MS :)

The menus are arranged in a better way, even though the Version History is still kind of hidden in the context menu.

You can now drag & drop stuff in the browser... e.g. move a file or folder into another one - how cool is that? Let's hope we'll see that in SharePoint some day... which is still using some old-school XHTML 1.0.

There's also a file size column now added, which I don't use that much, considering the 1 TB storage limit, but anyway... another small improvement.

Now tot he bad news...

Whenever you try to share a folder (and it happens with files sometimes) and share it with more than 1 person they DON'T all get the notifications over email. E.g. you share it with Peter, Joe and Dean, then you check your mail (as you're in cc of those notifications by default) and realize that only Peter got the email with the link to the file.


After I've talked with one of my friends at Microsoft, I got a confirmation that this issue is only present in the new UI and is being worked upon, however it's now taking a few weeks and there's no resolution.

It all works just fine if you do share the file/folder with one person. And of course you can always forward the notification to the appropriate people once you see it in your inbox, but this is what OneDrive's for - avoid shooting a bunch of emails about the same file.

I'm hoping to see this resolved soon, otherwise we'll just have to use the classic experience...which is not that sophisticated to be honest, but at least one of its basic functionalities (the notification) works.

I might write another post about the NGCS (Next Generation Sync Client) that I was testing as part of the preview for more than a month now... still some mixed feelings about it, if you plan to use both the new UI and the new client organization-wide, maybe you should hold on...