The Blog

I ran into a situation where I created a User Profile Property with the Replicable checkbox set, which had a really long name. There were no errors when saving the profile property, however later on I started receiving errors in the Event Log:

failure trying to synch site [guid] for ContentDB [guid] WebApp [guid].  Exception message was A WSS internal name for profile property ‘ProfilePropertyWithReallyLongName’ could not be found..

Apparently SharePoint has a limit of 32 characters for Internal Field Names. This will also apply to Replicable User Profile Properties since they will get synced down to the WSS Content DB in the UserInfo list.

I just finished wall mounting my HP TouchSmart IQ800 series, and wanted to write it up to help others who are interested in doing this. There is another great post about this with pictures here, so hopefully looking at both will give you a good solid understanding of the process. The other poster mounted with a swivel arm mount, but I used the fixed mount that you can purchase directly from the HP site when you buy your TouchSmart.

Overview

When we remodeled our kitchen a couple years ago, I envisioned a television or other media device wall mounted in a particular spot opposite our refrigerator. When I first saw the TouchSmart, I knew exactly what needed to go there.

 IMG_4457 IMG_4459 IMG_4460

During the remodel, I wired ethernet/phone/coaxial ports up the wall near the light switches in anticipation of this.

IMG_4461

Note: Quick word of advice – mounting this thing is not for the faint of heart. If you have any hesitations about attempting this, I’d recommended enjoying your computer and its warranty on your desk :). For the brave, read on…

Planning

Remember the old saying, “Measure twice, cut once”. Okay, some things to keep in mind:

  1. You have to mount this into a stud. Don’t try to use drywall anchors, the unit is too heavy for that.
  2. If your stud very far off-center from where you want to mount, you’ll need to consider a swivel mount instead of the one HP offers.
  3. If your stud is slightly off center, you may be OK, as you can put the VESA hanging bolts off to the right or left a bit (I’ll show that later).
  4. At first glance, the mounting bracket looks uneven, but don’t get concerned. The flange on the left is shorter than the one on the right. However, when you slide the bolts into the holes, they slide back to the left and everything is centered.
  5. Lay everything out first and do some dry runs, seeing how everything will fit together.

Some things you’ll need:

  1. Corded power drill with 5/32” drill bit
  2. 7/16” socket and ratchet
  3. 7/16” hex stainless steel lag bolts (2 1/2” long)
  4. Level
  5. Philips and Regular screwdrivers
  6. Measuring tape
  7. Short ladder
  8. Stud finder

Attaching the Mounting Plate to the Wall

Using your stud finder, locate the stud and mark both sides at the approximate height where you want the center of the unit to be.

My stud was about 2 inches off center from my ideal spot for the unit, but after laying the mounting adapter out, I realized I could place the mounting bolts on the adapter off to the right or left instead of in the center, which would help bring it closer to where I wanted it. The pic below shows the six holes you can use. You can either use the four corners, or the group of four to the left or right.

 IMG_4462

Using a level, hold the mounting bracket up to the wall so the holes in the center align with the middle of the stud. Use a pencil to mark each hole on the wall.

IMG_4470

Get on a ladder or chair and using the 5/32” drill bit and power drill, pre-drill the holes as straight as you can.

IMG_4471

The mounting bracket came with Philips head screws. The directions show a person manually using a screwdriver with force to screw these in. This might be fine on newer homes with softer studs, but my house has 80 year old fir, and that stuff is hard as rock and doesn’t budge. When I tried to screw these in, it was too tight a fit. I re-drilled each hole to ream it out and widen the hole a bit. I tried again and stripped one screw, and a second one actually broke in half inside the wall, just from using the manual screwdriver.

IMG_4475

Frustrated, I took a trip to McLendon’s Hardware, and purchased 5 stainless steel lag bolts with a hex head. These are much stronger than the chincy zinc ones they gave me, and won’t strip if you use a ratchet.

IMG_4481

With the broken screw still in the wall, I had to move the holes down a little and re-drill. The lag bolts were much better and went in so much more easily.

IMG_4476  

Attaching the Mounting Adapter to the TouchSmart

The VESA mounting adapter from HP comes with some great instructions on how to add the adapter, remove the legs, etc. I just followed to the letter, and marveled at how well the whole computer was designed and engineered for this. Grab some towels or a blanket, and place your TouchSmart face down on them on a flat surface.

TouchSmart still with stand TouchSmart opened up TouchSmart back together with VESA adapter

When it comes time to put the mounting bolts on the adapter, you use the shortest and smallest screws it comes with.

The smallest mounting bolt screw

You can mount these in four holes either left-of-center, right-of-center, or four corners. I chose left-of-center to bring the unit closer to the center of the wall space, since my stud was off-center to begin with.

Moving the mounting bolts over

Finally, get someone to help you hold it, and mount it up.

Final Picture 

Wiring

The power supply brick is absolutely huge, and needs to be considered. If you only have power at an outlet down near the floor, I’d recommend fishing some wire and putting an outlet on the wall behind the unit.

Luckily I have some light switches below the unit, so I can tap into the power from there and run a short cable up for a new outlet. I’ll post another picture of cable management when I’m done with that.

Reaction from my Wife

So after all this work, and finally getting this thing up with no major screwups, what was my wife’s reaction?

“I can’t reach it, you put it up too high.”

Oh brother…

charlie brown oh brother

I ran into an issue where hyperlinks in workflow task emails where being automatically changed by SharePoint from absolute hyperlinks to relative ones.

Scenario:

  1. You create a custom Visual Studio workflow and use the CreateTask activity.
  2. You set your SPWorkflowTaskProperties.Description property to some HTML text.
  3. In your Description HTML text, you have an html hyperlink <a> tag whose href=”” attribute contains an absolute hyperlink to a resource in the same SharePoint farm (i.e. a list item).
  4. Example: “Please review <a href=”http://yourserver/site/lists/yourlist/dispform.aspx?ID=1”>contract #12345</a>”.

Goal:

Users will receive the task email, and be able to click on the absolute URL in the email body to navigate to the SharePoint resource.

Problem:

It appears that SharePoint parses this HTML and readjusts the hyperlink and makes it relative.

Example: “Please review <a href=”/lists/yourlist/dispform.aspx?ID=1”>contract #12345</a>”

This effectively breaks the hyperlink in the email client.

The only workaround was to get rid of the <a> tag and write out the hyperlink in full. For example:

“Please review contract #12345 (http://yourserver/site/lists/yourlist/dispform.aspx?ID=1)”.

In this manner, SharePoint did not adjust the hyperlink at all.

I ran into a BDC error, “Type does not match DotNet type of TypeDescriptor”, with a particular application definition I wrote. In this case, I had a specific finder method that took one input parameter (the identifier) that was of type System.Decimal. It turns out I didn’t specify a default value in the TypeDescriptor for this input parameter in my XML definition. It looks like when you don’t set a default value, it will automatically set one for you and assign it a type of System.String. I was able to see this when I exported the BDC definition fresh, and noticed that SharePoint automatically added this default value and type for me.

Rule of thumb, always specify a default value for each input parameter.

After hours of loading software, I built the basics of my first TouchSmart/TouchCenter application. I wanted an easy way to check Seattle area traffic from TouchSmart, so I created a tile to grab the traffic flow image of the bridges from the mobile WSDOT site:

TouchSmart Seattle Traffic Tile

It took about twenty minutes to create the project, paste the shell XML from the application primer article, and register the application.

The Image control in WPF is slick because you can use a web url to a graphic file in the Source property. In WinForms I would have had to use the WebClient, get the image, save it somewhere, and load it into a picture box.

Now I need to add in a timer to refresh the image every so often, a button to manually refresh, the ability to see the North/South and full region maps, and add some visual spice.