In Search Of … Great SharePoint PM and Solutions Architect

I lead a SharePoint practice for Computer Generated Solutions (CGS).  We’re based in New York City at World Financial Center (just next door to WTC).  I am looking to hire two full time people to help me lead my group – SharePoint project manager and a SharePoint solutions architect. 

Both roles are full time and cannot be done remotely.  There’s not a lot of travel.  Travel, such as it is, generally takes place in NY, NJ and CT.

If you’re interested in finding out more, fire off an email to pgalvin@cgsinc.com.  I’d love to hear from you. 

Our website doesn’t do a good job explaining my practice (I’m working on that).  By all means, check it out, but I’ll give you the real scoop if we talk by phone.

</end>

Subscribe to my blog.

Follow me on Twitter at http://www.twitter.com/pagalvin

Performance Point 2010 and Report Server URL

I was struggling yesterday with Performance Point and wanted to share a quick tip that might save someone a few hours frustration.

We had created an SSRS report and deployed it to SharePoint.  We deployed it to SharePoint and we could run it just fine by navigating to the reports library and clicking on the report.  We could also add it to a web part page using the SSRS report viewer web part.  All good stuff.

When we tried to add it to a dashboard using Dashboard Designer, however, we hit a wall.  Dashboard Designer would tell us “Unable to find report specified by URL. Please verify that both server URL and Report URL are correct.”  This is what I was seeing:

image

Bing found me this promising article, “Fun displaying SSRS (integrated) reports using PerformancePoint SQL Server Report viewer”).  It felt like good information, but I wasn’t able to solve the problem with what it showed.

I downloaded fiddler onto the workstation to see what was happening under the covers and although that was also unproductive, it was very interesting.  I suggest that you try that out some time just to see what happens.  It’s pretty illuminating. 

Finally, my colleague Kiran Chauhan pointed me to central administration to look at Report Server’s settings.  Oddly enough, that’s located under “General Settings.”  I had earlier searched for it as a managed service.  I still have learn my way around SP 2010 🙂

Central admin immediately showed me the problem:

image

And really, here:

image

The key bit was the "_PROD_SERVER” appended tot he ReportServer URL.  Once I saw that, it was a simple matter to pop over to Dashboard Designer and use the correct URL, as shown:

image

And in detail:

 image

Bottom line:

  • Report Server URL comes directly from Central Administration
  • Report URL: Fully qualified URL to the actual RDL file itself.

It’s so easy when it’s done correctly!

</end>

Subscribe to my blog.

Follow me on Twitter at http://www.twitter.com/pagalvin

SharePoint Saturday DC on 10/16/2010

If you’re in the area or decent driving distance, you should consider taking part in the next DC Area SharePoint Saturday event.  This event has an interesting focus:

The focus more geared toward Federal Government and Public Sector SharePoint systems to case studies, how to’s, best practices, and methodologies.

That’s pretty good stuff.  It will be interesting to see a “focused” SharePoint Saturday event, a first for me.

I will be speaking on the general topic of “To Upgrade or Not to Upgrade – Practical Advice on Why and If You Should Upgrade to SP 2010”

I haven’t prepared the presentation yet.  If you have an interest in this topic, from any angle, please leave a comment.  I’ll respond and I’ll incorporate it into my presentation.

</end>

Subscribe to my blog.

Follow me on Twitter at http://www.twitter.com/pagalvin

Create Printer Friendly Pages and Even Print Them

I wrote up an article for SharePoint Briefing a week or so ago and it’s been posted.  Here is the opening bit:

image

You can read the whole thing here: http://sharepointbriefing.com/features/article.php/3904906/Create-a-Printer-Friendly-Page-in-Your-SharePoint-Sites.htm

I hope this helps someone.  Enjoy!

</end>

Subscribe to my blog.

Follow me on Twitter at http://www.twitter.com/pagalvin

SP 2010 CQWP, Document Libraries and Anonymous Users

Important update:  Waldek Mastykarz has posted a workaround here: http://blog.mastykarz.nl/inconvenient-sharepoint-2010-content-query-web-part-anonymous-access/.
</end update>

This week, my team and I were upgrading a customer’s public internet site from MOSS to SP 2010.  The MOSS site uses the CQWP in several places.

We went through a very detailed procedure to ensure accuracy, quality and all that good stuff.  Despite that, we ran into a problem in the 11th hour that we didn’t expect or uncover until very late.  Specifically, our CQWP wouldn’t render for anonymous users.  It rendered find for the authors (who were logged in), but it wouldn’t show the content for anonymous users.

We did a lot of research and these are the parameters and actions we took to isolate the behavior:

  • CQWP would render fine when it was pulling content from a custom list.
  • CQWP would render content from the /Pages library.
  • It would not render content from /SiteCollectionImages
  • We created a new document library and uploaded a few docs to it.  We did not add any content types to the library – this was a simple out of the box doc lib with no customization.  Existing CQWP could not read from it.
  • We created a new page and added a CQWP to it using all default values.  it would not render for anonymous.
  • We (somewhat hastily) set up a new SP 2010 environment, straight out of the box again and replicated this behavior.

Bottom line, it appears that CQWP in SP2010 can’t render content for anonymous users when the data source is a document library.  Can this be true?

This is the error that we saw in the logs:

Web Part title: Content Query Web Part 653d91fb-2f83-4e6a-83af-1f39e8939f0a
07/30/2010 12:03:56.90  w3wp.exe (0x0F30)                        0x1540 SharePoint Foundation          Web Parts                      89a1 High     Error while executing web part: System.NullReferenceException: Object reference not set to an instance of an object.     at Microsoft.SharePoint.Publishing.WebControls.ContentByQueryWebPart.SetDocumentIconUrlAndOnClickString(SPWeb web, DataRow row, String strDefaultItemOpen, Boolean fSetDocIcon, Boolean fSetOnClick, String fileRefColumnRef, String progIdColumnRef, String fsobjTypeColumnRef, String permMaskColumnRef)     at Microsoft.SharePoint.Publishing.WebControls.ContentByQueryWebPart.PreProcessForDocumentIconAndOnClickAttribute()     at Microsoft.SharePoint.Publishing.WebControls.ContentByQueryWebPart.AddContentQueryData()     at Microsoft.SharePoint.Publishing.WebControls.ContentByQueryWebPart.GetXPathNavigator(String viewPath)     at Microsoft.SharePoint.WebPartPages.DataFormWebPart…. 653d91fb-2f83-4e6a-83af-1f39e8939f0a

It just seems kind of impossible that CQWP wouldn’t work for anonymous users.  If you know any more about this, please post a comment.

</end>

Subscribe to my blog.

Follow me on Twitter at http://www.twitter.com/pagalvin

Take Control of your OK and Cancel Buttons

I wrote this article a while back, but looks like I didn’t link to it from my blog at the time, so here goes:

image

This article describes how to force newform.aspx to redirect to one page when the user clicks OK and a different page when she clicks cancel.

</end>

Subscribe to my blog.

Follow me on Twitter at http://www.twitter.com/pagalvin

Create, Update and Delete Patterns with SPD Workflow

I recently wrote an article for the good people at ShaerPointBriefing.com on a general pattern for implemented CRUD in SharePoint Designer.  Here’s a teaser:

image

Full article here:  http://sharepointbriefing.com/features/article.php/3889486/Create-Update-Delete-Patterns-with-SharePoint-Designer-Workflow.htm

Check it out!

</end>

Subscribe to my blog.

Follow me on Twitter at http://www.twitter.com/pagalvin

“Can Do” versus “Should Do” in SharePoint Projects

I think that many of us are occasionally presented with, for lack of a better phrase, young-child requirements.  The end user really, very badly wants a certain specific look and feel, or a very specific sorting structure or a to cut out one click or menu option to ease navigation or [insert passionately held belief that happens to be wrong].  As SharePoint pro’s, we can generally meet almost any kind of requirement with the platform, but for some of them, we know in our hearts that:

  • They are going to take a disproportionate amount of time to implement (and therefore cost more)
  • They are going to be highly custom and therefore difficult to maintain and troubleshoot
  • There is is some easy SharePoint approach that meets 80% or more of the requirement (i.e. meets the sprit of the requirement, but not the letter of the requirement)

Bottom line, we know that the “requirement” is really just a nice to have or even legitimate in some sense, but something that people should live with rather than spend a lot of time trying to “solve.”

I think of these as “young child” requirements because I’ve seen this pattern many times before.  Kids will pine away and nag you for some new toy for weeks at a time.  You get them the toy, they play with it for a few hours or days and then put it down, never to pick it up ever again.  Or, you don’t get the toy, the nagging stops and the kid moves on to become President of the free world.   I’ve seen this happen in SharePoint projects.  Decision makers either get what they want and it becomes an unused or underused function or they don’t get what they want and the project still succeeds anyway.

I was reminded of that today in a forum post and I liked how Clayton Cobb tried to get the forum poster to push back on one of these kinds of requirements: http://social.msdn.microsoft.com/Forums/en-US/sharepointinfopath/thread/af8a1941-92ad-4f1a-b1bf-875e28ea79b7/

I’m really curious how people view this topic and how you deal with it.  Am I missing the point?  Do you have strategies to steer decisions makers away from overinvesting in trivial requirements?  Please leave a comment.

</end>

Subscribe to my blog.

Follow me on Twitter at http://www.twitter.com/pagalvin

Quick Tip: Adding jQuery to MOSS Publishing Pages

When enhancing MOSS publising pages using jQuery, I hit the following speed bump:

Server Error in ‘/’ Application.


Parser Error

Description: An error occurred during the parsing of a resource required to service this request. Please review the following specific parse error details and modify your source file appropriately.

Parser Error Message: Only Content controls are allowed directly in a content page that contains Content controls.

Source Error:

 
Line 10: 
Line 11: 
Line 12: <script 
Line 13:     type="text/javascript" 
Line 14:     src="/jQuery/jquery-1.4.min.js"> 

Source File: /_catalogs/masterpage/KCC_FacultyMember.aspx    Line: 12


Version Information: Microsoft .NET Framework Version:2.0.50727.4927; ASP.NET Version:2.0.50727.4927

It was easy enough to fix (h/t to my colleague, Uday Ethirajulu).  Be sure that the jQuery code lives inside the “PlaceHolderAdditionalPageHead” as shown:

<asp:Content ContentPlaceholderID="PlaceHolderAdditionalPageHead" runat="server">

<script

    type="text/javascript"

    src="/jQuery/jquery-1.4.min.js">

</script>

<script type="text/javascript">

  $(document).ready(function() {

   // Brilliant jQuery stuff goes here.

   });

</script>

</end>

Subscribe to my blog.

Follow me on Twitter at http://www.twitter.com/pagalvin

A Little Annoyance Carried Forward…

SP2010 is very cool stuff, but I wish they would have adjusted the language on list and libraries settings’ pages when it comes to managing content types:

image

The same language was in place for WSS/MOSS.  Just change the word “delete” to “remove” and it will just plain make more sense.

Subscribe to my blog.

Follow me on Twitter at http://www.twitter.com/pagalvin

</end>