Sunday, December 9, 2018

Puzzlepart presents modern PDF conversion/export for SharePoint

screenshot

If you have Adobe Creative Cloud licenses you might have installed Adobe’s integration with SharePoint and OneDrive to allow PDF handling from document libraries. Two of the included functions from Adobe are to convert files to a PDF file in-place in the library, and to download files as PDF from the library.

See https://adobe.com/go/o365pdf for more information on Adobe’s offering.

If you however don’t have the required Adobe licenses or don’t want to go through their install process I’ve cooked up a simple solution – Just for you!

Today the API’s in SharePoint are at a point where you can create a SharePoint Framework solution using first class functionality in SharePoint to perform PDF conversion without any extra modules.

By installing our tenant wide list extension you can with very few clicks enable conversion and downloads of files as PDF files in all your SharePoint document libraries.

Get the solution at https://github.com/Puzzlepart/spfx-solutions/blob/master/Pzl.Ext.PDFExport/README.md

Enjoy!

Saturday, December 1, 2018

Presentation and files from my ESPC18 session on Groups/Teams governance

I had an awesome time presenting “What Options do You Have to Govern the Lifecycle of Office 365 Groups / Teams?” at the European SharePoint Conference this week. The audience seemed very interested and I got a few questions at the end for every one to hear, and 20 minutes 1 on 1 after that.

The demo scripts can be found at https://github.com/wobba/espc18

Wednesday, November 14, 2018

Sending e-mails in Microsoft Flow using SharePoint

Introduction

image

A lot of Flow scenarios involve sending alert or information e-mails to someone in your organization.These are typically e-mail which don’t require a response. Something happened, and you want to notify someone. And this is what this post is all about.

Yeah, yeah, we should cut down on e-mails, but that’s not happening any time soon – so read on!

Wednesday, October 31, 2018

How to remove yourself from an external tenant/organization–when you’re done collaborating and it clutters Teams

You might have clicked your organization name in Teams and see this long list of external tenants you might have been part of for some reason. When you’re done you might want to weed the list.

image

Leaving just the teams/channels will still show the external tenant, so in order to remove yourself navigate to: http://myapps.microsoft.com. This page also lists application you have access to in external tenants.

On this page click your photo and pick Profile.

image

The next page will list all tenants where you are a guest, and you can remove yourself as a guest user manually.

image

Note that this will remove you as a guest user in the external tenant. This means that if someone has shared documents or similar with you, you should not remove yourself as a guest user. But if you don’t have any relationship with the external tenant any more, you can safely remove yourself – and they can re-invite you if needed.

The official documentation for this can be found at https://docs.microsoft.com/en-us/azure/active-directory/b2b/leave-the-organization.

Monday, October 22, 2018

Get Hygge with it – Your 5 Step Guide to ESPC18

1. PLAN Your Sessions

Explore the ESPC18 SCHEDULE to identify what sessions you’d like to attend. Create your own schedule suited to you. If you are travelling with colleagues, divide and conquer by  attending different sessions. Afterwards swap notes to increase your learning.
Don’t have time to delve through our 120+ conference schedule? We have created dedicated pages to save you time. Check out the ESPC conference schedule based on IT PRO, DEV, BDM, AZURE or MICROSOFT SESSIONS.

2. CONNECT with Your Peers

Join the ESPC18 App (Login details announced in the coming weeks) & follow the hashtag #ESPC18 to find out whose attending. Why not make your presence known by sending out a tweet introducing yourself. Arrange to meet new individuals at ESPC – you never know what you might discover! Helpful tip: Carry some business cards with you to share with the new people you meet.

3. LEARN, Learn, Learn

Before arriving at ESPC, take some time to identify what questions you want answered. Prepare them advance to ask during a session Q&A. Why not take a break from sessions and advance your skills at the ESPC labs or check out the Ask the Experts session. Remember, it’s good practice to note three important key takeaways from each session.

4. Have Fun

With 2,000 delegates expected to attend, ESPC offers a host of exciting day and night experiences. Check out the WOMEN IN TECHNOLOGY LUNCH, a jam packed EXPO HALL or challenge other delegates and the ESPC team to some fun games in the Community Area.
Not enough? Be sure to join the EXPO drinks on Tuesday evening or enjoy a magical night at the sell-out ESPC18 PARTY: A NIGHT AT THE CIRCUS.

5. SHARE with your Team

Schedule a meeting post conference to share your key learnings with your fellow co-workers. Impress colleagues with your advanced knowledge while maximizing value for your company. Share your inspiration and make plans to implement what you learned.

Still undecided about attending The leading European SharePoint, Office 365 & Azure Conference? Visit 10 REASONS TO ATTEND ESPC18 to see why you need to be there.

BOOK YOUR TICKET today and use coupon code ESPC18SPK to receive a €100 discount.

Wednesday, October 17, 2018

Using pnpjs v1.2+ with Internet Explorer 11

man and woman lit the two lighters they are holding

When pnpjs v1.2 was released the PnP team made a wise decision to remove support for IE11. The decision to drop support for IE11 means some of the functions will fail if you use pnpjs in for example a SharePoint Framework component, and the user is using Internet Explorer 11.

The direction is wise in my opinion because IE11 is 5(!) years old, and from a programmers perspective it lacks features you would expect on a modern browser. As an example, how old is your phone? Most likely the browser on your phone is a lot better than IE11. In this day and age 5 years is an eternity.

The issue comes down to several points:

  • Older windows versions have IE11 as the default browser
  • Your IT department might not want to support a 3rd party browser
  • If you are running Windows 10 (now 3 years old), IT might have kept IE11 as the default browser because it’s there
  • You have some legacy plugins or LOB application only working with IE11

All of these might be valid points, but if you have clout, push IT to rid themselves of IE11, and switch it out with Edge, Chrome, Firefox or some other browser.

Unfortunately, reality is that companies will continue to use IE11 as long as it’s shipped with Windows, so come on Microsoft – kill it already!

So how do you backwards proof your application if you are using pnpjs and IE11 is a requirement? Take a look at the updated official documentation https://pnp.github.io/pnpjs/documentation/polyfill/.

Previously you would have to add manual polyfills as mentioned in this github issue, but this is now made easier.

Add a reference to @pnp/polyfill-ie11 with install --save @pnp/polyfill-ie11, and anywhere in your code where you import pnpjs, add

import "@pnp/polyfill-ie11";

If using SearchQueryBuilder, then you need and additional import statement – but read the docs and you’ll be fine.

Photo by Element5 Digital at Unsplash.

Thursday, September 27, 2018

Workaround for removing a deep folder structure in SharePoint

Deep water signage

I had a client which were not able to delete a deep folder structure from SharePoint which I’m guessing was synced in via OneDrive.

The error they got when trying to delete anything in the structure was “Error Code: 6404” – not a very descriptive error.

image

I tried all sorts of API’s, but having worked with SharePoint and Windows for a while I figured this had to do with a total path being too long, and I was correct.

In the end I renamed every single folder to “a”, just one character, and then the total path length was short enough for SharePoint Online, and the structure deleted nicely.

Photo by Rosie Kerr on Unsplash

Example of wrapper to ease usage of Graph calls in SPFx

silhouette of trees and purple lightning

Waldek Mastykarz wrote a good post about not passing the web part context all around your React components, which is good advice. And as Waldek pointed out after reviewing my code I pass the full context and not just the GraphClient. So ideally, passing just what you need is better, but I’m lazy at times :) And it gives you the reader an opportunity to improve my code :)

I tend to create static helper classes, and here’s one approach to ease calling Graph API’s throughout your solution.

The wrapper class is quite simple, and I’ve created helper methods for GET, POST, PATCH, DELETE.

To use this you would first initialize the class in your main web part code.

public async render(): Promise<void> {
   await MSGraph.Init(this.context);
   ...
}

and somewhere in your code if you wanted to get Group data for a group you could use something like this:

import { MSGraph } from '../services/MSGraph';

...

let groupId = this.props.context.pageContext.legacyPageContext.groupId;
let graphUrl = `/groups/${groupId}`;
let group = await MSGraph.Get(graphUrl);

Photo by Jeremy Thomas at Unsplash

Monday, September 10, 2018

An approach to search for a URL within a page or document in SharePoint

image

The Search Explained Yammer network is a great place to ask the weird and quirky search questions. Unfortunately it’s not indexed by Google, so answers there will not benefit everyone – which is why I’m writing this post.

A couple of days ago someone posted a question if it was possible to find pages in SharePoint which contain a specific link. The need was to identify broken links. Use-case can be if you rename a file, and want to find all pages linking to that file before renaming – to make sure they still point correctly.

This post will show you one approach which works, and if you have a better suggestion, please let me know.

Question is; how can you go about finding a page with the link https://contoso.sharepoint.com/sites/collection/site/library/document.docx as part of the content?

Monday, September 3, 2018

Puzzlepart presents the modern flexible Divider web part

Did you ever think the Divider web part for modern pages was too restrictive? Maybe you wanted to cross that divide with a wider one, maybe you wanted to separate with colors? Don’t worry – now you can!

The sharing minds of Puzzlepart hereby introduce the flexible divider web part which allows you to set both the width and the color!

preview

Get the web part code from the link below, or contact us if you want assistance on a pre-compiled tenant wide distributed web part.

https://github.com/Puzzlepart/spfx-solutions/tree/master/Pzl.Part.Divider