August 6, 2020

Introduction to SharePoint Spaces

Overview:
Microsoft recently launched SharePoint Spaces and it is in preview at this moment. During this article we will cover the following things.
  • What is SharePoint Spaces?
  • Characteristics of SharePoint Spaces
  • Real-Life Use cases for SharePoint Spaces

What is SharePoint Space?
  • SharePoint spaces is a web-based, immersive platform, which allows us to create and share, secure, and extensible mixed reality experiences.
  • SharePoint Space adds a new dimension to our intranet by using 2D and 3D web parts to create a mixed-reality vision.
  • Building space is a lot like building a modern site -- that is, we create the space by choosing options such as structure, background, and theme. And then add web parts using 3D objects, 360° images & videos, 2D images, text, and more.

Characteristics of SharePoint Spaces:
  • Cross-platformSupports a wide range of web browsers and mixed reality devices.
  • Made for creatorsCommingle 2D and 3D content to create custom experience that tells our stories in stunning 360° view.
  • Secure and compliantSecure on Microsoft 365 ecosystem.
  • Integrated and extensibleSince this is a platform, Microsoft will grow over time to include 3rd party web parts and extensions using the SharePoint Framework.

Real-Life Use Cases where SharePoint Spaces can be utilized:
We all know SharePoint Spaces provide Mixed Reality experience to our SharePoint intranet portal. It can be used in the following areas:
  • Virtual Tours - Tour of a New Building, Demo of  New Product Launch
  • Training - Training with 3D Models and 360° videos. Virtual Simulation is more affordable and can be repeated multiple times so that your employees have the practice they need to accomplish their work.
  • Learning beyond the classroom - Teachers can import visual lessons, visualizations, and videos (2D, 3D, and 360°) that support their lessons and create a powerfully engaging learning environment.
  • Onboarding Activities - SharePoint Spaces help new employees with their organizations and teammates more quickly by exploring the company and their colleagues via a virtual organizational chart. Also, 3-D office maps can help newcomers to get used with the new environment faster.

If you have any questions you can reach out our SharePoint Consulting team here.

May 15, 2020

How to set Item level permission in SharePoint List/Library using Power Automate

Introduction:

In this blog, we can learn how we can set item level permission on a List Item or a Document when new item or document is created or modified in SharePoint List/Library. Using Power Automate (MS Flow), we can achieve this by breaking inheritance and assign specific permission to SharePoint User/Group.

Here are detailed steps to be followed in your SharePoint Online tenant to meet the requirement.

Step 1:  Create new flow from blank template. Add a trigger “When a file is created or modified in a folder” and entered your Site address URL (http://yourtenant.sharepoint.com) and List/library URL(/SitePages) for which you need to set unique permission.

 

Step 2: Add an action “Get file metadata” and configure with the values as shown in below screenshot.

 

Step 3: Add next action “Get file properties” and configure with the values as shown in below screenshot.


Step 4: Add an action “Initialize Variable”, Name it as “AuthorPrincipal” as shown in the below screenshot. This will be used to store Author User Principal id.

 

Step 5: Add one more action called “Initialize Variable”, rename it as  “GroupID” as shown in the below screenshot. This will be used to store Principal Id of SharePoint Group.

 

Step 6: Then we need to add an action called “Send an HTTP request to SharePoint” to break permission on an item and need to pass parameters as shown in the below screenshot.

 

Step 7: Now, to assign specific permission to a user on that item, first we need to get the Principal Id of the user (here, Modified By user). For that, add another action “Send an HTTP request to SharePoint” and configure all fields as shown in the below screenshot.

 

Step 8: Now, store that Principal Id  of that user in a variable. To do that, add action “Set Variable” and set the value with => Body(‘Send_an_HTTP_request_to_Sharepoint_2’)[‘d’][‘id]

 

Step 9: Now to assign permission to item/document, add an action “Send an HTTP request to SharePoint” and configure fields as shown in the below screenshot. Here, we are assigning Contribute permission to Last Modified By User.

 

To assign permission to a SharePoint group, you can follow steps 10, 11 & 12 instead of 7,8 & 9 and setup flow accordingly.

Step 10: First, to get the Principal Id of SharePoint group, add an action “Send an HTTP Request to SharePoint” with values as shown below screenshot.
  • Set Uri as “/_api/Web/SiteGroups/GetByName(‘Your-group-name’)  
Note: “Content-Approval” is custom SharePoint group.

 

Step 11: Now, to store Principal Id in a variable, add an action “Set Variable” and rename it as “Set-GroupID” and configure with value => Body(‘Send_an_HTTP_request_to_Sharepoint_5’)[‘d’][‘id’]

 

Step 12: Now, to assign permission to that SharePoint group, we need to add an action “Send an http request to SharePoint”, and configure its value as shown in the below screenshot.

 

Important Notes:
1. Below is table listing different Role Definition Name and Id that can be used in MS Flow as per requirement.

Role Definition Name
Role Definition Id
Full Control
1073741829
Design
1073741828
Edit
1073741830
Contribute
1073741827
Read
1073741826
View Only
1073741924

2. Also, we can reset the permission and assign Parent level permission on the item by adding action "Send an HTTP request to SharePoint" with values as shown in below screenshot.

 

 If you have any questions you can reach out our SharePoint Consulting team here.

May 14, 2020

How to overcome URL length limitation while fetching data using REST API in SharePoint?

Problem Statement:

Sometimes we might need to fetch data from long URL containing more filters while using REST API. REST query allows max –length of URL is 2,048 characters. If you exceed this limit, will throw 404 error in the code. let's check out how we should overcome this issue.

Analysis:

When we execute the query with URL having less filters & columns and thus having URL length less than the limit, we can get the response correctly:

But if we keep on increasing the filters & columns in REST API, once URL exceeds the limit of 2048 characters, we should start getting 404 error as shown below.

So, I thought of checking the URL with same filters in SharePoint directly, would it give same error? Surprisingly,  I found that SharePoint shows the results correctly with same numbers of filter and even more.

Technical Solution:

My analysis got me on the conclusion that the request is getting 404 caused by browser execution limitation of REST API and is not the issue from SharePoint end. So, we need to find a way through which we can send query to SharePoint and execute without browser itself.  So, I thought of using Batch API option for the same. I followed below steps to execute long URL successfully:

    Step 1: Load BatchUtils script into browser.



      Step 2: Verify BatchUtils loaded and Run in browser.


     Step 3: Prepare data for BatchUtils.


·         You need to specify Root Site URL of SharePoint tenant.
·         Push Long URL in array.

     Step 4: Request for fetch data using BatchUtils.


·         Here, you go! get the results without any error.

Note: We can use BatchUtils in Custom SPFX Web Part.


Below are useful reference links which helps us in calling Batch API in SharePoint Online and Run Code snippets direct in chrome DevTools.

If you have any questions you can reach out our SharePoint Consulting team here.