Power BI : Deployment Models

When we propose BI for our clients, a typical questions we get are such as:

“Do we need to upload our data to cloud?”

“How secure it would be to upload data on cloud ? ”

“Is it only available as on cloud? ”

We have most of our systems on premise, how would it fetch data from these systems if its on cloud?

“Can we deploy it on premise?”

“Do we need data ware house? or its handled by Power BI?” etc etc…..

We should be able to address these questions satisfactorily for a successful sales pitch. To answer these questions we should be aware of the deployment models of Power BI. In this blog let us go through these aspects of Power BI.

We need to first understand generic  deployment models

  • On-Premises: Refers to data, applications and infrastructure entirely owned by client at client data center and client has complete control over it.
  • Cloud: Refers to data, infrastructure and/or services residing in a public cloud environment and completely managed /controlled by third party. Microsoft Azure and web based Power BI service are examples of the cloud offerings.
  • Hybrid: This denotes to the implementation which  spans both on premises and cloud sources which can be services, infrastructure and data sources

Power BI supports all three types of models. Let us see how this is possible and exactly what is to be  done.

On-Premises Deployment :

Power BI can be deployed on premise three different options . Kindly refer below diagram.

On Premises Deployment

Option 1 : File Share 

The first on-premises option involves usage of a file share:

  • Data preparation and report creation is done in client tools: Power BI Desktop and/or Excel.
  • The completed Power BI Desktop and/or Excel file is published to a file share or a document collaboration area / repository.
  • To view the reports, Excel or Power BI desktop has to be installed on the viewer’s machine

Option 2 : SharePoint

The second on-premises option involves a specialized document library in SharePoint called the Power Pivot Gallery. Due to my limited knowledge, I am not going in details of this option

  • Data preparation and report creation occurs in Excel.
  • The completed Excel file is published to SharePoint within a Power Pivot Gallery.

Option 3: Third Party Integration

The third on-premises option involves a third party which integrates with Power BI.

  • Data preparation and report creation occurs in Power BI Desktop.
  • The completed Power BI Desktop file is published to the third party server

Hybrid Deployment 

Power BI can be deployed in hybrid mode in three different options . Kindly refer below diagram.

Hybrid Deployment

Option 1: Power BI Service

  • Data is either from the on premises corporate applications or it might be born in cloud. It can even mix of these two
  • Data preparation and report creation occurs in Power BI Desktop or excel
  • Completed Power BI reports are then published to Power BI service
  • Report consumption, sharing, security, collaboration, data refresh happens in Power BI service
  • Dashboards are created in Power BI service and reports can also be edited or created in Power BI service

Option 2: Custom Application Integration

  • Data is either from the on premises corporate applications or it might be born in cloud. It can even mix of these two
  • Data preparation and report creation occurs in Power BI Desktop or excel
  • Completed Power BI reports are then published to Power BI service
  • With Power BI API , these reports can be published in custom web application or mobile app  within iFrame
  • If user interacts with this report, he/she will be redirected to Power BI service
  • Application can be on premise or cloud application

Option 3: Public Website 

  • Data is either from the on premises corporate applications or it might be born in cloud. It can even mix of these two
  • Data preparation and report creation occurs in Power BI Desktop
  • Completed Power BI reports are then published to Power BI service
  • An embed code is generated by Power BI service for selected report and this code can be embedded in web page of the website within iFrame
  • Here no security is maintained as its public website, hence suitable for the data which can be made publicly available

Be reading my blog , I am hoping that you would be able to answer to client’s questions As we move further , you would get more clarity on the Power BI implementations.

If you like my blog please press the like button or share the blog with others.

If you want to me to write on any thing specific or have any questions, please post comments. I would definitely try to answer.

Your feedback is very very important for me.

Continue reading “Power BI : Deployment Models”

Start with First PowerApp

In my previous blog post, I have explained about canvas apps and model driven apps. Let us first see how to build a canvas app in PowerApps.

Development for PowerApps can be done either in web PowerApps studio or desktop PowerApps studio. First step is to create the Environment for the development. You can start with the trial version for free.

Login to the Powerapps.microsoft.com

Let us first create the environment to create our app.

To create the environment follow the steps as shown in following screenshots

Click on the setting icon at the right top of the screen and select Admin center.

Then click on the Create New Environment again at the top right corner.

Enter the details about the new environment and create the new environment.

Create EnvironmentCreate Environment1Create Environment2

Once you create the environment, you can select that environment to start the app development. Make sure that you have chosen the right environment and then start with the application development.

We can develop apps based on various backends such as CDS, Excel, OneDrive, Sharepoint etc  Let us build our first app for some specific requirement in Dynamics 365 CE for the  scenario mentioned below:

A product company, has a call center and sends the service mechanics  to repair existing machines or install new machines at the customer site. They are always on the move and while doing assigned jobs if they find that there is additional work to be done, they should be able to create the case or opportunity on their mobile quickly.

As a first step, select Apps from the left menu as shown in below screenshot and click on create an app button.Create New App1

Powerapps studio would provide you options to select the base data on which you want to create an app. Here since we want to create case or  Opportunity in Dynamics 365, select Dynamics 365 as show in below snip.

Create new App2

Studio would guide you to step by step to connect the D365 instance

Create new App3Create New App4

Once you are connected to D365 CE, you have to select the entity on which you would like to do the operations through the PowerApps app.Create New App5Create New App6

Let us select case entity and see what PowerApps does it for you.

Create New App7Create New App8

Just save the app with appropriate name and even you can select icon for the same.Create New App9

PowerApps would build the complete app for you to view the cases, view the  case details and editing particular case or creating a new case as shown below

Create New App8

Let us see all these screens in details one by one

Browser screen : It is a list screen where you can find all the cases, you can search for specific cases, you can sort the order of the cases. All these functionalities are given by PowerApps automatically and you don’t have to do anything to achieve the same.

Now let us see the components of this screen. Major component is BrowserGallery1. This is the gallery control which can be connected to the the database table Case. You can see the property pane at If you look at the properties of the gallery, Data is the most important property of the gallery which connects to the data. With this property you can change the data source if required. Browsescreen1

Browsescreen3

With the layout property, you can change the way your data is displayed, even select the columns which should be displayed in the gallery.

Browsescreen4Browsescreen5

When you see the items property of the gallery, you can see below text

SortByColumns(Search(Cases, TextSearchBox1.Text, “description”), “description”, If(SortDescending1, Descending, Ascending))

This function actually works for the sorting and searching functionality.  I would recommend you to go through the all controls present on the screen and try to understand their properties.

Once you understand these properties, you will be able to play with those based on your requirements. These are very intuitive and can be easily learned

If you click on the “>” next to any item in this gallery , that record would open in edit mode in the new screen.  Just check the action defined to achieve this functionality.

Browsescreen7

Similarly you can see the “+” symbol which would navigate to the new entry page and you can create new case from this screen. Just check the action defined to achieve this functionality.Browsescreen8

Now let us see second screen in this App.

In the second screen, you would understand the usage of data card control of the PowerApps. This screen has DetailForm which consists of various data cards.

The form is bound to the data source and the record which is selected in previous screen.

Detailedform1Detailedform2Detailedform3Detailedform6

The datacard is created for each field and fields can be selected from the layout.

Based on the type of the  field, the type of data card is selected, which can be changed later if required. If you want to do any changes in datacard, you must first unlock it and do the changes.

Detailedform4Detailedform5

Each Datacard consists of a Value and Key which represents the actual data value and field name correspondingly I would recommend you to look at the various properties of these data cards and understand how intuitive it is to use.

I am hoping you must have understood of the basics of PowerApps app development with this post.

Thanks for reading. In case you have  any questions about the PowerApps, please leave in comments and I would get back to you.

If you like  my blog, please hit the like button or share with others

Continue reading “Start with First PowerApp”

PowerApps Model Driven/Canvas Apps

PowerApps development can be done using any of the below methodologies

  • Canvas Apps
  • Model Driven Apps

Let us understand both of these methodologies one by one

Canvas Apps

Designer has complete control over app layout in canvas types of apps. We can develop apps to run on SharePoint, PowerBI, Dynamics 365, Common data service for Apps. PowerApps provides various template and sample  data to create apps. We can use these templates for quick understanding of app development, see how the data binding is done, how the UI controls are used and how the application flow is developed. Once we are through with this understanding, we can modify these templates as per business requirements.

PowerApps makes our life easy as we can develop apps automatically from below data sources.

Once the default app is ready, it can be further customized to change the way the data

is displayed, the way it should  be sorted , which data to be displayed etc.

Going further we can even develop apps from scratch and implement the way you think / imagine.

These apps can run in various tabs, desktops and  phones.

The Apps can be  shared with other users and then they can also run these Apps.

Model Driven Apps

Unlike the canvas apps, where designer has complete control over the app layout, Model driven apps layout is completely dependent on the controls you put on the screen.

Model-driven app design provides the following benefits:

  • Rich component-focused no-code design environments
  • Create complex responsive apps with a similar UI across a variety of devices from desktop to mobile
  • Since the UI is based on the Dynamics 365 CE user interface, if you are familiar with Dynamics 365 CE, its very easy for you to develop apps in PowerApps
  • Your app can be distributed as a solution  to required users/enviornments

At a fundamental level, model driven apps consist of three main components as mentioned below

  • Modeling business data
  • Defining business processes
  • Composing the app

Modeling business data

To model business data you determine what data your app will need and how that data will relate to other data. Model-driven design uses a metadata-driven architecture so that designers can customize the application without writing code.

This means you can can create the entity structure which is closely matching with your organisation business. You can create your entities, add relationships, customize the view and even customize the forms to interact with your data.

Defining business processes

Defining and enforcing consistent business processes is a key aspect of model-driven app design. Consistent processes help make sure your app users focus on their work and not on remembering to perform a set of manual steps. Processes can be simple or complex and often change over time.

This helps the users to follow the standard set of process while they are working on any task. The business process can be defined as per business requirements and can consist of one or more entities. You can define multiple business processes on one entity as well

Composing the model-driven app

After modeling data and defining processes, you build your app by selecting and configuring the components you need using the app designer.

Model-driven apps are based on data, UI, logic and visualizations and consist of below components

 

Data UI Logic Visualization
  • Entities,
  • Fields,
  • Relationships,
  • Option sets

 

·         Forms

·         App

·         Sitemap

·         View

  • Business Process Flow
  • Workflow
  • Actions
  • Business Rule
  • Flow

 

  • Chart
  • Dashboard
  • Embedded PowerBI

 

Hope this post helped you to understand two ways to implement PowerApps and you can start creating your apps.

Happy Learning!!

Please click like button if you like my post and mention comments in case you want me to write on something specific or any changes required.

Continue reading “PowerApps Model Driven/Canvas Apps”

PowerApps Case Studies : Its much more than just replacement of Infopath

From Simple spreadshits, timesheets and survey applications there are various use cases which can be built on PowerApps, or  we can say already built and used.  Those are published as PowerApps case studies by Microsoft.

When I started learning PowerApps, I came across the samples of PowerApps only based on SharePoint. Hence the first impression was is it substitute of Infopath. However when I went in depth, raised in various communities, started getting references of PowerApps based on various business applications other than SharePoint as well.

Hence trying to collect various case studies of the PowerApps – published by Microsoft. This would provide a general understanding about PowerApps usage in real scenarios.

  • Manage Car bidding process,  Car auctions
  • inspections reporting App – Heritage sites / ATMs etc
  • Data Collection during large events
  • Business process automation in transportation business
  • Field worker daily activity aggregation and reporting app
  • Medical representatives daily sales management, Reporting, tracking and coaching

Let us go through few scenarios where PowerApps can be applicable.

Scenario#1: Banks have to manage their ATMs spread across the cities/states etc. These ATMs are needed to be monitored and checked on regular basis.

Whenever ATMs get vandalized or damaged, it should be reported immediately and fixed. As a process, Banks schedule inspection audits for all ATMs. PowerApps solution help the inpsctors with a list of ATMs, they can find any specific ATM or find the ATMs near their location. Once located, they can start inspecting it.

During inspection, PowerApps solution provides a standard checklist mentioning various types of inspections such as

  • inspect from outside
  • inspect the signage
  • inspect from inside

Inspectors can fill the checklist and log the issues in case any, found during the inspections. User can even take a picture about the actual issue and mention the notes about the same.

Above functionality is for field inspectors, this data can be saved in SharePoint or any other business application as per the  current application landscape. This data is further analyzed and  Based on the issue types and location, the issue is assigned to the service agent for resolution.

The service agent can see the issues in his app assigned to him,  can locate the ATM , fix the issue, can add notes and close the issue.

If we need any analysis about the issues , we can even use PowerBI and show the analysis on PowerApps. This analysis can help the bank in various ways such as to identify the areas where vandalism is more and take precautionary measures

Scenario#2: Banks have many visitors everyday, their appointments are to be managed.

Everyday bank has customers visiting for various services. Bankers/ Customer care representatives are to be assigned to these customers to address their requirements. This can be accomplished by PowerApps.  PowerApps can be integrated to Dynamics CRM where customer information is stored and as someone visits the bank,  customer case representative can see complete profile of the visitor. List of Bankers would be displayed with available slots and area of specialization.

Based on this information, the appropriate banker can be assigned to the  visitor and both would be informed about the appointment schedule and basic details. Visitor would receive SMS as well about the timing and reminder. Intimation would go to the banker as well. This would help banks to achieve higher  customer satisfaction when they visit to bank.

Various case studies listed above, show that PowerApps can be used in the areas where users are mobile only, moving, the data is to be collected from these users, the data is to be analyzed and maintained in some of the business application such as SharePoint or CRM etc. Again it may not be only PowerApps but it would be combination of PowerApps, PowerBI and Flow.

Microsoft is promoting PowerApps in a big way. For CRM developers, XRM might go away and PowerApps and CDS would be the platform for any customization or any custom verticals to be developed. In case you do not use any of the CRM OOB modules/entities, we might exclude CRM platform and directly go to the Powerapps and CDS platform.

With this post I hope , you got a clear understanding on the PowerApps use cases. Now we can take technical deep dive in the same in my further posts.

Happy Learning!!

Please click like button if you like my post and mention comments in case you want me to write on something specific or any changes required.

Continue reading “PowerApps Case Studies : Its much more than just replacement of Infopath”

Data Binding in PowerApps

Let us see how data binding works in PowerApps. In this blog let us see how to fetch data from various data sources in PowerApps. It’s very intuitive and easy to achieve the same.

PowerApps can connect to various data sources, let us take an example of Dynamics 365 CE. It can connect to Dynamics 365 online directly and for on premise, it can connect to SQL server via Gateway.

We want to create an app for the sales executive to create an opportunity on the mobile. Instead of entering whole lot of  information, he can just enter few mandatory fields and  create the opportunity.

We can achieve the requirement by building a PowerApps which connects to Dynamics 365 CE with below easy steps

  • Create data source for Dynamics 365 connectivity
  • Create UI to view the Opportunities, create new Opportunity and edit existing opportunity
  • Publish the PowerApps to make it available for the users to use

In case you already have data in the opportunity entity, you can create entire app just in few minutes.

Go to PowerApps

Build POwerAppS
Select PowerApps from Office Portal
Start from Data
Click on the start from data

You have to select the data source as Opportunity and click on phone layout. PowerApps will create the entire application in few minutes

This App would consist of  the three screens

  • Browse Screen – List screen to view the existing opportunities
  • Detailed Screen – Details of the single opportunity
  • Edit Screen- To edit  the existing opportunity

Once you look at these screens you would realise that how powerful and helpful PowerApps is.

 

The Browse screen would by default have the search and sorting feature . Along with this , it would have the ability to select any record and go to detailed view of the same. We can click to create new record as well from this screen. Don’t you think it’s really easy to create simple app using PowerApps. We really do not have to worry about the data connectivity, any SQL queries etc 🙂

Edit screen is also used for creating new record and its interesting  to see that PowerApps does everything on its own.

PowerApps decides which fields to be displayed on its own however we can change the fields later. You can just try creating such default app and we can further edit the functionality as we need. We will see in my upcoming blogs.

Thank you very much for reading my blogs and please hit the like button if you think the content is useful and leave comments here. Your comments really mean a lot for me.

Happy making PowerApps which is need of the hour !!!

Continue reading “Data Binding in PowerApps”

Introduction to Microsoft PowerApps

In this blog let us see what is PowerApps, PowerBI and Flow. I will orient you about all these products one by one. All these are excellent products for power users and even for developers, almost no coding is required.

PowerApps is the app development platform, with which we can develop apps compatible with mobile, tab and can also be viewed in desktop or laptop browsers with no additional coding required.

To learn PowerApps like any other technology, you need to understand its UI design, the connectors and its integration capabilities.

Data is the heart of any application and I always prefer to understand the data connectivity first. It’s really easy to do DB operations in PowerApps with readily available connectors. There are two types of connectors used for PowerApps

  • Standard Connectors
  • Custom Connectors

Standard Connectors are the connectors which are supported by PowerApps.  and if you want to connect to your own web service its called custom connector. You have to register your custom connectors before you consume it.  PowerApps can connect to any of existing data you have in the organisation either on premise or on cloud.

The most popular connectors are mentioned below:

  • Common Data Service
  • SharePoint
  • SQL Server
  • Dynamics 365
  • Office 365 Users
  • Office 365 Outlook
  • Excel
  • OneDrive and OneDrive for business
  • DropboxConnectors

In case you need to connect to on premise data sources, PowerApps provides excellent feature of on Premise gateways. We can install on premise gateway and then connect to on premise data base through this gateway. Gateway should be in the same network where your database exists. once you have the gateway ready, you can define the connector to connect to your on premise database using this gateway.

We can go through detailed steps on how to actually create the connectors and connect to data sources in my subsequent blogs

 

Kaizala – How to integrate with business applications – Dynamics CRM – part4

I am sure that you have understood how we can call the Kaizala APIs from dynamics CRM along with the webhook concept to get the response from Kaizala on real-time.

As we move further, let us see actual usage of webhook in Kaizala and Dynamics CRM integration. Kaizala provides multiple webhook subscriptions such as

postman webhook

As shown in above screenshot, at the moment Kaizala provides three webhooks/ subscription APIs

  • Subscribe to all events at group level
  • Subscribe to all events at action level
  • Subscribe to all events at action level with action package id

We can subscribe to any of the above APis based on the  requirement. Let us see how to use”Subscribe to all events at group level” webhook. Below is the code we can see in the body of this subscription in Postman. If we read this, it is quite intutve.

{
“objectId”:”{{test-group-id}}”,
“objectType”:”Group”,
“eventTypes”:[
“ActionCreated”,
“ActionResponse”,
“SurveyCreated”,
“JobCreated”,
“SurveyResponse”,
“JobResponse”,
“TextMessageCreated”,
“AttachmentCreated”,
“Announcement”,
“MemberAdded”,
“MemberRemoved”,
“GroupAdded”,
“GroupRemoved”
],
“callBackUrl”:”https://requestb.in/12786un1″,
“callBackToken”:”tokenToBeVerifiedByCallback”,
“callBackContext”:”Any data which is required to be returned in callback. Current webhook data can be seen by refreshing: https://requestb.in/12786un1?inspect”
}

You have to pass the groupID for which you need to get the response. You need to keep the events on which you need a response from Kaizala. If you need response  only  when the survey is responded by anybody, then just keep the “SurveyResponse” event and remove rest of the events. If you keep the unwanted events, you would get the response for each and every event unnecessarily.

You need to replace the callbackUrl with your Url which would be registered in the Kaizala for posting the response. To test the response, you can just register the same Url and try to respond to the survey. This would post the survey response to this url and you can see the output which would get by accessing the Url.

Kaizala would post a Json file containing the data of the response and you need to access this Json file and  get the content as required by your integration.For e,g  you can store these details in Dynamics CRM or create new entity and track the responses etc.

You can view all the webhooks registered for the group by using the API “Get all webhooks” on a group and if required even unsubscribe the registered webhook by using “Unsubscribing a webhook”

we have come to end of the integration series. I am still working on how to create custom actions in Kaizala. I would share my finding about the same in my further posts.

Kindly comment in case you want me to write on something specific on the Kaizala integration, I would definitely try to respond to your comments.

Hit the like button/ follow my blog / share my blog  if you like the content.

Keep reading my blog to know more about latest Microsoft SaaS products. Continue reading “Kaizala – How to integrate with business applications – Dynamics CRM – part4”