Category Archives: User Groups

OCSPUG SharePoint User Group Monthly Meeting 9/18/2013

Come learn about Remote Blob Storage (RBS) and SharePoint!

Speaker: Eric Halsey

Presentation Time: 45 minutes

Topic: Remote Blob Storage

Eric Halsey, SharePoint Architect at PIMCO, will be talking to us about Remote Blob Storage (RBS) and how he is using Metalogix StoragePoint.

Bio: Eric Halsey, President and CEO of A CTO, is a seasoned veteran with over 20 years of information technology experience. He has spent many years consulting to Fortune 100 companies serving as a trusted advisor, mentor and critical situation manager. He spent four and a half years as a Sr. Consultant with Microsoft Consulting Services assisting large multinational enterprises deploy, operate and support Microsoft products.

Roland DGA Corporation
15363 Barranca Parkway
Irvine, CA 92618

Wednesday, September 18, 2013 from 6:30 PM to 8:30 PM (PDT)

SharePoint | Creating A Skills Matrix From SharePoint User Profiles Properties

So recently on a LinkedIn discussion it was asked if it was possible to build an out of the box Skills Matrix from the information stored in the Skills field of the SharePoint User Profiles.  Having written about how to create a SQL View to get User Profile Property Bag Values in a previous post, I thought this would be another interesting exercise on a real world use for these views.

Setting up the view is pretty simple, here is the structure we’ll use (See original post for how to set everything up):

CREATE VIEW [dbo].[vw_UserProfilePropertyBag]
SELECT     upf.NTName AS Login, upf.PreferredName AS Name, upf.Email, upf.LastUserUpdate AS Modified, pl.PropertyName AS Property, upv.PropertyVal AS Value, 
                      upv.SecondaryVal AS SecondaryValue
FROM         SharePoint_User_ProfileDB.dbo.UserProfile_Full AS upf INNER JOIN
                      SharePoint_User_ProfileDB.dbo.UserProfileValue AS upv ON upf.RecordID = upv.RecordID INNER JOIN
                      SharePoint_User_ProfileDB.dbo.PropertyList AS pl ON upv.PropertyID = pl.PropertyID

Quick note, in my original posting last year, I only looked for value.  However, with certain SharePoint fields where keywords are used, Value ends up being a GUID and what we’re really interested in is the SecondaryValue field which has human readable content, or as I like to call them actual words.

Once you have your view, running it will produce some nice results:




Domain\Admin Admin Admin@domain 2012-01-23 20:55:46 UserProfile_GUID 1A89D7FA-BLAH-BLAH-BLAH-1B5C0A3642DD NULL
Domain\Admin Admin Admin@domain 2012-01-23 20:55:46 SID 0x010500000000000BLAHBLABLAHBLA NULL
Domain\Admin Admin Admin@domain 2012-01-23 20:55:46 AccountName Domain\Admin NULL
Domain\Admin Admin Admin@domain 2012-01-23 20:55:46 FirstName Admin NULL


Looking at the Property field, we can find the specific property we want (You can also go into Central Admin and manage User Profile Properties to see what the field names are called, but a lot of them will be self-evident by either their name or the values they contain) which in this case would be the “SPS-Skills” property, so a quick query of our PropertyBag view for just this Property will give us a great list of all the profiles with their associated skills:

  FROM [WSS_Content_Views].[dbo].[vw_UserProfilePropertyBag]
  where Property = 'SPS-Skills'




Domain\Admin Admin Admin@domain 2012-01-23 20:55:46 SPS-Skills D272CB6F-9286-4DFA-A62A-48AA4F189B3B Mad skills
Domain\Admin Admin Admin@domain 2012-01-23 20:55:46 SPS-Skills 26F8647A-DE5C-48A1-A923-8E791093E23C C#
Domain\Admin Admin Admin@domain 2012-01-23 20:55:46 SPS-Skills 6B8B9757-F7D8-4C8C-908B-873956DCD78C SharePoint
Domain\Admin Admin Admin@domain 2012-01-23 20:55:46 SPS-Skills 86519AFC-3643-4D49-A77C-BBBE373EAFFC Social Media

So now that we have our raw data we can do a couple different things with it that aren’t possible with out of the box SharePoint.  Obviously we can query for a specific name to give us a list of their skills, but we can do that already in SharePoint by just looking at their user profile page.  However, we can also query for a specific SecondaryValue, and get a list of all the people who have that skill in their profile.  If we want to take this a step further and create a skills matrix of all the users in the company, just follow these steps:

  1. Run the query for SPS-Skills in something like SQL Manager
  2. Highlight the data in SQL Manager results table and copy and paste it into a new Excel Workbook
  3. Now highlight the data in Excel (I use Excel 2013), click the INSERT tab and click PivotTable
  4. image
  5. If you’ve done everything right so far, a dialog box will pop up looking like this:
  6. image
  7. Click the OK button to add the PivotTable into a new worksheet.
  8. From here, you can set up a basic PivotTable to show you a Users/Skills matrix by selecting the fields and dropping them into the correct Rows/Columns/Values regions:
  9. image
  10. And now you have what could be a very large User/Skills matrix.

That’s just the basics, obviously there’s lots of room to improve the functionality and usability.  You can for instance link the data as a query an external SQL data source.  You can include additional properties so you can further filter the PivotTable by department or office location.  You could event publish the Excel spreadsheet to SharePoint and use Excel services and web parts to expose the data to the end users on their own SharePoint sites.  So with a little creativity and a couple of views you can create some very slick “no-code” applications that rely on data stored in the User Profiles.

OCSPUG | Orange County SharePoint Users Group Social Media Stuff

There hasn’t been a lot of technical blogging this last month as I have been getting more involved with the OCSPUG group and helping to promote our own version of collaboration between different audiences in the SharePoint world.  I have to say it’s been a great experience so far and I love to meet and talk to people about something I have a growing passion for.  It also gave me a chance to dip my toe into the social spheres outside of corporate SharePoint and into some of the more traditional arenas that people consider to be the “Social Web”.  So far, here’s a couple of things we’ve done…

1. Set up the site.  Because everyone has to have a web address to hang their hat on.  Now this site is very “sharepointy” on purpose, after all we are a SharePoint user group.  That being said in the next couple of months I’ll probably add a few tweaks here and there to the branding.  I recently had a project where I needed to incorporate the Twitter Bootstrap into SharePoint, so that may be the next enhancement on the books for the site. After all we are trying to promote the SharePoint framework as a mobility platform at the next OCSPUG meeting.


2. Started to actively promote the LinkedIn Group: Orange County SharePoint User Group.  It’s been there for a while, go check it out.  The last couple of months discussions are mostly promotional posts and “Hey, is there a meeting this month?” questions, but hopefully we get a little more interactive.  I even posted a poll question to get some feedback about what kinds of presentations members would like to see at the monthly meetings.


3. Twitter Account.  Everyone needs one of those.  As of this writing there are 33 followers!  Now, one of the other things I did with Twitter was use a Twitter webpart on the website to query for the #OCSPUG hashtag, so that when people tweet with that hashtag it will show up on the OCSPUG homepage.  At some point a blog post will follow on how you can add your own Twitter feeds to a SharePoint site.


4. Facebook!  Because the Internet is Facebook to a lot of people.  Not quite sure what to do with the OCSPUG page, we only have 11 “likes” so far.  Seems like the group is more geared towards the LinkedIn framework of professional contacts and Facebook is more of a social “friends” hangout, but maybe we’ll figure out what to do with it eventually.  At the very least it’s another channel in which to reach people interested in SharePoint and connect with our group.


A lot of this, while not a first time experience as I’ve used all these social tools before, is a learning experience for me to focus these channels for an expected outcome of promoting the OCSPUG user group and ultimately getting the word out with the goal of increasing attendance at our monthly meetings.  I think it would be interesting over the next couple months to track attendance and see which digital channels (if any) are effective in getting people to swing by and check out the OCSPUG meetings.

Next SoCalCodeCamp October 13th & 14th, 2012 at USC

Code Camp is a free event for developers to come and learn from their peers. This community driven event has become an international trend where peer groups of all platforms, programming languages and disciplines band together to bring content to the community.

Who is speaking at Code Camp? YOU are, YOUR PEERS are, and YOUR LOCAL EXPERTS are… all are welcome! This is a community event and one of the main purposes of the event is to have local community members step up and offer some cool presentations! Don’t worry if you have never given a presentation before, we’ll give you some tips if you need help, and this a great opportunity to spread your wings. Of course, we do have some ringers on our speaker list as well… stay tuned… Schedule is released 2 weeks before the event and will be located here:

And yes the price is right! FREE FREE FREE

Please just check in when you get to the event so we can know how many people showed up and so we can give you some fun stuff

We are out of the gate fast with our LA Code Camp this year. Here are August/September tasks to help co-create our amazing community-driven event!

  • RSVPed/marked my calendar/encouraged others to do the same
  • Submitted and/or encouraged others to submit sessions – Speaker FAQ
  • Blogged/tweeted commented/retweeted about awesome sessions and the event
  • Signed up and/or encouraged others to contribute as a financial and/or raffle-prize sponsor – Sponsor FAQ
  • Signed up and/or encouraged others to volunteer on event-day – Volunteer FAQ
  • Enjoy the rest of my summer… and be ready for another great SoCal Code Camp!

Remember, YOU help make Code Camp GREAT!

Many thanks!

Inland Empire .NET User’s Group Meeting September 24 @ 6:30pm

I’m actually going to try to make this one.  Normally meetings are on Tuesday evenings and I’m busy being the "Soccer Coach” on Tuesday evenings… Looking forward to seeing you there!

Next User Group Meeting

When: Monday, Sep 24, 2012
Where: New Horizons (new location)
Time: 6:30 to 9:30 pm

Special Meeting Date !

"The Business of Software”

We all know how to write great software, but once all the code is written, the unit tests are done, and everything is deployed, now what do you do to make some money? This is an interesting issue for all of us, so come listen to Mindscape co-founder John-Daniel Trask present on the Business of Software.  JD is making a special trip from Wellington, New Zealand to present to several user groups in Southern California, and will be making a special stop in the Inland Empire to talk to us. Please note, this is a special meeting and will be on Monday September 24th.