On the side when I’m not doing SharePoint development, I help recycle/repurpose old computers for donation or for friends and family.

I discovered some facts and a quick fix to make sure that Windows Update works.

Facts about Windows Update on a Windows (7) machine joined to a domain with a GPO configured to set all clients to get Windows Updates from a WSUS server:

  • Computer that is joined to the domain: The GPO will set a registry setting that directs Windows Update to the WSUS
  • Computer that was part of a domain and is removed from said domain: The Domain GPOs in effect will no longer be enforced, however, no action will be taken during the removal from the domain (e.g. switching to a workgroup). The registry key that tells the system to look for a WSUS server remains unchanged.
  • Computer not part of the domain connects to a domain-managed network: This computer will not get the GPO pushed to it since it is not part of the domain. Nothing will happen with Windows Updates or any GPO-enforced settings.

The Quick Fix:

  • Open Regedit and navigate to HKLM/Software/Policies/Microsoft/Windows/WindowsUpdate/AU
  • Edit the registry key “UseWUServer” and set its value to 0.
  • Open Windows Update and it should be able to connect to MS and download updates.

While you can always manually check online for windows updates, setting that value to zero (0) will allow Windows Update to automatically check for updates based on the schedule defined in its settings.

Sources:

SharePoint designer 2010 Workflow Error Handling

Posted April 1st, 2014 by Panda

As I continue to work in SharePoint 2010 and enhancing our corporate Intranet, I’m getting more creative with my basic workflows built out of SharePoint designer. And as workflow logic complexity increases, it also becomes more error prone. Besides creating lots of extra log entries scattered throughout my workflows, I stumbled upon a clever idea to get alerted when an error occurs.

In a nutshell, what it involves is creating an alert based on a workflow status. When a workflow is created, a new column is created that allows you to monitor a workflow’s status. While the default display of this column is a link to the workflow status page (also where you can find the log entries), the workflow status also corresponds to a numerical Event Type code. Build an alert based on that error code and voila! You’ll get notified when an error occurs!

Here’s a recipe for how to get alerts on event errors:

  1. On any SP list with a workflow, create a new calculated column.
    1. Name: IsError (or something meaningful)
    2. Formula: =OR([Event Type]=0,[Event Type]=10)
    3. Data Type: Yes/No
  2. Create a new view (e.g. Workflow Errors) that contains this column (You’ll need this to create an alert based on the view, and avoid exposing this to end users)
  3. After the view is created, be sure to navigate back to that view of the list, and create an alert by clicking the “Alert Me” button in the ribbon. Use the following settings:
    1. Change Type: choose the change type that correspond with how the WF is initiated (e.g. if the WF only fires when new items are created, so should your alert).
    2. Send Alerts for These Changes: choose the last option, “Someone changes an item that appears in the following view” and choose the view you just created in the dropdown.
  4. When to send alerts: choose the frequency that suits you.

That it! This is just a basic recipe, but you can change the ingredients how you like.

Sources:

Recently I added some email notification workflows to a SharePoint Custom List to send out status updates each time an item’s status is updated.

No rocket science here, as far as designing the workflow in SPD. However, I did run into one glitch: the end users receiving the email notifications were getting two emails at a time.

After some extensive searching on Google/Bing, here are some articles I found that were helpful, but none of them were thorough enough to help me, being that I have limited knowledge of PowerShell and syntax of SharePoint PS commands.

What I found out is that each SharePoint list has Event Receivers to monitor additions/deletions/changes to list items. Using PS commands, I was able to get a list of these Event Receivers (see image for sample of what kind of the output from PowerShell)


Here’s what I observed:

  • There were two ItemUpdated events
  • I noticed that the versions were different in the Assembly attribute (12, being SP2007, and 14 being SP2010). One additional detail is that this list was a template adapted from a SharePoint 2007 list reimplemented in SharePoint 2010

Here’s a list of the supporting articles I used to fix this issue:

I used script examples from each of those links and ran PS commands directly from front end of my SharePoint 2010 server with the SharePoint 2010 Management Shell.

First few commands were just to get my SharePoint site and store some variables. The key bit of info I needed was the $spList in question, which was my custom list with the workflow triggering twice:

$spWeb = Get-SPWeb -Identity http://mySP2010site/mySP2010SubSite/
$spList = $spWeb.Lists["MyList"]
$spList.EventReceivers

That last command displays a list of Event Receivers as displayed in the image above.

One article showed the delete command thus:

$spList.EventReceivers[#].Delete()

But I had no idea how the lists were enumerated, so now comes a little bit of trial-and-error. Using that syntax and the ability to pipe in a select query, I ran this line incrementally starting at 0 until I found the list in question. I used the GUID in the ID field to locate the one I needed to remove.

$spList.EventReceivers[0] | Select Id, Assembly, Type
$spList.EventReceivers[1] | Select Id, Assembly, Type
.
.
.

In my case, it was the second item in the list, so I ran this command to remove the event receiver:

$spList.EventReceivers[2].Delete()

That’s it!

DISCLAIMERS: I had to make an assumption since I didn’t have full command of how Event Receivers work nor how to manually create them. I assumed it was safe to delete the Event Receivers that were of the older SharePoint 2007 versions

YouTube URL Tricks

Posted June 19th, 2013 by Panda
  1. Disable Related Videos.
    1. &rel=0

  2. View high quality videos.
    1. &fmt=18 (stereo, 480 x 270 resolution)
    2. &fmt=22 (stereo, 1280 x 720 resolution) for even higher quality.
  3. Embed Higher Quality Videos. While the above trick works for playback, if however you want to embed hig quality videos you need to append
    1. &ap=%2526fmt%3D18
    2. &ap=%2526fmt%3D22
  4. Start video at specific time.
    1. #t=03m22s (#t=XXmYYs for XX mins and YY seconds) to the end of the URL.
  5. Hide the search box. The search box appears when you hover over an embedded video.
    1. &showsearch=0 to the embed url.
  6. Embed only a part of Video
    1. &start=30 (to skip first 30s of the video)
  7. Autoplay an embedded video.
    1. &autoplay=1
  8. Loop an embedded video
    1. &loop=1
  9. Bypass Youtube Regional Filtering. Some videos are only available in certain parts of the world. Goggle uses your IP Address to determine your current location, then allows or denies access to the video.
    1. Change the url from http://www.youtube.com/watch?v=<somecode> to http://www.youtube.com/v/<somecode>

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 &#44; 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.