Enabling to “Save site as template”

The ability to save the site as template is something that is not just convenient but really expected by PowerUsers who have seen SharePoint before.

However, in few cases SharePoint doesn’t allow you to save the site as a template. For example if you site has publishing features enabled or is a root site.

Luckily I have a PowerShell script for you which will enable this functionality again. One thing to remember here is although you will save the site as a template if it’s a root site for example – and you’re creating a new sub site under that site – expect some redirect issues. Obviously, don’t try to create a root sub site under the root site, got it? … clear as mud? ok moving on 🙂

Here are the PowerShell commands for on-prem:

$site = Get-SPSite -Identity "http://yourspsite/sites/collection"
$web = $site.RootWeb;
$web.SaveSiteAsTemplateEnabled = $true;
$web.Update();

Now when you go back to the site specified in URL- you’ll be all set to save it as a template.

Enjoy!

Top 10 takeaways from MSIgnite 2016 and where are we going with this

20160928_170150

MS Ignite just happened last week and after recovering from a small jet lag, I’m back home writing this short summary of what’s I’ve learnt over last few days.

1. General thoughts on this year’s Ignite
There were a lot of confused people, mostly SharePoint people, and believe me I wasn’t even trying to find them.
Main confusion point was: “why aren’t there enough SharePoint sessions”?
Well because it’s not a SharePoint conference … it’s, really re-branded TechEd … and the flavor of the decade is Azure so there was, naturally, a lot about Azure this year.
Many of my Microsoft acquaintances have actually switched from SharePoint related product teams to Azure related stack.
Keynote was all about Azure and posters all around the convention center were all about Azure, Expo Hall had many Azure banners and there were plenty of sessions on … yes, you guessed it Azure.

2. More community sessions
There were a lot more community sessions this year than anything. This year Microsoft set up 5 community theaters at Expo Hall and there were also about 5 other smaller areas also ran by community – so that’s like 10 community ran talks in parallel on a top of breakout rooms. Sadly, none of the community talks were recorded, perhaps next time, because a lot of people wanted to see the recording of those community talks but it’s much harder from logistics point to do post production on recorded content and just in general managing and making sure people don’t breach anything that Microsoft wouldn’t want to have recorded.

3. SharePoint 2016 Feature pack is getting released this Nov
Yes, can you believe that, it just feels like SharePoint 2016 just hit the market and it’s already got it’s first feature pack. Originally it was planned to be released early next year but that timeline has been accelerated so to speak. This could mean one of few things: the code base of the SharePoint Online is not that much different from on-prem version so Microsoft needed less time to create new branch … could be one interpretation.

4. Lots of implied context on where SharePoint is going
One interesting thing to observe is that there aren’t many big splash announcements. If you’ve been following tech news pretty consistently, you won’t be surprised by anything new you might have heard at Ignite this year. Few years ago, I remember, InfoPath made big news with being deprecated. Now, nobody even talks about the fact that SharePoint Designer is facing the same faith and not because it has not been announced but because you can kind of see where the tool-set is going and how it evolves. There is no doubt that Flow and PowerApps are going to get to pretty good level by the second quarter of next year, and that’s going to make SPD obsolete.

5. Lots on IoT
IoT made a lot of buzz and there were several MS booths with raspberry pies and other little gadgets which attracted inner geek in me. I think here is the gist … Microsoft penetrated the world of corporate process and document management and workstation patches and all that … you’re not gonna impress people with sliders and image carousels anymore … and that means to impress you need to go further, otherwise, you’re not driving the value; nobody’s gonna cut you a huge check for creating a site collection and few sub sites and adding several lists under it. The direction has switched to go outside of the traditional office cubicle and into the field … and the field is: manufacturing plant, technician’s toolbox, driver’s seat … whatever and wherever … that’s the huge new opportunity. It’s not a new market but that’s the market Microsoft is going after. That’s also the market where you can demonstrate impact in layman’s terms. What sounds more exciting “we ran workflows on 100,000 documents in 3 weeks” or “we enabled 100,000 patients find their matching organ donor in 3 weeks” … you go tell that to your non-technical relative and you’ll see what they say sounds more impressive. Lots of messaging like that was at Ignite this year.

6. SharePoint related business is still alive and well
It was interesting to look at all of the futuristic Microsoft booths and contrast that with all very reliable and familiar faces in vendor booths. There are many familiar vendors doing same great things they were doing for a while now and still successful and still in business solving everyday problems tons of businesses out there are trying to solve because let’s face it – as exciting as it is to [activate your coffee machine based on the calendar appointment] you still need to migrate 100,000 files from SharePoint 2010 to SharePoint 2013 :). And there is still Jon from Accounting who doesn’t get search results for something he’s looking for etc etc etc

7. Publishing sites are not dead
Recently I heard few people ask me “what’s going on with Publishing Sites? Are they dead? Are they next on the chop list?” Well, not according to Official Roadmap … they’re slated to be re-vamped in the beginning of 2017
ctxz-fxwaaajknl-jpg-large
What does this mean to organizations out there trying to decide whether to go publishing or not?
I’d suggest look at your publishing workflow. If you have team of 5 or 10 people deciding what will go on the intranet or not, then Publishing sites are probably for you and Microsoft will have some updated solution for you in the future. If you have 1 person publishing content online – then don’t bother with Publishing sites, they are much more complicated in terms of management and just overall more bulky, clunky etc. Don’t worry if you’re going to miss some of the publishing specific features because you can always activate Publishing feature on your team sites and get all the handy stuff you might be missing.

8. New SharePoint Development Framework
The preview of the new Development framework for SharePoint named SPFX is due for a world wide release later this year but you can already build with it if you sign up for a free SPO Developer site.
If you’ve been coding a while for SharePoint Online (or SP 2013) … you will notice that apart from the whole app model there is a shift on how you build and deploy the rest of the solutions. Go and check out more on that here: http://sharepointpromag.com/sharepoint/sharepoint-framework-spfx-released
To be honest, it’s not a huge breakthrough, just more standardized way to do the same thing some of us have been doing for a while now.

9. Adoption still the most common problem theme in SharePoint
Most sessions I’ve been to on SharePoint were mostly around adoption, and training, and engagement. And that’s the theme that started to emerge over the past few years. I mean, If you went to SharePoint conference few years ago, there might have been few sessions on adoption, but this year, it’s like a topic of the year. One thought that kept bugging me while sitting in those sessions: why is there such a problem with adoption. Maybe because the solutions we’re putting in place often don’t address the core business problem. Maybe we’re targeting things that our users don’t care about. Here is something I never heard about: Apple having adoption issues … why is that? Some food for thought. Not to say that SharePoint in itself is a bad product, it’s a box of LEGO, and it’s up to you to figure out how you’re going to put them together to make something compelling for the users.

If you’ve made it this far, congratulations … and you’re probably 10. wondering whether you should come visit next year’s Ignite. Btw, the conference has been announced and this time it’s in Orlando in Sep 2017, almost same dates.
Here is my guidance:
If SharePoint is new in your organization or you have just implemented it – Definitely Go to Orlando for the next Ingite, you’ll meet a lot of people who will help you with some of the things you might be struggling with right at that time.
If you’re planning to migrate from something very ancient (incl. SharePoint 2010) – Definitely Go to Orlando next Ingite, same as above, chances are you’ll benefit from all the fresh opinions and ideas
If you’re running business as usual on somewhat up to date version and not planning any major changes – you can go but don’t expect anything exciting for yourself
If you’re a consultant like me, then first two apply to you – so you should probably go to Ignite 2017 as well 🙂

Hope this was helpful!

Enjoy!

Source Code: Build cross-platform native mobile applications integrated with Office 365 using Xamarin

Hey all,

Thank you for attending MS Ignite session on “Build cross-platform native mobile applications integrated with Office 365 using Xamarin”.

Here is the source code we used in the demo.

Few tweaks to a code before you run it:
1. Replace value of the clientId variable in AuthenticationHelper.cs (with your own value from Azure)
2. Replace value of the returnUri variable in AuthenticationHelper.cs (with your own value from Azure)
3. In MainActivity.cs search and replace “https://sharemuch.sharepoint.com/sites/ignite” with your own SP Site
4. In MainActivity.cs search and replace “EquipmentMaintenance” with your own list (there are two instance of this)
5. Don’t forget to set up Azure

Enjoy!

Send SharePoint Online document library files via email using MS Flow

We had a business requirement for one of the customers recently where they required to implement document sign off process which involved external vendors and internal approvers.
The process would be something like this:

1. Requestor sends an email with a document package to external party (external email)
2. External party reviews and signs the document package and email-delivers signed documents to a reviewer (basically reply to an email with signed attachments)
3. The reviewer archives the package into a central repository (this part is manual for the purposes of this demo)

workflow-diagram

Sounds simple right? But wait, doesn’t Office 365 not support email enabled libraries etc?
Let’s see how to do this in Office 365 and Flow!

If you haven’t already, be sure to sign up with Flow here: https://flow.microsoft.com
For our solution we’re going to be suing SharePoint Online to store and receive documents and Outlook – both part of Office 365, so make sure you have adequate subscription which includes both.

For the first part where Requestor sends a document package we’re going to create the following Flow:
1. Navigate to https://flow.microsoft.com/manage/flows
2. Click [Create from blank] 3. Search for the following [Action] … “When a file is created”
4. Specify the parameters for the site and document library so our flow knows which library to monitor, as shown below

when-a-file-is-created-action

5. Click [New Step] and [Add an action] 6. Search for [Send email] action and configure it similar to how it’s shown below

send-email-action

As you can see above, we specified the address in the [To] field. This can be internal or external address, you can also pull the address from the document metadata if such detail is available in the document library list.

That’s it, now save your Flow and it’ll be u and running sending emails and attaching documents to the specified email address every time a new document is created in the library you’ve chosen earlier.

Now, to capture emails coming back from the recipient and putting the attachments in that email into a defined folder; we’ll create a new flow to do that.

1. In the new Flow, search for action called [On new email].
You can configure options here depending which mailbox you want to monitor, we’re just going to leave it as Inbox of a current user
2. Click [+ New step] -> [ … More ] -> [Add an apply to each] This will make sure that the Floe iterates through all of the attachments in that email before executing next action
3. Click [Add action] within the newly created [Add an apply to each] scope and search for [SharePoint Create File] 4. Ensure you configure where you want to drop off your files. In my case I’m dropping the files off into the [Shared Document] library and create a folder with the name of the sender so that users can quickly find packages sent by a particular sender. See below:

save-files-to-sharepoint

That’s it, save the flow and it’s up and running.
Now every time you have new email with attachments coming to the mailbox, the attachments will automatically (in few minutes) end up in the SharePoint library you specified.

If there are any run time issues, you will get a notification from Flow to let you know what the problem was … and let me tell you that it’s pretty descriptive because those activities are very discreet so there is little room for ambiguity.

For those of you who worked with SharePoint Designer before you will find that there is no viable solution in SharePoint Designer to have your attachments sent via email in SharePoint Online, there was a custom activity written by a community but it requires to be installed on-premises so no luck for SPO.
I was pretty impressed how quick you can create a pretty robust flow and if existing actions are not enough with what you need there is always a way to extend – and if that’s what you need, drop me a note!

Enjoy!

Microsoft Ignite session on Office 365 and Xamarin

MSIgnite_FB_Breakout_ILLO

For those who are coming to Microsoft Ignite this year in Atlanta … you should check out Community Theater sessions where a lot of cool new solutions will be rapidly presented by the community in 20 or so minute session.

One of them is mine this time … focused on Building cross-platform native mobile applications integrated with Office 365 using Xamarin.

The main concept behind my session is that SharePoint is great on a desktop, at the office, but isn’t it about time to take it on a road where much of our day happens? As a SharePoint developer, you already have a wealth of experience on how to work with the platform. This session helps you get started building an Android app which interacts with SharePoint Online. Get all you need to build your next big idea.

From here you can also attend:
Build real business solutions with Office 365 and OfficeDev PnP by Paolo Pialorsi
and
Explore cross-platform mobile development end-to-end with Xamarin by James Montemagno

SharePoint Online Planner and what’s it good for or not

SharePoint planner has started getting rolled out to multiple tenants in Office 365 and what seem to have been a nice feature at a glance, in a last week or so, I actually had a chance to use it … and I have some thoughts to share.

planner

My use case: I’m working on a software project analysis and need to enter whole bunch of tasks and activities into a tracker because I like how the planner captures then and makes pretty graphs out of them

-I like how you can add tasks into buckets, but unfortunately you can’t tag buckets to later on represent them in a graph. You can just create a bucket and delete it

buckets

-Task details sometimes don’t get saved?!!
Seriously, this was the most annoying. I simply created a new task, then went into it again to add some comments and then went again to change the status and my comments were not there. Some time I got “Something went wrong ” message when exiting the task which told me that things didn’t go as planned but didn’t tell me what happened. This is something that Microsoft must fix urgently because loss of data is a sure way to get people mad. Like, I don’t mind seeing the error message but not seeing anything at all and trusting that your data is there when it’s not, is not a right way to go.

data gone

-I like the color coded categories but they don’t show up anywhere in charts.
Here is the thing – if you’re going to color code something, it better be better than just something no-one will ever notice, what’s the point of color coding then? Honestly, I expected the color coded tasks to show up in that way in my charts (which I’ll get back to next), but they’re basically not used anywhere except for a tiny square next to a task.

color codes

-Task charts are too rudimentary
The only thing you seem to be getting at this time is the break down of what’s been completed, in progress, not started … which is one of the metadata categories but what about those color codes? other metadata? My guess is that MS will be releasing more of that good stuff over the next little while but currently it’s pretty limiting.

charts

-Clicking on files, will take you to a swanky new site collection for this particular “Plan” with one and only document library. But will it?
The URL of the coument library certainly implies the site collection convention [company]/sites/[plan name] … but whne you go and check site collections in SharePoint Online Admin Center – it’s actually not there. So basically it’s not a site collection or maybe it is and stored somewhere else. Who knows … I haven’t tried hacking it further but one thing I know you can’t go outside of the document library, you just get redirected back to the document library.

files.

-And my final thought for today … you can’t have planner charts or any other dashboards in your SharePoint sites. I think it would be hugely beneficial to have you planner tasks show up on a home page or some other project page or something, currently it’s a customization … which is great, the API is there … bit that’s a topic for a separate discussion.

I certainly hope you’ll have a chance to try planner for yourself and see how it works for you.

Enjoy!

Slides and Source: Start building native mobile apps for SharePoint

Thanks to many of you who have been fortunate to attend my SharePoint Saturday Vancouver session on building native mobile apps for SharePoint.

Here is the link to the source code used in the presentation (yes, this is the one that actually worked in the end 🙂 ):
Link to the source (76.5MB ZIP with libraries included, ready to deploy)

To open this project successfully, you’ll need:
-Visual Studio 2015 (try on older versions if you like but I haven’t)
-Xamarin (latest, you can use the trial)
-Android device (preferably, if not you can try emulators but my experience with them was painful)
-Office 365 SharePoint Developer Site (you can use trial)
-Windows Azure (also, trial if you don’t have one)

Here is the slide deck:

The video recording of the session should be available mid next week!
Enjoy!

Re-enabling elusive [Edit the current view] link in list web part properties

Today I got to the bottom of the most annoying issue which happens to me every now and then, related to not being able to see [Edit the current view] link when editing a WebPart showing a List View.

web part props with edit showing up

In my case, I needed to add few fields into the Blog Posts web part view and I just couldn’t because the link wasn’t there.

no edit view link

Here is how to enable this link using SharePoint Designer.

1. Open SharePoint Designer and connect to the blog site URL (news site)
2. On the left hand site pane in SharePoint Designer, click [All Files]; if the list of files doesn’t show, click Refresh
3. When you see the list of files, select [default.aspx] , [Check it Out] and [Edit] it in [Advanced Mode] 4. Search for the Viewdefined within WebPartPages:XsltListViewWebPart string within the [default.aspx] 5. In that view definition you will find the following attribute ReadOnly="TRUE" as you can see below.

spd code snippet

6. Remove it and save the page; [Check In] and [Publish] 7. Now when you navigate to the web part properties on your site – the link should be available.

Good Luck!