Showing posts with label Office365. Show all posts
Showing posts with label Office365. Show all posts

Sunday 22 August 2021

Power Apps custom landing page with model driven entity views sample

In the previous post, the necessity for custom page which converges canvas app with model driven app was explained. 

In this article post, we will look at a basic example for convergence of canvas app as custom page with model driven app.

From PowerApps portal https://make.preview.powerapps.com/, create a solution under solutions tab.



Create/Add the model driven app, entities and page:

In this case I have leveraged the model driven app with dealer example created in one of my previous article.

From the solution objects, create/add the apps. 


The following high level steps shows what elements are added to the solution.

  • Model driven app: Add the existing solution from add -> app -> model driven app. search and add the model driven app.
  • Entities (Tables): From the solution, create the necessary tables (entities) for the solution. In this solution, the tables added are dealers/users, models, manufacturing units and vehicles.
  • Page (Landing page): From the solution, create a page as landing page for the solution. Creating the new page by click on New -> app -> page.

Wednesday 18 August 2021

Introduction to custom page on Power Apps

This article series explains the new low-code development concept/feature introduced on Power Apps. That is custom page on Power Apps, which is still a preview feature. Recently Microsoft has announced the release of custom page preview feature with Power Apps. we will explore more about this feature with some samples. https://powerapps.microsoft.com/en-us/blog/custom-pages-for-converging-model-driven-apps-and-canvas-apps/


Custom page for model driven apps:

Over the time, Microsoft has introduced multiple types of apps. Now Microsoft has introduced custom page which converges canvas app experience with model driven app.

  • That is, custom page is introduced to enhance the experience of model driven apps.
  • The custom page development looks similar to Power Apps canvas app development. 
  • So canvas app is not straightaway integrated with model driven app. Instead custom page option is introduced.


However there are also other points to note in comparing custom page with canvas app.

  • Only one screen can be created on custom page. The redirection in this case is mostly to entities/forms. However canvas app can support multiple screens, and redirection between these screens are possible.
  • Apps to be built with canvas apps type can stand alone, but custom page can only work with model driven app solution and cannot standalone.


What are various integration options available for custom page with model driven app on power apps?

  • You can create and add a custom page as landing page for model driven app, along with other standard entity forms/views.
  • You can integrate custom page to be available as dialog or side panels on click of command buttons on model driven app forms/views.


Migrating existing canvas app

What if you have already developed app with canvas app type, and you want to migrate this to custom page which can work with model driven app?

  • Answer is simple, copy and paste the screen from canvas app to custom page. This has been outlined here. https://docs.microsoft.com/en-gb/powerapps/maker/model-driven-apps/model-app-page-overview#migrating-standalone-canvas-app-content-to-custom-pages
  • you should do this migration only, if you want the model driven features available for your solution.

Connectors

Will custom page support connectors?

  • Yes, connectors are supported as like canvas app. 
  • But very limited standard connectors are verified. As of writing, only connectors like office 365 users, outlook, SharePoint online, SQL server, Power Automate, Teams, and excel online for business are verified.
  • Custom connector are also available which helps you to build your own actions for integrations with other API services or on-premise data.


The below snapshot shows the custom page app created on Power Apps, with options available.


We will look at samples of custom page integrations with model driven apps in the next articles.

Sunday 23 August 2020

Power Automate: Sending Emails without User Context

This article helps us to understand the way to send emails without the user context. This could be applicable for applications, where consumers/users are non-licensed.  

This could be achieved with the help of few set of actions on Power Automate flow. Here Microsoft graph end points are used to send emails on power automate, based on application permissions. The app permission needs to be enabled on Azure AD app. 

Let us only look at the power automate configuration, instead of end-end business scenario. The following snapshot shows the actions. 

Power Automate Flow : To send emails without user context

Thursday 23 July 2020

Power Apps: Different type of Apps with Detailed Understanding

Power Apps provides options to create app based on the requirement and usage. There are three different type of apps available.
  • Canvas 
  • Model Driven  
  • Portal 

Power Apps with the above three type of apps, adds more value to the Microsoft power platform, along with Power Automate. With both of these services from power platform, some of the complex business scenarios could be achieved with no-code or less-code approach. You will get this fact at the end of this article.

Let us quickly understand these different types.


Canvas App


When power Apps was introduced few years ago, this was the only type available. This type provides options to customize the user experience. That means, you can build the app from scratch defining each and every aspect of it. That includes,
  • Design and UI elements –  
    • Helps creating screens and adding necessary controls with just drag and drop approach.  
    • Business logic can be  manipulated and achieved with functions/formulas with less-code or no-code scenarios. 
  • Data connectivity – 
    • There are default connectors available, providing flexibility to connect to multiple services without even writing code. This includes underlying common data service, and other SAAS services. 
    • On top of this, Power Automate provides greater flexibility in integrating the multiple services/systems data with no-code configurations. 
  • Users: 
    • This canvas type is available for Azure AD or external users. 
    • Only licensed users can only access the app. - The basic options available as of writing are for single app or multiple apps per user.

Sunday 28 June 2020

Model Driven PowerApp: 360 Degree View Dashboard to Monitor Data from External Systems (Azure AD and Azure Cosmos DB)

Problem: The business dealership information is being captured on multiple external systems. There is a need for business to capture 360° data view dashboard to keep track of information of dealers, sales data, and many other dealership information at one place. And this dashboard is for business users on the organization for monitoring.

Let us take an example of dealership architecture, where dealer identities/domain information are stored on external Azure AD, and basic details of dealership is stored on Azure Cosmos database.

Note: The dealership use case is an example for us to explore the possibilities. Similarly, this can be replaced with any other data model.

Design & Solution Considerations


The following elements/components are considered for building this solution.
  • Azure Cosmos Database, which holds dealership’s basic information 
  • Azure Active Directory, which holds the domain/identity information of dealership users [This is external/separate domain, holding only dealership users] 
  • Power Automate, to integrate and push the data to CRM system. 
  • Microsoft Common Data Service, which acts as intermediate storage and containing subsets of information from two other systems. [Azure Cosmos DB and Azure AD] 
  • Power Apps – model driven app, which has necessary dashboard for business users. 

The following shows high level design of 360 degree architecture, integrating data from multiple systems.
High level design for Dashboard providing 360 degree of dealership data
High level design for Dashboard providing 360 degree of dealership data

The following illustrates the design.
  • The necessary data model or entities are created on Microsoft CDS to capture the data from multiple system. For now in this usecase, let us focus on one entity, I.e., dealers.  
  • The flow configured on Power Automate runs as a scheduled job, to synchronize the data into CDS. Pulls minimal information from Azure AD and Azure Cosmos database, and synchronize the data subset into Microsoft CDS.  
  • Power Apps, which has views, forms and dashboards pulls and shows the information from entities, which is configured in the underlying CDS. 

Now let us get deeper into the solution, to see how these are configured.

Wednesday 13 May 2020

Provision Private Channels on Microsoft Teams with Tabs

Let us understand how to auto-provision a private channel on Microsoft Teams, along with necessary tabs added on the private channel in an automated way.

Article: Private channel provisioning along with necessary tabs could automated with the help of Power Automate flow and Microsoft Graph API. Microsoft Graph API provides us the beta/major version of the graph endpoints to achieve the provisioning solution. Power Automate flow is configured with necessary HTTP requests for provisioning and automate the process.

The solution requires two major steps.
  • Creating Private Channel
  • Adding Tabs


Create Private Channel on Microsoft Teams 


At the time of writing this article, private channel creation endpoint is not available with major version (v1.0). Major version of graph endpoint, provides option to create a channel, but not private channels.
POST https://graph.microsoft.com/v1.0/teams/{id}/channels
Content-type: application/json
{ "displayName": "Architecture Discussion", "description": "This channel is where we debate all future architecture plans" } 

The beta version of graph endpoint, provides option to create a private channel. The endpoint requires a payload to define the nature of channel and to add members with their roles. The following snapshot from Power Automate shows the way to create a private channel, with a member and their role.
Create a private channel
Create a private channel

Saturday 18 April 2020

Configure Azure AD end-user Authentication and Office 365 data access on Azure Health BOT Service via Graph API

Microsoft Health BOT Service is hosted on Azure, and is easily configurable solution that might meet multiple health-related BOT scenarios.

The scenario considered here in this article, helps us to understand how to enable end-user authentication on BOT Service to read Office 365 relevant data. For this POC, Azure AD authentication is considered. Azure AD authentication is best, only when the BOT service provider/organization manages their users entirely on Azure AD. If not the identity and authentication to be changed accordingly.

So in this article, let us understand how to enable end-user authentication on Azure Health BOT service using Azure AD, and read user profile information using Microsoft Graph API.


Enable Azure AD Authentication Flow using Azure AD App configuration


Create an application on Azure AD, and configure the following.
  • Set the required API permissions. In my case, only User.Read under Microsoft Graph delegated type.
  • Set oauth2AllowImplicitFlow to true, under Manifest section or platform configuration section.
  • Under platform configurations, configure the redirect URI (https://bot-api-eu.healthbot.microsoft.com/bot/redirect/oauth2) for health BOT service authentication. 
  • Generate the secret key from certificates & secrets. (Dem81hW@h:Ia07Os/kQEzk-Cr48_SuLm)

Copy the client ID and client secret from this app, to be used in the next sections on Azure Health BOT service configurations.


Configure Azure AD Authentication on Health BOT service


From the health BOT service (https://eu.healthbot.microsoft.com/account/<account-id>), navigate to integration -> authentication.

Authorization URL: https://login.microsoftonline.com/<tenantname>.onmicrosoft.com/oauth2/v2.0/authorize
Access Token URL:  https://login.microsoftonline.com/<tenantname>.onmicrosoft.com/oauth2/v2.0/token

Add new authentication provider with the configurations below.
Azure AAD Authentication configured from the configurations done on Azure AD App
Azure AAD Authentication configured from the configurations done on Azure AD App

Saturday 21 March 2020

Azure Web App – Integrate Microsoft Teams Channel and show Conversation highlights with MS Graph API endpoints

This article helps you out integrating the Microsoft Teams channel data into custom web applications. Assume an use case, web application has channel mapping, where the app interface needs to show the highlights of latest conversations from respective team channels.

Currently the graph endpoint which exposes the channel messages is beta and available as protected endpoints.

Note: Microsoft Team restricts more sensitive data, and integrate the endpoints if there is a need. Please read out the following notes for the integration guidance.
  • This article little focuses on information about integrating protected APIs. As of today, Microsoft has restricted integrating some of their beta APIs. The protected endpoint list is shown here. https://docs.microsoft.com/en-us/graph/teams-protected-apis
  • To enable the protected APIs for integration, you would need to reach out to Microsoft team for integrations. The request could be submitted through this form. https://aka.ms/teamsgraph/requestaccess
  • The request is generally reviewed, approved and enabled over a timeline mentioned in the article. 
  • The request form needs to be filled with tenant, Azure AD app (explained below) and other details. 
  • Once the request is approved, you will get a notification over email confirming the API enablement within specific timeline. 


Azure AD App Registration and Configuration


Before submitting the request, an Azure AD app needs to be registered on the tenant. The use case requires to get the channel conversations. So, the following snapshot shows the configured and granted permissions. Apart from this configuration, the other key parameters needs to be configured.
  • Enabling oAuth implicit flow. 
  • Enabling implicit tokens 
  • And providing redirect APIs. 
API permissions required for integration
API permissions required for integration


Sunday 8 March 2020

Search for Documents from Microsoft Teams Channel Conversations

This article illustrates a sample for finding the documents available on a team, with keyword search from channel conversations. This is achieved with the help of outgoing webhook service, where documents from Team are being pulled with the help of Microsoft Graph API.
#Azure #GraphAPI #MicrosoftTeams #Office365

The following screenshot shows the list of documents retrieved sending the keyword via the channel conversation.
Finding documents from channel using outgoing webhooks
Finding documents from channel using outgoing webhooks

Tuesday 18 February 2020

Retrieve Office365 People data on MS Team Channels via Outgoing Webhook and Azure App Service

Here, let us see how office 365 people information can be integrated into Microsoft Teams, with the help of outgoing webhooks on Teams. The use case is to pull the people present at a location, on posting a message to a service from Microsoft Teams.  

This could be easily achieved with the help of outgoing webhook feature under teams. The webhook has to interact with a service to get data processed based on data posted. 

Why Outgoing Webhook?: The outgoing webhook is used here instead of incoming webhook, since the data needs to be retrieved only when it is required.

No BOT Framework, only Azure App Service: This article helps us to understand creating outgoing webhook services for Microsoft Teams, without creating BOT service/app. Here the intent of service is clear, so we are not leveraging the BOT framework, instead hosting a simple service with Azure web app. From azure web app, the people data is being pulled from Azure AD with the help of Microsoft Graph API.


Create an outgoing webhook for a Microsoft Team 


Locate a team under Microsoft Teams, and navigate to manage team. Under App, in the bottom right corner, you will find an outgoing webhook link. From the link, create a webhook.  

Outgoing Webhook creation on Teams
Outgoing Webhook creation on Teams

Sunday 2 February 2020

Setting up Microsoft Teams Shifts Schedule Reminders

This article will help us to setup reminders for Shifts on Microsoft Teams using Power Automate. This will help to understand how shift reminders are triggered to shift owners a day before the shift schedules, as gentle reminders.

Before getting into implementation, we will see short introduction of Shifts app. Recently Microsoft has retired the Staffhub service, and Shift app is available as replacement and is available as an app on Microsoft Teams.


Microsoft Team's Shifts App


Shifts App, as quoted on Microsoft documentations: The Shifts app in Microsoft Teams keeps Firstline Workers connected and in sync. It's built mobile first for fast and effective time management and communication for teams.

Shifts app lets users on Microsoft Teams to create necessary shift schedules, and assign/share the schedules with teams. Once the schedule is created and shared on Teams, users will be able to view the schedules on their Teams login.
  • Currently, notifications are not working as expected. In my case, after sharing the schedule with a team, the notifications were not triggered to teams users. 
  • The shift schedule is not currently synced up with calendars. 
Hope the above drawbacks would be addressed in the near future by Microsoft product team.

This article helps us to understand a reminder notification requirement, which I came across recently. Let us look at how to trigger reminder notifications to respective schedule owners a day before the shift schedule.

Create a necessary shift schedules and share it with teams on Microsoft Teams interface.
Microsoft Team Shifts App - Sample Shift Schedule
Microsoft Team Shifts App - Sample Shift Schedule

Saturday 4 January 2020

Ask Alexa to search for a Microsoft Team – Integration of Amazon Alexa Skill with MS Team using Azure Functions and Graph API

The article helps understand how to integrate your Amazon Alexa with Microsoft team using Azure functions and Microsoft Graph API. The use case demonstrated here is finding a team on Microsoft Teams via Alexa. You can implement plenty of use cases.

This requires the following components.
  • Amazon's Alexa developer console for testing, and Alexa device for real demo.
  • Azure Subscription - Azure function to host request/response code for Alexa device, which integrates with Microsoft Graph API
  • Office 365 tenant - with Microsoft Teams enabled. 


Configure Skills on Alexa Console


From the Amazon Alexa console (https://developer.amazon.com/alexa/console/ask), create a custom skill. The following steps has to be created on the console.
  • Create invocation utterance - This is the skill invocation keywords on Alexa. In my case, invocation would be “team finder”
Invocation your skill by saying team finder
Invocation your skill by saying team finder

Saturday 21 December 2019

Microsoft Teams List (Part II) – Building End-user interface on PowerApps to identify Membership Information

Let us see how to create an interface on Power Apps platform, listing down all the teams under office 365 Microsoft teams tenant, also enable options to join the team if user is already not a member.

In the previous article, we have seen the ways to identify the user membership information via Microsoft Graph API. Using these Graph API and information, we will build the user interface functionality.

Here, a simple app is built for end-users on Power Apps platform, which in turn connects to Microsoft Graph API data explained in the previous article. The below snapshot shows the end result.
Microsoft Teams List - Options showing if user is member of /or join team button
Microsoft Teams List - Options showing if user is member of /or join team button 

Microsoft Teams List (Part I) – Exploring MS Graph API to find the Teams membership information on Office 365 Groups

In the Microsoft teams, there is a way to find public teams, and also private teams if discovery option is enabled on the tenant wide settings.

But is it possible to see all teams irrespective of discovery option on the Microsoft teams tenant? Answer is yes, there is a way for administrators with Microsoft graph API, and building some app interfaces showing the teams list with the help of graph API.

To create the necessary interface showing the teams list,
  • In this article, let us see how to identify the teams membership information with graph APIs. Let us see how to extract all teams list under a tenant using Office 365 groups data, and to extract my teams list. This data will help us drive to build an interface to list down teams and enable options to join a team if user is not a member.
  • In the next article, let us create a simple app on Power Apps to show users about the teams list, with options showing membership and join button if user is not member of the team. - http://www.techwithnakkeeran.com/2019/12/microsoft-teams-list-part-ii-building.html


Use MS Graph API to user relationship with a Team 


Let us quickly see how to find if you want to find the your team membership via Microsoft graph API.
  • Login to Microsoft graph explorer with your administrator rights. https://developer.microsoft.com/en-us/graph/graph-explorer 
  • With major version of graph API (v1.0), you will be able to identify the groups which has teams association. Note this lists down all Office 365 groups without teams filter, you will have to manually find the groups which has only teams association, using resourceProvisioningOptions parameter. https://graph.microsoft.com/v1.0/groups?$select=displayName,id,resourceProvisioningOptions 
List all Office 365 Groups without any filter - showing Group Name and team associate property
List all Office 365 Groups without any filter - showing Group Name and team associate property

Friday 6 December 2019

Identifying Microsoft Teams and the Classic SharePoint Team Site associations with Office 365 Groups: View on PowerApps

Let us see how to create a simple dashboard to identify if Office 365 group has been associated with Microsoft Teams and SharePoint modern team sites.

Office 365 Groups are created with various aspects. Microsoft Teams and Modern SharePoint team sites are created with/from Office 365 groups. Office 365 group is an object on Azure active directory, which will basically a collection of users.

PLEASE NOTE: Every Team created on Microsoft Teams, should have Team Site created and associated. This article only demonstrates the group and teams association, or group and sites association. The site which is not created manually/separately using group is not considered as association here, in this requirement/scenario.

To get the simple view for business users, Power Apps could be leveraged with custom connectors. There are other ways to achieve the same functionality like staging data on SharePoint with power automate and then representing the information on client apps, but I use the simple and straight forward to achieve the requirement.


Microsoft Graph API - Identify group associations


Office 365 groups data is exposed via Microsoft Graph APIs. The key parameters to be leveraged in the Graph API for this use case will be,
  • Group display Name 
  • ResourceProvisioningOptions - if MS team is created for the group, this property will have a value “Team” 
  • CreationOptions – If modern team site has been created with the group, this property will have a value “SPSiteLanguage:1033” 

The following snapshot shows the graph API response showing if the group has Microsoft Teams and SharePoint modern team site associations.
MS Graph API - representing the associations
MS Graph API - representing the associations

Saturday 16 November 2019

Office 365 SharePoint List Data - Represented as Accordion View on Power Apps

Power Apps provides multiple ways to represent data with just out of the box configurations, without writing any code. In my specific case, there is a requirement to get accordion view of list data on Power Apps. Let us understand, how this could be achieved with elements available on Power Apps.

Let us get the data from SharePoint list, and show the accordion view. The accordion view has to be created by grouping the list items.  In our case, we will show the jobs list in the accordion view, grouped under each business/technical group. The jobs list present on SharePoint data contains title and category, where category is grouping element.

After following the steps/configurations, the final accordion view will look like the following snapshot.
SharePoint list data - Accordion view with collapsible option
SharePoint list data - Accordion view with collapsible option

Let us look at the step by step approach to configure app to get the accordion experience.

Monday 11 November 2019

Modal Dialog Experience - Office 365 People Data on Power Apps

In my past articles, we have seen various ways to show people data. Here let us take another approach to show people/user information. Similar to modal dialog on SharePoint, we will see how to provide modal dialog like experience on Power Apps.

Let us leverage people search section from our previous articles. Build the people search as explained in my previous post.
http://www.techwithnakkeeran.com/2019/10/powerapps-app-to-show-microsoft-teams.html

On click of any user in the Power Apps user list, we will try attaching modal dialog screen. The following picture depicts the modal dialog view.
Modal Dialog View on PowerApps
Modal Dialog View on PowerApps

Sunday 27 October 2019

Building Organizational Chart with Office 365 data on Power Apps

Here, you will see how to build organizational chart on PowerApps.

Let us consider to have users list along with search box, to enable simple user search. On click of any user from the list, organizational chart will be shown.

Let us include following elements, to show organization structure on the PowerApps.
  1. Text box for search
  2. Gallery list for showing users
  3. Gallery list for showing manager information
  4. Gallery list for showing user reportees.

The following snapshot shows the preview of organizational chart.
Final Result: Organization Chart shown on PowerApps [Content Morphed]
Final Result: Organization Chart shown on PowerApps [Content Morphed]

Thursday 10 October 2019

PowerApps - App to Show Microsoft Teams members using MS Graph API


Microsoft PowerApps helps business/teams in building quick OOB apps. This post helps understanding, how to get access to Microsoft Teams data from PowerApps using custom connectors.

Why there is a need for custom connector? Microsoft has introduced lot of connectors on PowerApps interface to get access to the data. The Office 365 connectors included in Microsoft PowerApps are office 365 users, mails, etc. The custom connectors are created for the data, which is not exposed as connectors readily. The custom connectors are common for both Flow and PowerApps.

We are leveraging Microsoft Graph API as data sources for this app, and to be connected as custom connectors on Microsoft PowerApps. 

The following snapshot shows the end result, showing data from MS Teams on MS PowerApps using MS Graph API.
Demo App to Show MS Teams Data
Demo App to Show MS Teams Data

Let us look at step by step approach for achieving the functionality.

Sunday 22 September 2019

Surveys on Microsoft Teams with notifications using Microsoft Forms and Microsoft Flow

The objective of this article is to demonstrate the power of Microsoft services available to create survey/quiz and automate processes without using any code.

Let us first create a quiz/survey on Microsoft Form, and publish it on Microsoft Teams. Login to Microsoft Forms and create a new quiz with appropriate points. Click on Share to get the response link to the created quiz. This link is posted on Microsoft Teams to get responses (This is explained at the later point of this article).

Creating Quiz/Survey on Microsoft Forms
Creating Quiz/Survey on Microsoft Forms