July 31, 2017

SharePoint 2013 - Managed Metadata Navigation is not visible to Anonymous and Read Permission Users.

Managed Metadata service Application lets you define your site navigation using term sets. It lets you tag your content with term sets making structure of your content relevant. But, you might wind up in situation wherein users having Read Permission or Anonymous users are not able to see the Managed Metadata navigation. This issue crops up due to "" being selected in Navigation tab for the term. If you want to rid yourself of this issue, you have two options:

Option #1: You can either change it to "Simple Link or Header in Navigation tab"  
Option #2: You can set your target page in " " in Term-Driven Pages tab and save the settings, this issue should go away.

Steps for both approaches are summarized below:

Step 1: From your Site Collection, go to Term Store Management Under Site Administration from Site Settings.

Step 2:
 - If you want to go for Option #1 as resolution, under your Term Set -
     - Select your Term.
     - Select "Navigation" Tab in right panel.
     - Select "Simple Link or Header" under Navigation Node Type section.
     - Click "Save".

 - If you want to go for Option #2 as resolution, under your Term Set - 
     - Select your Term.
     - Go to Term-Driven Pages tab and set page for Change target page for this term after checking the checkbox and click Save.

Step 3: Do the same steps for all the terms that are invisible to Anonymous and Read only users.

If you have any questions you can reach out our SharePoint Consulting team here.

July 27, 2017

JavaScript Best Practice Tips

In this article, I'll share important factors to be taken into considerations while working with JavaScript. This information will help you to prevent most common mistakes in web development.

Quick Tips
  1. Use === while comparing two variable instead of ==
  2. Remember undefined is not null
  3. Remember JavaScript falsy value:   0, '', NaN, null, undefined
  4. Remember JavaScript truthy value:   '0', 'any string', [] (Empty array), {} (Empty object), 0 (any non-zero number)
  5.  Always declare all variables at the beginning of every scope
  6.  "use strict"; In JavaScript to avoid unwanted bug due to a variable.
  7. Avoid global variable declaration
  8. Reduce global variables e.g var name='abc', isValid=false; Should be written as var common={name:'abc', isValid:false};
  9. Always declare local variables
  10. Never declare Number, String or Boolean Objects ( e.g. Never use: new Number(1), new String("abc"), new Boolean() )
  11. Use {} instead of new Object()
  12. Use "" instead of new String()
  13. Use 0 instead of new Number()
  14. Use false instead of new Boolean()
  15. Use [] instead of new Array()
  16. Use /()/ instead of new RegExp()
  17. Use function (){} instead of new Function()
  18. Avoid Using eval()
  19. Don't use short hand (e.g Always use curly bracket with conditional operation)
  20. Place scripts at the Bottom of the page
  21. Declare variables outside of the loops and conditionals (such as if, for, while, switch and try)
  22. Properly comment your code
  23. Never pass a string to SetInterval and SetTimeOut. Instead, pass a function name
  24. Always, Always Use Semicolons
Reference Links
If you have any questions you can reach out our SharePoint Consulting team here.

July 6, 2017

Power BI – Develop Reports from Google Analytics using Power BI

Power BI is a great business analytics service provided by Microsoft. It provides wide range of interactive visualizations with self-service business intelligence capabilities for analytical reports and dashboard development. Now, for analytical reports and dashboard development, source of data is very important. Power BI is flexible enough to consume data from variety of data sources

We can also develop Power BI Reports & Dashboard using Google Analytics as the source of data.

Google Analytics is a web analytics service offered by Google that tracks and reports website traffic. So it helps us to analyze the web traffic in more effective manners if we have BI reports available for Google Analytics data. Here, I'll walkthrough in detail how to create a Power BI report consuming Google Analytics as data source.

This report will be developed in Power BI Desktop. First, we need to connect to data source in Power BI Desktop.
Connect to Data Source (Google Analytics):

1. Open Power BI Desktop, and click “Get Data”:

2. Select “Online Services” -> "Google Analytics" as data source and click “Connect”:

3. Continue to connect to a third-party service:

4. Click "Sign In" to login to your Google Analytics account:

5. Enter your Google Account credentials:

6. Allow Power BI to access Google Analytics data:

7. Now we are logged in to Google Analytics account. Just click "Connect" to consume Google Analytics data:

So, now Google Analytics data is loaded to Power BI Desktop. We can consume the data to develop the report as per our requirements.

Develop the Power BI Report (Google Analytics):

For this example, we will develop the report that will help us to visualize the users visited the web site from different locations.

1. From available data, load -
  • Users from "User" section.
  • City, Region and Country from "Geo Network" section.

2. Select a Map from Visualizations and configure as shown in below image so that we will be able to see users from different locations on map with Country -> Region -> City drill-down capabilities in Power BI:

3. Now, we have configured the visual and report will appear as shown in below image. Report also provides us information on no. of users from different countries.

4. Enable the Drill-Down capabilities and that will allow us to drill-down to any Country -> Region -> City.:

4. So we get the user visits data for specific country. User can click any specific region from country to further drill down to region level to see city specific website visit information:

So, it becomes easier and helpful to analyze the website visits in geographic manner.

Publish the Report (Google Analytics):

 We can publish the developed report to web. To publish the report to web, we must have Power BI account. If you don’t have account, you can sign-up here.

1. Click “Publish” in ribbon bar and sign in as your account in Power BI Desktop:

2. Enter your credentials and click “Sign In”:

3. Select “My workspace” as destination to publish the report.

4. So, report is published to Power BI web. Please click the provided link to open the report on web.

5. Report is opened now on the web:

If you have any questions you can reach out our SharePoint Consulting team here.

Link to SharePoint List in Navigation is not visible for Anonymous user.

Recently working on a SharePoint Project wherein I wanted to have Calendar list as a link in main navigation of the site. I rushed to Site Settings and went inside Navigation in Look and Feel section. I added main heading as "Calendar" and under "Calendar" heading, I added "Events" link which was pointing to Calendar list. Everything was looking great until I checked it with Anonymous user.

Surprisingly, Anonymous user couldn't see "Events" link. I was baffled and was scratching my head as to what would have caused this behavior.  I started to dig out in more detail, checked permission, and I discovered that it all boils down to one feature "Limited-access user permission lockdown mode". If this feature is activated, fine-grain permissions for limited access users are reduced. Hence, Application Pages won't be visible to Anonymous user. If you want Anonymous users to see Application pages, this must be deactivated.

Here are the steps which will help you sail through the issue.

1. As you can see in below screenshot, Events link is not visible for Anonymous user.
2. Now, Login with Admin user. Go Site Settings >> Site Collection Features , you would see that
"Limited-access user permission lockdown mode" feature is activated.
3. Deactivate this feature.
4. Now, checking "Events" link with Anonymous user. It should be visible.

If you have any questions you can reach out our SharePoint Consulting team here.

July 5, 2017

Prepare environment for SharePoint Framework (SPFx) Development

Microsoft has already announced the General Availability for SharePoint Framework. We can develop modern web parts for SharePoint using SharePoint Framework (SPFx). Web Parts developed using SPFx can be added to modern view pages as well as classic pages in SharePoint.

Prepare your development environment for SharePoint Framework development:

A. Install Node Dependencies for SharePoint Framework.

1. Download and Install Node.js.
2. Open command prompt and execute below commands one by one to install bower, grunt-cli and yeoman respectively.
i. npm install -g bower
ii. npm install -g grunt-cli
iii. npm install -g yo

3. Install Microsoft SharePoint Generator by executing below command in command prompt.
i. npm i @microsoft/generator-sharepoint -g

4. Install Gulp by executing below command in command prompt.
i. npm install gulp -g

B. Install desired source code editor (e.g. Visual Studio Code, ATOM, Sublime).

Build your first web part using SharePoint Framework (SPFx):

A. Open Node.js Command Prompt.
B. Navigate to the directory where you want to have your solution located at (e.g. cd c:\SPFx).
C. Execute command: yo
D. This will list down the available generators. As we have already installed Microsoft SharePoint Generator, this will appear as an option here.
E. Select “Microsoft SharePoint Generator” and press enter.

F. This will ask for below details, enter appropriate details and move forward:
i. Solution Name – e.g. “HelloWorld”.
ii. Select “Use the current folder” option.
iii. You can select the JavaScript Web Framework from available options. I have selected “No JavaScript Web Framework” option for this application.
iv. What is your webpart name? – e.g. “HelloWorldWP”
v. What is your webpart description? – e.g. “Hello world web part developed using SharePoint Framework.”.
vi. This will take a few minutes to prepare the solution.

G. Once solution is created, we can see success message for solution creation as shown below:

H. To check the solution, open the solution in Visual Studio Code from file system directory (C:\SPFx) where we created the solution.

I. As this post is focused on to prepare the development environment for SPFx, we will not go in depth with the source code, but as we can see in below screenshot, default Hello World web part appears in the solution:

Run SPFx solution on development environment:

A. Open Node.js Command Prompt and navigate to the directory where we created the solution (C:\SPFx).
B. Execute command “gulp serve” as shown in below screenshot:

C. On execution, we get SharePoint User Interface in browser on localhost (It is NOT required to have SharePoint installed on development environment). And when we click “+” button on modern UI, we can see Hello World web part in available options as show below:

D. When web part is added on the page, we can see the same as shown below:

So, the environment is prepared and verified for SharePoint Framework (SPFx) development. For verification, we have used default Hello World web part, we can develop the web parts as per requirements. 

If you have any questions you can reach out our SharePoint Consulting team here.