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”

Microsoft Kaizala Sample Case Studies

We have seen in my earlier posts how we can integrate Kaizala with other business applications. Now let us see where we can actually use Kaizala i.e what would be the  use cases for Kaizala.

Microsoft has published various case studies where Kaizala is either implemented or being piloted. Since the product is originated in India, it shows early adaption in India by Indian customers like YES Bank, Apollo Telemedicine, Republic TV, United Phosphorous Limited and Kendriya Vidyalaya Sangathan etc. In addition to these Indian organisations, Government of Andhra Pradesh is the first Government organisation which has adapted Kaizala for day to day governance.

You can visit Microsoft site for details of these published cases studies to understand the scenarios which are addressed and how Kaizala can help in day to day governance and work management.

Let us take an example of Indian media company and it’s needs to become the top positioned media company.

The biggest challenge in media industry is to get access to real time news and understand how viewers are responding to the  news. It is very important to understand the viewer’s sentiment to make the channel popular.  The speed and the accuracy of the news is very important along with the pulse of the viewer.

Every channel has its resources spread across the locations, then how do you map the resources, how fast the resources can be moved from one location to another. Whether a reporter is enough or entire broadcast van is required, what is the current location etc.

Another need is to collect the feedback from the viewer. Broadcasting the breaking news to subscribed users and involving the viewers in live debates, discussions, executing live polls etc. involvement of citizens to encourage the citizen journalism during disaster news reporting would bring the powerful impact on the Channel’s growth.

For all such needs Microsoft Kaizala comes as a complete solution. Kaizala allows to submit the real time tracking of the resources. Reporters can submit their attendance as many times as required along with the Geo location and a real time selfie as well. Having correct data helps to take correct decisions and impacts on the channel growth.

There is a feature to create a public groups in Kaizala, which can be subscribed by citizens /viewers.  Unlike any other social connectivity App providers, it has no limit on number of users to be added in a group. Various announcements can be sent to viewers. We can have live surveys, or polls during live debates and results can be seen directly live on the Kaizala Management Portal. We can even use PowerBI to view the dashboards. Viewers’ feedback can be collected from this group and analysed.  Citizens can  directly click the photos, videos and upload in case they want to report something. Viewers can directly write to the chief editor if  permitted.

As you would have realized, Kaizala has solution to almost all challenges we discussed in the media industry.

Stay tuned for more information.

Please hit the like button if you like my post and share with others.  Continue reading “Microsoft Kaizala Sample Case Studies”

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

 

Is it the decline of Scribe Era in Dynamics 365 CE implementations?

Dynamics CRM being online, we do not have access to the database for any operations and in integration scenarios, it’s very common to use the database to database communications. Here Scribe Replication services was the quick help for everyone.

Scribe is very popular in all dynamics developers for integration and replication, however now I think they have to upgrade their skills and learn new way of the integration and replication. Microsoft has come up with Data Export Services which replicates the data from Dynamics CRM to either Azure SQL database or SQL server on the Azure virtual machine.

The Data Export Service, replicates the complete CRM data along with the schema changes. I really liked this feature of  Microsoft.  You can even select the entities which you want to replicate.

I am not going in details of the steps to configure the replication as there are many blogs which provide details of complete procedure step by step.

You can refer to below links for the more details of data export service

https://msdn.microsoft.com/en-us/library/mt788315.aspx

https://blogs.msdn.microsoft.com/crm/2017/04/11/introduction-to-dynamics-365-data-export-service/

http://www.crmchap.co.uk/microsoft-dynamics-365-data-export-service-review/

While exploring more, came across a limitation as it does not replicate the attachments. Hence you need address this limitation by using some workaround, if you need attachments also to be synced.

As I mentioned, instead of Scribe replication service we can definitely use data export service, which is free a service from Microsoft. However we need to consider the cost of Azure subscription as it’s not available for on premise database. Further developments would tell us on how this feature would be enhanced and will it be successful to get on the Scribe.

 

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”

What is Webhook?

We must understand the concept of webhook as most of the websites provide webhooks to subscribe their events.

When I heard this concept for the first time, I was amazed and really wondering how to actually use it. Then  I researched on it and found the concept interesting and would like to share the same with you.

Let us look at a scenario in real life. you have to pick up someone who has gone for a live concert and not sure when the concert would be over. You are calling that person around the estimated time and asking after every 10 mins if the concert is over and he/she should be picked up. Here instead of you calling that person again and again, you both mutually decide that  the person will call you once the concert is over and then you will come and pick up.  This is like call me up once done :). This is exactly what webhook does.

The Wikipedia definition of webhook is

“A webhook in web development is a method of augmenting or altering the behavior of a web page, or web application, with custom callbacks. These callbacks may be maintained, modified, and managed by third-party users and developers who may not necessarily be affiliated with the originating website or application. The term “webhook” was coined by Jeff Lindsay in 2007 from the computer programming term hook.[1]

Most of us are familiar with the word API which stands for Application Programming Interface. Whenever we need data or  any functionality, we call the APIs and get  required data such as find the good restaurants in this area. We use APIs to send the survey. However when we need real-time response when anyone responds to the survey, our program cannot keep calling the API frequently and check if there is any response. Instead of doing this tiresome job, we register the webhook and it informs us whenever there is any response.

Webhook is HTTP call back and it shares the data whenever it is available.

Similar concept is used in Kaizala or many other websites to provide us the response. We need to register web URL with their service and whenever event happens it would post the data to your url. Now it is up to you what you want to with this data.Most of webhooks I have come across, post the data in the form of  JSON format.

You can just create an event handler, host it on Azure and register its url to the webhook.

Please go through the below link for webhook reference.

https://www.chargebee.com/blog/what-are-webhooks-explained/

In my next blog let us see how to use the webhook in Kaizala and get the survey response on real time.

Thank you for reading for my blog. Please comment and share if you like if you find the write up useful.