<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>SharePoint Help</title>
	<atom:link href="http://sharepointsolutions.com/sharepoint-help/feed/" rel="self" type="application/rss+xml" />
	<link>http://sharepointsolutions.com/sharepoint-help</link>
	<description>SharePoint Help Community Home</description>
	<lastBuildDate>Wed, 24 Mar 2010 20:34:48 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Create a Detailed Custom Task Notification with a SharePoint Designer Workflow</title>
		<link>http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/03/create-a-detailed-custom-task-notification-with-a-sharepoint-designer-workflow/</link>
		<comments>http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/03/create-a-detailed-custom-task-notification-with-a-sharepoint-designer-workflow/#comments</comments>
		<pubDate>Wed, 24 Mar 2010 16:59:57 +0000</pubDate>
		<dc:creator>Ricky Spears</dc:creator>
				<category><![CDATA[MOSS Help]]></category>
		<category><![CDATA[SharePoint Designer 2007]]></category>
		<category><![CDATA[Workflow]]></category>

		<guid isPermaLink="false">http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/03/create-a-detailed-custom-task-notification-with-a-sharepoint-designer-workflow/</guid>
		<description><![CDATA[It seems that few SharePoint users are happy with the out-of-the box task notifications. While they serve their purpose, we often want highly customized emails that contain more information about the task.
I recently created a workflow that used the Collect Data from a User activity. When you go through the Custom Task Wizard, SharePoint Designer [...]]]></description>
			<content:encoded><![CDATA[<p>It seems that few SharePoint users are happy with the out-of-the box task notifications. While they serve their purpose, we often want highly customized emails that contain more information about the task.</p>
<p>I recently created a workflow that used the <em><strong>Collect Data from a User</strong></em> activity. When you go through the Custom Task Wizard, SharePoint Designer creates a Content Type (based on the parameters you selected) in your site and adds that content type to the Workflow Tasks list for the site. The task notifications use the standard template though and look like this:    <br /><a href="http://sharepointsolutions.com/sharepoint-help/files/2010/03/image.png"><img style="border-bottom: 0px;border-left: 0px;border-top: 0px;border-right: 0px" border="0" alt="image" src="http://sharepointsolutions.com/sharepoint-help/files/2010/03/image_thumb.png" width="583" height="386" /></a>     </p>
<p>So, in this example, Alan needs to correct something in inventory. He can see that an item called “Shipped to Dan’s Bikes” created the task, but he really doesn’t have any idea what he needs to correct, or why he needs to correct it. He could probably figure it out if he clicked on the link to <em>Shipped to Dan’s Bikes</em>, but that’s not very intuitive and still means more work for Alan. If he clicks on the link to <em>Edit this task</em>, he doesn’t get much more details there:    <br /><a href="http://sharepointsolutions.com/sharepoint-help/files/2010/03/image1.png"><img style="border-bottom: 0px;border-left: 0px;border-top: 0px;border-right: 0px" border="0" alt="image" src="http://sharepointsolutions.com/sharepoint-help/files/2010/03/image_thumb1.png" width="585" height="228" /></a> </p>
<p>Alan would like to receive an email with all the details he needs and a link to this form to enter his count.</p>
<p>We’ll need to do a few things to replace SharePoint’s default notification with our own. The first thing we need to do is turn off SharePoint’s default notification. On the Workflow Tasks list, go the Advanced Settings and select <em>No</em> for <strong><em>Send e-mail when ownership is assigned.</em></strong>    <br /><a href="http://sharepointsolutions.com/sharepoint-help/files/2010/03/image2.png"><img style="border-bottom: 0px;border-left: 0px;border-top: 0px;border-right: 0px" border="0" alt="image" src="http://sharepointsolutions.com/sharepoint-help/files/2010/03/image_thumb2.png" width="438" height="97" /></a> </p>
<p>Next, you’ll need to launch SharePoint Designer, open the site, and create a new workflow.Attach the workflow to your Tasks list and select the option to run when a new item is created.</p>
<p>It’s possible that your Tasks list could contain multiple types of content types, so you’ll want to add conditions in your workflow for each Content Type or create separate workflows for each Content Type. My Content Type was called <strong>Inventory Correction</strong>, so I check for that in my first condition:    <br /><a href="http://sharepointsolutions.com/sharepoint-help/files/2010/03/image3.png"><img style="border-bottom: 0px;border-left: 0px;border-top: 0px;border-right: 0px" border="0" alt="image" src="http://sharepointsolutions.com/sharepoint-help/files/2010/03/image_thumb3.png" width="543" height="60" /></a> </p>
<p>I want my email notification to contain some details about the task and be less generic than the out of the box notifications. You’ll remember that notification just said, “Tasks – Inventory Correction Has Been Assigned To You.” I would like it to say, “New Task: Correct Inventory for the Appalachian Mountain Bike” so that the recipient had a better idea of what he had to do. So, the first action I added to my workflow was Build a Dynamic String. In the String Builder, I typed in the my static text and added a Lookup to get the name of the bicycle from the list item on which the workflow was running that created the task. To find this I matched the Current Item: Workflow Item ID with the ID of the item in the Inventory Adjustments list (that is the list that triggered this task to be created). The lookup looked like this:   <br /><a href="http://sharepointsolutions.com/sharepoint-help/files/2010/03/image4.png"><img style="border-bottom: 0px;border-left: 0px;border-top: 0px;border-right: 0px" border="0" alt="image" src="http://sharepointsolutions.com/sharepoint-help/files/2010/03/image_thumb4.png" width="384" height="273" /></a> </p>
<p>And the Dynamic String looked like this:   <br /><a href="http://sharepointsolutions.com/sharepoint-help/files/2010/03/image5.png"><img style="border-bottom: 0px;border-left: 0px;border-top: 0px;border-right: 0px" border="0" alt="image" src="http://sharepointsolutions.com/sharepoint-help/files/2010/03/image_thumb5.png" width="505" height="85" /></a>    <br />I stored that string in a variable named New Task Title.&#160; </p>
<p>So, another important lesson here is that the Workflow Item ID always matches the ID of the item on which the workflow was running that created the task, so it can be used to get to any of that information. Sweet!</p>
<p>Next, I added an action to my workflow to Send and Email. In the Define E-mail Message dialog, I set the subject line to be the Dynamic String I just created.</p>
<p>I also wanted a link directly to the form to edit the task. So, I opened up an existing task and copied the URL for it from my address bar. I added some HTML anchor tags to my email and pasted this URL in as the HREF. I also needed to Look Up to change the ID for the task.</p>
<p>In the body of the email, I used the Workflow Item ID to do lookups on the Inventory Adjustments list to dynamically populate the Bicycle Type, who created the adjustment that caused the problem, and the original adjustment amount. Here is what my completed dialog looked like.   </p>
<p><a href="http://sharepointsolutions.com/sharepoint-help/files/2010/03/image6.png"><img style="border-bottom: 0px;border-left: 0px;border-top: 0px;border-right: 0px" border="0" alt="image" src="http://sharepointsolutions.com/sharepoint-help/files/2010/03/image_thumb6.png" width="504" height="481" /></a> </p>
<p>Finally, I wanted to change the Title of the task in the task list to provide more information. I used the Set Field in Current Item activity to change the Title to be the same thing as the subject line of the email. Here is what the complete workflow looked like:   <br /><a href="http://sharepointsolutions.com/sharepoint-help/files/2010/03/image7.png"><img style="border-bottom: 0px;border-left: 0px;border-top: 0px;border-right: 0px" border="0" alt="image" src="http://sharepointsolutions.com/sharepoint-help/files/2010/03/image_thumb7.png" width="414" height="122" /></a> </p>
<p>When this workflow runs, it changes the Title of the task from the default “Inventory Correction” (which is the name of the Content Type) to “New Task: Correct Inventory for the Appalachian Mountain Bike.”<a href="http://sharepointsolutions.com/sharepoint-help/files/2010/03/image8.png"><img style="border-bottom: 0px;border-left: 0px;border-top: 0px;border-right: 0px" border="0" alt="image" src="http://sharepointsolutions.com/sharepoint-help/files/2010/03/image_thumb8.png" width="660" height="96" /></a> </p>
<p>And the Warehouse Manager gets an email with a link to the edit task page and all the details about why he needs to make the correction:<a href="http://sharepointsolutions.com/sharepoint-help/files/2010/03/image9.png"><img style="border-bottom: 0px;border-left: 0px;border-top: 0px;border-right: 0px" border="0" alt="image" src="http://sharepointsolutions.com/sharepoint-help/files/2010/03/image_thumb9.png" width="582" height="314" /></a> </p>
</p>
</p>
</p>
</p>
<p>If you want to learn more about how to take you SharePoint Designer workflows to the next level, be sure to sign up for our <a href="http://sharepointsolutions.com/SharePoint-Training/Courses/Pages/InfoPath-Workflow.aspx?CourseTitle=Mission:%20Automation%20%E2%80%93%20SharePoint%20Workflow%20and%20InfoPath">Mission: Automation – SharePoint Workflow and InfoPath class</a>! Hopefully I’ll see you there!</p>
<div class="sexy-bookmarks sexy-bookmarks-expand"><ul class="socials"><li class="sexy-facebook"><a href="http://www.facebook.com/share.php?u=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/03/create-a-detailed-custom-task-notification-with-a-sharepoint-designer-workflow/&amp;t=Create+a+Detailed+Custom+Task+Notification+with+a+SharePoint+Designer+Workflow" rel="nofollow" title="Share this on Facebook">Share this on Facebook</a></li><li class="sexy-digg"><a href="http://digg.com/submit?phase=2&amp;url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/03/create-a-detailed-custom-task-notification-with-a-sharepoint-designer-workflow/&amp;title=Create+a+Detailed+Custom+Task+Notification+with+a+SharePoint+Designer+Workflow" rel="nofollow" title="Digg this!">Digg this!</a></li><li class="sexy-linkedin"><a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/03/create-a-detailed-custom-task-notification-with-a-sharepoint-designer-workflow/&amp;title=Create+a+Detailed+Custom+Task+Notification+with+a+SharePoint+Designer+Workflow&amp;summary=It%20seems%20that%20few%20SharePoint%20users%20are%20happy%20with%20the%20out-of-the%20box%20task%20notifications.%20While%20they%20serve%20their%20purpose%2C%20we%20often%20want%20highly%20customized%20emails%20that%20contain%20more%20information%20about%20the%20task.%20%20I%20recently%20created%20a%20workflow%20that%20used%20the%20Collect%20Data%20from%20a%20User%20activity.%20When%20you%20go%20th&amp;source=SharePoint Help" rel="nofollow" title="Share this on Linkedin">Share this on Linkedin</a></li><li class="sexy-delicious"><a href="http://del.icio.us/post?url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/03/create-a-detailed-custom-task-notification-with-a-sharepoint-designer-workflow/&amp;title=Create+a+Detailed+Custom+Task+Notification+with+a+SharePoint+Designer+Workflow" rel="nofollow" title="Share this on del.icio.us">Share this on del.icio.us</a></li><li class="sexy-reddit"><a href="http://reddit.com/submit?url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/03/create-a-detailed-custom-task-notification-with-a-sharepoint-designer-workflow/&amp;title=Create+a+Detailed+Custom+Task+Notification+with+a+SharePoint+Designer+Workflow" rel="nofollow" title="Share this on Reddit">Share this on Reddit</a></li><li class="sexy-newsvine"><a href="http://www.newsvine.com/_tools/seed&amp;save?u=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/03/create-a-detailed-custom-task-notification-with-a-sharepoint-designer-workflow/&amp;h=Create+a+Detailed+Custom+Task+Notification+with+a+SharePoint+Designer+Workflow" rel="nofollow" title="Seed this on Newsvine">Seed this on Newsvine</a></li><li class="sexy-twitter"><a href="http://twitter.com/home?status=Create+a+Detailed+Custom+Task+Notification+with+a+SharePoint+Designer+Workflow+-+http://tinyurl.com/ya5ccyz+" rel="nofollow" title="Tweet This!">Tweet This!</a></li><li class="sexy-mail"><a href="mailto:?subject=%22Create%20a%20Detailed%20Custom%20Task%20Notification%20with%20a%20SharePoint%20Designer%20Workflow%22&amp;body=I%20thought%20this%20article%20might%20interest%20you.%0A%0A%22It%20seems%20that%20few%20SharePoint%20users%20are%20happy%20with%20the%20out-of-the%20box%20task%20notifications.%20While%20they%20serve%20their%20purpose%2C%20we%20often%20want%20highly%20customized%20emails%20that%20contain%20more%20information%20about%20the%20task.%20%20I%20recently%20created%20a%20workflow%20that%20used%20the%20Collect%20Data%20from%20a%20User%20activity.%20When%20you%20go%20th%22%0A%0AYou%20can%20read%20the%20full%20article%20here%3A%20http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/03/create-a-detailed-custom-task-notification-with-a-sharepoint-designer-workflow/" rel="nofollow" title="Email this to a friend?">Email this to a friend?</a></li><li class="sexy-friendfeed"><a href="http://www.friendfeed.com/share?title=Create+a+Detailed+Custom+Task+Notification+with+a+SharePoint+Designer+Workflow&amp;link=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/03/create-a-detailed-custom-task-notification-with-a-sharepoint-designer-workflow/" rel="nofollow" title="Share this on FriendFeed">Share this on FriendFeed</a></li><li class="sexy-google"><a href="http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/03/create-a-detailed-custom-task-notification-with-a-sharepoint-designer-workflow/&amp;title=Create+a+Detailed+Custom+Task+Notification+with+a+SharePoint+Designer+Workflow" rel="nofollow" title="Add this to Google Bookmarks">Add this to Google Bookmarks</a></li><li class="sexy-stumbleupon"><a href="http://www.stumbleupon.com/submit?url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/03/create-a-detailed-custom-task-notification-with-a-sharepoint-designer-workflow/&amp;title=Create+a+Detailed+Custom+Task+Notification+with+a+SharePoint+Designer+Workflow" rel="nofollow" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a></li><li class="sexy-mixx"><a href="http://www.mixx.com/submit?page_url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/03/create-a-detailed-custom-task-notification-with-a-sharepoint-designer-workflow/&amp;title=Create+a+Detailed+Custom+Task+Notification+with+a+SharePoint+Designer+Workflow" rel="nofollow" title="Share this on Mixx">Share this on Mixx</a></li><li class="sexy-blogmarks"><a href="http://blogmarks.net/my/new.php?mini=1&amp;simple=1&amp;url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/03/create-a-detailed-custom-task-notification-with-a-sharepoint-designer-workflow/&amp;title=Create+a+Detailed+Custom+Task+Notification+with+a+SharePoint+Designer+Workflow" rel="nofollow" title="Mark this on BlogMarks">Mark this on BlogMarks</a></li><li class="sexy-twittley"><a href="http://twittley.com/submit/?title=Create+a+Detailed+Custom+Task+Notification+with+a+SharePoint+Designer+Workflow&amp;url=http%3A%2F%2Fsharepointsolutions.com%2Fsharepoint-help%2Fblog%2Findex.php%2F2010%2F03%2Fcreate-a-detailed-custom-task-notification-with-a-sharepoint-designer-workflow%2F&amp;desc=It%20seems%20that%20few%20SharePoint%20users%20are%20happy%20with%20the%20out-of-the%20box%20task%20notifications.%20While%20they%20serve%20their%20purpose%2C%20we%20often%20want%20highly%20customized%20emails%20that%20contain%20more%20information%20about%20the%20task.%20%20I%20recently%20created%20a%20workflow%20that%20used%20the%20Collect%20Data%20from%20a%20User%20activity.%20When%20you%20go%20th&amp;pcat=Technology&amp;tags=sharepoint" rel="nofollow" title="Submit this to Twittley">Submit this to Twittley</a></li><li class="sexy-netvibes"><a href="http://www.netvibes.com/share?title=Create+a+Detailed+Custom+Task+Notification+with+a+SharePoint+Designer+Workflow&amp;url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/03/create-a-detailed-custom-task-notification-with-a-sharepoint-designer-workflow/" rel="nofollow" title="Submit this to Netvibes">Submit this to Netvibes</a></li></ul><div style="clear:both;"></div></div>]]></content:encoded>
			<wfw:commentRss>http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/03/create-a-detailed-custom-task-notification-with-a-sharepoint-designer-workflow/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using Google Search Appliance on Your SharePoint Site</title>
		<link>http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/03/using-google-search-appliance-on-your-sharepoint-site/</link>
		<comments>http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/03/using-google-search-appliance-on-your-sharepoint-site/#comments</comments>
		<pubDate>Fri, 12 Mar 2010 21:15:49 +0000</pubDate>
		<dc:creator>Kevin Pine</dc:creator>
				<category><![CDATA[MOSS Help]]></category>
		<category><![CDATA[Search]]></category>
		<category><![CDATA[SharePoint Designer 2007]]></category>

		<guid isPermaLink="false">http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/03/using-google-search-appliance-on-your-sharepoint-site/</guid>
		<description><![CDATA[Adding a Google search to a web page is pretty simple. Just drop in the search form code. Something like this:
&#60;form id=&#34;search-form&#34; method=&#34;get&#34; action=http://search.yoursitehere.com/search&#62;      &#160;&#160;&#160;&#160;&#160;&#160;&#160; &#60;input type=&#34;text&#34; name=&#34;q&#34; size=&#34;25&#34; maxlength=&#34;255&#34; value=&#34;&#34;/&#62;       &#160;&#160;&#160;&#160;&#160;&#160;&#160; &#60;input type=&#34;submit&#34; id=&#34;search-submit&#34; name=&#34;btnG&#34; value=&#34;Search&#34;/&#62;       &#160;&#160;&#160;&#160;&#160;&#160;&#160; [...]]]></description>
			<content:encoded><![CDATA[<p>Adding a Google search to a web page is pretty simple. Just drop in the search form code. Something like this:</p>
<p><font color="#808080">&lt;form id=&quot;search-form&quot; method=&quot;get&quot; action=http://search.yoursitehere.com/search&gt;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;input type=&quot;text&quot; name=&quot;q&quot; size=&quot;25&quot; maxlength=&quot;255&quot; value=&quot;&quot;/&gt;       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;input type=&quot;submit&quot; id=&quot;search-submit&quot; name=&quot;btnG&quot; value=&quot;Search&quot;/&gt;       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;input type=&quot;hidden&quot; name=&quot;site&quot; value=&quot;default_collection&quot;/&gt;       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;input type=&quot;hidden&quot; name=&quot;client&quot; value=&quot;default_frontend&quot;/&gt;       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;input type=&quot;hidden&quot; name=&quot;proxystylesheet&quot; value=&quot;default_frontend&quot;/&gt;       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;input type=&quot;hidden&quot; name=&quot;output&quot; value=&quot;xml_no_dtd&quot;/&gt;       <br />&lt;/form&gt;</font></p>
<p>The fact that the search code is in a form tag is a problem. Basically the entire body of your SharePoint page is in an ASP .NET form and you cannot have nested form tags as the inner &lt;form&gt; will not be processed. Some have tested <a href="http://anderwald.info/internet/nesting-form-tags-in-xhtml/">ways of nesting</a> form tags but it is pretty messy and not consistent across browsers. </p>
<p>I found <a href="http://my6solutions.com/post/2009/04/19/Fixing-Google-Custom-Search-nested-form-tags-in-asp-net-pages.aspx">this post</a> that addressed the issue and his code was a great starting place. In fact it worked great on my virtual machine but was giving me issues on the production site. The problem turned out to be the code that was specifying the background image for the search box. A white background was preferred anyway so the code was simplified a bit to the following:</p>
<p><font color="#808080">&lt;div&gt;      <br />&#160;&#160;&#160; &lt;input id=&quot;q&quot; type=&quot;text&quot; size=&quot;25&quot; style=&quot;border: solid 1px #999999&quot; onkeydown=&quot;searchkeydown();&quot; /&gt;       <br />&#160;&#160;&#160; &lt;button onclick=&quot;googlesearch();return false;&quot;&gt;Search&lt;/button&gt;       <br />&lt;/div&gt;       <br />&lt;script type=&quot;text/javascript&quot;&gt;       <br />&#160;&#160;&#160;&#160; searchkeydown = function() {       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if (window.event) {       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; key = window.event.keyCode;&#160;&#160;&#160;&#160; //IE       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; else {       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; key = e.which;&#160;&#160;&#160;&#160; //firefox       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if (key == 13) {       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; event.returnValue = false;       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; event.cancel = true;       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; googlesearch();       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }       <br />&#160;&#160;&#160;&#160; }       <br />&#160;&#160;&#160; googlesearch = function() {       <br />&#160;&#160;&#160; window.location=&#8217;http://search.yoursitehere.com/search?q=&#8217; + escape(document.getElementById(&#8217;q').value);       <br />&#160;&#160;&#160;&#160;&#160; }       <br />&lt;/script&gt;</font></p>
</p>
<p>That should get your Google Appliance (CSE) working in your SharePoint site.</p>
<div class="sexy-bookmarks sexy-bookmarks-expand"><ul class="socials"><li class="sexy-facebook"><a href="http://www.facebook.com/share.php?u=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/03/using-google-search-appliance-on-your-sharepoint-site/&amp;t=Using+Google+Search+Appliance+on+Your+SharePoint+Site" rel="nofollow" title="Share this on Facebook">Share this on Facebook</a></li><li class="sexy-digg"><a href="http://digg.com/submit?phase=2&amp;url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/03/using-google-search-appliance-on-your-sharepoint-site/&amp;title=Using+Google+Search+Appliance+on+Your+SharePoint+Site" rel="nofollow" title="Digg this!">Digg this!</a></li><li class="sexy-linkedin"><a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/03/using-google-search-appliance-on-your-sharepoint-site/&amp;title=Using+Google+Search+Appliance+on+Your+SharePoint+Site&amp;summary=Adding%20a%20Google%20search%20to%20a%20web%20page%20is%20pretty%20simple.%20Just%20drop%20in%20the%20search%20form%20code.%20Something%20like%20this%3A%0D%0A%26lt%3Bform%20id%3D%26quot%3Bsearch-form%26quot%3B%20method%3D%26quot%3Bget%26quot%3B%20action%3Dhttp%3A%2F%2Fsearch.yoursitehere.com%2Fsearch%26gt%3B%20%20%20%20%20%20%26%23160%3B%26%23160%3B%26%23160%3B%26%23160%3B%26%23160%3B%26%23160%3B%26%23160%3B%20%26lt%3Binput%20type%3D%26quot%3Btext%26quot%3B%20&amp;source=SharePoint Help" rel="nofollow" title="Share this on Linkedin">Share this on Linkedin</a></li><li class="sexy-delicious"><a href="http://del.icio.us/post?url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/03/using-google-search-appliance-on-your-sharepoint-site/&amp;title=Using+Google+Search+Appliance+on+Your+SharePoint+Site" rel="nofollow" title="Share this on del.icio.us">Share this on del.icio.us</a></li><li class="sexy-reddit"><a href="http://reddit.com/submit?url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/03/using-google-search-appliance-on-your-sharepoint-site/&amp;title=Using+Google+Search+Appliance+on+Your+SharePoint+Site" rel="nofollow" title="Share this on Reddit">Share this on Reddit</a></li><li class="sexy-newsvine"><a href="http://www.newsvine.com/_tools/seed&amp;save?u=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/03/using-google-search-appliance-on-your-sharepoint-site/&amp;h=Using+Google+Search+Appliance+on+Your+SharePoint+Site" rel="nofollow" title="Seed this on Newsvine">Seed this on Newsvine</a></li><li class="sexy-twitter"><a href="http://twitter.com/home?status=Using+Google+Search+Appliance+on+Your+SharePoint+Site+-+http://tinyurl.com/yhgwham+" rel="nofollow" title="Tweet This!">Tweet This!</a></li><li class="sexy-mail"><a href="mailto:?subject=%22Using%20Google%20Search%20Appliance%20on%20Your%20SharePoint%20Site%22&amp;body=I%20thought%20this%20article%20might%20interest%20you.%0A%0A%22Adding%20a%20Google%20search%20to%20a%20web%20page%20is%20pretty%20simple.%20Just%20drop%20in%20the%20search%20form%20code.%20Something%20like%20this%3A%0D%0A%26lt%3Bform%20id%3D%26quot%3Bsearch-form%26quot%3B%20method%3D%26quot%3Bget%26quot%3B%20action%3Dhttp%3A%2F%2Fsearch.yoursitehere.com%2Fsearch%26gt%3B%20%20%20%20%20%20%26%23160%3B%26%23160%3B%26%23160%3B%26%23160%3B%26%23160%3B%26%23160%3B%26%23160%3B%20%26lt%3Binput%20type%3D%26quot%3Btext%26quot%3B%20%22%0A%0AYou%20can%20read%20the%20full%20article%20here%3A%20http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/03/using-google-search-appliance-on-your-sharepoint-site/" rel="nofollow" title="Email this to a friend?">Email this to a friend?</a></li><li class="sexy-friendfeed"><a href="http://www.friendfeed.com/share?title=Using+Google+Search+Appliance+on+Your+SharePoint+Site&amp;link=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/03/using-google-search-appliance-on-your-sharepoint-site/" rel="nofollow" title="Share this on FriendFeed">Share this on FriendFeed</a></li><li class="sexy-google"><a href="http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/03/using-google-search-appliance-on-your-sharepoint-site/&amp;title=Using+Google+Search+Appliance+on+Your+SharePoint+Site" rel="nofollow" title="Add this to Google Bookmarks">Add this to Google Bookmarks</a></li><li class="sexy-stumbleupon"><a href="http://www.stumbleupon.com/submit?url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/03/using-google-search-appliance-on-your-sharepoint-site/&amp;title=Using+Google+Search+Appliance+on+Your+SharePoint+Site" rel="nofollow" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a></li><li class="sexy-mixx"><a href="http://www.mixx.com/submit?page_url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/03/using-google-search-appliance-on-your-sharepoint-site/&amp;title=Using+Google+Search+Appliance+on+Your+SharePoint+Site" rel="nofollow" title="Share this on Mixx">Share this on Mixx</a></li><li class="sexy-blogmarks"><a href="http://blogmarks.net/my/new.php?mini=1&amp;simple=1&amp;url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/03/using-google-search-appliance-on-your-sharepoint-site/&amp;title=Using+Google+Search+Appliance+on+Your+SharePoint+Site" rel="nofollow" title="Mark this on BlogMarks">Mark this on BlogMarks</a></li><li class="sexy-twittley"><a href="http://twittley.com/submit/?title=Using+Google+Search+Appliance+on+Your+SharePoint+Site&amp;url=http%3A%2F%2Fsharepointsolutions.com%2Fsharepoint-help%2Fblog%2Findex.php%2F2010%2F03%2Fusing-google-search-appliance-on-your-sharepoint-site%2F&amp;desc=Adding%20a%20Google%20search%20to%20a%20web%20page%20is%20pretty%20simple.%20Just%20drop%20in%20the%20search%20form%20code.%20Something%20like%20this%3A%0D%0A%26lt%3Bform%20id%3D%26quot%3Bsearch-form%26quot%3B%20method%3D%26quot%3Bget%26quot%3B%20action%3Dhttp%3A%2F%2Fsearch.yoursitehere.com%2Fsearch%26gt%3B%20%20%20%20%20%20%26%23160%3B%26%23160%3B%26%23160%3B%26%23160%3B%26%23160%3B%26%23160%3B%26%23160%3B%20%26lt%3Binput%20type%3D%26quot%3Btext%26quot%3B%20&amp;pcat=Technology&amp;tags=" rel="nofollow" title="Submit this to Twittley">Submit this to Twittley</a></li><li class="sexy-netvibes"><a href="http://www.netvibes.com/share?title=Using+Google+Search+Appliance+on+Your+SharePoint+Site&amp;url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/03/using-google-search-appliance-on-your-sharepoint-site/" rel="nofollow" title="Submit this to Netvibes">Submit this to Netvibes</a></li></ul><div style="clear:both;"></div></div>]]></content:encoded>
			<wfw:commentRss>http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/03/using-google-search-appliance-on-your-sharepoint-site/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Loading SharePoint Dlls into Reflector</title>
		<link>http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/loading-sharepoint-dlls-into-reflector/</link>
		<comments>http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/loading-sharepoint-dlls-into-reflector/#comments</comments>
		<pubDate>Tue, 23 Feb 2010 17:33:05 +0000</pubDate>
		<dc:creator>Tony Bierman</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[powershell]]></category>
		<category><![CDATA[reflector]]></category>
		<category><![CDATA[SharePoint 2010]]></category>

		<guid isPermaLink="false">http://sharepointsolutions.com/sharepoint-help/?p=632</guid>
		<description><![CDATA[As a developer, I like to load all of Microsoft&#8217;s SharePoint DLLs into Reflector so I can peek under the hood when needed.  Just follow these easy steps to load all the SharePoint DLLs into reflector:
1. Open a Powershell command shell
2. Make a temporary directory or use an existing one.  I&#8217;ll use \usr\tmp\ [...]]]></description>
			<content:encoded><![CDATA[<p>As a developer, I like to load all of Microsoft&#8217;s SharePoint DLLs into <a href="http://www.red-gate.com/products/reflector/">Reflector</a> so I can peek under the hood when needed.  Just follow these easy steps to load all the SharePoint DLLs into reflector:</p>
<p>1. Open a Powershell command shell</p>
<p>2. Make a temporary directory or use an existing one.  I&#8217;ll use \usr\tmp\ in this example.</p>
<p>3. cd to \windows\assembly\GAC_MSIL, then run the following command:</p>
<p>4.  dir | select-string &#8220;Microsoft.SharePoint&#8221; | foreach {cd $_\14*;cp .\*.dll \usr\tmp\; cd ..\..\; }</p>
<p>5.  Now all SharePoint DLLs will be in \usr\tmp.  Just open Reflector, browse to \usr\tmp and add the list of assemblies (shift click to select all).</p>
<p>Happy Reflecting <img src='http://sharepointsolutions.com/sharepoint-help/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div class="sexy-bookmarks sexy-bookmarks-expand"><ul class="socials"><li class="sexy-facebook"><a href="http://www.facebook.com/share.php?u=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/loading-sharepoint-dlls-into-reflector/&amp;t=Loading+SharePoint+Dlls+into+Reflector" rel="nofollow" title="Share this on Facebook">Share this on Facebook</a></li><li class="sexy-digg"><a href="http://digg.com/submit?phase=2&amp;url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/loading-sharepoint-dlls-into-reflector/&amp;title=Loading+SharePoint+Dlls+into+Reflector" rel="nofollow" title="Digg this!">Digg this!</a></li><li class="sexy-linkedin"><a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/loading-sharepoint-dlls-into-reflector/&amp;title=Loading+SharePoint+Dlls+into+Reflector&amp;summary=As%20a%20developer%2C%20I%20like%20to%20load%20all%20of%20Microsoft%27s%20SharePoint%20DLLs%20into%20Reflector%20so%20I%20can%20peek%20under%20the%20hood%20when%20needed.%20%20Just%20follow%20these%20easy%20steps%20to%20load%20all%20the%20SharePoint%20DLLs%20into%20reflector%3A%0D%0A1.%20Open%20a%20Powershell%20command%20shell%0D%0A2.%20Make%20a%20temporary%20directory%20or%20use%20an%20existing%20one.%20%20I%27ll%20us&amp;source=SharePoint Help" rel="nofollow" title="Share this on Linkedin">Share this on Linkedin</a></li><li class="sexy-delicious"><a href="http://del.icio.us/post?url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/loading-sharepoint-dlls-into-reflector/&amp;title=Loading+SharePoint+Dlls+into+Reflector" rel="nofollow" title="Share this on del.icio.us">Share this on del.icio.us</a></li><li class="sexy-reddit"><a href="http://reddit.com/submit?url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/loading-sharepoint-dlls-into-reflector/&amp;title=Loading+SharePoint+Dlls+into+Reflector" rel="nofollow" title="Share this on Reddit">Share this on Reddit</a></li><li class="sexy-newsvine"><a href="http://www.newsvine.com/_tools/seed&amp;save?u=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/loading-sharepoint-dlls-into-reflector/&amp;h=Loading+SharePoint+Dlls+into+Reflector" rel="nofollow" title="Seed this on Newsvine">Seed this on Newsvine</a></li><li class="sexy-twitter"><a href="http://twitter.com/home?status=Loading+SharePoint+Dlls+into+Reflector+-+http://tinyurl.com/yelkhzq+" rel="nofollow" title="Tweet This!">Tweet This!</a></li><li class="sexy-mail"><a href="mailto:?subject=%22Loading%20SharePoint%20Dlls%20into%20Reflector%22&amp;body=I%20thought%20this%20article%20might%20interest%20you.%0A%0A%22As%20a%20developer%2C%20I%20like%20to%20load%20all%20of%20Microsoft%27s%20SharePoint%20DLLs%20into%20Reflector%20so%20I%20can%20peek%20under%20the%20hood%20when%20needed.%20%20Just%20follow%20these%20easy%20steps%20to%20load%20all%20the%20SharePoint%20DLLs%20into%20reflector%3A%0D%0A1.%20Open%20a%20Powershell%20command%20shell%0D%0A2.%20Make%20a%20temporary%20directory%20or%20use%20an%20existing%20one.%20%20I%27ll%20us%22%0A%0AYou%20can%20read%20the%20full%20article%20here%3A%20http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/loading-sharepoint-dlls-into-reflector/" rel="nofollow" title="Email this to a friend?">Email this to a friend?</a></li><li class="sexy-friendfeed"><a href="http://www.friendfeed.com/share?title=Loading+SharePoint+Dlls+into+Reflector&amp;link=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/loading-sharepoint-dlls-into-reflector/" rel="nofollow" title="Share this on FriendFeed">Share this on FriendFeed</a></li><li class="sexy-google"><a href="http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/loading-sharepoint-dlls-into-reflector/&amp;title=Loading+SharePoint+Dlls+into+Reflector" rel="nofollow" title="Add this to Google Bookmarks">Add this to Google Bookmarks</a></li><li class="sexy-stumbleupon"><a href="http://www.stumbleupon.com/submit?url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/loading-sharepoint-dlls-into-reflector/&amp;title=Loading+SharePoint+Dlls+into+Reflector" rel="nofollow" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a></li><li class="sexy-mixx"><a href="http://www.mixx.com/submit?page_url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/loading-sharepoint-dlls-into-reflector/&amp;title=Loading+SharePoint+Dlls+into+Reflector" rel="nofollow" title="Share this on Mixx">Share this on Mixx</a></li><li class="sexy-blogmarks"><a href="http://blogmarks.net/my/new.php?mini=1&amp;simple=1&amp;url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/loading-sharepoint-dlls-into-reflector/&amp;title=Loading+SharePoint+Dlls+into+Reflector" rel="nofollow" title="Mark this on BlogMarks">Mark this on BlogMarks</a></li><li class="sexy-twittley"><a href="http://twittley.com/submit/?title=Loading+SharePoint+Dlls+into+Reflector&amp;url=http%3A%2F%2Fsharepointsolutions.com%2Fsharepoint-help%2Fblog%2Findex.php%2F2010%2F02%2Floading-sharepoint-dlls-into-reflector%2F&amp;desc=As%20a%20developer%2C%20I%20like%20to%20load%20all%20of%20Microsoft%27s%20SharePoint%20DLLs%20into%20Reflector%20so%20I%20can%20peek%20under%20the%20hood%20when%20needed.%20%20Just%20follow%20these%20easy%20steps%20to%20load%20all%20the%20SharePoint%20DLLs%20into%20reflector%3A%0D%0A1.%20Open%20a%20Powershell%20command%20shell%0D%0A2.%20Make%20a%20temporary%20directory%20or%20use%20an%20existing%20one.%20%20I%27ll%20us&amp;pcat=Technology&amp;tags=" rel="nofollow" title="Submit this to Twittley">Submit this to Twittley</a></li><li class="sexy-netvibes"><a href="http://www.netvibes.com/share?title=Loading+SharePoint+Dlls+into+Reflector&amp;url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/loading-sharepoint-dlls-into-reflector/" rel="nofollow" title="Submit this to Netvibes">Submit this to Netvibes</a></li></ul><div style="clear:both;"></div></div>]]></content:encoded>
			<wfw:commentRss>http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/loading-sharepoint-dlls-into-reflector/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Use Multiple Selection Columns in Calculated Fields</title>
		<link>http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/use-multiple-selection-columns-in-calculated-fields/</link>
		<comments>http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/use-multiple-selection-columns-in-calculated-fields/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 19:49:15 +0000</pubDate>
		<dc:creator>Ricky Spears</dc:creator>
				<category><![CDATA[MOSS Help]]></category>
		<category><![CDATA[SharePoint Designer 2007]]></category>
		<category><![CDATA[Workflow]]></category>
		<category><![CDATA[SharePoint Designer]]></category>

		<guid isPermaLink="false">http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/use-multiple-selection-columns-in-calculated-fields/</guid>
		<description><![CDATA[I recently had a need to create a hyperlink in a custom list and the hyperlink needed to contain parameters that came from a Choice type column that allowed multiple selections. I’m very comfortable using Excel’s string functions (LEFT, RIGHT, MID, LEN, and FIND) to parse strings and I’ve done so many times. However, when [...]]]></description>
			<content:encoded><![CDATA[<a href='http://sharepointsolutions.com/SharePoint-Training/Courses/Pages/InfoPath-Workflow.aspx?CourseTitle=Mission:%20Automation%20%E2%80%93%20SharePoint%20Workflow%20and%20InfoPath&internal_ad=/SiteCollectionImages/MissionAutomation.png&blog_post=Use Multiple Selection Columns in Calculated Fields'><img src='http://sharepointsolutions.com/SiteCollectionImages/MissionAutomation.png' border=0 align='right' style='float:right'></a><p>I recently had a need to create a hyperlink in a custom list and the hyperlink needed to contain parameters that came from a Choice type column that allowed multiple selections. I’m very comfortable using Excel’s string functions (LEFT, RIGHT, MID, LEN, and FIND) to parse strings and I’ve done so many times. However, when I tried to write a formula using the Multiple Selection field, I got an error that said, “One or more column references are not allowed, because the columns are defined as a data type that is not supported in formulas.” Rats! I thought that we might need to write an event receiver with Visual Studio to accomplish my task, but I really wanted to find a way to do it without writing any code. Here is what I did to solve the problem.</p>
<p><strong>The Problem</strong></p>
<p>In this particular scenario, a department stores information about events in a custom list. There may be one or two people from the department who attend the event. The names of these employees are stored in a column of type Choice that has been set to display as Checkboxes (allow multiple selections).</p>
<p>They use a web based program as part of managing the event. Information about the event is passed to web application as variables in the URL. Two of those parameters are the employees who are attending the event. They want SharePoint to automatically create the URL and modify it if the item changes.</p>
<p>Here is a simplified example of what they want to see in their SharePoint list:   <br /><a href="http://sharepointsolutions.com/sharepoint-help/files/2010/02/image2.png"><img style="border-bottom: 0px;border-left: 0px;border-top: 0px;border-right: 0px" border="0" alt="image" src="http://sharepointsolutions.com/sharepoint-help/files/2010/02/image_thumb2.png" width="619" height="139" /></a> </p>
<p><strong>The Solution</strong></p>
<p>This customer is using our <a href="http://sharepointsolutions.com/SharePoint-Add-ons/Products/Pages/WorkflowEssentials.aspx">Workflow Essentials</a> product that adds 24 more activities to SharePoint Designer workflows. I decided to make use of two of the <a href="http://help.sharepointsolutions.com/products/workflowessentials/webframe.html?Text_Capture.html">Text Capture</a> activity to extract the parts of the string I needed (if you are interested, you can <a href="http://sharepointsolutions.com/Pages/software-videos.aspx?Id=34">watch a short video on how the Text Capture, Text Replace, and Text Validate actions work</a>).</p>
<p>The Text actions in Workflow Essentials use Regular Expressions to look for values within text (a great place to learn more about Regular Expressions is: <a href="http://www.regular-expressions.info/">http://www.regular-expressions.info/</a>).</p>
<p>When a column is set to allow multiple items to be selected, SharePoint stores them in a plain text format with the items separated by semicolons; you can see this in the example above.</p>
<p>The first Regular Expression I wrote extracted the first word in the My Persons string. The That regular expression is: ^\b[A-Za-z]+\b   <br />The second Regular Expression I wrote extracted the second word in the My Persons string. That regular expression is: \b[A-Za-z]+\b$</p>
<p><em>Note that regular expressions don’t actually <strong>extract</strong> anything, but rather returns the part of the original string that matches the given regular expression. These two expressions worked in my case because my strings consisted of single words that consisted only of singe letters and there was a maximum of two words total. If my string had different qualities, I would have to have written totally different regular expressions to match my particular criteria. Writing Regular Expressions is a very valuable, and often under valued, job skill. I’m not an expert at it so I won’t likely be a good source for writing a regular expression for your particular case. Sorry.</em></p>
<p>Once I had written my Regular Expressions, I was ready to create my solution. I launched SharePoint Designer and created a new workflow on my list that would run when a new item was added or when an item changed.</p>
<p>I added the <strong>Text Capture</strong> activity first, used my first Regular Expression as pattern and output the captured text to a variable named FirstChoice. Then I added another <strong>Text Capture</strong> activity where I used my second Regular Expression and captured the matched text to a variable named SecondChoice. Next I added a <strong>Build Dynamic String</strong> activity where I composed the URL and inserted the two variables in the appropriate place for the URL parameters. Finally, I added a <strong>Set Field in Current Item<em> </em></strong>activity where I set the My URL field to the string I had just created. Here is the entire workflow.    <br /><a href="http://sharepointsolutions.com/sharepoint-help/files/2010/02/image3.png"><strong><img style="border-bottom: 0px;border-left: 0px;border-top: 0px;border-right: 0px" border="0" alt="image" src="http://sharepointsolutions.com/sharepoint-help/files/2010/02/image_thumb3.png" width="695" height="142" /></strong></a><strong> </strong></p>
<p>As you can tell, <a href="http://sharepointsolutions.com/SharePoint-Add-ons/Products/Pages/WorkflowEssentials.aspx">Workflow Essentials</a> is a powerful product that can greatly increase the power of your SharePoint Designer workflows. <strong><em>Check it out!       </em></strong></p>
<div class="sexy-bookmarks sexy-bookmarks-expand"><ul class="socials"><li class="sexy-facebook"><a href="http://www.facebook.com/share.php?u=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/use-multiple-selection-columns-in-calculated-fields/&amp;t=Use+Multiple+Selection+Columns+in+Calculated+Fields" rel="nofollow" title="Share this on Facebook">Share this on Facebook</a></li><li class="sexy-digg"><a href="http://digg.com/submit?phase=2&amp;url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/use-multiple-selection-columns-in-calculated-fields/&amp;title=Use+Multiple+Selection+Columns+in+Calculated+Fields" rel="nofollow" title="Digg this!">Digg this!</a></li><li class="sexy-linkedin"><a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/use-multiple-selection-columns-in-calculated-fields/&amp;title=Use+Multiple+Selection+Columns+in+Calculated+Fields&amp;summary=I%20recently%20had%20a%20need%20to%20create%20a%20hyperlink%20in%20a%20custom%20list%20and%20the%20hyperlink%20needed%20to%20contain%20parameters%20that%20came%20from%20a%20Choice%20type%20column%20that%20allowed%20multiple%20selections.%20I%E2%80%99m%20very%20comfortable%20using%20Excel%E2%80%99s%20string%20functions%20%28LEFT%2C%20RIGHT%2C%20MID%2C%20LEN%2C%20and%20FIND%29%20to%20parse%20strings%20and%20I%E2%80%99ve%20done&amp;source=SharePoint Help" rel="nofollow" title="Share this on Linkedin">Share this on Linkedin</a></li><li class="sexy-delicious"><a href="http://del.icio.us/post?url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/use-multiple-selection-columns-in-calculated-fields/&amp;title=Use+Multiple+Selection+Columns+in+Calculated+Fields" rel="nofollow" title="Share this on del.icio.us">Share this on del.icio.us</a></li><li class="sexy-reddit"><a href="http://reddit.com/submit?url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/use-multiple-selection-columns-in-calculated-fields/&amp;title=Use+Multiple+Selection+Columns+in+Calculated+Fields" rel="nofollow" title="Share this on Reddit">Share this on Reddit</a></li><li class="sexy-newsvine"><a href="http://www.newsvine.com/_tools/seed&amp;save?u=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/use-multiple-selection-columns-in-calculated-fields/&amp;h=Use+Multiple+Selection+Columns+in+Calculated+Fields" rel="nofollow" title="Seed this on Newsvine">Seed this on Newsvine</a></li><li class="sexy-twitter"><a href="http://twitter.com/home?status=Use+Multiple+Selection+Columns+in+Calculated+Fields+-+http://tinyurl.com/ya2h7mq+" rel="nofollow" title="Tweet This!">Tweet This!</a></li><li class="sexy-mail"><a href="mailto:?subject=%22Use%20Multiple%20Selection%20Columns%20in%20Calculated%20Fields%22&amp;body=I%20thought%20this%20article%20might%20interest%20you.%0A%0A%22I%20recently%20had%20a%20need%20to%20create%20a%20hyperlink%20in%20a%20custom%20list%20and%20the%20hyperlink%20needed%20to%20contain%20parameters%20that%20came%20from%20a%20Choice%20type%20column%20that%20allowed%20multiple%20selections.%20I%E2%80%99m%20very%20comfortable%20using%20Excel%E2%80%99s%20string%20functions%20%28LEFT%2C%20RIGHT%2C%20MID%2C%20LEN%2C%20and%20FIND%29%20to%20parse%20strings%20and%20I%E2%80%99ve%20done%22%0A%0AYou%20can%20read%20the%20full%20article%20here%3A%20http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/use-multiple-selection-columns-in-calculated-fields/" rel="nofollow" title="Email this to a friend?">Email this to a friend?</a></li><li class="sexy-friendfeed"><a href="http://www.friendfeed.com/share?title=Use+Multiple+Selection+Columns+in+Calculated+Fields&amp;link=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/use-multiple-selection-columns-in-calculated-fields/" rel="nofollow" title="Share this on FriendFeed">Share this on FriendFeed</a></li><li class="sexy-google"><a href="http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/use-multiple-selection-columns-in-calculated-fields/&amp;title=Use+Multiple+Selection+Columns+in+Calculated+Fields" rel="nofollow" title="Add this to Google Bookmarks">Add this to Google Bookmarks</a></li><li class="sexy-stumbleupon"><a href="http://www.stumbleupon.com/submit?url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/use-multiple-selection-columns-in-calculated-fields/&amp;title=Use+Multiple+Selection+Columns+in+Calculated+Fields" rel="nofollow" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a></li><li class="sexy-mixx"><a href="http://www.mixx.com/submit?page_url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/use-multiple-selection-columns-in-calculated-fields/&amp;title=Use+Multiple+Selection+Columns+in+Calculated+Fields" rel="nofollow" title="Share this on Mixx">Share this on Mixx</a></li><li class="sexy-blogmarks"><a href="http://blogmarks.net/my/new.php?mini=1&amp;simple=1&amp;url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/use-multiple-selection-columns-in-calculated-fields/&amp;title=Use+Multiple+Selection+Columns+in+Calculated+Fields" rel="nofollow" title="Mark this on BlogMarks">Mark this on BlogMarks</a></li><li class="sexy-twittley"><a href="http://twittley.com/submit/?title=Use+Multiple+Selection+Columns+in+Calculated+Fields&amp;url=http%3A%2F%2Fsharepointsolutions.com%2Fsharepoint-help%2Fblog%2Findex.php%2F2010%2F02%2Fuse-multiple-selection-columns-in-calculated-fields%2F&amp;desc=I%20recently%20had%20a%20need%20to%20create%20a%20hyperlink%20in%20a%20custom%20list%20and%20the%20hyperlink%20needed%20to%20contain%20parameters%20that%20came%20from%20a%20Choice%20type%20column%20that%20allowed%20multiple%20selections.%20I%E2%80%99m%20very%20comfortable%20using%20Excel%E2%80%99s%20string%20functions%20%28LEFT%2C%20RIGHT%2C%20MID%2C%20LEN%2C%20and%20FIND%29%20to%20parse%20strings%20and%20I%E2%80%99ve%20done&amp;pcat=Technology&amp;tags=" rel="nofollow" title="Submit this to Twittley">Submit this to Twittley</a></li><li class="sexy-netvibes"><a href="http://www.netvibes.com/share?title=Use+Multiple+Selection+Columns+in+Calculated+Fields&amp;url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/use-multiple-selection-columns-in-calculated-fields/" rel="nofollow" title="Submit this to Netvibes">Submit this to Netvibes</a></li></ul><div style="clear:both;"></div></div>]]></content:encoded>
			<wfw:commentRss>http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/use-multiple-selection-columns-in-calculated-fields/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>InfoPath Form with Multiple, Dynamic Approvers</title>
		<link>http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/infopath-form-with-multiple-dynamic-approvers-2/</link>
		<comments>http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/infopath-form-with-multiple-dynamic-approvers-2/#comments</comments>
		<pubDate>Sat, 20 Feb 2010 03:30:53 +0000</pubDate>
		<dc:creator>Kevin Pine</dc:creator>
				<category><![CDATA[InfoPath 2007]]></category>
		<category><![CDATA[MOSS Help]]></category>
		<category><![CDATA[SharePoint Designer 2007]]></category>
		<category><![CDATA[Workflow]]></category>
		<category><![CDATA[InfoPath]]></category>
		<category><![CDATA[SharePoint Designer]]></category>

		<guid isPermaLink="false">http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/infopath-form-with-multiple-dynamic-approvers-2/</guid>
		<description><![CDATA[A question came in to the MOSS Help and How To forum about creating a form that allowed multiple approvers to be specified at the time the form is being filled out.
I went ahead and created a form in InfoPath and a simple workflow in SharePoint Designer to allow the selection of the approvers and [...]]]></description>
			<content:encoded><![CDATA[<a href='http://sharepointsolutions.com/SharePoint-Training/Courses/Pages/InfoPath-Workflow.aspx?CourseTitle=Mission:%20Automation%20%E2%80%93%20SharePoint%20Workflow%20and%20InfoPath&internal_ad=/SiteCollectionImages/MissionAutomation.png&blog_post=InfoPath Form with Multiple, Dynamic Approvers'><img src='http://sharepointsolutions.com/SiteCollectionImages/MissionAutomation.png' border=0 align='right' style='float:right'></a><p>A question came in to the <a href="http://sharepointsolutions.com/sharepoint-help/groups/moss-help-and-how-to/forum/">MOSS Help and How To</a> forum about creating a form that allowed multiple approvers to be specified at the time the form is being filled out.</p>
<p>I went ahead and created a form in InfoPath and a simple workflow in SharePoint Designer to allow the selection of the approvers and assign tasks for the approvers. It is a simple form and workflow both. For production you would want a more robust solution. If you have ideas for a better solution, please let me know in the comments.</p>
<p>Instead of writing out all of the steps I created <a title="SharePoint Solutions" href="http://content.screencast.com/users/KevinPine/folders/InfoPath/media/c85d6004-1f42-4ecc-a243-104b51f8e843/InfoPathDynamicApprovers.flv" rel="lightbox[flash 800 635]">this short video to demonstrate</a> how the form, workflow, and SharePoint library work. </p>
<p><a title="SharePoint Solutions" href="http://content.screencast.com/users/KevinPine/folders/InfoPath/media/c85d6004-1f42-4ecc-a243-104b51f8e843/InfoPathDynamicApprovers.flv" rel="lightbox[flash 800 635]"><img style="border-right-width: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px" border="0" alt="MOSSHelpPlay" src="http://sharepointsolutions.com/sharepoint-help/files/2010/02/MOSSHelpPlay.png" width="244" height="171" /></a></p>
<div class="sexy-bookmarks sexy-bookmarks-expand"><ul class="socials"><li class="sexy-facebook"><a href="http://www.facebook.com/share.php?u=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/infopath-form-with-multiple-dynamic-approvers-2/&amp;t=InfoPath+Form+with+Multiple%2C+Dynamic+Approvers" rel="nofollow" title="Share this on Facebook">Share this on Facebook</a></li><li class="sexy-digg"><a href="http://digg.com/submit?phase=2&amp;url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/infopath-form-with-multiple-dynamic-approvers-2/&amp;title=InfoPath+Form+with+Multiple%2C+Dynamic+Approvers" rel="nofollow" title="Digg this!">Digg this!</a></li><li class="sexy-linkedin"><a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/infopath-form-with-multiple-dynamic-approvers-2/&amp;title=InfoPath+Form+with+Multiple%2C+Dynamic+Approvers&amp;summary=A%20question%20came%20in%20to%20the%20MOSS%20Help%20and%20How%20To%20forum%20about%20creating%20a%20form%20that%20allowed%20multiple%20approvers%20to%20be%20specified%20at%20the%20time%20the%20form%20is%20being%20filled%20out.%20%20I%20went%20ahead%20and%20created%20a%20form%20in%20InfoPath%20and%20a%20simple%20workflow%20in%20SharePoint%20Designer%20to%20allow%20the%20selection%20of%20the%20approvers%20and%20a&amp;source=SharePoint Help" rel="nofollow" title="Share this on Linkedin">Share this on Linkedin</a></li><li class="sexy-delicious"><a href="http://del.icio.us/post?url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/infopath-form-with-multiple-dynamic-approvers-2/&amp;title=InfoPath+Form+with+Multiple%2C+Dynamic+Approvers" rel="nofollow" title="Share this on del.icio.us">Share this on del.icio.us</a></li><li class="sexy-reddit"><a href="http://reddit.com/submit?url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/infopath-form-with-multiple-dynamic-approvers-2/&amp;title=InfoPath+Form+with+Multiple%2C+Dynamic+Approvers" rel="nofollow" title="Share this on Reddit">Share this on Reddit</a></li><li class="sexy-newsvine"><a href="http://www.newsvine.com/_tools/seed&amp;save?u=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/infopath-form-with-multiple-dynamic-approvers-2/&amp;h=InfoPath+Form+with+Multiple%2C+Dynamic+Approvers" rel="nofollow" title="Seed this on Newsvine">Seed this on Newsvine</a></li><li class="sexy-twitter"><a href="http://twitter.com/home?status=InfoPath+Form+with+Multiple%2C+Dynamic+Approvers+-+http://tinyurl.com/yz2fpf9+" rel="nofollow" title="Tweet This!">Tweet This!</a></li><li class="sexy-mail"><a href="mailto:?subject=%22InfoPath%20Form%20with%20Multiple%2C%20Dynamic%20Approvers%22&amp;body=I%20thought%20this%20article%20might%20interest%20you.%0A%0A%22A%20question%20came%20in%20to%20the%20MOSS%20Help%20and%20How%20To%20forum%20about%20creating%20a%20form%20that%20allowed%20multiple%20approvers%20to%20be%20specified%20at%20the%20time%20the%20form%20is%20being%20filled%20out.%20%20I%20went%20ahead%20and%20created%20a%20form%20in%20InfoPath%20and%20a%20simple%20workflow%20in%20SharePoint%20Designer%20to%20allow%20the%20selection%20of%20the%20approvers%20and%20a%22%0A%0AYou%20can%20read%20the%20full%20article%20here%3A%20http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/infopath-form-with-multiple-dynamic-approvers-2/" rel="nofollow" title="Email this to a friend?">Email this to a friend?</a></li><li class="sexy-friendfeed"><a href="http://www.friendfeed.com/share?title=InfoPath+Form+with+Multiple%2C+Dynamic+Approvers&amp;link=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/infopath-form-with-multiple-dynamic-approvers-2/" rel="nofollow" title="Share this on FriendFeed">Share this on FriendFeed</a></li><li class="sexy-google"><a href="http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/infopath-form-with-multiple-dynamic-approvers-2/&amp;title=InfoPath+Form+with+Multiple%2C+Dynamic+Approvers" rel="nofollow" title="Add this to Google Bookmarks">Add this to Google Bookmarks</a></li><li class="sexy-stumbleupon"><a href="http://www.stumbleupon.com/submit?url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/infopath-form-with-multiple-dynamic-approvers-2/&amp;title=InfoPath+Form+with+Multiple%2C+Dynamic+Approvers" rel="nofollow" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a></li><li class="sexy-mixx"><a href="http://www.mixx.com/submit?page_url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/infopath-form-with-multiple-dynamic-approvers-2/&amp;title=InfoPath+Form+with+Multiple%2C+Dynamic+Approvers" rel="nofollow" title="Share this on Mixx">Share this on Mixx</a></li><li class="sexy-blogmarks"><a href="http://blogmarks.net/my/new.php?mini=1&amp;simple=1&amp;url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/infopath-form-with-multiple-dynamic-approvers-2/&amp;title=InfoPath+Form+with+Multiple%2C+Dynamic+Approvers" rel="nofollow" title="Mark this on BlogMarks">Mark this on BlogMarks</a></li><li class="sexy-twittley"><a href="http://twittley.com/submit/?title=InfoPath+Form+with+Multiple%2C+Dynamic+Approvers&amp;url=http%3A%2F%2Fsharepointsolutions.com%2Fsharepoint-help%2Fblog%2Findex.php%2F2010%2F02%2Finfopath-form-with-multiple-dynamic-approvers-2%2F&amp;desc=A%20question%20came%20in%20to%20the%20MOSS%20Help%20and%20How%20To%20forum%20about%20creating%20a%20form%20that%20allowed%20multiple%20approvers%20to%20be%20specified%20at%20the%20time%20the%20form%20is%20being%20filled%20out.%20%20I%20went%20ahead%20and%20created%20a%20form%20in%20InfoPath%20and%20a%20simple%20workflow%20in%20SharePoint%20Designer%20to%20allow%20the%20selection%20of%20the%20approvers%20and%20a&amp;pcat=Technology&amp;tags=" rel="nofollow" title="Submit this to Twittley">Submit this to Twittley</a></li><li class="sexy-netvibes"><a href="http://www.netvibes.com/share?title=InfoPath+Form+with+Multiple%2C+Dynamic+Approvers&amp;url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/infopath-form-with-multiple-dynamic-approvers-2/" rel="nofollow" title="Submit this to Netvibes">Submit this to Netvibes</a></li></ul><div style="clear:both;"></div></div>]]></content:encoded>
			<wfw:commentRss>http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/infopath-form-with-multiple-dynamic-approvers-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://content.screencast.com/users/KevinPine/folders/InfoPath/media/c85d6004-1f42-4ecc-a243-104b51f8e843/InfoPathDynamicApprovers.flv" length="11170737" type="video/x-flv" />
		</item>
		<item>
		<title>Hiding SharePoint List Action Menu Items</title>
		<link>http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/hiding-sharepoint-list-action-menu-items/</link>
		<comments>http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/hiding-sharepoint-list-action-menu-items/#comments</comments>
		<pubDate>Fri, 12 Feb 2010 20:02:09 +0000</pubDate>
		<dc:creator>Kevin Pine</dc:creator>
				<category><![CDATA[MOSS Help]]></category>

		<guid isPermaLink="false">http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/hiding-sharepoint-list-action-menu-items/</guid>
		<description><![CDATA[A question came up about how to go about hiding list action menu items on SharePoint lists. There were some actions that either didn’t make sense for their extranet users or they didn’t want to support.
For example they would like to hide the “Edit in Datasheet” and “Alert Me” buttons.
 
A number of people have [...]]]></description>
			<content:encoded><![CDATA[<p>A question came up about how to go about hiding list action menu items on SharePoint lists. There were some actions that either didn’t make sense for their extranet users or they didn’t want to support.</p>
<p>For example they would like to hide the “Edit in Datasheet” and “Alert Me” buttons.</p>
<p><a href="http://sharepointsolutions.com/sharepoint-help/files/2010/02/image.png"><img style="border-bottom: 0px;border-left: 0px;border-top: 0px;border-right: 0px" border="0" alt="image" src="http://sharepointsolutions.com/sharepoint-help/files/2010/02/image_thumb.png" width="244" height="205" /></a> </p>
<p>A number of people have posted different types of solutions. Some requiring development, some recommending editing core.js, but the solution I liked the best was a bit of Java Script that could be deployed for a single list with a content editor web part or called from a master page if the desired results were more global.</p>
<p>The script was written by Ayman El-Hattab and posted on his <a href="http://ayman-elhattab.blogspot.com/2009/01/sharepoint-customization-tricks.html">blog</a>. When I first deployed it in a CEWP it wasn’t working. I suspected that it was not running last and therefore not overriding the script used to create the links. Talking with <a href="http://sharepointsolutions.com/sharepoint-help/members/rickyspears/">Ricky Spears</a> confirmed this. He had run into the same thing when trying to add JavaScript in SharePoint pages. SharePoint has a list of JavaScripts that fire <strong>after</strong> the page loads. He showed me how to add our script to the end of that list. More info on adding JavaScript can be found in <a href="http://sharepointsolutions.blogspot.com/2008/03/close-individual-sharepoint-blog-posts.html">this post</a>. </p>
<p><strong>Here’s how we get ours to load last:</strong></p>
<p>// Our script needs to run last   <br />_spBodyOnLoadFunctionNames.push(&quot;hideListActions&quot;); </p>
<p>function hideListActions() { </p>
<p>// Add menu items by name, separated by commas   <br />hideListViewToolbarItems(&quot;Edit in Datasheet&quot;, &quot;Alert Me&quot;);&#160; </p>
<p>}</p>
<p>&#160;<strong>Here is the entire script:</strong></p>
<p>// Our script needs to run last   <br />_spBodyOnLoadFunctionNames.push(&quot;hideListActions&quot;); </p>
<p>function hideListActions() { </p>
<p>// Add menu items by name, separated by commas   <br />hideListViewToolbarItems(&quot;Edit in Datasheet&quot;, &quot;Alert Me&quot;);&#160; </p>
<p>}   <br />function hideListViewToolbarItems()&#160; <br />{&#160; <br />&#160;&#160;&#160; /// &lt;summary&gt;&#160; <br />&#160;&#160;&#160; /// By : Ayman M. El-Hattab ( ayman.elhattab@gmail.com )&#160; <br />&#160;&#160;&#160; /// <a href="http://ayman-elhattab.blogspot.com">http://ayman-elhattab.blogspot.com</a>    <br />&#160;&#160;&#160; /// &lt;/summary&gt;&#160; <br />&#160;&#160;&#160; var menuItem;&#160;&#160;&#160;&#160; <br />&#160;&#160;&#160; var menuItemName;&#160; <br />&#160;&#160;&#160; var menuItemIndex=-1;&#160; <br />&#160;&#160;&#160; var menuItemNames=new Array(&quot;edit in datasheet&quot;,&quot;open with windows explorer&quot;, &quot;connect to outlook&quot;,&#8217;export to spreadsheet&#8217;,'view rss feed&#8217;,'alert me&#8217;,&quot;create column&quot;,&quot;settings:create view&quot;,&quot;list settings&quot;, &quot;document library settings&quot;,&quot;explorer view&quot;,&quot;all documents&quot;,&quot;all items&quot;,&quot;modify this view&quot;,&quot;view:create view&quot;,&quot;new document&quot;,&quot;new item&quot;,&quot;new folder&quot;,&quot;upload document&quot;,&quot;upload multiple documents&quot;);&#160; <br />&#160;&#160;&#160; var menuItems = new Array(&quot;EditInGridButton&quot;,&quot;OpenInExplorer&quot;,&quot;OfflineButton&quot;,&quot;ExportToSpreadsheet&quot;,&quot;ViewRSS&quot;,&quot;SubscribeButton&quot;,&quot;AddColumn&quot;,&quot;AddView&quot;,&quot;ListSettings&quot;,&quot;ListSettings&quot;,&quot;View1&quot;,&quot;DefaultView&quot;,&quot;DefaultView&quot;,&quot;ModifyView&quot;,&quot;CreateView&quot;,&quot;New0&quot;,&quot;New0&quot;,&quot;NewFolder&quot;,&quot;Upload&quot;,&quot;MultipleUpload&quot;);&#160; <br />&#160;&#160;&#160; var allMenuItems = document.getElementsByTagName(&#8217;ie:menuitem&#8217;);&#160; <br />&#160;&#160;&#160; for(var i = 0; i &lt; hideListViewToolbarItems.arguments.length; i++ )&#160;&#160; <br />&#160;&#160;&#160; {&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; menuItemName= hideListViewToolbarItems.arguments[i].toLowerCase();&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; for (j=0; j &lt; menuItemNames.length; j++)&#160;&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; {&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if(menuItemNames[j]==menuItemName)&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; menuItemIndex = j;&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; break;&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; }&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; menuItem=menuItems[menuItemIndex];&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; for (var l = 0; l &lt; allMenuItems.length; l++)&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; {&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if(menuItemName.indexOf(&quot;:&quot;)!=-1)&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; menuItemName = menuItemName.split(&quot;:&quot;)[1];&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if (allMenuItems[l].id.indexOf(menuItem)!=-1 &amp;&amp; allMenuItems[l].text.toLowerCase() == menuItemName)&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; // For FireFox Compatibility&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; var parentNodeOfMenuItem = allMenuItems[l].parentNode;&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; parentNodeOfMenuItem.removeChild(allMenuItems[l]);&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; break;&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; }&#160; <br />&#160;&#160;&#160; }&#160; <br />} </p>
<p>Here is the resulting list actions menu:</p>
<p><a href="http://sharepointsolutions.com/sharepoint-help/files/2010/02/image1.png"><img style="border-bottom: 0px;border-left: 0px;border-top: 0px;border-right: 0px" border="0" alt="image" src="http://sharepointsolutions.com/sharepoint-help/files/2010/02/image_thumb1.png" width="244" height="168" /></a> </p>
<p>Thanks Ayman for a nice script and thank you Ricky for your help too!</p>
<p>I am sure there are other good ways to accomplish this. Please share them in the comments.</p>
<div class="sexy-bookmarks sexy-bookmarks-expand"><ul class="socials"><li class="sexy-facebook"><a href="http://www.facebook.com/share.php?u=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/hiding-sharepoint-list-action-menu-items/&amp;t=Hiding+SharePoint+List+Action+Menu+Items" rel="nofollow" title="Share this on Facebook">Share this on Facebook</a></li><li class="sexy-digg"><a href="http://digg.com/submit?phase=2&amp;url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/hiding-sharepoint-list-action-menu-items/&amp;title=Hiding+SharePoint+List+Action+Menu+Items" rel="nofollow" title="Digg this!">Digg this!</a></li><li class="sexy-linkedin"><a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/hiding-sharepoint-list-action-menu-items/&amp;title=Hiding+SharePoint+List+Action+Menu+Items&amp;summary=A%20question%20came%20up%20about%20how%20to%20go%20about%20hiding%20list%20action%20menu%20items%20on%20SharePoint%20lists.%20There%20were%20some%20actions%20that%20either%20didn%E2%80%99t%20make%20sense%20for%20their%20extranet%20users%20or%20they%20didn%E2%80%99t%20want%20to%20support.%20%20For%20example%20they%20would%20like%20to%20hide%20the%20%E2%80%9CEdit%20in%20Datasheet%E2%80%9D%20and%20%E2%80%9CAlert%20Me%E2%80%9D%20buttons.%20&amp;source=SharePoint Help" rel="nofollow" title="Share this on Linkedin">Share this on Linkedin</a></li><li class="sexy-delicious"><a href="http://del.icio.us/post?url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/hiding-sharepoint-list-action-menu-items/&amp;title=Hiding+SharePoint+List+Action+Menu+Items" rel="nofollow" title="Share this on del.icio.us">Share this on del.icio.us</a></li><li class="sexy-reddit"><a href="http://reddit.com/submit?url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/hiding-sharepoint-list-action-menu-items/&amp;title=Hiding+SharePoint+List+Action+Menu+Items" rel="nofollow" title="Share this on Reddit">Share this on Reddit</a></li><li class="sexy-newsvine"><a href="http://www.newsvine.com/_tools/seed&amp;save?u=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/hiding-sharepoint-list-action-menu-items/&amp;h=Hiding+SharePoint+List+Action+Menu+Items" rel="nofollow" title="Seed this on Newsvine">Seed this on Newsvine</a></li><li class="sexy-twitter"><a href="http://twitter.com/home?status=Hiding+SharePoint+List+Action+Menu+Items+-+http://tinyurl.com/yhc36c6+" rel="nofollow" title="Tweet This!">Tweet This!</a></li><li class="sexy-mail"><a href="mailto:?subject=%22Hiding%20SharePoint%20List%20Action%20Menu%20Items%22&amp;body=I%20thought%20this%20article%20might%20interest%20you.%0A%0A%22A%20question%20came%20up%20about%20how%20to%20go%20about%20hiding%20list%20action%20menu%20items%20on%20SharePoint%20lists.%20There%20were%20some%20actions%20that%20either%20didn%E2%80%99t%20make%20sense%20for%20their%20extranet%20users%20or%20they%20didn%E2%80%99t%20want%20to%20support.%20%20For%20example%20they%20would%20like%20to%20hide%20the%20%E2%80%9CEdit%20in%20Datasheet%E2%80%9D%20and%20%E2%80%9CAlert%20Me%E2%80%9D%20buttons.%20%22%0A%0AYou%20can%20read%20the%20full%20article%20here%3A%20http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/hiding-sharepoint-list-action-menu-items/" rel="nofollow" title="Email this to a friend?">Email this to a friend?</a></li><li class="sexy-friendfeed"><a href="http://www.friendfeed.com/share?title=Hiding+SharePoint+List+Action+Menu+Items&amp;link=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/hiding-sharepoint-list-action-menu-items/" rel="nofollow" title="Share this on FriendFeed">Share this on FriendFeed</a></li><li class="sexy-google"><a href="http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/hiding-sharepoint-list-action-menu-items/&amp;title=Hiding+SharePoint+List+Action+Menu+Items" rel="nofollow" title="Add this to Google Bookmarks">Add this to Google Bookmarks</a></li><li class="sexy-stumbleupon"><a href="http://www.stumbleupon.com/submit?url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/hiding-sharepoint-list-action-menu-items/&amp;title=Hiding+SharePoint+List+Action+Menu+Items" rel="nofollow" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a></li><li class="sexy-mixx"><a href="http://www.mixx.com/submit?page_url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/hiding-sharepoint-list-action-menu-items/&amp;title=Hiding+SharePoint+List+Action+Menu+Items" rel="nofollow" title="Share this on Mixx">Share this on Mixx</a></li><li class="sexy-blogmarks"><a href="http://blogmarks.net/my/new.php?mini=1&amp;simple=1&amp;url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/hiding-sharepoint-list-action-menu-items/&amp;title=Hiding+SharePoint+List+Action+Menu+Items" rel="nofollow" title="Mark this on BlogMarks">Mark this on BlogMarks</a></li><li class="sexy-twittley"><a href="http://twittley.com/submit/?title=Hiding+SharePoint+List+Action+Menu+Items&amp;url=http%3A%2F%2Fsharepointsolutions.com%2Fsharepoint-help%2Fblog%2Findex.php%2F2010%2F02%2Fhiding-sharepoint-list-action-menu-items%2F&amp;desc=A%20question%20came%20up%20about%20how%20to%20go%20about%20hiding%20list%20action%20menu%20items%20on%20SharePoint%20lists.%20There%20were%20some%20actions%20that%20either%20didn%E2%80%99t%20make%20sense%20for%20their%20extranet%20users%20or%20they%20didn%E2%80%99t%20want%20to%20support.%20%20For%20example%20they%20would%20like%20to%20hide%20the%20%E2%80%9CEdit%20in%20Datasheet%E2%80%9D%20and%20%E2%80%9CAlert%20Me%E2%80%9D%20buttons.%20&amp;pcat=Technology&amp;tags=" rel="nofollow" title="Submit this to Twittley">Submit this to Twittley</a></li><li class="sexy-netvibes"><a href="http://www.netvibes.com/share?title=Hiding+SharePoint+List+Action+Menu+Items&amp;url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/hiding-sharepoint-list-action-menu-items/" rel="nofollow" title="Submit this to Netvibes">Submit this to Netvibes</a></li></ul><div style="clear:both;"></div></div>]]></content:encoded>
			<wfw:commentRss>http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/02/hiding-sharepoint-list-action-menu-items/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Use SharePoint Lists to Create a Filtered Drop Down in InfoPath 2007</title>
		<link>http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/01/use-sharepoint-lists-to-create-a-filtered-drop-down-in-infopath-2007/</link>
		<comments>http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/01/use-sharepoint-lists-to-create-a-filtered-drop-down-in-infopath-2007/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 02:31:28 +0000</pubDate>
		<dc:creator>Kevin Pine</dc:creator>
				<category><![CDATA[InfoPath 2007]]></category>
		<category><![CDATA[MOSS Help]]></category>
		<category><![CDATA[SharePoint Designer 2007]]></category>
		<category><![CDATA[Workflow]]></category>
		<category><![CDATA[InfoPath]]></category>

		<guid isPermaLink="false">http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/01/use-sharepoint-lists-to-create-a-filtered-drop-down-in-infopath-2007/</guid>
		<description><![CDATA[While teaching our online class on InfoPath and SharePoint Designer Workflows (Essentials of InfoPath and SharePoint Workflows), I was asked about using SharePoint list data to populate InfoPath drop-down list controls and filtering a list control based on the selection of another drop-down.
Goal: To create an InfoPath form that includes two drop down lists populated [...]]]></description>
			<content:encoded><![CDATA[<a href='http://sharepointsolutions.com/SharePoint-Training/Courses/Pages/InfoPath-Workflow.aspx?CourseTitle=Mission:%20Automation%20%E2%80%93%20SharePoint%20Workflow%20and%20InfoPath&internal_ad=/SiteCollectionImages/MissionAutomation.png&blog_post=Use SharePoint Lists to Create a Filtered Drop Down in InfoPath 2007'><img src='http://sharepointsolutions.com/SiteCollectionImages/MissionAutomation.png' border=0 align='right' style='float:right'></a><p>While teaching our online class on InfoPath and SharePoint Designer Workflows (<a href="http://sharepointsolutions.com/SharePoint-Training/Courses/Pages/Essential-SharePoint-Workflow.aspx?CourseTitle=Essentials%20of%20InfoPath%20and%20SharePoint%20Workflows%20%28Online%20Live%29">Essentials of InfoPath and SharePoint Workflows</a>), I was asked about using SharePoint list data to populate InfoPath drop-down list controls and filtering a list control based on the selection of another drop-down.</p>
<p><strong>Goal:</strong> To create an InfoPath form that includes two drop down lists populated from an external source (SharePoint lists) with the result of the first list selection filtering the second.</p>
<p><strong>Scenario:</strong> Adventure Works has four types of bikes that they manufacturer:</p>
<p>· BMX<br />· Mountain<br />· Racing<br />· Touring</p>
<p>They have many bike models for each type of bike (Mountain bikes for example are comprised of the following: MX-100, MX-200, MX-220, MX-300, etc.)</p>
<p>Customer service has a form to track issues from customers. They need to select the model from a list but would like to be able to filter the list of bike models based on the type of bike.</p>
<p><strong>Overview of the steps</strong></p>
<p><strong>In SharePoint:</strong></p>
<p>Create a custom list to maintain the bike types   <br />Create a custom list to maintain the current bike models (with a lookup to the Bike Types list) </p>
<p><strong>In InfoPath:</strong></p>
<p>Create a form   <br />Add a drop down list control and connect it to the bike types list    <br />Add a list (or drop down list) control and connect it to the Bike Models list     <br />Set a filter to filter the models based on the selection from the first control</p>
<p><strong>Detailed directions</strong></p>
<p>1. At the top-level site in the site collection (portal.awbikes.local in the classroom environment) create a custom list named BikeTypes</p>
<p>2. Change the &#8216;Title&#8217; column name to &#8216;BikeType&#8217;</p>
<p>3. Add the following four items to the list: BMX, Mountain, Racing, Touring</p>
<p><a href="http://sharepointsolutions.com/sharepoint-help/files/2010/01/clip_image002.jpg"><img style="border-bottom: 0px;border-left: 0px;border-top: 0px;border-right: 0px" border="0" alt="clip_image002" src="http://sharepointsolutions.com/sharepoint-help/files/2010/01/clip_image002_thumb.jpg" width="244" height="173" /></a></p>
<p>4. Create another custom list named <strong>&#8216;BikeModels&#8217;</strong></p>
<p>5. <strong>Rename the &#8216;Title&#8217;</strong> column<strong> &#8216;ModelNumber&#8217;</strong></p>
<p>6. <strong>Add a lookup column</strong> named <strong>BikeType</strong> and lookup to the <strong>Biketypes list</strong>, <strong>BikeType column</strong></p>
<p>7. <strong>Populate the list</strong> with a number of model numbers and choose a type for each    <br /><a href="http://sharepointsolutions.com/sharepoint-help/files/2010/01/clip_image004.jpg"><img style="border-bottom: 0px;border-left: 0px;border-top: 0px;border-right: 0px" border="0" alt="clip_image004" src="http://sharepointsolutions.com/sharepoint-help/files/2010/01/clip_image004_thumb.jpg" width="244" height="198" /></a></p>
<p>8. <strong>In InfoPath</strong>, design a new form using a <strong>blank template</strong></p>
<p>9. In the <strong>Layout task pane</strong> add <strong>a Table with Title</strong> then <strong>add a two-column table</strong> in the body</p>
<p>10. <strong>Resize the rows and columns</strong> and hit the tab key a few times to <strong>create more rows in the two-column table</strong> as follows:    <br /><a href="http://sharepointsolutions.com/sharepoint-help/files/2010/01/clip_image006.jpg"><img style="border-bottom: 0px;border-left: 0px;border-top: 0px;border-right: 0px" border="0" alt="clip_image006" src="http://sharepointsolutions.com/sharepoint-help/files/2010/01/clip_image006_thumb.jpg" width="244" height="164" /></a></p>
<p>This list will contain many fields including date, customer contact info, issue type, issue description, etc. <strong>We are only going to work with the bike type and model fields here</strong>.</p>
<p><strong>11. </strong>Switch to <strong>the Data Source task pane</strong> and rename the <strong>&#8216;myFields&#8217; group to CustomerService</strong></p>
<p>12. Under <strong>Actions</strong>, click <strong>Add a Field or Group</strong> and add a <strong>Text type Field named BikeType</strong>    <br /><a href="http://sharepointsolutions.com/sharepoint-help/files/2010/01/clip_image008.jpg"><img style="border-bottom: 0px;border-left: 0px;border-top: 0px;border-right: 0px" border="0" alt="clip_image008" src="http://sharepointsolutions.com/sharepoint-help/files/2010/01/clip_image008_thumb.jpg" width="244" height="181" /></a></p>
<p>13. <strong>Add another text field named BikeModel</strong>    <br /><a href="http://sharepointsolutions.com/sharepoint-help/files/2010/01/clip_image010.jpg"><img style="border-bottom: 0px;border-left: 0px;border-top: 0px;border-right: 0px" border="0" alt="clip_image010" src="http://sharepointsolutions.com/sharepoint-help/files/2010/01/clip_image010_thumb.jpg" width="209" height="218" /></a></p>
<p>14. Drag the <strong>two fields into the form</strong>    <br /><a href="http://sharepointsolutions.com/sharepoint-help/files/2010/01/clip_image012.jpg"><img style="border-bottom: 0px;border-left: 0px;border-top: 0px;border-right: 0px" border="0" alt="clip_image012" src="http://sharepointsolutions.com/sharepoint-help/files/2010/01/clip_image012_thumb.jpg" width="244" height="78" /></a></p>
<p>15. Right-click the <strong>BikeType control and change to a Drop-Down List Box</strong>    <br /><a href="http://sharepointsolutions.com/sharepoint-help/files/2010/01/clip_image014.jpg"><img style="border-bottom: 0px;border-left: 0px;border-top: 0px;border-right: 0px" border="0" alt="clip_image014" src="http://sharepointsolutions.com/sharepoint-help/files/2010/01/clip_image014_thumb.jpg" width="244" height="167" /></a></p>
<p><strong>16. </strong><strong>Right-click the BikeModel control and change to a List Box </strong></p>
<p>17. <strong>Double-click the BikeType</strong> control and under the section titled List box entries, select the radio button for <strong>&#8216;Look up values from an external data source&#8217;</strong> and click <strong>Add</strong>    <br /><a href="http://sharepointsolutions.com/sharepoint-help/files/2010/01/clip_image016.jpg"><img style="border-bottom: 0px;border-left: 0px;border-top: 0px;border-right: 0px" border="0" alt="clip_image016" src="http://sharepointsolutions.com/sharepoint-help/files/2010/01/clip_image016_thumb.jpg" width="244" height="222" /></a></p>
<p>18. Select <strong>Create a new connection to</strong>: and <strong>Receive data, Next</strong></p>
<p>19. Select <strong>SharePoint library or list, Next</strong></p>
<p>20. Enter <strong>the URL of your site</strong> where you created the custom lists above (in class, http://portal.awbikes.local), <strong>Next</strong></p>
<p>21. Choose the <strong>BikeTypes list, Next</strong></p>
<p>22. Select the <strong>BikeType field, Next</strong></p>
<p>23. Select <strong>&#8216;Store a copy of the data…&#8217;, Next</strong></p>
<p>24. Enter a name for the connection, <strong>BikeTypes, select the &#8216;Automatically retrieve data…&#8217;, Finish</strong></p>
<p>25. Click the <strong>XPath button for Entries</strong>    <br /><a href="http://sharepointsolutions.com/sharepoint-help/files/2010/01/clip_image018.jpg"><img style="border-bottom: 0px;border-left: 0px;border-top: 0px;border-right: 0px" border="0" alt="clip_image018" src="http://sharepointsolutions.com/sharepoint-help/files/2010/01/clip_image018_thumb.jpg" width="244" height="130" /></a></p>
<p>26. Expand the folders and <strong>select BikeType, OK, OK</strong> again to finish    <br /><a href="http://sharepointsolutions.com/sharepoint-help/files/2010/01/clip_image020.jpg"><img style="border-bottom: 0px;border-left: 0px;border-top: 0px;border-right: 0px" border="0" alt="clip_image020" src="http://sharepointsolutions.com/sharepoint-help/files/2010/01/clip_image020_thumb.jpg" width="244" height="135" /></a></p>
<p>27. <strong>Preview the form to test</strong> the connection to the Bike Types list    <br /><a href="http://sharepointsolutions.com/sharepoint-help/files/2010/01/clip_image022.jpg"><img style="border-bottom: 0px;border-left: 0px;border-top: 0px;border-right: 0px" border="0" alt="clip_image022" src="http://sharepointsolutions.com/sharepoint-help/files/2010/01/clip_image022_thumb.jpg" width="244" height="117" /></a></p>
<p>28. Close the preview and <strong>double-click the BikeModel list control</strong> and under the section titled List box entries, <strong>select the radio button for &#8216;Look up values from an external data source&#8217;</strong> and click <strong>Add</strong></p>
<p>29. Select <strong>Create a new connection to</strong>: and <strong>Receive data, Next</strong></p>
<p>30. Select <strong>SharePoint library or list, Next</strong></p>
<p>31. <strong>Enter the URL of your site</strong> where you created the custom lists above (in class, http://portal.awbikes.local), <strong>Next</strong></p>
<p>32. Choose the <strong>BikeModels list, Next</strong></p>
<p>33. <strong>Select both the ModelNumber and BikeType fields, Next</strong>    <br />(you will just display the ModelNumber but you will use the type in the filter below)</p>
<p><a href="http://sharepointsolutions.com/sharepoint-help/files/2010/01/clip_image024.jpg"><img style="border-bottom: 0px;border-left: 0px;border-top: 0px;border-right: 0px" border="0" alt="clip_image024" src="http://sharepointsolutions.com/sharepoint-help/files/2010/01/clip_image024_thumb.jpg" width="244" height="60" /></a></p>
<p>34. Select <strong>&#8216;Store a copy of the data…&#8217;, Next</strong></p>
<p>35. Enter a <strong>name for the connection, BikeModels</strong>, select the<strong> &#8216;Automatically retrieve data…&#8217;, Finish</strong></p>
<p>36. Click the <strong>XPath button for Entries</strong></p>
<p>37. <strong>Expand the folders</strong> and select <strong>ModelNumber, click Filter Data</strong>    <br /><a href="http://sharepointsolutions.com/sharepoint-help/files/2010/01/clip_image026.jpg"><img style="border-bottom: 0px;border-left: 0px;border-top: 0px;border-right: 0px" border="0" alt="clip_image026" src="http://sharepointsolutions.com/sharepoint-help/files/2010/01/clip_image026_thumb.jpg" width="215" height="244" /></a></p>
<p><strong>38. </strong><strong>Click Add</strong></p>
<p>39. Set the filter to <strong>BikeType, is equal to, Select a field or group…     <br /></strong>    <br /><a href="http://sharepointsolutions.com/sharepoint-help/files/2010/01/clip_image028.jpg"><img style="border-bottom: 0px;border-left: 0px;border-top: 0px;border-right: 0px" border="0" alt="clip_image028" src="http://sharepointsolutions.com/sharepoint-help/files/2010/01/clip_image028_thumb.jpg" width="244" height="83" /></a></p>
<p>40. On the <strong>Data Source drop-down, select Main, Bike Type, OK, OK, OK, OK, OK</strong> already!    <br /><a href="http://sharepointsolutions.com/sharepoint-help/files/2010/01/clip_image030.jpg"><img style="border-bottom: 0px;border-left: 0px;border-top: 0px;border-right: 0px" border="0" alt="clip_image030" src="http://sharepointsolutions.com/sharepoint-help/files/2010/01/clip_image030_thumb.jpg" width="244" height="111" /></a></p>
<p>41. <strong>Preview the form to test the filtering</strong>    <br /><a href="http://sharepointsolutions.com/sharepoint-help/files/2010/01/clip_image032.jpg"><img style="border-bottom: 0px;border-left: 0px;border-top: 0px;border-right: 0px" border="0" alt="clip_image032" src="http://sharepointsolutions.com/sharepoint-help/files/2010/01/clip_image032_thumb.jpg" width="244" height="141" /></a></p>
<p>You can create the filtering using only one list (just BikeModels) by selecting the Show only entries with unique names option. For very large lists this may impact performance.</p>
<p>Happy filtering!</p>
<div class="sexy-bookmarks sexy-bookmarks-expand"><ul class="socials"><li class="sexy-facebook"><a href="http://www.facebook.com/share.php?u=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/01/use-sharepoint-lists-to-create-a-filtered-drop-down-in-infopath-2007/&amp;t=Use+SharePoint+Lists+to+Create+a+Filtered+Drop+Down+in+InfoPath+2007" rel="nofollow" title="Share this on Facebook">Share this on Facebook</a></li><li class="sexy-digg"><a href="http://digg.com/submit?phase=2&amp;url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/01/use-sharepoint-lists-to-create-a-filtered-drop-down-in-infopath-2007/&amp;title=Use+SharePoint+Lists+to+Create+a+Filtered+Drop+Down+in+InfoPath+2007" rel="nofollow" title="Digg this!">Digg this!</a></li><li class="sexy-linkedin"><a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/01/use-sharepoint-lists-to-create-a-filtered-drop-down-in-infopath-2007/&amp;title=Use+SharePoint+Lists+to+Create+a+Filtered+Drop+Down+in+InfoPath+2007&amp;summary=While%20teaching%20our%20online%20class%20on%20InfoPath%20and%20SharePoint%20Designer%20Workflows%20%28Essentials%20of%20InfoPath%20and%20SharePoint%20Workflows%29%2C%20I%20was%20asked%20about%20using%20SharePoint%20list%20data%20to%20populate%20InfoPath%20drop-down%20list%20controls%20and%20filtering%20a%20list%20control%20based%20on%20the%20selection%20of%20another%20drop-down.%20%20Goal%3A%20&amp;source=SharePoint Help" rel="nofollow" title="Share this on Linkedin">Share this on Linkedin</a></li><li class="sexy-delicious"><a href="http://del.icio.us/post?url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/01/use-sharepoint-lists-to-create-a-filtered-drop-down-in-infopath-2007/&amp;title=Use+SharePoint+Lists+to+Create+a+Filtered+Drop+Down+in+InfoPath+2007" rel="nofollow" title="Share this on del.icio.us">Share this on del.icio.us</a></li><li class="sexy-reddit"><a href="http://reddit.com/submit?url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/01/use-sharepoint-lists-to-create-a-filtered-drop-down-in-infopath-2007/&amp;title=Use+SharePoint+Lists+to+Create+a+Filtered+Drop+Down+in+InfoPath+2007" rel="nofollow" title="Share this on Reddit">Share this on Reddit</a></li><li class="sexy-newsvine"><a href="http://www.newsvine.com/_tools/seed&amp;save?u=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/01/use-sharepoint-lists-to-create-a-filtered-drop-down-in-infopath-2007/&amp;h=Use+SharePoint+Lists+to+Create+a+Filtered+Drop+Down+in+InfoPath+2007" rel="nofollow" title="Seed this on Newsvine">Seed this on Newsvine</a></li><li class="sexy-twitter"><a href="http://twitter.com/home?status=Use+SharePoint+Lists+to+Create+a+Filtered+Drop+Down+in+InfoPath+2007+-+http://tinyurl.com/ycvgvt9+" rel="nofollow" title="Tweet This!">Tweet This!</a></li><li class="sexy-mail"><a href="mailto:?subject=%22Use%20SharePoint%20Lists%20to%20Create%20a%20Filtered%20Drop%20Down%20in%20InfoPath%202007%22&amp;body=I%20thought%20this%20article%20might%20interest%20you.%0A%0A%22While%20teaching%20our%20online%20class%20on%20InfoPath%20and%20SharePoint%20Designer%20Workflows%20%28Essentials%20of%20InfoPath%20and%20SharePoint%20Workflows%29%2C%20I%20was%20asked%20about%20using%20SharePoint%20list%20data%20to%20populate%20InfoPath%20drop-down%20list%20controls%20and%20filtering%20a%20list%20control%20based%20on%20the%20selection%20of%20another%20drop-down.%20%20Goal%3A%20%22%0A%0AYou%20can%20read%20the%20full%20article%20here%3A%20http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/01/use-sharepoint-lists-to-create-a-filtered-drop-down-in-infopath-2007/" rel="nofollow" title="Email this to a friend?">Email this to a friend?</a></li><li class="sexy-friendfeed"><a href="http://www.friendfeed.com/share?title=Use+SharePoint+Lists+to+Create+a+Filtered+Drop+Down+in+InfoPath+2007&amp;link=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/01/use-sharepoint-lists-to-create-a-filtered-drop-down-in-infopath-2007/" rel="nofollow" title="Share this on FriendFeed">Share this on FriendFeed</a></li><li class="sexy-google"><a href="http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/01/use-sharepoint-lists-to-create-a-filtered-drop-down-in-infopath-2007/&amp;title=Use+SharePoint+Lists+to+Create+a+Filtered+Drop+Down+in+InfoPath+2007" rel="nofollow" title="Add this to Google Bookmarks">Add this to Google Bookmarks</a></li><li class="sexy-stumbleupon"><a href="http://www.stumbleupon.com/submit?url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/01/use-sharepoint-lists-to-create-a-filtered-drop-down-in-infopath-2007/&amp;title=Use+SharePoint+Lists+to+Create+a+Filtered+Drop+Down+in+InfoPath+2007" rel="nofollow" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a></li><li class="sexy-mixx"><a href="http://www.mixx.com/submit?page_url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/01/use-sharepoint-lists-to-create-a-filtered-drop-down-in-infopath-2007/&amp;title=Use+SharePoint+Lists+to+Create+a+Filtered+Drop+Down+in+InfoPath+2007" rel="nofollow" title="Share this on Mixx">Share this on Mixx</a></li><li class="sexy-blogmarks"><a href="http://blogmarks.net/my/new.php?mini=1&amp;simple=1&amp;url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/01/use-sharepoint-lists-to-create-a-filtered-drop-down-in-infopath-2007/&amp;title=Use+SharePoint+Lists+to+Create+a+Filtered+Drop+Down+in+InfoPath+2007" rel="nofollow" title="Mark this on BlogMarks">Mark this on BlogMarks</a></li><li class="sexy-twittley"><a href="http://twittley.com/submit/?title=Use+SharePoint+Lists+to+Create+a+Filtered+Drop+Down+in+InfoPath+2007&amp;url=http%3A%2F%2Fsharepointsolutions.com%2Fsharepoint-help%2Fblog%2Findex.php%2F2010%2F01%2Fuse-sharepoint-lists-to-create-a-filtered-drop-down-in-infopath-2007%2F&amp;desc=While%20teaching%20our%20online%20class%20on%20InfoPath%20and%20SharePoint%20Designer%20Workflows%20%28Essentials%20of%20InfoPath%20and%20SharePoint%20Workflows%29%2C%20I%20was%20asked%20about%20using%20SharePoint%20list%20data%20to%20populate%20InfoPath%20drop-down%20list%20controls%20and%20filtering%20a%20list%20control%20based%20on%20the%20selection%20of%20another%20drop-down.%20%20Goal%3A%20&amp;pcat=Technology&amp;tags=" rel="nofollow" title="Submit this to Twittley">Submit this to Twittley</a></li><li class="sexy-netvibes"><a href="http://www.netvibes.com/share?title=Use+SharePoint+Lists+to+Create+a+Filtered+Drop+Down+in+InfoPath+2007&amp;url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/01/use-sharepoint-lists-to-create-a-filtered-drop-down-in-infopath-2007/" rel="nofollow" title="Submit this to Netvibes">Submit this to Netvibes</a></li></ul><div style="clear:both;"></div></div>]]></content:encoded>
			<wfw:commentRss>http://sharepointsolutions.com/sharepoint-help/blog/index.php/2010/01/use-sharepoint-lists-to-create-a-filtered-drop-down-in-infopath-2007/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SharePoint 2010 Lab Environment Part 2 – Bootable vhd Files</title>
		<link>http://sharepointsolutions.com/sharepoint-help/blog/index.php/2009/11/sharepoint-2010-lab-environment-part-2-bootable-vhd-files/</link>
		<comments>http://sharepointsolutions.com/sharepoint-help/blog/index.php/2009/11/sharepoint-2010-lab-environment-part-2-bootable-vhd-files/#comments</comments>
		<pubDate>Wed, 04 Nov 2009 20:43:43 +0000</pubDate>
		<dc:creator>Eric Eaton (e2)</dc:creator>
				<category><![CDATA[For Developers]]></category>
		<category><![CDATA[For Server Administrators]]></category>
		<category><![CDATA[SharePoint 2010 Technical Preview]]></category>
		<category><![CDATA[Administration]]></category>
		<category><![CDATA[development]]></category>

		<guid isPermaLink="false">http://sharepointsolutions.com/sharepoint-help/blog/index.php/2009/11/sharepoint-2010-lab-environment-part-2-bootable-vhd-files/</guid>
		<description><![CDATA[The problem:&#160; Having to install SharePoint on a server OS has been a consistent cause of complaint for years within the SharePoint community, especially for developers.&#160; The proliferation of virtualization technologies (such as the free Virtual PC and VMWare Server for client OS’s, and Virtual Server and Hyper-V for server OS’s) have helped to soothe [...]]]></description>
			<content:encoded><![CDATA[<a href='http://sharepointsolutions.com/SharePoint-Training/Courses/Pages/sharepoint-2010-skills-upgrade-planning-class.aspx?CourseTitle=SharePoint%202010%20Skills%20Upgrade%20and%20Planning&internal_ad=/SiteCollectionImages/SharePoint2010Skills2.png&blog_post=SharePoint 2010 Lab Environment Part 2 – Bootable vhd Files'><img src='http://sharepointsolutions.com/SiteCollectionImages/SharePoint2010Skills2.png' border=0 align='right' style='float:right'></a><p><strong>The problem:&#160; </strong>Having to install SharePoint on a server OS has been a consistent cause of complaint for years within the SharePoint community, especially for developers.&#160; The proliferation of virtualization technologies (such as the free Virtual PC and VMWare Server for client OS’s, and Virtual Server and Hyper-V for server OS’s) have helped to soothe the pain – but didn’t make it all better for many.&#160; The picture has gotten more complicated with SharePoint 2010.&#160; Now 64-bit hardware and operating systems are <em>required for SharePoint 2010 all SKUS</em>, which significantly narrows the options for desktop lab environments.&#160; Hyper-V is the only Microsoft virtualization technology capable of running 64-bit guest machines, but it only runs on a Windows 2008 Server host machine.&#160; </p>
<p>I have so far been running my Win2k8 SharePoint 2010 guest virtual servers on a spare desktop machine running Win2k8 with Hyper-V.&#160; This is a more traditional development environment for SharePoint, and it is still nice from several perspectives.&#160; 1) I have snapshots to do the ‘I was never here’ trick easily if (when) I mess something up, 2) I can give the VMs more RAM than I could on my laptop, and 3) I can run more than one VM to simulate an actual farm.&#160; However, it’s not a very portable environment.&#160; It would be very handy as I travel to have a simple single-server farm that I could boot my laptop into wherever and whenever I felt the need.&#160; </p>
<p>Even if your laptop or desktop is 64-bit, most of us probably aren’t running a server OS on it.&#160; I did try using Windows 2008 Server as my laptop OS for a couple of months, but the performance load of Hyper-V and the SharePoint guest resource requirements caused a significantly slower environment than I was prepared to accept for my everyday use.&#160; I know there are low-cost alternatives using VMWare’s free product, but that still would still have the duplicate host / guest resource issue.&#160; I also wanted to see if it was practical to use Microsoft software because of my familiarity level with it.&#160; </p>
<p><strong>Two solutions:&#160; </strong>There are two new developments (one in SharePoint 2010 and the other in Windows 7) that open some new doors to the desktop / laptop dev environment.&#160; TechNet now documents that 1) SharePoint 2010 offers an option for <a href="http://msdn.microsoft.com/en-us/library/ee554869(office.14).aspx" target="_blank">installing on a client OS</a> – at least for development use, and 2) that a pre-installed and configured vhd can be <a href="http://blogs.technet.com/aviraj/archive/2009/01/18/windows-7-boot-from-vhd-first-impression-part-2.aspx" target="_blank">mounted as a secondary bootable drive</a> on a Windows 7 PC.</p>
<p>In this post, I will document my experience mounting a pre-installed Win2k8 R2 server vhd as a bootable drive on my Windows 7, x64, 4gb RAM laptop.&#160; In <a href="http://sharepointsolutions.com/sharepoint-help/blog/index.php/2009/10/sharepoint-2010-lab-environment-part-1-installing-sharepoint-on-windows-7/" target="_blank">a previous post</a>, I documented my experience installing SharePoint 2010 directly on Windows 7.</p>
<p>Now Windows 7 natively allows us to boot into vhd files instead of just the physical drive partitions.&#160; That’s pretty significant and will probably have big implications for many admins and developers.&#160; It is not as simple as installing SharePoint 2010 directly into Windows 7, but it has distinct advantages.&#160; For instance, we can have multiple versions of the server stored as separate vhd files for different testing scenarios.&#160; We can also make a temporary copy of any vhd file before booting into it to maintain kind of a quasi-snapshot capability.&#160; It also offers me more of an ‘apples to apples’ comparison to a production farm (since it’s on a server OS) and allows me to use hardware on the PC that doesn’t work in HyperV – like wireless network cards, for instance.</p>
<p><strong>Mounting a bootable vhd drive in Windows 7 – The nitty gritty</strong></p>
<ol>
<li>Log into your existing SharePoint virtual machine, and run the following sysprep command within the virtual server:      <br /><strong><font face="Courier New">c:\windows\system32\sysprep\sysprep.exe /generalize /shutdown          <br /><a href="http://sharepointsolutions.com/sharepoint-help/files/2009/11/cmdSysprep.png"><img style="border-right-width: 0px;margin: 10px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px" border="0" alt="cmdSysprep" src="http://sharepointsolutions.com/sharepoint-help/files/2009/11/cmdSysprep_thumb.png" width="644" height="360" /></a> </font></strong></li>
<li>Once the sysprep command completes and the virtual machine shuts down, copy the server’s vhd file onto the physical drive of your PC.&#160; Mine was copied to C:\VHD\2010AllinOne.vhd. </li>
<li>BCDEdit is a command-line utility new to Windows 7 that allows you to edit the Boot Configuration Data, including creating a boot menu for multiple operating systems or at least disks.&#160; <br />Open a command prompt <em>with administrative privileges</em>, and type<font face="Courier New"><strong> bcdedit /enum</strong></font>.&#160; This will print out to the screen the current setup of your Windows 7 bootloader, which probably has only a single boot option.       <br /><a href="http://sharepointsolutions.com/sharepoint-help/files/2009/11/startCMDAdmin.png"><img style="border-right-width: 0px;margin: 10px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px" border="0" alt="startCMDAdmin" src="http://sharepointsolutions.com/sharepoint-help/files/2009/11/startCMDAdmin_thumb.png" width="409" height="150" /></a>       <br /><a href="http://sharepointsolutions.com/sharepoint-help/files/2009/11/cmdBCDEditEnum.png"><img style="border-right-width: 0px;margin: 10px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px" border="0" alt="cmdBCDEditEnum" src="http://sharepointsolutions.com/sharepoint-help/files/2009/11/cmdBCDEditEnum_thumb.png" width="644" height="474" /></a>       <br />You’ll notice that there is a Windows Boot Manager section, and currently only one Windows Boot Loader entry.&#160; That’s about to change.&#160; </li>
<li>Type the following command to create a new item in the boot menu named “2010 All In One” that we will use for our 2010 lab environment by copying the existing one:      <br /><font face="Courier New"><strong>bcdedit /copy {current} /d “2010 All In 1”          <br />&#160; <a href="http://sharepointsolutions.com/sharepoint-help/files/2009/11/cmdBCDEditCopy.png"><img style="border-right-width: 0px;margin: 10px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px" border="0" alt="cmdBCDEditCopy" src="http://sharepointsolutions.com/sharepoint-help/files/2009/11/cmdBCDEditCopy_thumb.png" width="644" height="359" /></a>&#160;&#160; <br /></strong></font>The /copy command created another boot menu entry and assigned it a new GUID.&#160; (Every Windows Boot Loader entry has its own GUID, even though you have to look very closely to see the difference).&#160; However, the new boot menu entry is not wired up to our VHD file.&#160; So, we need to add another two related commands to tell the new menu entry where to point.&#160; The GUID can be typed if you really want to, but I suggest copying it.&#160; </li>
<li>If you right-click on the GUID in the last line output to the command prompt and choose Mark, then you can highlight the GUID with your mouse.&#160; The ENTER key copies it to the clipboard.      <br /><a href="http://sharepointsolutions.com/sharepoint-help/files/2009/11/cmdMark.png"><img style="border-right-width: 0px;margin: 10px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px" border="0" alt="cmdMark" src="http://sharepointsolutions.com/sharepoint-help/files/2009/11/cmdMark_thumb.png" width="644" height="228" /></a>       <br /><a href="http://sharepointsolutions.com/sharepoint-help/files/2009/11/cmdHighlight.png"><img style="border-right-width: 0px;margin: 10px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px" border="0" alt="cmdHighlight" src="http://sharepointsolutions.com/sharepoint-help/files/2009/11/cmdHighlight_thumb.png" width="644" height="138" /></a>       <br /><a href="http://sharepointsolutions.com/sharepoint-help/files/2009/11/cmdPaste.png"><img style="border-right-width: 0px;margin: 10px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px" border="0" alt="cmdPaste" src="http://sharepointsolutions.com/sharepoint-help/files/2009/11/cmdPaste_thumb.png" width="644" height="359" /></a>       <br />The following are the complete commands to type and paste into the command prompt.
<p><font face="Courier New"><strong>bcdedit /set {<em>pasted guid</em>} device vhd=[C:]\VHD\2010AllInOne.vhd           <br /><font face="Courier New"><strong>bcdedit /set {<em>pasted guid</em>} osdevice vhd=[C:]\VHD\2010AllInOne.vhd               <br /><a href="http://sharepointsolutions.com/sharepoint-help/files/2009/11/cmdBCDEditDevice.png"><img style="border-right-width: 0px;margin: 10px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px" border="0" alt="cmdBCDEditDevice" src="http://sharepointsolutions.com/sharepoint-help/files/2009/11/cmdBCDEditDevice_thumb.png" width="644" height="359" /></a>&#160;</strong></font></strong></font> </li>
<li><font face="Courier New"><font face="Courier New"><font face="Trebuchet MS">Finally, we need to force the new bootloader entry to auto-detect the VM’s Hardware Abstraction Layer.            <br /><a href="http://sharepointsolutions.com/sharepoint-help/files/2009/11/cmdBCDEditDetectHAL.png"><img style="border-right-width: 0px;margin: 10px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px" border="0" alt="cmdBCDEditDetectHAL" src="http://sharepointsolutions.com/sharepoint-help/files/2009/11/cmdBCDEditDetectHAL_thumb.png" width="644" height="359" /></a>&#160;</font></font></font> </li>
</ol>
<p><font face="Courier New"><font face="Courier New"><font face="Trebuchet MS">The end result should be a dual-boot menu with a choice for Windows 7, your native OS, and 2010 All In One, your SharePoint lab VM.&#160; In my case, I have SharePoint 2010 installed on both Windows 7 and Windows 2008 R2 – all running natively on my 64-bit HP laptop with 4 gb of RAM.&#160; So far, things are working very well for me.</font></font></font></p>
<p><strong>NOTES:&#160; </strong></p>
<ul>
<li>If you get a BSOD when you try to boot into the VHD, it’s probably because you didn’t use the Generalize option when you did the sysprep command.&#160; (I, um, have ‘a friend’ that did that once…) </li>
<li>This boot to vhd trick allegedly will work with a Windows Vista client OS too – with a little hacking.&#160; I won’t go into it here, but Google “windows 7 vhd dual boot vista bootmgr bcdedit” and you’ll find several brave adventurers who can take you down that path if you wish. </li>
<li>I worked under the assumption that many developers / admins would already have a test server built as a VM by the time they stumbled across this procedure.&#160; So these instructions show how to repurpose an existing VM onto your client PC in a dual-boot scenario.&#160; If you <em>do not </em>have an existing SharePoint 2010 vhd file, here’s <a href="http://blogs.technet.com/keithcombs/archive/2009/05/22/dual-boot-from-vhd-using-windows-7-and-windows-server-2008-r2.aspx" target="_blank">a link to a TechNet blog post with a webcast</a> that describes how to create the vhd dual-boot environment with nothing more than a blank hard drive, a Windows 7 DVD, a Windows 2008 R2 DVD, and a dream… </li>
<li>You can use a dynamically-expanding vhd file, but it does something at boot time that may surprise you.&#160; It automatically expands to its full size.&#160; Interestingly, it contracts again to it’s smaller size when you shut it down.&#160; That means you don’t have to maintain enough space for the full drive, but you do have to free up enough space for the entire drive before you try to boot into it. </li>
</ul>
<div class="sexy-bookmarks sexy-bookmarks-expand"><ul class="socials"><li class="sexy-facebook"><a href="http://www.facebook.com/share.php?u=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2009/11/sharepoint-2010-lab-environment-part-2-bootable-vhd-files/&amp;t=SharePoint+2010+Lab+Environment+Part+2+%E2%80%93+Bootable+vhd+Files" rel="nofollow" title="Share this on Facebook">Share this on Facebook</a></li><li class="sexy-digg"><a href="http://digg.com/submit?phase=2&amp;url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2009/11/sharepoint-2010-lab-environment-part-2-bootable-vhd-files/&amp;title=SharePoint+2010+Lab+Environment+Part+2+%E2%80%93+Bootable+vhd+Files" rel="nofollow" title="Digg this!">Digg this!</a></li><li class="sexy-linkedin"><a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2009/11/sharepoint-2010-lab-environment-part-2-bootable-vhd-files/&amp;title=SharePoint+2010+Lab+Environment+Part+2+%E2%80%93+Bootable+vhd+Files&amp;summary=The%20problem%3A%26%23160%3B%20Having%20to%20install%20SharePoint%20on%20a%20server%20OS%20has%20been%20a%20consistent%20cause%20of%20complaint%20for%20years%20within%20the%20SharePoint%20community%2C%20especially%20for%20developers.%26%23160%3B%20The%20proliferation%20of%20virtualization%20technologies%20%28such%20as%20the%20free%20Virtual%20PC%20and%20VMWare%20Server%20for%20client%20OS%E2%80%99s%2C%20and%20V&amp;source=SharePoint Help" rel="nofollow" title="Share this on Linkedin">Share this on Linkedin</a></li><li class="sexy-delicious"><a href="http://del.icio.us/post?url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2009/11/sharepoint-2010-lab-environment-part-2-bootable-vhd-files/&amp;title=SharePoint+2010+Lab+Environment+Part+2+%E2%80%93+Bootable+vhd+Files" rel="nofollow" title="Share this on del.icio.us">Share this on del.icio.us</a></li><li class="sexy-reddit"><a href="http://reddit.com/submit?url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2009/11/sharepoint-2010-lab-environment-part-2-bootable-vhd-files/&amp;title=SharePoint+2010+Lab+Environment+Part+2+%E2%80%93+Bootable+vhd+Files" rel="nofollow" title="Share this on Reddit">Share this on Reddit</a></li><li class="sexy-newsvine"><a href="http://www.newsvine.com/_tools/seed&amp;save?u=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2009/11/sharepoint-2010-lab-environment-part-2-bootable-vhd-files/&amp;h=SharePoint+2010+Lab+Environment+Part+2+%E2%80%93+Bootable+vhd+Files" rel="nofollow" title="Seed this on Newsvine">Seed this on Newsvine</a></li><li class="sexy-twitter"><a href="http://twitter.com/home?status=SharePoint+2010+Lab+Environment+Part+2+%E2%80%93+Bootable+vhd+Files+-+http://tinyurl.com/yhmr7vb+" rel="nofollow" title="Tweet This!">Tweet This!</a></li><li class="sexy-mail"><a href="mailto:?subject=%22SharePoint%202010%20Lab%20Environment%20Part%202%20%E2%80%93%20Bootable%20vhd%20Files%22&amp;body=I%20thought%20this%20article%20might%20interest%20you.%0A%0A%22The%20problem%3A%26%23160%3B%20Having%20to%20install%20SharePoint%20on%20a%20server%20OS%20has%20been%20a%20consistent%20cause%20of%20complaint%20for%20years%20within%20the%20SharePoint%20community%2C%20especially%20for%20developers.%26%23160%3B%20The%20proliferation%20of%20virtualization%20technologies%20%28such%20as%20the%20free%20Virtual%20PC%20and%20VMWare%20Server%20for%20client%20OS%E2%80%99s%2C%20and%20V%22%0A%0AYou%20can%20read%20the%20full%20article%20here%3A%20http://sharepointsolutions.com/sharepoint-help/blog/index.php/2009/11/sharepoint-2010-lab-environment-part-2-bootable-vhd-files/" rel="nofollow" title="Email this to a friend?">Email this to a friend?</a></li><li class="sexy-friendfeed"><a href="http://www.friendfeed.com/share?title=SharePoint+2010+Lab+Environment+Part+2+%E2%80%93+Bootable+vhd+Files&amp;link=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2009/11/sharepoint-2010-lab-environment-part-2-bootable-vhd-files/" rel="nofollow" title="Share this on FriendFeed">Share this on FriendFeed</a></li><li class="sexy-google"><a href="http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2009/11/sharepoint-2010-lab-environment-part-2-bootable-vhd-files/&amp;title=SharePoint+2010+Lab+Environment+Part+2+%E2%80%93+Bootable+vhd+Files" rel="nofollow" title="Add this to Google Bookmarks">Add this to Google Bookmarks</a></li><li class="sexy-stumbleupon"><a href="http://www.stumbleupon.com/submit?url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2009/11/sharepoint-2010-lab-environment-part-2-bootable-vhd-files/&amp;title=SharePoint+2010+Lab+Environment+Part+2+%E2%80%93+Bootable+vhd+Files" rel="nofollow" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a></li><li class="sexy-mixx"><a href="http://www.mixx.com/submit?page_url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2009/11/sharepoint-2010-lab-environment-part-2-bootable-vhd-files/&amp;title=SharePoint+2010+Lab+Environment+Part+2+%E2%80%93+Bootable+vhd+Files" rel="nofollow" title="Share this on Mixx">Share this on Mixx</a></li><li class="sexy-blogmarks"><a href="http://blogmarks.net/my/new.php?mini=1&amp;simple=1&amp;url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2009/11/sharepoint-2010-lab-environment-part-2-bootable-vhd-files/&amp;title=SharePoint+2010+Lab+Environment+Part+2+%E2%80%93+Bootable+vhd+Files" rel="nofollow" title="Mark this on BlogMarks">Mark this on BlogMarks</a></li><li class="sexy-twittley"><a href="http://twittley.com/submit/?title=SharePoint+2010+Lab+Environment+Part+2+%E2%80%93+Bootable+vhd+Files&amp;url=http%3A%2F%2Fsharepointsolutions.com%2Fsharepoint-help%2Fblog%2Findex.php%2F2009%2F11%2Fsharepoint-2010-lab-environment-part-2-bootable-vhd-files%2F&amp;desc=The%20problem%3A%26%23160%3B%20Having%20to%20install%20SharePoint%20on%20a%20server%20OS%20has%20been%20a%20consistent%20cause%20of%20complaint%20for%20years%20within%20the%20SharePoint%20community%2C%20especially%20for%20developers.%26%23160%3B%20The%20proliferation%20of%20virtualization%20technologies%20%28such%20as%20the%20free%20Virtual%20PC%20and%20VMWare%20Server%20for%20client%20OS%E2%80%99s%2C%20and%20V&amp;pcat=Technology&amp;tags=" rel="nofollow" title="Submit this to Twittley">Submit this to Twittley</a></li><li class="sexy-netvibes"><a href="http://www.netvibes.com/share?title=SharePoint+2010+Lab+Environment+Part+2+%E2%80%93+Bootable+vhd+Files&amp;url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2009/11/sharepoint-2010-lab-environment-part-2-bootable-vhd-files/" rel="nofollow" title="Submit this to Netvibes">Submit this to Netvibes</a></li></ul><div style="clear:both;"></div></div>]]></content:encoded>
			<wfw:commentRss>http://sharepointsolutions.com/sharepoint-help/blog/index.php/2009/11/sharepoint-2010-lab-environment-part-2-bootable-vhd-files/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SharePoint 2010 Lab Environment Part 1 – Installing SharePoint on Windows 7</title>
		<link>http://sharepointsolutions.com/sharepoint-help/blog/index.php/2009/10/sharepoint-2010-lab-environment-part-1-installing-sharepoint-on-windows-7/</link>
		<comments>http://sharepointsolutions.com/sharepoint-help/blog/index.php/2009/10/sharepoint-2010-lab-environment-part-1-installing-sharepoint-on-windows-7/#comments</comments>
		<pubDate>Fri, 30 Oct 2009 03:21:30 +0000</pubDate>
		<dc:creator>Eric Eaton (e2)</dc:creator>
				<category><![CDATA[For Developers]]></category>
		<category><![CDATA[For Server Administrators]]></category>
		<category><![CDATA[SharePoint 2010 Technical Preview]]></category>
		<category><![CDATA[Administration]]></category>
		<category><![CDATA[development]]></category>

		<guid isPermaLink="false">http://sharepointsolutions.com/sharepoint-help/blog/index.php/2009/10/sharepoint-2010-lab-environment-part-1-installing-sharepoint-on-windows-7/</guid>
		<description><![CDATA[The problem:&#160; Having to install SharePoint on a server OS has been a consistent cause of complaint for years within the SharePoint community, especially for developers.&#160; The proliferation of virtualization technologies (such as the free Virtual PC and VMWare Server for client OS’s, and Virtual Server and Hyper-V for server OS’s) have helped to soothe [...]]]></description>
			<content:encoded><![CDATA[<a href='http://sharepointsolutions.com/SharePoint-Training/Courses/Pages/sharepoint-2010-skills-upgrade-planning-class.aspx?CourseTitle=SharePoint%202010%20Skills%20Upgrade%20and%20Planning&internal_ad=/SiteCollectionImages/SharePoint2010Skills1.png&blog_post=SharePoint 2010 Lab Environment Part 1 – Installing SharePoint on Windows 7'><img src='http://sharepointsolutions.com/SiteCollectionImages/SharePoint2010Skills1.png' border=0 align='right' style='float:right'></a><p><strong>The problem:&#160; </strong>Having to install SharePoint on a server OS has been a consistent cause of complaint for years within the SharePoint community, especially for developers.&#160; The proliferation of virtualization technologies (such as the free Virtual PC and VMWare Server for client OS’s, and Virtual Server and Hyper-V for server OS’s) have helped to soothe the pain – but didn’t make it all better for many.&#160; The picture has gotten more complicated with SharePoint 2010.&#160; Now 64-bit hardware and operating systems are required, which significantly narrows the options for desktop lab environments.&#160; Hyper-V is the only Microsoft virtualization technology capable of running 64-bit guest machines, but it only runs on a Windows 2008 Server host machine.&#160; Even if your laptop or desktop is 64-bit, most of us probably aren’t running a server OS on it.&#160; I did try using Windows 2008 Server as my laptop OS for a couple of months, but the performance load of Hyper-V and the SharePoint guest resource requirements caused a significantly slower environment than I was prepared to accept for my everyday use.&#160; I know there are possibilities for running 64-bit guest machines on a client host OS via VMWare, but I wanted to see if it was practical to use Microsoft software because of my familiarity level with it.&#160; </p>
<p><strong>Two solutions:&#160; </strong>However, there are some new developments in SharePoint 2010 and Windows 7 that open some new doors to the desktop / laptop dev environment.&#160; TechNet now documents that 1) SharePoint 2010 offers an option for <a href="http://msdn.microsoft.com/en-us/library/ee554869(office.14).aspx" target="_blank">installing on a client OS</a> – at least for development use, and 2) that a pre-installed and configured vhd can be <a href="http://blogs.technet.com/aviraj/archive/2009/01/18/windows-7-boot-from-vhd-first-impression-part-2.aspx" target="_blank">mounted as a secondary bootable drive</a> on a Windows 7 PC.</p>
<p>In this post, I will document my experience installing SharePoint 2010 directly on my Windows 7, x64, 4gb RAM laptop while I’m home fighting the flu this week.&#160; In another post, I will look at mounting a pre-installed Win2k8 server vhd as a bootable drive.</p>
<p><strong>Installing SharePoint 2010 on a client OS &#8211; The nitty gritty</strong></p>
<p>This is the simplest solution for creating a desktop lab environment for SharePoint 2010.&#160; There is no longer a need for a virtualization product, which means fewer resources are needed with no guest OS to provide for.&#160; Bamboo Solutions created a helpful utility for installing WSS 3.0 and MOSS2007 on Windows XP / Vista – so this is not a new idea.&#160; However, this tool doesn’t work on SharePoint 2010.&#160; Fortunately, there is a native (although not obvious) way to accomplish this in the 2010 product line that is documented in the first link above.&#160; It basically boils down to editing a config file and manually installing the pre-reqs.&#160; Here’s the procedure I followed.</p>
<p><em><strong></strong></em></p>
<p><em><strong>****&#160; UPDATED:&#160; </strong>This is now confirmed to work for both MSS 2010 and SharePoint Foundation (the replacement for WSS) in the public beta released to MSDN on 11/16/2009.&#160; However, step 4 below is now a necessary addition to the process.</em><strong>****</strong></p>
<p><strong></strong></p>
<ol>
<li>Extract all files from the SharePoint.exe installer file from which you intend to install SharePoint (for any other SharePoint 2010, the replacement for WSS, the filename will likely be OfficeServer.exe instead of SharePoint.exe).&#160; This is done with the <strong>/extract:<em>directoryname</em></strong> switch, as shown below.&#160; This may prompt you with one of the wonderful UAC ‘are you sure’ boxes.&#160; If so, just click Yes and move on.       <br />&#160;<a href="http://sharepointsolutions.com/sharepoint-help/files/2009/10/cmdExtract.png"><img style="border-right-width: 0px;margin: 10px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px" border="0" alt="cmdExtract" src="http://sharepointsolutions.com/sharepoint-help/files/2009/10/cmdExtract_thumb.png" width="644" height="325" /></a> </li>
<li>The result will be a folder with the entire set of installation files for SharePoint 2010.&#160; Go to <strong><em>ExtractedDirectoryName\</em>Files\Setup</strong>, and open the Config.xml file using Notepad.       <br /><a href="http://sharepointsolutions.com/sharepoint-help/files/2009/10/wxConfig.xml.png"><img style="border-right-width: 0px;margin: 10px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px" border="0" alt="wxConfig.xml" src="http://sharepointsolutions.com/sharepoint-help/files/2009/10/wxConfig.xml_thumb.png" width="644" height="366" /></a>&#160; </li>
<li>Insert a new line in the &lt;Configuration&gt; section, as shown below:      <br /><strong><font face="Courier New">&lt;Setting ID=”AllowWindowsClientInstall” Value=”True” /&gt;</font></strong>       <br /><a href="http://sharepointsolutions.com/sharepoint-help/files/2009/10/npConfig.xml.png"><img style="border-right-width: 0px;margin: 10px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px" border="0" alt="npConfig.xml" src="http://sharepointsolutions.com/sharepoint-help/files/2009/10/npConfig.xml_thumb.png" width="644" height="291" /></a>&#160; </li>
<li>While you have the file open, change to the key in the PIDKEY Value entry from the ‘Please enter key…’ text to your actual MSS 2010 license key.      <br /><em>(<strong>If you don’t do this</strong>, you will likely get an error message in step 12 below that says your ‘config.xml is not valid, run setup again without using a setup configuration file, or fix the configuration file’.)         <br /><a href="http://sharepointsolutions.com/sharepoint-help/files/2009/11/image.png"><img style="border-right-width: 0px;margin: 10px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px" border="0" alt="image" src="http://sharepointsolutions.com/sharepoint-help/files/2009/11/image_thumb.png" width="498" height="171" /></a> </em></li>
<li>Close and save the file. </li>
<li>Now we must install the prerequisites manually.&#160; (The fancy new pre-req installer doesn’t work on a client OS.)&#160; <br />First, run all of the installer files found in the subfolders under the <strong><em>ExtractedDirectoryName</em>\PrerequisiteInstallerFiles </strong>directory with the exception of the Speech and SpeechLPK folders (ChartControl (for Office Servers only), FilterPack, sqlncli, sync):       <br />&#160;<a href="http://sharepointsolutions.com/sharepoint-help/files/2009/10/wxPreReqInstallers.png"><img style="border-right-width: 0px;margin: 10px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px" border="0" alt="wxPreReqInstallers" src="http://sharepointsolutions.com/sharepoint-help/files/2009/10/wxPreReqInstallers_thumb.png" width="644" height="252" /></a> </li>
<li>Download and install the <a href="http://download.microsoft.com/download/F/3/D/F3D66A7E-C974-4A60-B7A5-382A61EB7BC6/MicrosoftGenevaFramework.amd64.msi" target="_blank">Microsoft Geneva Framework Runtime for x64</a>.       <br /><em>(This is a tricky one.&#160; Most of the downloads you find with Google are not the correct version for the public Beta, and the one you may have used with the SharePoint 2010 Technical Preview doesn’t work either.&#160; If you don’t have the correct version, you won’t be able to complete the SharePoint 2010 Products Configuration Wizard in step 13 below.&#160; The download available at the link above worked for me with the public Beta.&#160; The key is to have the following DLL version in your c:\Windows\Assembly folder:&#160; Microsoft.IdentityModel 1.0.0.0)</em>&#160; <br /><a href="http://sharepointsolutions.com/sharepoint-help/files/2009/11/image1.png"><img style="border-bottom: 0px;border-left: 0px;margin: 10px;border-top: 0px;border-right: 0px" border="0" alt="image" src="http://sharepointsolutions.com/sharepoint-help/files/2009/11/image_thumb1.png" width="558" height="117" /></a> </li>
<li>Download and install the <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=a71060eb-454e-4475-81a6-e9552b1034fc" target="_blank">ADO.NET Data Services v1.5</a> (runtime only), or whatever is the most current version when you’re reading this. </li>
<li>Download and install the <a href="http://download.microsoft.com/download/A/D/0/AD021EF1-9CBC-4D11-AB51-6A65019D4706/SQLSERVER2008_ASADOMD10.msi" target="_blank">SQL Server Analysis Services – ADOMD.Net</a>, or whatever is the most current version when you’re reading this. </li>
<li>Install the IIS pre-reqs by entering (or, lets be honest – copying and pasting) the following command without any line breaks:
<pre><strong>start /w pkgmgr /iu:IIS-WebServerRole;IIS-WebServer;IIS-CommonHttpFeatures;
IIS-StaticContent;IIS-DefaultDocument;IIS-DirectoryBrowsing;IIS-HttpErrors;
IIS-ApplicationDevelopment;IIS-ASPNET;IIS-NetFxExtensibility;
IIS-ISAPIExtensions;IIS-ISAPIFilter;IIS-HealthAndDiagnostics;
IIS-HttpLogging;IIS-LoggingLibraries;IIS-RequestMonitor;IIS-HttpTracing;IIS-CustomLogging;
IIS-Security;IIS-BasicAuthentication;IIS-WindowsAuthentication;IIS-DigestAuthentication;
IIS-RequestFiltering;IIS-Performance;IIS-HttpCompressionStatic;IIS-HttpCompressionDynamic;
IIS-WebServerManagementTools;IIS-ManagementConsole;IIS-IIS6ManagementCompatibility;
IIS-Metabase;IIS-WMICompatibility;WAS-WindowsActivationService;WAS-ProcessModel;
WAS-NetFxEnvironment;WAS-ConfigurationAPI;WCF-HTTP-Activation;
WCF-NonHTTP-Activation<a href="http://sharepointsolutions.com/sharepoint-help/files/2009/10/cmdIISPreReqInstall.png"><img style="border-right-width: 0px;margin: 10px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px" border="0" alt="cmdIISPreReqInstall" src="http://sharepointsolutions.com/sharepoint-help/files/2009/10/cmdIISPreReqInstall_thumb.png" width="644" height="325" /></a></strong></pre>
</li>
<li><strong>Restart </strong>your PC. </li>
<li>Run the SharePoint installer file <strong>setup.exe </strong>in the root of your <em>ExtractedDirectoryName</em>.
<p><em>(Microsoft recommends configuring only a ‘Stand-Alone’ SharePoint instance on Windows 7, but it will allow you to choose advanced and Complete in order to specify a SQL Server if you wish.)</em></li>
<li>When the installer finishes and you begin the ‘SharePoint Products and Technologies Configuration Wizard’, a popup will warn you that this use is not supported for production environments.&#160; Click OK and proceed through the wizard. </li>
<p><em><strong>NOTE:</strong>&#160; If you need to install SharePoint in using the ‘Complete’ option to be able to use the full version of SQL Server, you will not be able to use a local user account in the config wizard.&#160; This is possible with the New-SPConfigurationDatabase PowerShell cmdlet, though.&#160; I’ll blog about using that cmdlet in a later post.</p>
<p></em><a href="http://sharepointsolutions.com/sharepoint-help/files/2009/10/wizWin7Warning.png"><img style="border-right-width: 0px;margin: 10px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px" border="0" alt="wizWin7Warning" src="http://sharepointsolutions.com/sharepoint-help/files/2009/10/wizWin7Warning_thumb.png" width="567" height="484" /></a> </p>
</ol>
<div class="sexy-bookmarks sexy-bookmarks-expand"><ul class="socials"><li class="sexy-facebook"><a href="http://www.facebook.com/share.php?u=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2009/10/sharepoint-2010-lab-environment-part-1-installing-sharepoint-on-windows-7/&amp;t=SharePoint+2010+Lab+Environment+Part+1+%E2%80%93+Installing+SharePoint+on+Windows+7" rel="nofollow" title="Share this on Facebook">Share this on Facebook</a></li><li class="sexy-digg"><a href="http://digg.com/submit?phase=2&amp;url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2009/10/sharepoint-2010-lab-environment-part-1-installing-sharepoint-on-windows-7/&amp;title=SharePoint+2010+Lab+Environment+Part+1+%E2%80%93+Installing+SharePoint+on+Windows+7" rel="nofollow" title="Digg this!">Digg this!</a></li><li class="sexy-linkedin"><a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2009/10/sharepoint-2010-lab-environment-part-1-installing-sharepoint-on-windows-7/&amp;title=SharePoint+2010+Lab+Environment+Part+1+%E2%80%93+Installing+SharePoint+on+Windows+7&amp;summary=The%20problem%3A%26%23160%3B%20Having%20to%20install%20SharePoint%20on%20a%20server%20OS%20has%20been%20a%20consistent%20cause%20of%20complaint%20for%20years%20within%20the%20SharePoint%20community%2C%20especially%20for%20developers.%26%23160%3B%20The%20proliferation%20of%20virtualization%20technologies%20%28such%20as%20the%20free%20Virtual%20PC%20and%20VMWare%20Server%20for%20client%20OS%E2%80%99s%2C%20and%20V&amp;source=SharePoint Help" rel="nofollow" title="Share this on Linkedin">Share this on Linkedin</a></li><li class="sexy-delicious"><a href="http://del.icio.us/post?url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2009/10/sharepoint-2010-lab-environment-part-1-installing-sharepoint-on-windows-7/&amp;title=SharePoint+2010+Lab+Environment+Part+1+%E2%80%93+Installing+SharePoint+on+Windows+7" rel="nofollow" title="Share this on del.icio.us">Share this on del.icio.us</a></li><li class="sexy-reddit"><a href="http://reddit.com/submit?url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2009/10/sharepoint-2010-lab-environment-part-1-installing-sharepoint-on-windows-7/&amp;title=SharePoint+2010+Lab+Environment+Part+1+%E2%80%93+Installing+SharePoint+on+Windows+7" rel="nofollow" title="Share this on Reddit">Share this on Reddit</a></li><li class="sexy-newsvine"><a href="http://www.newsvine.com/_tools/seed&amp;save?u=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2009/10/sharepoint-2010-lab-environment-part-1-installing-sharepoint-on-windows-7/&amp;h=SharePoint+2010+Lab+Environment+Part+1+%E2%80%93+Installing+SharePoint+on+Windows+7" rel="nofollow" title="Seed this on Newsvine">Seed this on Newsvine</a></li><li class="sexy-twitter"><a href="http://twitter.com/home?status=SharePoint+2010+Lab+Environment+Part+1+%E2%80%93+Installing+SharePoint+on+Windows+7+-+http://tinyurl.com/ygg897b+" rel="nofollow" title="Tweet This!">Tweet This!</a></li><li class="sexy-mail"><a href="mailto:?subject=%22SharePoint%202010%20Lab%20Environment%20Part%201%20%E2%80%93%20Installing%20SharePoint%20on%20Windows%207%22&amp;body=I%20thought%20this%20article%20might%20interest%20you.%0A%0A%22The%20problem%3A%26%23160%3B%20Having%20to%20install%20SharePoint%20on%20a%20server%20OS%20has%20been%20a%20consistent%20cause%20of%20complaint%20for%20years%20within%20the%20SharePoint%20community%2C%20especially%20for%20developers.%26%23160%3B%20The%20proliferation%20of%20virtualization%20technologies%20%28such%20as%20the%20free%20Virtual%20PC%20and%20VMWare%20Server%20for%20client%20OS%E2%80%99s%2C%20and%20V%22%0A%0AYou%20can%20read%20the%20full%20article%20here%3A%20http://sharepointsolutions.com/sharepoint-help/blog/index.php/2009/10/sharepoint-2010-lab-environment-part-1-installing-sharepoint-on-windows-7/" rel="nofollow" title="Email this to a friend?">Email this to a friend?</a></li><li class="sexy-friendfeed"><a href="http://www.friendfeed.com/share?title=SharePoint+2010+Lab+Environment+Part+1+%E2%80%93+Installing+SharePoint+on+Windows+7&amp;link=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2009/10/sharepoint-2010-lab-environment-part-1-installing-sharepoint-on-windows-7/" rel="nofollow" title="Share this on FriendFeed">Share this on FriendFeed</a></li><li class="sexy-google"><a href="http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2009/10/sharepoint-2010-lab-environment-part-1-installing-sharepoint-on-windows-7/&amp;title=SharePoint+2010+Lab+Environment+Part+1+%E2%80%93+Installing+SharePoint+on+Windows+7" rel="nofollow" title="Add this to Google Bookmarks">Add this to Google Bookmarks</a></li><li class="sexy-stumbleupon"><a href="http://www.stumbleupon.com/submit?url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2009/10/sharepoint-2010-lab-environment-part-1-installing-sharepoint-on-windows-7/&amp;title=SharePoint+2010+Lab+Environment+Part+1+%E2%80%93+Installing+SharePoint+on+Windows+7" rel="nofollow" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a></li><li class="sexy-mixx"><a href="http://www.mixx.com/submit?page_url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2009/10/sharepoint-2010-lab-environment-part-1-installing-sharepoint-on-windows-7/&amp;title=SharePoint+2010+Lab+Environment+Part+1+%E2%80%93+Installing+SharePoint+on+Windows+7" rel="nofollow" title="Share this on Mixx">Share this on Mixx</a></li><li class="sexy-blogmarks"><a href="http://blogmarks.net/my/new.php?mini=1&amp;simple=1&amp;url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2009/10/sharepoint-2010-lab-environment-part-1-installing-sharepoint-on-windows-7/&amp;title=SharePoint+2010+Lab+Environment+Part+1+%E2%80%93+Installing+SharePoint+on+Windows+7" rel="nofollow" title="Mark this on BlogMarks">Mark this on BlogMarks</a></li><li class="sexy-twittley"><a href="http://twittley.com/submit/?title=SharePoint+2010+Lab+Environment+Part+1+%E2%80%93+Installing+SharePoint+on+Windows+7&amp;url=http%3A%2F%2Fsharepointsolutions.com%2Fsharepoint-help%2Fblog%2Findex.php%2F2009%2F10%2Fsharepoint-2010-lab-environment-part-1-installing-sharepoint-on-windows-7%2F&amp;desc=The%20problem%3A%26%23160%3B%20Having%20to%20install%20SharePoint%20on%20a%20server%20OS%20has%20been%20a%20consistent%20cause%20of%20complaint%20for%20years%20within%20the%20SharePoint%20community%2C%20especially%20for%20developers.%26%23160%3B%20The%20proliferation%20of%20virtualization%20technologies%20%28such%20as%20the%20free%20Virtual%20PC%20and%20VMWare%20Server%20for%20client%20OS%E2%80%99s%2C%20and%20V&amp;pcat=Technology&amp;tags=" rel="nofollow" title="Submit this to Twittley">Submit this to Twittley</a></li><li class="sexy-netvibes"><a href="http://www.netvibes.com/share?title=SharePoint+2010+Lab+Environment+Part+1+%E2%80%93+Installing+SharePoint+on+Windows+7&amp;url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2009/10/sharepoint-2010-lab-environment-part-1-installing-sharepoint-on-windows-7/" rel="nofollow" title="Submit this to Netvibes">Submit this to Netvibes</a></li></ul><div style="clear:both;"></div></div>]]></content:encoded>
			<wfw:commentRss>http://sharepointsolutions.com/sharepoint-help/blog/index.php/2009/10/sharepoint-2010-lab-environment-part-1-installing-sharepoint-on-windows-7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Changes in SharePoint DesignerTypes for workflow activity parameters</title>
		<link>http://sharepointsolutions.com/sharepoint-help/blog/index.php/2009/10/changes-in-sharepoint-designertypes-for-workflow-activity-parameters-2/</link>
		<comments>http://sharepointsolutions.com/sharepoint-help/blog/index.php/2009/10/changes-in-sharepoint-designertypes-for-workflow-activity-parameters-2/#comments</comments>
		<pubDate>Fri, 23 Oct 2009 16:31:30 +0000</pubDate>
		<dc:creator>David Fisher</dc:creator>
				<category><![CDATA[For Developers]]></category>
		<category><![CDATA[SharePoint 2010 Technical Preview]]></category>
		<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[SharePoint Designer]]></category>

		<guid isPermaLink="false">http://sharepointsolutions.com/sharepoint-help/?p=404</guid>
		<description><![CDATA[Creating a workflow in SharePoint Designer consists of selecting Conditions and Activities to build the logic and determine what actions the workflow performs. When you select an activity or condition a sentence appears in the WorkFlow Designer screen with underlined phrases that allow you click on them to set the workflow&#8217;s parameters. These parameters can [...]]]></description>
			<content:encoded><![CDATA[<a href='http://sharepointsolutions.com/SharePoint-Training/Courses/Pages/sharepoint-2010-skills-upgrade-planning-class.aspx?CourseTitle=SharePoint%202010%20Skills%20Upgrade%20and%20Planning&internal_ad=/SiteCollectionImages/SharePoint2010Skills.png&blog_post=Changes in SharePoint DesignerTypes for workflow activity parameters'><img src='http://sharepointsolutions.com/SiteCollectionImages/SharePoint2010Skills.png' border=0 align='right' style='float:right'></a><p>Creating a workflow in SharePoint Designer consists of selecting Conditions and Activities to build the logic and determine what actions the workflow performs. When you select an activity or condition a sentence appears in the WorkFlow Designer screen with underlined phrases that allow you click on them to set the workflow&#8217;s parameters. These parameters can be selecting a column on a list item and a value to give it, or they can be a user&#8217;s account name, a url to a site or something more complex like an email definition that includes a To address, CC address, a subject and a body. </p>
<p>When creating custom workflow activities and conditions for SharePoint in Visual Studio, you create a code class to build its functionality as well as a .actions file, both of which define the parameters. SharePoint Designer uses the .actions to be able to add the activity or condition to a workflow. You must specify the type for each parameter within both the class and the .actions file as well as the DesignerType in the .actions file. When a user clicks on a parameter, different windows open to allow the user to input the values according to the DesignerType given to the parameter. The DesignerType is simply an enumeration that SharePoint Designer uses to determine what type of form to display to gather information on each parameter. For example, a DesignerType of DropDown will present a drop down menu at the location of the parameter phrase in the sentence, whereas a DesignerType of Email will open a pop up window with fields for the To address, CC address, Subject and Body where each of these fields is defined as a parameter of different types in code and returned from the Designer form as an object of that type.</p>
<p>For an activity to send an email, the simple class definition may look something like this:</p>
</p>
<p><code><br />
public partial class SendAnEmail : SequenceActivity<br />
{<br />
&nbsp; &nbsp;#region Dependency Properties</p>
<p>&nbsp; &nbsp;public static DependencyProperty __ContextProperty = DependencyProperty.Register("__Context", typeof(WorkflowContext), typeof(SendAnEmail));<br />
&nbsp; &nbsp;public static DependencyProperty RecipientCCProperty = DependencyProperty.Register("RecipientCC", typeof(ArrayList), typeof(SendAnEmail));<br />
&nbsp; &nbsp;public static DependencyProperty RecipientFromProperty = DependencyProperty.Register("RecipientFrom", typeof(string), typeof(SendAnEmail));<br />
&nbsp; &nbsp;public static DependencyProperty RecipientTOProperty = DependencyProperty.Register("RecipientTO", typeof(ArrayList), typeof(SendAnEmail));<br />
&nbsp; &nbsp;public static DependencyProperty SubjectProperty = DependencyProperty.Register("Subject", typeof (string), typeof (SendAnEmail));<br />
&nbsp; &nbsp;public static DependencyProperty BodyProperty = DependencyProperty.Register("Body", typeof(string), typeof(SendAnEmail));</p>
<p>&nbsp; &nbsp;#endregion</p>
<p>&nbsp; &nbsp;public SendAnEmail()<br />
&nbsp; &nbsp;{<br />
&nbsp; &nbsp;&nbsp; &nbsp;InitializeComponent();<br />
&nbsp; &nbsp;}</p>
<p>&nbsp; &nbsp;#region Activity Parameters</p>
<p>&nbsp; &nbsp;[Description("Recipient address")]<br />
&nbsp; &nbsp;[Browsable(true)]<br />
&nbsp; &nbsp;[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]<br />
&nbsp; &nbsp;public ArrayList RecipientTO<br />
&nbsp; &nbsp;{<br />
&nbsp; &nbsp;&nbsp; &nbsp;get { return ((ArrayList) (base.GetValue(RecipientTOProperty))); }<br />
&nbsp; &nbsp;&nbsp; &nbsp;set { base.SetValue(RecipientTOProperty, value); }<br />
&nbsp; &nbsp;}</p>
<p>&nbsp; &nbsp;[Description("Carbon copy recipient")]<br />
&nbsp; &nbsp;[Browsable(true)]<br />
&nbsp; &nbsp;[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]<br />
&nbsp; &nbsp;public ArrayList RecipientCC<br />
&nbsp; &nbsp;{<br />
&nbsp; &nbsp;&nbsp; &nbsp;get { return ((ArrayList) (base.GetValue(RecipientCCProperty))); }<br />
&nbsp; &nbsp;&nbsp; &nbsp;set { base.SetValue(RecipientCCProperty, value); }<br />
&nbsp; &nbsp;}</p>
<p>&nbsp; &nbsp;[Description("Subject")]<br />
&nbsp; &nbsp;[Browsable(true)]<br />
&nbsp; &nbsp;[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]<br />
&nbsp; &nbsp;public string Subject<br />
&nbsp; &nbsp;{<br />
&nbsp; &nbsp;&nbsp; &nbsp;get { return ((string) (base.GetValue(SubjectProperty))); }<br />
&nbsp; &nbsp;&nbsp; &nbsp;set { base.SetValue(SubjectProperty, value); }<br />
&nbsp; &nbsp;}</p>
<p>&nbsp; &nbsp;[Description("HTML Body")]<br />
&nbsp; &nbsp;[Browsable(true)]<br />
&nbsp; &nbsp;[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]<br />
&nbsp; &nbsp;public string Body<br />
&nbsp; &nbsp;{<br />
&nbsp; &nbsp;&nbsp; &nbsp;get { return ((string) (base.GetValue(BodyProperty))); }<br />
&nbsp; &nbsp;&nbsp; &nbsp;set { base.SetValue(BodyProperty, value); }<br />
&nbsp; &nbsp;}</p>
<p>&nbsp; &nbsp;[Browsable(true)]<br />
&nbsp; &nbsp;[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]<br />
&nbsp; &nbsp;public WorkflowContext __Context<br />
&nbsp; &nbsp;{<br />
&nbsp; &nbsp;&nbsp; &nbsp;get { return ((WorkflowContext) (base.GetValue(__ContextProperty))); }<br />
&nbsp; &nbsp;&nbsp; &nbsp;set { base.SetValue(__ContextProperty, value); }<br />
&nbsp; &nbsp;}</p>
<p>&nbsp; &nbsp;[Description("Sender address. If this value is not specified, default sharepoint sender address will be used")]<br />
&nbsp; &nbsp;[Browsable(true)]<br />
&nbsp; &nbsp;[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]<br />
&nbsp; &nbsp;public string RecipientFrom<br />
&nbsp; &nbsp;{<br />
&nbsp; &nbsp;&nbsp; &nbsp;get { return ((string) (base.GetValue(RecipientFromProperty))); }<br />
&nbsp; &nbsp;&nbsp; &nbsp;set { base.SetValue(RecipientFromProperty, value); }<br />
&nbsp; &nbsp;}</p>
<p>&nbsp; &nbsp;#endregion</p>
<p>&nbsp; &nbsp;protected override ActivityExecutionStatus OnExecute(ActivityExecutionContext executionContext, Microsoft.SharePoint.Workflow.ISharePointService service)<br />
&nbsp; &nbsp;{<br />
&nbsp; &nbsp;}<br />
}<br />
</code></p>
<p>The .actions file would look like:</p>
<p><code><br />
&lt;?xml version="1.0" encoding="utf-8"?&gt;<br />
&lt;WorkflowInfo Language="en-us"&gt;<br />
&nbsp; &nbsp;&lt;Actions Sequential="then" Parallel="and"&gt;<br />
&nbsp; &nbsp;&nbsp; &nbsp;&lt;Action Name="Send E-mail Extended" 		   ClassName="SPSolutions.SharePoint.WorkflowEssentials.Activities.SendEmailExtended" 		   Assembly="SPSolutions.SharePoint.WorkflowEssentials, Version=1.0.0.0, Culture=neutral, PublicKeyToken=08a33cc09f006379" AppliesTo="all" Category="SharePoint Solutions' WorkFlow Essentials"&gt;<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&lt;RuleDesigner Sentence="Send a %1 e-mail to %2 and display %3 as the sender"&gt;<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&lt;FieldBind Field="IsMessageUrgent" DesignerType="Dropdown" Text="choose" Id="1"&gt;<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&lt;Option Name="urgent" Value="true"/&gt;<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&lt;Option Name="non urgent" Value="false"/&gt;<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&lt;/FieldBind&gt;<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&lt;FieldBind Field="RecipientTO,RecipientCC,Subject,Body" Text="this address" DesignerType="Email" Id="2"/&gt;<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&lt;FieldBind Field="RecipientFrom" Text="this address" Id="3" DesignerType="stringbuilder" /&gt;<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&lt;/RuleDesigner&gt;<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&lt;Parameters&gt;<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&lt;Parameter Name="__Context" Type="Microsoft.SharePoint.WorkflowActions.WorkflowContext, Microsoft.SharePoint.WorkflowActions" Direction="In"/&gt;<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&lt;Parameter Name="IsMessageUrgent" Type="System.String, mscorlib" Direction="In" InitialValue="false" /&gt;<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&lt;Parameter Name="RecipientTO" Type="System.Collections.ArrayList, mscorlib" Direction="In" /&gt;<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&lt;Parameter Name="RecipientCC" Type="System.Collections.ArrayList, mscorlib" Direction="Optional" /&gt;<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&lt;Parameter Name="RecipientFrom" Type="System.String, mscorlib" Direction="In" /&gt;<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&lt;Parameter Name="Subject" Type="System.String, mscorlib" Direction="In" /&gt;<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&lt;Parameter Name="Body" Type="System.String, mscorlib" Direction="In" /&gt;<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&lt;/Parameters&gt;<br />
&nbsp; &nbsp;&nbsp; &nbsp;&lt;/Action&gt;<br />
&nbsp; &nbsp;&lt;/Actions&gt;<br />
&lt;/WorkflowInfo&gt;<br />
</code></p>
<p>In terms of SharePoint 2010, there are several new DesignerTypes and some of the existing ones have changed slightly in the types of parameters that they return. Below is an overview of most, if not all, of the DesignerTypes included in 2010.</p>
<table>
<tr>
<td valign="top">
<div style="font-weight:bold">&nbsp;Designer Type&nbsp;</div>
</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">
<div style="font-weight:bold">&nbsp;New to 2010&nbsp;</div>
</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">
<div style="font-weight:bold">&nbsp;Parameter(s) returned<br />(example parameter name)&nbsp;</div>
</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">
<div style="font-weight:bold">&nbsp;Parameter type&nbsp;</div>
</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">
<div style="font-weight:bold">&nbsp;Description&nbsp;</div>
</td>
</tr>
<tr>
<td colspan="17" style="height:1;background-color:Black"></td>
</tr>
<tr>
  </tr>
<tr>
<td valign="top">&nbsp;Assignment&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;Yes&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;AssignedTo&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;System.String&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;</td>
</tr>
<tr>
<td valign="top">&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;CC&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;System.Collections.ArrayList&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;</td>
</tr>
<tr>
<td valign="top">&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;Comments&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;System.String&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;</td>
</tr>
<tr>
<td valign="top">&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;Subject&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;System.String&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;</td>
</tr>
<tr>
<td valign="top">&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;Duration&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;System.Double&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;</td>
</tr>
<tr>
<td valign="top">&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;DurationUnit&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;Microsoft.Office.Workflow.Actions.DurationUnit&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;</td>
</tr>
<tr>
<td valign="top">&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;DueDate&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;System.DateTime&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;</td>
</tr>
<tr>
<td colspan="17" style="height:1;background-color:Black"></td>
</tr>
<tr>
<td valign="top">&nbsp;Boolean&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;No&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;Yes/No&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;System.Boolean&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;</td>
</tr>
<tr>
<td colspan="17" style="height:1;background-color:Black"></td>
</tr>
<tr>
<td valign="top">&nbsp;ChooseDocLibItem&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;No&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;DocumentLibrary<br />ItemName&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;System.String&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;Selects list item from a Document Library based on a field value.&nbsp;</td>
</tr>
<tr>
<td colspan="17" style="height:1;background-color:Black"></td>
</tr>
<tr>
<td valign="top">&nbsp;ChooseListItem&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;Changed&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;ListId&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;System.String&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;Selects List Item from list based on a field value.&nbsp;</td>
</tr>
<tr>
<td valign="top">&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;ListItem&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;Microsoft.SharePoint.Workflow.SPItemKey&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;</td>
</tr>
<tr>
<td colspan="17" style="height:1;background-color:Black"></td>
</tr>
<tr>
<td valign="top">&nbsp;ContentType&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;Yes&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;ContentTypeID&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;System.String&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;</td>
</tr>
<tr>
<td colspan="17" style="height:1;background-color:Black"></td>
</tr>
<tr>
<td valign="top">&nbsp;CreateListItem&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;No&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;</td>
</tr>
<tr>
<td colspan="17" style="height:1;background-color:Black"></td>
</tr>
<tr>
<td valign="top">&nbsp;DataSourceDropDown&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;Yes&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;DataSourceName&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;System.String&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;Drop Down list of DataSources for list associated with workflow.&nbsp;</td>
</tr>
<tr>
<td colspan="17" style="height:1;background-color:Black"></td>
</tr>
<tr>
<td valign="top">&nbsp;Date&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;No&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;Date&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;System.DateTime&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;Date Time Selector&nbsp;</td>
</tr>
<tr>
<td colspan="17" style="height:1;background-color:Black"></td>
</tr>
<tr>
<td valign="top">&nbsp;Dependent&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;Yes&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">S&nbsp;ystem.String&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;Based on TextArea DesignerType&nbsp;</td>
</tr>
<tr>
<td colspan="17" style="height:1;background-color:Black"></td>
</tr>
<tr>
<td valign="top">&nbsp;DropDown&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;No&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;System.String&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;</td>
</tr>
<tr>
<td colspan="17" style="height:1;background-color:Black"></td>
</tr>
<tr>
<td valign="top">&nbsp;Email&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;No&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;To&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;System.Collection.ArrayList&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;</td>
</tr>
<tr>
<td colspan="17" style="height:1;background-color:Black"></td>
</tr>
<tr>
<td valign="top">&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;CC&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;System.Collection.ArrayList&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;</td>
</tr>
<tr>
<td colspan="17" style="height:1;background-color:Black"></td>
</tr>
<tr>
<td valign="top">&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;Subject&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;System.String&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;</td>
</tr>
<tr>
<td colspan="17" style="height:1;background-color:Black"></td>
</tr>
<tr>
<td valign="top">&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;Body&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;System.String&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;</td>
</tr>
<tr>
<td colspan="17" style="height:1;background-color:Black"></td>
</tr>
<tr>
<td valign="top">&nbsp;Hide&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;No&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;Used to hide parameter from users in Designer&nbsp;</td>
</tr>
<tr>
<td colspan="17" style="height:1;background-color:Black"></td>
</tr>
<tr>
<td valign="top">&nbsp;FieldNames&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;No&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;FieldName&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;System.String&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;Select field column from list associated with workflow.&nbsp;</td>
</tr>
<tr>
<td colspan="17" style="height:1;background-color:Black"></td>
</tr>
<tr>
<td valign="top">&nbsp;Float&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;No&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;System.Float&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;</td>
</tr>
<tr>
<td colspan="17" style="height:1;background-color:Black"></td>
</tr>
<tr>
<td valign="top">&nbsp;HyperLink&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;No&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;Link&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;System.String&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;</td>
</tr>
<tr>
<td colspan="17" style="height:1;background-color:Black"></td>
</tr>
<tr>
<td valign="top">&nbsp;Integer&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;No&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;System.Int32&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;</td>
</tr>
<tr>
<td colspan="17" style="height:1;background-color:Black"></td>
</tr>
<tr>
<td valign="top">&nbsp;ListItems&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;Yes&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;System.String&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;</td>
</tr>
<tr>
<td colspan="17" style="height:1;background-color:Black"></td>
</tr>
<tr>
<td valign="top">&nbsp;ListNames&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;No&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;ListTitle&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;System.String&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;Drop Down with list of list names from current site&nbsp;</td>
</tr>
<tr>
<td colspan="17" style="height:1;background-color:Black"></td>
</tr>
<tr>
<td valign="top">&nbsp;Operator&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;No&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;Drop-down list box control that includes operators used to evaluate each side of the RuleDesigner sentence. Operators are static and must be added in Options elements.&nbsp;</td>
</tr>
<tr>
<td colspan="17" style="height:1;background-color:Black"></td>
</tr>
<tr>
<td valign="top">&nbsp;ParameterNames&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;No&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;System.String&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;Allows the creation of a new variable for the workflow.&nbsp;</td>
</tr>
<tr>
<td colspan="17" style="height:1;background-color:Black"></td>
</tr>
<tr>
<td valign="top">&nbsp;Person&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;No&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;Users&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;System.Collections.ArrayList&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;Allows selection of multiple users&nbsp;</td>
</tr>
<tr>
<td colspan="17" style="height:1;background-color:Black"></td>
</tr>
<tr>
<td valign="top">&nbsp;SinglePerson&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;Changed&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;System.Object&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;Allows selection of a single user&nbsp;</td>
</tr>
<tr>
<td colspan="17" style="height:1;background-color:Black"></td>
</tr>
<tr>
<td valign="top">&nbsp;StringBuilder&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;No&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;System.String&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;</td>
</tr>
<tr>
<td colspan="17" style="height:1;background-color:Black"></td>
</tr>
<tr>
<td valign="top">&nbsp;Survey&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;No&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;Creates a task in the workflow to gather data from users.&nbsp;</td>
</tr>
<tr>
<td colspan="17" style="height:1;background-color:Black"></td>
</tr>
<tr>
<td valign="top">&nbsp;TaskSummary&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;Yes&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;TaskProcessName&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;System.String&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;</td>
</tr>
<tr>
<td colspan="17" style="height:1;background-color:Black"></td>
</tr>
<tr>
<td valign="top">&nbsp;Text&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;No&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;System.Object&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;</td>
</tr>
<tr>
<td colspan="17" style="height:1;background-color:Black"></td>
</tr>
<tr>
<td valign="top">&nbsp;TextArea&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;No&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;System.String&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;</td>
</tr>
<tr>
<td colspan="17" style="height:1;background-color:Black"></td>
</tr>
<tr>
<td valign="top">&nbsp;UpdateListItem&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;No&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;ListItemToUpdate&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;</td>
</tr>
<tr>
<td colspan="17" style="height:1;background-color:Black"></td>
</tr>
<tr>
<td valign="top">&nbsp;WritableFieldNames&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;No&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;System.String&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td valign="top">&nbsp;Drop down including list of fields on list that are writable&nbsp;</td>
</tr>
</table>
<p>So far, the main changes appear in the return types of the ChooseListItem and SinglePerson DesignerTypes. In SharePoint 2010, the SinglePerson form returns a generic System.Object rather than a string, and the ChooseListItem&#8217;s ListItem parameter returns a new type of SPItemKey instead of a string.</p>
<p>To accommodate the return of an Object from the SinglePerson DesignerType form, simple define the parameter as System.Object in the .actions file and the DependencyProperty in code, then define the activities property as a String and explicitly convert it from object to string in the get statement.</p>
<p>The new .actions file section would now look like:<br />
<code><br />
&lt;Action Name="myNewActivity"<br />
&nbsp;ClassName="SPSolutions.SharePoint.WorkflowEssentials.Activities. myNewActivity "<br />
&nbsp;Assembly="SPSolutions.SharePoint.WorkflowEssentials, Version=1.0.0.0, Culture=neutral,<br />
&nbsp;PublicKeyToken=08a33cc09f006379"<br />
&nbsp;AppliesTo="all" Category="SharePoint Solutions' WorkFlow Essentials"&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;RuleDesigner Sentence="Get %1"&gt;<br />
<span style="color:Red">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;FieldBind Field="SharePointUser" DesignerType="SinglePerson" Text="this person" Id="1" /&gt;</span><br />
&nbsp;&nbsp;&nbsp;&lt;/RuleDesigner&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;Parameters&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;Parameter Name="__Context" Type="Microsoft.SharePoint.WorkflowActions.WorkflowContext,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Microsoft.SharePoint.WorkflowActions" Direction="In"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;Parameter Name="ListId" Type="System.String, mscorlib" Direction="In" /&gt;<br />
<span style="color:Red">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;Parameter Name="SharePointUser" Type="System.Object, mscorlib" Direction="In" /&gt;</span><br />
&nbsp;&nbsp;&nbsp;&lt;/Parameters&gt;<br />
&nbsp;&lt;/Action&gt;<br />
</code><br />
The new declaration in the class for parameters returned from the ChooseListItem DesignerType would now look like:<br />
<code><br />
public static DependencyProperty SharePointUserProperty =<br />
DependencyProperty.Register("SharePointUser", typeof(object), typeof(myNewActivity));<br />
[Description("SharePoint User")]<br />
[Browsable(true)]<br />
[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]<br />
public string SharePointUser<br />
{<br />
&nbsp; &nbsp;get { return ((string) (base.GetValue(SharePointUserProperty))); }<br />
&nbsp; &nbsp;set { base.SetValue(SharePointUserProperty, value); }<br />
}<br />
</code></p>
<p>The SPItemKey type appears to be a wrapper for returning an instance of the list item. It has two public properties: Id as Int32 and Key as String where the Id is the selected ListItem&#8217;s Id and Key is the name. You can programmatically get an instance of the SPListItem by passing the SPList object as a parameter to SPItemKey.GetItemByIdFromList(SPList). </p>
<p>
<div style="font-weight:bold">Public Members for Microsoft.SharePoint.Workflow.SPItemKey</div>
</p>
<div style="font-weight:bold">Constructors</div>
<table>
<tr>
<td>&nbsp;SPItemKey()&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td>&nbsp;Returns object with Key = string.Empty, Id = -1&nbsp;</td>
</tr>
<tr>
<td colspan="5" style="height:1;background-color:Black"></td>
</tr>
<tr>
<td>&nbsp;SPItemKey(Int32 id)&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td>&nbsp;Returns object with Key = id.ToString(), Id = id&nbsp;</td>
</tr>
<tr>
<td colspan="5" style="height:1;background-color:Black"></td>
</tr>
<tr>
<td>&nbsp;SPItemKey(string key)&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td>&nbsp;Returns object with Key = key, Id =Int32.Parse(key)&nbsp;</td>
</tr>
</table>
<div style="font-weight:bold">Methods</div>
<table>
<tr>
<td>&nbsp;Equals(object rhs)&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td>&nbsp;Boolean&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td>&nbsp;Determines if current object equals object passed in&nbsp;</td>
</tr>
<tr>
<td colspan="9" style="height:1;background-color:Black"></td>
</tr>
<tr>
<td>&nbsp;Equals(object objA, object objB)&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td>&nbsp;Boolean&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td>&nbsp;Determines if two objects are equal&nbsp;</td>
</tr>
<tr>
<td colspan="9" style="height:1;background-color:Black"></td>
</tr>
<tr>
<td>&nbsp;Finalize()&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td>&nbsp;Void&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td>&nbsp;Empty override of base System.Object.Finalize()&nbsp;</td>
</tr>
<tr>
<td colspan="9" style="height:1;background-color:Black"></td>
</tr>
<tr>
<td>&nbsp;FromItem(SPListItem listItem)&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td>&nbsp;SPItemKey&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td>&nbsp;Returns SPItemKey object given SPListItem&nbsp;</td>
</tr>
<tr>
<td colspan="9" style="height:1;background-color:Black"></td>
</tr>
<tr>
<td>&nbsp;GetHashCode()&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td>&nbsp;Int32&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td>&nbsp;Generated from Exclusive OR operation between Id and Key.GetHashCode()&nbsp;</td>
</tr>
<tr>
<td colspan="9" style="height:1;background-color:Black"></td>
</tr>
<tr>
<td>&nbsp;GetItemByIdFromList(SPList)&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td>&nbsp;SPItemKey&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td>&nbsp;Returns SPListItem from given list from Key or Id property&nbsp;</td>
</tr>
<tr>
<td colspan="9" style="height:1;background-color:Black"></td>
</tr>
<tr>
<td>&nbsp;GetType()&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td>&nbsp;Type&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td>&nbsp;Returns Type for current SPItemKey&nbsp;</td>
</tr>
<tr>
<td colspan="9" style="height:1;background-color:Black"></td>
</tr>
<tr>
<td>&nbsp;IsEmpty(SPItemKey)&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td>&nbsp;Boolean&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td>&nbsp;Static. Returns true if both Id and Key properties are null or if Id = -1 and Key is null or string.Empty&nbsp;</td>
</tr>
<tr>
<td colspan="9" style="height:1;background-color:Black"></td>
</tr>
<tr>
<td>&nbsp;MemberwiseClone()&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td>&nbsp;Object&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td>&nbsp;Creates a shallow copy of the current SPItemKey&nbsp;</td>
</tr>
<tr>
<td colspan="9" style="height:1;background-color:Black"></td>
</tr>
<tr>
<td>&nbsp;op_Equality(SPItemKey lhs, object rhs)&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td>&nbsp;Boolean&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td>&nbsp;Static. Determines if SPItemKey and Object are both null or equal&nbsp;</td>
</tr>
<tr>
<td colspan="9" style="height:1;background-color:Black"></td>
</tr>
<tr>
<td>&nbsp;op_Equality(SPItemKey lhs, SPItemKey rhs)&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td>&nbsp;Boolean&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td>&nbsp;Static. Determines if two SPItemKey objects are both null or equal&nbsp;</td>
</tr>
<tr>
<td colspan="9" style="height:1;background-color:Black"></td>
</tr>
<tr>
<td>&nbsp;op_Inequality(SPItemKey lhs, object rhs)&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td>&nbsp;Boolean&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td>&nbsp;Static. Determines if SPItemKey and Object are both not null or not equal&nbsp;</td>
</tr>
<tr>
<td colspan="9" style="height:1;background-color:Black"></td>
</tr>
<tr>
<td>&nbsp;op_Inequality(SPItemKey lhs, SPItemKey rhs)&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td>&nbsp;Boolean&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td>&nbsp;Static. Determines if two SPItemKey objects are both not null or not equal&nbsp;</td>
</tr>
<tr>
<td colspan="9" style="height:1;background-color:Black"></td>
</tr>
<tr>
<td>&nbsp;ReferenceEquals(object objA, object objB)&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td>&nbsp;Boolean&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td>&nbsp;Static. Determines if two objects are references to the same object&nbsp;</td>
</tr>
<tr>
<td colspan="9" style="height:1;background-color:Black"></td>
</tr>
<tr>
<td>&nbsp;ToString()&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td>&nbsp;String&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td>&nbsp;Comma separated string: Key, Id&nbsp;</td>
</tr>
</table>
<div style="font-weight:bold">Properties</div>
<table>
<tr>
<td>&nbsp;Empty&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td>&nbsp;SPItemKey&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td>&nbsp;Static. Returns empty object using empty constructor&nbsp;</td>
</tr>
<tr>
<td colspan="9" style="height:1;background-color:Black"></td>
</tr>
<tr>
<td>&nbsp;Id&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td>&nbsp;Int32&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td>&nbsp;Read/Write. Id of SPItemKey&nbsp;</td>
</tr>
<tr>
<td colspan="9" style="height:1;background-color:Black"></td>
</tr>
<tr>
<td>&nbsp;Key&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td>&nbsp;String&nbsp;</td>
<td style="width:2">&nbsp;</td>
<td style="width:1;background-color:Black"></td>
<td style="width:2">&nbsp;</td>
<td>&nbsp;Read/Write. Key of SPItemKey&nbsp;</td>
</tr>
</table>
<p></p>
<p>To access the new type in your class, be sure to reference the new assemblies for SharePoint 14 including C:\Program Files\Common Files\Microsoft Shared\web server extensions\14\ISAPI\Microsoft.SharePoint.dll and C:\Program Files\Common Files\Microsoft Shared\web server extensions\14\ISAPI\Microsoft.SharePoint.WorkflowActions.dll.</p>
<p>The new .actions file  section would now look like:<br />
<code><br />
&lt;Action Name="myNewActivity"<br />
&nbsp;ClassName="SPSolutions.SharePoint.WorkflowEssentials.Activities. myNewActivity"<br />
&nbsp;Assembly="SPSolutions.SharePoint.WorkflowEssentials, Version=1.0.0.0, Culture=neutral,<br />
&nbsp;PublicKeyToken=08a33cc09f006379"<br />
&nbsp;AppliesTo="all" Category="SharePoint Solutions' WorkFlow Essentials"&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;RuleDesigner Sentence="Get %1"&gt;<br />
<span style="color:Red">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;FieldBind Field="ListId, ListItem" DesignerType="ChooseListItem" Text="List Item" Id="1" /&gt;</span><br />
&nbsp;&nbsp;&nbsp;&lt;/RuleDesigner&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;Parameters&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;Parameter Name="__Context" Type="Microsoft.SharePoint.WorkflowActions.WorkflowContext,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Microsoft.SharePoint.WorkflowActions" Direction="In"/&gt;<br />
<span style="color:Red">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;Parameter Name="ListId" Type="System.String, mscorlib" Direction="In" /&gt;</span><br />
<span style="color:Red">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;Parameter Name="ListItem" Type="Microsoft.SharePoint.Workflow.SPItemKey, Microsoft.SharePoint" Direction="In" /&gt;</span><br />
&nbsp;&nbsp;&nbsp;&lt;/Parameters&gt;<br />
&lt;/Action&gt;<br />
</code><br />
<br />
The new declaration in the class for parameters returned from the ChooseListItem DesignerType would now look like:<br />
<code><br />
public static DependencyProperty ListIdProperty = DependencyProperty.Register("ListId", typeof(string), typeof(myNewActivity));<br />
[Description("List Id")]<br />
[Browsable(true)]<br />
[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]<br />
public string ListId<br />
{<br />
&nbsp; &nbsp;get { return ((string) (base.GetValue(ListIdProperty))); }<br />
&nbsp; &nbsp;set { base.SetValue(ListIdProperty, value); }<br />
}</p>
<p>public static DependencyProperty ListItemProperty = DependencyProperty.Register("ListItem", <span style="color:Red">typeof(SPItemKey)</span>, typeof(myNewActivity));<br />
[Description("List Item")]<br />
[Browsable(true)]<br />
[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]<br />
public <span style="color:Red">SPItemKey</span> ListItem<br />
{<br />
&nbsp; &nbsp;get { return (<span style="color:Red">(SPItemKey)</span> (base.GetValue(ListItemProperty))); }<br />
&nbsp; &nbsp;set { base.SetValue(ListItemProperty, value); }<br />
}<br />
</code></p>
<p>Looking at the SharePoint 14 codebase, there are several new activities included in the namespace Microsoft.SharePoint.WorkflowActions.WithKey that use the SPItemKey object includng the same ListItem property as well as additional properties such as TaskId. It appears that the workflow activities in the new version of SharePoint uses this object extensively for List Items, probably as a smaller object to pass around instead of the full SPListItem object. It will be interesting to see how, if at all, this object changes in the beta release.</p>
<div class="sexy-bookmarks sexy-bookmarks-expand"><ul class="socials"><li class="sexy-facebook"><a href="http://www.facebook.com/share.php?u=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2009/10/changes-in-sharepoint-designertypes-for-workflow-activity-parameters-2/&amp;t=Changes+in+SharePoint+DesignerTypes+for+workflow+activity+parameters" rel="nofollow" title="Share this on Facebook">Share this on Facebook</a></li><li class="sexy-digg"><a href="http://digg.com/submit?phase=2&amp;url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2009/10/changes-in-sharepoint-designertypes-for-workflow-activity-parameters-2/&amp;title=Changes+in+SharePoint+DesignerTypes+for+workflow+activity+parameters" rel="nofollow" title="Digg this!">Digg this!</a></li><li class="sexy-linkedin"><a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2009/10/changes-in-sharepoint-designertypes-for-workflow-activity-parameters-2/&amp;title=Changes+in+SharePoint+DesignerTypes+for+workflow+activity+parameters&amp;summary=Creating%20a%20workflow%20in%20SharePoint%20Designer%20consists%20of%20selecting%20Conditions%20and%20Activities%20to%20build%20the%20logic%20and%20determine%20what%20actions%20the%20workflow%20performs.%20When%20you%20select%20an%20activity%20or%20condition%20a%20sentence%20appears%20in%20the%20WorkFlow%20Designer%20screen%20with%20underlined%20phrases%20that%20allow%20you%20click%20on%20&amp;source=SharePoint Help" rel="nofollow" title="Share this on Linkedin">Share this on Linkedin</a></li><li class="sexy-delicious"><a href="http://del.icio.us/post?url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2009/10/changes-in-sharepoint-designertypes-for-workflow-activity-parameters-2/&amp;title=Changes+in+SharePoint+DesignerTypes+for+workflow+activity+parameters" rel="nofollow" title="Share this on del.icio.us">Share this on del.icio.us</a></li><li class="sexy-reddit"><a href="http://reddit.com/submit?url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2009/10/changes-in-sharepoint-designertypes-for-workflow-activity-parameters-2/&amp;title=Changes+in+SharePoint+DesignerTypes+for+workflow+activity+parameters" rel="nofollow" title="Share this on Reddit">Share this on Reddit</a></li><li class="sexy-newsvine"><a href="http://www.newsvine.com/_tools/seed&amp;save?u=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2009/10/changes-in-sharepoint-designertypes-for-workflow-activity-parameters-2/&amp;h=Changes+in+SharePoint+DesignerTypes+for+workflow+activity+parameters" rel="nofollow" title="Seed this on Newsvine">Seed this on Newsvine</a></li><li class="sexy-twitter"><a href="http://twitter.com/home?status=Changes+in+SharePoint+DesignerTypes+for+workflow+activity+parameters+-+http://tinyurl.com/yz8tetl+" rel="nofollow" title="Tweet This!">Tweet This!</a></li><li class="sexy-mail"><a href="mailto:?subject=%22Changes%20in%20SharePoint%20DesignerTypes%20for%20workflow%20activity%20parameters%22&amp;body=I%20thought%20this%20article%20might%20interest%20you.%0A%0A%22Creating%20a%20workflow%20in%20SharePoint%20Designer%20consists%20of%20selecting%20Conditions%20and%20Activities%20to%20build%20the%20logic%20and%20determine%20what%20actions%20the%20workflow%20performs.%20When%20you%20select%20an%20activity%20or%20condition%20a%20sentence%20appears%20in%20the%20WorkFlow%20Designer%20screen%20with%20underlined%20phrases%20that%20allow%20you%20click%20on%20%22%0A%0AYou%20can%20read%20the%20full%20article%20here%3A%20http://sharepointsolutions.com/sharepoint-help/blog/index.php/2009/10/changes-in-sharepoint-designertypes-for-workflow-activity-parameters-2/" rel="nofollow" title="Email this to a friend?">Email this to a friend?</a></li><li class="sexy-friendfeed"><a href="http://www.friendfeed.com/share?title=Changes+in+SharePoint+DesignerTypes+for+workflow+activity+parameters&amp;link=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2009/10/changes-in-sharepoint-designertypes-for-workflow-activity-parameters-2/" rel="nofollow" title="Share this on FriendFeed">Share this on FriendFeed</a></li><li class="sexy-google"><a href="http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2009/10/changes-in-sharepoint-designertypes-for-workflow-activity-parameters-2/&amp;title=Changes+in+SharePoint+DesignerTypes+for+workflow+activity+parameters" rel="nofollow" title="Add this to Google Bookmarks">Add this to Google Bookmarks</a></li><li class="sexy-stumbleupon"><a href="http://www.stumbleupon.com/submit?url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2009/10/changes-in-sharepoint-designertypes-for-workflow-activity-parameters-2/&amp;title=Changes+in+SharePoint+DesignerTypes+for+workflow+activity+parameters" rel="nofollow" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a></li><li class="sexy-mixx"><a href="http://www.mixx.com/submit?page_url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2009/10/changes-in-sharepoint-designertypes-for-workflow-activity-parameters-2/&amp;title=Changes+in+SharePoint+DesignerTypes+for+workflow+activity+parameters" rel="nofollow" title="Share this on Mixx">Share this on Mixx</a></li><li class="sexy-blogmarks"><a href="http://blogmarks.net/my/new.php?mini=1&amp;simple=1&amp;url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2009/10/changes-in-sharepoint-designertypes-for-workflow-activity-parameters-2/&amp;title=Changes+in+SharePoint+DesignerTypes+for+workflow+activity+parameters" rel="nofollow" title="Mark this on BlogMarks">Mark this on BlogMarks</a></li><li class="sexy-twittley"><a href="http://twittley.com/submit/?title=Changes+in+SharePoint+DesignerTypes+for+workflow+activity+parameters&amp;url=http%3A%2F%2Fsharepointsolutions.com%2Fsharepoint-help%2Fblog%2Findex.php%2F2009%2F10%2Fchanges-in-sharepoint-designertypes-for-workflow-activity-parameters-2%2F&amp;desc=Creating%20a%20workflow%20in%20SharePoint%20Designer%20consists%20of%20selecting%20Conditions%20and%20Activities%20to%20build%20the%20logic%20and%20determine%20what%20actions%20the%20workflow%20performs.%20When%20you%20select%20an%20activity%20or%20condition%20a%20sentence%20appears%20in%20the%20WorkFlow%20Designer%20screen%20with%20underlined%20phrases%20that%20allow%20you%20click%20on%20&amp;pcat=Technology&amp;tags=" rel="nofollow" title="Submit this to Twittley">Submit this to Twittley</a></li><li class="sexy-netvibes"><a href="http://www.netvibes.com/share?title=Changes+in+SharePoint+DesignerTypes+for+workflow+activity+parameters&amp;url=http://sharepointsolutions.com/sharepoint-help/blog/index.php/2009/10/changes-in-sharepoint-designertypes-for-workflow-activity-parameters-2/" rel="nofollow" title="Submit this to Netvibes">Submit this to Netvibes</a></li></ul><div style="clear:both;"></div></div>]]></content:encoded>
			<wfw:commentRss>http://sharepointsolutions.com/sharepoint-help/blog/index.php/2009/10/changes-in-sharepoint-designertypes-for-workflow-activity-parameters-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
