Skip to main content

SharePoint Blog Posts

Today we just resolved a pending issue. Our custom WP which aggregates the latest posts from all the blog sites in our site collection threw up a SQL Error "All queries combined using a UNION, INTERSECT or EXCEPT operator must have an equal number of expressions in their target lists". We were unable to replicate the issue in our test servers. Even the OOTB CQWP could not surface the blog posts. Pretty strange uh.The fix was pretty simple.

We had two blog sites Site A and Site B. Both the sites had only the default site columns provisioned.
When you try to edit the settings for any column of type "Person or Group" in any SharePoint List, you see an additional dropdown list "Show field". The columns in both the sites need to have the same value in "Show field" when you are querying items from two different lists (SPSiteDataQuery or CrossListInfoQuery)

 For example, a column called "Created By" exists for all the Blog posts in Site A and Site B. In Site A the value of the Show field was Display Name and in Site B we had Name (with presence) for the Created By column.

The mismatch was causing the issue. Once we changed the value in Site A to Name (with presence), the error just vanished and the custom WP pulled posts from all the blog sites in the site collection. It looks simple, but these are small things which we tend to overlook.

Comments

Popular posts from this blog

Enable Session State in SharePoint 2010

You would have noticed that after installing SharePoint 2010 and deploying your custom solutions, code which is dependent on Session variables would not work as expected. That is because the Session state is not enabled by default. You just need to run this cmdlet in Powershell and boom Session starts working. Enable-SPSessionStateService –DefaultProvision A new service Application by name "SharePoint Server ASP.NET Session State Service" should be available. The web.config will have this additional entry under configuration/system.webserver/modules Also dont forget to change the attribute "enableSessionState" to true in the page Element.