Skip to main content

Mike Geyer's Blog

A fun place to read and collaborate about SharePoint and related technologies.
Go Search
  

Keep in touch: RSS Feed  


I'm a


My company is a


And we deliver

  (we're certified)
I've Moved to Hitachi Consulting
Hello all,
 
I've recently taken on a new position with Hitachi Consulting.  After 6 1/2 years with OTB Solutions, a wonderful time in my life both professionally and personally, I thought it was best for my family and my career to move on.
 
I have joined the Microsoft Platform team and will continue to work with brilliant colleagues to deliver services with clients around the world.  I expect to focus my activities on Business Productivity (SharePoint 2010 is coming soon!!!) and Business Intelligence (SQL 2008, PerformancePoint) across a wide range of industries.
 
I am very excited about the new challenges this change brings and will continue to engage with the SharePoint community with my blog, twitter (@MikeGeyer), the Puget Sound SharePoint Users Group, and any number of upcoming conferences (SP 2010 Conf).
 
If you would like to reach out to me, feel free to post comments on this blog or email me at Hitachi Consulting.  My email address is mgeyer at hitachiconsulting.com.
 
Mike
SharePoint 2010 Sneak Peak!
Hello SharePointers,
 
I'm glad to see that Microsoft has posted a set of videos providing a sneak peak into SharePoint 2010.
 
The videos are targeted to three audiences:
1.  Overview (everyone should watch this one)
2.  IT Pro
 
If you're new to SharePoint or if you've been working with it since 2006 (I don't really count SharePoint 2003), I think you'll find this information exciting.
 
- Mike
Business Intelligence During an Uncertain Time

An airplane pilot will tell you that during times of turbulence and uncertainty are when they most rely on their instrumentation.  During these uncertain financial times, when you can least afford a misstep, you have the greatest need to clearly view the health of your organization.

You need the certainty that comes from having the most pertinent information available and in a way that makes the most sense for your organization.  You need collaboration tools that facilitate the active discussion about what is happening in your organization and what needs to happen.

You need to look for ways to reduce costs while you execute smarter and more strategically.

The Challenge

Senior leaders are trying to gain visibility into their organization’s operational and fiscal performance.  Data is not the problem – there’s lots of data.  But which data will provide the insights you require?  And how can you get at it?  How much time must you spend building reports from scratch?  And, almost as frustrating, how long do you spend taking bits and pieces of current company management reports to get at what’s most important to you?

The challenge is to build a universally understood and accepted Business Intelligence (BI) system that provides the right data in the right way to help people across the firm make good decisions.

How Accurate Reporting & Analysis Can Improve Your Organization's Performance

BI is a powerful approach to harnessing the wide-ranging data that a typical organization is capable of producing.  Building a strong BI system has been made easier with the availability of software written for this purpose and a growing body of BI expertise in the consulting and vendor communities.  Rather than concentrating solely on the technological challenges of developing BI, however, savvy organizations start with the end in mind.

By first identifying the financial and operational measures that most closely align with firm strategy, capturing and massaging data into clear, actionable reports is made easier.  Thus, implementing a BI imagesystem is as much art as it is science. Good data drives good decisions.  The behaviors that are most desirable must be the ones the BI system supports. For small and midsized organizations looking to achieve greater leverage of their limited resources, an appropriately funded BI system may serve as a great investment toward achieving greater performance and improved profitability.

Leaders need financial information presented in a manner that enhances their management insight.  If your reporting system is not meeting these basic needs, you should consider the impact that further investments in BI would make.

Technology Can Help

As a consultant who works primarily within the Microsoft world I’ve spent a large part of my career helping clients realize true business value from technology.  I’ve found the technology offerings from SQL Server 2005/2008 (including SSIS, SSAS and SSRS), SharePoint 2007, and PerformancePoint Monitoring and Analytics (now included in SharePoint 2007 licenses, will be a part of SharePoint 2010) in addition to the desktop Office applications a great fit for delivering BI to and across an organization.

This technology stack provides a flexible platform upon which you can deliver business solutions that not only align with your organization’s strategic objectives, but also within the level of investment appropriate.  I believe it’s okay to start small: Excel spreadsheets, manually populated and hosted within a SharePoint document library can be a solution profile that does not require CIO approval and can be effective in drumming up cross-organizational support.  The real lift, however, comes when you can provide the self-service reporting and analysis functionality from multiple data sources – likely requiring a more advanced deployment.

This technology approach will not only provide greater access to BI capabilities, but proper integration with your existing SharePoint infrastructure will deliver insight alongside the search, collaboration and content management features.

It’s More Than the Technology

We all (should) know this, but it helps to repeat.  It’s more than the technology.  From my personal experience and from studying other reports, the organizational changes and business process changes are the most difficult to implement in a BI deployment.

The greatest constraint… would be changing the basic business processes and behaviors of the organization and it’s people.  That’s always the most difficult and time-consuming part of any major organizational change.

Competing on Analytics (Davenport, Harris; Harvard Business School Press)

Recognizing the change management effort up front will help present a more accurate program plan to your stakeholders reducing (but certainly not removing) the risk of failure.  Working with an expert with experience in such an effort is highly suggested.

Additional Resources

Keeping In Touch with Family Around the US

Hello all,

My wife, son and I live in Seattle, WA.  I have some siblings who live in Portland, OR, a brother and his family in South Dakota and my parents are in the sunny state of Florida.  Yes it’s a big family and with the many miles between us we are challenged to stay in touch.

Why am I breaking from my usual discussions about SharePoint, technology and online collaboration to talk about my family?  Well, because there is a connection: I sometimes use my family as guinea pigs to test out new technologies or approaches that I will later share with clients.  Ask my family and past clients and both groups will attest to this.

Background… Remember, I’m an eDork

As my Seattle-based family has grown over the past few years, I’ve been lucky to work with some amazing collaboration tools that actually fit pretty well within my family’s dynamic for keeping in touch.  Specifically, my wife, son and I host a little site where we post pictures (almost monthly), stories and alert family members when something new is posted.  We are able to post pictures in a public-facing area while restricting access to videos and have online conversations about family gatherings (I’m not kidding, it works!).

This is all based on the SharePoint 2007 platform plus some fancy Windows Streaming Server technologies for streaming home videos and it works well.  I’ve been fortunate in having access to MOSS since 2006 (Microsoft Gold Certified Partner) and a generous technology budget from my company, OTB Solutions, so I’m able to spin up a pretty nice sandbox in my home office.

Change is Change… in the Household or in the Office

I’m surprised how my family’s challenges, willingness and eventual thriving to adopt a new communication and collaboration approach is applicable within the workplace -- although my sociology professors from college would probably tell me I shouldn’t be surprise.

Once the value of a new technology solution is obvious, the swarming will begin.  Perhaps I remembered a few tips from Microsoft’s Internal Buzz Kit for SharePoint, but I certainly didn’t hand out fliers or host any informative PowerPoint presentations.  When your mother is subscribed to an RSS feed from a blog (where I announce new photo galleries), and she posts comments without calling for technical support, somewhere a key performance indicator lights up green.

Short Video Emails to Family

My latest endeavor is to take a page out of Mike Gannotti’s playbook in putting together a series of brief and topic-based videos together where one, two or three of us in Seattle say a little hello to the family without having to crack open our fancy HD video camera and Vegas Studio for time-consuming video editing, encoding, etc.  By using the inexpensive web cam and Windows Live Writer, we are able to capture a couple of minutes’ worth of footage, create a new blog entry with Live Writer, upload the video to YouTube (Live Writer does all of the hard work) and click “Publish”.

Next, thanks to a little SharePoint Designer workflow, emails are automatically sent out to the target audience (based on the category(ies) of the blog).  Why YouTube and not Microsoft’s Soapbox?  Well, as much as I like eating Microsoft’s dog food, a few family members (me included) have an iPhone and the seamless integration with YouTube just can’t be beat… and this greatly increases the cool factor and click-through rates for the posts.

What’s Next?

Well, right now the three of us in Seattle are the only folks posting.  Once I iron out all of the wrinkles and have a chance to write up a simple 3-step process for sending video emails I will help the other family members post and really get this moving.

I think this approach is applicable to many families and organizations around the world.  Let me know what you think… I’m open to new ideas.

-- Mike

Using Javascript to Manipulate a List Form Field

This post falls into the “don’t forget” category.  Special thanks to the SharePoint Designer team at Microsoft.

http://blogs.msdn.com/sharepointdesigner/archive/2007/06/13/using-javascript-to-manipulate-a-list-form-field.aspx

The key function is getTagFromIdentifierAndTitle which finds the HTML element rendered by a given SharePoint FormField control. 

function getTagFromIdentifierAndTitle(tagName, identifier, title) {
  var len = identifier.length;
  var tags = document.getElementsByTagName(tagName);

  for (var i=0; i < tags.length; i++) {
    var tempString = tags[i].id;
    if (tags[i].title == title && (identifier == "" || tempString.indexOf(identifier)
        == tempString.length - len)) {
      return tags[i];
    }
  }
  return null;
}

 

Be sure to read the MSDN blog for more details, but here’s a snapshot of the column types and their corresponding values for each parameter:

SharePoint Field Type identifier tagName
Single Line of Text TextField input
Multiple Lines of Text TextField input
Number TextField input
Currency TextField input
Choice (dropdown) DropDownChoice select
Lookup (single)* Lookup select
Lookup (multiple) SelectCandidate; SelectResult select
Yes/No BooleanField input

 

The following example of the script Microsoft provided to set the default value of a Lookup field based on an ID stored in the querystring.  Line 35 includes the function getTagFromIdentifierAndTitle.

   1:  <script type="text/javascript">
   2:   
   3:  // This javascript sets the default value of a lookup field identified 
   4:  // by <<FIELD DISPLAY NAME>> to the value stored in the querysting variable
   5:  // identified by <<QUERYSTRING VARIABLE NAME>>
   6:   
   7:  // Customize this javascript by replacing <<FIELD DISPLAY NAME>> and 
   8:  // <<QUERYSTRING VARIABLE NAME>> with appropriate values.
   9:  // Then just paste it into NewForm.aspx inside PlaceHolderMain
  10:   
  11:  _spBodyOnLoadFunctionNames.push("fillDefaultValues");
  12:   
  13:  function fillDefaultValues() {
  14:    var qs = location.search.substring(1, location.search.length);
  15:    var args = qs.split("&");
  16:    var vals = new Object();
  17:    for (var i=0; i < args.length; i++) {
  18:      var nameVal = args[i].split("=");
  19:      var temp = unescape(nameVal[1]).split('+');
  20:      nameVal[1] = temp.join(' ');
  21:      vals[nameVal[0]] = nameVal[1];
  22:    }  
  23:   
  24:    setLookupFromFieldName("<<FIELD DISPLAY NAME>>", vals["<<QUERYSTRING VARIABLE NAME>>"]);
  25:  }
  26:   
  27:  function setLookupFromFieldName(fieldName, value) {
  28:    if (value == undefined) return;
  29:    var theSelect = getTagFromIdentifierAndTitle("select","Lookup",fieldName);
  30:   
  31:  // if theSelect is null, it means that the target list has more than
  32:  // 20 items, and the Lookup is being rendered with an input element
  33:   
  34:    if (theSelect == null) { 
  35:      var theInput = getTagFromIdentifierAndTitle("input","",fieldName);
  36:      ShowDropdown(theInput.id); //this function is provided by SharePoint 
  37:   
  38:      var opt=document.getElementById(theInput.opt);
  39:   
  40:      setSelectedOption(opt, value);
  41:      OptLoseFocus(opt); //this function is provided by SharePoint 
  42:    } else {
  43:      setSelectedOption(theSelect, value);
  44:    }
  45:  }
  46:   
  47:  function setSelectedOption(select, value) {
  48:    var opts = select.options;
  49:    var l = opts.length;
  50:    if (select == null) return;
  51:    for (var i=0; i < l; i++) {
  52:      if (opts[i].value == value) {
  53:        select.selectedIndex = i;
  54:        return true;
  55:      }
  56:    }
  57:    return false;
  58:  }
  59:   
  60:  function getTagFromIdentifierAndTitle(tagName, identifier, title) {
  61:    var len = identifier.length;
  62:    var tags = document.getElementsByTagName(tagName);
  63:    for (var i=0; i < tags.length; i++) {
  64:      var tempString = tags[i].id;
  65:      if (tags[i].title == title && (identifier == "" || tempString.indexOf(identifier) 
  66:            == tempString.length - len)) {
  67:        return tags[i];
  68:      }
  69:    }
  70:    return null;
  71:  }
  72:   
  73:  </script>

 

Again, thanks to the SharePoint Designer team at Microsoft.

1 - 5 Next

 All Posts

I've Moved to Hitachi Consulting
SharePoint 2010 Sneak Peak!
Business Intelligence During an Uncertain Time
Keeping In Touch with Family Around the US
Using Javascript to Manipulate a List Form Field
How to Use JavaScript to access SharePoint Query String
First Blog with Windows Live Writer
Microsoft to offer free classes and certification testing
Job Description - SharePoint Solution Architect
SharePoint Blogs as Status Reporting... and community building
Installing MOSS on WinServer 2008 with Hyper-V and SQL08
Keeping up with SP Blogs
Use Search as Content Roll-up
Web browser compatibility in InfoPath Forms Services
Picture Library: Getting to the Thumbnails
All about dates and SPD
Data View Web Part, learn it... love it!
MSFT's SharePoint 2007 Buzz Kit
Content Query Web Part (CQWP) for All List Types
Content Query Web Part (CQWP) with Anonymous Access
1 - 20 Next

 Twitter Updates

 ‭(Hidden)‬ Admin Links

Copyright© 1997-2009 Mike Geyer
The posts on this weblog are provided “AS IS” with no warranties, and confer no rights. The opinions expressed herein are personal.