Monday, October 3, 2011

Attractive Business Intelligence

Speaker: Rafal Lukawiecki

Purpose of BI:

Helps users make better business decisions by,

Visualizing meaning and knowledge hidden in your data
  A. Just the right information
  B. At the right time
  C. In the right format

Also known as "Performance Intelligence".

BI technologies:

1. Excel Services
2. Power pivot galleries
3. Performance point dashboard
4. Pivot table
5. Bing Data Connector
6. SQL Server Reporting Services

Friday, September 30, 2011

SharePoint Conference 2011


The Kiefer Consulting team and I will be attending SPC 2011 in Anaheim. 
Connect with me here, FaceBook or Twitter (@GatikaPatel).

Don't forget to pick up your SharePoint Overview posters at the Axceler booth ...

Conference Links

Kiefer Links

Monday, January 17, 2011

SharePoint 2010 Post-Installation Checklist

Below is the list of things that you should check to vefiry the succcessful and error-free SharePoint 2010 Installlation:

 1.   Inventory of Service Accounts

Get-spmanagedaccount  >> c:\SPAssessment.txt

2.    Run below command to retrieve list of service applications and their status

     Get-spserviceapplication |sort-object –property name |format-table name,status –auto  >> c:\SPAssessment.txt

3.    Run below command to retrieve list of windows services and their status:

Get-service |sort-object –property displayname |format-table displayname, status –auto >> c:\SPAssessment.txt

4.    List of webapplication, contentdatabase and sitecollection count

 Get-spcontentdatabase |format-table name, webapplication, currentsitecount –auto >>c:\SPAssessment.txt

5.    Verify all ribbon buttons are working on list/library

6.   Check Health and Diagnostics logging

7.    Monitor event logs

8.    Monitor disk space

9.    Verify outgoing and incoming email configuration

10.  Generate reports from Central Admin --> Monitoring (i.e. Health Reports, Web Analytics Report, Admin Reports)

11.  Verify alternate access mappings

12.  Check SQL Server databases and sizes

13.  Verify browsers

Tuesday, March 16, 2010

Building a Rollup List in SharePoint


A frequent challenge for me in SharePoint is finding a way to combine multiple SharePoint lists at the root level site and then performing different operations on that “rolled up” list. Third-party web parts sometimes help, but budget constraints often prevent us from buying our way out of this problem. After some online research, I found an easy way to write my own code to roll up lists.

To display items across lists, you can use Data View Web Part (DVWP). The DVWP has some DataSourceModes you may not be aware of, including Webs, ListofLists, and CrossList. For example, for a given site, the Webs mode shows the collection of subsites, and the ListofLists mode shows the collection of lists. In my example below, I use the CrossList mode to combine items from multiple lists across the site hierarchy. This solution works in both SharePoint 2007 and SharePoint 2010.

Below are the basic steps necessary to use the CrossList mode:
1. Open SharePoint Designer, and open the page where you want the rolled up list to be displayed.

Insert the Data View Web Part on the page.

Select the list that you want to use as a data source for the DVWP. This is the list that you want to roll up across the site hierarchy.

Customize the display of DVWP such as number of columns, layout, and so on.

Switch to the code view and in the code find the DataSourceMode property in SPDataSource for your DVWP. Here is the sample SPDataSource of DVWP:

                <SharePoint:SPDataSource runat="server"

                  id="DataSource1" >
                 DefaultValue="GGGGGGGG-HHHH-CCCC-JJJJ-KKKKKKKK1111" />
6. Change the value of the DataSourceMode property from List to CrossList.

7. After that, go to the SelectCommand Property. This is the property that we use to set a query for the SPDataSource of DVWP.

8. Add <Webs Scope='Recursive'></Webs> immediately after the opening quote and leave the rest of the Selectcommand as it is:

                             SelectCommand="<Webs Scope='Recursive'></Webs ><View></View>"

Here, the Webs element defines the scope of the query.

Note: You can use CAML query to customize the Selectcommand to filter the DVWP.

9. Immediately after Selectcommand, you will see <SelectParameters>, <DeleteParameters> and <UpdateParameters>. Delete these as they are not necessary for the CrossList mode.

10. Go to <ParameterBinding> section.

11. Find the line <ParameterBinding Name="ListID" Location="None" />. Remove the DafaultValue property; it is irrelevant in this mode.

12. Check the line <ParameterBinding Name=”WebURL” Location=”None” DefaultValue=”/sitename/subsitename/”/>.

13. Make sure that the DefaultValue points to the “root” site as from where you would like the rollup to work.

14. Now save the page and test it in your browser.

I hope this gives you some ideas for using the Data View Web Part. Happy coding! Email me if you have any questions:


Gatika Patel is a Software Developer at Kiefer Consulting. She specializes in .NET and SharePoint application development, software testing, database management, and architecture planning. She is a Microsoft Certified Profession Developer who earned her M.S. in Software Engineering from San Jose State University and her Bachelor's degree in Information Technology from the Nirma Institute of Technology in India. Her  current consulting assignments include various large projects for the State of California.

Kiefer Consulting, Inc. is a trusted leader in .NET application development and California’s leader in State Government SharePoint deployments, providing real business solutions using Microsoft .NET echnologies. With a 22 year track record of business success, the firm has experience ranging from the irst .NET releases all the way to legacy mainframe systems. Kiefer consultants are experts in the technologies they deploy, so clients always get best value solutions that balance Industry Best Practices and new technologies. Register now for Kiefer’s 2010 events and Edunars℠:

Thursday, January 7, 2010


By Gatika PatelKiefer Consulting


When I work with users and business managers, there’s one thing they always appreciate: time-saving features, especially those with graphics. My users love them and yours will too. By viewing current graphic data displays, users can instantly see if things are going well or not without waiting for reports or evaluating and crunching numbers manually. In case you did not know, the Google Chart API lets you dynamically generate charts in SharePoint. That’s right—DYNAMICALLY! It’s easy to integrate Google Chart using SharePoint List data. All you need is graph criteria. In this case, I use a Group By view on a list column.

In this article, I’ll show you how to use Google Chart API in SharePoint 2007 (MOSS):

     1. Create a Custom List in SharePoint Server 2007
     2. Create a Web Part page (used to display graphical representation of the list data)
     3. Integrate Google Chart API into SharePoint


Follow the steps below in order to create a new custom list.

1. Click Site Actions > Create.

2. Under Custom Lists, select Custom List.

3. Fill in Name and Description.

For this demonstration, name the list Projects.

4. Click Create.
    The Projects custom list is created.

5. Click Settings > Create Column.

    Enter the name of the new column, select the data type, and details for each column you create.

    For this demonstration, I created three new columns in Projects:

       • Start Date(Date)
       • End Date (Date)
       • Status (Choice list: Complete, Deferred, In Progress, Not Started)

6. Fill this list with sample data to create the Google Chart.

    To create sample data, click New.

7. Fill the New Item form, and click OK.

8. Repeat until you have enough data to demonstrate your Google Chart API.

    For this example, I created 10 items.


Use the web part page used to display graphical representation of the list data:

1. Click Site Actions > Create.

2. Under the Web Pages section, select Web Part Page.

3. Fill the required information for the New Web Part Page:

    • Name: SamplePage
    • Accept defaults

4. Click Create.

The new Sample Page is created as below.


To display the graphical representation of any list data, we first need to decide which column of the list we want to use as a graph criteria. Then we need to create a “grouped by” list view on that column. For chart to be displayed, the “grouped by” list view must be on the same page.

I use Status as the criteria for the graph. We first need to add the Projects list web part on the Sample Page to display Projects list “group by” Status column.

1. Click Add a Web Part in any of the zone of the page.

2. Under the Lists and Libraries section, select the Projects list (or the name of your list).

3. Click Add.

    We need to edit this list to create a new view grouped by the Status column.

4. Click Edit > Modify Shared Web Part.

5. Click Edit the current view link.

6. Scroll to the bottom of the page, and click to expand Group By section.

7. For First group by the column: select the Status column.

8. Select your preference for Ascending or Descending order.
9. Click OK.

    The newly created list view will be added on the Sample Page.

Now to add graph for the list view, we need to add another web part on the Sample Page: Content Editor Web Part

10. Click Site Actions > Edit Page.

11. Click Add a Web Part above the Project list view just added.

12. Under the Miscellaneous section, select Content Editor Web Part.

13. click Add.

14. Select Edit > Modify Shared Web Part.

15. Open the Source Editor (right side).

16. Copy the following code and paste into the Text Entry dialog box:

<div id="jLoadMe" class="content"><strong>Project Status - Pie Chart Using Google Charting API</strong></div>
<script type="text/javascript">if(typeof jQuery=="undefined"){
 var jQPath=""; 
 document.write("<script src='",jQPath,"jquery.js' type='text/javascript'><\/script>");}
<script type="text/javascript">
 var arrayList=$("':')");
 var coord= new Array();
 var labels= new Array();
 $.each(arrayList, function(i,e) {
  var MyIf= $(e).text();
  var txt= MyIf.substring(MyIf.indexOf('(')+1,MyIf.length-1); // Extract the 'Y' coordinates
  var txt1= MyIf.substring(MyIf.indexOf(':')+2,MyIf.indexOf("(")-1); // Extract the labels
  labels[i]=txt1+"("+txt+")";   //add also coordinates for better read 
 var txt= coord.join(",");
 var txt1= labels.join("|");
 // Adjust Chart Properties below - See Google Charts API for reference
 var vinc= "<IMG src='"+txt+"&chl="+txt1+"'/>";

17. Click Save.
      You will see that the graph has been added into the web part.

18. Click OK. If you see the Security Warning box as below, click No.

19. Click Exit Edit Mode.