SharePoint

Developing apps with Power Apps helps the business users solve business problems with easy-to-use tools that don’t require code / less code. In this article I am going to explain how to use a single form control associated with a SharePoint list to add/edit/view items using PowerApps.

I would assume you have the following setup

  • SharePoint list
  • Power App List Form connected with your SharePoint list

Following are the steps I am going to use to convert my form to support add/edit/view functionalities

Step – 1

The Param function retrieves a parameter passed to the app when it was launched. If the named parameter wasn’t passed, Param returns blank. The user will be redirected to the respective form based on ID and Mode parameters.

Step – 2

Assign the CurrentItem variable we have calculated in Step 1 here

Step – 3

Add a Label control and change its visibility expression as shown below:

Step – 4

Add a button outside the form control to create a record in SharePoint and change its visibility expression as shown below:

Change the button’s OnSelect property as shown below:

Step – 5

Add a button outside the form control to update an existing record in SharePoint based on ID parameter and change its visibility expression as shown below:

Change the button’s OnSelect property as shown below:

Demo of overall functionalities

I hope you find this article helpful. Contact me if you have any questions.

Requirement

  1. Create new row/s for each user entered in Users column in SharePoint list item if the record does not exist in Excel table
  2. Update existing row/s based on the SharePoint list item modifications if the record exist in Excel table

Solution

SharePoint List

Excel Sheet with Table

Flow attached to SharePoint List with Complete a custom action for the selected item template

Flow First Time Execution

Flow Second Time Execution with list item modifications

Microsoft Graph is a RESTful web API that enables you to access Microsoft Cloud service resources. In this article, we will go through the requests we have to make in order to access the documents in a SharePoint Document Library.

Prerequisites:

  • Register an Azure AD app and allow the app to have full/read control to SharePoint sites in all site collections without a signed-in user. Refer the Microsoft Graph permissions reference here
  • Note down the Application ID(Client ID) and Key(Client Secret)
  • Download and install Postman that simplifies the API testing or any API Testing Tool

REST Calls involved

Get Access Token 

To call Microsoft Graph, your app must acquire an access token from Azure Active Directory (Azure AD), Microsoft’s cloud identity service. Access tokens issued by Azure AD are base 64 encoded JSON Web Tokens (JWT). They contain information (claims) that web APIs secured by Azure AD, like Microsoft Graph, use to validate the caller and to ensure that the caller has the proper permissions to perform the operation they’re requesting.

Copy “access_token” value from the following API call’s reponse. This value will be used in the subsequent REST API calls as bearer token.

Replace:

{tenant-id} with your Office 365 Tenant ID. You can find the same from here.

{client-id} with Application ID copied from Azure AD Application.

{client-secret} with Key(Client Secret) copied from Azure AD Application.

Get SharePoint Site ID

We have to get the SharePoint Site ID(highlighted) where document library is located using the following url:

https://graph.microsoft.com/v1.0/sites/host-name:/server-relative-path

Replace:

{host-name} with your SharePoint online root site url.

{server-relative-path} with site’s relative path.

Get Document Libraries from a SharePoint Site

To get a list of document libraries from a SharePoint site, call the following endpoint:

https://graph.microsoft.com/v1.0/sites/site-id/drives

Replace:

{site-id} with the site id received in the previous step.

Get Files from a Document Library 

To get a list of files in a document library, call the following endpoint:

https://graph.microsoft.com/v1.0/sites/site-id/drives/drive-id/root/children

Replace:

{site-id} with the site id received in the previous step.

{drive-id} with one of the document library id received in the previous step.

Get a Specific File from a Document Library

To get a specific file from a document library, call the following endpoint:

https://graph.microsoft.com/v1.0/sites/site-id/drives/drive-id/root:/item-path

Replace:

{site-id} with the site id received in the previous step.

{drive-id} with one of the document library id received in the previous step.

{item-path} with file name or path.

I hope this article has helped you to understand the REST API calls required to reach a file in a SharePoint Document Library using Graph API.

Sharing is Caring !

If you want your SharePoint add-in to appear in SharePoint Store, you need to submit it to the Seller Dashboard for approval. You can add and save your submission as a draft in your Seller Dashboard account until you’re ready to submit it for approval.

Prerequisites

  • Familiarize yourself with the AppSource validation policies
  • Seller dashbaord account
  • Add-in file in .app format
  • App logo
  • App screenshots specific to supported languages

Steps

This section lists the steps involved in submitting your SharePoint add-in in the Seller Dashboard.

Add a new app

On the overview page, click on Add a new app button

Listing type

On the listing type page, select SharePoint add-in and click next

Upload package

On the overview page, provide the mandatory field details as shown below and click next

Language details

On the details page, select the necessary languages and provide the mandatory field details as shown below and click next

Block access

If you want to prevent the app purchases, select the countries / regions

Lead management

To get information about users who acquire your add-in, you can submit lead configuration details for your customer relationship management (CRM) system in the Seller Dashboard.

Pricing model

Choose the pricing model fits your need

Save as Draft or Submit

On your summary page, select EDIT DRAFT and make your changes. Select SUBMIT FOR APPROVAL. After your seller account is approved, you can submit your add-in to the Seller Dashboard. You can make changes at any point before you submit for approval, but during the approval process, you won’t be able to make any changes.

With the profile completeness extension we can encourage or force users to fill their profiles. This sample SPFx extension renders a profile completeness meter where the user can see the score details.

react-application-profile-meter react-application-profile-meter

Used SharePoint Framework Version

SPFx v1.6

Applies to

Solution Author(s)
react-application-profile-meter Joseph Velliah (SPRIDER, @sprider)

Version history

Version Date Comments
1.0 February 13, 2019 Initial release

Disclaimer

THIS CODE IS PROVIDED AS IS WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.

Minimal Path to Awesome

  • Clone this repository
    • Open serve.json file under config folder. Update PageUrl where you wish to test. react-application-profile-meter
  • Move to folder where this readme exists
  • In the command window run:
    • npm install
    • gulp serve

Features

This project contains SharePoint Framework extensions that illustrates the following features:

  • Command extension
  • Office UI Fabric React

Notice. This sample is designed to be used in debug mode and does not contain automatic packaging setup for the “production” deployment.

What is governance?

Establishment of policies, and continuous monitoring of a proper implementation, by the members of the governing body of an organization. It includes the mechanisms required to balance the powers of the members (with the associated accountability), and their primary duty of enhancing the prosperity and viability of the organization. Governance is not about limiting the freedom.

Top 4 Office 365 management challenges explained by Marc Anderson and Benjamin Niaulin

  • Lack of visibility on what users are doing in Office 365
  • Group owners need guidance
  • Balancing user freedom with corporate governance requirements
  • Transitioning to a new accountability model

This article explains about different options available to govern Microsoft Teams and Groups.

Manage who can create Office 365 Groups

Because it’s so easy for users to create Office 365 Groups, we can restrict Office 365 Group creation to the members of a security group.

  • To manage who creates Office 365 Groups, we need Azure AD Premium or Azure AD Basic EDU license.
  • Only one security group in your organization can be used to control who is able to create Office 365 Groups. But, we can nest other security groups as members of this group.

Refer this article for more details.

Office365 Group Expiration Policy

A group lifecycle policy allows administrators to set an expiration period for groups. For example, after 180 days, a group expires. When a group reaches its expiration, owners of the group are required to renew their group within a time interval defined by the administrator. Once renewed, the group expiration is extended by the number of days defined in the policy. For example, the group’s new expiration is 180 days after renewal. If the group is not renewed, it expires and is deleted. The group can be restored within a period of 30 days from deletion.

Refer this article for more details.

Orphan Teams and Groups

It is a good practice to find teams and groups without owners. We can get this information from Teams Admin Center as shown below

Best Practices

  • Assign minimum two owners
  • Create a PowerShell script to find the orphan groups on a weekly or monthly basis and send reports to admins.

Potentially Obsolete Teams and Groups

Analytics and reports will help you create different reports to get insights into how users in your organization are using Teams. Your organization can use the information from the reports to better understand usage patterns, help make business decisions, and inform training and communication efforts.

As we noticed from the Teams Admin Center, this is not a rich report. Tony Redmond has written an awesome PowerShell script that can reveal unused teams or groups.

Guest access in Teams

Guest access in Teams lets people outside your organization access teams and channels. You can control the guest permissions on Teams meeting and messaging from the Teams Admin centre.

The following functionalities are not available to a guest in Microsoft Teams as of today:

  • OneDrive for Business
  • People search outside of Teams
  • Calendar, Scheduled Meetings, or Meeting Details
  • PSTN
  • Organization chart
  • Create or revise a team
  • Browse for a team
  • Upload files to a person-to-person chat

Teams Classifications

Adding team’s classification helps us to group the teams with restrictions such as guest access, meeting policies, etc.,

Refer here for more details.

Group Naming Policy

We use group naming policy to enforce a consistent naming strategy for Office 365 groups created by users in your organization. A naming policy can help you and your users identify the function of the group, membership, geographic region, or who created the group.

Refer here for more details.

Continuous Integration and Delivery are the foundations of Modern Software Development. Continuous Integration and Delivery process is going to help your team in the following aspects:

  • Revision Control
  • Build Automation
  • Automated Deployment
  • Reduced Overhead
  • Consistent Build Process
  • Confidence and Team Communication
  • Risk Mitigation

In this article, I am going to show you how to set up Continuous Integration and Delivery for SharePoint Framework Web Part using Bitbucket.

Prerequisites 

  1. Bitbucket Repository
  2. SharePoint Framework WebPart Solution associated with the Bitbucket Repository – (Refer – SharePoint Framework HelloWorld example)
  3. SharePoint App Catalog Site to deploy the SharePoint Framework WebPart
  4. Add the following environment variables on the Bitbucket repository level

At this point we are ready to integrate our SharePoint Framework WebPart solution with the Bitbucket Pipelines.

  • Open the SharePoint Framework WebPart solution and upload the following custom gulp tasks provided by Elio Struyf. (Note: Install the necessary npm packages given in the instruction)
    • upload-app-pkg
    • deploy-sppk
  • Create a new file for Bitbucket build configuration with name bitbucket-pipelines.yml
  • Update the bitbucket-pipelines.yml as shown below

  • Commit and the push the changes to Bitbucket repository
  • Go to the pipelines option and enable the pipeline

 

  • A build should start as soon as we enable the pipeline as shown below

 

  • As you can see in the screenshot, the SharePoint Framework WebPart is packaged and deployed in the app catalog site as per the logic written in the build configuration file

 

  • It is possible to isolate the deployment process in a seperate step as explained here.
  • Also schedule your pipelines to run a pipeline at hourly, daily or weekly intervals.

Hope you found this interesting.

Sharing is Caring!