Search This Blog

Wednesday, September 2, 2015

Office 365 - Accessing Power BI Administration - Issue and Fixes

Power BI is a very useful and feature rich Business Intelligence tool in Office 365.
Some of the configuration tasks require admin to log into Admin Portal.
Example: Setting up a Gateway / Data Sources.
What is a Gateway (from Power BI Admin Portal):
A gateway is used to connect to a data source in your corporate environment. You must have at least one gateway installed in your corporate environment before creating a data source.

Even if you are a Global Admin on Office 365 and you have access to Power BI portal, which means you have a license for Power BI,  you may not have access to Power BI Admin Portal which is fine because not everyone in the company would have that role.

However if you need to access Power BI Admin and it does not work: There are 2 reasons / solutions which are explained below.
Screenshot 1)
On clicking Power BI link as shown below you may get the following error:
Screenshot 2)

You may not see the Power BI link at all  (highlighted in yellow color in screenshot 1 above)

The Issue above is that Power BI Admin access needs the second option in Power BI License to be checked as shown below.
 Screenshot 3)

The above license screen is Admin --> Users --> Active Users --> (search for Name of the person) --> Click on check box before person name -->  (Use one of the 2 options below)
click "Edit" -->  click "Licenses"
Assigned License --> click "Edit"

Once the above check box  i.e. Microsoft Power BI Reporting and Analytics Plan 1 is checked   (Screenshot 3 ) --> refresh the web page and now we should see Power BI link in Admin section of Admin portal. So far so good.

Now if we click on Power BI link you will reach the Power BI Admin screen which is at

https://<domain name here>
If this worked you can skip the step below. However for your knowledge please continue reading...

If you still can not access Power BI Admin here is another cause and solution:

--> One of the Office 365 Admin in the company would have access to Power BI Admin.
Powershell can be used to find a list of Office 365 Admins.
Administrator need to go from their login and assign the role from the Role Management section as shown below in screenshot 4.

Screenshot 4)

After the login has been assigned the administrator role from the above screen (Screenshot 4), Power BI admin should work.

My suggestion to Microsoft would be: Instead of user looking for reasons why Admin is not working -

a) Power BI Admin link should always be shown to the Global Admin if the Global Admin has been assigned  a Power BI License
b) On clicking the admin link it should:
     b1) Ask the user to check "Microsoft Power BI Reporting and Analytics Plan 1" (Screenshot 3) -  if that is not already checked.
     b2) Show a read only list of current Power BI admins so that they can be contacted to assign the role as shown above.

Well that is it and hopefully these management things will improve since Microsoft updates Office 365 regularly.

Until next time...


Wednesday, April 1, 2015

SharePoint online - Provider hosted Apps - Part 1

This is a series of posts that gives an insight into design / development of provider hosted apps using SharePoint Online - Office 365 and Azure cloud.

Will include issues / challenges and best practices on the way. Please drop in your comments / questions / and feel free to forward the link.

-------------- Here we go..

There are only 2 choices to develop a SharePoint cloud app i.e.
SharePoint hosted and Provider hosted (Autohosted used to be another option earlier).

 .Net CSOM has its advantages for few reasons below (while there are good reasons for a preference on REST based apps also):

a)  Working with .Net client side libraries in Visual Studio gives good intellisense (which is also  available in JavaScript to an extent however not that good when compared with .Net)
Objects are strongly typed,  no typo issues in properties / methods.

b)  Working with azure side code - you get other useful features available from Azure i.e. Caching, Scheduled jobs which is not available if it is a SharePoint hosted app

c) IPR: Since .Net code runs on Azure Web Sites (now called Web Apps) it is not visible to end users specially if this is a product you are making. JavaScript also can be obfuscated however it is not as protected as code that is not visible on Azure.  All the dynamic UI functionality would still be in jQuery / JavaScript and that can not be avoided (unless you do not have any dynamic UI stuff in the app which is rare).

d)  Using 3rd party libraries is possible since we can add a reference to it in web project and use it from server side and/or client side. For example: i have used Telerik controls, Newtonsoft JSON.Net serializer. Please check if the 3rd party .Net dll can run on Azure. The above two i used on Azure web sites and they ran okay. The other option is to create a VM on azure where you can run any legacy software as well.

e)  Making modifications to App becomes easier if it being used by Multiple Tenants. We make changes in Azure and everyone gets the updated UI or business logic next time they run the app.

f) Scalable: Given it is on Azure - we can easily scale the application as needed.

Side Note: There are comparisons on Rest versus JSOM versus .Net CSOM which are plenty out there there on web. Using Rest or JSOM  is also fine - it is more of a suitability for a given requirement as well personal choice.


a) Need subscription to Azure which may add to the cost.

Note: While you may use your own App server on Internet also however setting up OAuth, security, patch management of server and other things may make that a complicated process. Also tight integration with VS.Net for Azure makes it very easy to work. Hence using Azure is recommended for a provider hosted app.

Now once we have design document ready for the App we come to using tools and processes that can be used for building the app.

UI Design Tool Choices
a) For prototyping UI - the best tool i have used is Axure. Provides even dynamic UI interface
and you can very quickly realize the benefits.

a)  Do we need any 3rd party control for UI. Example: complex hierarchical grid, server side binding of data to grid - then we can use a 3rd party control suite like Telerik / Component One etc.
They also have client side programming model available for UI controls which can be used thru JavaScript. Using those can save time in building our custom UI components. All the dynamic UI functionality would still be in jQuery / JavaScript on client side (browser). 3rd party DLLs will run on Azure web apps.

b) Design the UI just with jQuery and CSS - use Napa app by Microsoft.
It's a free app available from App Store in Office 365.
  1. For using data binding i.e. bind HTML to data from SharePoint -  get JSON data from JSOM / REST and use Knockout library to bind to that JSON. This is a different approach than the focus of this post and need another  blog post all together to describe the design / implementation.
  2. We can also use Napa to just build the UI and later move the UI to project. Could also help when multiple team members are working on the project. One on UI and other Azure side code. There are potential issues which need to be taken care while integrating (ToDo..write integration issues and solution link here...)
  3. For using Napa - we just need internet connection and a modern browser (and of course a office 365 account).  Also no need for VS.Net installed on your machine for this. Coming to browser - my preference is Firefox because of quick CSS mods within browser and a neat JavaScript debugger. One could have a browser preference and you are right if you have a different one.  
  4. The Napa app can be converted to a VS.Net project using a link within the napa tool on the left side. This will be app project of VS.Net solution. The other is the web project which contains the Azure code.

Question: Is it necessary to use Napa tool for a provider hosted App?
Answer: Not at all. We can build all the UI within VS.Net also.

To be continued in next Post...

Please write back with questions / comments.

-- Mohan