In my continuing development of SharePoint (and without any formal training) I stumbled upon a solution something that has bugged me for a LONG while. And it also had some M$ Gold partners baffled since we were both early adopters of SharePoint 2010…

Here’s the situation: When creating a custom data view in SharePoint Designer 2010 based on a SharePoint list, special characters get displayed as encoded HTML code (e.g. the Apostrophe becomes #39;)

When I first created the above table in SPD by adding an Data View, it generated a bunch of XML and when I looked at the code I saw the following:

No surprise here… by selecting the item in the GUI editor, it auto-highlighted this line of code in the Code view…

But for a while I avoided creating custom data views because I didn’t know much about XML, XSLT, and that whole world of data formatting.

To fix this, all I had to do was simply add to this xsl:value-of tag the attribute disable-output-escaping=”yes”

Now my table shows up correctly!

Not rocket science, but definitely something good to know!

Credits go to Jeremy Jameson and his article on Web Standards Design with SharePoint, Part 5 (a.k.a. Rendering Semantic HTML using XsltListViewWebPart): http://blogs.msdn.com/b/jjameson/archive/2011/04/27/web-standards-design-with-sharepoint-part-5-a-k-a-rendering-semantic-html-using-the-xsltlistviewwebpart.aspx

I just recently discovered SharePoint Manager 2010 and it is THE awesome companion to Central Admin!

I stumbled upon SharePoint Manager 2010 on CodePlex in search of a solution for moving a subsite to a different location in the same Site Collection.

When I first inherited administration of our SharePoint 2010 site, it wasn’t correctly implemented, and the Manage Content and Structure feature was broken. After some searching on how to fix this, I started reading responses of running the SharePoint Configuration Wizard again, but that came with a warning: It may reset any customizations to page layouts!

This specific SharePoint 2010 environment has been running for well over a year and the end users have done a lot of customizations. There’s no telling what might be “broken” or reset to factory standards by running the SCW again.

This lead me to find other means to moving the site without the Manage Content and Structure tool. I found some sites that started talking about STSADM, and then I finally stumbled upon this blog post: http://www.wareprise.com/2009/04/21/how-to-move-a-site-from-one-subsite-to-another-in-sharepoint/ which was referring to SharePoint Manager 2007. I immediately did a SharePoint Manager 2010 search and found it on CodePlex!

Get it here: http://spm.codeplex.com/

There was a LOT of other things that are configurable via SharePoint Manager, but here’s the EASY trick to moving a site:

  1. Open up SharePoint Manager 2010 from the Web Front End Server.
    I’m not sure if this matters, but make sure you are logged on with your SharePoint Administrator Service Account or user account with admin privileges to SharePoint. The Download off CodePlex is a zip file that contains a folder. The application itself does not need to be installed. Just unzip it to a preferred location and run it.
  2. Drill down to your sub site.
    Web Applications > Application Name > Home > Webs > drill down to sub-site in question
    You will note that for each site, all sub-sites are listed under the Webs folder of that specific site.
  3. In the Properties Pane, look for the attribute ServerRelativeUrl.
    (they are all alphabetical)
  4. Simply update that value to move the site to a new location.
  5. Click the Save Button and you’re done!
    Note: if you type the wrong url, the program will throw an error. At first, I panicked because I thought that there was some permissions issue or other unknown factor preventing the SP Manager from making a change… I’m glad it turned out to be a typo!

A couple of months ago I started documenting issues I had with my Atrix in my post: Motorola Atrix with Gingerbread Update triggers infinite loop on forwarded emails.

This has now occurred on two Moto Atrix devices from AT&T and one Moto DROID from Verizon within our organization running Exchange 2010.

Here’s the fix!

  • From the Motorola device that is sending out the infinite loop of emails, open up the email app.
 
   
  • Tap the menu soft-button, and choose Email Settings

   
  • Scroll to the bottom of the menu and choose Smart Forwarding

   
  • Ensure that Smart forwarding is unchecked.


Additional Thoughts

These screenshots are from the Motorola Atrix, and I assume they would be similar on the DROID. My impression is that Smart forwarding is a great idea to lessen the strain on data plans, but it definitely needs to be fixed to be compatible with Exchange 2010 (I haven’t been able to test this on Exchange 2007 or below yet). I would also assume that most Companies providing data-enabled devices should also include unlimited data plans. Maybe Motorola should include a question about enabling/disabling Smart forwarding in their email setup wizard?

Recently I’ve been asked to create a simple “online store” order from to help our office managers’ better track what people are ordering and keep costs down.

They wanted to gather each employee’s desired office supply needs and make one large order to capitalize on volume pricing, while avoiding over-purchasing supplies.

The quickie solution I came up with was to provide users an order from using SharePoint. I designed the UI in InfoPath, and enabled it to be a web form, allowing users to submit their orders to a SharePoint list. Office managers can then place group orders for all the employees as well as know what each employee ordered.

This article isn’t really about how I did this, but to point out a great resource I stumbled upon as I architected my solution: 2 Ways to use a repeating table with a SharePoint list in InfoPath 2010

Hope this helps you in your SharePoint projects!

Here’s a sidetrack from my usual SharePoint posts. Hopefully by reposting my cry for help on the atrixforums.com, I can generate some traffic and get Motorola and AT&T to notice a glitch in their new Gingerbread update to the Atrix phones out there.

 

Problem: Forward Emails Infinite Loop after GB update

After updating to the GB OS through AT&T’s OTA update, I have observed this problem on a rooted and non-rooted phone: An email, with PDF attachment, forwarded from the phone via Exchange account gets stuck in the outbox. The recipient subsequently receives that same email repeated indefinitely until either the phone is turned off, the Exchange account completely removed, then re-added, or a factory reset.

Can someone else see if they can duplicate this problem?

Here are the environmental factors to consider:


Here are the steps to reproduce the problem:

  1. Open an email that includes a PDF attachment in the native Email app (make sure this is an account associated with your corporate exchange account).
  2. Forward that email (and include attachments) to a recipient on the same email domain / Exchange Server.


Here is the problem:

  • The recipient receives the email in normal expected delivery times (about the time it takes to upload the email and attachments over the air, cycle through any spam filters, and reach the recipient’s inbox).
  • The recipient will receive this same email again at intervals equivelant to how long it would take to resend the same email (the larger the attachment(s), the longer it takes)
  • This email shows up in the phone’s outbox, but when tapping on it to open, the error message (paraphrased since I don’t want to trigger another infinite email string and delete my exchange account again): “Unable to open message: This message has already been sent” or something to that nature. Yet… the email doesn’t clear out of the outbox.


Two ways to clear this infinite loop problem:

  1. Delete the account from the phone (settings > accounts > long-tap on the corporate email account > delete)
  2. Master/factory reset the phone.

I have performed 3 master resets, and about 8 email account deletions/re-adds

 

Other Troubleshooting Steps:

  • Sent the same email with attached PDF using a comcast.net account registered on the same native email app… This did not reproduce the error
  • Sent the same email with attached PDF from the problem exchange account to gmail… this did not reproduce the error


My experience with Technical Support:

  • I have also spent about 9 hours between AT&T’s support and Motorola’s support, and they have not seen this problem yet in their collective experience supporting the Atrix.
  • I have been escalated to a level three technical support from Motorola where I assume their techs are trying to reproduce this error. They promise a response within 24 hours (I shall hear from them by 12:10pm 8/19/2011 PST)
  • AT&T has offered to send me a refurbished replacement phone, but I want to wait until I hear back from Moto.

So… Any of you Atrix tinker’ers out there, can you help by doing some tests to help us further narrow down and pinpoint the exact problem? This might bode as a possible OTA fix/update from AT&T if this is repeatable… Also, how would one escalate this problem further up the chain at AT&T?

Read my original post here: http://www.atrixforums.com/forum/motorola-atrix-help/5151-forward-emails-infinite-loop-after-gb-update.html

I recently noticed this error on the SharePoint 2010 Front End Web server:

  • Event ID: 7043
  • Source: SharePoint Foundation
  • Details: Load control template file /_controltemplates/TaxonomyPicker.ascx failed: Could not load type ‘Microsoft.SharePoint.Portal.WebControls.TaxonomyPicker’ from assembly ‘Microsoft.SharePoint.Portal, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c’.

A quick search online proved that this is easy to fix:

  1. Navigate to 14 Hive (/14/TEMPLATS/ControlTemplates/TaxonomyPicker.ascx) user control
  2. Open this user control in a text editor and locate the first line.
  3. Find the character string , and replace with a comma ‘, ‘ (without quotes).
  4. Save the user control and you have completed fixing this bug.

Todd Carter also suggests removing this user control, since it isn’t used in the Microsoft.SharePoint.Portal assembly. You can read more about this error and fix on his blog at http://todd-carter.com/post/2010/05/03/Help-Wanted-Taxonomy-Picker.aspx.

Automatically Rendering SSRS Reports as PDF

Posted August 3rd, 2011 by Panda

It’s been done before, but worth mentioning. Enjoy! J

http://social.msdn.microsoft.com/forums/en-US/sqlreportingservices/thread/a09d26ad-776a-447c-ab1a-ab59e1f8f667/

Here’s the syntax I used (all on one line in the URL, of course):

http:// <serverName>/ReportServer/Pages/ReportViewer.aspx?/
<PathToReportOnServer>/<ReportName>
&<ParameterId>=<GUIDforThisParameter>&rs:Command=Render
&rs:Format=PDF&rs:ClearSession=true

Volunteer to be a host family!

Posted August 1st, 2011 by Panda

Here is a little tangent from the usual Tech blogging.

A friend of mine asked me to help spread the word of the need for Host Families for Japanese College Students in Portland, OR.

Here is the “emergency” request:

Currently I am working for a non-profit homestay organization, ANDEO International Homestays.

We are expecting about 45 Japanese college students arriving on August 11th. They will attend PSU special ESL classes and afternoon excursions while they are here. They will return to Japan on Sept. 6th. We received so many host family cancellation last week, and we (my department, and I am the manager..!) still need about 19 more host families for these Japanese college students arriving on August 11th.

When we say “Host family” this means..

  1. single adult who is interested in sharing her/his home to a student and/or
  2. retired couple with/without children at home, and/or
  3. young couple (married or not) with/without children, and/or
  4. international family (some family members may speak Spanish, Chinese, Russian, Korean, etc but speak English at home as a main language – we ask them to speak English as much as they can at home, too) with/without children, and/or
  5. families with specific religion or not

Some families live in apartment, some live in a big house, some parents both work, some are retired. Some families are African American families, some are Asian Americans, some are mix race families, etc.

Is it possible for you to forward my message to as many as people you know? Below is the details of this Japanese college program based at PSU. (We will need to place these students by the end of August 4th…!) Joel is already hosting one of my Chinese students from Beijing…!

PSU, International Special Programs Office and ANDEO International Homestays (non-profit homestay organization) are welcoming 45 Japanese college students from August 11 – September 6th (4 weeks).  Students will attend morning ESL classes and afternoon excursions based at PSU, Monday through Friday, 9am – 5pm daily.  During their PSU program, they will live with host families to learn about American culture, life style and learn about you! 

ANDEO provides students with Trimet tickets, and teach them how to ride the bus/MAX from home to PSU - so families do not need to drive their students to PSU everyday.  A bilingual staff from ANDEO will be on call for 24/7 for any emergencies.  Hosting a student is not as difficult as you think!  PSU will keep the students busy during the day, so your student is looking forward to spend relaxing weekday evenings and fun weekends with your family.   Hosting stipend for hosting a Japanese student for 4 week is $480 in total.  We ask families to provide 3 meals a day (self-serve breakfast and lunch, dinner with family), a comfortable room, and invitations to your daily family activities.

Attached is the program calendar for this group.  If you are open to hosting a Japanese student, please apply online right away!:
Attachment: 2011 America Plus Calendar – Tentative

If you have any questions about this program or other hosting opportunities, please feel free to call Kellie at 503-274-1776 or email her at kellie@andeo.org.

SSL on WSS 3.0 Breaks after IISRESET

Posted June 28th, 2011 by Panda

I’ve recently ran into a peculiarity with getting SSL set up for an existing WSS 3.0 site: They quit working after I run IISRESET. While there have been many different blog posts out there seemingly with the right answer, they haven’t worked 100% in my case. Below is what I have discovered to work along with some caveats and gotchas.

The Environment:

  • WSS 3.0
  • IIS 6.0 (Win2k3 x64)
  • Two different Web Applications with different URLs
  • On Advantage Cert from Entrust (allows registering of two SSL CERTS)
  • Server is in a workgroup. It is a standalone server. No other servers in farm.

The Current Solution:

To the existing SharePoint Web Application in IIS:

This is a fully functional SharePoint site that had been running in BETA w/o SSL. Now that we are moving to production, it makes sense to secure it using SSL… All of the settings below were done through IIS except where otherwise specified.

  • Added a valid CERT to the current web application of the SP Site in IIS (in this case, SharePoint – 80)
  • Changed its default port from 80 to 81
  • There are no host headers on my SharePoint – 80 site
  • On the Cert properties (Directory Security > Edit (the cert):
    • Require Secure Channel
    • Require 128-bit encryption
  • Directory Security Tab > Edit (Authentication and Access Control):
    • Enable Anonymous Access (leave the username/password default)
    • Changed Authenticated Access to Basic Authentication (password sent in clear text)
    • Put the computer name in the “Default Domain” field
  • In SharePoint Central Administration, I’ve set the following Alternate Access Mappings (SCA > Operations > Alternate Access Mappings)

Create a Redirection Website in IIS:

  • Created a new IIS website called Port80Redirect:
    • Added host headers on port 80 to my site
    • Home Directory set as “A Redirection URL”
    • Entered the https:// URL to my site

With the current settings mentioned above, and without running IIS Reset… the SharePoint site works as expected. Any attempts to access the site via http:// will redirect the user to https:// so users don’t get the error message that they must enter the address as HTTPS.

I repeated these steps above for my second web application (I have two different web apps… essentially hosting two different web sites)

Problems:

IISRESET breaks the sites:

  • If I run IISRESET, BOTH sites become inaccessible.
    • IE 8 and 9 report “Internet Explorer cannot display the web page. No error numbers of any sort (useless error!)
    • Chrome reports Error 107 (net::ERR_SSL_PROTOCOL_ERROR): SSL protocol error.

The Workaround:

The only way I’ve found as a workaround is to add a host header to the main site (currently set to port 81), then remove it.

This seems to trick IIS into working again – FOR BOTH SITES!

It is as if making some sort of change to any of the sites in IIS site fixes things (although I’ve only attempted to change the main site, since that is what I was initially troubleshooting).

This is a predictable and repeatable problem and workaround.

Any comments or insights as to why this happens will be greatly appreciated. I am sure there is an obvious answer, especially regarding how to work with SSL Certs and IIS 6.0; but with Google and Bing as my textbooks (no other proper training), and my gut instincts as my tools, this is what I’ve been able to figure out.

SharePoint 2010 – Groups to which a User Belongs

Posted June 14th, 2011 by Panda

Recently, I was asked to “mirror” someone’s access levels, but had not the budget to buy some of the professional-level administration tools out there. After a few trips to Google and Bing, I finally came up with this quickie:

  • Use SharePoint Designer to create a SOAP Service connection to the UserGroup.asmx web service in SharePoint 2010.
  • Use this connection to create a web part web page in your SP Site.
  • Use SharePoint Filter Web Parts to target the specific user

The steps below are just the “quick and dirty” to get the info I need. This is just a starting point, and you can definitely use your favorite customization methods or skills to polish this idea.

Create a SOAP Service connection in SharePoint Designer

  • In SharePoint Designer 2010, I opened up my “lab” sub-site.
  • Click on Data Sources, and then add new SOAP Service Connection.
  • Enter http://YourSharePointSite/_vti_bin/UserGroup.asmx in the location field then click Connect Now.
  • Select GetGroupCollectionFromUser.
  • Modify the userLoginName parameter and…
    • Enter a valid domain\username in the Default Value box.
    • Check “The value of this parameter can be set via a Web Part connection“.
      Note: If you don’t put something there, SPD won’t allow you to add a web part to a page.
  • Click OK.

Add a web part based on the SOAP Service Connection

  • Open an existing page or create a new page on your SharePoint site
  • Edit that site in SPD, and put your cursor in the web part zone you want to place your data.
  • Under the Insert tab, click Data View, then select the new data source just created.

 

Add a filter to the page to allow filtering by login name

It was easier for me to finish this experiment up by editing the page in a web browser

  • Edit your page in a web browser.
  • Add a Query String (URL) Filter, and open the tool pane to edit its settings.
  • Enter a Query String Parameter Name and click OK.
  • Connect this Query String Filter to the Data View Web Part you added in SPD:
    • Click the Query String Web Part’s context menu and choose:
      Connections > Send Filter Values To > your Web Part
    • Select Get Parameters From for the connection type and click Configure.
    • Select userLoginName for the Consumer Field Name and click Finish.
  • Now you can use query parameters to select which user you want to display: http://YourDomain/YourSite/default.aspx?Login=Domain\Username

From here you can take it where you like… Create a form to refresh the page with the username you want to look up or any other type of extra customizations you prefer… or just be lazy and change the Query String manually if you are just using this as a quick reference as I have.